Sunday, 15 November 2015

Defense and Nostromo from the NEC PC6001: An Exercise in Forensic Retrocomputing

In my ongoing search for Basic game ideas I have found that trawling through the web for materials on machines sharing the Motorola MC6847 Video Graphics Display (VDG) chip to be useful. One particularly useful system for this has been the NEC PC6001. Over the years I have found several good game ideas for that classic Japanese 8-Bit computer. Since it uses a variation of Microsoft Basic sometimes even the source code can be recycled. However, since the PC6001 (known as the NEC Trek in North America) implemented quite a number of advanced features for the VDG and also had a very good sound chip there are often elements of the code that cannot be easily translated. Also, I can't say that a huge number of Basic programs can be found on the Net for the system, which indicates that there might not have been very many made for it. This is perhaps because there was a large number of machine language games for the system, which you can find videos for on YouTube. So it was a pleasant surprise when I came across a video by Akky Han sharing one of his own 8-Bit Basic programming efforts from "back in the day:"
The 32 character screen width gives away the fact that a variation of the MC6847 VDG lies at the heart of the system. However the character set is clearly custom. The characters use the entire 8X12 pixel space allocated for each character on a text screen and are taller than the regular built-in 8X8 characters mapped into the 8X12 spaces used on the Coco, MC-10 and most other machines. Also, the lines are from a special set of line drawing characters, which are also not available on Cocos and MC-10's. Still, the basic idea was doable, and unlike the original didn't require any machine code (evident from the source code that Akky Han helpfully provided) to help with the scrolling. In the following version for the MC-10 it's pure Basic baby!
You can see that I have used the course line characters possible using the standard Semigraphics 4 mode colour block characters. Also, the entire bottom half doesn't scroll, but only the actual pathway. I also used two red graphic characters representing "spaceships" or as I thought of them: "drones." I wanted to keep a connection to the original program, so I still called the game "Defense," but I thought of it as being a dual display of an operator controlling two drones simultaneously. If Akky Han had been programming it today, who knows, he might have called it "Drones."

I don't recall exactly how (probably a Google search on "NEC PC6001 Basic Game") but I stumbled across another graphic image of an old NEC PC game called "Nostromo."  It was an animated GIF so I was able to see a little of the game play.
It was just enough information to reconstruct a variation in Basic.  I don't know for sure, but I think the original may have been a machine language game. The following image posted along with the game screenshot looks like either a cover shot of a magazine for the PC6001 or just the box artwork of the original game.  If it's a magazine then maybe its a type-in Basic program.
Notice again in the screenshot the nifty line drawing custom character set used to draw the boxes and the 4 items in the form of the 4 card suits. Also notice the fancy colours added to the regular MC6847 and the Japanese Katakana characters. In fact, I was informed on the Yahoo MC-10 group recently that it was actually a very unique variation of the MC6847 used in the PC6001 called the M5C6847P-1, which adds many advanced functions. Still, the fact that it uses the 32X16 text screen means it is relatively easy to implement a similar game just using Basic and the MC-10. Again, I don't know if the original game was machine language, but if the animated GIF is any indication, it wasn't particularly fast. There were some posts on the Yahoo group that suggested that there are various reasons that the NEC PC did not have the fastest execution speeds in either Basic or machine language. However, the game that I was able to create is fairly fast thanks to the relatively speedy version of Micro Color Basic that came with MC-10 (about 15-20% faster than stock Coco Color Basic):
If any Japanese users of the NEC PC-6001 should ever run across this blog and know about the original "Nostromo" program in more detail, I would really appreciate if they could drop me a line or make a comment on my attempt at a re-make.  Whether it is an accurate representation or not, I hope it is an enjoyable game.