Pokémon Pinball/ROM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
m (Xkeeper moved page Pokémon Pinball:ROM map to Pokémon Pinball/ROM map: normalize subpages and titles)
 
(9 intermediate revisions by 2 users not shown)
Line 5: Line 5:
* <tt>0x154B3-0x154B8</tt> - Ball IDs (downgrade)
* <tt>0x154B3-0x154B8</tt> - Ball IDs (downgrade)
* <tt>0x15530-0x1554E</tt> - Subroutine that downgrades the current Ball
* <tt>0x15530-0x1554E</tt> - Subroutine that downgrades the current Ball
  ld  a,(D47E) // Loads the old Ball ID in register a
  ld  a,(D47E) // Loads the old Ball ID in register a
  ld  c,a
  ld  c,a
  ld  b,00
  ld  b,00
  ld  hl,54B3
  ld  hl,54B3
  add  hl,bc
  add  hl,bc
  ld  a,(hl) // Loads the new Ball ID from ROM <tt>0x154B3</tt> + old Ball ID
  ld  a,(hl) // Loads the new Ball ID at ROM '''0x154B3''' + old Ball ID
  ld  (D47E),a // Updates the Ball ID in RAM <tt>1:0xD47E</tt>
ld  (D47E),a // Updates the Ball ID in RAM '''0xD47E'''
 
* <tt>0x180AC-0x180C0</tt> - 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
 
* <tt>0x1C129-0x1C158</tt> - 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
 
* <tt>0x300BB-0x30112</tt> - 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
 
{{Internal Data|game=Pokémon Pinball}}

Latest revision as of 02:42, 24 January 2024

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