Hi Guys (and Mark) Sorry haven't been back in a while - have had some somewhat distracting personal issues over the past couple of months - Mark I'm still up for it.
OK, I developed R-TYPE using the fantastic PDS system written by Foo Katan. For those who have never heard of PDS, it was probably the worlds first IDE - Editor, Cross Assembler, Linker and Debugger all in one. It run on the x86 architecture under DOS, and had a hardware component that allowed you to 'Download' the compiled code directly onto the target hardware. It eventually supported development for Z80, 6502, and 68K. It was probably the mainstay of all Video game programming in the late 80's.
I was very fortunate to be given Bob Papes EXECELENT source code for the speccy version. I have never met Bob but have spoken to him on the phone. I have the highest regard for him! Although the code wasn't that well documented, many of his labels were somewhat self descriptive.
Given the extream time limits i was given to the port this is basic strategy that I took to do the port... (I hope i remember all this correctly)
The spectrum had its ROM in the lower 16K, and the 48K of RAM above it. So I configured the Amstrad to locate the MODE 1 screen in the lower 16K, and loaded the spectrum version in the top 48K (As it would be located on a spectrum - and ran it). I then went through the code line by line, modifying anything that 'plotted' pixels on the screen to something that would plot the equivalent pixels on on Arnolds screen.
As the spectrum screen is 'Attribute Based' I continued to used all of Bobs 'Colour' code, and the whole 768 bytes of the spectrum colour attribute screen is running on the Amstrad version. When ever there was a 'Byte' write to the spectrum screen, I would use a look up table to indexed by the byte and the value of the corresponding spectrum colour attribute to extract the two bytes required to produce the correct pixels on the CPC screen. Then all I had to do was port the control (Sinclair/Kempston) to CPC stuck, and the Sound and the job was done. A few days with DJL to add the 'Protection' and the job was done.
Now the sad news... about 5 years ago, I had a massive leak in my roof, and all my records (including the source code) was destroyed.
Now some Trivia: At the time I had a 464, 664 and a 6128 - I took the final masters down to Activision, and it would not run on their 6128. It tuned out that at some point in time, Amstrad had made a small revision to the design that meant that a the interrupt would fire just before a frame fly back pulse, where on previous versions it would occur just after. The net effect was that when my code was waiting for the frame fly back pulse to occur, the interrupt would trigger just before it, go off do some processing, and by the time it had finished the processing and returend to the main code loop, had missed the pulse - and locked up.
Noticing the name of this forum - I only have one thing to say... We all have to eat! LOL
As for the industry in the early days... It was fantastic! The egos, and personalities were out of this world. There were some VERY clever guys, and there were some VERY slimey men in suites that knew how to abuse the geeks. One of the greatest things to happen in those early days were Richard and David Darling, people dont remember that Codemasters was founded by two school boys. I do remember a great night out in Lemington Spa with those two, and a missing traffic cone or two.