Kaslghnoon

Captain Tsubasa 2 Hack

August, 2010

List1 - NES 8 bit Offset Conversion:

0000 = 8000
1000 = 9000
2000 = A000
3000 = B000
4000 = C000
5000 = D000
6000 = E000
7000 = F000

8000 = 8000
9000 = 9000
A000 = A000
B000 = B000
C000 = C000
D000 = D000
E000 = E000
F000 = F000

 

 

List 2 - CT2 RAM:

26 = Level
27 = Half
28 = Our score
29 = En (enemy) score
2A = Our team
2B = En team
441 = Player who has the ball
446 = (to 01) Tsubasa Drive Bicycle
448 = (to 01) Tsubasa cyclone
454 - 467 = Player saved levels (starting Tsubasa)
5F7 and 5F8 = Time
601 = Player who is currently marking

 

Player specific RAM addresses:

300 = Our GK
30C = Our 2
318 = Our 3
324 = Our 4
330 = Our 5
33C = Our 6
348 = Our 7
354 = Our 8
360 = Our 9
36C = Our 10
378 = Our 11

Bench:
408 = 12
40C = 13
410 = 14
414 = 15
418 = 16
41C = 17
420 = 18
424 = 19
428 = GK 20
42C = GK 21


384 = En GK
390 = En 2
39C = En 3
3A8 = En 4
3B4 = En 5
3C0 = En 6
3CC = En 7
3D8 = En 8
3E4 = En 9
3F0 = En 10
3fC = En 11

 

 

List 3 - Position id's during play:

00 = Our GK
01 = Our 2
02 = Our 3
03 = Our 4
04 = Our 5
05 = Our 6
06 = Our 7
07 = Our 8
08 = Our 9
09 = Our 10
0A = Our 11
0B = En GK
0C = En 2
0D = En 3
0E = En 4
0F = En 5
10 = En 6
11 = En 7
12 = En 8
13 = En 9
14 = En 10
15 = En 11

 

 

List 4 - Players  id's:

01 Tsubasa
02 Lennart [GK]
03 Lima
04 Marini
05 Amaral
06 Dottil
07 Battista
08 Tahamata
09 Babinton
0A Gil
0B Platton
0C Urabe
0D Kishida
0E Nakayama
0F Morisaki [GK]
10 Takasugi
11 Misaki
12 Izawa
13 Taki
14 Ishizaki
15 Nitta
16 Kisugi
17 Masao
18 Kazuo
19 Sano
1A Hyuga
1B Soda
1C Jito
1D Matsuyama
1E Sorimachi
1F Sawada
20 Misugi
21 Wakabayashi [GK]
22 Wakashimazu [GK]
23 Satilste
24 Riverio
25 Da Silva
26 Meon [GK]
27 Toninho
28 Nei
29 Zagalo
2A Dirceu
2B Carlos
2C Santamaria
2D Jethrio
2E Jito
2F Sano
30 Masao
31 Kazuo
32 Soda
33 Nakanishi [GK]
34 Misugi
35 Matsuyama
36 Hyuga
37 Sorimachi
38 Sawada
39 Wakashimazu [GK]
3A Rampion
3B Victorino
3C Da Silva
3D Kapilman
3E Kaltz
3F Metzer
40 Wakabayashi [GK]
41 Hyuga
42 Nitta
43 Sano
44 Misaki
45 Misugi
46 Masao
47 Kazuo
48 Jitou
49 Ishizaki
4A Soda
4B Matsuyama
4C Wakashimazu [GK]
4D Li Han
4E Li Ban
4F Sya
50 Kim
51 Mach
52 Jaich [GK]
53 Lorima
54 Robson
55 Belaef
56 Lashin
57 Napoleon
58 Pierre
59 Esperana
5A Rampion
5B Hernandez [GK]
5C Islas
5D Ribta
5E Pascal
5F Satilst
60 Diaz
61 Babinton
62 Galvin
63 Schneider
64 Margis
65 Kaltz
66 Metzer
67 Schister
68 Kapilman
69 Muller [GK]
6A Carlos
6B Zagalo
6C Riverio
6D Nei
6E Santamaria
6F Toninho
70 Dottil
71 Amaral
72 Dirceu
73 Jethrio
74 Gertise [GK]
75 Coimbra

 

 

List 5 - Team id's:

00 = Sao Paolo
01 = Nankatsu
02 = Japan
03 = Fluminese
04 = Corinthians
05 = Gremio
06 = Palmeiras
07 = Santos
08 = Flamengo
09 = Kunimi
0A = Akita
0B = Tatsunami
0C = Musashi
0D = Furano
0E = Toho
0F = AS Roma
10 = Uruguay
11 = Hamburg SV
12 = Japan
13 = Syria
14 = China
15 = Iran
16 = Taiwan
17 = Saudi Arabia
18 = Korea
19 = Vasco Da Gama
1A = Poland
1B = England
1C = Russia
1D = France
1E = Mexico
1F = Italy
20 = Netherlands
21 = Argentina
22 = Germany
23 = Brazil
24 = Brazil

 

 

 

 ----------------------------------------------------------------------------------------------------

 I was planning on posting all my offsets here, but I no longer have to thanks the good friends of CT Elite, they have posted most of the important lists and ROM hacking guides, some of which are packed inside .rar archives. Thanks again to members of that site and to all the contributors who have documented their knowledge, your work will not be forgotten.

---------------------------------------------------------------------------------------------------- 

***********************************************************************************

 Note: All values preceded with 'x' are hex offsets, preceded with '$' are hex values.

***********************************************************************************

 Players' guts and speed:

 Manually setting up level guts amounts (400, 408, 416...)

x39F1E - x39FDD , 2 bytes per level
You can use a calculator to convert decimal to hexadecimal, the numbers will be inserted backwards.
Dec 400 = Hex 190
190 in hex editing = $90 01

 

Manually setting up player speed types:
(12 bytes per type)

x3AFBE = Type 00
x3AFCA = Type 01
x3AFD6 = Type 02
x3AFE2 = Type 03
x3AFEE = Type 04
x3AFFA = Type 05
x3B006 = Type 06
x3B012 = Type 07
x3B01E = Type 08
x3B02A = Type 09
x3B036 = Type 0A
x3B042 = Type 0B
x3B04E = Type 0C
x3B05A = Type 0D
x3B066 = Type 0E
x3B072 = Type 0F
x3B07E = Type 10
x3B08A = Type 11
x3B096 = Type 12
x3B0A2 = Type 13
x3B0AE = Type 14
x3B0BA = Type 15
x3B0C6 = Type 16
x3B0D2 = Type 17
x3B0DE = Type 18
x3B0EA = Type 19
x3B0F6 = Type 1A
x3B102 = Type 1B
x3B10E = Type 1C
x3B11A = Type 1D
x3B126 = Type 1E
x3B132 = Type 1F

Usage:  Beginning offset x395EA, there are 4 bytes for each player going in the order of [LIST 4], (1) player guts/stats type (2) speed type (3) attack tendency while own team possess (4) marking tendency when opponent posses. The second byte corresponds to the type number of speed I have listed above. If you want to manually speed up or slow down a speed type, the 12 bytes of speed type are classified as the following:

Bytes 1,2 = CPU Marking speed
Bytes 3,4 = Speed when player is running with the ball
Bytes 5,6 = CPU Motion speed when a teammate has possession
Bytes 7,8 = Your (gamer's) marking speed during opponent possession
Bytes 9,10 = Run after deflected ball from opponent
Bytes 11,12 = Run after deflected ball from teammate

Format: Byte 1 (short), Byte 2 (long), example: x3AFBE = $80, x3AFBF  = $03, if you change x3AFBE you will not notice a significant change in speed for speed type 00 since it is the short distance, but if you change x3AFBF the type 00 speed will noticeably change.

 

---

 

Manually Editing Enemy Players' Behavior:

Starting x39672, there are 12 bytes designated for how the opponent plays when in mid-field possession,
attacking, or under attack. x39672 contains the behavior of the first opponent personality (Satliste) and
the rest of the various opponent players take up 12 bytes each going onward. Here is a list of offsets
that take you to the 1st byte of the manual modification:

x39672 = Satilste
x3967E = Riverio
x3968A = Da Silva
x39696 = Meon [GK]
x396A2 = Toninho
x396AE = Nei
x396BA = Zagalo
x396C6 = Dirceu
x396D2 = Carlos
x396DE = Santamaria
x396EA = Jethrio
x396F6 = Jito
x39702 = Sano
x3970E = Masao
x3971A = Kazuo
x39726 = Soda
x39732 = Nakanishi [GK]
x3973E = Misugi
x3974A = Matsuyama
x39756 = Hyuga
x39762 = Sorimachi
x3976E = Sawada
x3977A = Wakashimazu [GK]
x39786 = Rampion
x39792 = Victorino
x3979E = Da Silva
x397AA = Kapilman
x397B6 = Kaltz
x397C2 = Metzer
x397CE = Wakabayashi [GK]
x397DA = Hyuga
x397E6 = Nitta
x397F2 = Sano
x397FE = Misaki
x3980A = Misugi
x39816 = Masao
x39822 = Kazuo
x3982E = Jitou
x3983A = Ishizaki
x39846 = Souta
x39852 = Matsuyama
x3985E = Wakashimazu [GK]
x3986A = Li Han
x39876 = Li Ban
x39882 = Sya
x3988E = Kim
x3989A = Mach
x398A6 = Jaich [GK]
x398B2 = Lorima
x398BE = Robson
x398CA = Belaef
x398D6 = Lashin
x398E2 = Napoleon
x398EE = Pierre
x398FA = Esperana
x39906 = Rampion
x39912 = Hernandez [GK]
x3991E = Islas
x3992A = Ribta
x39936 = Pascal
x39942 = Satilste
x3994E = Diaz
x3995A = Babinton
x39966 = Galvin
x39972 = Schneider
x3997E = Margis
x3998A = Kaltz
x39996 = Metzer
x399A2 = Schister
x399AE = Kapilman
x399BA = Muller [GK]
x399C6 = Carlos
x399D2 = Zagalo
x399DE = Riverio
x399EA = Nei
x399F6 = Santamaria
x39A02 = Toninho
x39A0E = Dottil
x39A1A = Amaral
x39A26 = Dirceu
x39A32 = Jethrio
x39A3E = Gertise [GK]
x39A4A = Coimbra
x39A56 = [GK] Fluminese
x39A62 = Fluminese 1
x39A6E = Fluminese 2
x39A7A = [GK] Corinthians
x39A86 = Corinthians 1
x39A92 = Corinthians 2
x39A9E = Gremio 1
x39AAA = Gremio 2
x39AB6 = [GK] Palmeiras
x39AC2 = Palmeiras 1
x39ACE = Palmeiras 2
x39ADA = [GK] Santos
x39AE6 = Santos 1
x39AF2 = Santos 2
x39AFE = [GK] Flamengo
x39B0A = Flamengo 1
x39B16 = Flamengo 2
x39B22 = [GK] Kunimi
x39B2E = Kunimi 1
x39B3A = Kunimi 2
x39B46 = [GK] Akita
x39B52 = Akita 1
x39B5E = Akita 2
x39B6A = Tatsunami 1
x39B76 = Tatsunami 2
x39B82 = [GK] Musashi
x39B8E = Musashi 1
x39B9A = Musashi 2
x39BA6 = [GK] Furano
x39BB2 = Furano 1
x39BBE = Furano 2
x39BCA = Toho 1
x39BD6 = Toho 2
x39BE2 = [GK] AS Roma
x39BEE = AS Roma 1
x39BFA = AS Roma 2
x39C06 = [GK] Uruguay
x39C12 = Uruguay 1
x39C1E = Uruguay 2
x39C2A = Hamburg 1
x39C36 = Hamburg 2
x39C42 = [GK] Syria
x39C4E = Syria 1
x39C5A = Syria 2
x39C66 = [GK] China
x39C72 = China 1
x39C7E = China 2
x39C8A = [GK] Iran
x39C96 = Iran 1
x39CA2 = Iran 2
x39CAE = [GK] Taiwan
x39CBA = Taiwan 1
x39CC6 = Taiwan 2
x39CD2 = [GK] Saudi Arabia
x39CDE = Saudi Arabia 1
x39CEA = Saudi Arabia 2
x39CF6 = [GK] Korea
x39D02 = Korea 1
x39D0E = Korea 2
x39D1A = [GK] Vasco Da Gama
x39D26 = Vasco Da Gama
x39D32 = Poland 1
x39D3E = Poland 2
x39D4A = [GK] England
x39D56 = England 1
x39D62 = England 2
x39D6E = Russia 1
x39D7A = Russia 2
x39D86 = [GK] France
x39D92 = France 1
x39D9E = France 2
x39DAA = [GK] Mexico
x39DB6 = Mexico 1
x39DC2 = Mexico 2
x39DCE = Italy 1
x39DDA = Italy 2
x39DE6 = [GK] Netherlands
x39DF2 = Netherlands 1
x39DFE = Netherlands 2
x39E0A = [GK] Argentina
x39E16 = Argentina
x39E22 = Germany
x39E2E = Furano aggressive
x39E3A = Diaz (selfish)
x39E46 = Schneider aggressive
x39E52 = ?




Properties of each byte:

(DF, MF, FW)
Byte 1 = Guts/stats
Byte 2 = Speed
Byte 3 = Attacking tendency
Byte 4 = Marking tendency
Byte 5 = Action preference 1 (their turn to attack)
Byte 6 = Action preference while they control in your penalty area
Byte 7 = Type of defense while they control in their penalty area
Byte 8 = Action preference during clash (your turn to attack)
Byte 9 = Aerial competition 1
Byte 10 = Aerial competition 2
Byte 11 = Action preference 2 (their turn to attack)
Byte 12 = Default at 0

Explaining the value meaning of some of the bytes:

-Bytes 5 and 11: A combination of these two values determine which action the player prefers at a given
field position, whether it is passing, 1.2, shooting, or going forward himself. There are over 400
possible combinations that can be used to give an enemy player or a set of enemy players their own
playing style. I recommend reviewing the combinations of popular players to be familiar with what these
numbers do. For example the Toninho that plays in Palmeiras has a different combination than Brazil's
Toninho, Palmeiras's Toninho has a $00,$03 combo ($00 at x396A6 which is the 5th byte, and $03 at x396AC
which is the 11th byte) while Brazil's Toninho has a combination of $12,$2A which gives him more of a shooting style.

-Byte 6: Changing this value will change what the enemy player does when controlling the ball in our
penalty kick area. A value of $06 will have enemy player shooting 100% of the time. Other values exchange
between trap, pass, shoot, throw.

-Byte 7: When the enemy player has the ball and clears it from their own penalty kick area, a value of
$05 will blow your player away when you try to compete but the enemy is successful in clearing. A value
of $00 will be what most teams have. Iran and certain aggressive defenders have this value set at $05 to
hurt your players any chance they get.

-Byte 8: When enemy player faces yours, a value of $03 will have the enemy tackling your players 100%.
Having $00 does pass-cuts, blocks, tackles evenly. $02 does everything but pass-cut, and $06 does the
killer tackles Iran and Korea use 100% of the time.

-Bytes 9 and 10: Clear and compete. These two values are normally equal and they decide how the enemy
player will react when you are in control of the ball in your or their penalty area. Setting these values
to $02 will result in killer moves by the enemy player.



(GK)
Byte 1 = Guts/stats
Byte 2 = unused
Byte 3 = unused
Byte 4 = Saving type: $03 = Punch only, $05 = catch only, $04 = Triangle jump, punch
Byte 5 = Aerial reaction: $03 = Stay, $04 = Jump, $02 = Clever reaction
Byte 6 = unused
Byte 7 = unused
Byte 8 = unused
Byte 9 = unused
Byte 10 = unused
Byte 11 = used, not sure what it does
Byte 12 = unused

 

=======================================================================
Important note: Never put any original Sao Paolo, Nankatsu, or Japan players or GK's in enemy position, they are not meant to be played by CPU and will most likely cause the game to crash. Players with id $01-$22 [LIST 4] have only 4 designated bytes instead of 12 so when put in enemy position they will read beyond their address and will use a following player's data as bytes 5-12. Since there are more CPU intended players than human intended, it would make sense to edit another CPU player if for example a CPU Tsubasa needed, never use the actual Tsubasa (id=$01), instead apply Tsubasa's attributes to a player with id $23-$75.
=======================================================================

 

Enemy Team Corner Kicks:

Since constructing an enemy teams and star placements in their roster has already been documented, I will
get into the detail of which player number from each enemy team kicks corners, and whom they choose to
pass the ball to. Depending on how many star players you place with each enemy team, details might
change. The only offsets that remain constant are addresses:

(2 bytes per enemy team)
Level 1 (default: Fluminese) = x3BAC2
Level 2 (default: Corinthians) = x3BAC4
Level 3 (default: Gremio) = x3BAC6
Level 4 (default: Palmeiras) = x3BAC8
Level 5 (default: Santos) = x3BACA
Level 6 (default: Flamengo) = x3BACC
Level 7 (default: Kunimi) = x3BACE
Level 8 (default: Akita) = x3BAD0
Level 9 (default: Tatsunami) = x3BAD2
Level 10 (default: Musashi) = x3BAD4
Level 11 (default: Furano) = x3BAD6
Level 12 (default: Toho) = x3BAD8
Level 13 (default: AS Roma) = x3BADA
Level 14 (default: Uruguay) = x3BADC
Level 15 (default: Hamburg SV) = x3BADE
Level 16 (default: Japan) = x3BAE0
Level 17 (default: Syria) = x3BAE2
Level 18 (default: China) = x3BAE4
Level 19 (default: Iran) = x3BAE6
Level 20 (default: Taiwan) = x3BAE8
Level 21 (default: Saudi Arabia) = x3BAEA
Level 22 (default: Korea) = x3BAEC
Level 23 (default: Vasco Da Gama) = x3BAEE
Level 24 (default: Poland) = x3BAF0
Level 25 (default: England) = x3BAF2
Level 26 (default: Russia) = x3BAF4
Level 27 (default: France) = x3BAF6
Level 28 (default: Mexico) = x3BAF8
Level 29 (default: Italy) = x3BAFA
Level 30 (default: Netherlands) = x3BAFC
Level 31 (default: Argentina) = x3BAFE
Level 32 (default: Germany) = x3BB00
Level 33 (default: Brazil) = x3BB02
Level 34 (default: Brazil) = x3BB04

To edit the corner behavior of enemy 1 (Fluminese) follow these instructions:
-Jump to offset x3BAC2
-x3BAC2 reads F6 BA, which addresses x3BAF6+10(header) = x3BB06
-To get to the corner kick specifier, add 6 to x3BB06, x3BB06+6 = x3BB0C
-Jump to x3BB0C, read the value. If the value is $A0, the enemy corner kicker is player A = 10 (decimal)
For value XY, the corner kicker is player X(in decimal) of the enemy team.
-To change who kicks the corner change the first digit of that value (A in $A0)
-To change whether or not enemy defense move in your penalty area, change the 2nd digit of that value to
1, ($A0 to $A1)
-To change the corner behavior, change the 2 offsets below our offset x3BB0C which means we are now
dealing with x3BB0D and x3BB0E for corner pass receiver and shooting behavior. Here are some combo values
that I have found for these offsets:

Combos: When No.9 passes
$05, 05 (x3BB0D to 05, x3BB0E to 05) = to 7, 8, 9, 11
$08, 08 = To 6, 7, 8, 11
$09, 09 = Shoot and to 8, 9
$0A, 0A = To 6, 7, 11
$0B, 0B = Shoots and to 11
$0C, 0C = To 9, 11
$0D, 0D = More shoot and to 11
$0E, 0E = To 6, more 8, and 11
$0F, 0F = shoot and to 11
$10, 10 = To 11
$11, 11 = 6, 7, 9, 11

Combos: When No.10 passes
$04, 04 = More shoot and pass to 9 sometimes
$05, 05 = To 9 and 4
$06, 06 = To 2 and 6
$07, 07 = To 11, 2, and shoot sometimes 6
$08, 08 = To 3, 4, 6, 7
$09, 09 = To 9, 11, and shoot sometimes
$0A, 0A = To 9 and 7 sometimes
$0B, 0B = Shoot, to 6, 7, 11
$0C, 0C = To 6, 7, 9, rarely 5
$0D, 0D = Shoot and to 9, 7 sometimes 8
$0E, 0E = To 9
$0F, 0F = To 11, 7, and 4
$10, 10 = To 9, sometimes shoot or to 3, 4
$11, 11 = To 6, sometimes 7
$12, 12 = Shoot and to random
$13, 13 = Shoot and to 5, 6, 7
$14, 14 = To 8, 5, 7, and 11
$15, 15 = To 7, 5, shoot
$16, 16 = To 11
$17, 17 = To 7, 9
$18, 18 = To 4
$19, 19 = To 11, 8, 4
$1A, 1A = To 9 and sometimes 11
$1B, 1B = To 8
$1C, 1C = To 11
$1D, 1D = To 4
$1E, 1E = To 9
$1F, 24 = To 5, 7, 8
$16, 25 = To 7, 8, 11


Combos: When 11 passes:
$16, 16 = To 2
$01, 01 = To 10, sometimes 8
$02, 02 = To 9, 10 sometimes 2
$05, 05 = Randomized
$1C, 1C = To 10


Use the same method to jump to desired corner kick offsets. You can find more useful combinations of your own,
above is not a full list of all possibilities.

 

 ----------------------------------------------------------------------------------------------------

Unsorted hacks:

Apply GK face closeups by player id [LIST 4]
x20633 = Lennart's face (default applied to player id=$02=Lennart)
x20634 = Morisaki, x20635 = Wakabayashi, x20636 = Wakashimazu)

-

Disable GK confrontation (instant pass by GK) x3401A to $0E

-

Eliminate the chance of player's success while confronting GK: x34707 to $04

-

Apply anonymous generic enemy style to all players: x2022C to $AE

-

Enable special clear, compete ability to all your players: x38D78 to $98

-

Change graphics of Wakashimazu's triangle jump: x21C6D to any valid graphic address

-

Change sprite of Roberto in MEETING: xBE98

-

Change the graphics of team readiness (Let's go!...)
Sao Paolo: xA07C, xA07D
Nankatsu: xA07E, xA07F
Japan: xA080, xA081

Some configured values for readiness:
$F0 BF, nothing, game starts
$C4 BF, Nankatsu team ready
$CE BF, Japan team ready

-

Sprite ID's of player face close-ups during gameplay (good for searching)
$91 = Tsubasa, $93 = Lennart, $94 = Morisaki, $96,$97 = Misaki, $98,$99 = Ishizaki, $9A,$9B = Nitta, $9C =
Tachibana Japan, $9E = Hyuga Japan, $9F = Soda Japan, $A0 = Jito, $A1 = Matsuyama Japan, $A2 = Sawada
Japan, $A3 = Misugi Japan, $A4 = Wakabayashi, $A6 = Wakashimazu, $A8 = Meon, $A9 = Carlos Flamingo, $AA =
Jito Kunimi, $AB = Tachibana Akita, $AD = Soda Tatsunami, $AE = Misugi Musashi, $AF = Matsuyama Furano ,
$B0 = Hyuga Toho , $B1 = Sawada Toho $B2 = Victorino, $B3 = Kaltz Hamburg, $B4 = Napoleon, $B5 = Pierre,
$B6 = Paskal, $B7 = Diaz, $B8 = Schneider, $B9 = Kaltz Germany, $BA = Schister, $BB = Carlos Brazil, $BC = Coimbra


-

Redraw closeup sprites of star players:

x2C33A = Tsubasa ($50 A1)
x2C33C = Tachibana ($B5 A1)
x2C33E = Soda ($CC A1)

x2C342 = Sawada ($6A A2)
x2C344 = Ishizaki ($BF A2)

x2C34E = Kaltz ($B6 A4)
x2C35C = Jito ($95 A6)

x2C340 = Hyuga ($1F A2)
x2C348 = Diaz ($87 A3)
x2C34C = Carlos ($4D A4)
x2C350 = Schneider ($0D A5)
x2C354 = Pierre ($5D A5)
x2C356 = Napoleon ($BE A5)
x2C360 = Coimbra ($33 A7)

x2C346 = Misaki ($14 A3)
x2C34A = Pascal ($DA A3)
x2C352 = Schister ($44 A5)
x2C358 = Misugi ($0B A6)
x2C35A = Matsuyama ($32 A6)
x2C35E = Nitta ($E8 A6)
x2C362 = Victorino ($84 A7)

-

 
Manually edit special 1.2 combination gaphics:

Tsubasa/Misaki (Tsubasa starts)
x23C11: Misaki's face (Works for both starters)
x23C0B: Tsubasa's face (Works for both starters)
x23CAB: Misaki's return 1st
x23CB3: Tsubasa's return
x23CBB: Misaki's return 2nd

Tsubasa/Misaki (Misaki starts)
x23CC3: Tsubasa's return 1st
x23CCB: Misaki's return
x23CD3: Tsubasa's return 2nd

Diaz/Paskal:
x23D40, x23D50, x23D60: Diaz's returns
x23D38, x23D48, x23D58: Paskal's returns
Face closeups: x23C60 = Paskal, x23C67 = Diaz

Sawada/Hyuga:
x23CE2, x23CF2, x23D09: Sawada
x23CEA, x23D01, x23D11: Hyuga
Face closeups: x23C1C = Hyuga (Japan), x23C23 = Sawada (Japan)
x23C2D = Hyuga (Toho), x23C34 = Sawada (Toho)

Tachibana:
Returns: x23D20, x23D28, x23D30..
Face closeups: x23C3E, x23C45

Pierre/Napoleon:
x23D72, x23D84, x23D94: Pierre's returns
x23D7A, x23D8C: Napoleon
Face closeups: x23C71 = Napoleon, x23C78 = Pierre

-

Player with this id [LIST 4] has triangle jump (default=21=Wakashimazu) : x3D2F8

-

Change the function of 'catch' for all our GK's, x3D2BD to:
$01 Roll save
$02 Divide save
$03 Dark Illusion

-

'Catch only' function enabled (all our GK's) x3D2D2 to $4B

-

Applying generic anonymous player to all (another way) x20238 to $D1

-

Different face closeups for Drivd Shot: x20545 (default=$01=Tsubasa), x20549 (default=$60=Diaz)

-

Quicker way of applying special 1.2 graphics or swapping which pair has what graphics: x206F3 - x20703,
the values are player id's [LIST 4], for example if you want to apply Tsubasa's pre-configured 1.2
graphics to a different player change the $01 to one you can obtain from [LIST 4]


-

Pre-configured GK graphics by player id [LIST4]
Gertise: x20429
Wakashimazu Japan: x2042E
Wakashmazu Toho: x20432
Wakashimazu Japan (enemy): x20436
Wakabayashi Japan: x2052D
Wakabayashi Hamburg x20531
Morisaki: x20529

-

Special 1.2 combo palettes (color)
Misaki: Shirt = x3FCA0, shorts = x3FCA3
Tsubasa: Shirt = x3FC94, shorts = x3FC97
Diaz: Shirt = x3FCF4, shorts = x3FCF7
Paskal: Shirt = x3FD00, shorts = x3FD03

-

Change what Diaz's run for goal (Go!) does: x388B9

-

Guts consumption by going one step (default is $03, you lose 3 guts each step)
x3E330 = Regular (-3)
x3E33A = Misugi (-5)

-

List of pre-configured specials (starting offset only)
Pass: x3941A
Dribbe: x39420
1.2: x39435
Block: x39447
Tackle: x39456
Pass-cut: x3946A

-

Enable specials in menu (like: Drive Shot 200, Heel lift 90..etc) x3B3E
Format is: $player id, addresses, example: $01 55BB means Tsubasa has that list (id=$01) and it's detailed at x3B65.

-


Change the Tecmo rabbit: x6036

-

Disable 'Continue' xD0 to $89

-

Disable sound test: xE4 to $A6

-

Get rid of the trophy at the title screen: x2A8 to $E8

-

Change the functionality of 'Continue' x26BC

-

Change overtime rules: x19B $D0 (straight to PK for the 1st tournament)

-

Position of the trophy at title: x91C

-

Location of designing the title screen (starter) x11200

-

Kaslghnoon style goal celebration:
- x20446 to $EF, x20448 to $06
- At x222C5 write $A0 68 6B 52
- x21C48 to $00

-

Details of Jito's laugh after he scores with the Santono: x222B0

-

Stat numbers (8, 9, 10,...255) x39E5E

-

Music plays during MEETING, HALF TIME: x133, x26E3

-

Disable the loser screen (after you lose a game) x1FF to $5F

-

Change time:
Regular: x3D193 = 1st half, x3D195 = 2nd half, x3D197 = extra 1, x3D199 = extra 2
Extended: x3D19B = 1st half, x3D19D = 2nd half, x3D19F = extra 1, x3D1A1 = extra 2

Apply Extended play time (35 minutes) to enemy teams, refer to [LIST 5] for values:
x3D16B default is $0E = Toho
x3D16F default is $12 = Japan
x3D173 default is $1A = Poland and all teams after this value get 35 minutes game time

-

Disable instant music changes when possession changes: At x3C57F write: $4C62DB

-

Stepping delay: x3E169, changing to $00 will have players, time moving at a faster pace.

-

Freeze time: x3D1D3 to $04

-

Mute all tracks in sound test: x441D to $BE

-

Reset instead of going into sound test when A+B+Start is pressed: x4219 write: $4C4EC6

-

Resets after you lose a game: x2025 write: $4C4EC6

-

Disable sound FX during gameplay: x3EC09 to $2D

-

Disable the announcing of level-ups (does not disable level-ups) xBFA0 to $FF and x261A to $21

-

Player level-up routines: starting x39E7

-

Change who shoots enemy free kick (refer to [LIST 3] for position id's: x35E7A

-

Edit who kicks off (default is No.9 all teams) x3DAFE
Edit who is receives the pass during kickoff: x3DC92 - x3DC96

-

Change password rules: starting x2D9A

-

 

Tsubasa has Cyclone when playing against this team: x38D45 [LIST 5]

 

-

 

Edit which one of our team has bench players (refer to [LIST 5] for team id's)
Change all these offsets to the same value: x274C, x2B21, x35BDF, x35963

-

Edit when roster changes of our teams occur:
x4881 (default at level $06) Sao Paolo --> Nankatsu
x4885 (default at level $0C) Nankatsu --> Sao Paolo
x4889 (default at level $10) Sao Paolo --> Japan

-

Starters of lists:
x20704 = Clash/overhead kick personalities
x39666 = Player behavior
x3F425 = Team names (during game)
x3DB8 = Team names at the vs screen (before game)
x2BA97 = Color of socks of shooting player
x38E2B = Player specials
x28901 = Appearance (face type)
x2B821 = Player palettes during gameplay
x3F33B = Player names

----------------------------------------------------------------------------------------------------

 

Modifying the NSF Music of Captain Tsubasa 2:

Tracks List by Sound Test:

Track 0:
Channels = x1F7BD
Main = x18C98

Track 1:
Channels = x1C974
Main = x18C72

Track 2:
Channels = x1EAB8
Main = x18C8A

Track 3:
Channels = x1E31F
Main = x18C92

Track 4:
Channels = x1E5F0
Main = x18C8E

Track 5:
Channels = x1CC3A
Main = x18C76

Track 6:
Channels = x1CA95
Main = x18C74

Track 7:
Channels = x1E167
Main = x18C8C

Track 8:
Channels = x1E858
Main = x18C90

Track 9:
Channels = x1E208
Main = x18C96

Track 10:
Channels = x1E010
Main = x18C9C

Track 11:
Channels = x1D08A
Main = x18C78

Track 12:
Channels = x1D303
Main = x18C7A

Track 13:
Channels = x1CDF8
Main = x18C7E

Track 14:
Channels = x1C3A9
Main = x18C80

Track 15:
Channels = x1C010
Main = x18C82

Track 16:
Channels = x1D82F
Main = x18C84

Track 17:
Channels = x1D3AC
Main = x18C86

Track 18:
Channels = x1DB11
Main = x18C88

Track 19:
Channels = x1EC69
Main = x18C9A

Track 20:
Channels = x1E7E9
Main = x18C94

Track 21:
Channels = x18CD0
Main = x18C70

Track 22:
Channels = x1A010
Main = x18C4C

Track 23:
Channels = x1A2BA
Main = x18C4E

Track 24:
Channels = x1AB3A
Main = x18C6A

Track 25:
Channels = x1ABE5
Main = x18C6C

Track 26:
Channels = x1B8FA
Main = x18C6E

Track 27:
Channels = x1B524
Main = x18C60

Track 28:
Channels = x1B00A
Main = x18C5A

Track 29:
Channels = x1B739
Main = x18C66

Track 30:
Channels = x1BDC3
Main = x18C68

Track 31:
Channels = x1A771
Main = x18C56

Track 32:
Channels = x1AC89
Main = x18C58

Track 33:
Channels = x1BBAE
Main = x18C64

Track 34:
Channels = x1A5D6
Main = x18C52

Track 35:
Channels = x1A41B
Main = x18C50

Track 36:
Channels = x1B33D
Main = x18C5E

Track 37:
Channels = x1B1F0
Main = x18C5C

Track 38:
Channels = x1B69D
Main = x18C54

Track 39:
Channels = x1B93C
Main = x18C62

Track 40:
Channels = x18E78
Main = x18BEE

Track 41:
Channels = x18E99
Main = x18BF0

Track 42:
Channels = x18EDF
Main = x18BF2

Track 43:
Channels = x18FBD
Main = x18BF4

Track 44:
Channels = x18F24
Main = x18BF6

Track 45:
Channels = x190B4
Main = x18BF8

Track 46:
Channels = x19245
Main = x18BFA

Track 47:
Channels = x196DC
Main = x18BFC

Track 48:
Channels = x19759
Main = x18BFE

Track 49:
Channels = x19191
Main = x18C00

Track 50:
Channels = x191FA
Main = x18C02

Track 51:
Channels = x1912D
Main = x18C04

Track 52:
Channels = x19089
Main = x18C06

Track 53:
Channels = x18F6A
Main = x18C08

Track 54:
Channels = x18FCB
Main = x18C0A

Track 55:
Channels = x1943D
Main = x18C0C

Track 56:
Channels = x19472
Main = x18C0E

Track 57:
Channels = x194D6
Main = x18C10

Track 58:
Channels = x19DF4
Main = x18C12

Track 59:
Channels = x19E0D
Main = x18C14

Track 60:
Channels = x19369
Main = x18C16

Track 61:
Channels = x19663
Main = x18C18

Track 62:
Channels = x19E8F
Main = x18C1A

Track 63:
Channels = x19787
Main = x18C1C

Track 64:
Channels = x19B2E
Main = x18C1E

Track 65:
Channels = x19EE3
Main = x18C20

Track 66:
Channels = x19ADD
Main = x18C22

Track 67:
Channels = x19B60
Main = x18C24

Track 68:
Channels = x19BAD
Main = x18C26

Track 69:
Channels = x19F07
Main = x18C2C

Track 70:
Channels = x1953D
Main = x18C2E

Track 71:
Channels = x19567
Main = x18C30

Track 72:
Channels = x19CFE
Main = x18C32

Track 73:
Channels = x19D68
Main = x18C34

Track 74:
Channels = x19D83
Main = x18C36

Track 75:
Channels = x19A65
Main = x18C38

Track 76:
Channels = x197E6
Main = x18C3A

Track 77:
Channels = x19A87
Main = x18C3C

Track 78:
Channels = x19463
Main = x18C3E

Track 79:
Channels = x19813
Main = x18C40

Track 80:
Channels = x19AAA
Main = x18C42

Track 81:
Channels = x197AD
Main = x18C44

Track 82:
Channels = x1982B
Main = x18C46

Track 83:
Channels = x19C23
Main = x18C48

Track 84:
Channels = x19F56
Main = x18CA6

Track 85:
Channels = x1988E
Main = x18CA8

Track 86:
Channels = x198CD
Main = x18CAA

Track 87:
Channels = x19954
Main = x18CAC

Track 88:
Channels = x1999E
Main = x18CAE

Track 89:
Channels = x19CDB
Main = x18CB0

Track 90:
Channels = x199C4
Main = x18CB2

Track 91:
Channels = x19A0C
Main = x18CB4

Track 92:
Channels = x199F7
Main = x18CB8

Track 93:
Channels = x19FAC
Main = x18CBA

Track 94:
Channels = x19C45
Main = x18CBC

Track 95:
Channels = x19FDA
Main = x18CBE

Track 96:
Channels = x19C23
Main = x18C48

Track 97:
Channels = x19D18
Main = x18CC2

Track 98:
Channels = x19E6D
Main = x18CC4

Track 99:
Channels = x19E31
Main = x18CC6

 

Editing Captain Tsubasa 2 music:

Using the list above, decide which track from the CT2 sound test (A+B+Start at the title screen) you want to edit. The offsets described as 'main' decide which music plays at what track and they determine the starting position of channels. The 'channels' offset is where you mainly begin modifying the music. The music tracks use 4 different channel ID's from FX tracks. Here is a full list of channel ID's and their definitions:

$00 = Rectangle 1 (Sound FX)
$01 = Rectangle 2 (Sound FX)
$02 = Triangle (Sound FX)
$03 = PCM (Sound FX)
$04 = Rectangle 1 (Music)
$05 = Rectangle 2 (Music)
$06 = Triangle (Music)
$07 = PCM (Music)

 Format: $Channel#, $2 byte address, $Channel#, $2 byte address ..., $FF
Coding example: $04 0D A0 05 60 A1 06 FD A1 07 29 A2 FF...
Seeing as the 1st channel is an $04 (Rectangle 1, music) we know this is a music track.
$04 0D A0 Means that rectangle 1 of this track is located at x1A01D. Since all the sound data of CT2 is located inside bank x10000, this is how you calculate address presented:
Take the address $0D A0, reverse the byte order (write backwards) to make it A00D, add 10(hex) for the header and x10000 for the bank which makes it A00D+10+10000 = x1A01D


Complications due to 4-Bit coding with the sound offsets:

[LIST 1] shows you how to convert hex values to actual offsets in an 8-Bit environment. The sound section of Captain Tsubasa 2 does not use this format, it uses 4-Bit instead. Therefore there is need for another list which is the following:

8000 = 8000
9000 = 9000
A000 = A000
B000 = B000
C000 = A000
D000 = B000
E000 = A000
F000 = B000

The complications begin when entering offset x1C000 and higher. Unlike the 8-Bit system, seeing $04 0D A0 does not take us to offset x1A01D if you are in the x1C000 - x1FFFF zone, it will depend on where $04 0D A0 is coded:
x1C000 - 1DFFF: $04 0D A0 translates to offset x1C01D, $04 0D B0 translates to x1D01D
x1E000 - 1FFFF: $04 0D A0 translates to offset x1E01D, $04 0D B0 translates to x1F01D


Sound section prefix commands:
$E0 = Melody (usage example $E0 01)
$E2 = Instrument (usage example $E2 80)
$E3 = Volume (usage example $E3 07)
$E5 = Frequency (usage example $E5 0A)
$E8 = Loop maker (usage example $E8 11 A0)
$E9 = Partial play (usage example $E9 03 A3)
$EB = Repetition (usage example $EB 02)
$ED = Echo and vibration (usage example $ED 01)

Suffix commands:
$EA = End partial play (usage example $E9...28 2B EA)
$EC = End repetition (usage example $EB...16 17 EC)
$EF (sometimes EF F4) = End vibration or echo (usage example $ED...18 EF F4)
$FF = Stop

Disabling audio from channels:
Not all 4 of the channels have to perform in order to make music or sound FX. To disable a channel you address it to an offset that has the value $FF. To disable a channel without editing ROM data you can use an emulator that has volume control of channels besides the master volume.

Making your own music:
The best way to learn about channels and their significance is by attempting to create music. Understanding the commands and keys is very important as well as basic musical knowledge such as rhythm, pitch, chord, attack... I have discovered that the best way to learn about the channels and the functionality of commands is by disabling other channels and focusing on one channel at a time.


Foul glitch:
A different track from No.26 sound test is used when a foul occurs. The channels of the foul track begin at x19A2E. The glitch happens when a team's music uses sound test tracks other than 21 - 39, it is caused by partial play not corresponding to the correct data when a team's music is read from the x1C000-1FFFF (music used mostly for story cutscenes). To fix this foul glitch you must compromise by giving up track 21 (the commentator's theme) or a portion of it. The reason we need bytes from track 21 is because it is located in the x18000-x19FFF area which will not cause any error with partial play. To fix this annoying foul glitch, apply this patch.