Skip to content

Super Metroid v0.3.0 - Custom widescreen renderer

Choose a tag to compare

@mstan mstan released this 08 Sep 18:07
· 85 commits to main since this release

Custom widescreen renderer

Super Metroid now has a game-specific, presentation-only custom renderer,
replacing the previous generated widescreen hooks.

  • Widescreen mod: adaptive Fit, 16:9, 21:9 and 32:9.
  • HUD anchoring: energy/reserves on the left, weapons centered, minimap on
    the right, or keep the HUD centered.
  • Presentation FPS mod: Auto or 60/90/120/144/165/240/360 targets,
    independent of widescreen. Game simulation retains native timing.
  • Both mods are off by default. Open Mods in the launcher to enable
    them; both off selects the stock renderer.
  • README screenshots show the landing site and Tourian gameplay.

Downloads

  • Windows x64: extract the entire ZIP and run SuperMetroidSNESRecomp.exe.
    Keep its DLLs and assets/ folder together. This package includes SDL3's
    transitive libiconv-2.dll dependency and was tested without a developer
    toolchain on PATH.
  • Linux x86_64: make the AppImage executable and launch it. Built and
    tested on Ubuntu 24.04 under WSL; older Linux runtimes may not be compatible.
    Steam Deck hardware has not been directly tested.

Supply your own unmodified Super Metroid (Japan, USA) ROM. No ROM, SRAM save,
emulator state, or generated C source is included. Keep settings and saves/
beside the executable/AppImage when updating.

Validation and limits

Both platform builds pass all five game-side test suites and 3,200-frame
stock/widescreen/combined-FPS/FPS-only simulation comparisons. Linux package
layout tests verify settings/save placement and preservation on relaunch.
Windows and Linux launcher clicks verify Mods selection and persistence.

The renderer remains experimental: full-game visual fidelity is not certified,
some special-effect and boss interactions need broader coverage, and actual
presentation FPS depends on hardware and scene complexity. Linux runtime
automation used offscreen video and a dummy audio driver; audible playback was
not verified there. Gameplay logic, including enemy activation, is not widened.

See the repository's docs/custom-renderer.md for detailed implementation and
validation notes. SHA-256 checksums are supplied in SHA256SUMS.txt.