Saturday 1 September 2007

Unforgotten

I'm currently getting through the Reversing book that I mentioned in a comment to my last post. I realized early on that it wasn't a magic wand, the process is still going to involve a lot of learning-by-doing on my part, but it certainly puts me on the right track and has some helpful tips (even though it is directed at Win32). The problem is that I'm reading an electronic copy from our Uni library, and I'm much slower at reading electronic books (and find it less pleasant): it's not too expensive, I might have to buy a copy.

Have RL events to attend to for the next couple of weeks, then I'll be back to it...

Monday 27 August 2007

My eyes are square

I've been staring mindlessly at assembly language for hours. I've got a book, and I can figure most of the stuff in there, but when I try and translate that to the T7G exe, it seems worlds apart. I'll try and find a reverse-engineering book in our uni library tomorrow, hopefully if a book is coming from the same angle as me it might help.

Forlorn.

GJD capable



The video above celebrates the fact that my "engine" can now pull a vdx from a gjd directly and play it (previously, in case you haven't been following, I had to extract the vdx with a command line tool first).

Enough with procrastinating. Now I have no excuse but to attempt some disassembly. Well, I could work out how to do sound / xmidi, but I think I'll save them for later.

Sunday 26 August 2007

Praise Google Desktop!

So I'm just about to turn off Google Desktop, in case it overwrites the part of the hard disk that the files were stored on.

I mean, how often do I need to search for files on my computer anyway? It's not like...

Hmmm.

It lets me search for strings inside, for example, source code files. Does that mean it stores cached versions of those file?

Bingo!

OK, I don't have them all back, but the only ones I'm missing are the detection files and the makefile, which should be a piece of cake to do again.

I may have to keep google desktop for at least a little while, if only to say thank you.

STUPID

This could be my last post for a while. I have been exceptionally stupid, and managed to delete my entire engine. I'm not gonna go into details of how I did it, it's far too depressing, but I've tried "recover" and "e2undel", to no avail. I'm now in the process of grepping my entire hard drive (which has to be done in 100MB blocks, otherwise grep runs out of memory) to see if anything is salvagable.

Suffice to say, if I get everything back up and running again, or if I have to start from scratch (my last way-point was my empty engine), I will be setting up a backup system, probably an svn server.

Grrr.

Muppet city

As expected, the problem was with me being a muppet. When telling it the length of the data (for example, for the initial still image), I was giving it the length of the compressed data, rather than the uncompressed. So it was only getting partway through. Now it works, yay!

Where to go from here. There are a number of options:
  1. Get it to read this vdx from the gjd file
  2. Get it to play back the sounds from this vdx file
  3. Try playing back the xmidi files
  4. Start reing the executable

Although it may seem like I'm procrastinating (hell, of course I am, disassembling still scares me), I'm gonna sort out reading the vdx from the gjd. Everything is stored in gjd files, including the xmidi files, and I think it will be good to get me into the C++ mindset.

I preferred it when it when too fast

Got the timing working. Problem is that now it's running slowly enough for me to see artifacts. *sigh*. It's easier to fix them when your program outputs every frame as a bmp. Maybe I'll get scummvm doing that...