| |||
Views: 88,548,704 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 05-06-24 01:20 PM |
|
Guest: Register | Login |
Main - Posts by Quick Curly |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 968/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
Tools/utilities:
SMB3 Workshop - To edit the levels, level headers, and object palettes. SMB3 Map Editor - To edit the World Maps. SMB3TE - To edit the title screen. FCEUXD - To edit everything else. Use this to edit palettes for enemies, Mario, Luigi, etc. that cannot be edited in SMB3 Workshop, as well as text, music, etc. Information/references: SMB3 Data Crystal Page - For quick ROM and RAM offsets, as well as the locations for palettes and text for editing purposes. General SMB3 Hacking Thread (This Thread) - Definitely a good read. SMB3 Music Data-Related Post - For an idea (a rough idea) about music. A Little SMB3 Data - Another old small post. Mainly only really good for map animation speed (not much). Small SMB3 Map Editor Pipe Editing Tutorial - A short, simple tutorial showing how to add a pipe system to the World 1 Map. Small SMB3 Palette Editing Tutorial - A short tutorial showing how to use FCEUXD to edit the World Map palettes. Also refer to my previous post in this thread to take note that the palettes that each World Map uses are determined by the data at ranges 0x1842D-0x18435 (0x9) (object palettes) and 0x18436-0x1843E (0x9) (sprite palettes). SMB3 Title Screen Palette Definitions - Courtesy of your friendly neighbourhood KP9000. These links obviously don't cover everything there is to know, but hopefully this post provides you with a decent starting ground and helps you out. If you have any further questions, please feel free to PM me or post your questions in this thread so that others can help you out as well. |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 969/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
No worries, Insectduel! Thank you very much! I appreciate the positive wishes! |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 978/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
Sorry to sound like a downer, but after all the time that's already passed by, I'm not going to bother with the collaborative SMB3 hack idea anymore. Anytime I was trying to get a hold of the people who said that they wanted to participate for ideas, or to simply get started on some basic level editing, they either were never available or they would intentionally not respond. Plus I started on the planned huge tutorial some time ago and asked the others for input/ideas on what they needed help/information on, and no one provided any. I was the only one who was trying to push the project forward, so in such a case, I might as well continue doing stuff on my own which has been the scenario for pretty much the whole time I've been ROM hacking anyway. So whatever. The point of the project was to help them gain some experience. If they don't want to do that, it doesn't upset me or anything. It's their choice. Again, whatever.
On top of that, now that I'm on my midnight schedule (as in, my day is night for the majority of everyone else) I doubt it would work now anyway. |
Quick Curly |
| |||
Giant Red Paratroopa Level: 77 Posts: 979/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
Posted by zbyteNo 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 zbyteI actually looked into this out of interest. More on that in a bit. Posted by zbyteLOL! Posted by zbyteLeave 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
Plains Bonus Areas
Posted by one-off hackerHopefully 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.
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. |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 982/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
Posted by zbyteSorry. 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 zbyteThe strange thing is, no body was found. So everyone decided to just let it be and carry on with their normal lives. Posted by zbyteI 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 zbyteDo 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? |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 983/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
Posted by Trelior Posted by StaticYou two really know how to cheer a guy up. Anyway, welcome to the forum everyone! Hope you enjoy it here! Just please don't take any cheap shots at me! |
Quick Curly |
| |||
Giant Red Paratroopa Level: 77 Posts: 986/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
Posted by topchainYou 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.
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.
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.)
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. |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 987/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
It was okay, either way. The posts were about the fun.
Thanks for that as well. Makes me feel like I have some sort of purpose after all. |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 988/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
Welcome back! |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 990/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
I'm back from the insane asylum!
I mean... I'm just back! |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 991/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
Even more late, but Happy New Year! Hope that everyone enjoys the months to come and uses them effectively! |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 993/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
Considerably busy, I suppose, although things have sort of calmed down. I still want to continue hacking SMB3 some more, but with all the other SMB3 hackers disappearing it's sort of a slow process getting back into the swing of things. Hopefully I can be a part of some more wacky adventures around here now. How have you and everyone else been? Did I miss anything? |
Quick Curly |
| |||||||||||||||
Giant Red Paratroopa Level: 77 Posts: 995/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 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:
This is the modified code:
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:
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:
This is the modified code:
As you can see, this is where the original code loaded both the time and music values from $97A8:
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.
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:
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):
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:
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:
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:
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:
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:
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:
(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. |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 997/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
Posted by XerussGlad to hear that you're doing well then. And wow, everyone seems to be disappearing. Guess the "next stages of life" are happening for everyone around the same time, regardless of age group. Well hopefully some wackiness will come along sooner or later. Posted by GreyMarioThe edge resulting from a 'quake'. Posted by KP9000That's cool to hear. Hopefully you'll be able to continue your progress then. Still working on some ASM hacks of your own then? Posted by GaroslawThanks! It's great to hear from you again too! "Say it loud, say it proud!" P.S. Didn't mean to turn the introduction/leaving/returning thread into a conversation den. I just wanted to express my appreciation of all the hospitality! You guys rock. |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 1000/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
Posted by zbyteCome again? You just never quit, do you? You actually have the nerve to ask me that? I didn't want to bring the drama to the board, but I'm sick of you trying to manipulate the situation and portray me as the bad guy here, and you're obviously never going to let it go unless I set the record straight here. I helped you with your start with SMB3 hacking. I was never anything but nice and willing towards you. Then - shortly after - I start receiving all these negative, flaming comments from multiple alternate accounts, with them referring right back to you, obviously because you're too much of a cowardly bigot to risk what others would think of you if they actually knew that it was you making those comments with those accounts. Although, considering that you've been banned from here multiple times in the past and there are comments posted directly by you that are evidently similar to the comments made by those alternative accounts, and that one of the accounts, JayMaster0, was the same as your name with your email (Jay Master) it's pretty evident why I would be peeved off of your consistency to play this self-obsessive game of yours. When my friends and I called you out on obviously being Errdoo, you even apologized to us about it! However, you obviously weren't sincere in meaning a word because then last summer, you started flaming my friends and even my brother again! And you have the nerve to say that I'm not giving you the same hospitality?! Give me a darn reason to! |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 1004/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
Posted by blackhole89I knew something like that would happen, so that's why I don't even know why he started. I apologize for my involvement, and thank you for understanding, blackhole89. Posted by sspp03Welcome! It's great to know that there are still some SMB3 hackers out there! Best of luck with your new SMB3 hack! |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 1005/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
I've never played this game myself - only the original on Nintendo 64 - but I have been keeping up with your updates! And yes, it is discouraging when there aren't a lot of posts. I think what you're doing with this program is amazing, Mega-Mario, and there will definitely be people who will be able to make good use of this utility! Best of luck with your continued progress! |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 1006/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
Posted by sspp03Cool! That's even more awesome then! The more SMB3 hacks, the better! Hopefully you can show us some progress soon then, whenever you're ready, of course. Best of luck! |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 1008/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
Looks good so far, sspp03. Just to say though, there is an SMB3 hack called Bowser's Revenge by a user named MR207, supposedly created back in 1999 (at least according to the title screen, anyway). You said that you started hacking back in 2006, so that leads me to believe that this is not a revision of that hack, which in that case, I just wanted to let you know that the name has already been taken/used in the past. (There was actually another person who was using the same name over a year ago for his SMB3 hack who I had to inform as well.) Unless you are/were MR207, in which case I apologize for any inconvenience! In addition, best of luck as you continue to work on this series of SMB3 hacks! |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 1010/1443 EXP: 4175989 Next: 15140 Since: 06-15-08 From: Earth Last post: 31 days Last view: 31 days |
I'll just post two quick ones for now.
Intruder X - Drive-Thru Girl (0:26 in) Bad Acid Trip - Zombie Nation |
Main - Posts by Quick Curly |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 150, rows: 182/200, time: 0.269 seconds. |