CPU/SA-1 MIRRORS ---------------- SA-1 CPU 00:0000-00:07FF 00:3000-00:37FF CPU BANK MIRRORS ---------------- 40:0000-40:07FF 7F:F800-7F:FFFF 40:0800-40:0FFF 7F:F800-7F:FFFF 40:1000-40:1FFF 00:9000-00:9FFF 40:2000-40:3FFF 00:6000-00:7FFF 40:4000-40:7FFF VRAM shadow SA-1 MEMORY ----------- 00:2200-00:23FF HWREGISTERS 00:3000-00:37FF IRAM 00:6000-00:7FFF WRAM OAM MEMORY ---------- 0000-000C battle numerals/digits (4 bytes each) ARAM MEMORY (AUDIO) ------------------- 3000-3400 EVT Sound FX APU Register Pointers (256 sounds total, 4 bytes each) 3400-4169 EVT Sound FX Stats RAM MEMORY ---------- 00:3030 current area (2 bytes) 00:3032 current # open character slots (1 to 5) 00:3033 character in slot 1 00:3034 character in slot 2 00:3035 character in slot 3 00:3036 character in slot 4 00:3037 character in slot 5 00:303F current # characters in party (1 to 3) 00:3051 current sound effect (event) 00:30DE timed hit variable 00:30F0 Game current score 00:30F4 Game hi-score 00:3112 menu accessibility (EF inaccessible, FF accessible) 00:3113 directions Mario can walk bit 0 - left bit 1 - right bit 2 - down bit 3 - up 00:3117 screen scrolling (00 screen scrolls w/Mario, 01 screen stays put) OBJECT 0 (Mario) 00:6000 X coord (2 bytes) 00:6002 Y coord (2 bytes) 00:6004 Z coord (2 bytes) 00:6006 00:6007 Mario's sprite bit 6 - allow sequence animation bit 7 - active/visible 00:6008 bit 0-3 - facing direction bit 6 - sprite priority 2 bit 7 - sprite priority 3 00:6009 bit 6 - layer priority 00:600A bit 0 - bit 1 - can't walk under bit 2 - can't pass walls bit 3 - can't jump through bit 4 - bit 5 - can't pass other NPCs bit 6 - can't walk through bit 7 - 00:600B bit 0 - can slide along walls 00:600C bit 4 - walking underwater bit 5 - wading through water bit 6 - in air (jumping/falling) bit 7 - up-left 00:600D bit 7 - shadow 00:600E 00:600F bit 0-5 - above npc # bit 6 - bit 7 - on top of npc 00:601B palette 00:601C Mario's idle sprite 00:601E Mario's walking sprite 00:6021 Animation Sequence frame 00:6052 event script 00:6059 bit 0-3 - trigger type 00:605A bit 4-7 - trigger type OBJECT 1 00:6060 OBJECT 2 00:60C0 OBJECT 3-6 (BG layers) 00:6120 Sprite Layer settings (96 bytes) 00:6180 BG1 settings (96 bytes) 00:61E0 BG2 settings (96 bytes) 00:6240 BG3 settings (96 bytes) OBJECT 7-34 (NPC objects) 00:62A0 - 00:6D1F 28 NPC objects, 96 bytes each 00:6D20 - 00:6F1F object presence in levels, by level (# of bits dynamic by level) 40:2C00 - 40:2CFF animation packet memory, used with animation scripting in battle 00:6F5A current event script ROM address (3 bytes) 00:6F69 current object memory address (2 bytes) 00:7022 frame duration of invincible star (2 bytes) 00:7040 bit 0 - battle was lost bit 1 - ran away from battle 00:7042 bit 0 - temporary event flag... 00:7043 bit 0 - Bowser's Keep: Terrapin guards have been defeated bit 1 - Bowser's Keep: bridge has collapsed 00:7044 bit 7 - returning from saved game 00:704C bit 6 - kid with beetle mania game will now sell it 00:704D bit 3 - Bandit's Way 5: warp available 00:704E bit 0 - Midas River: Received Nok Nok Shell bit 4 - Moleville: Item trader woman has been talked to 1st time 00:704F bit 1 - Belome Temple: Mario has paid for shortcut to surface bit 4 - Land's End: Rat from Monstro Town has been talked to 1st time bit 7 - Land's End Underground: Mario has bought normal star 00:7050 bit 1 - Land's End Underground: Mario has bought better star bit 3 - Land's End Underground: Shaman has said "come back later for better star" bit 6 - Belome Temple: Mario has paid for fortune telling 00:7051 bit 0 - Tadpole Pond: Frogfucius has divulged information bit 1 - Tadpole Pond: Mario has talked to tadpoles, Frogfucius bit 3 - Tadpole Pond: Frogfucius has recieved Cricket Jam bit 4 - Tadpole Pond: Alto Card achieved bit 5 - Tadpole Pond: Frog Coin Emporium tadpole has been talked to 1st time bit 6 - Tadpole Pond: Toadofsky has been talked to 1st time bit 7 - Tadpole Pond: 00:7052 bit 0 - Tadpole Pond: Composer's Staff description 1st time bit 1 - bit 2 - Mario's Pad: Mario has fallen into pipehouse bit 4 - Mushroom Way 1: Toad's been saved from Goomba bit 5 - Mushroom Way 2: Toad's been saved from Sky Troopa bit 6 - Mushroom Way 3: Hammer Bros have been beaten bit 7 - Mario's Pad: Toad has explained (or Mario has used) Save Point 00:7053 bit 0 - Mario's Pad: Toad has talked to Mario after falling into pipehouse bit 1 - Mario's Pad: Exor has been talked to, Toad is inside pipehouse bit 2 - Mario's Pad: Mario has illustrated to Toad the Keep's bridge going out bit 3 - Mario's Pad: Toad has bumped into Mario and informed about Mushroom Way 00:7054 bit 1 - Booster Tower: Meet Booster for 1st time (on railway) bit 5 - Tadpole Pond: Tenor Card achieved bit 6 - Tadpole Pond: Soprano Card achieved bit 7 - Seaside Town (before Yarid): Fake Elder has been talked to 1st time 00:7055 bit 0 - Kero Sewers Entrance: Mario and Mallow enter 1st time bit 1 - Kero Sewers Entrance: bit 2 - Kero Sewers: Belome Defeated bit 3 - Kero Sewers: Mallow has said "Now THAT's what I call a door!" bit 7 - Barrel Volcano: Meet Hinopio for 1st time 00:7056 bit 0 - Rose Way: Bowser's troops have marched out bit 1 - Moleville Mines: Miners have asked Mario to find kids bit 2 - Moleville Mines: Miner has used bomb to blow up wall bit 5 - Moleville Mines: Croco has been beaten bit 6 - ????: Flunkie complains about something 00:7057 bit 1 - Sea: Shaman Salesman has been talked to 1st time bit 4 - Moleville Mines: Dyna is trying to start the minecart rolling 00:7058 bit 2 - Sunken Ship: Johnny's Red Bandanas have been beaten bit 3 - Moleville Mines: Wall Bomber Miner has been talked to 1st time bit 7 - Seaside Town: Johnny has been beaten, Yaridovich gang waiting at entrance 00:7059 bit 0 - Booster Tower: Mario has received the Star Egg bit 3 - Booster Tower: Mario has received Rock Candy from Knife Guy bit 5 - Factory Grounds: Toad has arrived at the Factory Grounds 00:705D bit 4 - bit 5 - Mushroom Kingdom Castle 1: Princess is back 00:7062 event flag: add menu option to overworld menu bit 0 - Map bit 1 - Star Pieces bit 2 - Switch bit 3 - Game WORLD MAP POINT APPEARANCE 00:7065 bit 0 - Mario's Pad bit 1 - To Bowser's Keep bit 2 - Mushroom Way bit 3 - Mushroom Kingdom bit 4 - Bandit's Way bit 5 - To Kero Sewers bit 6 - Midas River bit 7 - Tadpole Pond 00:7066 bit 0 - Rose Way bit 1 bit 2 - Rose Town bit 3 - Forest Maze bit 4 - Pipe Vault/To Moleville bit 5 - Yo'ster Isle bit 6 - Booster Pass bit 7 - Booster Tower 00:7067 bit 0 - Booster Hill/Marrymore bit 1 - Star Hill bit 2 - Seaside Town bit 3 - Sea bit 4 - Sunken Ship bit 5 - To Land's End bit 6 - Monstro Town bit 7 - Bean Valley 00:7068 bit 0 - To Nimbus Land bit 1 - Barrel Volcano bit 2 - To Bowser's Keep bit 3 - To Mario's Pad/Vista Hill bit 4 bit 5 - Gate bit 6 bit 7 - Bowser's Keep WORLD MAP POINT ACCESSIBILITY 00:706D bit 0 - Mario's Pad bit 1 - To Bowser's Keep bit 2 - Mushroom Way bit 3 - Mushroom Kingdom bit 4 - Bandit's Way bit 5 - To Kero Sewers bit 6 - Midas River bit 7 - Tadpole Pond 00:706E bit 0 - Rose Way bit 1 bit 2 - Rose Town bit 3 - Forest Maze bit 4 - Pipe Vault/To Moleville bit 5 - Yo'ster Isle bit 6 - Booster Pass bit 7 - Booster Tower 00:706F bit 0 - Booster Hill/Marrymore bit 1 - Star Hill bit 2 - Seaside Town bit 3 - Sea bit 4 - Sunken Ship bit 5 - To Land's End bit 6 - Monstro Town bit 7 - Bean Valley 00:7070 bit 0 - To Nimbus Land bit 1 - Barrel Volcano bit 2 - To Bowser's Keep bit 3 - To Mario's Pad/Vista Hill bit 4 bit 5 - Gate bit 6 bit 7 - Bowser's Keep 00:7076 bit 0 - invincibility 00:7077 bit 0 - Bandit's Way 1 - Croco has rifled through bag bit 1 - Bandit's Way 2 - Croco has jumped on rotating flower bit 2 - Bandit's Way 3 - Croco has run away bit 3 - Bandit's Way 4 - Croco has been tempted by treasure 00:7081 bit 1 - bit 2 - Mushroom Kingdom Castle Throne Room - Princess is back bit 3 - Mushroom Kingdom - Mallow chases Croco, cries bit 5 - Mushroom Kingdom - raining noise bit 6 - Mushroom Kingdom - Mallow has joined the party bit 7 - Bandit's Way 5 - Croco has been beaten 00:7082 bit 0 - Mushroom Kingdom: Mack has been beaten bit 1 - bit 2 - Mushroom Kingdom - Toad has reported Croco to Mario 00:7083 bit 3 - Tadpole Pond: bit 6 - Rose Town: Bowyer has been beaten 00:7084 bit 7 - Rose Town: Geno has come to life 00:7085 bit 0 - Rose Town: Gaz scene complete 00:7086 bit 0 - Seaside Town: Yaridovich has been beaten bit 1 - Seaside Town: bit 6 - Seaside Town: people have been released from the Shed 00:7087 bit 6 - Tadpole Pond: Juice Bar tadpole has been talked to 1st time 00:7088 bit 4 - Seaside Town: Frogfucius disciple has been talked to 1st time bit 6 - Monstro Town: Thwomp has knocked the key off the ledge bit 7 - Monstro Town: Bowser has talked to Goomba 00:7089 bit 0 - Monstro Town: Mario has talked to music star bit 1 - Monstro Town: Mario has talked to Monstermama 1st time 00:708A bit 0 - Monstro Town: Monstermama has dispatched Troopas bit 1 - Jinx's Dojo: Bowser has talked to Jagger bit 2 - Jinx's Dojo: Jagger has been beaten bit 3 - Jinx's Dojo: Jinx has been beaten 1st time bit 4 - Jinx's Dojo: Jinx has been beaten 2nd time bit 5 - Jinx's Dojo: Jinx has been beaten 3rd time 00:7092 bit 0 - Monstro Town: talk to Chow, Mario has done 30 jumps bit 1 - Monstro Town: talk to Chow bit 2 - Monstro Town: talk to Chow, Mario has done 100 jumps bit 4 - Monstro Town: Chester has been talked to 1st time 00:7093 bit 4 - Monstro Town: Piranha plant thinks Culex moved away 00:70B1 number of flowers found at Booster Hill 00:70C8 hidden treasure chest count 00:70C9 number of wins from Knife Guy's juggling game (decremented on each loss) 00:70D8 number of cookies in bank 00:70DF last accessed world map point (for use in save slots) 00:70EF number of wins from "look the other way" 00:7E00-00:7EFF frame timer (256 bytes, each address - 2 frames) //////////////////////////////////////////////////////////////////////// WRAM ---- 7E:0044 damage accumulated by consecutive super jumps 7E:0048 current formation (2 bytes) 7E:004B battlefield BG 7E:0225 dialogue option chosen (0 - 1st option, 1 - 2nd option, etc...) 7E:0335 current music 7E:03CC physical field byte 7E:04E4 current interactive object 7E:0539 spell to use 7E:072C spell to use 7E:0730 current battle target 7E:091C-0924 menu option 1-9 00 Equip 01 Item 02 Special 03 Status 04 Special Item 05 Map 06 Star Pieces 07 Switch 08 Game 7E:0926 # of party members 7E:0928 which menu option the cursor is on 7E:09E5 current world map location 7E:09E6 current world map 7E:0A01 current mine-cart level 7E:1D00 current music 7E:1D01 current sound effect 7E:2000 current background color (2 bytes) 7E:2100 7E:2940 item bytes 7E:3944 Background 7E:3942 Background screen wrap (bottom; on entrance) 7E:4190 current HP slot 1, digit 1 (top) 7E:4192 current HP slot 1, digit 2 (top) 7E:4194 current HP slot 1, digit 3 (top) 7E:4196 current HP slot 1, slash bar (top) 7E:4198 max HP slot 1, digit 1 (top) 7E:419A max HP slot 1, digit 2 (top) 7E:419C max HP slot 1, digit 3 (top) 7E:41D0 current HP slot 1, digit 1 (bottom) 7E:41D2 current HP slot 1, digit 2 (bottom) 7E:41D4 current HP slot 1, digit 3 (bottom) 7E:41D6 current HP slot 1, slash bar (bottom) 7E:41D8 max HP slot 1, digit 1 (bottom) 7E:41DA max HP slot 1, digit 2 (bottom) 7E:41DC max HP slot 1, digit 3 (bottom) 7E:5800-7E:5FFF BG3 overworld menu tilemap 7E:6000-7E:6FFF overworld menu item list 7E:7040 spell list in battle (6 bytes) 7E:70D4 current HP slot 1, digit 1 (hex to dec: HP / #$0064 - digit 1) 7E:70D6 current HP slot 1, digit 2 (hex to dec: HP / #$0064, remainder / #$000A - digit 2) 7E:70D8 current HP slot 1, digit 3 (hex to dec: HP / #$0064, remainder / #$000A, remainder - digit 3) 7E:70DA slot 1, / slash bar 7E:70DC max HP slot 1, digit 1 7E:70DE max HP slot 1, digit 2 7E:70E0 max HP slot 1, digit 3 7E:7248 current HP slot 2, digit 1 7E:724A current HP slot 2, digit 2 7E:724C current HP slot 2, digit 3 7E:724E slot 2, / slash bar 7E:7250 max HP slot 2, digit 1 7E:7252 max HP slot 2, digit 2 7E:7254 max HP slot 2, digit 3 EXPANDED WRAM ------------- 7E:D123 current formation 7E:E000 - 7E:E00F variables used in battle scripts 7E:E010 Jump increment counter 7E:E012 Mystery Egg/Lamb's Lure counters Mystery Egg counter decrements from 10 to 0 Lamb's Lure counter increments from 0 to 48 7E:E014 Lucky Jewel counter 7E:FA00 7E:FA02 total XP gained from battle 7E:FA04 total coins gained from battle 7E:FA0C current FP 7E:FA0D max FP 7E:FA0E monster formation byte 2 7E:FA0F monster formation byte 1 7E:FA1C 7E:FA1D battle event 7E:FA1E battle music 7E:FA1F bit 0 lucky (ie. run Yoshi egg game at end of battle)) CHARACTER BATTLE STATS - Slot 1 7E:FA80 mortal status 7E:FA81 character byte 7E:FA90 Level 7E:FA91 Current HP (2 bytes) 7E:FA93 Maximum HP (2 bytes) 7E:FA95 Speed 7E:FA96 Attack 7E:FA97 Defense 7E:FA98 Magic Attack 7E:FA99 Magic Defense 7E:FA9A Current EXP (2 bytes) 7E:FA9C equipped weapon 7E:FA9D equipped armor 7E:FA9E equipped accessory 7E:FA9F unused byte* 7E:FAA0 spell list (4 bytes) 7E:FABE current battle memory block address 7E:FAC0 status (ailments, if any) 7E:FAC1 reaction after being attacked (jarred while ducking, standing, etc.) 7E:FAC4 bit 4 = once again 7E:FAC5 amount of damage to display 7E:FAF0 modified speed 7E:FB00-FB7F Slot 2 7E:FB80-FBFF Slot 3 MONSTER BATTLE STATS - Slots 1-8 7E:FC00 mortal status bit 6: disable target bit 7: remove target 7E:FC01 monster byte 7E:FC11 Current HP (2 bytes) 7E:FC13 Maximum HP (2 bytes) 7E:FC15 Speed 7E:FC16 Attack 7E:FC17 Defense 7E:FC18 Magic Attack 7E:FC19 Magic Defense 7E:FC1A Current FP 7E:FC1B Evade% 7E:FC1C Magic Evade% 7E:FC1D Special Flags 7E:FC1E 7E:FC1F 7E:FC20 7E:FC21 7E:FC22 entrance style byte 7E:FC2C coin animation 7E:FC2D flower bonus 7E:FC2E entrance style bits 7E:FC37 targetting cursor X coordinate 7E:FC38 targetting cursor Y coordinate 7E:FC3D elevation 7E:FC41 special defense (death/morph protection) 7E:FC45 amount of damage to display 7E:FC46 heal bit 7E:FC80-FFFF slot 5 - 8 (128 bytes each) 7F:F40A Room 1 to Room 2 event 7F:F42E Room 1 to Room 2 screen darkening 7F:B6CE battle-prone sprites 7F:B6CF movement of monsters on screen 7F:8000-7F:AFFF physical tile properties (1024 tiles, 12 bytes each) 7F:F41C pointer to room byte CHARACTER OVERWORLD STATS - Mario 7F:F800 current level 7F:F801 current HP (2 bytes) 7F:F803 maximum HP (2 bytes) 7F:F805 speed 7F:F806 attack 7F:F807 defense 7F:F808 magic attack 7F:F809 magic defense 7F:F80A experience (2 bytes) 7F:F80C equipped weapon 7F:F80D equipped armor 7F:F80E equipped accessory 7F:F80F unused byte* 7F:F810 spell list (4 bytes) 7F:F814-7F:F827 Toadstool 7F:F828-7F:F83B Bowser 7F:F83C-7F:F84F Geno 7F:F850-7F:F863 Mallow 7F:F864-7F:F881 Equipment 7F:F882-7F:F89F Items 7F:F8A0-7F:F8AE Special Items 7F:F8AF Current Coins (2 bytes) 7F:F8B1 Current FP 7F:F8B2 Max FP 7F:F8B3 Current Frog Coins 7F:F8BD Jump increment power 7F:F8C0 Super Jump record 7F:FCCF current area (based on Map Point name) *based on careful observation, this byte is apparently never used NOTE: SMRPG does not use an absolute address for storing final damage/health (i.e 7E:????). It uses a direct page, $C2, and subtracts/adds the result (after stat modifications) from current HP and uses difference/sum to determine outcome (this is all determined before the actual attack/spell animation and final damage digit display). Thus, it is impossible to directly edit the final damage through a PAR code. JOYPAD REGISTER BITS -------------------- 0010 R 0020 L 0040 X 0080 A 0100 right 0200 left 0400 down 0800 up 1000 START 2000 SELECT 4000 Y 8000 B bit 0 right bit 1 left bit 2 down bit 3 up bit 4 X bit 5 A bit 6 Y bit 7 B