| |||
Views: 88,505,659 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 05-01-24 04:43 AM |
|
Guest: Register | Login |
0 users currently in ROM Hacking | 1 guest | 1 bot |
Main - ROM Hacking - General SMB3 Hacking Thread | New thread | New reply |
DahrkDaiz |
| ||
Nipper Plant Sandwich Artist Level: 46 Posts: 319/417 EXP: 674706 Next: 37068 Since: 02-22-07 Last post: 3491 days Last view: 3411 days |
Just noticed this post and I gotta debunk a few things
Posted by Mineyl What? I do not believe this is true. The object you speak up simply draws a background to the level, this is why it "erases" everything that appears after it. I used the Angry Sun and Goomba Generators without that object in Mario Adventure. I may be wrong on this, but I don't ever recall requiring that object. Posted by Mineyl Sure they do. The problem is that there are 2 kinds of sprites. There are enemy sprites and there are secondary sprites. Secondary sprites include thing such as hammers, canon balls, fireballs (enemy) and boomerangs. The coin animation you see that appears from ? blocks is a secondary sprite. You can only have either 5 or 6 secondary sprites on the screen at once. Posted by Mineyl Fire snakes don't take up any more sprite entries than other enemies. They will cause more slowdown if you have a lot because they use 6 sprite tiles and the NES can only display 8 sprites on any given line, causing the nice "blinking" effect the game will induce at times. But I've had 3 Fire Snakes at a time. Posted by Mineyl This is due to the ram 375 being set to 1. I get this in the reuben rom as well, not sure what causes it but it will be fixed. Have you by chance been putting in ASM hacks? The errors you get do not sound like normal engine limitations. I started to get similar errors in Luigi vs Mario with random enemy disappearances. I'm wondering if workshop might be accidentally changing a few bytes here and there that causes the glitches as I never got errors like that in Mario Adventure. |
Mineyl |
| ||
Ninji Level: 35 Posts: 107/243 EXP: 276991 Next: 2945 Since: 09-10-09 From: World 5 Last post: 4283 days Last view: 468 days |
Posted by DahrkDaiz When the object does not exist, the angry sun is invisible until the screen in which it becomes active and begins moving about. When the object does not exist, the goombas will not be out-prioritized by the pipe tiles (or whatever else you want them to look like they're coming out of) and will not look as if they're coming out of or from behind the tiles. I've seen this problem in other hacks (Mario 2k3 specifically, but there are probably more), as well. I can take a video of this for visual proof, if you like. Posted by DahrkDaizDuly noted, and that's something that I figured out on my own, but that doesn't debunk the bigger problem: why does hitting coin/question blocks sometimes kill these sprites regardless of where they are on the screen? Posted by DahrkDaizI didn't test it extensively, but I couldn't get more than two at once. I might try it out on a single screen stage, though... Posted by DahrkDaizSo that's why... Posted by DahrkDaiz Here's what I've done to my ROM so far: - edited levels. - edited graphics. - edited world maps. - edited palettes. - edited the title screen's tile placements. - edited the TSA of several object sets (mostly the underground set to get it to look right with my graphical changes). - used my own pointers for each stage so that I don't ever have to worry about the level size limit that 99% of Mario 3 hackers complain about all the time. - by recommendation of Datacrystal, I changed several hex values to keep the status bar from doing that god-awful blinking that it does in the top-left corner. This is probably the most ASM-ish thing I've done, but my ASM knowledge is next to nil. The exact text is here:
____________________ Back from the beyond. |
cobraman |
| ||
Newcomer Level: 6 Posts: 2/4 EXP: 579 Next: 328 Since: 12-26-09 Last post: 5237 days Last view: 5237 days |
hi
i have a smb3 rom nes and working ok when i edit an level with workshop program the pointers go wrong somtimes with the enterin of the pipe goase to some where and mario didem,nd some time the exit goas to some where and he died, what to do? |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 798/1443 EXP: 4174060 Next: 17069 Since: 06-15-08 From: Earth Last post: 26 days Last view: 26 days |
Posted by cobramanHi cobraman. I hope that I can help you out with this. The SMB3 Level and Pointer Data document has a short explanation on how to get the pointers to work. If you're not deleting all of the objects and enemies in the levels before you start editing your own, I'd recommend you do that as well. It's easier to manage pointers if you don't edit existing ones, and plus it's better so that your levels are more your own and different from the original SMB3 levels. What I always do when I want to put in pipes and/or doors that can be entered in my level is I place the pipe/door 3-byte object first and then the next object is just a "dummy" 3-byte object (I'll place it as a coin or something simple like that so that it doesn't take up too much room that I could still be working in) so that I can edit it to be a pointer (3-byte, Bank 7) later. This helps me keep the pipes/doors that can be entered and their respective pointers easily organized, and gives me the freedom to edit them at a later and more fitting time if I'm not ready to set it just yet when I'm designing the level itself (I like to add my objects - and enemies as well, for that matter - going from left to right to keep them in order). Also, be sure to use the 90-9F 3-byte downward pipe objects and not the B0-BF 3-byte downward pipe objects that ignore pointers. Also keep in mind that it's probably best to keep only one pipe/door that can be entered and pointer within each range (00-0F, 10-1F, ..., D0-DF, and E0-EF). Having more than one can cause some messed up stuff. And... there's not really anything else that I can think of right now. If you can think of anymore questions you need answered, post them in this thread and hopefully I or someone else who beats me to the punch will be able to help you. I also recommend going through the entire General SMB3 Hacking Thread to see if there's any additional information that you can pick up, especially this post to make sure that you don't overwrite other object and/or enemy data (or how to easily manage it if that's actually what you want to do because you know your hack might be only 3 worlds or something and you want the levels that will be in it to be object- and enemy-packed). Best of luck! |
cobraman |
| ||
Newcomer Level: 6 Posts: 4/4 EXP: 579 Next: 328 Since: 12-26-09 Last post: 5237 days Last view: 5237 days |
u mean if the data up 263 that will change doors/pips location? |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 805/1443 EXP: 4174060 Next: 17069 Since: 06-15-08 From: Earth Last post: 26 days Last view: 26 days |
Posted by cobramanThe 263 refers to the original number of bytes used for objects in 1-1. (There are 81 3-byte objects and 5 4-byte objects: (81 x 3) + (5 x 4) = 243 + 20 = 263 bytes.) The idea I was trying to get across with that post was that you don't exactly have unlimited space to work with in each level. If you add more than what was originally used, the extra room you're using has to come from somewhere - specifically from another level (that you'll end up overwriting). The number of bytes used for objects and enemies does not have any direct influence on doors and pipes that can be entered and their pointers aside from the amount of room you have to actually add them. Hopefully that makes sense. |
binarycuberoots |
| ||
Goomba Level: 15 Posts: 26/34 EXP: 14495 Next: 1889 Since: 09-10-09 Last post: 5096 days Last view: 5096 days |
Quick brings up a point. That reminds me. I know it's possible to have fewer bytes than in the original. The only thing is that the unused bytes have to have some value to preserve the order for other level. That has always bothered me. Hopefully it takes the value of a non reserved byte value. I would assume that 00 fills up the remaining bytes, but I thought 00 was reserved for certain objects in certain level types. If you know about that, I'll be glad to hear what you folks have to say about that. ____________________ I'm back |
Mineyl |
| ||
Ninji Level: 35 Posts: 137/243 EXP: 276991 Next: 2945 Since: 09-10-09 From: World 5 Last post: 4283 days Last view: 468 days |
It really shouldn't matter, as the terminal byte $FF that is automatically added by SMB3 Workshop will keep SMB3 from adding those 00 00 00 objects (though I believe that the editor won't actually replace the "unused" bytes with 00, they'll just be an unheadered bunch of objects floating in limbo between pointers). ____________________ Back from the beyond. |
binarycuberoots |
| ||
Goomba Level: 15 Posts: 28/34 EXP: 14495 Next: 1889 Since: 09-10-09 Last post: 5096 days Last view: 5096 days |
I knew FF was involved in there somewhere. The only thing is that some objects like one of the oriented xblocks 16 units in width in the fortress based levels and one of the horizontal 16 unit pipes (universal level type) and maybe other objects use the byte FF though. Not sure what that's about. ____________________ I'm back |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 806/1443 EXP: 4174060 Next: 17069 Since: 06-15-08 From: Earth Last post: 26 days Last view: 26 days |
As you might recall me mentioning before, with Luigi's Chronicles 2 when I was fixing up World 1 to save space, I ended up adding even more levels with the unused space that I saved from cleaned up edited levels such as the new 1-1, 1-2, etc. It's all possible with a quick and easy peek in a hex editor (and as expected, my 100th+ plug for FCEUXD). In SMB3 Workshop, click on the last object placed (whether 3-byte or 4-byte) and find it in the hex editor to see where your edited level actually ends. Count the number of bytes you have left over (remember that you need 9 for the level header) and write that down. Really any amount will work to give you at least one additional area; a little extra room can be made into a midpoint area for a pointer-heavy level or even an ending area with a goal card. You can enter custom object and enemy offsets for opening levels you want to edit in the program; all you have to do is find the offsets where the object data and enemy data you want to use begin, write them down for quick reference (optional but sometimes helpful step) and then enter them into the Level/Offset Selector in SMB3 Workshop (and remember to enter the proper Object Set as well, of course).
But anyway, the point in all of that was to basically say that using fewer bytes does not hurt at all, no matter how many unused bytes are actually leftover. If you look in a hex editor, you'll see that all that is added is an "FF" to end the level; SMB3 Workshop doesn't actually replace any of the old level data. It's still there, but as long as you don't have anything pointing to it, it won't hurt anything. That's why if you don't get too in-depth and use custom offsets like I tend to (more specifically, you use more than the original SMB3 level offsets) then there's no way you'll be affected by broken level data because you won't be using it. Hopefully that helps clear that up, Binary. Obviously Reuben will make most of the methods and other things we've been discussing obsolete, but I still believe that anything learned from SMB3 Workshop and working with the original SMB3 can be carried over to Reuben and any experience from the soon-to-be-old stuff can/will still help. |
zbyte |
| ||
Boomerang Brother Z is Superior! Level: 66 Posts: 776/1016 EXP: 2388190 Next: 73661 Since: 06-10-09 Last post: 4436 days Last view: 2915 days |
Posted by Quick Curly I will be doing that, since one of my levels had tons of object space left over. You said over at this other place that you're were editing a lost level for your hack. Well, I made mine, and no matter what I did, it crashed. I didn't do much to it. ____________________ No quotes found; we apologize for the inconvenience. Commas, question marks, and semicolons are available, though. |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 822/1443 EXP: 4174060 Next: 17069 Since: 06-15-08 From: Earth Last post: 26 days Last view: 26 days |
Posted by zbyteWhich one specifically? I got all of them to work. |
zbyte |
| ||
Boomerang Brother Z is Superior! Level: 66 Posts: 778/1016 EXP: 2388190 Next: 73661 Since: 06-10-09 Last post: 4436 days Last view: 2915 days |
Posted by Quick CurlyLost level 3, 4, 5, and 8. The rest I haven't tried yet.Posted by zbyteWhich one specifically? I got all of them to work. Wait. I just set the pointers to try some out. I had a lost level on one tile and another above it. I tried the one below and it crashed. But when I went to the one above it, it played the one below successfully. This is weird... ____________________ No quotes found; we apologize for the inconvenience. Commas, question marks, and semicolons are available, though. |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 825/1443 EXP: 4174060 Next: 17069 Since: 06-15-08 From: Earth Last post: 26 days Last view: 26 days |
Posted by zbyteWell, remember that "Lost 4 - Underground" is actually a Hilly level. This is an error in both SMB3 Workshop and the SMB3 Map Editor, so if you're not changing the Object Set to Hilly when you're editing the pointer, that will screw things up. If you try to set it so you can just enter the original "Lost 4" without changing things, having "Underground" as the Object Set causes Mario to fall right in a pit. However, changing it to "Hilly" makes all the difference and Mario starts out fine. See how critical setting the proper Object Set really is? As for your other levels working, who knows? Plus if the above doesn't solve your problem, then again... who knows? A problem always has the potential of being caused by a number of possible issues, some that we would never think could cause them (I've encountered my share of those). I can only make assumptions without any screenshots, so sorry if this post isn't much help. |
binarycuberoots |
| ||
Goomba Level: 15 Posts: 29/34 EXP: 14495 Next: 1889 Since: 09-10-09 Last post: 5096 days Last view: 5096 days |
I didn't know it was possible to fall through hilly and underground level solid stuff, at least in a horizontal setting. I knew it happened in a vertical setting with a hilly/underground type via workshop of course.
Either way, I just thought of something. I know that those pipes that ignore pointers can lead to another area. How does that work? I've been worried to use these, but somehow they lead to a specific area in the original. I know it's a specific area because there are different ones. Any ideas on that one? ____________________ I'm back |
ShoFIZZLE |
| ||
Shyguy Level: 22 Posts: 22/80 EXP: 51980 Next: 6370 Since: 11-18-09 From: Atlanta, GA Last post: 4307 days Last view: 4307 days |
I was thinking the same thing. |
zbyte |
| ||
Boomerang Brother Z is Superior! Level: 66 Posts: 816/1016 EXP: 2388190 Next: 73661 Since: 06-10-09 Last post: 4436 days Last view: 2915 days |
Something very weird is happening. I'm working on Area 8's Dungeon, and once I enter a door, I end up at very weird locations, way off from the place Mario is supposed to exit. My exit horizontal is set to 0D, and when I enter the door, I end up at 15 and touch some lava. I dealt with that, and went through a return door that would take me back to the first room. I would fall at 0D. My exit horizontal was 15. I then changed the second room's exit horizontal to 1B and still left at the same locations both times and fell in a pit back in the first room. Odd...
Also, how would you set up pillars like in World 5's Tower? EDIT: Very weird! I just went to the original 8-Dungeon and there were no pointers at all! ____________________ No quotes found; we apologize for the inconvenience. Commas, question marks, and semicolons are available, though. |
binarycuberoots |
| ||
Goomba Level: 15 Posts: 31/34 EXP: 14495 Next: 1889 Since: 09-10-09 Last post: 5096 days Last view: 5096 days |
Good point about the no pointers thing. I myself was wondering how it was even possible to have that many doors in that fortress. Luckily I strayed from using pointers in my first 2 hacks. I have no idea how pointers would work in that level, but something tells me there is some hidden or hardcoded data that would allow a special pointer system for that fortress itself. Anyone that knows what's going on, since I'm puzzled about that? ____________________ I'm back |
zbyte |
| ||
Boomerang Brother Z is Superior! Level: 66 Posts: 818/1016 EXP: 2388190 Next: 73661 Since: 06-10-09 Last post: 4436 days Last view: 2915 days |
Eureka! The Entering pipe ends level is checked by default. So if you decide to check this box on any level, when you enter a door, Mario will be at the exact location he was before, but in the next room. Sweet. ____________________ No quotes found; we apologize for the inconvenience. Commas, question marks, and semicolons are available, though. |
binarycuberoots |
| ||
Goomba Level: 15 Posts: 32/34 EXP: 14495 Next: 1889 Since: 09-10-09 Last post: 5096 days Last view: 5096 days |
That is an amazing discovery! I gotta try it out to see what happens! Thanks for that info! ____________________ I'm back |
Main - ROM Hacking - General SMB3 Hacking Thread | New thread | New reply |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 138, rows: 178/184, time: 0.024 seconds. |