In addition to my popular Matchbox CoCo 3 and Mr (MiSTer) CoCo 3 clones, I’ve accepted the offer to port my CoCo 3 core to the MiST system. To follow my progress live, visit the MiST CoCo facebook group.
In 2019 after I was asked by several people if I would port the CoCo 3 to the MiST system, Bruno Silva organized a fund where numerous members of the MiST community contributed towards a MISTICA FPGA system in exchange for me doing the port of my popular CoCo 3 clone. My condition was that I will not be rushed or be considered to be working for anybody, and to just be patient and let me do this port.
Even though the MISTICA rig is nice, it isn’t as developer-friendly as the MiST . The two systems are actually quite similar since MiSTer is based on the original MiST system. As the CoCo 3 core progresses I’ll be able to tell which features of the Mr CoCo can also be enjoyed in the MIST CoCo. You see, the MiST uses the Cyclone III FPGA which has les I/O pins and internal RAM while the MiSTer uses a far superior Cyclone V SoC. Thankfully I was able to ditch the 512KB of FPGA RAM of the MiSTer CoCo last year and start using the SDRAM chip as RAM which worked out fine. For this MIST system the SDRAM method is also required, so at least that hard work is already done.
See what I’m going through at the moment to get the MiST CoCo port done…
- 1/23/2020 – The first attempt at this port using several very messy MiST core projects became corrupt. I never give up, so it’s back to square 1. The MIST HT1080Z project template was the most organized and easiest to understand the hierarchy and is initially being used as a base to build up the CoCo 3 core. The first thing I’m doing is adding the wiring up my GIME component to the top entity, removing the old HT1080 video component then wiring the GIME’s VGA signals to the mist_video module which should handle the OSD mixing, etc. I just want a video signal first so I can then “see” what I’m doing for the rest of the port. More unused HT1080 modules will be replaced with the CoCo modules as I progress.
- 1/24/2020 – I’ve wired up a simple VGA test pattern output module to the CoCo core so I can determine the requirements for the MiST video modules (mixer, OSD, scandoubler, etc.) while the CoCo core is small enough to compile quickly. The first thing I’ve noticed is that my video is shifted to the left and off-screen a bit while the right side of the screen appears to show some of the blanking area, while the OSD menu is shrunken to half the normal height as if it’s turning off a scandoubler mode for the OSD or something. Other cores that I’ve compiled are centered correctly and the OSD is correct. I need to determine what’s wrong early in the project before I start adding the GIME which generates a 720×480 ~60hz signal.
- 1/24/2020 – I’ve got the OSD showing up properly and the scanlines option working. The overall video is still shifted too far to the left. Once I get the video aligned correctly I feel safe wiring up the GIME even if it initially outputs garbage characters.
- 1/25/2020 – Trying to get the GIME to output video.
- 1/26/2020 – The MiST API was giving me so much trouble with my core’s pre-scandoubled signal that I reverted back to the native 15.75 Khz mode of the GIME module and am now using the MiST scandoubler which seems to be correcting the “ugly” signal it didn’t like.
- 1/27/2020 – Success! The video, CPU, ROMs, RAM, are working. In other words, the CoCo 3 boots up and I have the OK prompt. The keyboard, floppies, audio, joysticks need to be wired up, and the video needs to be centered.
- 1/27/2020 – The keyboard is working. The VGA video looks stable and is working for numerous testers who tried multiple monitors each. The CoCo screen is centered well and the feel of a real CoCo is in the air. I’m still hooking up other components slowly and testing each one before getting ahead of myself and breaking the whole thing. Patience, my friends.
- 2/1/2020 – ROM Pak support up to 16K. Currently Cyclone III SRAM is used for the ROM images but soon I’ll use the SDRAM and allow the 32K and 128KB CoCo 3 game paks to work.
- 2/1/2020 – We have stereo sound! Orchestra-90CC is supported automatically and transparently. Single-bit sound output which was popular in some CoCo 1/2 games works perfect. 6-bit DAC sounds perfect. The YM2149/AY-3 is being wired very shortly.. it’s already there from the MiSTer CoCo 3.
- 2/2/2020 – Trying to wire up the floppy controller and analog joysticks.
- 2/14/2020 – Cassette deck support added (no motor control). Using the Mistica board’s mini phono jacks, connect Ear to Ear, Mic to Mic, Speaker to Monitor, In to In, Out to Out, etc. Don’t criss-cross the cables. On the CoCo type AUDIO ON to hear the cassette audio which can really be any audio source with enough volume. We’ve been successfully loading and saving files but will report more on this if anything changes. Now you can use a tape-to-disk utility and preserve your tape files onto virtual disk images!
- 2/15/2020 – Port to SiDi FPGA system successful! During the test, several features were unwired but will be added back shortly.
- 2/17/2020 – Attempting to move away from using the FPGA SRAM to hold the ROM Pak/Disk ROMs and move them into SDRAM without interrupting the CPU or video. This will let us play the larger, 32K/64K/128K game paks like RoboCop, Predator, Rampage, etc.
- 2/18/2020 – Success! All CoCo 1,2,3 game and program paks should now work. Due to this being a port from the MiSTer version which was able to use 512KB of FPGA block RAM for the CoCo ROMs, the Cyclone III crippled any chance of doing that with the MiST, so I have now made the clone all-SDRAM which also has the added benefit of making it portable to more FPGA systems.
- 2/28/2020 – A 4-voice MIDI synthesizer has been added along with a 6850 ACIA (or MIDI Pak). The synthesizer currently is made up of the musical component of an AY-3 synthesizer which gets its orders from a 31250 bps serial MIDI decoder that can receive from any serial port (bitbanger, 6551, 6850, etc.). Soon expect to also use your MiST CoCo as a live MIDI synthesizer using the serial port jack. As of today the MIDI synthesizer is in a very basic form.