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
  
User name:
Password:
Reply:
 

UserPost
Geiger
Posts: 452/460
Anyway, i have gotten myself started on the quest to convert to VC++. Once im able to do windows programs fairly well i will recode DRDHack for C++ 6.0.

If you are not going to learn Forms (which would require the Framework), do yourself a favor and learn MFC. Trying to program in straight Win32 is about the biggest headache you could incur.

Or maybe MinGW is good. Have not used it, so I cannot speak on the subject.

I just don't want to have to install another layer of obscurity just so I can have runtimes for runtimes hogging up all my resources with weird new bugs.

The new layer of obscurity is supposed to protect against things like buffer overruns. Also keeps programs from doing really weird stuff by just immediately failing them if they screw up. The combined pseudo-code also allows for cross-language compatibility.

I will dismiss "runtimes for runtimes" as a knock against Microsoft. Not that its entirely unfounded, since they have had large runtime packages for a number of years now. Hell, its practically unavoidable (even this program requires a couple of items). The main difference between the .NET Framework and previous packages is that Microsoft now forces you to get them all at once (which helps to avoid DLL Hell).

Binary programs hog memory too, as its standard runtime policy to just grab a ton more memory than is actually needed. Even worse, binaries have memory leaks. The Framework does not, as it has a garbage collector (another benefit of the "extra layer").

As for weird new bugs, I suppose it depends on how you define weird. A program will no longer keep running if it screws up (and the developer is not handling exceptions), and the system will keep right on chugging. That is A-OK in my book.

But no one said he had to use the Framework with the express editions (which are free by the way). VC 2005 can still compile to binary.

---T.Geiger
HyperLamer
Posts: 7868/8210
I just don't want to have to install another layer of obscurity just so I can have runtimes for runtimes hogging up all my resources with weird new bugs.
dan
Posts: 771/782
Originally posted by Santa Claus
VC++ is nice and all, but I'd go with MinGW if you don't want a lot of weird bugs to deal with. But hell, use VB1 for all I care, just so long as it doesn't use that .Net crap. So long as the end result is good.


.NET really isn't that bad. Most people's problems with it are pretty irrational in my opinion. It'll likely be bundled with the next version of Windows, so I'd get used to it.

If DRDHack was written using .NET, I'd still use it. To deny yourself a useful program just because you don't like .NET is pretty stupid.
HyperLamer
Posts: 7865/8210
VC++ is nice and all, but I'd go with MinGW if you don't want a lot of weird bugs to deal with. But hell, use VB1 for all I care, just so long as it doesn't use that .Net crap. So long as the end result is good.
Matrixz
Posts: 18/20
So what if VB6 is old, it works fine
Anyway, i have gotten myself started on the quest to convert to VC++. Once im able to do windows programs fairly well i will recode DRDHack for C++ 6.0.
SharpDevelop i never heard about, but since its freeware, i might check out that..
Geiger
Posts: 451/460
Visual Basic source isnt too great for team development..

Its not so much that you are using Visual Basic, but that you are using VB Six.

You may want to consider using the Visual Studio 2005 Express compilers and SharpDevelop (though as slow as the latter is, I think I would just code it without an IDE).

DRDHack is a really nice program though. And you are certainly a better programmer than myself; had someone asked me to add graphical capabilities to a freakin' data editor, I would have told them to go to hell.

(What do you mean you want your toaster to make Jello? Its for makin' freakin' toast! )

---T.Geiger
Matrixz
Posts: 17/20
Originally posted by GuyInSummers
A bunch of people have pointed me to this topic since apparently it's similar to Nightmare. From the looks of things, this is developing much more quickly than Nightmare did. Does DRDHack in fact do everything Nightmare did and more? If so, I'll certainly recommend use of DRDHack rather than Nightmare and offer my services, though that might not amount to much since Nightmare mostly ceased development due to my laziness in the first place. I don't know how Alchemic'd feel about me abandoning his brainchild, but since I've got the cryptic source it isn't going far if I'm too unmotivated to touch it.


Well, the main thing is that DRDHack is aimed towards various kind of data at a defined offset, supported by different setups of interfaces. But, tables/arrays are supported pretty well, as indexed arrays and relative pointers are. One thing is that it doesnt line-up textboxes and drop-downs below each other like Nightmare does.
Anyway, the Visual Basic source isnt too great for team development.. im doing slight changes everywhere in the code almost everyday. I had ideas about dividing the program into script-like plug-in files, but it seems pointless work still.

Originally posted by Imzogelmo
I like the relative pointer capability, but is there a way (or are you planning a way) to edit 2x2 arrays of data?


Its not really supported. You could create a branch with relative pointers, and have many arrays in it:

(angle brackets are replaced so browsers doesnt detect XML.)
{bra ptr="8010" name="Enemy Statistics"}
  {item relptr="0" type="arr_byte" len="100" name="HP"/}
  {item relptr="100" type="arr_byte" len="100" name="Palette"/}
  {item relptr="200" type="arr_byte" len="100" name="Attack"/}
  {item relptr="300" type="arr_byte" len="100" name="Sprite"/}
{/bra}

But thats as deep table/array support in DRDHack is right now. I might find a way to support double-dimensional arrays (assuming thats what youre talking about by the formula you wrote). Im planning more variations of table/array support though
GuyInSummers
Posts: 8/8
A bunch of people have pointed me to this topic since apparently it's similar to Nightmare. From the looks of things, this is developing much more quickly than Nightmare did. Does DRDHack in fact do everything Nightmare did and more? If so, I'll certainly recommend use of DRDHack rather than Nightmare and offer my services, though that might not amount to much since Nightmare mostly ceased development due to my laziness in the first place. I don't know how Alchemic'd feel about me abandoning his brainchild, but since I've got the cryptic source it isn't going far if I'm too unmotivated to touch it.
Imzogelmo
Posts: 41/41
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.
dan
Posts: 767/782
Super Mario Bros uses signed bytes for things like running left, jumping, etc.
Matrixz
Posts: 16/20
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
Posts: 763/782
Does DRDHack have support for signed data types?
DahrkDaiz
Posts: 857/885
It's about time that good ideas and programs get attention, this, this sucker is going to get stickied for a while.
HyperLamer
Posts: 7697/8210
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.
Smallhacker
Posts: 2187/2273
Please tell me that there will be SNES palette support too.
Matrixz
Posts: 15/20
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
drjayphd
Posts: 1430/1477
(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.
DahrkDaiz
Posts: 851/885
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).
Matrixz
Posts: 14/20
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.
HyperLamer
Posts: 7561/8210
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...
This is a long thread. Click here to view it.
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.003 seconds.