Famous for the fantastic Crazy Comets and Mega Apocalypse, it was a honour to finally meet Simon Nicol at 2003’s BIT5 Brighton event. As well as talking about Mad Planets to Simon, Simon started conversation about a Car game which he was writing for Virgin Games in the 80’s, which featured a road effect like no other.
Simon talked about seeing Mark Kelly’s road effect created for Turbo Outrun, and Simon instantly said something along the lines of – “You call that a road?, now this is a road..” and created his own amazing road effect.
In around 2008, a friend of Simon’s had this to say about the game..
“His road routine was impressive, fast smooth and very hungry (CPU & RAM as far as I can remember). He spent about 3 months fiddling with it while working for Martech, then came and worked with me for a bit.
Martech were not best pleased, they were expecting a game out of him and were paying him 2k per month then – he was riding the crest of Mega Apocalypse at the time (hell of a star field that one..). I don’t know that the game really got any further than the road – there was another programmer Dave Martin (Martech) imposed on Simon to help him (make sure he did something) – can’t remember his name, sorry.”
It seems that although Martech were peeved off, they saw potential in the demo – as contributor Robert Wilson reveals:
“I have a small article in a C64 magazine relating to an Outrun style racing game written by Simon Nicol (Mega Apocalypse) back in the late 80s for Martech. The article contains a screenshot and some information about the game which was being worked on.
It was said that it featured a very smooth running road system – the best anyone had seen on the C64. However, it was pushing the memory limits of the C64 and Simon Nicol had apparently used around 40K of memory just on getting it took as good as it did.
Rumours had it, that he used multicolour bitmap mode to move the roadside graphics through the screen to achieve the effect, rather than using the standard character bitmap mode method, which always looked jerky, i.e. Space Harrier, Afterburner, Outrun.. etc. The code may be lying around somewhere unless Simon Nicol deleted it back then.. I will try to dig out the magazine again and try to get you the screenshot of the game – it’s somewhere in the loft collecting dust!”
Sadly we heard no more, and never did see the article or said screenshot!
However more recently we found that mentioned in an interview in CCI 87 December, there was a game being developed by Simon called Derek Bell’s Le Mans for Martech. But Simon does not recall this game at all.
Simon did however confirm that he developed a car routine and that the stories were true about it being a dig at Mark Kelly and his Turbo Outrun game. Nothing came of it in the end, as Martech went under before it could be finished – and some parts were believed to be unworkable to do anything decent.
For years we have tried to locate the demo, and it was looking unlikely that we would ever find it. Whilst in 2015 and porting many of Ashley Routledge’s C64 disks, we found a demo disk which Ash and Dave must have taken to a C64 show. It contained demos of Hotrod and other bits, probably to showcase what they could do to various companies. Interestingly, on the other side were two large frozen files – One called Trivia Quest, and another being Road Routine.
We confirmed that (although corrupted), Trivia Quest was a freeze of Trivia – The Quest, a title by Simon Nicol. Road Routine was corrupted too and we are having trouble, but could see bits of a dashboard – but the freeze was the exact same method. It triggered a thought that this could be Simon’s road routine!
Sadly the disk was heavily corrupted, and after several attempts to read the two files – the magnetic layer got a transparent line through it – where the disk had worn away. Luckily, one last final read managed to get all of Road Routine off the disk. The demo isn’t playable, though you can control the dials and the gearshift – but not do any actual driving. It looks great though!
We passed on a copy to Simon, who confirmed that this was indeed his routine! He hadn’t seen it since 1989! This was all that was ever produced, and it must have been swapped with Ash at the event, and may have been the last copy in existence. Just pure luck that Ash kept the disk!
What is even more intriguing is that Simon’s friend Ron Shirley (who helped Simon produce a Nigel Mansell loading screen) believes this is actually the road routine from the C64 edition of Nigel Mansell GP due for release by Martech. Could it be? Hopefully Simon will clarify very soon!
Contributions: Simon Nicol, Said, Robert Wilson, Ashley Routledge, Jazzcat, Martin Pugh
Details on road techniques, in particular for this very car game that Simon was developing:
Simon Nicol, the talented programmer behind the C64 classics Mega Apocalypse and Crazy Comets, has some interesting suggestions on drawing convincing hills. First, have a heightmap which associates each Z with a height. Then, for each Z in the Z Map, find the height in the heightmap. Finally, bump up the Y of the current line by the height multiplied by the scaling value. If the line is above the last-drawn Y position, repeat the current line until it is reached. As in the previous “fake” method, if the line’s final Y position is below the last-drawn Y position, it is not visible and should not be drawn.
The advantage of this method is not only that the distance to each point on the hill is mathematically correct, but the hills can be very detailed as well.
Roads on the Commodore 64
This information is, again, courtesy of Simon Nicol, who figured out a great technique for fast roads on the C64.
First, some background: On many console systems, a pseudo-3d road can be done by drawing a straight road with tiles and scrolling per-line to make it appear to curve. However, this turned out to be too slow for a full-framerate game on the Commodore 64.
Simon’s engine instead uses C64’s bitmap mode and uses a fast-fill algorithm. His fast-fill algorithm uses self-modifying code to speed up draws: Each line is a series of per-pixel stores which specify an address in video memory. At the point though that the color has to change, the code is altered. The store command is turned into a load command, and what was the address for the store is turned into the literal number of the new color.
One major advantage of this technique is that sprite multiplexing techniques to show more than eight sprites on the screen can still be used. In Simon’s words: “Offsetting the horizontal scroll to get a stable raster effect would involve manipulating register $D011.
The raster IRQ at $D012 would flicker badly otherwise depending on the number of sprites on that particular raster line. To have any sort of smooth display would involve locking up the processor to get the timing just right, or by not using the screen graphics and just changing the border colour. This which would be solid and flicker free, but there wouldn’t be road visible on the screen because it would have to be switched off. These smooth, per-line border colour changes were used chasing the raster down the screen, and it could also be used to ‘hold off’ where the top of the screen could be displayed. It was called $D011 hold-off or sometimes FLD for flexible line distancing (the technique used to eliminate VIC’s bad lines).
From Robert Wilson, and from “¦ http://www.gorenfeld.net/lou/pseudo/
22/09/15 – Remains fully recovered – case closed!