-
Notifications
You must be signed in to change notification settings - Fork 4
Memory Map
Tony Lukasavage edited this page Jan 24, 2022
·
26 revisions
Address(es) | Description | Details |
---|---|---|
0018 | Game State |
|
001C | Currently loaded memory bank | |
0022 | Length of PPU instruction(s) to execute from the $700-$7FF range | |
0026 | Gameplay State |
|
0030 | objset, which determines which section of the map loads, as well as which pattern table loads for the enemies and NPCs |
|
0031 | Lives | |
0033 | Index of selected inventory section |
|
003D | Map Value 1 | |
003E | Map Value 2 | |
0037 | D-Pad Pushing |
|
0046 | Experience: 99XX | |
0047 | Experience: XX99 | |
0048 | Hearts: 99XX | |
0049 | Hearts: XX99 | |
004A | Weapon Bit Flag |
|
004C | Laurels | |
004D | Garlic | |
004E | Area prior to entering a door | saves value at $50 |
004F | Index of quest item selected in inventory |
|
0053 | Simon x position relative to map (low byte) | |
0054 | Simon x position relative to map (high byte) | |
0056 | Simon y position relative to map (low byte) | |
0057 | Simon y position relative to map (high byte) | |
0058 | Map X Chunk | |
0059 | Map X Position | |
005E | Temp variable for low byte of nametable position | |
005F | Temp variable for high byte of nametable position | |
006A | Simon Y Position | |
006D | Simon X Delta | |
0077 | Dialog writing text row | |
0078 | Dialog writing text column | |
007B | Dialog text timeout until next letter. | |
007C | Dialog text memory offset | |
007D | Dialog starting column |
|
007F |
|
07:EEA4:A5 7F LDA $007F = #$38 07:EEA6:0A ASL 07:EEA7:AA TAX 07:EEA8:BD 82 8B LDA $8B82,X @ $8BF2 = #$BF 07:EEAB:85 00 STA $0000 = #$BF 07:EEAD:BD 83 8B LDA $8B83,X @ $8BF3 = #$92 07:EEB0:85 01 STA $0001 = #$92where $92BF points to dialog text in memory |
0080 | Current Hit Points | |
0081 | Maximum Hit Points | |
0082 | Sun flag (0=Day, 1=Night) | MAY NOT BE ACCURATE |
0083 | Game Time (Days) | |
0084 | Game Time (Seconds) | |
0085 | Game Time (Minutes) | |
0086 | Game Time (Hours) (6-17 Day time, 18-5 Night time) | |
0087 | Counter for day/night palette shift. | |
0088 | Counter for day/night palette shift. | |
008B | Level | |
0090 | Index of selected weapon in inventory |
|
0091 | Inventory Bit Flag |
|
0092 | Carry Items Bit Flag |
|
00AE | Pulse sound effect enable (0 or 1) | |
00AF | Noise sound effect enable (0 or 1) | |
00B4 | Pulse sound effect id | |
00B5 | Noise sound effect id | |
00BA | Pulse sound effect pointer (low byte) | |
00BB | Noise sound effect pointer (low byte) | |
00C0 | Pulse sound effect pointer (high byte) | |
00C1 | Noise sound effect pointer (high byte) | |
00C6 | Pulse sound effect enable (0 or 1) | |
00C7 | Noise sound effect enable (0 or 1) | |
00F1 | Gamepad input mask |
|
00FC | PPU_SCROLL (y-axis) | |
00FD | PPU_SCROLL (x-axis) | |
00FE | PPU_MASK | |
00FF | PPU_CONTROL | |
0110-0150 | Music | |
0197 | Laurels effect countdown (laurels active if value greater than 0) | |
0200-02FF | OAM RAM | PPU OAM explanation on nesdev.com |
0300 | Simon Sprite Frame | |
0303-0305 | Weapon Frame | |
0306-030B | Object Frame | |
0318-031D | Object Palette | |
0324 | Simon Y Pos on Screen | |
0327-0329 | Weapon Y | |
032A-032F | Object Y | |
0336 | Simon Jumping Work (Y subpixel for floor drops) | |
0339-033B | Weapon Work 1? | |
033C | Object Work ? | |
0348 | Simon X Pos on Screen | |
034B-034D | Weapon X | |
034E-0353 | Object X | |
0360 | Object Work? | |
036C | Simon Y Delta | |
036F-0371 | Weapon Y Delta (Signed) | |
0372-0377 | Object Y Delta (Signed) | |
037E | Object Work ? | |
0381-0383 | Weapon Work 2? | |
0384 | Object Work? | |
0393-0395 | Weapon X Delta (Signed) | |
0396-039B | Object X Delta (Signed) | |
03B5 | When not zero, trigger simon whipping animation | |
03B7-03B9 | Weapon Index (See List) | |
03BA-03BF | Object Index (See List) | |
03D8 | Simon Action |
|
03DB-03DD | Weapon Flags | |
0402-0407 | Object Frame | |
040E | Movement flag? (00 | |
0420 | Simon Sprite Mirroring | |
0423-0425 | Weapon Sprite Mirroring | |
0426-042B | Object Sprite Mirroring | |
0434 | Whip |
|
0445 | Whip State |
|
0446 | Jumping Flag | |
0447-0449 | Weapon Flags | |
044A | Object Work? | |
0457 | Delay between next whip. | |
0458 | Simon x position relative to map prior to entering a door (low byte) | saves the value at $53 |
045C | Object Work? | |
046A | Simon x position relative to map prior to entering a door (high byte) | saves the value at $54 |
046E | Object Work? | |
047A | Post-ending screen transition state |
|
047C |
|
When used for y position, it saves the value at $56 |
047D | Y position of current ending text character | |
047F | X position of current ending text character | |
0480 | Countdown until next character on ending screen |
|
0482 | Countdown until next ending screen | 0x40 frames between screens |
048E | Simon y position relative to map prior to entering a door (high byte) | saves the value at $57 |
04A0 | Simon x position on screen prior to entering a door | saves the value at $348 |
04B2 | Simon y position on screen prior to entering a door | saves the value at $324 |
04C2 | Set at 1 when up is pressed, set to 0 when down is pressed. | |
04C5-04C7 | Weapon State | |
04C8-04CD | Object Hit Points / OR | |
04DA | Object Work? | |
04F8 | Invulnerable Timeout | |
0700-07FF | PPU Instructions (See PPU Instruction format) | |
C185 | Address of subroutine responsible for bank switching | Set value $1C to the number of the bank then execute a JSR at the given address. If you want to set $1C based on the accumulator, subtract 2 from the RAM address, which will in turn set $1C to the value of the accumulator. |
8BE2 | Whip damage (leather) | 0x01 |
8BE3 | Whip damage (thorn) | 0x02 |
8BE4 | Whip damage (chain) | 0x04 |
8BE5 | Whip damage (morning star) | 0x08 |
8BE6 | Whip damage (flame) | 0x0F |
Join the CV2R crew in the Discord to discuss game play, races, and development of CV2R!