No edit summary |
mNo edit summary |
||
| Line 1: | Line 1: | ||
==Overview== | == 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. | 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. | 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== | == 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: | 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 | 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 | 00:0000 - 00:3FFF<br> | ||
30:0000 - 30:3FFF | 30:0000 - 30:3FFF | ||
SA1 Address: | SA1 Address: | ||
Reads/Writes to these addresses from the SA1 CPU translate to the below CPU-accessible addresses in SNES memory | Reads/Writes to these addresses from the SA1 CPU translate to the below CPU-accessible addresses in SNES memory<br> | ||
00:4000 - 00:7FFF | 00:4000 - 00:7FFF<br> | ||
CPU Address: | CPU Address:<br> | ||
40:0000 - 40:3FFF | 40:0000 - 40:3FFF | ||
SA1 Address Testing: | SA1 Address Testing:<br> | ||
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. | 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) | Test SA1 Memory Writes (2 byte addresses, 0xFE written)<br> | ||
C9C374A9 | C9C374A9<br> | ||
C9C375FE | C9C375FE<br> | ||
C9C378FF | C9C378FF<br> | ||
C9C3793F | C9C3793F | ||
Load value 0x00FE to write(could be made to load a 2-byte value) | Load value 0x00FE to write(could be made to load a 2-byte value)<br> | ||
C9C374A9 | C9C374A9<br> | ||
C9C375FE | C9C375FE | ||
Address to write to(Writes to 3FFF with these values) | Address to write to(Writes to 3FFF with these values)<br> | ||
C9C378FF | C9C378FF<br> | ||
C9C3793F | C9C3793F | ||
Revision as of 22:26, 6 December 2006
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