Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Rom Hacking: hukka | 2 guests
Acmlm's Board - I2 Archive - Rom Hacking - Proposing universal byte-data editor; DRDHack | |
Pages: 1 2Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Matrixz

Goomba
Level: 8

Posts: 12/20
EXP: 2186
For next: 1

Since: 03-15-04
From: Norway

Since last post: 12 hours
Last activity: 7 hours
Posted on 10-08-05 05:05 AM Link | Quote
I was working on MegaFLE X, planning to implement editing of miscanneleous data in Megaman 5 that has nothing with level-specific data to do. But instead of having TONS of textboxes for each byte data, i wanted a TreeView box where the user would choose what data to edit, then edit it in one single textbox. I thought the idea was good, and it would use a database file containing the offsets i needed and other info. Then i came to the idea that if i made it a seperate program, the user would be able to edit any rom this way, if there were an offset database aviable for the rom that was compitable the program.

Well, the result is DRDXML and DRDHack.
DRDXML is the database format used, which is XML-based.
Quoted from the DRDXML documentation:
"DRDXML is an XML-based format for structuring a database of data offsets in a ROM.
(hence Data Reference Database=DRD). Information includes a pointer, description,
a choice of a set of interface types data should be edited in, and other optional information."
DRDHack is a simple program that loads a rom, a DRDXML file for it, and you get a nice overview of documented offsets in the database, and directly editable.
So the point of this is really to create a universal editor (but limited to hexidecimal smal-scale data), where anyone could contribute.



Current version is downloadable here:
http://elazulspad.net/matrixz/drdhack.zip

The pack includes DRDHack, the VB6 source code to DRDHack, a detailed documentation of the DRDXML file format, and a sample XML for Megaman 5.

The Megaman 5 sample is an early progress. I want to improve DRDHack also, for more types of rom editing, and maybe eventually editing of DRDXML files. But the file format will always be backwards-compitable, so feel free to start creating db's
Cat Lover

Level: 11

Posts: 39/50
EXP: 4928
For next: 1057

Since: 04-22-05

Since last post: 2 days
Last activity: 2 days
Posted on 10-09-05 03:23 AM Link | Quote
Good work!
Kyoufu Kawa
I'm not bad. I'm just drawn that way.
Level: 70

Posts: 2367/2481
EXP: 3008456
For next: 7355

Since: 03-19-04
From: Catgirl Central

Since last post: 14 hours
Last activity: 13 hours
Posted on 10-09-05 03:27 AM Link | Quote
A bit like Nightmare then, but better. I like it already.
Smallhacker

Green Birdo

SMW Hacking Moderator
Level: 68

Posts: 2158/2273
EXP: 2647223
For next: 81577

Since: 03-15-04
From: Söderhamn, Sweden

Since last post: 10 hours
Last activity: 9 hours
Posted on 10-09-05 03:38 AM Link | Quote
Must... make... an... SMW... database...
Matrixz

Goomba
Level: 8

Posts: 13/20
EXP: 2186
For next: 1

Since: 03-15-04
From: Norway

Since last post: 12 hours
Last activity: 7 hours
Posted on 10-09-05 05:25 AM Link | Quote
Haha, so there's already made something like this. Strange, i completely missed that, but i found the thread about Nightmare. Its module system with txt files seems a lot more simplier. Oh well, i will keep working on DRDHack towards the ideas i have for it.
Kyoufu Kawa
I'm not bad. I'm just drawn that way.
Level: 70

Posts: 2372/2481
EXP: 3008456
For next: 7355

Since: 03-19-04
From: Catgirl Central

Since last post: 14 hours
Last activity: 13 hours
Posted on 10-09-05 05:36 AM Link | Quote
Nightmare's interface loses to DRDHack.

Unfortunately, with great interfaces comes great file formats.


(edited by Kawa-oneechan on 10-08-05 08:37 PM)
AnyoneEB

Level: 3

Posts: 1/5
EXP: 55
For next: 73

Since: 10-09-05

Since last post: 9 days
Last activity: 7 hours
Posted on 10-09-05 06:38 AM Link | Quote
Cool idea. Anything that helps non-programmers make editors sounds good to me.

Actually, this looks a bit different from Nightmare. Nightmare is for editing tables, this is for editing miscellaneous bytes around a ROM. I guess you could tell Nightmare that you have a single entry and get the same functionality, but I like the idea of using an XML file to allow putting everything into one file. Perhaps you could add a (table branch) element or something like that with an offset for the very start of the table and the table entry size and have the item offsets be relative to the start of an entry?

Also, type requests:
1. Binary flags like the "ownership" byte in EarthBound's items table (http://pkhack.fobby.net/misc/txt/items_table.txt). (I believe that is a feature request for Nightmare.) You would have to specify the meaning of each bit.
2. Being able to edit a string by specifying in the XML that it is ASCII+something text would be nice.

I probably will not be doing any coding for another few months, but when I have time I plan to implement Nightmare in Java. Maybe I will look into implementing DRDHack, too. Or maybe just whichever one is still around.
Jigglysaint

Red Cheep-cheep
Level: 24

Posts: 207/215
EXP: 76907
For next: 1218

Since: 03-17-04

Since last post: 7 days
Last activity: 3 days
Posted on 10-09-05 09:53 AM Link | Quote
Looks pretty sweet. What might be neat is if it's possible to implement graphical representation for certain bytes. For example, say I have a game where 1 byte is one tile. I want to be able to see those tiles in the rom and edit them as is. Perhaps it just might meaning that you need to rip the tiles and store them in the file, but that's better than nothing at all. Also, instant pointer calulations. I'd like something that could decompress, but that's really beyond this type of editor.
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 7561/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 10-09-05 09:56 AM Link | Quote
Hm... a full-blown game editor that uses XML and some sort of Javascript-like language to edit anything in any game (use XML to give it data locations/formats and script to do math and such). I wonder...
Matrixz

Goomba
Level: 8

Posts: 14/20
EXP: 2186
For next: 1

Since: 03-15-04
From: Norway

Since last post: 12 hours
Last activity: 7 hours
Posted on 10-09-05 05:04 PM Link | Quote
Originally posted by AnyoneEB
Perhaps you could add a (table branch) element or something like that with an offset for the very start of the table and the table entry size and have the item offsets be relative to the start of an entry?


As it stands, data types can be an array where user choose the index (and each index can have a relative offset to the main one), so it works like a table. I recently improved it so each index can each have a name/label displayed in a textbox too. But your idea (if i got it right) is a good alternative, so i will support that.

Originally posted by AnyoneEB
Also, type requests:
1. Binary flags like the "ownership" byte in EarthBound's items table (http://pkhack.fobby.net/misc/txt/items_table.txt). (I believe that is a feature request for Nightmare.) You would have to specify the meaning of each bit.


Great idea. Ill make it as an addition to the byte types, so you can have either bits, byte, or both.

Originally posted by AnyoneEB
2. Being able to edit a string by specifying in the XML that it is ASCII+something text would be nice.


Planning on it. Maybe ill just make .tbl files includable for this purpose

Originally posted by Jigglysaint
What might be neat is if it's possible to implement graphical representation for certain bytes. For example, say I have a game where 1 byte is one tile. I want to be able to see those tiles in the rom and edit them as is. Perhaps it just might meaning that you need to rip the tiles and store them in the file, but that's better than nothing at all.


Or it could use pointers in the XML to specify where in the rom the CHR is, and what type it is (nes, gb, snes..). Hm, shouldnt be too hard to do, but ill stick to NES first.

Originally posted by Jigglysaint
Also, instant pointer calulations. I'd like something that could decompress, but that's really beyond this type of editor.


You mean, instead of having static pointers in the XML, read and calculate pointers from the rom? Im gonna have to implement that.
Decompression.. not sure how that would be useful for what this thing does.
DahrkDaiz

Red Super Koopa

Acmlm's Mosts 2005
Best ROM Hacker

Level: 45

Posts: 851/885
EXP: 643520
For next: 16644

Since: 03-15-04
From: K-Town

Since last post: 4 hours
Last activity: 4 hours
Posted on 10-13-05 10:39 PM Link | Quote
A bit of a bump but I wanted to express my endorsement for this thing. I've started to create a database for Super Mario Bros. 3 using this program, so I'm now relying on you Matrixz to update this thing regularly! This would be a perfect answer for me to release my knowledge of SMB3 without having to write long explanations or write it in neat notes (plus makes it a lot easier for people to use the knowledge).
drjayphd

Beamos
What's that spell?




pimp!
Level: 56

Posts: 1430/1477
EXP: 1387410
For next: 10766

Since: 03-15-04
From: CT

Since last post: 2 hours
Last activity: 2 hours
Posted on 10-14-05 03:15 AM Link | Quote
(services Matrixz)

I might do a database for Wheel of Fortune, if I can figure out how to handle the puzzles. I know their format, it's just a matter of how to translate it into something you can edit intuitively.
Matrixz

Goomba
Level: 8

Posts: 15/20
EXP: 2186
For next: 1

Since: 03-15-04
From: Norway

Since last post: 12 hours
Last activity: 7 hours
Posted on 10-14-05 12:36 PM Link | Quote
Great, good that this is catching on. It motivates me to keep active updates on this project.

http://elazulspad.net/matrixz/drd/drd.htm

That place is where i will keep all latest updates on DRDHack and my own database files. I updated the specifications for DRDXML files, (which is also aviable there). I hope to release a new version of DRDHack today to support the changes.
Here's a little preview:



Yep, palette support
Smallhacker

Green Birdo

SMW Hacking Moderator
Level: 68

Posts: 2187/2273
EXP: 2647223
For next: 81577

Since: 03-15-04
From: Söderhamn, Sweden

Since last post: 10 hours
Last activity: 9 hours
Posted on 10-14-05 05:42 PM Link | Quote
Please tell me that there will be SNES palette support too.
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 7697/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 10-14-05 06:21 PM Link | Quote
That'd be easy if the program allows for variable-bit-length fields. SNES colours are just 5 bits of each colour and one left over.
DahrkDaiz

Red Super Koopa

Acmlm's Mosts 2005
Best ROM Hacker

Level: 45

Posts: 857/885
EXP: 643520
For next: 16644

Since: 03-15-04
From: K-Town

Since last post: 4 hours
Last activity: 4 hours
Posted on 10-14-05 09:48 PM Link | Quote
It's about time that good ideas and programs get attention, this, this sucker is going to get stickied for a while.
dan

Snap Dragon
Level: 43

Posts: 763/782
EXP: 534516
For next: 30530

Since: 03-15-04

Since last post: 20 hours
Last activity: 14 hours
Posted on 10-14-05 09:56 PM Link | Quote
Does DRDHack have support for signed data types?
Matrixz

Goomba
Level: 8

Posts: 16/20
EXP: 2186
For next: 1

Since: 03-15-04
From: Norway

Since last post: 12 hours
Last activity: 7 hours
Posted on 10-15-05 12:00 AM Link | Quote
Originally posted by dan
Does DRDHack have support for signed data types?


No.. but does NES games ever use signed bytes, though? I guess SNES games uses signed integers commonly. I will support 16-bit integers anyway, and decimal bytes and integers.

SNES (and GBC) palettes will be no problem Im familiar with those.
Hm.. variable-length-bit fields.. i think thats a good idea. Now to just think up how to organize support for all those combinations of byte and integer data :p

Btw, that new version of DRDHack is now aviable.
dan

Snap Dragon
Level: 43

Posts: 767/782
EXP: 534516
For next: 30530

Since: 03-15-04

Since last post: 20 hours
Last activity: 14 hours
Posted on 10-17-05 01:12 AM Link | Quote
Super Mario Bros uses signed bytes for things like running left, jumping, etc.
Imzogelmo

Blue Octorok
Level: 11

Posts: 41/41
EXP: 5292
For next: 693

Since: 09-22-04
From: (Longview) Starkville, MS, USA

Since last post: 15 days
Last activity: 1 day
Posted on 10-17-05 10:55 PM Link | Quote
I like the relative pointer capability, but is there a way (or are you planning a way) to edit 2x2 arrays of data?

Basically I'm picturing relative pointers that work like (TableStart+Length*Index+FieldOffset).


I'm thinking that there is a way, but I don't see it yet.
Pages: 1 2Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - Proposing universal byte-data editor; DRDHack | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.022 seconds.