ros:basic_guides:initial_savegame
Differences
This shows you the differences between two versions of the page.
ros:basic_guides:initial_savegame [2017/11/02 15:26] – created - external edit 127.0.0.1 | ros:basic_guides:initial_savegame [2025/06/18 09:51] (current) – felixwright | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Editing the Initial Savegame ====== | + | ~~REDIRECT> |
- | + | ||
- | 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: | + | |
- | + | ||
- | Some limitations may apply. | + |
ros/basic_guides/initial_savegame.1509636369.txt.gz · Last modified: by 127.0.0.1