METROID Part 1: Much Abo About Health

It did not take long for METROID to remind me why I never sat down for a proper playthrough before.

As is the tradition for games at the time, METROID is hard. The specter of quarter guzzling arcade games haunts early home console releases; in both their difficulty and an insistence on keeping a score tallied.

by this time, however, there were clearly changes and adoptions toward making the single player home experience we know today – the original Legend of Zelda had a save function, and many RPGs used password systems- instead of padding out playtime with difficulty, they could pad out playtime with puzzles and content.

METROID sits at an uncomfortable unison between the two- having the ability to save on the Famicom version and use passwords on the NES, but having a huge difficulty curve when it comes to how quickly and easily it is to lose health, versus how hard it is to get any health back.

This was my first gripe with METROID – player health. when you start the game or restart after a death, you are re-spawned at the last elevator or level entrance that Samus used… with only 30 health. No extra tanks filled, no cap off at 99, just 30. in later areas of the game (read: everything but brinstar), starting the area with 30 health is basically useless- one or two hits means instant death.

The only thing to really do then, is to go to Brinstar, or in the current area, find the nearest source of enemies that spawn from pipes- these are the recharge stations of METROID, where one needs to spend- especially later- inordinate amounts of time grinding enemies to get your health back. In later areas especially, this is further worsened by the fact that any damage taken during your stock-up can quickly take away a lot of progress.

This is something that later METROID titles got right- there’s many, quicker ways to passively get health, it’s not a huge drain to get hit while you’re doing it, and with recharage stations, it’s not too much to go out of your way for a quick detour if need be. (there’s one exception in Metroid Fustion- a room before the Ridley fight where you can stock up on health… very, very slowly.)

Sadly, METROID on the NES doesn’t have the luxury of having multi-enemy pipes or recharge stations like it’s predecessors. But, I decided I knew enough about how to edit NES games, that I thought I could quickly whip up SOMETHING to fix this issue-

so, using the handy HEX viewer on my emulator, I found where player health was set on respawn and start, and changed two bytes- enough that one couple easily make a couple game genie codes – so that Samus would always spawn with 99 health.

Now, I could’ve left it at that- but then I thought about how cool it would be to actually get the full health refresh, filling all your current energy tanks as well. turns out, you CAN’T just change a couple bytes for that, I tried. There had to be some way to get in the code and just… add a couple more lines, right?

After kicking it around in my head awhile, I googled a METROID decomp, and found one- a GitHug user by the handle of ZaneDubya had been porting METROID to the MMC3 chip, and was basing it off of an older, unfinished decomp of the original ROM on the MMC1 by “Dirty McDingus”.

with the decomp in hand, and a little digging, I was able to easily replace the respawn health, as below:

original code
LDA #$00		;
STA HealthLo		; Starting health is
LDA #$03		; set to 30 units.
STA HealthHi		;
LDA TankCount	; get tank count	
JSR Amul16	; put into high nibble
ora #$09	; put 9 in low nibble (90)
sta HealthHi	; give us 90 + extra tanks
lda #$99	; load #99
sta HealthLo	; store as 9.9 
new code

And with that, no matter where or when I spawned- I always had full health!

I also found the places for where health is gained from enemy drops, and just added a little bit extra to make sure when you got health, you got a little more to make sure grinding was less of a slog.

however, I wasn’t quite yet… satisfied. there were other things I wanted to change:

– the ice beam actually make the game a bit tedious to kill anything- what if I could make it a little more like SUPER METROID?

– wave beam and ice beam can’t co-exist? what if… they did?

– the high jump could be a TAD higher, don’t you think? it feels hard to use in the places it’s meant to be used in, and getting stuck in the lave in front of Mother Brain seems like a consistent death sentence….

and the question that led me to the very goal of making MERTROID fully documented and moddable:

– how hard would it be to add “but better” to the title screen?

in the following series, I hope to show you not only how one can “fix” METROID, but also documenting my process of making an entire decomp modding suite.