Originally Posted by Qube
I just noticed that the PC version of Chaos is slightly different, has a compressed CHAOS.DAT containing all data, but there is no LEVSDAT.BIN in there. Interestingly there is a file called LEVSDAT.GFX, weird.
The PC's CHAOS.DAT file seems to be a custom archive or something, but there is a structure at the start showing the file names, presumably lengths are in there also or start pos etc. The actual exe seems to use PKWare, so who knows..
Then maybe levsdat.bin is just gfx, for things like the map view? I'll have a closer look at the PC version, CHAOS.DAT sounds interesting at least.
Originally Posted by gimbal
I wish I had the reverse engineering skills that you guys possess
How do you do it? The best I can come up with is writing a small tool to output the first X bytes of a file as separate unsigned bytes, unsigned shorts and if needed unsigned ints to try and see if some of the values make any sense. Often, they don't
That's how I started. Next step is to determine the length of the entries (a table row so to speak). Then you line those up, and try to make sense out of it. Figure out the datatypes, and you can figure out basic things like coordinates as a start. Then you can visualize what you have so far, look at the things at certain coordinates and think, think, think until your head, it go asplode!
Visualization is important for me personally. Also important is being able to poke and prod into a file. Change values, and see what happens in the game. Document that, and move on from there. Some useful tools are usually a HEX editor (or just viewer), some way to vizualise the things you know as I mentioned (write your own, use LvlRip, or w/e), and an emulator to make things easy to test. A really useful tool I found is http://www.sweetscape.com/010editor/
You can write up a file's structure, and make it easy to read and modify:
And, a cliche; occasionally, a little luck is involved. And all of this is still without skills such as 68k assembly knowledge, more advanced use of a debugger, and such.