| |||
Views: 88,503,582 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 04-30-24 09:10 AM |
|
Guest: Register | Login |
0 users currently in ROM Hacking | 1 guest |
Main - ROM Hacking - General SMB3 Hacking Thread | New thread | New reply |
NutheadBros |
| ||
Koopa Level: 26 Posts: 65/117 EXP: 93950 Next: 8325 Since: 03-29-09 From: Spiral Mountain Last post: 5379 days Last view: 4501 days |
Actually the spot I tried were Level 4 Ending & Level 5 Ending. That is the trouble Spot because when I play up to either level there is no goal card preventing me from finishing the level. I think that Level 4 Ending & Level 5 Ending are the Sub-Stages that you are talking about |
KP9000 |
| |||
Boomboom Level: 90 Posts: 878/1975 EXP: 6955526 Next: 233083 Since: 02-19-07 Last post: 3584 days Last view: 3208 days |
|
NutheadBros |
| ||
Koopa Level: 26 Posts: 66/117 EXP: 93950 Next: 8325 Since: 03-29-09 From: Spiral Mountain Last post: 5379 days Last view: 4501 days |
Edit: Never Mind it turns out you can't go over enemy limits either.
|
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 494/1443 EXP: 4173767 Next: 17362 Since: 06-15-08 From: Earth Last post: 25 days Last view: 25 days |
Posted by TreliorThat's exactly what it is. In levels like the World 1 Dungeon Spike Room, 3-3, 3-8, etc. where the screen moves up and down, it is in fact the Autoscrolling enemy located below Y: 026. Just like when it is above Y: 026, the Y-position determines its behaviour. If you want to set its position, you can do so in the FCEUXD hex editor.Posted by zbyteThat's weird... Maybe the enemy slot wasn't used, is pushed off the scrollable area of the screen, or something dumb like that, because I checked 3-3 myself and never found that elusive 13th enemy.Posted by TreliorI'm working on 3-3, it's not an auto-scrolling enemy, if so, you couldn't go back. I still can't find it.Posted by zbyteIt's possible that that particular enemy was a "Nothing" entry, or maybe even the auto-scrolling pointer, it's either one or the other. What level are you talking about, 3-3 or 3-8? I'll check it out, two sets of eyes is better than one. Posted by NutheadBrosThat's sort of half-true. As long as you're organized and you keep track of enemy data that you overwrite so that you can change any areas that originally used the overwritten data accordingly, you're more than free to use more enemies (or more objects, for that matter) in other areas. Of course, there still are limits. I think you're limited to 216 actual objects per area or something like that. You have to experiment and test things yourself to find out what works best for your hack specifically. |
Trax |
| ||
Yellow Stalfos Level: 71 Posts: 867/1145 EXP: 3036767 Next: 130347 Since: 07-06-07 From: Québec Last post: 3631 days Last view: 2883 days |
What exactly is the enemy limit per level in SMB3? |
KP9000 |
| |||
Boomboom Level: 90 Posts: 882/1975 EXP: 6955526 Next: 233083 Since: 02-19-07 Last post: 3584 days Last view: 3208 days |
|
beneficii |
| ||
Shyguy Level: 23 Posts: 78/85 EXP: 62102 Next: 5621 Since: 02-19-07 Last post: 3139 days Last view: 3116 days |
Regarding the sizes of levels, you are limited by the amount of space in the ROM, ultimately. You can make a level as long as you have a continuous block for its object data and a continuous block for its enemy data, and it will work as long as you point correctly to the start of the object data and enemy data from the world map and for entrances coming from other levels. The problem is organizing modifications to the existing structure--How would such modifications be kept track of? The ROM has a bank for enemy code and in that bank there is a block of all the game's enemy data, and has multiple banks for the code of each object set and in each bank there is a block of all the object data used by all the levels of that object set. If a hacker deletes or adds objects/enemies in a level and to save space the editing program brings the start of the next stage's data to just past the end of the level just modified, and then the stage after that and the stage after that, making sure they were all aligned in a continuous block (while making sure that the block of stages doesn't grow past the space available in the ROM bank), then the editing program must also make sure that all references to the object/enemy data after the stage modified are all updated to reflect the new starting addresses.
Such is FC/NES hacking, due to the limited space available and the fact you would have to add clone banks for more space. In SFC/SNES hacking, there is much more ROM space that is available and in most games not nearly all of it is used, so it is easier to program extensions there, without having to clone banks. EDIT: Corrected grammar. EDIT2: To clarify, in SMB3 Workshop you may delete objects/enemies, so that they are fewer than what they were in original level, but you won't get any of that space to use in other levels, because the editor is strict about keeping the starting addresses of all the levels' object/enemy data the same. EDIT3: The way around that is to enter and keep track of those starting addresses yourself, manually. ____________________ 「しっかり統制された民兵は自由な国の安全保証にとって必要なので、国民が武器を所有し携帯する権利は侵されてはならない」アメリカ合衆国憲法修正第2条 |
kunio1031 |
| ||
Red Goomba Level: 17 Posts: 2/44 EXP: 21432 Next: 3311 Since: 07-25-09 Last post: 413 days Last view: 2334 days |
Hey guys, when you do pipes in a stage. Say multiple pipes, do you have to make pointers for each pipe? Also some things I wanted to say about my hack, which I'll be making once I get my laptop made from someone. Which won't be for awhile. Some questions/comments for you's guys.
1-My hack is gonna be making itself as much like the names given to the worlds, as described in the mario 3 player's guide. For instance. -World 1-Grass Land-nothing but green hilly stages, nothing else. Except for the fortresses. -World 2-Koopahari Desert-Simple enough. -World 3-Island World-combo of islands and swimming, no "just only swimming stages" if you know what I mean. -World 4-Land of the Giants-All block structures and enemies are giant, this may sound limited. But I'll figure it out. World 5-Sky World-Easy enough, but I'm only gonna use enemies who fly, or have wings that sort of thing. World 6-Winter Wonderland-Lots of frozen coins, and ice blocks. World 7-Pipe Maze-Every single level will be a different maze, so there will be plenty of mazes to go about. Oh and only plant enemies as well. World 8-Castle of Koopa-This one's a little trickier, but basically I'm gonna do nothing but make fortress levels. 2-If I change a level, say 1-1 so that way it would be a hilly stage. But I kept the same amount of 3 bytes and 4 bytes. Is that gonna be a problem? Would it screw the game up or not? |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 502/1443 EXP: 4173767 Next: 17362 Since: 06-15-08 From: Earth Last post: 25 days Last view: 25 days |
Posted by kunio1031Yes. Also, make sure you only have one pointer maximum for each range (00-0F, 10-1F, 20-2F, ..., E0-EF). Having more than one per range could cause problems. There's the scenario like the 7-4 Outside Area though where you have two pipes that can be entered that are both in the 00-0F range. However, there is still only one pointer for the range, so both pipes use the same pointer (and lead to the same exact place/exit). Posted by kunio1031Hopefully it's soon! Posted by kunio1031Do not change the object set for 1-1. It'll only work as a Plains level anyway. Instead, what you want to do is use beneficii's SMB3 Map Editor and change the pointer for your first level to an actual Hilly level. As for the amount of objects and enemies in each level, it's probably best to not go over the limits unless you are capable of keeping track of anything you overwrite so that you don't try to edit it again later thinking that you can still use data for its original level when it has become part of another level that has been expanded. You can use 3-byte and 4-byte objects interchangeably though (in a way). For example: 1-1: 81 3-byte objects, 5 4-byte objects (81 x 3) + (5 x 4) = 243 + 20 = 263 bytes So the object data for 1-1 (excluding the 9-byte level header) is a total of 263 bytes; so you can use any combination of 3-byte and 4-byte objects as long as the total number of bytes that you use doesn't exceed 263 bytes. When I'm designing levels, I always keep this in mind so that I can use the same exact number of bytes as the maximum: 3 x 4 = 12. Obviously different additions of 3-byte and 4-byte objects might not equal the original total number of bytes used. However, if you use 4 3-byte objects for every 3 4-byte objects that you take out and/or vice versa, you can keep the same total. I know it likely sounds confusing because it's harder for me to explain than to show, so here's a visual of what I mean. Say I want to add more 4-byte objects since you originally only have 5 to work with. Since 4-byte objects are made up of 4 bytes (obviously ) you would need to take out 2 3-byte objects so that you free up at least 4 bytes to work with. However, then you have 2 bytes left over that cannot be used. To put 2 4-byte objects in, you would need to remove 3 3-byte objects so that you free up at least 8 bytes to work with. However, in that case you'd have 1 byte left over that cannot be used. As you can probably guess that I was building towards, you could take out 4 3-byte objects to free up 12 bytes which would allow you to insert 3 4-byte objects. The same goes with giving up 3 4-byte objects so that you can use 4 more 3-byte objects. So in the case of 1-1, the following combinations would allow you to use all 263 bytes: (85 x 3) + (2 x 4) = 255 + 8 = 263 bytes (81 x 3) + (5 x 4) = 243 + 20 = 263 bytes (77 x 3) + (8 x 4) = 231 + 32 = 263 bytes (73 x 3) + (11 x 4) = 219 + 44 = 263 bytes (69 x 3) + (14 x 4) = 207 + 56 = 263 bytes etc. Of course, you don't have to worry about the original number of bytes if you just decide to expand some levels by sacrificing whole or parts of other levels. In that case though, just remember to keep a log of everything so that you minimize the probability of things messing up. Sorry for the long explanation. Hopefully it helps you out. And of course, please keep us up to date on the progress of your hack! |
zbyte |
| ||
Boomerang Brother Z is Superior! Level: 66 Posts: 205/1016 EXP: 2388011 Next: 73840 Since: 06-10-09 Last post: 4436 days Last view: 2915 days |
Posted by Quick CurlyThat's exactly what it is. In levels like the World 1 Dungeon Spike Room, 3-3, 3-8, etc. where the screen moves up and down, it is in fact the Autoscrolling enemy located below Y: 026. Just like when it is above Y: 026, the Y-position determines its behaviour. If you want to set its position, you can do so in the FCEUXD hex editor.Posted by zbyteThat's weird... Maybe the enemy slot wasn't used, is pushed off the scrollable area of the screen, or something dumb like that, because I checked 3-3 myself and never found that elusive 13th enemy.Posted by TreliorI'm working on 3-3, it's not an auto-scrolling enemy, if so, you couldn't go back. I still can't find it.Posted by zbyteIt's possible that that particular enemy was a "Nothing" entry, or maybe even the auto-scrolling pointer, it's either one or the other. What level are you talking about, 3-3 or 3-8? I'll check it out, two sets of eyes is better than one. I re-sized SMB3 Workshop and still didn't see it, however, I set it below Y: 26 and it moved up an down, but really weird, not the way it's supposed to. ____________________ No quotes found; we apologize for the inconvenience. Commas, question marks, and semicolons are available, though. |
Quick Curly |
| ||
Giant Red Paratroopa Level: 77 Posts: 523/1443 EXP: 4173767 Next: 17362 Since: 06-15-08 From: Earth Last post: 25 days Last view: 25 days |
Some of them are really far down, so I find that it's just easier to use a hex editor. |
silas |
| ||
Level: 13 Posts: 16/24 EXP: 8940 Next: 1327 Since: 06-30-08 Last post: 5077 days Last view: 3377 days |
Posted by Quick Curly Or you can mix the enemy data with one of big vertical levels (such w5-lv2 pipe room). Then you can find the autoscroll object (and even the pipe pointer object easily) |
zbyte |
| ||
Boomerang Brother Z is Superior! Level: 66 Posts: 212/1016 EXP: 2388011 Next: 73840 Since: 06-10-09 Last post: 4436 days Last view: 2915 days |
Posted by Quick CurlyHow am I supposed to do that? ____________________ No quotes found; we apologize for the inconvenience. Commas, question marks, and semicolons are available, though. |
Trelior |
| ||
Level: 99 Posts: 346/2602 EXP: 9759080 Next: 240920 Since: 07-12-09 Last post: 4501 days Last view: 4488 days |
Posted by zbytePosted by Quick CurlyHow am I supposed to do that? Find the object's pointer data and alter it. |
KP9000 |
| |||
Boomboom Level: 90 Posts: 922/1975 EXP: 6955526 Next: 233083 Since: 02-19-07 Last post: 3584 days Last view: 3208 days |
|
zbyte |
| ||
Boomerang Brother Z is Superior! Level: 66 Posts: 230/1016 EXP: 2388011 Next: 73840 Since: 06-10-09 Last post: 4436 days Last view: 2915 days |
Posted by KP9000Try reading the SMB3 Workshop readme. Posted by KP900Read the Super Mario Bros. 3 Map Editor ReadMe. Posted by TrelliorThis will not work out as planned... this will be harder than my 15-paragraph essay... ____________________ No quotes found; we apologize for the inconvenience. Commas, question marks, and semicolons are available, though. |
KP9000 |
| ||||
Boomboom Level: 90 Posts: 923/1975 EXP: 6955526 Next: 233083 Since: 02-19-07 Last post: 3584 days Last view: 3208 days |
|
beneficii |
| ||
Shyguy Level: 23 Posts: 79/85 EXP: 62102 Next: 5621 Since: 02-19-07 Last post: 3139 days Last view: 3116 days |
KP9000,
I think that to break the lock when you get an item at the end of the level, you will need to do ASM hacking. Locks are tied specifically to the Boom Booms. The upper nybble of Boom Boom's y position determines which of the world's locks to break (if it's 0, then index 0; if it's 1, then index 1; if I remember correctly)--when Boom Boom is actually drawn to the screen, the upper nybble of his y position will always be 1, which restricts where he can appear. To do that for an item, I think you will have to find a way to tie the lock to it. ____________________ 「しっかり統制された民兵は自由な国の安全保証にとって必要なので、国民が武器を所有し携帯する権利は侵されてはならない」アメリカ合衆国憲法修正第2条 |
KP9000 |
| |||
Boomboom Level: 90 Posts: 925/1975 EXP: 6955526 Next: 233083 Since: 02-19-07 Last post: 3584 days Last view: 3208 days |
|
beneficii |
| ||
Shyguy Level: 23 Posts: 80/85 EXP: 62102 Next: 5621 Since: 02-19-07 Last post: 3139 days Last view: 3116 days |
KP9000,
That would seem to be somewhat difficult. Not having a Windows computer right now that I can reliably access, I cannot check for myself. Still, I have looked at the treasure chests before, and I think it is that there are 2 objects or sprites (I don't remember which ones) where the chest appears. I think that in addition to the treasure chest itself, there is a special sprite or object in the level titled something like "Put item in treasure chest." That was too long ago and my experience with it is too shallow. Try reverse-engineering the original ROM by looking at the levels where they appear in the offical game. If it isn't a second object/sprite (and my memory was bad), it might be hardcoded in the ASM. In which case, you might want to try using a debugger or a tracer to find it. I hope it doesn't have to come to that though. The other issue you have to resolve is changing the code of the treasure chests themselves, so that you don't exit the level when you get the item. That would seem to call for none other than good old-fashioned ASM hacking. ____________________ 「しっかり統制された民兵は自由な国の安全保証にとって必要なので、国民が武器を所有し携帯する権利は侵されてはならない」アメリカ合衆国憲法修正第2条 |
Main - ROM Hacking - General SMB3 Hacking Thread | New thread | New reply |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 123, rows: 162/164, time: 0.027 seconds. |