Monday 8 September 2008

The Teen Agent is showing signs of life...

Well, Its not much of an update but a small update is better than no update, and its got me pretty excited. This blog post is about the status of TeenAgent if you hadnt guessed it and Id like to mention that It is now possible to view image resources in ScummVM, at first with the help of salty-horse I was able to get a resource loader working, This resource loader simply found the location of a resource from a given resource number
not that great I hear you say.. well after that I decided it was time to actually use some of these resources, I mean whats the point in loading them if you dont know how to use them. This is where I decided to look at TeenAgents ADVERT.RES, which corresponds to the ordering info page visible from the main menu, this ordering info page consists of a function which allows the user to move between the 11 resources in the ADVERT.RES file (which magically correspond to the 11 pages of the ordering info page) and then displays them to the screen.
With the help of _sev It became clear that the image resources were very simple and consisted of nothing but image data and pallete data(duh)
Within 20 minutes _sev had provided code which would then display my image resources to the screen in ScummVM, right now its currently possible to move between the ordering info pages EXACTLY like in the original game.
So many thanks for all the help I have recieved so far, its got me to a point where I have something that I think is worthwhile to show.
I hope you enjoy as much as I do :)

Tuesday 2 September 2008

TeenAgent

Im not sure if anybody actually knows about my blog, but I thought I would introduce my new project here, Currently I am looking at the game TeenAgent by metropolis software, Its a point and click adventure game and was the first game produced on CD in Poland. This project is an attempt to implement a TeenAgent engine in ScummVM.

There are two main approaches, the first is that I am currently in discussion with Metropolis about a source code release, they are yet to respond with anything more than 'we will speak to you about this soon' however Im reading into that as 'we are interested and when we get a chance we will sort it out.'

The second approach is through reverse engineering the TeenAgent executable.
I've made a little progress on this and since its my first real x86 reversing project Ive relied on a lot of help from Buddha^, jvprat and salty-horse.

currently I can tell when certain resource files are loaded I have located the pallete functions the file reading function, menu functions for save/load,quit,display ordering info,adjust music volume, adjust sound effects volume, adjust text speed, adjust game speed, adjust hero speed and change graphics mode.(greyscale/colour) I also have a few base functions recognised to control interrupts keyboard input and various other functions which arent really much use in creating the engine, rather I just named them to get them out of the way(so I know what they do and can ignore them for now)

with thanks to salty-horse I am now able to understand the file loading function and locate some of the various resources in VARIA.RES, the task now is to find out what these resources are by looking at the functions they reside in.

I hope to find some code which will allow me to figure out how one of the graphics resources is displayed, that way I can dump a graphics resource from VARIA.RES and write some code to load this in ScummVM that way I will feel like I have achieved something worthwhile.

Heres hoping that the next couple of weeks will bring some visual teenagent sexyness to ScummVM, or at least a start since I go back to university in about three weeks and I wont be able to work on it every day then :(

fingers crossed for a response from Metropolis and double fingers crossed for finding some graphics displaying code and ScummVMifying it.

Rob