SA1

From Wiki - GameHacking.org
Revision as of 18:32, 30 November 2006 by Ugetab (talk | contribs)

Overview

The SNES SA1 chip is an expansion chip added to an SNES cart that both contains a portion of the game's coding, and executes that portion of code to affect normal SNES RAM, and the additional RAM accessed primarily by the SA1 chip programming. The additional RAM is also accessible by the SNES CPU's instructions.


There is no current information concerning hardware-based tests with Game Genie codes that change portions of ROM residing within the SA1.

Memory Mapping Comparison

Region 30:0000 - 30:3FFF is SA1 related due to the fact that some RAM is 00 mapped for SA1-using games:

Writes from the SNES CPU to 00:0000 - 00:3FFF region to change a mirrored region at 30:0000 - 30:3FFF region

00:0000 - 00:3FFF 30:0000 - 30:3FFF

SA1 Address: Reads/Writes to these addresses from the SA1 CPU translate to the below CPU-accessible addresses in SNES memory 00:4000 - 00:7FFF CPU Address: 40:0000 - 40:3FFF

SA1 Address Testing: If you wish to test writes made by the SA1 to memory, and see what area is changed, you can use the following code with Super Mario RPG (US), while in a 3D stage. You should fall through the ground, and be unaligned with the map, but have the value FE written to the address you chose.

Test SA1 Memory Writes (2 byte addresses, 0xFE written) C9C374A9 C9C375FE C9C378FF C9C3793F

Load value 0x00FE to write(could be made to load a 2-byte value) C9C374A9 C9C375FE

Address to write to(Writes to 3FFF with these values) C9C378FF C9C3793F