Skip to content

About

No description, website, or topics provided.

Resources

Stars

13 stars

Watchers

1 watching

Forks

Repository files navigation

Join the Discord server — releases, playtesting, and project discussion

Join the Discord server · Download releases

Super Metroid — C# port

Super Metroid title screen
Title screen
Opening cinematic
Opening cinematic
Samus arriving at Ceres Station
Ceres Station
Ridley battle at Ceres Station
Ridley battle
Ceres escape sequence
Ceres escape
Defeating Draygon through the electrified Grapple Beam conduit
Draygon Grapple Beam kill
Aquatic corridor in Maridia
Maridia
Underwater shaft in Maridia
Exploring underwater
Cavern in Norfair
Norfair
Lava chamber in Lower Norfair
Lower Norfair

The recomp is fully playable from beginning to end. Only minor known glitches remain.

How to set up and play

You need your own Super Metroid Japan/USA NTSC v1.0 ROM (.smc or .sfc). ROMs and extracted game assets are not included in the downloads or this repository. The app checks your ROM, copies it into application storage, and extracts the required audio automatically. Your original file is kept.

Windows

  1. Open Releases and download SuperMetroid-windows-x64.zip.
  2. Extract the entire ZIP into a folder.
  3. Run SuperMetroid.Game.exe. The download includes the .NET runtime; no separate installation is needed.
  4. Click Choose ROM and select your ROM. Once setup finishes, the game starts.

Later launches use the installed copy. Game data, settings, saves, and recordings live under %LOCALAPPDATA%\SuperMetroid. Keep the extracted application files together when moving the app or installing an update.

Android

The Android build is dormant until the Godot port supplies it: current releases ship no APK, and the steps below apply to the earlier releases that did.

  1. Open Releases on your device and download SuperMetroid-android-arm64.apk.
  2. Install the APK. If Android asks, allow your browser or file manager to install apps.
  3. Open Super Metroid C# Testing, tap Choose ROM, and select your ROM through the file picker.
  4. Wait for extraction to finish, then play using your handheld's controls or a connected controller.

The Android build targets ARM64 devices running Android 8.0 or newer and has been tested on the Retroid Pocket Classic, including ROM import and audio playback. It keeps its ROM copy and saves in app-private storage. Install new APKs over the existing app to keep your data; uninstalling the app or clearing its storage removes that data.

Controls and saves

On Windows, use a gamepad or these default keyboard controls:

Action Keyboard
Move / aim Arrow keys
Jump / confirm Space or X
Dash / cancel Z
Fire S
Cancel selected item A
Aim up / down Q / W
Start / pause Enter
Select item Shift

Use the game's save stations or gunship for normal saves. The desktop toolbar also provides debugger save-state slots. On Android, press Back/Mode or long-press the game surface to open Testing tools, including save states, settings, and controller bindings.

Setup accepts both the unheadered 3 MiB ROM and a copy with a 512-byte copier header. ZIP archives, PAL images, other revisions, and patched ROMs are not supported. See ROM setup and storage for the expected ROM hash, command-line installation, and recovery details.

For help, release announcements, and playtesting discussion, join Discord. Report bugs through GitHub Issues, including your platform, release version, and steps to reproduce the problem.

About the project

This project translates Super Metroid's original program into readable, heavily commented C#. It aims to preserve the cartridge's behavior while making the game's systems easier to inspect, debug, and understand. The original ROM supplies the graphics, room data, tables, and audio resources used by the translated code.

The Windows application draws with Direct3D 11. The Android application, which shared the same managed game core, is dormant until the Godot port supplies it. Music and sound effects run through a managed C# audio engine, with resources extracted from the player's ROM during setup.

The recomp is fully playable end to end, from the opening through the ending. Movement, combat, enemies, bosses, rooms, menus, saving, rendering, and audio are all implemented. Minor known glitches and differences from the original game remain, so playtesting reports are welcome.

Development and references

Start with the developer guide for build requirements, runnable projects, controls, diagnostics, and verification commands. Additional documentation:

Translation and diagnostics cross-check the original cartridge against these references:

Original addresses, data tables, ordering, and side effects guide the translation. Reference annotations support diagnosis; reproduced behavior and regression tests are used to check the implementation against the supported ROM revision.

About

No description, website, or topics provided.

Resources

Stars

13 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages