C64 Cartridge Dumper: hardware version 2 testing

Today I finally managed to assemble one of the new C64 Cartridge Dumper devices I had re-designed a while back to use a Pro-Micro. I had the PCB manufactured weeks ago, but due to job-related commitments I never got around to building one of the new devices.

C64 Cartridge Dumper: hardware version 2 by Luigi Di Fraia
C64 Cartridge Dumper: hardware version 2

Well, the good news is that I tested the device with what I understand to be an Ultimax cartridge, Jupyter Lander, and it worked fine.
In fact, I was nervous about the fact that the data bus wiring is a bit awkward:

  • Bit 0 is PD3
  • Bit 1 is PD2
  • Bit 2 is PD1
  • Bit 3 id PD0
  • Bit 4 is PD4
  • Bit 5 is PD7
  • Bit 6 is PB4
  • Bit 7 is PB5

As you can appreciate, an 8-bit value read from the data bus has to be read from two different ports (PORT D and Port B) and bit values have to be shifted into position. A similar wrangling has to occur when writing a value to the data bus, for bank switching purposes.

The reason I went with a more complicated firmware, compared to the breadboard prototype I had used to develop the firmware, is that the PCB routing is much simpler 🙂

The next thing I did was to check whether using a 5V MCU instead of a 3.3V one makes any difference when driving the bank switching circuitry for gmod2 cartridges. Luckily, Andy had lent me his copy of “It’s Magic II” a while back, so I have material to test.

I was indeed able to appreciate that bank switching appears to be behaving differently with the new hardware. Here’s a comparative image, with the left side showing a bank switching taking place correctly at dumping time with the new hardware, while the right side shows a previous attempt:

C64 Cartridge Dumper: gmod2 dump comparison by Luigi Di Fraia
C64 Cartridge Dumper: gmod2 dump comparison

The bank switching logic doesn’t yet seem to be correctly driven though, as dump contents repeat at $4000.

I am starting to think that the bank switching hardware in gmod2 might require a signal edge on the Phi2 line to trigger, where I just pull it up with a resistor.
I’ll try to hack my own circuit to e.g. route IO2 to the Phi2 line and cause an edge that way. If that works for gmod2, in general I would just need a NOR port to combine IO1 and IO2 on the inputs and use its output to simulate Phi2.

Of course, if anyone knows the bank switching details for gmod2, I’d be happy to read what they have to say 🙂

Stay tuned for more!

About Luigi Di Fraia

I am a Senior DevOps Engineer so I get to work with the latest technologies and open-source software. However, in my private time I enjoy retro-computing.
This entry was posted in Retrocomputing, Reverse Engineering, Technical and tagged , , , . Bookmark the permalink.

9 Responses to C64 Cartridge Dumper: hardware version 2 testing

  1. Grant Collins says:

    Hello

    i am currently looking for a way to dump a gmod2 binary and i can confirm that the gmod2 is based on ocean format cartridges plus save data option

    • Hi Grant. Thank you for taking the time. Yes, we know that the bank switching for gmod2 and Ocean cartridges is triggered the very same way in code (using the location at $DE00). However, it seems that the circuitry in gmod2 might be slightly different. Specifically, it *might* require a level change on the Phi2 line, which is not required for Ocean cartridges (Phi2 is always kept high by means of a pull-up resistor in my cartridge dumping hardware). Without any insight on the actual circuitry used in gmod2 for bank switching it’s hard to tell.

  2. retrowizzard says:

    Thank you so much for doing this project.
    I’ve been dreaming of a C64 cartridge dumper for a long time.
    Would it be possible that I can buy one of these from you?
    I’m have an ultra rare ocean cartridge that I believe the widely available rom has been dumped in a wrong way.
    With this device I could redump it without destroying it and preserve it for the future.

  3. retrowizzard says:

    The problem is with the game “Double Dragon”.
    In the rom available on the internet (or rather all the roms) the second fire button for the C64GS isn’t working. Double Dragon is one of the few Ocean games that support two fire buttons.
    In the physical cartridge the second fire button is working properly (jump).
    The game is so rare that I’d rather not run the risk of opening it to desolder the chips because there’s a high risk of destroying the label and cartridge in the process.
    This is where the dumper would come in to save the contents of the game cartridge.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s