This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
pokemon_snap [2017/06/06 10:21] skeletons created |
pokemon_snap [2025/10/18 21:21] (current) |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Pokémon Snap ====== | + | ====== Pokémon Snap Hacking ====== |
| ~~NOTOC~~ | ~~NOTOC~~ | ||
| ==== Level Select ==== | ==== Level Select ==== | ||
| - | While playing, the current level ID can be found at **800AF3C0**(U). Tables of the levels script pointers can be found at **800AC03C**(U) and **800AC058**(U). The routine used for loading a level is at **800E303C**(U), where **A0** is the level ID to load. | + | While playing, the current level ID can be found at **800AF3C0**(U). Arrays of the levels script pointers can be found at **800AC03C**(U) and **800AC058**(U). The routine used for loading a level is at **800E303C**(U), where **A0** is the level ID to load. |
| ^ Value ^ Level Description ^ | ^ Value ^ Level Description ^ | ||
| Line 31: | Line 31: | ||
| | 0x18 | Unused Japanese Screen | | | 0x18 | Unused Japanese Screen | | ||
| - | //Discovered and documented by Skelux.// | + | The unused Japanese screen can be seen in the video below. |
| + | {{youtube>bNyJrvIFtZA?medium}} | ||
| ==== Level Data ==== | ==== Level Data ==== | ||
| Below is an incomplete list of level data locations in the USA ROM/RAM. | Below is an incomplete list of level data locations in the USA ROM/RAM. | ||
| Line 46: | Line 47: | ||
| **8009AE10**(U) loads the level script into memory, **8009B634**(U) loads some level-specific information. | **8009AE10**(U) loads the level script into memory, **8009B634**(U) loads some level-specific information. | ||
| - | //Discovered and documented by Skelux.// | ||
| ==== Model Data ==== | ==== Model Data ==== | ||
| The polygon data for Beach can be found at **0x5B0F80**(U) and the display list at **0x5B23B0**(U), other levels are yet to be documented. Below is a table of model data locations discovered for the USA ROM/RAM, this list is currently quite small. | The polygon data for Beach can be found at **0x5B0F80**(U) and the display list at **0x5B23B0**(U), other levels are yet to be documented. Below is a table of model data locations discovered for the USA ROM/RAM, this list is currently quite small. | ||
| Line 59: | Line 59: | ||
| | Mew | 0082F200 | - | | | Mew | 0082F200 | - | | ||
| - | //Discovered and documented by Skelux.// | ||
| ==== Music ==== | ==== Music ==== | ||
| A table of music sequences can be found at **0xAEFC10**(U)/**800604D0**(U). The current music ID playing is stored at **803A66C0**(U). | A table of music sequences can be found at **0xAEFC10**(U)/**800604D0**(U). The current music ID playing is stored at **803A66C0**(U). | ||
| Line 102: | Line 101: | ||
| | 0x24 | Mystic? | | | 0x24 | Mystic? | | ||
| - | //Discovered and documented by Skelux.// | ||
| ==== Player Movement ==== | ==== Player Movement ==== | ||
| All player data can be found at **80366BA4**(U). **800E3C50**(U) stores the player's rotation, **800E3C94/800E3CE0**(U) updates X position, **800E3CA4/800E3CE4**(U) updates Y position, and **800E3CB4/800E3CEC**(U) updated Z position. **800E3DFC**(U), **800E3E28**(U) and **800E3E94**(U) handle the transition into the next chunk of the level, while **800E3D9C**(U) determines whether to jump to the next section. The Beach second section object is found at **801FFAD0**(U) and the third section at **801FFDF0**(U), no further details have been documented. | All player data can be found at **80366BA4**(U). **800E3C50**(U) stores the player's rotation, **800E3C94/800E3CE0**(U) updates X position, **800E3CA4/800E3CE4**(U) updates Y position, and **800E3CB4/800E3CEC**(U) updated Z position. **800E3DFC**(U), **800E3E28**(U) and **800E3E94**(U) handle the transition into the next chunk of the level, while **800E3D9C**(U) determines whether to jump to the next section. The Beach second section object is found at **801FFAD0**(U) and the third section at **801FFDF0**(U), no further details have been documented. | ||
| - | //Discovered and documented by Skelux.// | ||
| ==== Miscellaneous Findings ==== | ==== Miscellaneous Findings ==== | ||
| The checksum for this game can be removed by deleting the assembly command at **0x658**(U). | The checksum for this game can be removed by deleting the assembly command at **0x658**(U). | ||
| Line 162: | Line 159: | ||
| //END | //END | ||
| - | |||
| - | //Discovered and documented by Skelux.// | ||