Final Countdown - Amiga - Investigating the files
1. Intro
Final Countdown is a relatively obscure Amiga game that is often compared with Impossible Mission (a game I don’t know), created by German developers Demonware.
The entire game is a kind of big puzzle; the protagonist, Laira Tyrik, is a human scientist (wearing unusual clothes for a scientist) in the year 2437 that is transported to an “asteroid” to investigate. The asteroid is actually a spaceship coming to our solar system, and it seems unfriendly. Laira has to avoid obstacles that can kill her, and find information about how to disable the asteroid’s systems so it does not destroy Earth. She can try to access the computers that are available in many places in order to manipulate the ship systems and gather information.
The game is hard to figure out, and there is no guide anywhere on the internet about how to finish it. After watching Eric from Cosmic Effect play the game and get stuck in it, I tried to play and got stuck the same way.
So I decided to look into the game and try to better understand stuff. First step: trying to open the disk image files.
2. Amiga disk images
I don’t know much about the Amiga (never had one, though I wanted to), but the most common disk image format seems to be ADF (Amiga Disk Format). It is a dump of AmigaOS-formatted disks, track by track. However, game developers often defined their own disk format, sometimes adding some copy protection scheme on top. Because of that, these games can’t be dumped to ADF directly. The IPF (Interchange Preservation Format) was created to dump these kind of disks.
When looking for Final Countdown I found two versions, a no-intro version in IPF and a cracked version in ADF. Both have two disks. The cracked version was created to be copied easily, so it was formatted according to the AmigaOS format, and so it can be dumped to ADF. Because there are more tools to work with ADF files, I chose this version to look into.
3. unadf
There is a library called AFDlib that can be used to manipulate ADF files, but for my current purposes the unadf tool (made with ADFlib) is enough: it can extract individual files from the ADF image. It seems to be possible to mount ADF files directly in linux/unix systems but the linux system where I tried did not have support for the Amiga file system.
4. Disk 1
Using unadf, these are the contents of the first disk:
x - gfx/ x - gfx/Count x - gfx/Logo x - gfx/TText x - gfx/Asteroid x - gfx/Stuff x - gfx/SysCompC x - zob x - c/ x - c/Type x - c/echo x - l/ x - devs/ x - devs/system-configuration x - s/ x - s/startup-sequence x - s/start1 x - s/start2 x - intro x - songs/ x - songs/Title x - libs/ x - space x - snd/ x - snd/SSound x - snd/Sound
What we have here are graphics (gfx
), the title song (songs/Title
),
sounds (snd
) and other files.
startup-sequence
seems to be the starting script. It runs the Paradox
intro/cracktro (intro
) then shows the start2
file (message saying
that it needs 1Mb to play sound effects), runs zob
(a 4kb program)
and then space
, which seems to be the main program.
5. Disk 2
The second disk has a single file in the gfx
directory, then the
directories Txt
and Lev
. Txt
seems to contain all the texts
that appear in the computer terminals along the game, in plain text.
Lev
seems to contain binary data files, in series like
Elements0 Elements1 Elements2 ... Foes0 Foes1 Foes2 ... Matrix0 Matrix1 Matrix2 ... Struct0 Struct1 Struct2 ...
Some of the files are recognized by the linux command file
but the
reported formats doesn’t always make sense and maybe a coincidence.
Probably binary files with a specific format used by the game
program.
6. Going further
We can read all game text already and this may provide a lot of
information about how to solve the game. We can also start to
analyze the executable files, zob
and space
on disk 1. The
former may be a startup program, while the latter is probably the
main program. Both are recognized as having an AmigaOS executable
format:
$ file space space: AmigaOS loadseg()ble executable/binary
So the next step would be to look into this format and how the executable code can be extracted from it. Maybe we’ll do that another day.
Can't wait for further developments, Mr Gue-Mu!
ReplyDelete