ROM map

From ZAMN Hacking
Revision as of 01:39, 8 April 2024 by Piranhaplant (talk | contribs)
Address Length Type Description Arguments/Return value
$80:8002 0xAC Code Initialize various SNES hardware registers None
$80:80AE 0xBE Code Main entry point of the game. Clears RAM and does various other initialization None
$80:816C 0x0D Code VBLANK interrupt handler None
$80:8179 0x80 Code Default (and only) VBLANK handler None
$80:81F9 0x10 Data The direction for each d-pad input direction x2[0x10]
$80:8209 0x01 Code Various interrupt handlers. Does nothing. None
$80:820A 0x3C Code Deletes all entities (except the current entity) and VBLANK and VBLANK end listeners None
$80:8246 0x02 Code Unused infinite loop None
$80:8248 0x16 Code Creates an entity for a player Y+A = [pointer32] Entity pointer
Returns A = [unit16] Entity ID
$80:825E 0x80 Code Creates an entity Y+A = [pointer32] Entity pointer
Returns A = [uint16] Entity ID
$80:82DE 0x30 Data Direct page address for each entity pointer16[0x18]
$80:830E 0x30 Data Starting stack address for each entity pointer16[0x18]
$80:833E 0x15 Code Entities return here when completed. Deletes the current entity and resumes the entity loop. None
$80:8353 0x45 Code Pauses the current entity for the given number of frames A = [uint16] Number of frames
$80:8398 0x16 Code Decrements the number of frames left to wait on each entity None
$80:83AE 0x27 Code Creates a VBLANK listener Y+A = [pointer32] Listener subroutine
Returns X = [uint16] Listener ID
$80:83D5 0x0B Code Deletes the given VBLANK listener A = [uint16] Listener ID
$80:83E0 0x38 Code Runs all the current VBLANK listeners None
$80:8418 0x25 Code Creates a VBLANK end listener Y+A = [pointer32] Listener subroutine
Returns X = [uint16] Listener ID
$80:843D 0x38 Code Runs all the current VBLANK end listeners None
$80:8475 0x0B Code Sets the sprite collision handler for the current entity Y+A = [pointer32] Handler subroutine
$80:8480 0x31 Code Runs the sprite collision handler for the given entity X = [uint16] Entity ID
Y = [sprite type] Type of sprite collided with
$80:84B1 0x65 Code Main game loop None
$80:8516 0xB9 Code Plays the current level None
$80:891A 0x19 Code Fades the screen in from black None
$80:8933 0x14 Code Fades the screen out to black None
$80:9C52 0x20 Code Fades the screen in from black asynchronously None
$80:9C72 0x1A Code Fades the screen out to black asynchronously None
$80:9D39 0x22 Code Gets a random value in the range 0-255 Returns A = [uint16] Random value
$80:9D6A 0x3C Code Gets the player that is using the given character A = [character x2] Character
Returns X = [uint16 x2] Player
$80:BE0C 0x2F Code Creates a sprite Returns A/Y = [pointer16] Sprite pointer
$81:8191 0x11 Code Marks the given one-shot entity as no longer needing to be spawned A = [uint16] One-shot entity index
$80:BE41 0x3C Code Deletes the given sprite A = [pointer16] Sprite pointer
$81:8000 0x24 Code Creates a sprite for a monster
$80:CC3B 0x11 Code Plays the given sound effect A = [uint16] Sound effect ID
$80:AE97 0x95 Code Gets whether the background is solid to monsters at the given position X = [int16] X position
Y = [int16] Y position
Returns C = [boolean] Whether it's solid
$80:BF67 0x61 Code Gets whether the given position is touching a sprite that is solid to monsters A = [pointer16] current sprite
X = [int16] X position
Y = [int16] Y position
Returns C = [boolean] Whether it's solid
$80:B2A5 0x5D Code Finds the closest player within the given distance on a single axis A = [uint16] Maximum single-axis distance
X = [int16] X position
Y = [int16] Y position
Returns A = [uint16] direction to player
Returns X = [uint16] single-axis distance to player
Returns Y = [pointer16] player sprite
$80:C7D9 0x40 Code Awards points to the given character N = [boolean] give to Julie
A = [uint16 bcd] number of points
$81:83A3 0x23 Code Show monster death animation and play sound A = [pointer16] Animation
X = [uint16] Do nothing if not equal to 0xF5F5
Y = [uint16] Sprite tile data bank
$81:83C6 0x3E Code Call from a monster's sprite collision handler to cause it to be bubbled Returns C = [boolean] Collision handler return value
$81:847E 0x58 Code Call from a monster's sprite collision handler to cause it to be frozen Returns C = [boolean] Collision handler return value
$81:8561 0x2A Data The base damage dealt by each weapon uint16[21]
$81:8506 0x3C Code Call from a monster's sprite collision handler to show a damage animation Returns C = [boolean] Collision handler return value
$80:B123 0x6C Code Finds the closest sprite for a monster to target X = [int16] X position
Y = [int16] Y position
Returns A = [uint16] distance to target
Returns X = [pointer16] target sprite
$80:B3F1 0x31 Code Sets the given sprite's X and/or Y positions to that of the target if they are within 1 pixel X = [pointer16] Sprite
Y = [pointer16] Target sprite
$80:B22A 0x35 Code Gets the direction from the given sprite to the given target sprite X = [pointer16] Sprite
Y = [pointer16] Target sprite
Returns A = [direction] Direction to target
$81:832C 0x1D Code Shows the given animation on the sprite stored in $08 A = [pointer16] Animation