We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!
Notes:Super Punch-Out!! (SNES)
This page contains notes for the game Super Punch-Out!! (SNES).
Addresses are for the USA version unless noted.
Contents
Offsets (US)
ROM start / end address, SNES start / end address, type, is data compressed y/n, description
last updated 20180519 003291 003295 00B291 00B295 CODE N Check if Special Circuit completed 003296 00329B 00B296 00B29B CODE N 00329C 0032A2 00B29C 00B2A2 CODE N Ending main 0032A3 0034A9 00B2A3 00B4A9 CODE N Ending part 1 0034AA 003AA3 00B4AA 00BAA3 CODE N Ending part 2 0075D0 007F8F 00F5D0 00FF8F --- - UNUSED SPACE 007FC0 007FFF 00FFC0 00FFFF DATA N Cartridge header 04E936 04E94D 09E936 09E94D DATA N Suspected UNUSED SPACE 04E94E 04FFFF 09E94E 09FFFF PROTO N PROTOTYPE fragment (UNUSED SPACE up to ROM offset 04FF7F) 076D90 0773DC 0EED90 0EF3DC --- - UNUSED SPACE 09446D 09595F 12C46D 12D95F PROTO N PROTOTYPE fragment (exact match of ROM offset 09C46D-09D95F) 095960 095ABF 12D960 12DABF PROTO N PROTOTYPE fragment (not included in ROM offset 099CDB-09D95F fragment, matches up to ROM offset 0066B7-006816) 099CDB 09D95F 139CDB 13D95F PROTO N PROTOTYPE fragment (matches up to approx. ROM offset 002054-0066B6) 0B5ED1 0B5EDF 16DED1 16DEDF PROTO N PROTOTYPE fragment (exact match of ROM offset 006C26-006C34) 0BDE4E 0BDE7F 17DE4E 17DE7F PROTO N PROTOTYPE fragment (matches up to ROM offset 006BA3-006BD4) 0F624F 0F629F 1EE24F 1EE29F PROTO N PROTOTYPE fragment (exact match of ROM offset 006FA4-006FF4) 1B1895 1B197F 369895 36997F PROTO N PROTOTYPE fragment (matches up to ROM offset 001CA4-001D8E)
Offsets (JP)
ROM start / end address, SNES start / end address, type, is data compressed y/n, description
last updated 20180518 003296 00329A 00B296 00B29A CODE N Check if Special Circuit completed 00329B 0032A0 00B29B 00B2A0 CODE N 0032A1 0032A7 00B2A1 00B2A7 CODE N Ending main 006E13 007019 00EE13 00F019 CODE N Ending part 1 00701A 007613 00F01A 00F613 CODE N Ending part 2 007614 007F8F 00F614 00FF8F --- - UNUSED SPACE 007FC0 007FFF 00FFC0 00FFFF DATA N Cartridge header
- The ending subroutines were relocated to the end of the bank compared to the US version.
Prototype Fragments
There are many tiny fragments (especially at the ends of ROM banks), but this list uses only the largest found chunks necessary to recreate the prototype ROM bank.
xx8000 xx9894 Nothing yet found for this range xx9895 xx997F Fragment found at ROM offset 1B1895-1B197F, matches up to ROM offset 001CA4-001D8E, contains two differences xx9980 xx9CDA Nothing yet found for this range xx9CDB xxD95F Fragment found at ROM offset 099CDB-09D95F, matches up to approx. ROM offset 002054-0066B6 xxD960 xxDABF Fragment found at ROM offset 095960-095ABF, matches up to ROM offset 0066B7-006816, no differences except address shifts xxDAC0 xxDE4D Nothing yet found for this range xxDE4E xxDE7F Fragment found at ROM offset 0BDE4E-0BDE7F, matches up to ROM offset 006BA3-006BD4, no differences except address shifts xxDE80 xxDED0 Nothing yet found for this range xxDED1 xxDEDF Fragment found at ROM offset 0B5ED1-0B5EDF, exact match of ROM offset 006C26-006C34 xxDEE0 xxE24E Nothing yet found for this range xxE24F xxE29F Fragment found at ROM offset 0F624F-0F629F, exact match of ROM offset 006FA4-006FF4 xxE2A0 xxE94D Nothing yet found for this range xxE94E xxFFFF Fragment found at ROM offset 04E94E-04FFFF, matches up to ROM offset 00????-007FFF. Mostly UNUSED SPACE, some jump address shifts near very end and cartridge header differences
Differences
1B1895-1B197F Fragment
- Operations were swapped in two separate subroutines. Why? Good question.
Protoype ... $36/993F 8C 02 43 STY $4302 $36/9942 A9 7F LDA #$7F ... Final (US) .... $00/9D4B A9 7F LDA #$7F $00/9D4D 8C 02 43 STY $4302 ...
Protoype $36/994D C2 20 REP #$20 $36/994F A2 00 00 LDX #$0000 ... Final (US) $00/9D5C A2 00 00 LDX #$0000 $00/9D5F C2 20 REP #$20 ...
Ending
- The ending is missing in the prototype.
Prototype $13/AF11 AD 02 06 LDA $0602 [$00:0602] $13/AF14 30 06 BMI $06 [$AF1C] //branch to $AF1C if Special Circuit completed $13/AF16 A9 8E LDA #$8E $13/AF18 8D 00 0C STA $0C00 [$00:0C00] $13/AF1B 60 RTS Ending $13/AF1C 80 FE BRA $FE [$AF1C] //infinite loop! Final (US) $00/B291 AD 02 06 LDA $0602 [$00:0602] $00/B294 30 06 BMI $06 [$B29C] //branch to $B29C if Special Circuit completed $00/B296 A9 8E LDA #$8E $00/B298 8D 00 0C STA $0C00 [$00:0C00] $00/B29B 60 RTS Ending $00/B29C 20 A3 B2 JSR $B2A3 [$00:B2A3] //ending part 1 $00/B29F 20 AA B4 JSR $B4AA [$00:B4AA] //ending part 2
World Cicruit Checksum
- The prototype runs a checksum on the entire 32,768 bytes of the ROM bank.
Prototype ... $13/B069 A0 0B 42 LDY #$420B $13/B06C A2 00 80 LDX #$8000 //start address $8000 ... Final (US) ... $00/BBEF A0 09 42 LDY #$4209 $00/BBF2 A2 04 80 LDX #$8004 //start address $8004, skips the first 4 bytes ...
Name Entry Screen
$01/DF7D AE 90 00 LDX $0090 [$01:0090] //player 1 controller $01/DF80 E0 C0 00 CPX #$00C0 //buttons X + A $01/DF83 F0 0A BEQ $0A [$DF8F] //branch to $DF8F if match $01/DF85 E0 C0 10 CPX #$10C0 //buttons Start + X + A $01/DF88 F0 05 BEQ $05 [$DF8F] //branch to $DF8F if match $01/DF8A E0 40 10 CPX #$1040 //buttons Start + X $01/DF8D D0 09 BNE $09 [$DF98] //branch to $DF98 if no match
Misc.
For a quick victory when the battle starts, set these values in a debugger:
7E098F to 02 7E099F to 02 7E099D to 03