Points of Required Attention™
Friendly reminder: Please don't respond to spammers! Their posts inevitably get memory-holed when staff get around to, leaving behind an inexplicable tableau of you shouting at nothing and (if they otherwise would have been alone in a thread) dangling posts and wrong postcounts.
Views: 48,208,994
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 08-20-18 05:30 AM
Guest: Register | Login

0 users currently in ROM Hacking | 2 guests

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

one-off hacker
Posted on 07-27-10 06:48 PM Link | Quote | ID: 133479

Newcomer
Level: 3

Posts: 1/1
EXP: 54
Next: 74

Since: 07-27-10

Last post: 2945 days
Last view: 2945 days
Hi there, I'm working on a project that's not a ROM Hack but needs some information that I just can't find. I've looked through several ROM Maps and RAM Maps for SMB3 and all sorts of documentation, but I've still had no luck.

Provided I'm playing a ROM of SMB3, where can I find the following information?

1) Which levels have been completed in the current world in the current game. Obviously this information is held in RAM somewhere, because when you die or beat a level, you go back to the world map, and it still has a record of the levels you've beaten / mushroom houses you've visited / etc. I'm assuming the game doesn't hold all the world map data in RAM while simultaneously holding the current level data in RAM, right?

2) Which level I'm currently in. Obviously the level data is held in the ROM, and the active level data is held in the RAM. I've found the current world in RAM. I've found the current position in a given level held in the RAM. What I can't find is any kind of pointer or value in RAM that I could use to determine the current level. I just need to know where the value is stored, I can reverse engineer how given values relate to give levels myself.

3) The return coordinates for the world map. Like, I'm in a level, and I die. I am returned to the last completed level or the start of the world. Where are the coordinates stored in RAM so that the game knows where to return me to? Does the game store coordinates, or just a pointer to the last completed level in the ROM, which in turn is used to determine the coordinates?

If anyone has any information about any of these three things, I'd really appreciate it.

Quick Curly
Posted on 07-28-10 02:02 PM Link | Quote | ID: 133501


Giant Red Paratroopa
Level: 72

Posts: 979/1425
EXP: 3279834
Next: 43928

Since: 06-15-08
From: Earth

Last post: 58 days
Last view: 4 days
Posted by zbyte
Oh well. At least you put forth some effort. I think you should finish up your own work as well. I recall you being in the testing stages of your SMB3 hack - is this correct? Sorry if it's not.
No worries. I've been stuck in the finishing stages for what seems like forever. It's difficult and frustrating sometimes having to do everything yourself... I'm getting there though.
Posted by zbyte
I forgot to mention this in my last chapter of a post - and that is that entering a pipe in the special world-specific Bonus Area will take you back to the level you came from. The only way the special pipe won't take you to the special Bonus Area is if you play the main level in another world.
I actually looked into this out of interest. More on that in a bit.
Posted by zbyte
Sorry that you missed out on your 'Nooki!
LOL!
Posted by zbyte
I chop up some unused level data sometimes to use secondary areas or bonus areas. You have to include a 9-byte level header in the number of extra bytes. Is this similar to unused enemy data? Usually I see 01 at the beginning of each enemy data offset; this must be some type of header. Any ideas? Should extra enemy data be handled the same way extra level data does?
Leave the FF that terminates the previous enemy data and replace the FF that follows with a 01. Enemy data doesn't require its own header. The header of the active level loads the enemy data through the appropriate code. The 01 is just there; however you want to put it. The last bit of enemy data terminates at 0xDA74. So you can make use of the free space from 0xDA75 onward. Just remember that the next bank begins at 0xE010, so you can only go as far as 0xE00F, if you even go that far. So I could put a 01 at 0xDA75, and then for whichever level is going to use that enemy data, point to 0xDA75 for the enemy data when loading it up for editing in SMB3 Workshop, or if adding the level to a pointer on your world map in the SMB3 Map Editor. It's pretty self-explanatory, so I don't want to continue rambling and building this wall of text concerning that.

As for the bonus areas... I looked it up out of interest to see where it could be changed in the ROM for whoever could make use of that data. Interestingly, a lot of the set offsets in SMB3 Workshop don't match the true offsets for the object data and enemy data. So here they are as they appear in the ROM (and loaded into RAM):

Underground Bonus Areas

Object Data: 0x3491B - 0x3492A (0x10)
Enemy Data: 0x3492B - 0x3493A (0x10)
Object Set: 0x3493B - 0x34942 (0x8)

Object Data Enemy Data Object Set
$A90B (0x3491B) $A91B (0x3492B) $A92B (0x3493B)
---------------------- ---------------------- ----------------------
AF B1 = 0x1B1BF 76 C9 = 0xC986 0E = Underground
BC B1 = 0x1B1CC 78 C9 = 0xC988 0E = Underground
8B B2 = 0x1B29B 7D C9 = 0xC98D 0E = Underground
72 B3 = 0x1B382 88 C9 = 0xC998 0E = Underground
D8 B3 = 0x1B3E8 90 C9 = 0xC9A0 0E = Underground
70 B4 = 0x1B480 98 C9 = 0xC9A8 0E = Underground
E2 B5 = 0x1B5F2 A3 C9 = 0xC9B3 0E = Underground
5B B6 = 0x1B66B AB C9 = 0xC9BB 0E = Underground

Plains Bonus Areas
Object Data: 0x34B27 - 0x34B36 (0x10)
Enemy Data: 0x34B37 - 0x34B46 (0x10)
Object Set: 0x34B47 - 0x34B4E (0x8)

Object Data Enemy Data Object Set
$AB17 (0x34B27) $AB27 (0x34B37) $AB37 (0x34B47)
---------------------- ---------------------- ----------------------
68 BD = 0x1FD78 60 C5 = 0xC570 01 = Plains
68 BD = 0x1FD78 60 C5 = 0xC570 01 = Plains
68 BD = 0x1FD78 60 C5 = 0xC570 01 = Plains
B8 BD = 0x1FDC8 60 C5 = 0xC570 01 = Plains
68 BD = 0x1FD78 60 C5 = 0xC570 01 = Plains
68 BD = 0x1FD78 60 C5 = 0xC570 01 = Plains
68 BD = 0x1FD78 60 C5 = 0xC570 01 = Plains
68 BD = 0x1FD78 60 C5 = 0xC570 01 = Plains

Posted by one-off hacker
1) Which levels have been completed in the current world in the current game. Obviously this information is held in RAM somewhere, because when you die or beat a level, you go back to the world map, and it still has a record of the levels you've beaten / mushroom houses you've visited / etc. I'm assuming the game doesn't hold all the world map data in RAM while simultaneously holding the current level data in RAM, right?

2) Which level I'm currently in. Obviously the level data is held in the ROM, and the active level data is held in the RAM. I've found the current world in RAM. I've found the current position in a given level held in the RAM. What I can't find is any kind of pointer or value in RAM that I could use to determine the current level. I just need to know where the value is stored, I can reverse engineer how given values relate to give levels myself.

3) The return coordinates for the world map. Like, I'm in a level, and I die. I am returned to the last completed level or the start of the world. Where are the coordinates stored in RAM so that the game knows where to return me to? Does the game store coordinates, or just a pointer to the last completed level in the ROM, which in turn is used to determine the coordinates?
Hopefully the following findings help. There is more data than the specific data you were asking/searching for, but I was planning to post it all anyway, so I'm throwing it all into one collective post.

$0022 - Level length
$0023 - X-coordinate of column after far-right visible column on screen
$0024 - X-coordinate of column before far-left visible column on screen
$0075 - Map: Current Y-position (Mario)
- Level: Current screen number
$0076 - Map: Current Y-position (Luigi)
$0079 - Map: Current X-position (Mario)
$007A - Map: Current X-position (Luigi)
$007B - Remaining pixels for Mario's movement (#$20 = 32 pixels) (counts down as Mario moves)
$007C - Remaining pixels for Luigi's movement (#$20 = 32 pixels) (counts down as Luigi moves)
$007D - Mario's last map movement
01 = Right
02 = Left
04 = Down
08 = Up
$007E - Luigi's last map movement
01 = Right
02 = Left
04 = Down
08 = Up
$00E9 - Current X-coordinate
$00EE - Current character display (ex. 06 = Mario jumping; 4F = Mario jumping with fist in air)
$7950 - Mario's moving speed on map (max = #$18 by holding directional pad down; FF = not moving)
$7951 - Luigi's moving speed on map (max = #$18 by holding directional pad down; FF = not moving)
$7976 - Y-position of current level entered (Mario)
$7977 - Y-position of current level entered (Luigi)
$797A - X-position of current level entered (Mario)
$797B - X-position of current level entered (Luigi)
$797E - Y-position for return point if Mario dies
$797F - Y-position for return point if Luigi dies
$7982 - X-position for return point if Mario dies
$7983 - X-position for return point if Luigi dies
$7D00 - $7D3F - Mario's cleared levels
$7D40 - $7D7F - Luigi's cleared levels
$7DD5 - Last map movement (applies to both Mario and Luigi)
- Tells the game where the player came from to avoid them passing an incomplete level
but allows them to go back
- For example, you reach 1-2, moving from the left. The value is 01 (you moved right)
- This tells the game that you moved from the left. You cannot pass the level in any
other direction
- You can modify this value yourself with a hex editor while viewing RAM
- If we change it to 08, the game thinks we came from below (by moving up), thus we
can move "back" down
- Note: This differs from $7D/$7E. If you try to move in a direction that you cannot move in,
these values still change
$7DFE - $7DFF - Object data for next area (from level header) (ex. 1-1 Bonus: 93 BC = 0x1FCA3)
$7E00 - $7E01 - Enemy data for next area (from level header) (ex. 1-1 Bonus: 06 C0 = 0xC016)
$7EB9 - $7EBA - Object data for current active level (ex. 1-1: 82 BB = 0x1FB92)
$7EBB - $7EBC - Enemy data for current active level (ex. 1-1: 27 C5 = 0xC537)

Additional notes:
-> $7976/$7977 + $797A/$797B are used to determine, if Mario/Luigi dies, from where they begin flying from.

-> $797E/$797F + $7982/$7983 are used to determine where they arrive after dying.


(Click image to enlarge.)

Here's a visual to help get an idea of how the data for the cleared levels per player is stored. Take note that for the bottom two rows, the game seems to determine which of the two rows the clear tile should appear on from the second-to-bottom row (seeing as how the only time the clear tile appears on the very bottom row is if the second-to-bottom row is not a level tile). Be sure to test different things out. I assume that the following rows for both Mario and Luigi apply to other map screens, but note that I did not test that theory out, so it'll be up to you to try that out.

zbyte
Posted on 07-29-10 01:05 AM Link | Quote | ID: 133547


Boomerang Brother
Z is Superior!
Level: 61

Posts: 857/1016
EXP: 1876431
Next: 165

Since: 06-10-09

Last post: 2355 days
Last view: 835 days
Posted by Quick Curly
No worries. I'm getting there though.
I've finally check my E-Mail again and found your message and replied to it.

Posted by Quick Curly
Leave the FF that terminates the previous enemy data and replace the FF that follows with a 01. Enemy data doesn't require its own header. The header of the active level loads the enemy data through the appropriate code. The 01 is just there; however you want to put it.
I don't understand this part. If you leave the FF that ends the main bit of the enemy data, and change the FF that would end the extra enemy data, then the level would load other enemy data, right? I'm not so sure, obviously.
Posted by Quick Curly
The last bit of enemy data terminates at 0xDA74. So you can make use of the free space from 0xDA75 onward.
This is great! Much more enemies!


Where will Einstein Curly's funeral be held at?

Posted by Quick Curly
As for the bonus areas... I looked it up out of interest to see where it could be changed in the ROM for whoever could make use of that data. Interestingly, a lot of the set offsets in SMB3 Workshop don't match the true offsets for the object data and enemy data. So here they are as they appear in the ROM (and loaded into RAM):

Hm. The special B0-BF pipes are just like the pipes used to go directly to the "ending" level.

How do you log data like the Map/Level data you posted last? I'm wondering where the offset is located for map animation types...

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








Quick Curly
Posted on 07-29-10 02:02 AM Link | Quote | ID: 133548


Giant Red Paratroopa
Level: 72

Posts: 982/1425
EXP: 3279834
Next: 43928

Since: 06-15-08
From: Earth

Last post: 58 days
Last view: 4 days
Posted by zbyte
I don't understand this part. If you leave the FF that ends the main bit of the enemy data, and change the FF that would end the extra enemy data, then the level would load other enemy data, right? I'm not so sure, obviously.
Sorry. I guess the wording was a little incomplete. That was a long post, after all...

I started a little something for someone else a couple days ago, but didn't really get too far with it since a lot of other stuff was going on as well. So if you refer to the images, the instructions finish on an incomplete note. Basically, all that's left to be said is what was actually touched upon in the previous post, being that once you have a new enemy set ready for editing, when loading up the level you're going to be editing in SMB3 Workshop, point to the appropriate offset for the enemy data. There won't be any enemies, but you don't have to worry about any original limit either because you're building on unused space! So add your enemies in, save, and I'd advise double-checking in a hex editor afterward to make sure that everything is how it should be, as well as to find where that new enemy data set ends and where the next one can begin. As I always mention, I also recommend keeping notes in a book or a Notepad text file of any and all custom offsets for object and/or enemy data that you use. And don't forget, when editing pointers in the SMB3 Map Editor, you can easily enter custom offsets as well, so there should be no problem in entering the proper custom offsets for object and/or enemy data.


(Click images to enlarge.)
Posted by zbyte
Where will Einstein Curly's funeral be held at?
The strange thing is, no body was found. So everyone decided to just let it be and carry on with their normal lives.
Posted by zbyte
Hm. The special B0-BF pipes are just like the pipes used to go directly to the "ending" level.
I just noticed in my previous post... I should have noted that the Plains areas were level endings, not necessarily bonus areas. Oh well.
Posted by zbyte
How do you log data like the Map/Level data you posted last? I'm wondering where the offset is located for map animation types...
Do you mean which CHR-ROM banks are used to animate the tiles on the World Maps; or the code that determines which World Maps animate and which do not? If neither, could you please be a little more specific?

zbyte
Posted on 07-29-10 05:00 AM (rev. 2 of 07-29-10 05:02 AM) Link | Quote | ID: 133551


Boomerang Brother
Z is Superior!
Level: 61

Posts: 858/1016
EXP: 1876431
Next: 165

Since: 06-10-09

Last post: 2355 days
Last view: 835 days
Posted by Quick Curly
Posted by zbyte
I don't understand this part. If you leave the FF that ends the main bit of the enemy data, and change the FF that would end the extra enemy data, then the level would load other enemy data, right? I'm not so sure, obviously.
Sorry. I guess the wording was a little incomplete. That was a long post, after all...

Basically, all that's left to be said is what was actually touched upon in the previous post, being that once you have a new enemy set ready for editing, when loading up the level you're going to be editing in SMB3 Workshop, point to the appropriate offset for the enemy data. There won't be any enemies, but you don't have to worry about any original limit either because you're building on unused space!
No worries, I guess I was too.

I was talking about levels inside the bank of enemy data, but I guess it's been solved by the unused space...

Posted by Quick Curly
The strange thing is, no body was found. So everyone decided to just let it be and carry on with their normal lives.
I thought everyone liked him... oh well. Hope a ghost doesn't appear out of nowhere...
Posted by Quick Curly
Yeah. I did so myself. I just noticed in my previous post... I should have noted that the Plains areas were level endings, not necessarily bonus areas. Oh well.
It's okay.
Posted by Quick Curly
Do you mean which CHR-ROM banks are used to animate the tiles on the World Maps; or the code that determines which World Maps animate and which do not? If neither, could you please be a little more specific?
I meant the animation styles used for each World Map. The CHR tiles at $17C35 to $17C38 are used for all World Maps. So the real question would be: Where is the code that determines the animation style for each World?

Also, I'm wondering where the animation speed used for levels are located and where I can change which map's palette I can use for each World Map, as in World 5 and world 7 using the same map palette.

Also, it looks like there could be a load of unused Object data as well! I'm not too sure right now...

I was on a weird schedule today, so sorry for the delay.

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








topchain
Posted on 08-06-10 07:04 PM Link | Quote | ID: 133969

Newcomer
Level: 6

Posts: 1/6
EXP: 796
Next: 111

Since: 08-06-10

Last post: 2575 days
Last view: 2575 days
I've been making levels and stuff for the NES SMB3. All dungeons are edited. I have 10 extra bytes total out of all of them. How do I change unwanted "sky" levels into dungeons?

Mineyl
Posted on 08-06-10 07:58 PM Link | Quote | ID: 133975


Ninji
Level: 33

Posts: 180/243
EXP: 216481
Next: 12698

Since: 09-10-09
From: World 5

Last post: 2202 days
Last view: 652 days
As far as I know, you can't. Level themes must stay within their respective banks within the ROM, otherwise, they'll glitch up.

____________________
Back from the beyond.

Quick Curly
Posted on 08-16-10 09:01 AM Link | Quote | ID: 134456


Giant Red Paratroopa
Level: 72

Posts: 986/1425
EXP: 3279834
Next: 43928

Since: 06-15-08
From: Earth

Last post: 58 days
Last view: 4 days
Posted by topchain
I've been making levels and stuff for the NES SMB3. All dungeons are edited. I have 10 extra bytes total out of all of them. How do I change unwanted "sky" levels into dungeons?
You could always change them into Ice levels instead if you prefer Ice levels over Sky levels. This is because they share the same bank though.

Interchangeable:
- Sky & Ice
- Piranha Plant, Giant & Cloudy
- Water & Pipe

1 - Plains: 0x1E509 - 0x2000F
2 - Fortress: 0x2A7F7 - 0x2C00F
*NOTE: 0x2A7F7 - 0x2A866 = 7 End Castles
3 - Hilly: 0x20587 - 0x2200F
4 - Sky: 0x227E0 - 0x2400F -----------------+
5 - Piranha Plant: 0x26A6F - 0x2800F -----+ |
6 - Water: 0x24BA7 - 0x2600F -----+-----+ |
8 - Pipe: 0x24BA7 - 0x2600F -----+-----+ |
9 - Desert: 0x28F3F - 0x2A00F | |
A - Ship: 0x2EC07 - 0x3000F | |
B - Giant: 0x26A6F - 0x2800F -----+ |
C - Ice: 0x227E0 - 0x2400F -----+-----------+
D - Cloudy: 0x26A6F - 0x2800F -----+
E - Underground: 0x1A587 - 0x1C00F

Also to note, there is unused space in a few of the ROM banks for the possible addition of more levels; some have more free space than others.

Free space (in respective order as the banks appear in the ROM, except for Underground
which I will present afterward):

Enemies: 0xDA75 - 0xE00F (0x59B)
Plains: 0x1FFD2 - 0x2000F (0x3E)
Hilly: 0x219FD - 0x2200F (0x613)
Sky/Ice: 0x23FAA - 0x2400F (0x66)
Water/Pipe: 0x257A6 - 0x2600F (0x86A)
Plant/Giant/Cloudy: 0x27FEC - 0x2800F (0x24)
Desert: 0x29F54 - 0x2A00F (0xBC)
Fortress: 0x2BFF6 - 0x2C00F (0x1A)
Ship: 0x2FDE1 - 0x3000F (0x22F)

For the Underground Object Set, there is some free space before some unused levels that were presumably early beta test levels outside of other Object Sets. Since the Underground Object Set comes first in the order of the level banks, it's reasonable to assume that they had it set up first, and they tried some level designs that they discovered would fit more appropriately in the other Object Sets which would soon be created afterward. If you want to view the level designs yourself, punch in the ROM offsets and load the object data sets up in SMB3 Workshop! (Put 0xC016 for the enemy data so that you don't have enemies in the way.)

0x1BADD - 0x1BC3A (0x15E) - Unused space.
0x1BC3B - Shows bits of the end of 1-1 (Plains).
0x1BCA3 - 1-1 Bonus Area (Plains) duplicate!
0x1BCF9 - Seems to be the ending of something; maybe an early Water/Pipe beginning/end.
0x1BD43 - Attempted 3-8 Ending (Plains) from what I can tell.
0x1BD78 - Really seems to be just a mess.
0x1BDC8 - See previous. (Not sure if it's actually a starting offset for something or a part
of the previous data set.)
0x1BDE8 - Attempted horizontal hilly-like level? (Again, not sure if it's really the start of
something.)
0x1BE0B - Looks like 0x1BDE8 only with a light blue background.
0x1BE2F - Messed up early 3-3 (Plains)!
0x1BE58 - Another early 3-3!
0x1BE79 - Another early 3-3! (Wow; how many attempts did they need to take?!)
0x1BFAA - Attempted 3-3 ending by the looks of it.
0x1BFD2 - 0x1C00F (0x3E) - Unused space.

So yeah, since those levels near the end of the Underground bank are unused as well, probably due to being early beta testing material, you can always use the space they occupy to make more levels for your own SMB3 hack. I've been having fun and going a bit overboard with the custom offsets lately in my attempts to FINALLY complete Luigi's Chronicles 2 so that I can FINALLY move onto something else. (Oh, and War in Hell, the Battle City hack that Googie previewed some time ago, was completed on my birthday almost 2 months ago, but I've been holding off on its release so that I can submit Luigi's Chronicles 2 and War in Hell to Romhacking.net together.)

I've used the free space in the Underground and Hilly banks, and I'm going to tackle the Water/Pipe bank next. I don't know how much space I'll actually get to use since I only have a few free bytes left for enemy data, but I definitely foresee it all working out proficiently. Then one more test run and it should be done! (Yeah, sorry about being over a year AFTER I originally predicted. Dang school. )

So I guess that's sort of an... open invitation, maybe? If I'm considerably worth that, that is. Despite the collaborative hack idea which was a failed attempt, I'd still be interested in possible future collaborative SMB3 projects, and considering how it seems SMB3 hacking is pretty dead again otherwise (unfortunately ) I'd like to possibly help to get thingymabobbers rolling again somehow or another... BUT I don't plan on doing anything like I had to go through with Luigi's Chronicles 2 ever again (i.e. doing a crap load of bloody crap all by my bloody self).

Out of curiosity, how are the SMB3 hacking projects for everyone else coming along? Obscure Kingdom (aside from Reuben being held off again due to an overseas shipment of some new mayonnaise)? Luigi's Quest? Mario's Trials? Googie's new SMB3 hacking attempt? Mario Adventure 3?!?!?! Well, anyway, hopefully things get rolling again.

As for the World Map animation-related code, I'll get to that later on if you don't mind. I already spent a while on this post and it's already long enough as it is, so next time. I edited it for Luigi's Chronicles 2, so it's not like I have to take time to search for it; it's just the matter of typing out an explanation for it and whatnot. As well, perhaps I'll post a little ASM-related surprise that can expand one's SMB3 hacking possibilities just a little bit in a way that actually reduces the length of the related code by a couple of bytes. Though yes, those things would best be posted as separate posts for referral purposes. So please post people so that I can post those thingies as well! Later, alligators. And remember - stay out of the water.

topchain
Posted on 08-21-10 06:20 PM Link | Quote | ID: 134729

Newcomer
Level: 6

Posts: 2/6
EXP: 796
Next: 111

Since: 08-06-10

Last post: 2575 days
Last view: 2575 days
Good stuff. Wait - where's the Spade object set? I forgot.


I've been running up and down in the SMB3 ROM for the autoscrolling data. I'm looking for the "track pieces" that the different autoscrolling paths use. Like going right one screen, then dropping down, and the stuff like that. I've been searching for a very long time, and I've come up empty-handed. Not only that, but I can't find the animation speed of the objects in levels. You may be seing fireworks if I can't fidthem soon.

KP9000
Posted on 08-21-10 09:32 PM Link | Quote | ID: 134739


Boomboom

Level: 85

Posts: 1431/1975
EXP: 5688093
Next: 210447

Since: 02-19-07

Last post: 1504 days
Last view: 1128 days


Posted by Quick Curly
Out of curiosity, how are the SMB3 hacking projects for everyone else coming along? Obscure Kingdom (aside from Reuben being held off again due to an overseas shipment of some new mayonnaise)? Luigi's Quest? Mario's Trials? Googie's new SMB3 hacking attempt? Mario Adventure 3?!?!?! Well, anyway, hopefully things get rolling again.
Obscure Kingdom is ready to move on to the next stage of maturity. I need to implement the world based ASM hack that changes the behavior of coins in each world. After that, I can start designing more levels that take advantage of this new gameplay aspect!

Also, world map animation code and/or explanation would be an excellent thing to have. I'm also curious how Mushroom Houses work, and how I'm going to implement Spade games in my Reuben hack as I have not yet seen support for it. Though, I suppose I could just open up an editor and look at the pointer type and just manually insert it in the XML level file...

As far as MA3 goes, I'm not sure if DD is planning *this* hack as his Reuben hack or not but if it is, I might be helping him with it. Obscure Kingdom also won't see new development until some bugs are fixed. They're kinda hard to work around.

____________________

Googie
Posted on 08-25-10 12:05 AM Link | Quote | ID: 134841


Giant Red Koopa
ROM Hacking is life!
Level: 72

Posts: 645/1344
EXP: 3193179
Next: 130583

Since: 02-19-07
From: Long Island City, NY

Last post: 13 days
Last view: 13 days
Posted by Quick Curly
Out of curiosity, how are the SMB3 hacking projects for everyone else coming along? Obscure Kingdom (aside from Reuben being held off again due to an overseas shipment of some new mayonnaise)? Luigi's Quest? Mario's Trials? Googie's new SMB3 hacking attempt? Mario Adventure 3?!?!?! Well, anyway, hopefully things get rolling again.


My SMB3 is on hold until I can figure out how to 1. figure out how to skip the title screen animation and 2. figure out how to have boom boom spit out the wand. My AsM skills ain't that great, the sprites are still open for people to change if they wanna change 'em.

zbyte
Posted on 08-26-10 03:24 AM (rev. 2 of 09-11-10 10:02 PM) Link | Quote | ID: 134869


Boomerang Brother
Z is Superior!
Level: 61

Posts: 864/1016
EXP: 1876431
Next: 165

Since: 06-10-09

Last post: 2355 days
Last view: 835 days
Posted by Quick Curly
Also to note, there is unused space in a few of the ROM banks for the possible addition of more levels; some have more free space than others.

Nice! No more complaints about level sizes!
Posted by topchain
All dungeons are edited. I have 10 extra bytes total out of all of them.

Sorry to hear that there are only 26 extra bytes for the Fortresses. Maybe you could add your ten to it and get 36?
You could have more themes for your fortresses; like a sewer, or an icy place outside the fortress and save all the dungeon stuff for Boom-Boom. Does that good enough?
Posted by KP9000
Also, world map animation code and/or explanation would be an excellent thing to have. I'm also curious how Mushroom Houses work, and how I'm going to implement Spade games.
I definitely agree. This would allow for more good themes for each world.
That list did leave out Object set F, Spade Bonuses, and Object set 7, Mushroom Houses. Maybe the level data for the Spade Bonuses are located near the other level data, but I'm not sure right now. I believe that the "Mario Bros." 2-Player minigame as well as the two others are pipe/water levels as well, and that those strange enemies in the very beginning of the enemy bank are used in those minigames. As for the Mushroom levels, the level data for a Mushroom House is at 0x24D70, and it lasts 90 bytes (5A in hex). I think there would be two or so more levels for the object set; one with one chest and the Princess's chamber. Right after the main Mushroom House comes 7-4.

            Level structure for Toad Houses
Bank 0:
08 - Treasure chest.
09 - Small treasure chest.
0A - Door that crashes the game when entered.
0C - Strange orange background for the level.
A0-AF - Vertically layered house blocks.
B0-BF - Horizontally layered house blocks - leaves a shadow underneath.
C0-CF - Upper right shadow corner, extends down the right side when length is increased.
Bank 3:
60-6F - Horizontally layered black background.
70-7F - Vertically layered black background.

Posted by Quick Curly
Despite the collaborative hack idea which was a failed attempt... So I guess that's sort of an... open invitation, maybe? If I'm considerably worth that, that is. I'd still be interested in possible future collaborative SMB3 projects, BUT I don't plan on doing anything like I had to go through with Luigi's Chronicles 2 ever again (i.e. doing a crap load of bloody crap all by my bloody self).

You got a taste of your own medicine!
Open invitation to what? Work on someone else's hack? You kept on saying that doing just about all of the work was like killing yourself, yet when I wanted to give you a hand, you rejected the offer. If you're going to do that when someone wants to help you out with your hack, then why should you think someone would let you work on theirs?

Posted by Quick Curly
Out of curiosity, how are the SMB3 hacking projects coming along? Mario's Trials?

There's some info about it here and here. I posted here almost 3 weeks ago that I replied to that E-Mail you sent me while I was gone. If you really want to know about it, then maybe you should check it out.

With the data provided, that issue regarding Luigi's map palette bug can be fixed.
Posted by Quick Curly
As for the World Map animation-related code, I'll get to that later on if you don't mind. I already spent a while on this post and it's already long enough as it is, so next time. I edited it for Luigi's Chronicles 2, so it's not like I have to take time to search for it...

As always, there's never a time when your posts are too long, I guess.

Quick question: Who has used the Goomba's shoe in their hack yet?

Posted by Googie
Figure out how to have boom boom spit out the wand.
0x6EA9 = Sprite that Boom-Boom gives up

There's more than likely a way to make it load the secondary sprites instead of the primary ones, but I don't really have a chance to find out right now.
Posted by Quick Curly
So please post people so that I can post those thingies as well! Later, alligators. And remember - stay out of the water.
We already did. Are you trying to get them out of the water just so you can swim in it?

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








Googie
Posted on 09-01-10 02:09 AM Link | Quote | ID: 135166


Giant Red Koopa
ROM Hacking is life!
Level: 72

Posts: 647/1344
EXP: 3193179
Next: 130583

Since: 02-19-07
From: Long Island City, NY

Last post: 13 days
Last view: 13 days
I'm just curious, did anyone ever made a sprite list for SMB3?

@zbyte: Thanks for that info meng...

Thunder X
Posted on 09-02-10 09:59 AM Link | Quote | ID: 135229


Mini Octorok
Level: 10

Posts: 2/16
EXP: 3452
Next: 962

Since: 09-01-10
From: The UK

Last post: 2843 days
Last view: 2843 days
@Googie: I'm not quite sure about that. If there is one, then you might want to search on google or other SMB3 hacking reasources.

Googie
Posted on 09-02-10 07:23 PM Link | Quote | ID: 135249


Giant Red Koopa
ROM Hacking is life!
Level: 72

Posts: 648/1344
EXP: 3193179
Next: 130583

Since: 02-19-07
From: Long Island City, NY

Last post: 13 days
Last view: 13 days
Posted by Thunder X
@Googie: I'm not quite sure about that. If there is one, then you might want to search on google or other SMB3 hacking reasources.


Been there done that, that's why I'd figured I asked, it's a'ight...

Mineyl
Posted on 09-03-10 12:53 AM Link | Quote | ID: 135252


Ninji
Level: 33

Posts: 206/243
EXP: 216481
Next: 12698

Since: 09-10-09
From: World 5

Last post: 2202 days
Last view: 652 days
Posted by Googie
I'm just curious, did anyone ever made a sprite list for SMB3?

What sort of sprite list are you looking for, exactly? :o

____________________
Back from the beyond.

zbyte
Posted on 09-05-10 06:41 AM Link | Quote | ID: 135314


Boomerang Brother
Z is Superior!
Level: 61

Posts: 866/1016
EXP: 1876431
Next: 165

Since: 06-10-09

Last post: 2355 days
Last view: 835 days
Posted by Googie
I'm just curious, did anyone ever made a sprite list for SMB3?
Thanks for that info meng...

http://www.spriters-resource.com/nes/supermariobros3/mariobros.gif - Mario/Luigi

http://www.smbhq.com/users/sprite/smb3enem.gif - all enemies except for Bowser.

Anybody used the Goomba's Shoe in their hack yet?

Mineyl, How is your "Mario in the Curious Kingdom" and Mario Dreamscape going?

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








Mineyl
Posted on 09-05-10 08:38 PM Link | Quote | ID: 135323


Ninji
Level: 33

Posts: 207/243
EXP: 216481
Next: 12698

Since: 09-10-09
From: World 5

Last post: 2202 days
Last view: 652 days
Posted by zbyte
Mineyl, How is your "Mario in the Curious Kingdom" and Mario Dreamscape going?

I haven't worked on either in quite a while, and I've canceled Mario in the Curious Kingdom because it really woulda' been a bit too unfair. Puzzle-based levels like that are much easier to pull off in Super Mario World, and I think I'll be leaving that kind of design to people like Lechuck and Worldpeace.

As for Dreamscape, I've been waiting for Reuben and entertaining myself with other projects in the meantime. If Reuben doesn't show soon, though, I'll probably end up having to port the entire hack over to a clean ROM because I encountered some bugs that even DahrkDaiz said were strange and asked if I'd done any kind of assembly alterations...which I can't do because I don't know much about 6502 other than a few basic commands, though I did alter some hex in the ROM to get rid of the annoying flicker in the upper left of the status bar.

____________________
Back from the beyond.

zbyte
Posted on 09-11-10 11:06 PM (rev. 2 of 09-11-10 11:38 PM) Link | Quote | ID: 135562


Boomerang Brother
Z is Superior!
Level: 61

Posts: 871/1016
EXP: 1876431
Next: 165

Since: 06-10-09

Last post: 2355 days
Last view: 835 days
Oh. The little hack won't get to see the rest of the world?

I guess that's just spending a lot of time doing barely anything as far as ROM hacking goes for you. I can tell you that it won't be released for a while, if at all. I'm not saying that I'm against it or anything like that; it's just that the way things have been looking gives Reuben a very far outlook right now. What is it exactly that is going on in your SMB3 hack? World 1 crashing? Levels not loading? Backgrounds have issues? Some of those sprite oddities you've spoken of have been discussed before ever since SMB3 has been known to man, but I spoke of a few here. What does your End Castle look like? Take a glance at it because it may be why you can't start your Airship level there.

Well, as far as learning ASM goes... I guess the more about hex you understand, the more times you could attempt to read a single ASM document, like this one. I'm not good at it myself. I don't know...

EDIT:I know it's old, KP9000, but that TSA issue is probably just a mix-up. That object in the upper-right corner is used in Hilly levels to place some kind of background to make some sprites appear properly and to make Mario look right when he enters quicksand. Remove it and see what happens, if you wish.

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








Mineyl
Posted on 09-12-10 05:54 PM (rev. 2 of 09-12-10 06:26 PM) Link | Quote | ID: 135601


Ninji
Level: 33

Posts: 210/243
EXP: 216481
Next: 12698

Since: 09-10-09
From: World 5

Last post: 2202 days
Last view: 652 days
Yeah...I wish Reuben could see the light of day, but alas.

And I'm actually not having any of those problems with SMB3, Zbyte. Here's the list I composed many months ago and posted somewhere on this board:

Posted by Mineyl
As for technical difficulties... I've just been seeing a lot of weird stuff happen while designing the latter half of world 2 and touching up older stages. Just a few things:

- The angry sun and infinite goombas require a specific object in order to be displayed correctly in a level. This object must be set first or it will cause all objects placed before it to be erased, for some reason... This was actually the reason I stopped working on the hack before reviving it back in September: I couldn't figure out what the hell was going wrong and I assumed that these two sprites only worked when used on levels with specific pointers. I later found out that the object required is labeled "Nothing" in SMB3 Workshop and is object $0E in bank 2. Lack of information FTW.

- Boomerang brothers don't function correctly when placed near ? blocks and smashable bricks. The coins can cause sprite overload, making the bro delay his throws, and sometimes, hitting one of these blocks will kill the bro no matter where he is on screen.

- Hammer brothers seem to need to be placed on the bottom half of a level or they will jump through the floor.


- Fire snakes cause a lot of sprite overload. I can't get more than two to show up on screen at once.

- When the player enters the second half of 2-5 (via pipe) in my hack, Mario assumes the "sliding" pose (think original 1-5) after coming out. I have no explanation for this.

- The very first Rocky Wrench in my world 1 airship level, if not killed immediately, will mysteriously vanish and cause weird glitches in the level. It can sometimes cause Raccoon Mario to spontaneously generate extra lives from interacting with the bob-ombs a few screens later, and if I stand on top of that first Rocky Wrench and let him disappear, Mario is instantaneously shot very high off-screen. Moving the RW down one block fixed the problem, but it's still inexplicably weird.


As you can see, I've already addressed some of these things (and you linked the cause of the Rocky Wrench oddity in your post). The items outlined in red are the ones that are giving me real trouble.

All in all, it's not a huge deal, but I really would like to at least know why these things are happening before I continue.

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.

____________________
Back from the beyond.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22


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

Acmlmboard 2.1+3δ (2016-01-08)
© 2005-2016 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.202 seconds. (352KB of memory used)
MySQL - queries: 138, rows: 178/0, time: 0.122 seconds.