If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Notes:Final Fight One

From The Cutting Room Floor
Jump to navigation Jump to search

This page contains notes for the game Final Fight One.

Addresses correspond to the USA version unless noted otherwise.

Bonus Credits

Hardcoded string at GBA address $080953F8:

434150434F4D475559594C4D
 C A P C O M G U Y Y L M

Main:

Init.
080104F4 B5F0     push    r4-r7,r14                               ;26 300
080104F6 4647     mov     r7,r8                                   ;2  302
080104F8 B480     push    r7                                      ;10 312
080104FA 2402     mov     r4,2h                                   ;2  314 //Number of names to check (3)
080104FC 4F09     ldr     r7,=203E15Ch                            ;9  323 //Start address in RAM of the first name 
080104FE 480A     ldr     r0,=80953F8h                            ;9  332 //Start address of stored string CAPCOMGUYYLM
08010500 4680     mov     r8,r0                                   ;2  334
08010502 4646     mov     r6,r8                                   ;2  336
08010504 1C3D     mov     r5,r7                                   ;2  338

First Chance Mode
08010506 1C28     mov     r0,r5                                   ;2  340
08010508 1C31     mov     r1,r6                                   ;2  342
0801050A 2205     mov     r2,5h                                   ;2  344 //Names have 6 letters total to check
0801050C F05BF940 bl      806B790h                                ;10 354 //Compare entered letters to stored letters
08010510 2800     cmp     r0,0h                                   ;2  356 //Did all 6 letters match?
08010512 D10B     bne     801052Ch                                ;8  364 //Skip to Second Chance Mode Startup if match failed

First Chance Mode Success
08010514 3603     add     r6,3h                                   ;2  366 //Add $03 places to position in stored string CAPCOMGUYYLM
08010516 3510     add     r5,10h                                  ;2  368 //Add $10 places for next stored name in RAM
08010518 3C01     sub     r4,1h                                   ;2  370 //Subtract 1 from number of names to check
0801051A 2C00     cmp     r4,0h                                   ;2  372 //Were 3 names checked?
0801051C DAF3     bge     8010506h                                ;8  380 //Loop back to First Chance Mode if more names to check

Award 5 Credits
0801051E 2105     mov     r1,5h                                   ;2  382 //Award 5 credits if 3 names match CAPCOM, COMGUY, GUYYLM
08010520 E011     b       8010546h                                ;8  390 //Jump to Store Credits

Second Chance Mode Startup
0801052C 2C00     cmp     r4,0h                                   ;2  411 //Are you on the last name (ie, CAPCOM, COMGUY were successful)?
0801052E D109     bne     8010544h                                ;8  419 //Skip to Set 3 Credits if you failed on either of the first 2 names

Second Chance Mode
08010530 1C38     mov     r0,r7                                   ;2  421 //Start address in RAM of the first name ($0203E15C)
08010532 3020     add     r0,20h                                  ;2  423 //Add $20 = $0203E17C (the location of the third name in RAM)
08010534 4641     mov     r1,r8                                   ;2  425 //Start address of CAPCOMGUYYLM stored string ($080953F8)
08010536 3109     add     r1,9h                                   ;2  427 //Add $09 = $08095401 (YLM...)
08010538 2205     mov     r2,5h                                   ;2  429 //Names have 6 letters total to check*
0801053A F05BF929 bl      806B790h                                ;10 439 //Compare entered letters to stored letters
0801053E 2109     mov     r1,9h                                   ;2  441 //Award 9 credits
08010540 2800     cmp     r0,0h                                   ;2  443 //Did all 6 letters match?
08010542 D000     beq     8010546h                                ;8  451 //Skip to Store Credits if all letters matched

Set 3 Credits
08010544 2103     mov     r1,3h                                   ;2  453 //Set 3 credits (default)

Store Credits
08010546 4803     ldr     r0,=20215D8h                            ;9  462
08010548 7741     strb    r1,[r0,1Dh]                             ;5  467 //Store credits to RAM ($020215D8 + $1D = 020215F5)
0801054A BC08     pop     r3                                      ;4  471
0801054C 4698     mov     r8,r3                                   ;2  473
0801054E BCF0     pop     r4-r7                                   ;7  480
08010550 BC01     pop     r0                                      ;4  484
08010552 4700     bx      r0                                      ;8  492 //Exit

*If this operation is set to $2203 (mov r2,3h),  having '''YLM''' at the start of the third name will award 9 credits

Compare Letters:

Init.
0806B790 B510     push    r4,r14                                  ;14 148
0806B792 1C14     mov     r4,r2                                   ;2  150
0806B794 1C03     mov     r3,r0                                   ;2  152
0806B796 1C0A     mov     r2,r1                                   ;2  154
0806B798 2C03     cmp     r4,3h                                   ;2  156 //Are there more than 3 letters that need to be compared?
0806B79A D917     bls     806B7CCh                                ;8  164 //Skip to Compare Single Letter Progress if less than 4 letters that need to be compared

Unknown purpose, ???
0806B79C 4310     orr     r0,r2                                   ;2  166
0806B79E 2103     mov     r1,3h                                   ;2  168
0806B7A0 4008     and     r0,r1                                   ;2  170
0806B7A2 2800     cmp     r0,0h                                   ;2  172
0806B7A4 D112     bne     806B7CCh                                ;8  180
0806B7A6 E004     b       806B7B2h                                ;8  188 //Jump to Compare 4 Letters At Once

Matched 4 Letters At Once
0806B7A8 3304     add     r3,4h                                   ;2  190 //Add 4 to current place in name in RAM
0806B7AA 3204     add     r2,4h                                   ;2  192 //Add 4 to current place in stored string CAPCOMGUYYLM
0806B7AC 3C04     sub     r4,4h                                   ;2  194 //Subtract 4 from number of letters in named entered counter
0806B7AE 2C03     cmp     r4,3h                                   ;2  196 //Are there more than 3 letters still left to enter? (never the case)
0806B7B0 D90C     bls     806B7CCh                                ;8  204 //Skip to Compare Single Letter Progress if less than 4 letters left to check

Compare 4 Letters At Once
0806B7B2 6819     ldr     r1,[r3]                                 ;9  213 //Load 4 letters of name in RAM
0806B7B4 6810     ldr     r0,[r2]                                 ;4  217 //Load 4 letters from stored string CAPCOMGUYYLM
0806B7B6 4281     cmp     r1,r0                                   ;2  219 //Do they match?
0806B7B8 D0F6     beq     806B7A8h                                ;8  227 //Loop back to Matched 4 Letters At Once if successful 4 letter match
0806B7BA E007     b       806B7CCh                                ;8  235 //Jump to Compare Single Letter Progress

Compare Single Letter
0806B7BC 7818     ldrb    r0,[r3]                                 ;6  241 //Load single letter of name in RAM
0806B7BE 7811     ldrb    r1,[r2]                                 ;4  245 //Load single letter of name in ROM
0806B7C0 4288     cmp     r0,r1                                   ;2  247 //Do they match?
0806B7C2 D001     beq     806B7C8h                                ;8  255 //Skip to Letters Match if they match

Failed Match
0806B7C4 1A40     sub     r0,r0,r1                                ;2  257 //Fail (result will be non-zero)
0806B7C6 E006     b       806B7D6h                                ;8  265 //Exit

Letters Match
0806B7C8 3301     add     r3,1h                                   ;2  267 //Add 1 to get next letter of name in RAM
0806B7CA 3201     add     r2,1h                                   ;2  269 //Add 1 to get next letter from CAPCOMGUYYLM stored string

Compare Single Letter Progress
0806B7CC 1C20     mov     r0,r4                                   ;2  271 //Number of letters in name entered counter
0806B7CE 3C01     sub     r4,1h                                   ;2  273 //Subtract 1 from number of letters entered counter
0806B7D0 2800     cmp     r0,0h                                   ;2  275 //Have 6 letters been entered?
0806B7D2 D1F3     bne     806B7BCh                                ;8  283 //Loop back to Compare Single Letter if not finished yet

Successfully Matched All Letters
0806B7D4 2000     mov     r0,0h                                   ;2  285 //Success
0806B7D6 BD10     pop     r4,r15                                  ;19 304 //Exit

Debug Soft Reset

Check Debug Soft Reset Flag
0800BBDC 480B     ldr     r0,=20237D0h                            ;9  172
0800BBDE 7EC0     ldrb    r0,[r0,1Bh]                             ;4  176 //Soft reset debug flag address in RAM ($020237D0 + $1B = $020237EB)
0800BBE0 2800     cmp     r0,0h                                   ;2  178 //Is it on or off?
0800BBE2 D017     beq     800BC14h                                ;8  186 //Skip to $0800BC14 if off

Debug Soft Reset Flag On
0800BBE4 480A     ldr     r0,=20208D8h                            ;9  195 //RAM address for button presses
0800BBE6 8802     ldrh    r2,[r0]                                 ;4  199
0800BBE8 8840     ldrh    r0,[r0,2h]                              ;4  203
0800BBEA 4010     and     r0,r2                                   ;2  205
0800BBEC 2380     mov     r3,80h                                  ;2  207
0800BBEE 019B     lsl     r3,r3,6h                                ;2  209
0800BBF0 1C19     mov     r1,r3                                   ;2  211
0800BBF2 4008     and     r0,r1                                   ;2  213
0800BBF4 2800     cmp     r0,0h                                   ;2  215 //Is Select pressed?
0800BBF6 D00D     beq     800BC14h                                ;8  223 //Skip to $0800BC14 if Select not pressed

Select Button Pressed
0800BBF8 2080     mov     r0,80h                                  ;2  225
0800BBFA 0140     lsl     r0,r0,5h                                ;2  227
0800BBFC 4010     and     r0,r2                                   ;2  229
0800BBFE 2800     cmp     r0,0h                                   ;2  231 //Is Start pressed?
0800BC00 D008     beq     800BC14h                                ;8  239 //Skip to $0800BC14 if Start not pressed

Start Button Pressed
0800BC02 F05FFE43 bl      806B88Ch                                ;10 249 //Reset game

Bay Area Dog Bonuses

Load Pointer

08038FBC B500     push    r14                                     ;10 201
08038FBE 4B05     ldr     r3,=809EF1Ch                            ;9  210 //Pointer table start address
08038FC0 7E42     ldrb    r2,[r0,19h]                             ;6  216
08038FC2 0852     lsr     r2,r2,1h                                ;2  218
08038FC4 0092     lsl     r2,r2,2h                                ;2  220
08038FC6 18D2     add     r2,r2,r3                                ;2  222
08038FC8 6812     ldr     r2,[r2]                                 ;9  231
08038FCA F032FA77 bl      806B4BCh                                ;10 241 //Jump to specific dog

Exit
08038FCE BC01     pop     r0                                      ;9  272
08038FD0 4700     bx      r0                                      ;8  280

Pointers

Reverse values and subtract -1 from pointer to get actual start address
D98F0308 1st dog - add 10 points
1D900308 2nd dog - add 1 credit
B9900308 3rd dog - restore health
65900308 4th dog - add 1 life

Dog 1 - Add 10 Points

08038FD8 B530     push    r4,r5,r14                               ;18 60
08038FDA 1C05     mov     r5,r0                                   ;2  62
08038FDC 1C0C     mov     r4,r1                                   ;2  64
08038FDE F000F889 bl      80390F4h                                ;10 74  //Check player X and Y coords
08038FE2 7DE0     ldrb    r0,[r4,17h]                             ;6  80
08038FE4 0840     lsr     r0,r0,1h                                ;2  82
08038FE6 0040     lsl     r0,r0,1h                                ;2  84
08038FE8 1C29     mov     r1,r5                                   ;2  86
08038FEA 3194     add     r1,94h                                  ;2  88
08038FEC 1809     add     r1,r1,r0                                ;2  90
08038FEE 8808     ldrh    r0,[r1]                                 ;6  96  //Load 16-bit timer
08038FF0 281D     cmp     r0,1Dh                                  ;2  98  //Has 1 second passed? #$001E = 30 frames
08038FF2 D907     bls     8039004h                                ;8  106 //Skip to Fail if not enough time has elapsed

Success
08038FF4 1C20     mov     r0,r4                                   ;2  108
08038FF6 2102     mov     r1,2h                                   ;2  110 //#$02 = 10pts
08038FF8 F7D3FD3E bl      800CA78h                                ;10 120 //Add score
08038FFC 1C28     mov     r0,r5                                   ;2  122
08038FFE 1C21     mov     r1,r4                                   ;2  124
08039000 F000F804 bl      803900Ch                                ;10 134 //Reset timer

Fail
08039004 BC30     pop     r4,r5                                   ;13 147
08039006 BC01     pop     r0                                      ;9  156
08039008 4700     bx      r0                                      ;8  164

Reset Timer (shared)
0803900C 7DC9     ldrb    r1,[r1,17h]                             ;6  172
0803900E 0849     lsr     r1,r1,1h                                ;2  174
08039010 0049     lsl     r1,r1,1h                                ;2  176
08039012 3094     add     r0,94h                                  ;2  178
08039014 1840     add     r0,r0,r1                                ;2  180
08039016 2100     mov     r1,0h                                   ;2  182
08039018 8001     strh    r1,[r0]                                 ;7  189 //Store #0000 to reset timer
0803901A 4770     bx      r14                                     ;8  197

Dog 2 - Add 1 Credit

0803901C B570     push    r4-r6,r14                               ;22 255
0803901E 1C05     mov     r5,r0                                   ;2  257
08039020 1C0E     mov     r6,r1                                   ;2  259
08039022 F000F867 bl      80390F4h                                ;10 269 //Check player X and Y coords
08039026 7DF1     ldrb    r1,[r6,17h]                             ;4  212
08039028 0849     lsr     r1,r1,1h                                ;2  214
0803902A 0049     lsl     r1,r1,1h                                ;2  216
0803902C 1C28     mov     r0,r5                                   ;2  218
0803902E 3094     add     r0,94h                                  ;2  220
08039030 1840     add     r0,r0,r1                                ;2  222
08039032 8801     ldrh    r1,[r0]                                 ;4  226 //Load 16-bit timer
08039034 4809     ldr     r0,=4AFh                                ;9  235
08039036 4281     cmp     r1,r0                                   ;2  237 //Has 20 seconds passed? #$04B0 = 1200 frames
08039038 D90D     bls     8039056h                                ;8  245 //Skip to Fail if not enough time has elapsed

Check Credits
0803903A 4C09     ldr     r4,=20215D8h                            ;9  135
0803903C 7F60     ldrb    r0,[r4,1Dh]                             ;6  141 //Load credits $020215F5
0803903E 2808     cmp     r0,8h                                   ;2  143 //Does player have more than 8 credits?
08039040 D809     bhi     8039056h                                ;8  151 //Skip to Fail if player already has 9 credits

Success
08039042 205C     mov     r0,5Ch                                  ;2  153 //Sound effect index #$5C
08039044 F7D3FD50 bl      800CAE8h                                ;10 163 //Play sound effect
08039048 7F60     ldrb    r0,[r4,1Dh]                             ;6  169 //Load credits $020215F5
0803904A 3001     add     r0,1h                                   ;2  171 //Add 1 credit
0803904C 7760     strb    r0,[r4,1Dh]                             ;7  178 //Store credits $020215F5
0803904E 1C28     mov     r0,r5                                   ;2  180
08039050 1C31     mov     r1,r6                                   ;2  182
08039052 F7FFFFDB bl      803900Ch                                ;10 192 //Reset timer

Fail
08039056 BC70     pop     r4-r6                                   ;17 209
08039058 BC01     pop     r0                                      ;9  218
0803905A 4700     bx      r0                                      ;8  226

Dog 4 - Add 1 Life

Check Max Lives Flag
08039064 B530     push    r4,r5,r14                               ;22 234
08039066 1C04     mov     r4,r0                                   ;2  236
08039068 1C0D     mov     r5,r1                                   ;2  238
0803906A 7960     ldrb    r0,[r4,5h]                              ;6  244
0803906C 2800     cmp     r0,0h                                   ;2  246 //Is the flag set to disable bonus (#$01)?
0803906E D120     bne     80390B2h                                ;8  254 //Skip to Fail if max lives flag is true

Main
08039070 1C20     mov     r0,r4                                   ;2  256
08039072 F000F83F bl      80390F4h                                ;10 266 //Check player X and Y coords
08039076 7DE9     ldrb    r1,[r5,17h]                             ;6  272
08039078 0849     lsr     r1,r1,1h                                ;2  274
0803907A 0049     lsl     r1,r1,1h                                ;2  276
0803907C 1C20     mov     r0,r4                                   ;2  278
0803907E 3094     add     r0,94h                                  ;2  280
08039080 1840     add     r0,r0,r1                                ;2  282
08039082 8801     ldrh    r1,[r0]                                 ;6  288 //Load 16-bit timer
08039084 4808     ldr     r0,=707h                                ;9  297
08039086 4281     cmp     r1,r0                                   ;2  299 //Has 30 seconds passed? #$0708 = 1800 frames
08039088 D913     bls     80390B2h                                ;8  307 //Skip to Fail if not enough time has elapsed

0803908A 1C29     mov     r1,r5                                   ;2  309
0803908C 319B     add     r1,9Bh                                  ;2  311
0803908E 7808     ldrb    r0,[r1]                                 ;6  317 //Load player lives
08039090 2809     cmp     r0,9h                                   ;2  319 //Does player have 9 lives?
08039092 D80B     bhi     80390ACh                                ;8  327 //Skip to Disable Bonus if player has max lives

Success
08039094 3001     add     r0,1h                                   ;2  329 //Add 1 life
08039096 7008     strb    r0,[r1]                                 ;7  336 //Store player lives
08039098 1C28     mov     r0,r5                                   ;2  338
0803909A F004FBB7 bl      803D80Ch                                ;10 348 //Refresh HUD to show updated lives
0803909E 1C20     mov     r0,r4                                   ;2  350
080390A0 1C29     mov     r1,r5                                   ;2  352
080390A2 F7FFFFB3 bl      803900Ch                                ;10 362 //Reset timer

Disable Bonus
080390AC 7960     ldrb    r0,[r4,5h]                              ;6  380
080390AE 3001     add     r0,1h                                   ;2  382 //Set flag to disable bonus
080390B0 7160     strb    r0,[r4,5h]                              ;7  389

Fail
080390B2 BC30     pop     r4,r5                                   ;15 404
080390B4 BC01     pop     r0                                      ;9  413
080390B6 4700     bx      r0                                      ;8  421

Dog 3 - Restore Health

080390B8 B530     push    r4,r5,r14                               ;22 243
080390BA 1C05     mov     r5,r0                                   ;2  245
080390BC 1C0C     mov     r4,r1                                   ;2  247
080390BE F000F819 bl      80390F4h                                ;10 257 //Check player X and Y coords
080390C2 7DE0     ldrb    r0,[r4,17h]                             ;6  263
080390C4 0840     lsr     r0,r0,1h                                ;2  265
080390C6 0040     lsl     r0,r0,1h                                ;2  267
080390C8 1C29     mov     r1,r5                                   ;2  269
080390CA 3194     add     r1,94h                                  ;2  271
080390CC 1809     add     r1,r1,r0                                ;2  273
080390CE 8808     ldrh    r0,[r1]                                 ;6  279 //Load 16-bit timer
080390D0 2801     cmp     r0,1h                                   ;2  281 //Has 2 frames passed? (30 units health restored/second)
080390D2 D90C     bls     80390EEh                                ;8  289 //Skip to Fail if not enough time has elapsed

Check Health
080390D4 8B62     ldrh    r2,[r4,1Ah]                             ;6  295
080390D6 201A     mov     r0,1Ah                                  ;2  297
080390D8 5E21     ldsh    r1,[r4,r0]                              ;4  301 //Current HP
080390DA 231E     mov     r3,1Eh                                  ;2  303
080390DC 5EE0     ldsh    r0,[r4,r3]                              ;8  311 //Max HP
080390DE 4281     cmp     r1,r0                                   ;2  313 //Is health fully restored?
080390E0 DA05     bge     80390EEh                                ;8  321 //Skip to Fail if already at maximum health

Success
080390E2 1C50     add     r0,r2,1                                 ;2  323 //HP +1
080390E4 8360     strh    r0,[r4,1Ah]                             ;7  330 //Store to Current HP
080390E6 1C28     mov     r0,r5                                   ;2  332
080390E8 1C21     mov     r1,r4                                   ;2  334
080390EA F7FFFF8F bl      803900Ch                                ;10 344 //Reset timer

Fail
080390EE BC30     pop     r4,r5                                   ;13 357
080390F0 BC01     pop     r0                                      ;9  366
080390F2 4700     bx      r0                                      ;8  374

Check X And Y Coords

080390F4 1C03     mov     r3,r0                                   ;2  126
080390F6 1C0A     mov     r2,r1                                   ;2  128
080390F8 8950     ldrh    r0,[r2,0Ah]                             ;7  135
080390FA 8959     ldrh    r1,[r3,0Ah]                             ;7  142
080390FC 1A40     sub     r0,r0,r1                                ;2  144
080390FE 0400     lsl     r0,r0,10h                               ;2  146
08039100 0C00     lsr     r0,r0,10h                               ;2  148
08039102 280F     cmp     r0,0Fh                                  ;2  150 //16 pixel window for X coord
08039104 D813     bhi     803912Eh                                ;8  158 //Skip to Fail if player is outside the boundary

08039106 89D0     ldrh    r0,[r2,0Eh]                             ;7  165 //Get player current Y coord
08039108 384A     sub     r0,4Ah                                  ;2  167 //Note: value of #$4A, #$4B, #$4C, #$4D = player is within window 
0803910A 0400     lsl     r0,r0,10h                               ;2  169
0803910C 0C00     lsr     r0,r0,10h                               ;2  171
0803910E 2803     cmp     r0,3h                                   ;2  173 //4 pixel window for Y coord
08039110 D80D     bhi     803912Eh                                ;8  181 //Skip to Fail if player is outside the boundary

Success
08039112 7DD0     ldrb    r0,[r2,17h]                             ;7  188
08039114 0840     lsr     r0,r0,1h                                ;2  190
08039116 0040     lsl     r0,r0,1h                                ;2  192
08039118 1C19     mov     r1,r3                                   ;2  194
0803911A 3194     add     r1,94h                                  ;2  196
0803911C 1809     add     r1,r1,r0                                ;2  198
0803911E 8808     ldrh    r0,[r1]                                 ;6  204 //Load timer
08039120 3001     add     r0,1h                                   ;2  206 //Timer +1
08039122 8008     strh    r0,[r1]                                 ;7  213 //Store timer
08039124 1C19     mov     r1,r3                                   ;2  215 
08039126 3158     add     r1,58h                                  ;2  217
08039128 20FE     mov     r0,0FEh                                 ;2  219
0803912A 7008     strb    r0,[r1]                                 ;7  226
0803912C E009     b       8039142h                                ;8  234

Fail
0803912E 7DD0     ldrb    r0,[r2,17h]                             ;7  241
08039130 0840     lsr     r0,r0,1h                                ;2  243
08039132 0040     lsl     r0,r0,1h                                ;2  245
08039134 1C19     mov     r1,r3                                   ;2  247
08039136 3194     add     r1,94h                                  ;2  249
08039138 1809     add     r1,r1,r0                                ;2  251
0803913A 2000     mov     r0,0h                                   ;2  253 //Reset timer
0803913C 8008     strh    r0,[r1]                                 ;7  260 //Store timer
0803913E 1C19     mov     r1,r3                                   ;2  262
08039140 3158     add     r1,58h                                  ;2  264

Unknown - related to the main status for the dog bonuses
08039142 7808     ldrb    r0,[r1]                                 ;6  270
08039144 280F     cmp     r0,0Fh                                  ;2  272
08039146 D901     bls     803914Ch                                ;8  280
08039148 2004     mov     r0,4h                                   ;2  282 //Jump table index value for the next step (change dog animation)?
0803914A 7008     strb    r0,[r1]                                 ;7  289
0803914C 4770     bx      r14                                     ;8  297

Unused Text

Text Block $000042A4

This block is different from all the SNES versions. The text used for the debug TEST MODE is missing, as well as the prototype options screen and the CODDY vs. ANDORE battle. Interestingly, the unused Demo, Start/Options/Battle menu and Normal Mode/Battle Mode text is present.

$000042A4-$000024D9 are pointers to strings (+$000042A4)
Example: $000042A4 + $0036 = $000042DA (Demo string)
000042A0           3600 3600 3F00 5600 5600 9400 ....6.6.?.V.V...
000042B0 9400 9400 9400 9400 9400 9400 9400 9400 ................
000042C0 9400 9400 9400 B800 C800 F000 F000 F000 ................
000042D0 FF00 0B01 2A01 4901 6201 0820 6E7D 4445 ....*.I.b.. n}DE
000042E0 4D4F 0024 2446 7E50 5245 5353 2053 5441 MO.$$F~PRESS STA
000042F0 5254 2042 5554 544F 4E00 1620 0B7F 4E4F RT BUTTON.. ..NO
00004300 524D 414C 204D 4F44 4516 204B 7F42 4154 RMAL MODE. K.BAT
00004310 544C 4520 4D4F 4445 000A 20EE 7E53 5441 TLE MODE.. .~STA
00004320 5254 0E20 2E7F 4F50 5449 4F4E 530C 206E RT. ..OPTIONS. n
00004330 7F42 4154 544C 4500 1424 637F 2331 3938 .BATTLE..$c.#198
00004340 392C 3139 3930 0C25 6E7F 7879 7A7B 7C7D 9,1990.%n.xyz{|}
00004350 1024 757F 434F 2E2C 4C54 442E 1620 0A7F .$u.CO.,LTD.. ..
00004360 5055 5348 2020 5354 4152 5400 1020 8C7D PUSH  START.. .}
00004370 E0E1 E2E3 E4E5 E6E7 1024 AC7D F0F1 F2F3 .........$.}....
00004380 F4F5 F6F7 1628 EB7D E8E9 EAEB ECED EEEF .....(.}........
00004390 F8F9 FA00 1428 227D 4F48 2120 4D59 2043 .....("}OH! MY C
000043A0 4152 000E 2078 7F43 5245 4449 5420 0034 AR.. x.CREDIT .4
000043B0 24E3 7E23 4341 5043 4F4D 2043 4F2E 2C4C $.~#CAPCOM CO.,L
000043C0 5444 2E20 3139 3839 2031 3939 3000 3424 TD. 1989 1990.4$
000043D0 237F 2343 4150 434F 4D20 5553 412E 494E #.#CAPCOM USA.IN
000043E0 432E 2031 3938 3920 3139 3931 0028 2466 C. 1989 1991.($f
000043F0 7F4C 4943 454E 5345 4420 4259 204E 494E .LICENSED BY NIN
00004400 5445 4E44 4F00 1624 4B7E 5052 4553 5320 TENDO..$K~PRESS 
00004410 5354 4152 5400                          START.

Text Block $00046C66

This block has a prototype options screen from the SNES version with the stage select intact! If you try to force this menu to load (eg, change the pointer used for the "Thank You For Your Playing" end screen) it won't display correctly/fully as the GBA has a lower screen resolution. The options screen was entirely redone for the GBA version.

Also present is the high score initials entry screens ("POINT OF") for Cody and Haggar from the SNES version. Again, the GBA uses its own redone initials screen.

00046C60                1004 737E 434F 4E54 494E ........s~CONTIN
00046C70 5545 0000 1600 647C 4F50 5449 4F4E 204D UE....d|OPTION M
00046C80 4F44 4518 00C4 7C44 4946 4649 4355 4C54 ODE...|DIFFICULT
00046C90 597D 6118 0004 7D44 4946 4649 4355 4C54 Y}a...}DIFFICULT
00046CA0 597D 620C 0044 7D50 4C41 5945 520C 0084 Y}b..D}PLAYER...
00046CB0 7D45 5854 454E 440A 00C4 7D4D 5553 4943 }EXTEND...}MUSIC
00046CC0 0A00 047E 534F 554E 440C 0044 7E53 5445 ...~SOUND..D~STE
00046CD0 5245 4F12 0084 7E45 5854 5241 204A 4F59 REO...~EXTRA JOY
00046CE0 0A00 C47E 524F 554E 4408 0004 7F41 5245 ...~ROUND....ARE
00046CF0 4108 0044 7F45 5849 5400 0800 C47E 4558 A..D.EXIT....~EX
00046D00 4954 0018 04C4 7C44 4946 4649 4355 4C54 IT....|DIFFICULT
00046D10 597D 6100 1804 047D 4449 4646 4943 554C Y}a....}DIFFICUL
00046D20 5459 7D62 000C 0444 7D50 4C41 5945 5200 TY}b...D}PLAYER.
00046D30 0C04 847D 4558 5445 4E44 000A 04C4 7D4D ...}EXTEND....}M
00046D40 5553 4943 000A 0404 7E53 4F55 4E44 000C USIC....~SOUND..
00046D50 0444 7E53 5445 5245 4F00 1204 847E 4558 .D~STEREO....~EX
00046D60 5452 4120 4A4F 5900 0A04 C47E 524F 554E TRA JOY....~ROUN
00046D70 4400 0804 047F 4152 4541 0008 0444 7F45 D.....AREA...D.E
00046D80 5849 5400 1000 6A7C 504F 494E 5420 4F46 XIT...j|POINT OF
00046D90 0008 0073 7C43 4F44 5900 0C00 737C 4841 ...s|CODY...s|HA
00046DA0 4747 4152 0016 040E 7D41 2042 2043 2044 GGAR....}A B C D
00046DB0 2045 2046 1604 4E7D 4720 4820 4920 4A20  E F..N}G H I J 
00046DC0 4B20 4C16 048E 7D4D 204E 204F 2050 2051 K L...}M N O P Q
00046DD0 2052 1604 CE7D 5320 5420 5520 5620 5720  R...}S T U V W 
00046DE0 5816 040E 7E59 205A 202E 205E 205F 2020 X...~Y Z . ^ _  

Text Block $0006BDA8

(partial block)

The original SNES character select screen with only Cody and Haggar.

0006BDA8 237F 2334 5345 4C45 4354 2050 4C41 5945 #.#4SELECT PLAYE
0006BDB8 5200 257C 2010 434F 4459 317C 2018 4841 R.%| .CODY1| .HA
0006BDC8 4747 4152                               GGAR
Hmmm...
To do:
A "CODY!" string is also present in this block. Unused?