Electronics, coding and hacking. And ADD.

« Working on a GUI. C64FC: Current state of affairs »

C64FC is done!


A few years ago I had an idea: emulate a 27C256 on an AVR and use it as a programmable C64 cartridge. The goal was to make C64 development fast, fun and streamlined. The emulation part was a bit too demanding for the AVR I played with at the time, so I had to think bigger.

As time went by, the cartridge also went though many stages of development, a few of which can be seen below. I've done mistakes, been too quick to place orders, spent countless hours pulling my hair trying to figure out why it wouldn't work, and so on. I guess many of you have been though the same at some point in time.

C64FC development history

A few days ago I had a breakthrough getting the device to identify as an USB HID device, and yesterday it all just "clicked." The device works and transfers images without a hint of problems. Release candidate 2, with its minor hardware patches, is perfect:

C64FC RC2 in half a cartridge shell

Since the cartridge identifies as a HID device, no drivers are required! The client software automatically detects it on the USB bus and communicates with it. File transfers are so smooth and fast you have to see it for yourselves:

The 800MHz VIA C7 laptop used in this demonstration takes 1.4 seconds to initiate communication, transfer the file and reset the C64. On my slightly faster Core2Duo workstation this is completed in 1.1 seconds. Not that it really matters, but it's worth mentioning.

Even though I do not consider it necessary, I will drag the cartridge through phase RC3 to let a handful of betatesters give it a go. Meanwhile, I will be working on a Qt GUI frontend which will allow people to play with this from Linux, Mac and Windows.

Have a merry xmas! I know I'm having one :-)


to C64FC is done!

Feed for this Entry

  • …d Tips for Your Digital Needs C64FC Posted on by Over at , Stian Soreng recently announced the completion of the C64FC. It is the modern solution to C64 software development. By connecting to a development PC through U…


  • Wow, how cool is this!

    I have just brought up my old C64 to start using it again after 20+ years in the basement.
    Been looking on a few SD2IEC-versions but have not placed any order on one yet.

    What would it take to be a betatester for this awesome project?

    #823 | Comment by zippiz on Dec 25, 2014 07:17pm
  • zippiz: Thanks for the kind words, but I must stress that this is something completely different than the SD2IEC and U1541. This is a *cartridge* emulator, and will never replace the 1541 or support D64 files. Currently it only emulates 8K cartridges, but 16K's are planned. Single file PRG support (greater than 8K) will be supported, though.

    As for betatestling I'll have to see how many boards I'm ordering first... :)

    #824 | Comment by admin on Dec 25, 2014 08:25pm
  • Amazing job! Well done.

    I understand that this is not the main goal of the project, but would it be possible to make cartridge program execution steppable on the C64 from the PC? I think there is a way to pause the main CPU execution from the cartridge port. I'm affraid reading the current registry and RAM status with the AVR is just too much.

    #825 | Comment by István Nagy on Dec 25, 2014 10:26pm
  • István: The CPU's RDY line is not available from the expansion port, so that'll be difficult. Unless you add a wire and a hook directly to the CPU, but now we're moving way out of the original intents for this cartridge. But it's a very good idea indeed!

    However, patching the (running) code byte-for-byte is possible right now.

    #826 | Comment by admin on Dec 25, 2014 11:04pm
  • please add me to a newsletter or beta list if possible, I have been looking for a solution like this for a long time, as I want to code 6510 again and moving through USB on my Ultimate2 is just a bit too tidious, so it stays in Vice all the time.

    Sounds amazing, really interested.

    Thanks for building something this cool


  • Awesome job!
    I would love to apply as beta tester and to give some suggestions to how the gui could be streamlined for end users.

    Also wanted to invite you to a great Facebook group where we can find many hardware hackers and service techs for commodore and amiga. It's mainly Scandinavians in the group but we are honored to have many demo scene folks, coders and hardware hackers as myself.

    Link posted to thos blog has recently claimed its fair share of questions ;)

    My thoughts, an more advanced version of EasyFlash 3?
    Kernel support and dead test (booting from self) features overriding internal kernel?

    Kind regards and merry Christmas from sunny Sweden!
    Ho ho ho!


  • Thanks for the answer!
    Can this emulate cartridges which have buttons on their back? Or freezer cartridges have more complex logic inside not just a single ROM chip?

    #829 | Comment by István Nagy on Dec 26, 2014 08:36am
  • Kent: I've asked to join the group, see you there once I get approved!

    #830 | Comment by admin on Dec 26, 2014 10:38am
  • Scarzix/Offence: I know *exactly* what you mean, and this is why I wanted to develop this cartridge in the first place. Get code in the C64's memory as fast and efficiently as possible.

    #831 | Comment by admin on Dec 26, 2014 10:41am
  • Please but me down for beta testing if you have any extra boards. If not please let me know when you go to market with a final version. Thanks.

  • Everyone: Looks like there's enough interest to order a new batch of boards. I'll do a little interest poll in a few days to see how many I should order.

    #834 | Comment by admin on Dec 26, 2014 06:36pm
  • Looks like it's possible to pause C64 execution using the DMA line of the cartridge but it requires some logic

    Can you estimate price for the beta boards?

    #835 | Comment by István Nagy on Dec 29, 2014 06:58pm
  • István: Interesting! I was not aware that pulling the DMA line low also affects RDY. I will definitely look into that!

    Also, as for price, it's hard to tell. I'm going to place an order for new PCB's soon, and will at the same time estimate a price for one beta board.

    #836 | Comment by admin on Dec 31, 2014 10:42am
  • Really Nice project! I was waiting for something like that since 1994!!!
    Would you consider just 8/16kb cart emulation? or could be possibile for Kernel support and dead test overriding the internal kernel? It would be very nice to have a bigger ram space to use (say 1MB or more).
    Someone else mentioned "tp make cartridge program execution steppable on the C64 from the PC"... wiring a RDY signal from CPU to the cart should not that difficult... but it would be