It has been a long time brewing… But I think I would now like to start trying to get Dungeons of Dagorath to the Vectrex.
I contacted the original copyright holder (Douglas Morgan) and I got his ok. I tried to get the original TRS sources – but due to different reasons that is at the time not possible.
There is a c++ port done by Richard Hunerlach, which has been ported to various systems – amongst others Thomas Sontowski did a port for the VecFever – so the game actually already runs on a Vectrex – but with additional hardware. Thomas also gave access to his converted source to me – I don’t know if I will use them though – I think for the beginning I’ll start out with one source… the one with the highest version number I could find “dod0.5.1.linux.tar.gz“.
I have as yet no clue whether this is at all possible to do. The whole game in c++ obviously runs in computer “RAM” and I don’t know if I can convert the code in a way that ~800 byte RAM (or so) are sufficient.
The game in c++ is actually very “un’c++’ish” – it uses single instance global variables (classes) and loads data in “funny” ways – it actually looks like a grep of a binary output put into a string and than loaded with a converter, example:
This looks first strange – but if one dares to explores, the syntax becomes clearer. The thing is for my own port to vectrex I must obviously change this kind of initialization, because the way used now instantiates every data into RAM just by having it read from a string-stream.
But on the other hand… a more or less straight translation from original assembler sources has advantages, e.g. that I do not have to deal too deeply with c++’s object oriented stuff, like inheritances and such.
For the above kind of initialization I will write utilities… – but as of now I really can not glimps how much actual RAM the program will really NEED.
For today – I only looked at things, found out how the program starts – where the main loop is, and what should be initialized – and built a first raw vectrex main loop.
But just for the sake of the kind of exploration I will start… lets look at the example above.
actually is – it is the vector definition of the character “A”.
The four indicates the number of “quads” (rectangles), and following are 4 sets of quads, each with 4 coordinates (absolut coordinates) which range from 1-8.
With that knowledge and “mighty Vide” the first step to a conversion utility is not far away:
A font – that I am pretty sure I will not use – to many vectors!