User Tools

Site Tools

“Also, try using a bit of LUA”

return_of_samus:hex_changes

Metroid II Hex Tweaks

“Hex Tweaks” are loosely defined as sets of single-or-multiple-byte-changes that can be preformed for desirable effects. There is no clearly-defined upper limit for the number of bytes that can constitute a 'hex tweak' but they are usually less than 16 bytes' worth of changes.

Samus

Tweaks for the mechanics of Samus.

0x96C - 40 to 58
0x980 - 3F to 57
0x9F3 - 70 to 58
0xA07 - 71 to 59
Centers Samus' horizontal position during movement where the screen scrolls horizontally.

0x11C3 - $32 to $98
0x11C4 - $11 to $1C
Spider Throw works both ways

0x1899-0x18E6 - Fill with non-zero values (doesn't matter what)
Space jump timing is free.

0x573D: C0 to C9
Respawning blocks don't hurt Samus, and they don't destroy themselves after spawning on her.

0x57D7: 02 to ??
Adjusts damage that respawning blocks do to Samus.

Speeds

0x1C2A - 01 to 02
0x1C6D - 01 to 02
Samus runs faster on the ground.

0x1C99 - 02 to 03
0x1CCA - 02 to 03
Morph ball rolls faster on the ground.

0x1CFB - 01 to 02
0x1D27 - 01 to 02
Samus moves faster in air.

Weapons

Tweaks for beams, missiles, and bombs.

0x53FC - 60 to ??
Changes the amount of time it takes for a bomb to explode. Change this to 30 for Super Metroid's bomb explode time, or 20 for Zero Mission's.

Missiles

0x51A1 - Everything up to 0x51C1 becomes 04
Makes missiles fire at a faster and more consistent speed.

0x4FF6 - 20 → 18
Removes the limit of one onscreen missile.

Ice Beam

0x966B: 34 → 00
Make enemies stay frozen for twice as long.

0x9669: C4 → aa
0x966E: D0 → bb

The value of “aa” adjusts the number of frames before an enemy starts blinking.
The value of “bb” adjusts the number of frames before an enemy unfreezes.
Note that “aa” should be smaller than “bb”, or else the enemy will not blink prior to unfreezing.
(Unconfirmed: These values might need to be even or else the enemy will not unfreeze (unless the previous tweak is used))

Wave Beam

0x50D5: 83 to 94
Makes the Wave Beam use an alternate movement table (looks like a discount Spazer when motion blur is on).

0x50DD - 7E to AF
Wave Beam doesn't wave anymore :(

Spazer

0x509E: D0 to 00
0x50BB: D0 to 00
Spazer splits indefinitely, effectively turning it into a spread gun

0x50AC: 02 to ??
0x50B3: 02 to ??
0x50C9: 02 to ??
0x50D0: 02 to ??
Adjusts the speed that the Spazer splits apart.

0x509D: 05 to ??
0x50BA: 05 to ??
Adjusts the length of time that the Spazer splits apart (more time makes it wider).

Enemies & Bosses

0x9F80: 0A → ??
Adjusts the number of pipe bugs that can come out of a pipe bug spawner.

0x9F81: 38 → 18
Makes it so pipe bug spawners can spawn an infinite amount of pipe bugs.

0x9CEA: 85 → 0C
0x9CFF: C2 → 49

Makes the Gullugg enemy go counter-clockwise instead of clockwise, by changing which velocity tables they use.

0xAE85: 06 → ??
Adjust duration in frames of the Metroids' knockback from the Screw Attack. (Applies to all metroids besides the queen.)

Alpha Metroid

0xACD7: 0E → xx
0xACDB: 14 → yy

Adjust lunge and wait periods of the Alpha Metroid. “xx” is the length of a lunge in frames, and “yy-xx” equals the waiting period after a lunge. Set xx=yy to make the Alpha Metroid never stop lunging.

0xAD85: 01 → xx
0xAD8D: 01 → xx

Adjusts the amount the Metroid counter decreases when killed.

Gamma Metroid

0xB129: 01 → xx
0xB131: 01 → xx

Adjusts the amount the Metroid counter decreases when killed.

Zeta Metroid

0xB378: 02 → 01
Make the Zeta Metroid chase Samus less aggressively.

0xB504: 20 → ??
0xB61F: 20 → 38

Adjust the wait interval after firing a fireball. (The second byte is an ASM tweak to prevent a graphical glitch that can occur when the other value is too high.)

0xB476: 01 → xx
0xB47E: 01 → xx

Adjusts the amount the Metroid counter decreases when killed.

Omega Metroid

0xB758: 60 38 → ??
Adjust the wait interval after making a swoop.

0xB7D1: 02 → 01
Make the Omega Metroid chase Samus less aggressively.

0xB9D5: 0C → ??
0xB9D9: 14 → ??
0xB9DD: 28 → ??
0xB9E1: 40 → ??
0xB9E5: 60 → ??

Adjust the duration in frames of the Omega Metroid's chasing periods.

0x0B70B: 01 → xx
0x0B713: 01 → xx

Adjusts the amount the Metroid counter decreases when killed.

Standard Metroids

0xBB2F: 01 → xx
0xBB37: 01 → xx

Adjusts the amount the Metroid counter decreases when killed.

Metroid Queen

0xEDDA: 96 to ??
Adjust the Metroid Queen's initial health.

0x2C83: C8 to 00
Pausing now works during the Metroid Queen fight.
NOTE: This tweak creates two minor graphical issues:

  1. Certain animations will continue playing while paused (e.g. the feet stomping)
  2. The flashing palette effect will not apply to the portion of the screen below the queen.

Other than that, it appears to be perfectly usable.

Drops & Items

Tweaks for anything collectable–items, expansions, drops.

0x375D: 0D → 0C
Make E-Tanks play the shorter item jingle, like missile tanks.

0x375D: 0D → 00
Make all items play the shorter item jingle, like e-tanks.

0x375D: 0D → 00
0x3A1C: 0B → 00
0x3A36: 0E → 00
0x5821: 0B → 00

Collect all items near instantly, like energy/missile refills.

0x8267 - 20 to ??
Changes the amount of energy a large energy drop will add.

0x8270 - 05 to ??
Changes the amount of energy a normal energy drop will add.

0x82AC - 05 to ??
Changes the amount of missiles a normal missile drop will add.

Misc.

Tweaks that don't quite fit in with any of the particular categories.

0x190E - 56 to FF
Makes a spin jump fly upward forever if you release A before the apex of the jump. Hitting a ceiling or shooting will cancel it. Best combined with Respin.

0x2CB6 - 28 to 20
0x2D02 - 20 to 28
Enables debug menu on pause.
Note: This reverses how RAM address D0A0 reads flags 00 and 01.

0x2CE4 - 01 to 02
Music keeps playing on pause.

0x58C5 - CB 37 3C to 3E 00 00
Disables low health beep entirely.

0xAA2E - C0 to 00
Makes hatches vulnerable to beam fire.

0xAA43 - 05 to ??
Changes the amount of missiles it takes to open a hatch.

0x140EC: 01 → 0B
Immediately start a New Game on boot

0x0D12: 40 → 00
0x0D17: 01 → 00
0x0D1C: 12 → 00

Skip the Samus appearance fanfare

0xAB93: 08 → 00
Adjusts the amount the Metroid count is incremented when the musical stinger at the end is activated.

return_of_samus/hex_changes.txt · Last modified: 2022/10/23 00:55 by rt-55j