Emptiness

Well, I finally managed to get an empty engine compiled into ScummVM, yay! I’ve not heard back from the ScummVM leads yet, but that’s ok: even if it won’t be part of ScummVM, the ScummVM app means I don’t have to worry about getting my own graphics / sounds setups, etc.

Google

Hmmm… as pointed out on #scummvm, Google seemed to be put out by me claiming that Googling “t7gre” did not find my blog, and now it very much does. Do they only list blogs that have been posted in recently maybe? I’ve googled occasionally for this in the past, and it seems rather sporadic whether it appears or not.
Anyway, I’ve emailed the leads of ScummVM now, to get their input on whether ScummVM could include T7G at some point in the future.

Disassembling number 7

Well, disassembling doesn’t scare me as much as it did. Which is obviously a good thing. I used the free version of IDA, and it looked like I could get some good stuff out of it (bit tired tonight though). The only thing is that it won’t look at the dos executable (i.e. the original), because it’s only a demo (the full versioin will hack into any executable you care to throw it at, by all accounts). Thankfully there is a windows executable (available from the links on the left), but I can’t help feeling that I should be using the DOS one. I imagine it to be simpler, but maybe I’m making that up.

Assembly language

I don’t wanna!

Scuppered!

Well, tonight I got a mention on #scummvm. To answer the questions that were asked there, the reason I haven’t discussed this with the ScummVM team is because I wanted to get a foothold on it before asking. That stage was to come soon enough.

But now I’m intrigued. This blog doesn’t even show up (atm) if you google for t7gre… how on earth did it get stumbled upon? Bizarre. Ah well. I just have to assume now that someone might actually be reading this 🙂

Another gift!

It turns out the music, contained in the XMI.GJD file, is in xmidi format. Which scummvm already supports. Woohoo! This says to me that the next stage is probably going to be adding the engine to scummvm … a big task.

Oh, and I’m going to rename all the files so they have small letters. internally they’re all referred to in small letters, so for the time being I may as well be consistent. Eventually I guess it’s gonna have to cope with both, but I prefer the idea of being short-sighted for a bit.

And I’m going to redo the database, this time with all the unknown data values, and possibly bytecode totals for all the resources. Maybe. Still haven’t decided what format the database should be in, I’m having a go with OpenOffice database, seems ok. Whether it’ll read in comma delimited data, who knows…

Building database

Well, I figured if I was going to get every bit of this game working, I’d need to know which part is where, etc. So I’m unpacking everything. That may not sounds very exciting (and it’s not), but I was quite impressed to find that just INTRO.GJD, which starts off at about 30MB decompressed to about 900MB. So the whole game (about 650MB) will probably take up 20GB. And then I just have all the decompression data to put into some sort of usable form…

/me trundles off to investigate MySQL

And I’m spent

I managed it in the end. I figured out not only what the problem was, but why I had a problem with that frame in particular. The frame uses a particular opcode, 0x60, a lot, when others don’t (at all? Not sure). That opcode gives very precise control over the image: where the previous frames have been slightly “rushed” as it were, to save space, this one is done very precisely. If you remember the intro to 7th guest, you’ll know why: all the action for the next few scenes takes place on the pages of that book: it basically doesn’t change for a minute or more.
But that’s not important. The important thing is that it works. Now I’ve just got to try it on all the others and find the ones it doesn’t work on…

Noooooooooooo!

It was all going so well! I’d finally got the palette completely sorted (how could it be so difficult?), the first 30 frames were perfect, then this! Where do I start trying to figure out what’s wrong with this? I just don’t know…

Still bad, but getting better

As you can see, I’m getting there…