I started looking at the Sam Coupe version of Treasure Island Dizzy. Having pulled the spectrum version to bits I started to try and recolour the graphics to look more like the Amiga version. I updated my dizzy block/screen ripper to build the screens using new versions of the blocks so i could see how successful i was being. It soon dawned on me that I was no artist. No matter how hard i tried i couldnt get the graphics to look like that on the Amiga. Partly this was down to the limited blocks used on the spectrum due to memory limitations, mostly down to my lack of art skills.
I wondered whether i could persuade someone to recolour the blocks for me, but as it was a bank holiday weekend and i wanted to get on with this I decided that wasnt going to happen any time soon. I could have started coding up using the spectrum graphics, but that seemed wrong. In the end it hit me, why not just use the Amiga graphics.
Being a programmer and a bit of a hacker i decided that i would just rip the Amiga graphics rather than try and pull screenshots apart. I loaded up the .adf version into an amiga emulator and soon realised that the way the graphics were stored on the Amiga were very similar to that of the spectrum. I had assumed, giving the Amiga blitter, that the screens would have been built up out of 16x16 or 32x32 tiles, but no, like the spectrum it had randomly sized blocked (Although they were divisions of 16 pixels wide for the blitter). Soon I pulled the game code from the amiga into a debugger, ripped it apart and had my spectrum ripper also pulling apart the amiga blocks.
From here, as with the spectrum i decide to grab the map format. Soon i had all the maps being extracted along with information about the position of pickups, scrolls and other items.
The issue with grabbing graphics and levels from the Amiga is that its screen is 320x256 pixels wide. This means that I would have to resize the graphics down to around 80% of their size, or re-layout the screens. I didnt fancy resizing the graphics as that generally leads to things looking wrong, also the amiga version uses a 320x144 play area screen (it has a fairly large border at the bottom). Re-layout it was to be…
I knocked up a very quick and nasty map editor in c# and integrated the importing of the amiga maps. I decided it might be quicker to rearrange the amiga maps that lay them all out from scratch. Soon the editor was looking nice, basic but functional.
I made the map editor display the screens at Sam Coupe size, basically chopping 32 pixels off each side of the Amiga screen. Once I had these in the editor it seemed that these screens were good. Checking it all out, at this point it seemed that the Amiga had basically added data on the side so i could ignore the bits that i chopped off. This may yet come back to haunt me, but for now I would work with the amiga maps as was. I still had the editor to alter things if needed, but now i had maps and blocks. There was one function left to add to the editor… Export to Sam Coupe Format….
This didnt take long to write, given the size of the graphics i opted for not using a mask and using colour 0 as transparent, which fitted with the Amiga graphics. This saves alot of memory usually used to store the graphic masks, but would mean a more complicated draw routine. I created an export of all the graphics which hit around 180k. As there were several graphics clipped off the sides of the screen i originally opted to use 16bits for the X and Y coordinate and 16 bits for the block number. I exported all these and was ready to start coding.