====== Editing the Initial Savegame ====== Now you can start anywhere you want! What a thought! ===== Location and Format ===== The data starts at 0x4E64 in ROM, and is (somewhat) nicely organized. All 16-bit values are little-endian. ^ Address ^ Default ^ Use | ^ Samus' position ||| | 0x4E64 | $D4 | Y pos, pixels | | 0x4E65 | $07 | Y pos, screen | | 0x4E66 | $48 | X pos, pixels | | 0x4E67 | $06 | X pos, screen | ^ Camera position ||| | 0x4E68 | $C0 | Y pos, pixels | | 0x4E69 | $07 | Y pos, screen | | 0x4E6A | $40 | X pos, pixels | | 0x4E6B | $06 | X pos, screen | ^ Tileset Definitions ||| | 0x4E6C | $7520 | Sprite graphics pointer (bank 6) | | 0x4E6E | $07 | BG graphics bank | | 0x4E6F | $6000 | BG graphics pointer | | 0x4E71 | $5280 | Metatile data pointer (bank 8) | | 0x4E73 | $4580 | Collision data pointer (bank 8) | | 0x4E75 | $0F | Map Bank (9-F) | ^ Solidity indexes ||| | 0x4E76 | $64 | Samus | | 0x4E77 | $64 | Enemies | | 0x4E78 | $64 | Weapons | ^ Equipment ||| | 0x4E79 | $00 | Samus' items | | 0x4E7A | $00 | Samus' beam | | 0x4E7B | $00 | Energy tanks | | 0x4E7C | $99 | Current energy | | 0x4E7D | $00 | Current energy (e-tanks) | | 0x4E7E | $0030 | Max Missile Count* | | 0x4E80 | $0030 | Current missile count | ^ Misc. ||| | 0x4E82 | $01 | Direction Samus is facing (pointless?) | | 0x4E83 | $02 | Acid damage | | 0x4E84 | $08 | Spike damage | | 0x4E85 | $47 | Real Metroid count (BCD) | | 0x4E86 | $04 | Song to play | | 0x4E87 | $00 | In-game timer (Minutes) | | 0x4E88 | $00 | In-game timer (Hours) | | 0x4E89 | $39 | Onscreen Metroid count (BCD) | *00 is at 0x4E7F and 30 is at 0x4E7E in the ROM, resulting in inversion(it appears as $3000 in the ROM). This could cause confusion if not clarified. ===== Simple Procedure ===== If you're creating you're own hack, one easy way to do this is to: - Go to wherever you want the start to be - Poke the value 0x09 to the address 0xFF9B in RAM (to force the game to save) - Copy the saved game from SRAM to the location in ROM - Do some fine tuning as desired. Check [[return_of_samus:data_locations:ram_map |RAM map]] for more details. Some limitations may apply.