SMB2J SRAM Plus

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
SMB2J SRAM Plus
by on (#132721)
Okay. Before anyone says that this does not belong here, I've already checked with Koitsu and double-checked with Tepples.

Description: A long time ago, I hired someone to do some ASM work for me to add SRAM. The issue was, I didn't like the way they did it (it originally saved every time you went to the title screen and the wait was about 20 seconds; plus, this guy made a wasteful routine that cost 10 bytes for no reason. There was a TON of free space to begin with in the always-loaded RAM). So, what I did was take some initiative and learned some ASM. The first language I learned was Z80, then I tackled some 6502. This is a brand new original work that's mine. I do more than SRAM. Here are a list of changes:


-SRAM saving (completely redone; upon getting a Game Over on any world except 9 World; and when beating 8-4/D-4. Only saves the highest score.)
-I've added features from the SNES Allstars version:
*Hard Mode on Worlds A-D (where Buzzy Beetles replace Goombas and all enemies move faster, smaller platforms and anything else found in Hard Mode)
*Bowsers now have their own identities when defeated in Fiery state (originally they shared Bowsers World 1-4 identities since Worlds A-D were counted as 1-4 before. I even fixed the A-1 identity glitch found in the Allstars version.)
*Worlds A-D now have their own attributes and no longer share codes and limitations the original, such as spring in World B being red like they're supposed to be etc.
*I've written a little routine in bank $02 to play the beta Game Over music when loading the special message for 9 World

-Many sprite loading issues with OAM have been corrected
-I've fixed every single SMB2J glitch known to man...including:
*The timer would erroneously award player 999 seconds if the timer got down to 0 (50*999 =50, 000 points)
*The platforms had a collision error where they would loop instead of kill the player if they went below the screen ($D0)
*The hammer immunity glitch has been corrected where if the player went all the way to the left of the screen, the player was previously immune to hammers
*The glitch on 4-2 has been corrected
*Lakitu was originally supposed to throw Spinys according to the player's velocity. I fixed this. (A was getting overwritten because the JMP to bounding box control was too early.) Now Spinys bounce and Lakitu moves better. The only other version that fixed this was SMB Deluxe on GBC.
*Infinite lives glitch where the player would receive a Game Over upon accumulating too many lives.(I credit this fix to Kasumi, who gave me a hand with this)
*Many other glitches I corrected based on videos and the Mario wiki

-New features have been added, including:
*A brand new sunset palette has been added. It always bothered me that we had day and night stages but none in the evening.
*Brand new snowy palette. It always bothered me that the shrubs were colored white but the ground was left brown. (I had to clear 8 bytes in the first VRAM table data to make room for this.)
*Brand new bonus areas added and a hidden new level! (World 9-4 = new bonus room, World A-1 = secret hidden level within the stage... 2 exits in total! [Can you find the hidden level? ;) ], B-1 = new bonus room with beta enemies used [can you find the hidden message? ;) ], C-1= a very special new bonus room, D-2 = ??? [I think this stage speaks for itself]. No rooms were taken out; only stuff added
*Underwater currents [9-4 only] - These use the same wind code as on land except I had to code them to push the player around, as wind would previously only do this on land stages.
*Level fixes from the Allstars version. Some of them include the fact that on the NES version it is impossible to get 5000 points as either form of Mario on some stages like 2-3 and 8-2.
*I've also found a TON of beta stuff. Like unused blocks, BG scenery, etc.

I think this is indeed a great work that I've done, here. I just finish beta testing it. So far I've not had a single crash on any Worlds. I've played through it 4 times. I'm gonna do another 4 times just to be sure. My planned release date is 08/29/14. Also, I've studied in-depth the FDS format and came up with my own custom header (I've created my own detailed doc of it which I will include with this). My game is the first to make use of it. I also made a SMB2J manual that I translated/created from my own notes. I also borrowed from the Wii channel's description of the game. I personally own 2 FDS copies of this game. One sealed and one opened. I used the opened one's manual. I think it should be the same as the sealed one.

Also, to speed this up, I'd request one beta tester, if there are any takers. Just shoot me a PM and we'll see. This hack can be used as a base for your future works, too.

Link to the glitches I fixed:
https://www.youtube.com/watch?v=1nzyWWDYSvc
http://www.mariowiki.com/List_of_Super_Mario_Bros.:_The_Lost_Levels_glitches

Here are some screenshots:
Wow. Look at them beta cactus. Im'ma sure glad Shane M. found them! Brrrr! This snow is sooo a' cold!
Image
Image

Ouch! That damn hammer gave me a bump on my mama-mia head!
Image

The beta ground with lava like in the SMAS version. :D
Image

Mama mia! I was here in SMB1!

Image

It's evening...Almost time to have the rest of that spaghetti...I hope I'm close to the Princess, now. (I know it says B-3 but it's really A-3. This was an old shot from when I was now learning how to add rooms. This has been fixed.)
Image

The new bonus room on B-1 with beta blocks and the new beta enemy...What do those blocks spell?
Image

The top secret level of A-1. This looks familiar...Didn't I beat this last spring? (Now 6 months later in time.)
Image
Image

Lakitu got over his "bug" and regained his strength! LOL XD
Image

Finally...Someone translated this message into English for me and used beta blocks to do it in. What? underwater sea current?!? Noooo!!!! Lol

Image

I've also made a custom .pal file which gives the NES an updated graphics feel, as if you were using A/V. This will be included, too. (I made use of palette $1F for the snow which was previously unused.)
Re: SMB2J SRAM Plus
by on (#132723)
Oh. Since the platform code took me many hours to do, here is the fix to use if anybody wants it. I can share my other ASM fixes, too. If anyone wants them. What I did was optimize 2 codes which gave me over 50 free bytes! Here is the code. The new portions I noted with my name:

Code:
SetCollisionFlag:
     ldx ObjectOffset           
     pha ;shane
     lda Player_Y_HighPos ;shane
     cmp #$01 ;shane
     bne platfix ;shane
     lda Player_Y_Position ;shane
     cmp #$df ;shane
     bcc platfix ;shane
     pla ;shane
     rts ;shane
     platfix: ;shane
     pla   ;shane
     sta PlatformCollisionFlag,x
     lda #$00
     sta Player_State
     rts
Re: SMB2J SRAM Plus
by on (#132731)
Oh, hey! Let's chat.

I'm "this guy", and "someone" for the record. Actually, I find it exceptionally interesting that I'm named just sometimes. Like:
Quote:
I hired someone to do some ASM work for me to add SRAM.

versus:
Quote:
*Infinite lives glitch where the player would receive a Game Over upon accumulating too many lives.(I credit this fix to Kasumi, who gave me a hand with this)

Where "gave me a hand" means, "did it." Not that that's worth much credit. But you get this now, right? You get how easy this was? You get that my goal was teaching you and not just doing the things? Because I had no interest in doing the things. Stated several times across several months.
Shanem wrote:
So, what I did was take some initiative and learned some ASM. The first language I learned was Z80, then I tackled some 6502.

I remember mentioning initiative. Heh.

That was my goal all along, you see. I guess I'm glad you learned. I hope you realize now there really is enough info in my PM box to figure out how to hack any game from any system. I wasn't joking.

Quote:
this guy made a wasteful routine that cost 10 bytes for no reason. There was a TON of free space to begin with in the always-loaded RAM

To be fair, you are working with significantly better resources. This vs this. My wind fix and princess pause fix and many other things were very difficult and probably wasteful because I was working with lots of undocumented code. Even the Bowser Hammers for Worlds A-D thing was a REALLY trivial code change, but I had to do some dancing to get it in without breaking byte alignment if I recall correctly. You seem so detail oriented, but you miss some really important things. Like that. "Why didn't the programmers fix these things? They were lazy." Or like... they didn't know about them at all, and you had them all right in front of you.

This is why this sort of hack isn't too interesting to me. You didn't make the disassembly. You didn't find the bugs. So it's a bit like reading someone else's long novel, finding a list of grammar mistakes someone else made, and fixing them. Then declaring yourself a better writer.

But I am still genuinely happy you've learned how to do this yourself. You have no idea how happy I am.
Re: SMB2J SRAM Plus
by on (#132737)
Well, I didn't want to mention that you did the outdated SRAM part because I didn't want to have any hard feelings where I said it was wasteful, etc. Yes, I was working with better source code. I imported your fixes to doppleganger's disassembly and worked from there. I optimized some of the more wasteful codes. I acknowledged you afterwards because there was nothing really "insulting" about the lives fix. Since everything is labeled, I gathered all the unused bytes together, which was around 63, IIRC. This is the always loaded bank. When I ran out, I optimized two other wasteful routines "SetPlatformTilenum" and "BrickShatterEnvData", which gave me 49 free bytes. I think I said 50 earlier. There was also a ton of residual code that I removed, which gave me over 50 or so more bytes. Some of them are: "DoNothing" (yeah, that's the name of the routine), "FlagBalls_Residual", "ResidualMiscObjectCode" etc. If I had more free space I'd write a little routine to start counting lives with numbers after crowns. I think I'm down to 3 free bytes. I've optimized as much as I can, already. I think you also helped with giving Bowser hammer attributes on World's A-D. That used 10 bytes. I was able to get it to only use half. The routine is found in "HammerChk":

Code:
LDA HardWorldFlag
BNE SetHmrTmr


I forgot to mention another change that I made, earlier:
-Added aggressive Hammer Bros. to Worlds A-D (the ones that move toward you)

Still, thanks for all your help with the info on ASM Erik. I still use the obelisk 6502 reference to this day. Anyway, if you're interested with beta testing, I'd be glad to set you up with an early patch. Or else, if no one comes up, I'll aim for the release date I listed earlier. (So far, zero crashes after 4 complete playthroughs.) I really need to test the whole thing again since I added a new bonus room to World 9, as well as completely change the first VRAM table address data to add snow on the ground. (I found 8 bytes that gave Bowser a second green palette which do nothing but waste space...So I added snow and attributed it to both day and night stage layouts whenever snowy BG is loaded.)

EDIT: Oh. Bank $03 had over 400 free bytes, which is how I was able to add all those new bonus things in there. (Bank $03 is Worlds A-D data/code subroutines. Bank $00 is always loaded, $01 deals with Worlds 5-8 and Bank $02 deals with World 9 and victory mode.)
Re: SMB2J SRAM Plus
by on (#132756)
Shanem wrote:
Well, I didn't want to mention that you did the outdated SRAM part because I didn't want to have any hard feelings where I said it was wasteful, etc.

Hey, let me clue you in on why that didn't work! :wink: Consider the following facts:

1. No one knows about that except me.
2. Naming or not naming me doesn't affect my perception of the post. Because uh... I do know.
3. Due to the 1., mentioning it as wasteful at all means I must be the one the statement is intended for. Because again... no one knows but me.

And that is why I was good and didn't respond to this, but had to respond here. Make sense? I'd have been mostly happy leaving you be, otherwise.

Shanem wrote:
I think you also helped with giving Bowser hammer attributes on World's A-D. That used 10 bytes. I was able to get it to only use half. The routine is found in "HammerChk"

Right. I even explicitly mentioned that in the last post. I had to do stupid stuff due to the different disassembly.

I'm not going to bother really looking at it, but I imagine the ten byte routine for "no reason" was one of two things. An extra disk write header, or a thing I added to the title screen to fix the stars blinking differently. Remember the stars? And the reason THAT had to be done was because I was flying blind optimizing the joypad routine (seemingly, maybe I'll look at the FULLY COMMENTED disassembly and find out what really caused it.) And there was a reason I changed the joypad routine, obviously.

If it's the disk header, okay. That also wasn't there for no reason. It was there to save time. Due to the nature of how FDS save states worked on whatever FCEUX version I was using, whatever I did would be in the save state even on a new version. So options are "beat it once without", if it doesn't work add it and do it again. Or, "beat it once." I got paranoid after the Luigi crash. Remember that?

If it's something else, whatever. I could defend any choice I made with this in ways people (that aren't you apparently) would understand. See, one of my main problems with you has always been this: You seem to apologize because I'm yelling at you, and not because you get why I'm upset. :roll: It's cool you didn't like my save fix. I wasn't so satisfied with it either, but I did the best I could under the circumstances. I shared my regrets with you, then. It's cool you've done better, I'm not gonna lose sleep over that.

It's not really cool you presuppose I'd do something for no reason, just because you didn't KNOW the reason. Or not optimize a thing for no reason, since the people who read my posts here know I'm kind of crazy about optimization. This is my second large problem with you. Your default assumption is one of laziness. I was honest with you throughout. I gave you the process for everything because I wanted you to LEARN and not be doing stuff for you. Provided you haven't nuked it in your PM box (due to our correspondence using much more than the PM storage limit), check out a PM from Sun Feb 03, 2013 3:28 am. Recall that you used to be quite bad with computers. I was even patient with you doing something as simple as getting a command line app working. And even THEN when you knew NOTHING about it your default assumption was, "Dumb program must not work on my computer." Check out a PM from Sun Feb 24, 2013 1:10 am, which quotes a PM from Fri Feb 08, 2013 11:13 pm. Such detail. Wow. So much help. Patient help. And this is REALLY important. If you have both of those PMs (or even if you don't), notice that they're more than two weeks apart. Therefore, you spent two weeks avoiding EVEN TRYING the steps outlined, instead communicating about a thing I said I wouldn't help with. Heh.

Do you appreciate such things now that you really know what you're doing? I went so above and beyond the call of duty with you in the beginning. That only changed because it became very clear I was putting more time into it than you were. That only changed because you kept asking me things (thrice!) after I explicitly said, "Look, I'm not helping you with this specific thing anymore. Ask general questions." Probably not including a "cute" thing where you asked a question clearly intended to further something I said I wouldn't help with, asked in a general way. If you had appreciation for any of it, it wasn't shown. That's why I'm bitter about you. My impression for the last year or whatever has been that you never understood or appreciated quite how hard I was trying to help you. Read the PMs before I got mad. (Heh.) You must see that you had an opportunity to learn everything you know now much earlier. You weren't interested, and I guess that is fine. But you weren't interested AND were leading me on. I'm aware of a thing you asked someone else to do. And you told me he told you he was BURNED OUT from it. And unlike me, he's familiar with the game's code. You didn't understand or appreciate that this junk is hard.

Quote:
I forgot to mention another change that I made, earlier:

And the wind/skid sound effect if you redid that. Don't forget princess pause if you redid that.

Quote:
Oh. Bank $03 had over 400 free bytes, which is how I was able to add all those new bonus things in there.

This I was aware of even then. If I recall correctly it's why doing the pause stuff (why.jpg) was easy to fit. (But hard to figure out.)

Quote:
Still, thanks for all your help with the info on ASM Erik. I still use the obelisk 6502 reference to this day. Anyway, if you're interested with beta testing, I'd be glad to set you up with an early patch.

Maybe this kind of thanks is nice. I didn't have much interest in making you say things publicly. But I'd really like to hear somehow you're now aware of just how ungrateful you came off way back when. Search yourself. See if from the evidence provided you can find why I lost patience helping you. That's the closure I'm looking for. You don't have to post it, obviously. But think about that. Let it stew.
Social impairment
by on (#132766)
Kasumi wrote:
You seem to apologize because I'm yelling at you, and not because you get why I'm upset.

I wonder if it's a problem associated with social impairment. People end up internalizing rules like "If someone's yelling at you, then far more likely than not you did something to give him cause to yell at you." Or people with sensory processing disorder may have internalized something like "I need to say something to make the yelling stop overloading my senses."

Quote:
Check out a PM from Sun Feb 24, 2013 1:10 am, which quotes a PM from Fri Feb 08, 2013 11:13 pm. Such detail. Wow. So much help. Patient help. And this is REALLY important. If you have both of those PMs (or even if you don't), notice that they're more than two weeks apart. Therefore, you spent two weeks avoiding EVEN TRYING the steps outlined

Tough school project?

Quote:
instead communicating about a thing I said I wouldn't help with. Heh.

I guess not.

Quote:
I went so above and beyond the call of duty with you in the beginning.

If only Activision would do the same. Some people wish Nintendo would go above and beyond Mario and Pokemon.
Re: SMB2J SRAM Plus
by on (#132822)
Kasumi, let's get one thing clear, okay. All you've done here is stir up drama and unnecessary garbage. You follow me stocking me on other forums with the same deal. You follow my posts etc. You memorize dates to PMs and what not. This is all very obsessive. Did you mention the fact that I *paid* you $110 USD for that previous work? Did you also say that without that money none of your work would be possible within a PM? What's all this about effort trying to teach me ASM etc? Yes, we had a few lessons. I got caught up in life and had to take a break. But I learned it now and this is MY work. I already paid you in full and thanked you for the old job. It seems that you want more, though. How rude of you to spam like this. I'm done with you and will only ignore you from now on. The next post I make will be of my patch.

@Everyone
I just realized another glitch that I corrected. On the Allstars version of this game, on A-4, the Red Koopa is used when defeating Bowser. But there is an issue: Whenever you fireball Bowser and defeat him that way, you see a defeated common enemy sprite. Well, on A-4 it's a Red Koopa, but not defeated. I was curious and did some searching. It turns out the data value loaded was $01 for A-4. $01 is a beta Red Koopa which can walk off edges (usually red ones move back and forth). A Red Koopa should be defined as $03. So I fixed this when I gave Bowser identities for Worlds A-D defeated state. I fixed it without even knowing it was broken to begin with. Silly Nintendo. ;)

Okay. So to not waste board space, the next post will have the patch. Thank you all for your patience.
Re: SMB2J SRAM Plus
by on (#132892)
I got the closure I desired.
Just a few more things in my defense before I put this behind me.
Quote:
You follow me stocking me on other forums with the same deal.

That refers to this post. The post contains a list of things I did that happened to be in that released patch. So I thought work was being used without credit. I don't think that post was out of line considering that, even if I ended up being wrong.
Quote:
Did you also say that without that money none of your work would be possible within a PM?

It would have been possible. The fact that money was involved did not give me the skills I used to do it. It's true I wouldn't have, but I'm not sure what point that makes.
Quote:
It seems that you want more, though.

Just the closure, which I now I have.
Re: SMB2J SRAM Plus
by on (#132967)
Here it is. I've finished testing this early. I've inserted one last glitch fix dealing with platforms after looking at a YT video of a glitch I was unaware of. This fix was added at the very end of testing. But it should work 100%. I stand behind the quality of my work with confidence.


I've also PM'd Tepples an early copy of this, to verify that everything I'm including is allowed.

The key to enjoying this game to its fullest extent comes from a very valuable concept: Reading.

If you expect to find all the hidden goodies I've inserted into this game and to understand what's been done, please read all the material I've included with it. This .ips is meant to be patched over an SMB2J ROM of 65,500 bytes (headerless ROM).

Should there be any issues, you are free to inform me of them and I will do my best to fix them. Though I highly doubt that will be an issue.

Credit goes to Kasumi for fixing a pause glitch during the princess scene on 8-4 and D-4 and for adding skid SFX while wind is blowing. I've also reverted my fix of Bowser hammers from Worlds A-D to his, as mine took an extra 2 bytes. (Though earlier I made a mistake saying mine took less. Mine = 12 bytes in total while his = 10.)

SRAM saving is explained in the instruction manual, as well as everything else needed within the manuals. I've thought of every possible question under the sun to be asked, so nothing is left to be asked questioning this game or any of its features. If you have a question, please read the manuals before asking to avoid redundancy. Thanks.

Note: All 33 (thirty-three) hidden levels are recorded within the manual as well as all the new bonus rooms. It is your job to read and find where they are. (Hint.)

So let me say this to summon it up: You are free to use this for any hacks that you may have. Be sure to credit me if this patch is used. Worlds A-D are coded to have different attributes. Originally, Worlds A-C were counted as 1-3 and World D as 8. Not anymore. So you are free to define what kind of spring to use where, what Bowser will look like when "fire-balled", add or minus features from Hard Mode, etc.

Enjoy. ;)
--ShaneM
Re: SMB2J SRAM Plus
by on (#133085)
I usually visit TCRF. I recently found that they added an SMB2J page that wasn't there two weeks ago. It's interesting that the only thing listed there are the beta tiles that I found. Wonder if they "borrowed" this from me? Anyway, thought it was cool and relevant, since I'm the first person known to make use of these: http://tcrf.net/Super_Mario_Bros._2_(Famicom_Disk_System)

Maybe I should share some unused code or glitch fixes I found in it to them? ;)

EDIT: That site is wrong with the release date. The manual was written on Tuesday June 3rd, 1986, but the game was manufactured on Wednesday July 23rd, 1986. The exact public sales release date is unknown. How do I know this? Simple. I own an original manual to this game and the Japanese message to super players was dated June 3rd, 1986. The internal FDS header recorded in the year of "Showa" is July 23rd, 1986. If you are reading this and made that article, I suggest you correct it.
Re: SMB2J SRAM Plus
by on (#153527)
In honor of the 1 year anniversary of the release of this, I present a new build which fixes every single software glitch found on this game, as well as add new features. I also had time to create a new .pal file that now match my HDMI RGB! (The palette file is Custom3, change the extension from .txt to .pal to use it.) Enjoy this lifelong project! :P


List of fixes present in this build:
Vine of the dead
*Bullet on a string
Double jump
Koopa Troopa factory
Mario Copperfield
Mario's double death
Mushroom magic - my code used for "Jumping Damage Glitch" fixes this since Super Mushrooms share normal enemy code.
Jumping Damage Glitch
Mushroom through the blocks
Small and Fiery
Starman kills fanfare
*Stuck underwater - Nintendo now adds block at the end of water levels. This is also done in the EU version of SMB1.
Thank you dead Mario!
The magic Koopa Troopa - Could originally be done on stages like 1-1 and 8-2 in SMB2J.
Un-Fiery Mario
Invisible platform
Points for the patient
Powerful wind
Blue Bowser Glitch
Instant Game Over
*Invisible Piranha Plant
*Over the Flagpole - Scroll stops have been added at the end of each level. They were messy and caused flag cut off at times so I neatened them by manipulating data.
Corruption
Disappearing Power-Up
Disappearing Springboards
Fireball Through Compact Space
Hammer Immunity
Hammer through the Pipe
*On 2-3 and 8-2 it was previously impossible to get 5000 pts. on the flagpole due to it being too far from the previous platform. This has been fixed. Flagpoles need to be exactly 8 blocks away from the jumping platform.
Platform glitch
Invisible Block Glitch - Also makes the player fall through like on 3-1.
Stuck at the flagpole
3-4 Glitch
Koopa Moonwalking Glitch
*Disappearing Trampoline
*Vine teleport
Harmless Enemy
Player OAM Wrap Glitch

Things not glitches but have code present to avoid issues:
Disappearing Power-Ups
Pipe Maze Glitch

Things due to FDS limitations:
Walk through walls

New Features:
*SRAM saving of high scores when choosing "Quit" on Game Over or when beating 8-4
*Hard Mode taken from the SMAS version for Worlds A-D. Buzzy Beetles replace Goombas, enemies are faster and platforms are smaller
*Aggressive Hammer Bros. on Worlds A-D
*Bowser as his own identities on Worlds A-D, just like the Allstars version
*Springs code on A-D no longer share 1-9 code so their structure taken from SMAS
*The lettering cutoff on Worlds A-D has been fixed on the status bar
*World A-1 extra bricks from SMAS redone
*Ability to pause on 8-4 and D-4 fixed and re-coded
*Various level inconsistencies fixed according to the SMB Deluxe and SMAS versions
*New hidden 1-UP has been added to A-1, since the original forgot to assign one for this stage (every X-1 stage has one)
*Luigi now has his official palettes and has his own fiery form
*Balance lifts redone and more realistic
*Proper palette assignment taken from SMAS
*Some sprites such as Koopas ripped from SMAS
*Skid SFX plays while wind blows and player skids
*When the player is defeated by an enemy while wind is blowing, the wind stops, just like in the SMAS version
*New underwater currents can be found on stages like 9-4
*Three-headed Piranha Plants found on World 9
*Fuller bars found on stages like C-3
*Three new bonus rooms added; one on 9-4, one on B-1 and one on C-1
*New Sunset palette added for cloud levels (similar to SMAS)
*Snow on ground added to snowy levels
*New lives concept; cannot exceed Crown19, just like the original programmer intended
*Bowser now throws hammers on Worlds A-D, just like the SMAS version
*Player now starts with 5 lives, just like in the SMAS version
*The message on 9-4 has been translated into American English
*Collision added for enemy-to-Piranha Plants
*Collision added for shell-to-Piranha Plants
*Improved enemy buffering
*Improved collision with 'shrooms/Starman
*Redrew Bowser to match official artwork and have hair and eyebrows
*Redrew leaves to match SMAS ones
*Gave eyes to Fire Flower
*Gave eyes to Podoboo

There are three new bonus rooms. One on the newly translated 9-4 that I made on one of te first posts about a year ago, one on A-2 (by the second pipe on the bottom by before the platforms), one at the last pipe on B-1 and one on C-1 by the end pipes. The new bonus on A-2 and B-1 share the same room.

I credit Alphamule for helping me beta test this and think of checking places that would have otherwise slipped past me. Thank you. (^_^)

Below is a pic of the HD RGB palettes I was referring to.

Patch it to an SMB2J headerless ROM with a CRC16 of BA55. --ShaneM, the Master of ASM
Re: SMB2J SRAM Plus
by on (#153530)
LOL, YW.