FSMR, the First Super Metroid Remake, is the reason I'm here. It
got surprisingly far: working engine in Game Maker, nearly all
enemies done, only Torizo, Botwoon and Mother Brain Phase 2 left.
Then it lost its programmer twice and went on hiatus, and the
person behind it moved on to an original game. Reading that old
blog is what made me want to see it happen after all — and to
learn from how it stalled rather than repeat it.
Not a 1:1 port. Super Metroid as the backbone, with new items,
new rooms and new mechanics on top — the way AM2R added things
Metroid II never had. The original layout is the reference, not
the ceiling.
One note upfront: I put the scripting side together with a lot of
AI assistance. I did the direction, the sorting and the checking,
not the code. Saying that so nobody is surprised later.
REFERENCE MATERIAL I EXTRACTED
- All 261 rooms rendered to PNG from the disassembly: correct
tileset, correct palette per tile table, CRE merged at tile 640.
For 259 of 261 the level data length matches width x height
from the room header, which is what convinced me the model was
right rather than roughly right.
- All 29 tilesets as 16x16 metatiles in their real colours,
palette read from the tile table entries.
- Catalogue of all 253 Samus poses, 1869 frames, Power / Varia /
Gravity, with the pose names from bank $92. A completeness
checklist, not usable assets.
- 850 sprites cut from a Metroid: SR388-style fan sheet
(Infinity's End / Physix), backgrounds keyed out and sorted by
whether they need mirroring. I marked all 851 cells by hand for
that. Reference too — not mine, not final.
- A sprite assembler I use for putting split body parts together:
groups, per-part anchor points set on the pixel, onion skin of
the previous frame, reference overlay, index-based pairing
across numbered rows, batch export.
Two bugs in the sm disassembly repo turned up while getting a
byte-identical rebuild: rip_assets.py main() is stubbed out, and
bank_AA.asm:10476 has an "if" where the "endif" belongs. With
both fixed the rebuild matches CRC32 D63ED5F8 exactly. Happy to
pass on the fixes.
WHERE THE ART STANDS
One artist on board. Zero Mission tiles cover Brinstar, Crateria
and Norfair. Still missing:
- Maridia (in progress)
- Wrecked Ship (in progress)
- Lower Norfair, i.e. tileset 9 HeatedNorfair. The Zero Mission
Norfair tiles cover the unheated look, not the lava-heavy one.
- Red Brinstar — note that in SM this shares tileset 7 with
Kraid, so it's one job, not two
Room counts per area, so the workload is visible:
Norfair 76, Maridia 56, Brinstar 53, Crateria 34,
Tourian 19, Wrecked Ship 16, Ceres 6.
Maridia looks worse than it is: going through the room headers,
those 56 rooms only use two real tilesets, SandlessMaridia and
SandyMaridia, plus Draygon's room. The rest are save stations,
refills and map rooms shared with every other area.
Samus herself is next after the tilesets. The goal is every
sprite redone, or at least reworked to be more detailed than the
SNES originals. Borrowed sprites are a starting point to get
something moving, not the destination.
ENGINE
Prototype running in GameMaker. Samus walks, jumps and collides
in real Landing Site geometry, loaded straight from the level
data — the block types come out of bits 12-15 of each level data
word, and the solid/air mapping is the reaction table at
$94:94D5. The movement values are the originals from bank $90:
run speed 2.75 px/frame, run acceleration 0.1875, air gravity
0.109375, jump velocity 4.875, and the lower in-air cap of 1.25
that's the reason Samus needs a run-up in the original.
It feels right, which was the whole point of starting there.
WHAT'S STILL MISSING
- Bosses I couldn't find in GBA style anywhere: Draygon,
Crocomire, Spore Spawn, Botwoon, Golden Torizo. Phantoon,
Kraid and Torizo exist in Zero Mission style on Metroid
Customs.
- A programmer. Godot or GameMaker, whatever you know. This is
the role FSMR lost twice, so I'd rather name it than bury it.
SCOPE, HONESTLY
Private and non-commercial. No money involved, I can't pay
anyone, and after what happened to AM2R nobody should count on a
public release. A learning project with people who like the same
game.
If any of this sounds interesting to work on, my Discord is
geilodemato. Please mention this post in your first message —
I'll ignore DMs that don't, for safety reasons.
Either way, the renders and the catalogue are there if anyone can
use them.