Bomberman (NES, Famicom Disk System)/ROM map

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a ROM map for Bomberman (NES, Famicom Disk System).

Text

* 1C54 to 1C55 = PPU Address (2088)
* 1C56 to 1C65 = Text "CONGRATULATIONS"
* 1C66 to 1C67 = PPU Address (20E4)
* 1C68 to 1C7D = Text "YOU HAVE SUCCEEDED IN"
* 1C7E to 1C7F = PPU Address (2122)
* 1C80 to 1C9B = Text "HELPING BOMBERMAN TO BECOME"
* 1C9C to 1C9D = PPU Address (2162)
* 1C9E to 1CAB = Text "A HUMAN BEING"
* 1CAC to 1CAD = PPU Address (21A4)
* 1CAE to 1CC9 = Text "MAYBE YOU CAN RECOGNIZE HIM"
* 1CCA to 1CCB = PPU Address (21E2)
* 1CCC to 1CE7 = Text "IN ANOTHER HUDSON SOFT GAME"
* 1CE8 to 1CE9 = PPU Address (224B)
* 1CEA to 1D04 = Text"GOOD BYE ENTER SECRET CODE"
* 21E6 to 21E7 = PPU Address (2269)
* 21E8 to 21F8 = Text "START   CONTINUE" (Title Screen)
* 21F9 to 21FA = PPU Address (22AA)
* 21FB to 21FE = Text "TOP" (Title Screen)
* 21FF to 2200 = PPU Address (22E3)
* 2201 to 221A = Text "TM AND (C) 1987 HUDSON SOFT" (Title Screen)
* 221B to 221C = PPU Address (232A)
* 221D to 2228 = Text "LICENSED BY" (Title Screen)
* 2229 to 222A = PPU Address (2364)
* 222B to 2243 = Text "NINTENDO OF AMERICA INC." (Title Screen)

Disassembly

(This code put the text of the title screen)
00:E1C0:A0 00     LDY #$00          (Y=$00=Counter)
00:E1C2:A2 05     LDX #$05          (X=$05=Number of text lines) (5)  
00:E1C4:20 E0 E1  JSR $E1E0         (Jump subrutine in $E1E0 to read byte)
00:E1C7:8D 06 20  STA $2006 = #$00  (Save first byte of PPU Address)
00:E1CA:20 E0 E1  JSR $E1E0         (Jump subrutine in $E1E0 to read byte)
00:E1CD:8D 06 20  STA $2006 = #$00  (Save second byte of PPU Address)
00:E1D0:20 E0 E1  JSR $E1E0         (Jump subrutine in $E1E0 to read byte. To put text)
00:E1D3:C9 FF     CMP #$FF          (Compare value. If value=$FF=End of string)
00:E1D5:F0 05     BEQ $E1DC         (If value=$FF=End of string jump to $E1DC to decrement X and put other text)
00:E1D7:8D 07 20  STA $2007 = #$00  (Put value of text in screen. Example: $53="S" of "START" in Title Screen)
00:E1DA:D0 F4     BNE $E1D0         (Jump to $E1D0 if not equal to $FF)
00:E1DC:CA        DEX               (X=X-1. X=Number of text lines)
00:E1DD:D0 E5     BNE $E1C4         (If not zero then jump to $E1C4 to put other text)
00:E1DF:60        RTS               (Return to subrutine) 
00:E1E0:B9 E5 E1  LDA $E1E5,Y @ $E1E5 = #$22  (A=value of byte in address $E1E5+Y)
00:E1E3:C8        INY                         (Y=Y+1)
00:E1E4:60        RTS                         (Return to subrutine)

00:E1E5-00:E242
(Info to put the five lines of text) 

Line 1 of text:
2269: PPU Address 
5354415254B0B0B0434F4E54494E5545     Text "START   CONTINUE" (Title Screen)
FF: End of line of text

Line 2 of text:
22AA: PPU Address 
544F50                               Text "TOP" (Title Screen)
FF: End of line of text

Line 3 of text:
22E3: PPU Address 
544DB0414E44B0FEB031393837B0485544534F4EB0534F4654     Text "TM AND (C) 1987 HUDSON SOFT" (Title Screen)
FF: End of line of text

Line 4 of text:
232A: PPU Address 
4C4943454E534544B04259               Text "LICENSED BY" (Title Screen)
FF: End of line of text

Line 5 of text:
2364: PPU Address 
4E494E54454E444FB04F46B0414D4552494341B0494E43FD       Text "NINTENDO OF AMERICA INC." (Title Screen)
FF: End of line of text