Showing posts with label milestone. Show all posts
Showing posts with label milestone. Show all posts

Monday, 2 March 2009

Past, present and future

Well it finally happened. The new version of ScummVM contains the Groovie engine, capable of playing The 7th Guest. It's quite exciting really. But now I'm just thinking about where to go from here.
It's not like T7G is completely finished: see the ScummVM wiki for more info on known issues. But it's close enough for now: I'll come back and look into them at some point in the future, as for now I have bigger fish to fry.
I'm sure there are a lot of people out there who are thinking that adding support for The 11th Hour will be easy, as it uses the same engine. However, let me explain to you why that's not the case:

  1. The engine is currently designed to play just one game.
  2. 11H uses > 8 bit graphics (i.e. more than 256 colour images).
  3. 11H uses a completely different video format.
  4. The script opcodes have changed.
    Those are just the big things that are obvious from the outset: I'm sure there are other smaller things (have you noticed the animated cursors blend together?).

Number 1 will involve refactoring the entire engine: no real changes, but involves difficult design decisions.
Number 2 is the real biggie. It's going to involve even bigger design decisions that will affect the whole of ScummVM, not just the Groovie engine. If ScummVM is accepted into the 2009 summer of code, it's one of the possible tasks, so we're going to wait and see if it gets taken up before even thinking of undertaking it.
Number 3 isn't as big as you might think: jvprat has already implemented a basic player from format descriptions on tinternet.
Number 4 will involve lots of fun reversing. We know a bit better what we're looking for this time tho!

Lots to do then, and very little free time to do it in. But there's no hurry :-)

Wednesday, 17 December 2008

Supported

This post is probably pointless, as probably the ones of you that follow this, also follow ScummVM's news page. But as of yesterday, The 7th Guest is officially supported by ScummVM. This means that it will be included in the next ScummVM release (0.13.0, whenever that may be), and that we're accepting bug reports to the ScummVM bug tracker. And if anyone submits "the microscope puzzle doesn't work like the original" then I won't be impressed :-P (see previous post if you don't know why).

Saturday, 15 November 2008

The End of The Beginning

Well, as of ScummVM r35060, the Groovie engine is part of it. Yes, that's right folks, if you download the Daily Snapshot of ScummVM from now on, you'll be able to play The 7th Guest with it.

We're going to keep the google code project going, but the svn repos there might not always have the most recent code: that will be in ScummVM. And this blog will continue indefinitely :-).

Friday, 7 November 2008

Completeable!

... kinda. Apparently. As of r328, the game should be completable without the use of the library. However, no-one has played it through from start to finish: if anyone wants to try to play the game all the way through, please let us know if it works! As stated in the last post though, disassembling the AI for the microscope puzzle is going to take quite some time as it is very complicated: at the moment Stauf may seem considerably more stupid than you remember him (in fact, his moves aren't even valid: he basically does nothing the entire game). But still. The game's completeable! Yay!

Monday, 14 April 2008

Mobility


Wow. Courtesy of jvprat, the mansion is now navigable. This is not *that* big a step from where we were before, but it feels enormous because it actually makes the game at least partially playable (whereas before we essentially just had a movie player). As you can see, the engine also compiled on Windows CE with no changes at all.

There is still plenty left for us to do: the MIDI music, save games and, well, the puzzles. But this is so exciting!

Sunday, 16 March 2008

Progress. Like *real* progress.

Wow. Given that this time last week we had absolutely no idea about the file formats of the .grv files, we have come a loooong way. Our opcode list is now more complete than not, and jvprat has implemented a skeleton script interpreter which we can now go about adding opcodes to one by one.

It's still going to be quite some time before anything is playable, but it's on its way! In the meantime, here's a photo of some of my working...

Monday, 27 August 2007

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.

Wednesday, 22 August 2007

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.

Tuesday, 14 August 2007

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...

Wednesday, 8 August 2007

Welcome to my... blog

So this is my attempt to actually get started on this: start a blog, then I'll get really depressed if I don't put anything in it for a while and be forced to do something.

I am intending to reverse-engineer The 7th Guest, the eventual intention being (if they'll have it) to add it to ScummVM.

I should point out that I have no experience of reverse engineering, little experience of ScummVM programming, and only moderate experience of programming. The thing I have in abundance, though, is a willingness to learn these things. Hopefully that will be enough!