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

Main - Posts by DahrkDaiz

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

DahrkDaiz
Posted on 08-06-08 04:16 AM, in Ultimate SMB3 Editor (Coming soon...) Link | Quote | ID: 88594


Nipper Plant
Sandwich Artist
Level: 46

Posts: 173/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
This is the thing: Levels in SMB3 are packed side by side. If you add a new object to a level, it has to spill over into another level's data. There's no way around this. However, if you create a hack "project", this essentially keeps all the levels in separate files. When you're ready to create the hack, it saves everything dynamically and creates the pointers on-the-fly so you can add objects without worrying about writing over other level data. However, you will still be limited to the banks allocated for specific level areas.

DahrkDaiz
Posted on 08-06-08 04:45 PM, in Ultimate SMB3 Editor (Coming soon...) Link | Quote | ID: 88609


Nipper Plant
Sandwich Artist
Level: 46

Posts: 174/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
yeah but SMB's quite a bit more complicated than that with different banks for different object sets

DahrkDaiz
Posted on 08-06-08 08:08 PM, in Ultimate SMB3 Editor (Coming soon...) Link | Quote | ID: 88617


Nipper Plant
Sandwich Artist
Level: 46

Posts: 175/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
[1][1][1][1][2][2][2]

Lets say 1 represent level objects stored in level 1-1, 2 represents level objects stored in 1-2. By adding more objects in 1-1, you get this

[1][1][1][1][1][1][2]

Uh oh! [2]'s spaces has been invaded! Not only that, you're probably overwriting level header data at the sametime. Well why can't we just "push" [2]'s data over?

Lets add a new level, call it 3, this will be the bonus room area for 1-1

[1][1][1][1][2][2][2][*3]

* represents the address/pointer htat 1-1 uses to know what level to go to for a bonus area. Lets add more objects, this time pushing the data over

[1][1][1][1][1][1][2][*2][2][3]

Uh oh! The data moved, but the pointer doesn't change! When we try going to the bonus area in 1-1, it'll point to level data found in 2-2. In order to fix it, we have to find where level 3 went. But we have many levels packed side-by side, so many other levels will be affected by the shift. Plus the map pointers leading to the levels have to be fixed, and levels that are pointed to this bank from other banks have to be fixed and there's just no reasonable way to keep all track of it AAAAHHHH...

Unless we store all the levels out of the rom and recalculate their pointers once you build the hack. Great idea DD! You should implement that! Will do!

DahrkDaiz
Posted on 11-19-08 02:44 PM, in How do you find the object-properties table? - SMB3 Link | Quote | ID: 94630


Nipper Plant
Sandwich Artist
Level: 46

Posts: 177/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
No such table exists. blocks generally have 3 states:

solid,
not solid,
water

These states are determined mathematically based off 6 values in a table per object set. These values designate a range of blocks that act as solid and/or water.

Lava, ice, coins, etc etc are special cases. The game will check for a certain block table, in code, and handle it differently. How do I extend the block code to have more than one type of ice, lava, or other blocks? I create a routine that has a table of properties depending on object set, object #, etc etc and handle that object differently based on the environment. A good example is having underwater coins. Normally, coins cannot be under water except for in water stages, but I handle a certain block id that's in the water range. I then I increase the coin count, play the coin sound, change the coin into a water tile and wallah, under water coins.

DahrkDaiz
Posted on 01-17-09 03:46 PM, in Mario's Coin Quest (Team Hack Recrutement thread) Link | Quote | ID: 98893


Nipper Plant
Sandwich Artist
Level: 46

Posts: 178/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
*jumps up and down* I wish I could hack again, but I can't D: I did some of this in Luigi's Coin Quest and this was very close to what my final product was meant to be. Sigh, real life has taken up so much of my time.

DahrkDaiz
Posted on 01-17-09 03:50 PM, in Mario's Coin Quest (Team Hack Recrutement thread) (rev. 2 of 01-17-09 03:53 PM) Link | Quote | ID: 98896


Nipper Plant
Sandwich Artist
Level: 46

Posts: 179/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
I just happen to see this post is all. I still lurk around the forums. Like I said, I've been busy doing other stuff. Working, a ministry website, girlfriend, etc. I tried to get back into rom hacking last summer, but as soon as summer was over I had to leave my projects, again. I just can't devote myself to it anymore like I used to. I still have my SMB 3 editor I work on every now and then.

Teach you ASM: hacking, no.
SMB3 Notes: I doubt I still have them.

DahrkDaiz
Posted on 01-17-09 04:01 PM, in Mario's Coin Quest (Team Hack Recrutement thread) Link | Quote | ID: 98898


Nipper Plant
Sandwich Artist
Level: 46

Posts: 180/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
Unfortunately, I just don't have the time to teach anyone how to hack. I spend more time programming/web site design anyways and switching between ASM hacking and programming in C# would through my brain into meltdown.

DahrkDaiz
Posted on 01-19-09 04:05 PM, in Mario's Coin Quest (Team Hack Recrutement thread) Link | Quote | ID: 99052


Nipper Plant
Sandwich Artist
Level: 46

Posts: 181/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
Just remember, I was at your position at one point to. A little rom hacker with big dreams and no clue how to get them done. I didn't ask people to teach me. I asked people to point me in the right direction. The materials and resources are out there for you to use. Just don't expect anybody to give you a hand out. Rom hacking is 20% actual work and 80% learning the process.

DahrkDaiz
Posted on 10-05-09 06:50 PM, in General SMB3 Hacking Thread Link | Quote | ID: 116567


Nipper Plant
Sandwich Artist
Level: 46

Posts: 182/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
Im hacking again

DahrkDaiz
Posted on 10-05-09 07:16 PM, in General SMB3 Hacking Thread Link | Quote | ID: 116569


Nipper Plant
Sandwich Artist
Level: 46

Posts: 183/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
I hope to have details/screens up by the end of the week. I'm doing this while I'm getting married and working, lol.

I can say that this hack will be aim for completion, not complete over haul. With my previous projects, I spent way too much time on doing ASM hacks and not enough time on level design. Plus, I kind of want to prove to the world you can make a great hack without extensive ASM hacking.

DahrkDaiz
Posted on 10-05-09 08:09 PM, in The Board 2 Summer Mosts (2009) - Voting Link | Quote | ID: 116574


Nipper Plant
Sandwich Artist
Level: 46

Posts: 184/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
Whosa whatsa, how am I getting voted for best rom hacker when I haven't done anything in over a year??? Come on guys, please don't vote for me again, give it to someone more deserving.

Best ROM Hacker: kuja killer

DahrkDaiz
Posted on 10-05-09 10:57 PM, in The Board 2 Summer Mosts (2009) - Discussion Link | Quote | ID: 116590


Nipper Plant
Sandwich Artist
Level: 46

Posts: 185/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
Stopping voting me in for Best Rom Hacker

DahrkDaiz
Posted on 10-06-09 02:24 PM, in General SMB3 Hacking Thread (rev. 2 of 10-06-09 02:26 PM) Link | Quote | ID: 116609


Nipper Plant
Sandwich Artist
Level: 46

Posts: 186/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
How about hacking SMB3 to use a completely different level format so a level can be created absolutely anyway that you want. There would be an editor to go along with it so you can literally do 1 to 1 tile placement and basically "paint" a level. Also, every level would have it's own palette that you can create and up to 15 pointers that can go to different levels. How does that sound?

Btw, as for the TSA editor, I apologize, I'm not sure what the problem could be. It's written in vanilla C++, so no .DLL's are needed to run it.

DahrkDaiz
Posted on 10-06-09 05:38 PM, in General SMB3 Hacking Thread Link | Quote | ID: 116627


Nipper Plant
Sandwich Artist
Level: 46

Posts: 187/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
Oh yeah, it will definitely take up more space, a lot more space. The editor will force the MMC5 mapper patch and expand the PRG ROM to 1 Meg. After a few compression ideas, I've decided on one that would take the first "page" of the first level and compressed down to 109 bytes (which expands to 416 bytes). It's just a command based compression routine I'm working on. The big advantage is just the fact you'll be able to design much much more complicated levels. By my calculations, on average, you should be able to create about 150 levels that are 15 pages long, which you know is a long level.

DahrkDaiz
Posted on 10-06-09 05:54 PM, in General SMB3 Hacking Thread (rev. 6 of 10-06-09 07:03 PM) Link | Quote | ID: 116629


Nipper Plant
Sandwich Artist
Level: 46

Posts: 188/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
The old editor I've discontinued. I'm working on a new editor that's more project based that will save everything outside of the rom then you can "commit" the changes to the rom later.

The editor and new level format will allow for the following:

Unique palette for each level
More than one level pointer, limit not sure of yet.
Tile based level design with complete level design freedom
Being able to set any graphics bank to be used for the level skin
Custom background animation definitions per level
Completely custom time for each level
More accurate pointer exit placement (go to any point of another level)
Cross bank levels
No limit on level types (i.e. levels are not constrained to certain banks) so if you want 150 ice levels, you can do that.

Edit 1:
I hope to expand the functionality to maps as well. While I'm working on this, any suggestions would be great. Enemy support will for the most part remain unchanged. Also, chances for level glitches will be much more minimal. Also, it will be MUCH easier to program for than the original SMB3 format.


Edit 2:
I'm coming up with my new level header format. For the pointers, I decided to allow you to have as many pointers as you want, but each pointer takes up 11 bytes as of right now, so they can be costly. But you can use 1 pointer to cover an entire level. For documenting purposes, here's what I have so far for the level header:

Edit 3: I'm not sure how much space will be available to keep pointer information so I may have to set a limit of number of pointers allowed on a level.

CC GG BB PP PP PP PP PP PP PP PP PP PP PP PP PP PP PP PP PP PP PP PP PP ML TT YY NN PP....FF

CC = Fill the entire level with this value, it's sort of the "sky" tile
GG = Graphic bank for the tile skin
BB = Background color
PP = Palette data (for sprites and objects)
M = Music
L = length (up to 15/0x0E)
TT = Time x 10 (that's ten) so a value of 0x10 would be 160 seconds. Up to 999
YY = Starting Y position, MAY include X position if I can get it to work right.
NN = Number of pointers
PP = Pointer data
FF = end header info, start data decompression

Pointer format:
LL LL LL SS SS ET XX YY AA AA
LL = direct rom address of next level, a value of FFFFFFFF would exit the level
SS = direct sprite address
E = exit type (coming up a pipe, coming down a pipe, etc)
T = level type (grass, hilly, etc)
XX = X position to exit from
YY = Y position to exit from
AA = The "area" of the level covered. Example 0x24 0x98 would me if you were betwee page 2, tile 4 and page 9, tile 9, then this pointer would apply to it.

Edit 4:
Aw hell I'll go ahead and put my custom compression routine in here too:

Edit 5:
Seems I found an even better compression routine. I may create 2 or 3 routines and have the editor choose which compression is used, whichever makes a level smaller. This routine compress the data to about 20% smaller than before.

WW DD SS
WW = how much data you're about to write
DD = the data you're writing
SS = how far to move the "pointer" forward to skip writing


so yeah, like I said, I may implement a few and have the editor to make a best choice for compression.

DahrkDaiz
Posted on 10-06-09 07:11 PM, in General SMB3 Hacking Thread Link | Quote | ID: 116636


Nipper Plant
Sandwich Artist
Level: 46

Posts: 189/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days


1) Free-Roam Maps



Maybe as an ASM pluging, low priority



2) Ability to change the size of the map, maybe both horizontally and vertically


Duely noted, I do want variable sized maps as well



3) World Order change (I've added this ASM hack myself, but I need to work out the numbering)


Well, with the ability to completely customize all maps, will world order really matter for the maps?



4) Increase sprite limits


duely noted



5) for the love of all that is sacred, a better pipe system, or an easy way of editing the existing one.


I've actually went and modified my pointer system where if the pointer ends the level, you can decide where on the map you return to



6) An expanded choice of graphic tiles to choose from.



I hope to, like with the levels, allow you to decide what graphics banks you want per-map



7) Choices for animation properties for each world (No animation a la World 5, fast/slow animation, 2-frames of animation, 8 frames of animation)


Duely noted, may apply to levels as well


As for the editor making it super easy and it's no longer hacking anymore, hell yeah it will! But a good level editor can't make up for great ideas and level design

DahrkDaiz
Posted on 10-06-09 08:26 PM, in General SMB3 Hacking Thread (rev. 2 of 10-06-09 09:03 PM) Link | Quote | ID: 116640


Nipper Plant
Sandwich Artist
Level: 46

Posts: 190/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
Posted by zbyte

In-level pointer editing: Reducing the Entrance Range? eg, instead of 00-15, maybe user can customize it (user could put 00-04). Also it would be nice if the Entrance Range would be shown by dotted lines, green area, etc. Exit Horizontal would show up on the next level, there could be a rectangular X (if there's an object there it wouldn't show up, this resembles what shows up if Mario came out and no pipe was beneath him) and then a ↑ or ↓ (the arrows would be 2x2) to show how and where Mario will exit.

Is it possible to have all enemies in one graphical bank? And is it possible to show 'Weird' objects? (such as item $63 in the Ice set)


I'm not reducing the entrance range, I'm increasing it. Right now a pointer's range is on a page bound ($00-0F, $10-$1F, etc) with my pointer, you can set the range from $00-$EF or $11-$72, any range you want and it will be indicated on the editor below/above the level display. I may also make it so you can have a pointer within a pointer (i.e. one that ranges $10 to $60 then one that ranges inside it from $30 to $41, as an example).

As far as all enemies in one graphical bank, impossible. It's an NES limitation. Weird objects weird objects wills till be weird. As I said, enemy editing will pretty much remain the same.


Btw, Mario Adventure is going to be 6 years old in January. Articles are still being written on it after so long Crazy.

I'm considering recruiting some serious help now. I'm eying a few hackers, but I'm not sure if any of them have the time or the drive to work on a hack with me. I'm mostly looking for graphics work, hack ideas and level designing. We'll see if I'm able to recruit a serious team.

DahrkDaiz
Posted on 10-06-09 09:21 PM, in General SMB3 Hacking Thread Link | Quote | ID: 116646


Nipper Plant
Sandwich Artist
Level: 46

Posts: 191/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
Right now I'm focused strictly getting the level editing working and implemented into the rom. Maps will come later.

Kawa: lol get up, I'm not a lord or anything. I thought you were more of a Pokemon/RPG hacker?

DahrkDaiz
Posted on 10-06-09 09:34 PM, in General SMB3 Hacking Thread Link | Quote | ID: 116649


Nipper Plant
Sandwich Artist
Level: 46

Posts: 192/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
Ok so I've also decided to include a bit of unused level header space for people who are able to hack to the point that having unused data in the header would be extremely useful. I'm guessing 3 bytes of unused level header data would be enough.

DahrkDaiz
Posted on 10-06-09 09:51 PM, in General SMB3 Hacking Thread Link | Quote | ID: 116651


Nipper Plant
Sandwich Artist
Level: 46

Posts: 193/417
EXP: 674958
Next: 36816

Since: 02-22-07

Last post: 3496 days
Last view: 3416 days
Sweet, I may recruit you, we'll talk later on IRC.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21


Main - Posts by DahrkDaiz

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

Page rendered in 0.246 seconds. (329KB of memory used)
MySQL - queries: 131, rows: 163/163, time: 0.231 seconds.