HUD Modifications

HUD Image

  1. Input display shows which buttons where held on the previous frame.
  2. Status display defaults to first enemy's HP, but can be configured to show Charge Timer, X-Factor timer, Shinespark timer and more (see InfoHUD Modes).
  3. Current total energy (excluding reserves), sometimes overridden by status display contents.
  4. Status icon display can be enabled to show when you have a shinespark stored, health bomb flag, and more.
  5. Segment timer in minutes.seconds.frames. Resets when starting a new game, loading a preset, or by controller/menu shortcut.
  6. Room timer in seconds.frames, resets when entering a new room and updates on item acquisition and room transitions. Can be set to realtime or gametime.
  7. Lag frames, updates same as above.
  8. Frames spent by last door transition. Door alignment time is printed before the transition, and total time after the transition.
  9. Item collection percentage, which can be configured to show reserve energy instead.
Controller Shortcuts
Controller 1
Start + Select + L + RSoft reset the game
Start + SelectOpens the in-game menu (configurable in shortcuts menu)
BCloses the in-game menu
Start + Y + LReloads the last used preset (configurable in shortcuts menu)
 
Controller 2
L or RToggles the status display options mentioned in 1
UpIncreases game speed
DownDecreases game speed
RightFrame advance
LeftRestore game speed
Built-In Savestate Feature

The savestate feature allows you to save and instantly reload at nearly any part of gameplay. This is achieved by transferring all of the console's working memory and video memory into the battery backed storage on the cartridge, also known as SRAM. It requires a very large amount of SRAM to store all of that data. Much more than commercial games offered (or needed), even though it was possible at the time. As a result, many platforms (including official Virtual Console releases) do not allow saving more than 64K or 128K of SRAM, while 256K is needed for full savestate support. Platforms known to support 256K include FXPAK (formerly known as SD2SNES), bsnes and Mesen-S emulators, Snes9x 1.61, and the Super NT when equipped with the "jailbreak" firmware.   A separate version of the practice hack is offered with a modified version of savestates. It offers the same features of normal savestates, but uses some of the game's own loading routines to reduce the amount of data that needs to be stored. This brings the SRAM requirements down to 128K. The trade-off is that the saved state takes slightly longer to restore. Most modern PC emulators will work with this version. The older Everdrive flash carts are also supported. Using custom Samus sprites on this version may require turning on Compressed Graphics/Palettes/Tables in Preset Options (see Sprite Patches below).   If you experience crashes or severe glitches when using savestates, your platform may not be supported. It's recommended that you use a version of the practice hack without the built-in savestate feature. You can still use any savestate functionality offered by your platform.

Menu Features
EquipmentConfigure Samus' current equipment
- RefillRefills your ammo and energy to their current max
- Category LoadoutsSelect a category to set your current equipment
- Toggle ItemsToggle major items, including DASH Recall items and suit properties
- Toggle BeamsToggle beams or activate glitched beams, and also control beam damage
- Current EnergySet your current energy with left/right or A to increment
- Energy TanksSelect your max E-tanks with left/right or A to increment
- Current ReservesSet your current reserves with left/right or A to increment
- Reserve TanksSelect your max Reserve Tanks with left/right or A to increment
- MissilesSelect your max Missiles with left/right or A to increment
- Super MissilesSelect your max Super Missiles with left/right or A to increment
- Power BombsSelect your max Power Bombs with left/right or A to increment
 
Category PresetsPresets are pre-configured savestates that are specific to a particular category.
Note: Presets load a room but do not load any enemies for that room by default.
 
Preset OptionsSelect a category, toggle doors, or save/load custom presets. Compressed OFF allows presets to load faster (see Sprite Patches below)
- Select Preset CategorySelect the desired category to be used with Category Presets
- Reload Last PresetReload the last used category or custom preset
- Load Random PresetRandomly chooses a preset from your selected preset category
- Custom Preset SlotSelect one of 40 slots in memory to save or load custom presets. Press A to open a submenu with a list of preset slots.
Press Y in the submenu to toggle the display between room names and Samus data.
Press X in the submenu to provide a custom preset name.
Use the Manage Custom Presets option at the bottom to swap or delete slots.
- Save Custom PresetSave a custom preset to the current slot in SRAM.
A grapple sound effect will play if a preset cannot be saved (for example during room transition).
- Load Custom PresetLoad the custom preset in the current slot in SRAM.
A grapple sound effect will play if a preset cannot be loaded from the current slot.
- Auto-Open Blue DoorsOpen all blue doors, except when Samus is in default pose or when door is in a hidden area.
- Load with EnemiesSkips clearing enemies when loading presets. NOTE: Enemy data is not saved with presets. Therefore, enemies will always be loaded in their starting positions for the room
- Clear Map TilesClears all explored map tiles when loading a preset
- Auto Segment ResetWhen enabled, the segment timer will not be reset until the next door transition
- Compressed GraphicsUse built-in and slower compressed tile graphics when loading presets.
Only enable this if you are applying patches that use banks F5-FE and loading prests crashes the game.
- Compressed PalettesUse built-in compressed palettes when loading presets.
Only enable this if you are applying custom room palettes.
- Compressed TablesUse built-in compressed tile tables when loading presets.
 
TeleportWarp to any save station or hidden debug load station
 
EventsToggle event flags for doors, bosses, items, and other events
- Reset All EventsClear all event flags
- Reset All DoorsReset all door locks
- Reset All ItemsReplace all items that have already been collected
- BossesToggle boss kills
 
MiscToggle extra features
- Blue SuitGive Samus the Blue Suit
- Flash SuitGive Samus the Flash Suit (aka Spike Suit)
- Hyper BeamToggle Hyper Beam
- Goo SlowdownToggle ultra slow horizontal movement, as if grabbed by the Baby Metroid (2) or Draygon's goo (1-4)
- Suit PropertiesModify the suit properties similar to some randomizers
Vanilla = No change, Varia has full heat protection and 50% enemy/environmental damage reduction, Gravity (with or without Varia) has full lava protection, full heat protection and 75% enemy/environment damage reduction
Balanced = Varia now has 75% environmental damage reduction, Gravity (without Varia) has full lava protection, no heat protection and no environment damage reduction
Progressive = Varia has no changes, Gravity (without Varia) has full lava protection, half heat protection and 50% enemy/environmental damage reduction
Complementary = Varia has no changes, Gravity (without Varia) has half lava protection, no heat protection and 50% enemy/environmental damage reduction
DASH Recall = Similar to progressive except Gravity has only 25% heat damage reduction
Heat Shield = DASH Recall plus heat resistance applied as if the Heat Shield item were equipped
- Water PhysicsControl whether the current room's water physics are applied, including DASH Recall's Pressure Valve item.
- Double JumpFrom DASH Recall, allows Samus to double jump as if she had space jump for one jump.
- Magic PantsToggle a flashing animation on Samus to show when dash should be held for short charging.
- Space PantsToggle a flashing animation on Samus during a space jump to show when you should jump.
Note: If you have both Magic Pants and Space Pants on, only one of them will be used.
If Space Jump is equipped then Space Pants will be used, otherwise Magic Pants will be used.
- Loud PantsToggle sound effects for Magic Pants and Space Pants. Uses the sound selected in Game->Metronome SFX.
Note: If Magic and Space Pants are both turned off, this option has no effect.
- MetronomeToggles a metronome feature that will play a sound at a periodic rate
- Metronome TickrateThe number of frames between metronome sounds
- Metronome SFXThe sound to play (Beep, Power Beam, Spazer, Missile, Click)
- Ignore Water this RoomToggles the water physics for the current room.
- Kill EnemiesKills all non-solid enemies in the current room
- Force Samus to Stand UpForces Samus into a standing pose
 
InfohudConfigure the HUD
- Infohud ModeSelect the value from RAM to be displayed in the bottom-left of the HUD.
Click the link for more details.
- Room StratSelect which Room Strat to be displayed in the bottom-left of the HUD.
This only works if "Room Strat" is selected as the above Infohud Mode.
- Top-Left DisplayChoose item collection percentage, reserve energy, or vanilla health to be displayed at the top-left of the HUD.
The vanilla option also compresses the viewable area so it is more suitable for practice on an curved CRT monitor or TV.
- Frames Held ModeReplaces the controller input display with numbers representing the frames held.
Any or all of the 12 controller inputs can be individually toggled into frames held mode.
- Status IconsToggle icons to appear when standing on an elevator or when the shine timer is active (e.g. while carrying a spikesuit).
- Spacetime HUDOption to preserve the InfoHUD when using spacetime beam
- Artificial LagSelect a value to adjust how much lag occurs during normal gameplay.
This is to compensate for the lack of a minimap on the HUD which would normally consume CPU cycles.
- Customize RAM WatchSetup addresses to be monitored by the RAM Watch HUD mode. Address 1 will appear in the bottom-left corner of the HUD, while Address 2 appears just to the right of Address 1. Memory at these locations can be edited by configuring a Value and selecting 'Write to Address'. Toggle 'Lock Value' to automatically write the value once every frame. RAM Watch must must be the selected HUD mode to continue writing to the address. Only one byte of hex can be configured at a time in the menu. 'Hi' refers to the first byte, while 'Lo' refers to the second. Set the Hi Address to 0D and the Lo Address to EC to monitor the memory address $0DEC, which stores the counter for Samus direction changes while held by Draygon (among other uses). You can find lists of known RAM addresses by selecting 'Select Common Addresses'.
Timer SettingsLocated within the Infohud menu
- Frame CountersToggle the room timer in the top-right of the HUD between realtime, gametime, and "speedrun time".
- Speedrun time is like realtime, except it includes time that was skipped due to practice hack features like shortened item fanfares, boss intros, door transitions, or elevators. This way, rooms and segments measured in the practice hack can be accurately compared to times from an actual run.
- Transition LagToggle the door time to include the full length of the room transition.
- Auto-Update TimersOption to turn off room timer updates when riding elevators or grabbign items
- Reset Segment in Next RoomSets the segment timer to reset automatically when exiting the next door transition.
- Reset Segment on Item TouchSets the segment timer to reset automatically the next time an item is touched.
 
Sprite FeaturesFeatures that draw sprites over normal gameplay. Beware of CPU performance impact
- Samus on TopDraw Samus on top of foreground objects/tiles
- Show Samus HitboxToggles an overlay of Samus hitbox that's drawn on top of Samus sprite.
- Normal Enemy HitboxesToggles an overlay of enemy hitboxes that are drawn on top of enemy sprites. Some enemies, especially bosses, use the extended spritemap format. Use the Large Enemy Hitboxes option instead.
- Large Enemy HitboxesToggles an overlay of enemy hitboxes for the following enemies that use the extended spritemap format: Mother Brain, Ridley, Draygon, Torizos, Spore Spawn, Crocomire, Ceres steam, Oums, and Space Pirates. Kraid would be in this list, but it is unsupported due to too many sprites being drawn.
- Special Boss HitboxesToggles an overlay of Mother Brain's special hitboxes or Ridley's tail hitbox.
- Samus Projectile HitboxToggles an overlay of Samus projectile hitboxes that are drawn on top of Samus projectile sprites.
- Enemy Projectile HitboxToggles an overlay of enemy projectile hitboxes that are drawn on top of enemy projectile sprites.
- 32x32 Projectile BoxesToggles an overlay of the 32x32 grid used for projectile vs projectile collisions. Requires either Samus or Enemy Projectile Hitboxes to be active.
- OOB Tile ViewerThis enables an overlay that shows the tiles near Samus at all times, disconnected from the camera. This allows you to navigate OOB (Out of Bounds) areas where neither Samus nor the actual tiles are visible in-game. Samus hitbox is drawn at the center of the overlay to show the position relative to the tiles.
- Spacetime HUDOption to preserve the infohud when firing the spacetime beam.
 
Room LayoutModify the room layout, usually to help practice rando scenarios.
- Item PickupsOption to replace all items with a specific item. Can also be done by icon type (visible, chozo orb, hidden).
- Bomb Torizo DoorControl Bomb Torizo Door oscillator, whether door waits 40 (fast) or 41 (slow) frames before closing after collecting bombs.
- Remove Magnet StairsAdds slope tiles to prevent the magnet stairs effect.
- Area Rando PatchesRoom modifications as you would see in a VARIA area randomizer.
- Anti-softlock PatchesRoom modifications as you would see in a typical VARIA randomizer.
- VARIA TweaksRoom modifications as you would see with VARIA tweaks enabled.
- DASH Recall PatchesRoom modifications as you would see in a DASH Recall randomizer.
- Custom Door PortalSets one pair of doors connected to each other as you might see in an area or boss randomizer or in a map randomizer.
Note: This mode is not recommended if intentionally triggering out-of-bounds door transitions.
- Door Portal I-FramesOption to give Samus 128 invulnerability frames when she goes through the custom portal.
- Horizontal MirroringAligns any two area/boss portals with left or right doors. If necessary, mirrors Samus horizontally across the room prior to door scroll.
- Next Door Jump To DestTemporarily sets the destination of the next door or elevator that you enter.
- Select Portal SourceChoose one of of the two area/boss portal connections (8 boss portals and 32 area portals supported).
- Select Portal DestinationChoose the other portal connection, also the one used for Next Door Jump To Dest.
- Select Portal DoorChoose a pair of aligned left/right or up/down portal connections. Note that some up doors do not exist in the vanilla game (some of the ones requiring you to go up through falling sand) so those cannot be travelled going up.
 
GameToggle game options
- Japanese/French TextStandard game option to toggle between English and Japanese text (NTSC) or between German and French text (PAL).
- Moon WalkStandard game option for Moon Walk.
- Icon CancelStandard game option for Icon Cancel.
- Cutscenes and EffectsTurn off specific cutscenes, or make specific game sequences faster.
Also includes karafruit's options to disable or reduce flashing effects.
- FanfareToggle the fanfare for collecting items
- Fast DoorsToggle for fast doors similar to some randomizers.
- Fast ElevatorsToggle for fast elevators similar to some randomizers.
- MusicToggle the music off, on, or fast off which eliminates lag caused by loading music data.
- Low Health AlarmModify the behavior of the low-health alarm
Never = Self-explanatory
Vanilla = No change (triggers on when <=30 health, off when >30 health, ignoring reserves, breaks if power bomb explosion is active)
PB Fix = Defers trigger during power bomb explosions, which fixes issue where the alarm may not turn on or turn off
Improved = PB Fix + only triggers on with health+reserves is less than 30 (same requirements as initiating health bomb)
- MinimapRestores the game minimap, which also allows the pause menu map to be updated. When enabled, a map tile counter will also be displayed.
- Clear MinimapClears the map tile counter and all minimap data.
Debug SettingsLocated within the Game menu
- Debug ModeToggles the debug mode. Note that debug mode shortcuts and features may not be well supported in the practice rom.
- PAL Debug MovementGives Samus extra movement correlated to the dpad input.
- Debug CPU BrightnessToggles a built-in debug feature to darken the screen after the game is done processing the next frame. Useful for estimating CPU usage.
- InvincibilityPrevents Samus from taking damage or knockback.
- Pacifist ModeReduces Samus' attack damage to zero, allowing for never-ending boss battles.
- Pseudo G-ModeDisables PLMs to imitate the primary effect of G-Mode.
- Enable ProjectilesToggles a built-in debug feature to disable enemy projectiles.
- Fix Scroll OffsetsFixes the glitchy state where the camera and scroll offsets are out of sync, typically occurring when using major glitches
 
RNG ControlPre-determine boss patterns
- RerandomizeToggles rerandomizing of RNG values upon loading a savestate. Automatically disabled in rooms with "seeded" RNG, but some of these situations may not be accounted for yet. Not available on some platforms.
- PhantoonConfigure possible Phantoon patterns. You can enable or disable individual patterns per-round, allowing you to practice only a subset of possible patterns. The round-1 toggles apply only to the first round, whereas the round-2 toggles apply to all subsequent rounds, including rounds where Phantoon is invisible.
If all patterns are enabled (or disabled) for a round, vanilla RNG is used with all its quirks and biases. However, if you customize the patterns for a round, that round will use a customized RNG that chooses patterns with mostly-balanced probabilities (though slower patterns may still tend to be slightly more common).
Note that for round 2+ patterns, the "No Fast/Mid/Slow" and "Left/Right" options will also remove the rare patterns (Right Fast and Left Mid) in order to make those options more useful.
- Phan Eye Close: Choose how long Phantoon's eye will remain open after a ring of flames
- Phan Flame Pattern: Choose one of four patterns for Phantoon's flames
- Next Flame Pattern: Swaps with Phan Flame Pattern each time Phantoon chooses a pattern
- Botwoon FirstChoose the movement pattern for Botwoon's first cycle. The pattern names represent the hole Botwoon will the cycle at.
- Bot HiddenChoose the movement pattern for Botwoon's hidden cycle behind the background. Each pair of letters respresets the start and end position of the pattern.
- Botwoon SecondChoose the movement pattern for Botwoon's second and subsequent cycles. Each pair of letters respresets the start and end position of the pattern.
- Botwoon SpitChoose whether Botwoon will spit projectiles or not, when possible
- Draygon from RightChoose Draygon's attack type from the right side of the room. Draygon will always 'swoop' after a 'goop'.
- Draygon from LeftChoose Draygon's attack type from the left side of the room. Draygon will always 'swoop' after a 'goop'.
- Crocomire RNGSet Crocomire to always step forward, or always swipe and shoot projectiles.
- Kraid Claw RNGSet Kraid's claws to spawn above or below. Kraid is laggier when coming out of the ground if both claws spawn below.
Note: It is not possible for both claws to spawn above Kraid, so there will always be some lag generated by a claw below.
- Kraid Wait RNGSet amount of frames Kraid waits before opening mouth at start of second phase, or between attacks during the first phase.
 
Savestate SettingsFeatures relating to the practice hack's built-in savestates. Not available on some platforms.
- RerandomizeToggles rerandomizing of RNG values upon loading a savestate. Automatically disabled in rooms with "seeded" RNG, but some of these situations may not be accounted for yet.
- Freeze on Load StateExperimental feature that causes the game to be frozen until a new controller 1 input is made.
It also resets the segment timer. Beware that since it leverages the existing frame advance feature, toggling this on changes the way frame advance works.
- Auto-Save Mid DoorCreates a savestate in the middle of the next door transition.
- Auto-Save Every DoorCreates a savestate in the middle of every door transition.
 
Controller ShortcutsSet or change button combinations for activating features. Press X to unbind a shortcut. Press A to edit the shortcut and then hold the desired button combination until it turns pink.
- Main MenuOpen the InfoHUD menu
- Save StateSets the savestate. Not available on some platforms.
- Load StateLoads the savestate. Not available on some platforms.
- Auto Save StateSets a flag to trigger a savestate in the middle of the next door transition. Not available on some platforms.
- Reload PresetReload the last selected category preset
- Random PresetRandomly chooses a preset from your selected preset category
- Save Cust PresetSave a custom preset to the current slot in SRAM.
- Load Cust PresetLoad the custom preset in the current slot in SRAM.
- Next Preset SlotIncrements the custom preset slot.
- Prev Preset SlotDecrements the custom preset slot.
- Reset Seg TimerReset the segment timer. Takes effect immediately but only updates the display on certain events/actions.
- Reset Seg LaterReset the segment timer. Takes effect when exiting the next door transition or when touching an item, whichever comes first.
- Full EquipmentRefills your energy and ammo to their current max capacities.
- Kill EnemiesInstantly deletes all enemies in the current room.
- Toggle OOB TilesToggles the OOB Tile Viewer.
- Update TimersUpdates the HUD timers immediately.
- Clear ShortcutsResets Main Menu shortcut to default and removes button combos for all others.
 
Customize MenuChange color palettes and sound effects used by the practice hack menus
- Menu BackgroundToggle the background of the menu on or off. The background will always be drawn in the pause menu and Ceres Elevator Room.
- Customize Menu PaletteCustomize the color palettes of each element of the menu. There are three sets of options for editing colors. The Hexadecimal set is an approximation of traditional 24bit RGB values. The Decimal set is a simplified version with a scale of 0-31 for each color. The SNES BGR set is the 15bit color value used internally, which is also how it's displayed in the "Screenshot To Share Colors" submenu. Example menu items are provided to show your changes in real time.
- Menu PaletteCycle through a list of pre-made palette profiles from the community. Select CUSTOM to edit your own palettes.
- Copy Palette to CustomCopy the selected Menu Palette to the CUSTOM profile to use as a base. A confirmation submenu will remind you that this will overwrite your existing CUSTOM profile.
- Randomize Custom PaletteUse RNG values to randomize the color palettes. A confirmation submenu will warn you that this will overwrite your existing CUSTOM profile.
- Customize Menu SoundsSelect which sound effect will play for each menu action. Press Y to play the selected sound effect. Due to limitations with the audio engine, only sounds from "Library 1" are allowed.
- Menu Scroll DelaySet the number of frames before scrolling to the next menu item when Up or Down are held.
- Customize Menu HeaderType a customized header for the main menu, up to 23 characters. Set it blank to restore the default header.
Lag Frames

Super Metroid runs at ~60 fps (NTSC) or ~50 fps (PAL). On each frame, the game simultaneously renders the current frame while preparing the next frame. If it fails to prepare the next frame in time, then the previous frame is rendered again. We call this a lag frame. This means that game lag depends on how much work the CPU needs to do to prepare the next frame. It follows that any modification to game code could impact the game lag. Thus we need to balance the desire for practice ROM features with the desire for performance accuracy (matching the actual game lag).  
You might be wondering how we were able to add features at all, since generally adding features means adding work. In fact even if a feature is toggled off, the game may have to check that the feature is toggled off and that is more work. Fortunately it was discovered that the minimap adds a noticeable amount of work to each frame, and by disabling the minimap we freed up CPU for our features. In fact, we even had to add artificial lag in order to more closely match actual game performance. Unfortunately we weren't the only ones to notice this. Deer Force knew, and they also knew boss fights were laggy, so they disabled the minimap for most boss fights. As a result, with default settings the practice ROM will have very similar lag compared to the actual game, except the practice ROM may have more lag during boss fights.  
As we continue to maintain and add features to the practice ROM, this is our strategy for managing lag:

- Normal GameplayWith default settings (enemy HP selected in the infohud), we really try not to change lag. If we do, it will be communicated.
If you select other infohud or room strat options, lag may have a slight variance although it typically won't be noticeable.
- EventsOn events (when drops appear, when an item is collected, etc.), we may add features. It's conceivable this could add a lag frame, although in most circumstances it would be unlikely or impossible.
- Door/Elevator TransitionsSimilar to events, we may add features during this time. Some features require data to be reloaded during this time.
- Practice FeaturesOnce you start turning on practice features, lag may no longer be similar to actual game. Some features like magic pants or the metronome may not have much impact, but others like the OOB tile viewer add a significant amount of work for the CPU.
- Sprite PatchesSprite patches such as SpriteSomething should be supported. These patches sometimes modify the game and theoretically could affect lag on their own, although if you intend to play the vanilla game or randomizer with a sprite patch then you might as well apply it to the practice ROM. You may need to turn on Compressed Graphics/Palettes/Tables in Preset Options as SpriteSomething will overwrite some data used to load presets (and in some cases savestates) faster.