Pokémon Pinball/ROM map

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a ROM map for Pokémon Pinball.

Ball

  • 0x154AD-0x154B2 - Ball IDs (upgrade)
  • 0x154B3-0x154B8 - Ball IDs (downgrade)
  • 0x15530-0x1554E - Subroutine that downgrades the current Ball
ld   a,(D47E) // Loads the old Ball ID in register a
ld   c,a
ld   b,00
ld   hl,54B3
add  hl,bc
ld   a,(hl) // Loads the new Ball ID at ROM 0x154B3 + old Ball ID
ld   (D47E),a // Updates the Ball ID in RAM 0xD47E
  • 0x180AC-0x180C0 - Initializes values when entering a Bonus Stage
ld   a,01
ld   (D7AC),a
ld   a,(D47E) // Loads the current Ball ID in register a
ld   (D481),a // Stores the Ball ID in RAM 0xD481 for the duration of the Bonus Stage
xor  a
ld   (D4C8),a
ld   (D47E),a // Set Ball ID to Poké Ball for the duration of the Bonus Stage
ld   (D49A),a
  • 0x1C129-0x1C158 - Restores values when exiting a Bonus Stage
ld   a,00
ld   (D4B3),a
ld   a,50
ld   (D4B4),a
ld   a,00
ld   (D4B5),a
ld   a,16
ld   (D4B6),a
xor  a
ld   (D4BD),a
ld   (D4BE),a
ld   (D4BB),a
ld   (D4BC),a
ld   (D496),a
ld   (D7AB),a
ld   (D7BE),a
ld   a,(D481) // Loads the previously stored Ball ID
ld   (D47E),a // Restores previous Ball ID
  • 0x300BB-0x30112 - Initializes values after losing a Ball
xor  a
ld   (D4C9),a
xor  a
ld   (D50B),a
ld   (D50C),a
ld   (D51D),a
ld   (D517),a
ld   (D51E),a
ld   hl,D50F
ldi  (hl),a
ldi  (hl),a
ldi  (hl),a
ldi  (hl),a
ld   (D4F0),a
ld   (D4F2),a
ld   hl,D5F9
ldi  (hl),a
ldi  (hl),a
ldi  (hl),a
ld   (D47E),a // Set Ball ID to Poké Ball
ld   (D611),a
ld   (D612),a
ld   (D628),a
ld   (D629),a
ld   (D62A),a
ld   (D62B),a
ld   (D62C),a
ld   (D62D),a
ld   (D62E),a
ld   (D613),a
inc  a
ld   (D482),a
ld   (D4EF),a
ld   (D4F1),a
ld   a,03
ld   (D610),a
ld   (ff00+8A),a