Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,506,044
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 05-01-24 08:42 AM
Guest: Register | Login

0 users currently in ROM Hacking | 1 guest

Main - ROM Hacking - General SMB3 Hacking Thread New thread | New reply

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

zbyte
Posted on 09-13-10 03:11 AM (rev. 2 of 09-17-10 12:38 AM) Link | Quote | ID: 135610


Boomerang Brother
Z is Superior!
Level: 66

Posts: 875/1016
EXP: 2388226
Next: 73625

Since: 06-10-09

Last post: 4437 days
Last view: 2916 days
Posted by Mineyl
Yeah...I wish Reuben could see the light of day, but alas.


I was referring to Mario in the Curious Kingdom as well...

Yeah. Place the Hammer Brother in the middle of three objects that he could land on. If he's in the very bottom half of the level, then there'd be no way he could fall through the floor. A similar kind of glitch related to the Boomerang Brother issue exists in 4-3; in a few instances, you could bump a nearby brick and kill a spiny. Nothing's really wrong if a Boomerang Brother delays his throws; it could actually add a trivial challenge to the level. If you really want to stop it, try removing some coins. As for Mario's position after he exits the pipe, simply change the exit pipe to an upside-down pipe, and change the entrance pipe if you wish. Again, it doesn't really matter at all. In fact, individual videos and interest may spawn showcasing that glitch in your wonderful SMB3 hack. Take your pick?
Posted by Mineyl
EDIT: Silly me, if I'd bothered to scroll a few posts down from the original message, I'd see that you already responded to this list of mine back then.
At least you didn't do that purposely (I hope) like someone else here did!

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








Mineyl
Posted on 09-13-10 05:55 PM Link | Quote | ID: 135618


Ninji
Level: 35

Posts: 211/243
EXP: 276995
Next: 2941

Since: 09-10-09
From: World 5

Last post: 4283 days
Last view: 468 days
Posted by zbyte
I was referring to Mario in the Curious Kingdom as well...

Well, the thing about that hack is that it would get repetitive and unfair. I mean, all games are repetitive when you get right down to it, but I have a certain fear that I wouldn't be able to flesh out the puzzles enough to keep it interesting in spite of that unfair difficulty.

One of the big differences between puzzle design in SMW and SMB3 is that SMW has a lot of extraneous gimmicks that can be used, whereas SMB3 has a lot of different power-ups. In SMW, it would generally be nothing to include a reset pipe (as well as an ASM hack to make Mario small at the start of every level), but in SMB3, these things aren't possible because a reset pipe or door could potentially screw up your puzzle by allowing the player to re-obtain an item box he used up earlier (if you'll recall my video, the ultimate solution to the puzzle was to make your way to a pipe in order TO reset the power-up block containing a super leaf).

Needless to say, I also lack the necessary assembly skills to make Mario small at the start of every stage (though in all honesty, it doesn't sound like it would be hard to implement at all...just a simple if > then check upon level load).

Posted by zbyte
Yeah. Place the Hammer Brother in the middle of you three objects that he could land on. If he's in the very bottom half of the level, then there'd be no way he could fall through the floor. A similar kind of glitch related to the Boomerang Brother issue exists in 4-3; in a few instances, you could bump a nearby brick and kill a spiny. Nothing's really wrong if a Boomerang Brother delays his throws; it could actually add a trivial challenge to the level. If you really want to stop it, try removing some coins. As for Mario's position after he exits the pipe, simply change the exit pipe to an upside-down pipe, and change the entrance pipe if you wish. Again, it doesn't really matter at all. In fact, individual videos and interest may spawn showcasing that glitch in you wonderful SMB3 hack. Take your pick?

Meh. :b I try to keep all of my stuff as glitch-free as I can. That's why these problems bother me more than they should. Thank you for the advice, though; I'll be taking it.

Posted by zbyte
At least you didn't do that purposely (I hope)...

Nah, of course not, but I couldn't delete my post so I just tacked the edit message onto the end of it instead.

By the way, has there been any discussion about the usage of certain features of SMB3 that allow the player to reach more levels than just the one pointed at in the level header? A good example of this is in 1-5, where the invisible note block takes Mario to coin heaven, but the pipe at the end of the stage takes him to the end of the world level instead. It sounds like it'd be really handy to abuse this feature, since I only used the header and pointers for my hack before (I'd really like to flesh out my hack as much as possible, and I'll probably go back and make all of my old levels longer 'cause I believe short stages are one of vanilla SMB3's only true flaws).

____________________
Back from the beyond.

zbyte
Posted on 09-17-10 03:58 AM (rev. 2 of 09-17-10 03:59 AM) Link | Quote | ID: 135806


Boomerang Brother
Z is Superior!
Level: 66

Posts: 876/1016
EXP: 2388226
Next: 73625

Since: 06-10-09

Last post: 4437 days
Last view: 2916 days
Posted by Mineyl
One of the big differences between puzzle design in SMW and SMB3 is that SMW has a lot of extraneous gimmicks that can be used, whereas SMB3 has a lot of different power-ups. In SMW, it would generally be nothing to include a reset pipe (as well as an ASM hack to make Mario small at the start of every level), but in SMB3, these things aren't possible because a reset pipe or door could potentially screw up your puzzle by allowing the player to re-obtain an item box he used up earlier (if you'll recall my video, the ultimate solution to the puzzle was to make your way to a pipe in order TO reset the power-up block containing a super leaf).

Needless to say, I also lack the necessary assembly skills to make Mario small at the start...
I don't know. Maybe a gimmick where Mario would have to go through two Thwomps? Then he'd be normal. Eh...

Posted by Mineyl
By the way, has there been any discussion about the usage of certain features of SMB3 that allow the player to reach more levels than just the one pointed at in the level header? A good example of this is in 1-5, where the invisible note block takes Mario to coin heaven, but the pipe at the end of the stage takes him to the end of the world level instead. It sounds like it'd be really handy to abuse this feature, since I only used the header and pointers for my hack before (I'd really like to flesh out my hack as much as possible, and I'll probably go back and make all of my old levels longer 'cause I believe short stages are one of vanilla SMB3's only true flaws).

http://acmlm.no-ip.org/board/thread.php?pid=133172#133172

Read on from there.

All levels allow you to go to at least two levels: the level designated in the header and the pipe that was claimed to ignore pointers. Level types like Underground, Giant, and Cloud levels contain a pipe that says "[Upward or Rightward] Pipe to End of level" that takes you to a level specified, as explained in those posts. So some levels could have 3 different destinations.

Hey, I remember you logging in and viewing the thread when this stuff was posted. What's going on? It's a good idea to read all the new things that get posted in this thread. Maybe you could try to remember the number of replies and find out which ones were new?

I suggest that you ask one of the major ASM guys out there and they'll help you understand ASM better. I Hope continuing your SMB3 hack goes well for you! Anything you're interested about, post it!

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








Mineyl
Posted on 09-18-10 11:07 PM Link | Quote | ID: 135878


Ninji
Level: 35

Posts: 213/243
EXP: 276995
Next: 2941

Since: 09-10-09
From: World 5

Last post: 4283 days
Last view: 468 days
Posted by zbyte
I don't know. Maybe a gimmick where Mario would have to go through two Thwomps? Then he'd be normal. Eh...

I've thought of making a section where Mario would have to walk through an enemy to progress, reverting him to his previous form...but the problem is that it's very hard (probably impossible) to make a route that small Mario can access that his other forms can't thanks to duck-jumping. A one-tile row with munchers on the ceiling, maybe, but I don't believe muncher graphics can be upside-down in Mario 3...so that'd look awful.

Posted by zbyte
http://acmlm.no-ip.org/board/thread.php?pid=133172#133172

Read on from there.

All levels allow you to go to at least two levels: the level designated in the header and the pipe that was claimed to ignore pointers. Level types like Underground, Giant, and Cloud levels contain a pipe that says "[Upward or Rightward] Pipe to End of level" that takes you to a level specified, as explained in those posts. So some levels could have 3 different destinations.

Hey, I remember you logging in and viewing the thread when this stuff was posted. What's going on? It's a good idea to read all the new things that get posted in this thread. Maybe you could try to remember the number of replies and find out which ones were new?

I suggest that you ask one of the major ASM guys out there and they'll help you understand ASM better. I Hope continuing your SMB3 hack goes well for you! Anything you're interested about, post it!


Good to know. I'll take these things into consideration when I start working with my hack again.

Also, I guess I've just forgotten all this stuff. I'm getting older and there's a lot of stuff I have to keep track of these days, so my memory isn't as good as it used to be. xD

And I'll probably stay out of the assembly unless there's something I just HAVE to have in my hack. I'd like my game to stay as vanilla as possible while updating the graphics and level design.

If I get curious about anything else, I'll be sure to post!

____________________
Back from the beyond.

Quick Curly
Posted on 01-13-11 12:58 PM Link | Quote | ID: 139130


Giant Red Paratroopa
Level: 77

Posts: 995/1443
EXP: 4174120
Next: 17009

Since: 06-15-08
From: Earth

Last post: 26 days
Last view: 26 days
It's been quite a while so things might get a bit messy with me trying to fit everything in...

That Time/Music ASM Hack

It's not a big deal or anything; it's just the one that I implemented into Luigi's Chronicles 2 to allow any amount of "SMB3 time" divisible by 100 "SMB3 seconds", as well as manipulating the music for levels as well. Do note that the music does not speed up to signal/emphasize the remaining 100 seconds if you only set 100 seconds for the time though.

The code to modify is located at 0x3D8C4 in the ROM.

Here is the original code for comparison:

$98B4:B1 61     LDA ($61),Y @ $B467 = #$00
$98B6:29 C0 AND #$C0
$98B8:18 CLC
$98B9:2A ROL
$98BA:2A ROL
$98BB:2A ROL
$98BC:AA TAX
$98BD:BD A8 97 LDA $97A8,X @ $97A8 = #$03
$98C0:8D EE 05 STA $05EE = #$04

This is the modified code:

$98B4:B1 61     LDA ($61),Y @ $B467 = #$41     A: 41  X: 07  Y: 08
$98B6:29 F0 AND #$F0 A: 40 X: 07 Y: 08
$98B8:18 CLC A: 40 X: 07 Y: 08
$98B9:4A LSR A: 20 X: 07 Y: 08
$98BA:4A LSR A: 10 X: 07 Y: 08
$98BB:4A LSR A: 08 X: 07 Y: 08
$98BC:4A LSR A: 04 X: 07 Y: 08
$98BD:AA TAX A: 04 X: 04 Y: 08
$98BE:8D EE 05 STA $05EE = #$04 A: 04 X: 04 Y: 08
$98C1:EA NOP
$98C2:EA NOP

This is how it works. Instead of loading the values that determine the times from somewhere else in the ROM, which limits you to only four possible values, you can now use any amount of time thanks to the modified code and it takes care of it all for you without having to load any other values; just don't go past 9. You can select 0, 4, and 8 in SMB3 Workshop, but for anything else, you'll have to modify it directly in a hex editor yourself, which shouldn't be difficult at all, especially if you end up using a hex editor to modify the code in the first place.

Stuff:

Values to be loaded: 0x 1x 2x 3x 4x 5x 6x 7x 8x 9x

OPERATION HEX DEC 128 064 032 016 008 004 002 001
----------------------------------------------------------------
0x 0- 15 0 0 0 0 x x x x
1x 16- 31 0 0 0 1 x x x x
2x 32- 47 0 0 1 0 x x x x
3x 48- 63 0 0 1 1 x x x x
4x 64- 79 0 1 0 0 x x x x
5x 80- 95 0 1 0 1 x x x x
6x 96-111 0 1 1 0 x x x x
7x 112-127 0 1 1 1 x x x x
8x 128-143 1 0 0 0 x x x x
9x 144-159 1 0 0 1 x x x x

So AND #$F0:

F0 240 1 1 1 1 0 0 0 0

Original - AND #$C0:
C0 192 1 1 0 0 0 0 0 0

The first four bits are used for the time, leaving the last four bits for the music. With the original code, AND #$C0 limited you with only four possible values, as only the first two bits were used.

For the music, here is the original code:

$98C8:B1 61     LDA ($61),Y @ $B467 = #$00
$98CA:29 0F AND #$0F
$98CC:AA TAX
$98CD:BD AC 97 LDA $97AC,X @ $97AC = #$10

This is the modified code:

$98C8:B1 61     LDA ($61),Y @ $B467 = #$41     A: 41  X: 04  Y: 08
$98CA:29 0F AND #$0F A: 01 X: 04 Y: 08
$98CC:AA TAX A: 01 X: 01 Y: 08
$98CD:BD 1B 9F LDA $9F1B,X @ $9F1C = #$20 A: 20 X: 01 Y: 08

As you can see, this is where the original code loaded both the time and music values from $97A8:

$97A8:03 04 02 00
$97AC:10 20 30 40 50 60 70 80 90 0D 09 A9 00 8D 00 07

The reason the final music values might seem odd is because these values weren't actually intended to be loaded for music, but rather it is code following the music values.

$97B7:A9 00     LDA #$00
$97B9:8D 00 07 STA $0700 = #$00

Because of this, I just changed where the game loaded the music values from so that I wouldn't be destroying code, and this allows one to choose which music they want available as well. Here is where the modified code loads the selected music from:

$9F1B:10 20 30 40 50 60 70 80 90 0D 09 0A 00 0E 0F B0

With this combination of values, depending on the value loaded from the active level's header, the following music is possible (of course, you can customize the values as you wish):

Header   Music   Music
Value Value
-----------------------------
0 10 Plains
1 20 Underground
2 30 Water
3 40 Dungeon
4 50 Boss
5 60 Ship
6 70 Battle
7 80 Mushroom House
8 90 Hilly
9 0D Returning to Earth with the Wand
A 09 World 9 Map/Coin Heaven
B 0A Star Power
C 00 No Music
D 0E Game Theme
E 0F Princess Saved
F B0 Bowser Fight

As before, just to show you the possible values, even though AND #$0F is used in both cases and the code doesn't modify the number of possible values, but just for a visual of how it works:

Values to be loaded: x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF

OPERATION HEX DEC 128 064 032 016 008 004 002 001
----------------------------------------------------------------
x0 0 x x x x 0 0 0 0
x1 1 x x x x 0 0 0 1
x2 2 x x x x 0 0 1 0
x3 3 x x x x 0 0 1 1
x4 4 x x x x 0 1 0 0
x5 5 x x x x 0 1 0 1
x6 6 x x x x 0 1 1 0
x7 7 x x x x 0 1 1 1
x8 8 x x x x 1 0 0 0
x9 9 x x x x 1 0 0 1
xA 10 x x x x 1 0 1 0
xB 11 x x x x 1 0 1 1
xC 12 x x x x 1 1 0 0
xD 13 x x x x 1 1 0 1
xE 14 x x x x 1 1 1 0
xF 15 x x x x 1 1 1 1

AND #$0F:

0F 15 0 0 0 0 1 1 1 1

Editing Pipe/Door Pointers

Yes, it's been explained in the past, but this was requested; however, I don't really feel like making a video tutorial so here's a text and visual tutorial instead.

First, you must place a 3-byte pipe/door that can be entered and a 3-byte object which you'll use for its pointer. I normally just place a coin by the pipe/door so that I can change it into a pointer after I know where it will actually lead. Remember that you don't have to edit it into a pointer right away, so don't feel rushed.



Once you know where the exit will be (whether in the same area or another area, to which you must edit the next area in the active level's header accordingly) you'll need to know its horizontal placement in hex, as well as the vertical exit for where Mario/Luigi will appear.

As illustrated below, the starred values are possible exits (although it sometimes varies by a few blocks, but since testing your levels is a given, you'll be able to adjust it accordingly should it be necessary).

To find the horizontal hex position of the object, select it and look in the bottom-right corner to see 3 hex values (4 if it's a 4-byte object, with the additional one being the length). The value you want is the second/middle one. In this example, it's 1A. We also gather that the vertical exit should be 08, and the exit action should be that of a downward pipe.



Select the object to be used as the pointer for your pipe/door, change it to Bank 7, and press the Enter key to bring up the Pointer Properties screen.



Enter the information as required.

As seen in the first image, the pipe that is being entered has a horizontal hex position of 17. This means that the Entrance horizontal is within the range of 10-1F. Note that it's best to stick with one pointer per range/page, as having more than one might cause some undesired aftereffects.

The other 3 variables are for the exiting pipe/door, so that's where you gather the information from, which is why it's essential to know where the exit is before you actually set/edit the pointer. Again, the horizontal hex position is 1A, so that's what you put in for the Exit horizontal. The Exit vertical will be 08, although we'll have to test it out to make sure that no glitch sprites appear, as the pipe should block it if this variable is set properly. Finally, the Exit action will be "2 - Downward Pipe 2". As far as I know, there shouldn't be any difference if you use the "0" downward pipe, but since this is as the game originally does, it's probably a good habit to get used to this instead.



If I need to fix anything that I cannot currently see because of how long this post is already getting, please let me know and I'll try to get around to it when I can...

"Custom Offsets"/Your Own Level Sizes, etc.

Well I've touched upon it in the past, but here's a quick thingymabobber covering it.

If you're starting your hack fresh, this is much easier to manage since you're only just beginning to make your levels. Now, obviously if you stick with just editing the original SMB3 levels, you're restricting yourself to the original object and enemy data set sizes. However, if you clear all of it out before you start editing anything and keep track of the offsets that you use in a written notebook or a text file, you can set your own theoretical limits, and it should prove to be easier to accomplish what you want with your levels in the object and enemy data combination possibilities.

First, you must use a hex editor to clear out all of the original object and enemy data sets in the appropriate ROM banks. By "clearing out", all I really mean is to overwrite all the original data with "FF"s. As for data that the game points to by default, we'll get to that afterward.

Here are the ranges that you can clear out to be used for object/enemy data for the appropriate Object Sets:

          Enemies:  0xC010- 0xE00F (0x2000)
1 - Plains: 0x1E509-0x2000F (0x1B07)
2 - Fortress: 0x2A7F7-0x2C00F (0x1819)
3 - Hilly: 0x20587-0x2200F (0x1A89)
4 - Sky: 0x227E0-0x2400F (0x1830)
5 - Piranha Plant: 0x26A6F-0x2800F (0x15A1)
6 - Water: 0x24BA7-0x2600F (0x1469)
8 - Pipe: 0x24BA7-0x2600F (0x1469)
9 - Desert: 0x28F36-0x2A00F (0x10DA)
A - Ship: 0x2EC07-0x3000F (0x1409)
B - Giant: 0x26A6F-0x2800F (0x15A1)
C - Ice: 0x227E0-0x2400F (0x1830)
D - Clouds: 0x26A6F-0x2800F (0x15A1)
E - Underground: 0x1A587-0x1C00F (0x1A89)

Note: For 6 - Water/8 - Pipe, there is actually a little bit of object data preceding 0x24BA7 (basically just garbage) but it'll be up to you if you want to bother working with it.

Now, there might still be situations where you won't want to use enemies for your levels, so you'll need an enemy data set to point to in that case, similar to what 0xC016 was used for. So at 0xC010, you could simply add the following:

0xC010: 00 FF

Add to your text file for your own records that this can be used for levels with no enemies.

Now you'll need an enemy data set to point to for any Toad's Houses and Bonus Toad Houses. At 0xC012, you can add the following:

0xC012: 01 34 0D 14 FF

You'll have to also change where the game points to for the enemy data. These bytes are located and can be modified at 0x3C967 and 0x3C96E. The original values were 33 and C0 respectively (pointing to $C033 or 0xC043). So in this case, we would change 0x3C967 to 02 so that the game loads the correct enemy data from $C002 or 0xC012.

For the Worldly Hammer Brother Coin Ship, the game loads from offsets determined by the following:

0x19337-0x19346 (0x10) - Object Data ($BC15 = 0x2FC25)
15 BC 15 BC 15 BC 15 BC 15 BC 15 BC 15 BC 15 BC

0x19347-0x19356 (0x10) - Enemy Data ($DA04 = 0xDA14)
04 DA 04 DA 04 DA 04 DA 04 DA 04 DA 04 DA 04 DA

Underground Bonus and Plains Endings were documented earlier in this thread in the following post.

So as for editing levels. Say I want to make a Plains level first. First what I always do is set up the enemy data by replacing the first byte with "01". (I haven't bothered checking to see if SMB3 Workshop might do this itself, although I think it might actually, but this is just my process as it works for me.) After opening up SMB3 Workshop, I put in 0x1E509 for the Object Data and 0xC017 for the Enemy Data. You can now set the level header accordingly, and then add in the objects and enemies that you want.

After you've tested out your level and have it the way you want it, you can check in a hex editor for the ending of the object and enemy data sets. Be sure to continue documenting your object and enemy data offsets as well so that you can set the pointers properly in the SMB3 Map Editor once you're ready to edit and finalize your World Map(s). This is just an example of what your text file might look like:

Custom Offsets
-----------------------------------------------------------------
{NO ENEMIES: 0xC010}

1. 1E509, C012, 1-Plains

2. 20587, C032, 3-Hilly ->
28F36, C064, 9-Desert

3. 1E607, C09C, 1-Plains <->
1A587, C0AD, E-Underground

4. 227E0, C0D6, 4-Sky <->
26A6F, C010, D-Cloudy

5. 228DC, C0FC, 4-Sky [Points to itself]

6. 20727, C11F, 3-Hilly ->
22A34, C14B, C-Ice <->
22B0A, C186, C-Ice

{WORLD 1 UNDERGROUND BONUS PIPE}
1E6A0, C18B, 1-Plains

7. 2A867, C196, 2-Dungeon <->
2A996, C1C2, 2-Dungeon

{TOAD'S HOUSE}
24D70-24DD3, 7-Mushroom [Enemy Data Set Used: C1F1]
[Originally C043]
0x3C967 changed from 33 to E1.
0x3C96E changed from C0 to C1.

{BONUS TOAD'S HOUSE}
2522B-25288, 7-Mushroom {Same Enemy Data Set}

8. 1E7E2, C239, 1-Plains ->
1E6E4, C1F6, 1-Plains ->
1E78E, C22E, 1-Plains

{BOWSER'S CASTLE}
9. 2AA85, C273, 2-Dungeon ->
2AAE2, C28D, 2-Dungeon <->
2ABC7, C2B3, 2-Dungeon

{WORLD 1 COIN SHIP}
10. 2EC07, C2D6, A-Ship ($ABF7, $C2C6) ->
2EE9C, C31A, A-Ship ($AE8C, $C30A) ->
2F1C0, C355, A-Ship ($B1B0, $C345)

(Note that my offsets are different since I fit in the Toad's House differently to make things easier for myself.)

SMB3 Krunk Edition

This is an SMB3 hack that was started by YouTube user dbzisdakrunk, who has since closed his account and abandoned it. I was helping out with it and contributed quite a few levels. However, since he isn't bothering with it anymore, I don't really feel like finishing it by myself, specifically adding in a custom title screen and ending, so I'm going to release it as is.

It's a 1-World SMB3 hack. Consider it a demo, I suppose. Apply the patch to a "Super Mario Bros. (U) (PRG1) [!]" ROM. You can download the IPS patch here.



PHEW! I think that's all... for now.

ShoFIZZLE
Posted on 01-17-11 05:26 PM Link | Quote | ID: 139189


Shyguy
Level: 22

Posts: 24/80
EXP: 51981
Next: 6369

Since: 11-18-09
From: Atlanta, GA

Last post: 4307 days
Last view: 4307 days
Posted by Quick Curly
It's been quite a while so things might get a bit messy with me trying to fit everything in...

OMG thank you kind sir! I had almost abandoned my hack because I got frustrated with the pipe pointers always ending up in the room of doom. Hopefully this will help me get out of my rut.

jonwvsu
Posted on 02-20-11 11:47 PM Link | Quote | ID: 139710

Newcomer
Level: 6

Posts: 2/4
EXP: 555
Next: 352

Since: 02-20-11

Last post: 3343 days
Last view: 3270 days
Sorry if this sounds like a stupid question, but I was wondering if a Wall-Jump could be implemented in SMB3. I know he can do it with emulation if his vert. position is at a multiple of 16 (and other conditions are met), but could that requirement be changed to 1, allowing him to Wall-Jump anywhere? Thanks for you time!

SF - The Dark Warrior
Posted on 04-29-11 10:28 PM Link | Quote | ID: 141381


Paragoomba
Level: 20

Posts: 33/65
EXP: 36479
Next: 5960

Since: 01-24-11

Last post: 346 days
Last view: 346 days
After seeing Jaspile did some ASM for the World 9 map on his hack, what were those ROM and RAM addresses for the World 9 map that supported world map loading so that I may change it to support level loading?

ShoFIZZLE
Posted on 05-05-11 03:24 AM Link | Quote | ID: 141499


Shyguy
Level: 22

Posts: 25/80
EXP: 51981
Next: 6369

Since: 11-18-09
From: Atlanta, GA

Last post: 4307 days
Last view: 4307 days
I finally got my new apartment in order, and I now have a desk to do my work on! I should be a able to focus better on my project now. QC, I haven't forgot about showing you my hack...but I don't have anything to show...yet...lol

ShoFIZZLE
Posted on 06-04-11 12:46 AM (rev. 2 of 06-04-11 01:15 AM) Link | Quote | ID: 143257


Shyguy
Level: 22

Posts: 29/80
EXP: 51981
Next: 6369

Since: 11-18-09
From: Atlanta, GA

Last post: 4307 days
Last view: 4307 days
Need assistance. I think I finally have this down packed, but Im getting the cpu jam error and I for the life of me cannot figure out what is causing it the minute I go into the level. No crash block, no over the top enemies....I have no idea.

Edit:

I figured it out....took a LOT of trial and error, but I realized I had one too many of the block platforms in the level, causing the jam.

NachoGrande96
Posted on 06-20-11 05:02 PM Link | Quote | ID: 143994

Newcomer
Level: 4

Posts: 1/2
EXP: 193
Next: 86

Since: 06-20-11

Last post: 4698 days
Last view: 4668 days
I hope I don't sound dumb for asking this, but here goes.

I recently started designing some SMB3 levels in Reuben (3-4 levels and a custom world map), and I can't figure out how to put the levels onto the ROM. If I can't do that in Reuben, is there some way that I can transfer the levels over to SMB3 Workshop?

Again, I could be completely on the wrong track here. Thanks in advance for the assistance.

Kawa
Posted on 06-20-11 05:27 PM Link | Quote | ID: 143998


CHIKKN NI A BAAZZKIT!!!
80's Cheerilee is best pony
Level: 138

Posts: 4852/5344
EXP: 30956969
Next: 706012

Since: 02-20-07
From: The Netherlands

Last post: 4503 days
Last view: 2638 days
Reuben works in a rather different way than other SMB3 editors do, so yeah I'd say you are on the wrong track. You need a special "base" ROM that Reuben links all the data into. A regular SMB3 ROM won't do.

Was that base ROM ever released? I lost track.

____________________
Wife make lunch - Shampoo
Opera - give it a spin
Spare some of your free time?
<GreyMaria> I walked around the Lake so many goddamn times that my sex drive was brutally murdered
Kawa rocks — byuu

NachoGrande96
Posted on 06-20-11 05:52 PM (rev. 2 of 06-20-11 06:11 PM) Link | Quote | ID: 144000

Newcomer
Level: 4

Posts: 2/2
EXP: 193
Next: 86

Since: 06-20-11

Last post: 4698 days
Last view: 4668 days
Hmm...I'm not sure, but I'll double check. Thanks for telling me though, I didn't know that you needed a special ROM for that.

EDIT: I just did a quick forum search, and the most recent thing I could find pertaining to Reuben said that you still couldn't save levels.

Kawa
Posted on 06-20-11 06:12 PM Link | Quote | ID: 144001


CHIKKN NI A BAAZZKIT!!!
80's Cheerilee is best pony
Level: 138

Posts: 4853/5344
EXP: 30956969
Next: 706012

Since: 02-20-07
From: The Netherlands

Last post: 4503 days
Last view: 2638 days
Guess you'd better start remaking them in SMB3 Workshop then

____________________
Wife make lunch - Shampoo
Opera - give it a spin
Spare some of your free time?
<GreyMaria> I walked around the Lake so many goddamn times that my sex drive was brutally murdered
Kawa rocks — byuu

ShoFIZZLE
Posted on 06-27-11 08:26 PM (rev. 2 of 06-27-11 08:30 PM) Link | Quote | ID: 144153


Shyguy
Level: 22

Posts: 37/80
EXP: 51981
Next: 6369

Since: 11-18-09
From: Atlanta, GA

Last post: 4307 days
Last view: 4307 days
My first world is almost complete!

Question, why do some levels screw up enemy spites in other levels? For instance 1-4 and 1-6 have been giving me hell. If I Have place 15 enemies sprites in 1-4 and somehow the number of enemy sprites triple in 1-6 and there aren't even that many on screen, or I clear the ones out in 1-6 and re-place them, only to find out the ones in 1-4 were completely erased. And it also messed up the end areas that pointed from each area....so I just place goal card areas.

I think I have if figured it out and I kept these stages with only 10 enemy sprites a piece.

What I had to do was clear the enemy sprite data on both stages, save, exit, reopen, and start small and see how it affects the other level.

Anyone care to shed light on this?

zbyte
Posted on 07-05-11 03:57 PM Link | Quote | ID: 144515


Boomerang Brother
Z is Superior!
Level: 66

Posts: 952/1016
EXP: 2388226
Next: 73625

Since: 06-10-09

Last post: 4437 days
Last view: 2916 days
Strange as it may be, the object data and the enemy data for 1-6 both precede, and the object data and enemy data for 1-4 follow directly afterward. What's likely is that you may have placed more than 12 enemies in 1-6, and once you returned, it was reading other enemy data. So if you cleared 1-6's enemies, then 1-4's enemies were erased as well because you might have accidentally tapped into 1-4's enemy data when editing 1-6. Therefore, SMB3 Workshop could have been reading 1-4's enemy data because the ending byte, FF, was moved into 1-4. Once you added enemies into 1-4, then they were added into 1-6, with no sight of that ending byte, FF. Because this was the situation, you went to 1-6 and deleted all the enemies you saw there, and those enemies was what you probably placed in 1-4.

You can have up to 12 enemies for 1-6, but 18 enemies for 1-4. What I'd suggest for you to do is to open up your ROM FCEUX/FCEUXD and an original SMB3 ROM in another window of FCEUX/FCEUXD. Open the hex editor, and change your view from the first choice to the third choice (I forgot what they were - something like CPU RAM , PPU, and ROM File... or something. ). What you're doing here is you're actually looking at the actual NES file instead of the RAM. Highlight CC1D in the original SMB3 R
OM. Highlight starting from CC1D to CC88. Copy that, and select CC1D in your hacked ROM. Make sure you're viewing the ROM file, and paste. It'll paste starting on whatever you selected, so just make sure you've selected CC1D. Then you can add those enemies back in, making sure you don't exceed the limits. I didn't stop at CC7A because I just want to be assured that all of it will be okay. This should wipe out the chances of that stuff happening. If you happen to exceed the limits, do this again. Thanks for posting that! I'm eager to see what you come up with! I'm eager to see your map as well!

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








Quick Curly
Posted on 07-05-11 07:33 PM Link | Quote | ID: 144529


Giant Red Paratroopa
Level: 77

Posts: 1080/1443
EXP: 4174120
Next: 17009

Since: 06-15-08
From: Earth

Last post: 26 days
Last view: 26 days
Just to confirm, I helped him out through Skype recently by setting things up in a revised ROM with all of the original levels cleared out, since that's what he wanted, so he won't have to worry about exceeding any original level size limits anymore. I've guided him through different general hacking basics too.

It's still a good thing that you posted that though because everyone seems to choose to only edit the original levels but not realize that it means that they're restricting themselves to the original size limits, and that the 1-4 and 1-6 situation always causes issues as well despite how often it is covered as time goes on.

KP9000
Posted on 07-05-11 07:58 PM Link | Quote | ID: 144532


Boomboom

Level: 90

Posts: 1702/1975
EXP: 6956069
Next: 232540

Since: 02-19-07

Last post: 3585 days
Last view: 3209 days


Posted by Kawa
Reuben works in a rather different way than other SMB3 editors do, so yeah I'd say you are on the wrong track. You need a special "base" ROM that Reuben links all the data into. A regular SMB3 ROM won't do.

Was that base ROM ever released? I lost track.
Nope... Though I do need to milk my situation though and get my Reuben hack going again. I don't think DD would care so much anymore if it were released... It would be great if someone who is friends with him on Facebook can get him to acknowledge that.

____________________

ShoFIZZLE
Posted on 07-12-11 02:25 AM Link | Quote | ID: 144870


Shyguy
Level: 22

Posts: 38/80
EXP: 51981
Next: 6369

Since: 11-18-09
From: Atlanta, GA

Last post: 4307 days
Last view: 4307 days
New question. I am trying use fceux to code the levels, but how do I determine what the next level header will be? I have the readme QC gave me, but I'm still somewhat lost. I know I have to punch in the level/enemy data for it to show up in the smb3 ws, and if I don't, I get a blacked out level. What do I do next?

zbyte
Posted on 07-12-11 04:22 AM Link | Quote | ID: 144876


Boomerang Brother
Z is Superior!
Level: 66

Posts: 966/1016
EXP: 2388226
Next: 73625

Since: 06-10-09

Last post: 4437 days
Last view: 2916 days
The next level's header is nine bytes long, and it's anything you want the level to be. Just type some header values in so that the nine bytes are filled. Make sure that they're placed right after the FF of the previous level (you can leave some extra space if you think you want to add more to that level, or if you think you've left something out. ). Place an FF once you've created your header. The FF signifies the end of the object data for each level. It'll move once you add objects in SMB3 Workshop. If you'd prefer to edit the header in SMB3 Workshop, just leave nine bytes after the FF from the previous level and place an FF after those nine bytes. As for the enemy data, just place an 01 after the FF that ends the previous level's enemy data. You can call that 01 the enemy data header, but it really doesn't signify much. After this is done, simply type in the location of the start of the object data, which is the start of the header. Type in the location of that 01 for the enemy data. Write that down/note it before you begin to make your level!

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







Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23


Main - ROM Hacking - General SMB3 Hacking Thread New thread | New reply

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

Page rendered in 0.037 seconds. (359KB of memory used)
MySQL - queries: 127, rows: 166/172, time: 0.025 seconds.