XaiJu
vitorvilela
vitorvilela

patreon


Looking for suggestions on Super Metroid SA-1

Hi! It's been a while since I wrote the last post here - for the past months I'm been more busy than usual on my university and in addition, I was having some difficulty in adapting Super Metroid to the SA-1 memory map - which not just I had to remap the RAM memory, but also the ROM and SRAM memory areas. And finally I got them working in a way that I can boot up the game and play the first stages without apparently any issue.

Disabling FastROM and converting the game to SA-1 ROM format

To the game boot up with the SA-1 system, I had to disable FastROM. In addition, the last 1 MB of the ROM had to be converted from LoROM to HiROM, by splitting the region in blocks of 32 KB and expanding it to 64 KB, so the last megabyte is now interleaved as two megabytes portion. I did this by writing a Asar patch as you can see on above picture. Everything was made to make the ROM map similar to the original game:

Because the SA-1 chip is neither LoROM nor HiROM, but a mix of both, banks $C0-$FF on the chip behaves as HiROM while banks $00-$3F and $80-$BF behaves as LoROM. Normally a SA-1 memory map is like this, for 4 MB games:

Thankfully, via the SA-1 Super MMC registers, it was possible to make the $80-$BF region behave as FastROM so it just repeats the first 2 MB of the game again. And using a trick that FuSoYa taught me many years ago, I made banks $C0-$DF map to the last 2 MB of the ROM without affecting banks $00-$3F too.

More details about the SA-1 memory map and how LoROM and HiROM works and the caveats of each conversion process will be included on a future post.

Suggestions Wanted

After disabling FastROM, I noticed that the slowdown got even more common than normal on the game. After getting the morph ball for example, there was some kind of laser HDMA effect pointing to Samus and the whole game started running at 30 FPS. I also noticed slowdown when there were more than three enemies in some sections and on all boss fights which I experimented. This just shows how the additional 0.9 MHz that FastROM gives makes game run better. With the 10.74 MHz co-processor, I'm sure all of the slowdown will be removed.

But just like Race Drivin', I think Super Metroid also deserves some quality of life improvements. Two things which I noticed and I would like to change with the SA-1 chip is making the map transition faster and allow to the "overworld map" to be scrolled more naturally. That will make the experience better in my vision, since the pacing will be better through the game experience.

Other than these, I would like to hear your thoughts. What else can be adjusted or improved on the game to give a more fluid experience? Is there a section in particular that could run smoother with the SA-1 chip? Please make sure to share on the comments section!

Thank you for the support!

Comments

I love your work. Things like faster door and elevator transitions would be great. I don't know if you could get the map to look more realistic to the actual world zoomed out, but that would be incredible, maybe with each tile represented by a single pixel. It would be like Google Maps where you can switch between roadmap and satellite modes. Maybe include the ability to aim diagonally up and down with a single button depending on which direction the Dpad is held like the GBA Metroids. I don't know how that would affect the shine-spark. I'd love to see this in 384x224 on MiSTer FPGA, perhaps you could talk to the SNES core developers about it, or figure out how to make a custom fork? The possibilities are fascinating! I wish I had the knowledge and ability to help with this. I've hacked a few roms but this is advanced tech.

Damon Brenner

Yup, it's work in progress once again, now that I'm done with university. I'll do my best to make the game as fluid as possible.

Vitor

man i want the sm update so much. is it going forward? door transitions and elevators can already be sped up btw.

K4yr4h

SF Alpha II is actually possible :)

Vitor

Nice. I do remember the spineshark/bomb slowdowns. Would a Street Fighter Alpha 2 SA-1 hack be possible? Just kidding.

Moomoo

I'd actually been waiting to see your decompiled/commented source to see if I could figure it out myself, but if you're looking for quality of life improvements maybe it'd just be best to tell you. It has to do with controller configuration. I like assigning Dash to one of the shoulder buttons (usually L, and then reassign Angle Down to R); but the problem is that the game doesn't let you assign either Angle Up or Angle Down to any of the face buttons. So in the end I just lose either Angle Up or Angle Down altogether. Being able to assign Angle Up and Angle Down to the face buttons would be really great.

re4mat

Things like sped-up screen transitions are commonplace in Super Metroid ROM hacks, along with things like not playing the full item acquisition jingle when picking up another energy tank or missile expansion. For the purposes of providing a baseline SA-1 release maybe leading into an SA-1 Pack like with SMW, I think it would be best to keep the game as vanilla as possible, but a side-release that features faster screen transitions would be welcome. By vanilla as possible, I mean that many esoteric speedrun or randomizer strategies should still be possible: https://wiki.supermetroid.run/Pink_Brinstar_Hopper_Room You could probably look at popular hacks like Project Base for examples of popular quality of life changes. I may be mis-remembering this, but a year ago I was doing some real-time corruptions of Super Metroid and possibly found a function similar to the SA-1 demo cartridge's darker bar, where how much of the screen is taken up by the bar reflects the processing time taken for each frame. I can't really think of any parts of the game that rely on timing around the slowdown, just that it's very noticeable when using power-bombs which also uses HDMA effects. Hope you can figure out the LoROM / HiROM banks dilemma!

RupeeClock

I'd suggest watching speedruns of Super Metroid and watching for slowdown. Also, try reaching out to speedrunners of the game and ask them where they notice the slowdown the most.

OhYouWouldntBelieveMe

If you want a larger following, you should probably leave the base game alone IMO and just try to remove most slowdowns. That way, I am pretty sure speedrunners will be able to try your romhack and be able to use mostly the same strats as of now. I thnk QoL improvements are fine, when they don't actually interfer with the gameplay or with inputs during the game. I know that the Power Bomb almost always causes slowdown. Mother Brain has some good slowdowns as well (specially Ketchup beam).

z387

While I know this is technically just a glitch an not something the developers even intended could be used. Would it be possible to make the "Murder Beam" actually function properly compared to the extremely glitchy and unstable in the game? Like, actually make it function as it does during the escape run Maybe having it selectable during a new game plus or whatever. If I remember correctly, the Murder/Hyper Beam also REALLY slowed the game down whenever it was used originally.

Anders "Captain N" Iversen


More Creators