Page 1 of 1

Firetrack maps

Posted: Tue Dec 21, 2010 1:47 am
by davidb
Recently, I got back into playing the Electron version of Firetrack. Although not as fully featured as the BBC version, it's still very impressive the way it all comes together. The smooth vertical scrolling is described on Wikipedia's page on the Acorn Electron:

http://en.wikipedia.org/wiki/Acorn_Elec ... _scrolling

The information about this technique originally came from Thomas Harte.

Anyway, I wanted to see how the map data was stored with the idea of writing a quick tool to generate new levels, but I don't have the time right now, so I've attached an almost certainly incomplete description of the level data. Maybe the BBC version uses a similar scheme. Perhaps someone will be inspired to do something with it...

Re: Firetrack maps

Posted: Tue Dec 21, 2010 11:01 am
by Cybershark
Nice work there!

From my recent digging around in Hobgoblin then I know that this stuff is not easy to piece together ;)

Re: Firetrack maps

Posted: Tue Dec 21, 2010 12:05 pm
by tautology
We should probably centralise this stuff somewhere for people who actually want to do something with the information. I put my Repton Infinity notes on the Reverse Engineering Wiki; just so that they'd be out there.

Samwise should we place this stuff on the retrosoftware wiki as extra information?

Re: Firetrack maps

Posted: Thu Dec 23, 2010 11:22 pm
by Samwise
That's a damned good idea. We already have some game disassemblies linked off the Useful Docs page, so I'm wondering if it might be a good idea to extend that to include reverse engineering notes. It certainly doesn't hurt to have the information documented in both places and, as both sites are based around MediaWiki, it just needs the source for the article cutting and pasting from one to the other. Hurrah!

I'm currently without easy access to a PC over Xmas (long story, involving getting a bride in crisis from one side of the country to the other), but if you wanted to just cut and paste your notes into an article at Retro Software and link to it from the Useful Docs page, that'd be great. If you haven't got round to it by the new year, I should be able to do it when I get back down south.

Sam.

Re: Firetrack maps

Posted: Fri Dec 24, 2010 1:10 am
by tautology
I've added the section. I can easily add the formats for Firetrack, Shark and Hobgoblin if davidb and cybershark give me permission.

Though I won't have much computer time after lunchtime tomorrow (holidays and my office being stolen to let people crash in - bah)!

Re: Firetrack maps

Posted: Tue Jan 04, 2011 9:22 pm
by Cybershark
Oh yeah, you can stick anything I reveal up on there too. I'll have to get around to making a proper presentation of everything I've figured out so far :)

The problem with Hobgoblin is not the map data, but the way the enemy data is stored - I'm still scratching my head over some of that. But hey, on the plus side then I did go take a trip back to Hobgoblin II! For some reason I was originally convinced that was much harder to interpret, but after looking at it again recently I've been able to use an (only slightly modified) version of my level editor to work with that too. The enemy trickery remains a constant though #-o

Re: Firetrack maps

Posted: Tue Jan 04, 2011 9:41 pm
by tautology
Cybershark wrote:The problem with Hobgoblin is not the map data, but the way the enemy data is stored - I'm still scratching my head over some of that. But hey, on the plus side then I did go take a trip back to Hobgoblin II! For some reason I was originally convinced that was much harder to interpret, but after looking at it again recently I've been able to use an (only slightly modified) version of my level editor to work with that too. The enemy trickery remains a constant though #-o


Drop some pointers and some of the rest of us can take a look. (I'm perverse - I enjoy reverse engineering stuff.)

I do remember spending hours playing hobgoblin on my Elk back in the day... Hmm maybe I should download it for old time's sake...

Re: Firetrack maps

Posted: Thu Jan 06, 2011 5:10 pm
by davidb
tautology wrote:I've added the section. I can easily add the formats for Firetrack, Shark and Hobgoblin if davidb and cybershark give me permission.


You have my permission. Go for it! :D

Re: Firetrack maps

Posted: Thu Jun 27, 2013 9:51 pm
by davidb
I'm reviving this thread because I figured out how the tile sprites are stored. As a result, I've uploaded my code to a repository and attached a screenshot of an editing tool which is really only good for browsing at the moment.

Re: Firetrack maps

Posted: Sat Dec 13, 2014 12:53 pm
by tricky
Hi David,
I said I didn't have much luck with python!

pEditors\dboddie-firetrackmaps-13e10b20e987>Tools\editor.py Firetrack.uef
(most recent call last):
\DATA\MapEditors\dboddie-firetrackmaps-13e10b20e987\Tools\editor.py", line 27, in <module>
UEFfile
r: No module named UEFfile

Am I missing some files?

dboddie-firetrackmaps-13e10b20e987>dir /s/b
dboddie-firetrackmaps-13e10b20e987\.hg_archival.txt
dboddie-firetrackmaps-13e10b20e987\Documents
dboddie-firetrackmaps-13e10b20e987\Firetrack
dboddie-firetrackmaps-13e10b20e987\Firetrack_E.txt
dboddie-firetrackmaps-13e10b20e987\Firetrack_E.uef
dboddie-firetrackmaps-13e10b20e987\README.txt
dboddie-firetrackmaps-13e10b20e987\Tools
dboddie-firetrackmaps-13e10b20e987\Documents\notes.txt
dboddie-firetrackmaps-13e10b20e987\Firetrack\maps.py
dboddie-firetrackmaps-13e10b20e987\Firetrack\sprites.py
dboddie-firetrackmaps-13e10b20e987\Firetrack\__init__.py
dboddie-firetrackmaps-13e10b20e987\Tools\editor.py
dboddie-firetrackmaps-13e10b20e987\Tools\readmaps.py
dboddie-firetrackmaps-13e10b20e987\Tools\read_sprites.py

I also tried the Reverse Engineering Wiki, but the site doesn't seem to work with Chrome or IE. This error appears many times and then a few others:

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/mdrueing/public_html/rewiki.regengedanken.de/htdocs/w/includes/MagicWord.php on line 739

Re: Firetrack maps

Posted: Sat Dec 13, 2014 1:21 pm
by davidb
Sorry about that. The UEFfile wasn't included in there because it's common to lots of projects of mine, but there's no obvious place to get it so I've added it to the repository now. :)

Re: Firetrack maps

Posted: Sat Dec 13, 2014 1:31 pm
by tricky
Sorry, my luck isn't getting any better:

C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c>Tools\editor.py Firetrack_E.uef
Traceback (most recent call last):
File "C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Tools\editor.py", line 28, in <module>
from Firetrack import Firetrack
ImportError: No module named Firetrack

C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c>dir /s/b
C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\.hg_archival.txt
C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\COPYING
C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Documents
C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Firetrack
C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Firetrack_E.txt
C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Firetrack_E.uef
C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\README.txt
C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Tools
C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Documents\notes.txt
C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Firetrack\maps.py
C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Firetrack\sprites.py
C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Firetrack\__init__.py
C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Tools\editor.py
C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Tools\readmaps.py
C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Tools\read_sprites.py
C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Tools\UEFfile.py
C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Tools\UEFfile.pyc

Re: Firetrack maps

Posted: Sat Dec 13, 2014 2:18 pm
by davidb
Ah, I'm not sure how this work on Windows. For some reason my system is including the current directory as a path to include Python modules, so it works rather unexpectedly without any extra messing around.

You need to set the PYTHONPATH environment variable to "C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c" then run the Tools\editor.py script as you were doing. I don't remember the syntax for setting environment variables on Windows, unfortunately. :(

Edit: Or just move the Firetrack directory inside the Tools directory. I might update the repository to have that directory structure.

Re: Firetrack maps

Posted: Sat Dec 13, 2014 4:41 pm
by tricky
Still no luck, nevermind, I'll try a few other arcade maps instead.

C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c>set "PYTHONPATH=C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c"

C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c>Tools\editor.py Firetrack.uef
Traceback (most recent call last):
File "C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Tools\editor.py", line 359, in <module>
game_info = Firetrack(app.arguments()[1])
File "C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Firetrack\__init__.py", line 40, in __init__
self.uef = UEFfile.UEFfile(uef_file)
File "C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Tools\UEFfile.py", line 99, in __init__
raise UEFfile_error, 'The input file, '+filename+' could not be read.'
UEFfile.UEFfile_error: The input file, C:\DATA\MapEditors\dboddie-firetrackmaps-26fc9d918a6c\Tools\editor.py could not be read.

Re: Firetrack maps

Posted: Sat Dec 13, 2014 5:23 pm
by davidb
I've no idea why that fails the way it does. It should be passing the UEF file name to the Firetrack reading code, but instead passes the script name. I've never tried the tool on Windows so I've no idea if I'm doing something wrong with argument handling on that platform.

Re: Firetrack maps

Posted: Sat Dec 13, 2014 6:04 pm
by davidb
I've attached images of the levels to this message. The numbering is fairly arbitrary - the Devil Rock is not level 5 but just the fifth set of level data in the game. The palettes are also incorrect for various levels - I have more ideas about how they are encoded in the game now, but haven't looked at it properly.