WARNING: This is my first time flashing FPGA, guide below at your own risk! Not responsible for bricked device!!
Here is how I ended up successfully upgrading firmware on mac C64 component mod, inspired by a post on Commodore 64/128 Facebook group.
First, I got a used Altera USB Blaster on eBay. Another affordable NEW option supported by Quartus Prime is the Terasic USB Blaster, available for $50 from Mouser & DigiKey in USA:
Next, I followed this guide to install VirtualBox, Ubuntu and Quartus Prime on my Mac Mini. NOTE: I would make 30GB minimum VM. The installer files are a couple gigabytes, and once installed it takes up like 10GB on the disk – plus space needed for Ubuntu.
Only differences were I used latest Quartus Prime Lite (v21.0) and Ubuntu 18.04 LTS – latest version that Quartus Prime supports.
I used “Lite” edition of Quartus Prime, and instead of downloading the huge 10GB “Combined Files” version, I went to Individual Files tab on Intel’s website and downloaded only “Quartus Prime (includes Nios II EDS)” and “MAX 10 FPGA device support” (the kind of FPGA used by the mod). Put them in the same folder, and the installer will find the MAX 10 FPGA files.
One extra step I had to do in the guide was run ./jtagd prior to ./jtagconfig near the end of the guide, right after creating sym link for libudev. I ran it from within ~/intelFPGA_lite/20.1/quartus/bin directory – same location as ./jtagconfig. Its possible if I’d just restarted Quartus and/or VM that jtagd would have started up on its own (since its a daemon) after the permissions fix and symlink fix outlined in guide above.
Firmware can be found here: https://github.com/c0pperdragon/C64-Video-Enhancement/releases – you need to grab the .pof file.
Next, go to Tools->Programmer in Quartus Prime and set it up to look like my screenshot 🙂
You want to orient JTAG cable like this, there is a very small marking on board indicating which end of JTAG connector is pin 1:
One question I had is if the C64 needs to be powered on during firmware upgrade – or does JTAG provide power to the FPGA? A photo on Facebook from someone who knows what he is doing had C64 powered on, so I did this and it worked. But this is one question I still have.