Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,475,813
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 04-24-24 03:53 AM
Guest: Register | Login

0 users currently in ROM Hacking Related Releases | 2 guests

Main - ROM Hacking Related Releases - SMB3 World Order hack New thread | New reply


KP9000
Posted on 09-03-09 08:21 AM (rev. 3 of 09-03-09 11:33 PM) Link | Quote | ID: 114395


Boomboom

Level: 90

Posts: 932/1975
EXP: 6952081
Next: 236528

Since: 02-19-07

Last post: 3578 days
Last view: 3201 days


This is an ASM hack that allows you to change the world order that Mario progresses through. When you apply this patch, you will notice nothing different. To actually change the world order, you must edit some ROM addresses.

Here's the readme:

^^^^^^^^^^^^^^^^^^^^^^^^^^
< >
< SMB3 World Order Patch >
< >
vvvvvvvvvvvvvvvvvvvvvvvvvv

By KP9000


Apply this patch to Super Mario Bros. 3 (U) (v0). This version is
untested with other localizations or versions of this ROM.

This patch allows you to change the order of worlds you progress in.
It is an ASM hack that uses a series of checks and performs code
according to the world you complete. The original game only just
incremented the world by one.

All you need to do is change some ROM values. To change the starting
world, change the following ROM address:

$30CC3 - Starting World

To change the order of the worlds, change the following ROM addresses
accordingly.

$3DFD1 - Next World to go to after World 1 (Currently set to World 2)
$3DFD7 - Next World to go to after World 2 (Currently set to World 3)
$3DFDD - Next World to go to after World 3 (Currently set to World 4)
$3DFE3 - Next World to go to after World 4 (Currently set to World 5)
$3DFE9 - Next World to go to after World 5 (Currently set to World 6)
$3DFEF - Next World to go to after World 6 (Currently set to World 7)
$3DFF5 - Next World to go to after World 7 (Currently set to World 8)
$3DFFB - Next World to go to after World 8 (Currently set to World 1)

World 9 is not included since it is handled a bit differently
than other worlds.

Be careful you don't accidentally throw yourself into a loop!
That would suck.

If you are going to use this, please be sure to credit me somewhere.
My feelings won't be hurt if you don't though, but if you claim this
work as your own I will hunt you down and make you eat your fingernails.


Have Fun!


And, finally, the download.

EDIT: Strange. Yeah, I thought it was ROM. I dunno how that happened. My apologies.

____________________

Dr. Hell
Posted on 09-03-09 05:21 PM Link | Quote | ID: 114403


Lakitu
Level: 52

Posts: 509/552
EXP: 1026292
Next: 57548

Since: 03-02-07
From: Pittsburgh, PA

Last post: 5031 days
Last view: 4988 days
Nice to know that you got this working!

zbyte
Posted on 09-03-09 11:00 PM (rev. 2 of 09-03-09 11:08 PM) Link | Quote | ID: 114414


Boomerang Brother
Z is Superior!
Level: 66

Posts: 254/1016
EXP: 2386645
Next: 75206

Since: 06-10-09

Last post: 4429 days
Last view: 2908 days
Whoa! You learned ASM...

But what do I change it to? How do I set the World I go to? Your thing just says to change the addresses... but what do I replace?

EDIT:
I see it now... please state that at the ROM (not RAM) address, there is 01, 02, etc. That would clear up a lot of stuff.

Awesome work! Maybe you would learn how to upgrade that SMB3 Enemy...

____________________
No quotes found; we apologize for the inconvenience. Commas, question marks, and semicolons are available, though.








KP9000
Posted on 09-03-09 11:05 PM Link | Quote | ID: 114416


Boomboom

Level: 90

Posts: 933/1975
EXP: 6952081
Next: 236528

Since: 02-19-07

Last post: 3578 days
Last view: 3201 days


The hex for each world is this: $00 for World 1, $01 for World 2, $02 for World 3, and so on.

If you just completed World 1, and you're going to World 2, it reads the address at $3DFD1 (which is $01, the byte for world 2) so it takes you to World 2. If you change that byte to, say, $05, then it takes you to World 6.

You can throw yourself into a World loop this way, with the only means of escape is to find a Warp Whistle, but I find that a truly evil feature for a hack and should not be used at all.

____________________

zbyte
Posted on 09-03-09 11:13 PM Link | Quote | ID: 114417


Boomerang Brother
Z is Superior!
Level: 66

Posts: 256/1016
EXP: 2386645
Next: 75206

Since: 06-10-09

Last post: 4429 days
Last view: 2908 days
IT WORKED!

Awesome job, KP9000! I'm looking forward to seeing more of your ASM work.

____________________
No quotes found; we apologize for the inconvenience. Commas, question marks, and semicolons are available, though.








Insectduel
Posted on 09-05-09 08:36 PM Link | Quote | ID: 114537


Hammer Brother
Level: 68

Posts: 394/1069
EXP: 2687247
Next: 41553

Since: 02-16-08
From: Insectduel's office

Last post: 1255 days
Last view: 1254 days
The source code seems fine without IPS. But I wonder if I can do the same for the Super Mario All-Stars version. Yes, ALL-STARS.

I haven't touch my Super Mario Projects in a long time back in the old days, I used to hack SMB3 for SNES back in 2006.

KP9000
Posted on 09-05-09 08:39 PM Link | Quote | ID: 114538


Boomboom

Level: 90

Posts: 935/1975
EXP: 6952081
Next: 236528

Since: 02-19-07

Last post: 3578 days
Last view: 3201 days


Applying an IPS patch is far more common knowledge than how to apply source code into a ROM manually. That's why I decided to do it that way. Not only that, some emulators support on-the-fly IPS patching, too.

There needs to be more SMAS hacking. Seriously.

____________________

KP9000
Posted on 09-10-09 12:31 AM Link | Quote | ID: 114802


Boomboom

Level: 90

Posts: 940/1975
EXP: 6952081
Next: 236528

Since: 02-19-07

Last post: 3578 days
Last view: 3201 days


I realized that editing the order of the worlds means that when you jump from world to world the numbers in the status bar aren't in order. Editing this to match the world order you have in place requires another ASM hack, which I am working on right now. I just need to clean up the code and then I will release it.

So, you'll have to edit two sets of ROM addresses:

One set for editing world order (which is already released) and another set for what world number to assign it.

If any of you have applied the patch already, you should be able to re-apply it on top of the old one with the new code without problems. You might have to edit the ROM adresses again, though.

I'll edit my first post when it is released.

____________________

zbyte
Posted on 09-10-09 02:03 AM (rev. 3 of 09-10-09 02:03 AM) Link | Quote | ID: 114809


Boomerang Brother
Z is Superior!
Level: 66

Posts: 294/1016
EXP: 2386645
Next: 75206

Since: 06-10-09

Last post: 4429 days
Last view: 2908 days
Posted by KP9000
I realized that editing the order of the worlds means that when you jump from world to world the numbers in the status bar aren't in order.
Yeah. When you set the world you want to go to, it sends you to that world. All you'd have to do is edit some text or do what you wanted. Peach's message is the same from the world you just finished too.






____________________
No quotes found; we apologize for the inconvenience. Commas, question marks, and semicolons are available, though.








KP9000
Posted on 09-10-09 02:50 AM Link | Quote | ID: 114811


Boomboom

Level: 90

Posts: 941/1975
EXP: 6952081
Next: 236528

Since: 02-19-07

Last post: 3578 days
Last view: 3201 days


Actually, where it says "World #" in the status bar, it works a little bit different than that. The tile to use for the world number is determined by checking a certain RAM address. Therefore, there is no table of values to load per world. I have changed that code and added a table of values to change.

____________________

Main - ROM Hacking Related Releases - SMB3 World Order hack New thread | New reply

Acmlmboard 2.1+4δ (2023-01-15)
© 2005-2023 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.034 seconds. (327KB of memory used)
MySQL - queries: 82, rows: 102/103, time: 0.026 seconds.