Super Mario All-Stars - SMB1 and Lost Levels: Spiny Egg Throwing Behavior Fix

Started by ZeroShift, December 12, 2016, 12:55:52 PM

Previous topic - Next topic

ZeroShift



After finding this fix for the original game on TCRF, I had to try my hand at fixing Super Mario All-Stars. Lo and behold it works!

For those who are unaware, Lakitu's current Spiny Egg throwing behavior is the result of a bug in the original game which was carried over to All-Stars. More info can be found at the link to TCRF above.

This patch corrects that bug in All-Stars and makes Lakitu a force to be reckoned with, especially in Lost Levels..

Included are IPS files for both headered and non-headered ROMs. They also should work with SMAS + SMW, it worked in testing but don't be surprised if something breaks

Video
https://www.youtube.com/watch?v=UVcWoTiey6E&feature=youtu.be

Download: https://mega.nz/#!XE42CSgB!dXT1YnszeuhtPtP44Q75xyf14Z5kl-cdN0pYhfv4a4U



Chronosplit

Looks like it's working with all these other All-Stars fixes that are around (+SMW with other palette and physics fixes anyway, but I've not tested with any of the title screen altering patches).  More testing to come.

Interesting how this one carried itself over to All-Stars.  Thanks a bunch!

KingMike

"My watch says 30 chickens" Google, 2018

ZeroShift

Quote from: KingMike on December 12, 2016, 08:46:27 PM
Did All-Stars use a lot of ported NES code?
That would explain it.

It seems to at least, I just used the same method used for SMB2J: Find the JSR bounding box opcode within the Spiny routine by searching hex values common with these fixes (It's located at 0x1C7F9 and 0x6C6BF in the ROM, one for SMB1 and Lost Levels I assume) and move the JSR to after the DEY opcode.

Flip 0x1CF9-1C801 from  20 07 C7 A0 02 95 5E C9 00 30 01 88 to A0 02 95 5E C9 00 30 01 88 20 07 C7

And flip 0x6C6BF-6C6CA  from 20 C2 C5 A0 02 95 5E C9 00 30 01 88 to A0 02 95 5E C9 00 30 01 88 20 C2 C5

justin3009

A lot of the code in general in All-Stars is basically ported from the original games. In SMB2 the level data including enemies and object placement are 'exactly' the same so one could easily make a level on the NES and port it to All-Stars.
'We have to find some way to incorporate the general civilians in the plot.'

'We'll kill off children in the Juuban district with an infection where they cough up blood and are found hanging themselves from cherry blossom trees.'