One of the all-time best ports of Donkey Kong on a 1980s home computer was a clone calledDonkey King (later renamed to The King). Although we didn’t know this until years later, it was authored by Chris Latham, who also created the first CoCo game to require 64K – The Sailor Man (a clone of Popeye).
Last week, the gang over at CoCoTalk(the weekly video chat/interview show) started a game contest where everyone is invited to try to set a high score on some CoCo game. The first game chosen was Donkey King, which is quite fitting since it’s one of the greatest CoCo games ever. Unlike most (all?) other versions of the day, it features all four levels as well as the intermissions (see the Donkey King link above for screen shots). It also plays amazing well and is as frustratingly difficult as the arcade game it was based on.
For those interested in trying it out, you can go to the JS Mocha CoCo Emulator webpage (the Java Script version of Mocha, which was original a Java CoCo emulator). It is one of the games available there.
You will find it in the second column. Just select it then click Load Bin. It uses the right joystick, I believe, so you can select “Dual Key R” from the Joystick config and that will map that to the keyboard – Arrow Keys and Space Bar (to jump).
If you want to hear the sound effects, you have to checkbox the “Sound” option in the lower right of this screen.
John Linville recently announced a CoCoFEST! Challenge on the CoCo Crew Podcast Facebook page. The idea is to start and complete a new CoCo project between February 15, 2020 and April 1, 2020 (day after Valentine’s Day through April Fools Day). The project doesn’t even have to be technical (he uses the example of designing a dust cover for a Multi-Pak).
I’ve been thinking about this since I have dozens of past experiments that could easily turn into new projects. But I also thought it might be an excuse to start “yet another” experiment specifically for this challenge.
HuskyLens and case from DFRobot.
Recently I took possession of a HuskyLens from DFRobot. It is an AI camera device that started out as a Kickstarter project last year. The tiny gadget includes a camera, touch screen, and AI software that can do things like:
Object Tracking – teach it what an object looks like, and it will track its position when it is in front of the camera.
Face Recognition – teach it a face and it will identify when it sees that face.
Object Recognition – identify built in objects (dog, cat, etc.) or teach it to recognize new ones.
Line Tracking – identify a line (useful for a line following robot).
Color Recognition – teach and identify specific colors.
Tag Recognition – identify low-resolution QR-code style tags.
I acquired a HuskyLens specifically for Halloween projects, but since it communicates to a host computer over serial, it could be interfaced to a CoCo using a cheap TTL-to-RS232 adapter like my CoCoWiFi and SirSound projects use.
HuskyLens in case, attached to mount.
Since the slowest speed the HuskyLens firmware communicates with is 9600 baud, I’d have to do this using an RS-232 Pak under NitrOS-9 (so I could easily do it in BASIC09 or C), else I’d have to resort to assembly language under RS-DOS. If I go the assembly route, I’d have to see what code I could find to handle 9600 baud via bitbanger, else the RS-232 Pak would still be required.
Bitbanger is quite out of my wellhouse, since the only bitbanger code I’ve ever worked with was a remote terminal driver published in Rainbow that I modified to add features to. The RS-232 Pak I could probably handle since my first commercial program was a MIDI Librarian for a CoCo MIDI Pak and I wrote code for a much faster baud rate (31,500).
It wouldn’t be pretty, but I think I could make it work.
The question is … what does one do with an AI camera hooked to the CoCo? Perhaps…
CoCo Face ID – auto-log in to NitrOS-9 by face. (Not a security feature, since a photo would also work, but still neat.)
Visual Game Launcher – hold up a ROM-Pak and have it launch the program off of a CoCoSDC drive image.
Gestures Game – use gestures (rather than a keyboard/joystick) to interact with a game.
Thanks to Rob Inman for sharing this link over on Discord. They have an RS-232 to WiFi module available, based on the ESP8266 module. They chose to include my pre-configured fork of Bo Zimmerman’s ZiModem (with the settings for standard RS232 rather than Commodore serial). Cool.
Microsoft Visual Studio Code for Mac (left) with extension to color code BASIC code for easy loading into Xroar emulator (right).
As mentioned elsewhere, there are some CoCo-related extensions available for the Microsoft Visual Studio Code editor. I did not realize that MS released this editor for Mac and Linux as well as Windows.
In the 1980s and 1990s, there were many computers made that used a 15Khz analog RGB signal. These included the CoCo 3, Commodore Amiga, Atari ST, etc. There were a number of monitors to choose from to use on the CoCo 3, with one of the most popular being the Magnovox (remember them?) 8CM515. It supported RGB-A but also had composite audio/video so you could get the old CoCo 1/2 artifact colors when needed.
I thought the days of 15Khz was long gone. We have had a few solutions for hooking up a monitor to the CoCo 3, including an FPGA project, Cloud-9’s VGA converter, and the Switch-a-roo cable with a SCART converter box.
But Alexandre Souza on Facebook let me know they use all kinds of LCD monitors in Brazil, and pointed me to this list of modern monitors that still support 15Khz analog RGB:
One of the highly recommended monitors on the list is on Amazon for $139. It might take just as a cable to make it work with the CoCo, or possibly a bit of signal inversion (just like the old days).
I may also be selling my SuperIDE interface, though I am currently using it just as a realtime clock. I need to find another clock solution before I let that one go.
2019-05-10: Added a link to CoCoWiFi article, and uppercased DELUXE.
TLDNR: See the video at the end.
In 2015, Sub-Etha Software rocked the retro world with the announcement of CoCoPilot. (And by “announced” I mean “posted a blog article about how to install DriveWire on a Raspberry Pi. And by “rocked” I mean “posted a block article about how to install DriveWire on a Raspberry Pi.)
SirSound and CoCoWiFi product flyer.
In 2017, Sub-Etha Software raised the bar again by announcing SirSound, the serial port multi-voice sound “card” for the CoCo. (And by “raised the bar” I mean “posted another blog article”.)
In early 2018, Sub-Etha Software released details on CoCoWiFi, and showed you how to build your own for under $10 instead of waiting for Sub-Etha Software to actually manufacture them. (And by “released details” I mean “posted yet another blog article”.)
PreciousPak concept artwork.
In late 2018, Sub-Etha Software shocked the CoCo Community with the proposal to end all proposals: PreciousPak. (And by “shocked” I mean “posted a block article about something I think would be really cool but don’t have the hardware skills necessary to make happen so I hope someone else will do the work for me, please and thank you”.)
And now, in 2019, Sub-Etha Software is proud to announce…
CoCoPilot DELUXE
CoCoPilot DELUXE is the result of dozens of man-minutes of thought on the subject of “what should I do with all the Raspberry Pi stuff I have on my desk?”
Much like how PreciousPak solves all our problems when it came to CoCo cartridge add-ons, CoCoPilot DELUXE strives to solve all our problems when it comes to CoCo bitbanger serial port add-ons. (And by “solves all our problems” I mean “wouldn’t this be fun to play with?”)
With CoCoPilot DELUXE plugged in to your CoCo’s built-in Serial I/O port, you will have:
WiFi Modem – Use any existing CoCo terminal program, and be able to telnet, ftp, etc. to internet servers just as easily as you used to call in to dial-up BBSes in the 1980s.
SirSound – Use the simple BASIC “PLAY” command strings that you already know and love, except add a “#-2,” and change PLAY to PRINT, and then you can play multi-voice background music while your BASIC program does other things.
DriveWire Server – Use NitrOS-9, SDC-DOS or the special DriveWire version of HDB-DOS to access virtual floppies over the serial port. Under NitrOS-9, you also have access to other DriveWire features such as virtual printing, virtual MIDI, and virtual reality. Except maybe not that last one.
Print to PDF – Print from any CoCo program (including graphics programs such as CoCoMax, ColorMax, Max-10 and Max Headroom) and have the dot matrix output be rendered as a PDF file you can then print on a modem printer. It can even print the old green bars and fake tear-off strips with the holes in it, just like the olden days!
CoCoPi Emulation – This portable device can also be expanded with an option USB keyboard, USB mouse, and HDMI monitor to act as a virtual CoCo running various Color Computer emulation programs.
…and more!
In this list, there are a few “new” things we can’t currently do. Printing from CoCoMAX 3, Tandy Home Publisher or any other graphical print software is not currently possible (is it?). A new layer would be written to interpret common printer “driver” codes (Tandy, IBM, Epson, etc.) — including color — and render the incoming data to an image that represents all the dots the printer would have printed. (Heck, we could even emulate the old plotter printer thing.)
SirSound could work the same as the hardware SirSound (API compatibility), but could be expanded to do more voices, and use better sounds. The Pi has simple libraries that can product multi-voice music.
WiFi Modem would be similar to the CoCoWiFi (Zimodem) project, but the “AT” Hayes Smartmodem commands would be different since we’d just use one of the many “serial to network” programs/scripts readily available.
All we need is a bunch of software, an RS-232 interface for the Pi, and some switches to select which mode you want the CoCoPilot DELUXE to be in.
This was shown off last weekend at the Chicago CoCoFEST! Remember that this is a 1986 computer with no sprite hardware, no sound chip, and only 16 colors on screen at a time (out of a palette of 64), and running at 1.8mhz. And Simon breaks all of these rules.
2019-05-03: I’ve had a report of my build not allowing you to type. I have seen this before, and am investigating this. Anyone else having issues? Also, I missed something in my merge which may have affected over-the-air updates (AT&U). I am pushing out a new build. Also, added a screen shot showing 3.5. Also, note about no ESP32 build.
2019-05-04: I started over with Bo’s unmodified source code, then did my changes to zimodem.ino and zcommand.ino. I am still seeing the issue where, via USB serial connection, I can’t type of my TTL-to-RS232 adapter is hooked up. Without it, it works fine. I need to do some testing via the CoCo with it’s bitbanger and RS-232 Pac ports to see what behavior I get. In the meantime, I appreciate your feedback.
Yesterday I updated my fork of Bo Zimmerman’s ZiModem. My custom fork is 100% his code, with only some configurations changed to make it default to standard RS-232 signals instead of inverted like the Commodore uses. (Basically, it’s what his “Guru modem” firmware defaults to, and the over-the-air update changed to point to builds on my service. Guru modem only builds for ESP32, so eventually I just need to figure out how to modify the project so it builds Guru modem for ESP8266, I think.)
NOTE: I only built for the NodeMCU-12E ESP8266 module and the generic ESP8266 (whatever that is) module. I did not have ESP32 libraries installed so there is no build for that currently.
If you want to pull the source code and build it directly through the Arduino IDE, you can find my fork here:
I also wrote up some instructions for updating that firmware from a PC, Mac or Linux machine without having to build it with the Arduino IDE. (I had to use these steps myself, since I couldn’t remember how it worked.)
NOTE: If you have the ESP8266 wired up to a TTL-to-RS232 adapter, you may find that firmware updates will not work. On my device (using the full-signal TTL adapter and a NodeMCU ESP8266), I had to unplug the 3.3V power wire that goes from ESP8266 pin to the TTL-to-RS232 board. That was enough to make firmware updates work. I’m still not sure why having the TTL adapter hooked up affects loading firmware over USB, but apparently it does.
A final option is to use the ZiModem built-in over-the-air update capability, which we haven’t gotten to test yet since this is the first time I’ve updated firmware for the CoCoWiFi fork. That is done through the command:
AT&U
That should grab the latest build on my server. I believe it reads a .txt file from my server to get the version number and builds the filename out of that, then downloads that filename. You can also specify the version manually. Currently, there is a 3.4 build and a 3.5 build available on my site.
AT&U=3.5
Please let me know if this works for you. You should see the startup banner (1200 baud) show 3.5:
ZiModem (CoCoWiFi config) 3.5
Original instructions on this WiFi modem for $10 can be found here: