About the game

Donkey Kong 3: Dai Gyakushuu (ドンキーコング３ 大逆襲 ) or DKDG, for short, was released in October ’84 for the NEC PC-8801, PC-6601, and Sharp X1 computers by Hudson Soft. Not unlike other Nintendo spin-offs developed by Hudson in the mid 80s, DKDG was created as sort of a sequel to the Donkey Kong 3 arcade game. There are 20 unique stages, which loop around upon completion until game over. The game has no well-defined storyline. Apparently, according to the manual, Hudson was interested in hearing the players’ interpretations about the progression of the stages, and wanted them to send in their own stories. In other words, the story is totally subjective! The game’s mechanics are somewhat simpler than the original DK3 arcade game; Stanley no longer has the ability to jump and is free from the responsibility of defending his plants. This game is all about fighting off DK. The point is to clear the waves of incoming enemies, like any typical shoot ’em up. You still have to make sure the parachuting DK doesn’t make it to the ground, or else!

Similarly to the the other Hudson-Nintendo games, the X1 version of DKDG runs really smoothly and does so with a coherent palette, likely making it the definitive version. Prior to this endeavor, the game has been unavailable to the public on all platforms it was released for, and there has been no footage online of any levels for the Sharp X1 version past level 7. A possible reason for the game’s rarity may be that it was poorly advertised. It was first mentioned in the April ’84 issue of Micom Basic Magazine and a few other magazines, but the ad didn’t include any screenshots, and the logo strongly resembled the arcade game’s logo, causing readers to overlook the ad.

The story of this project

I heard about this game from a FamicomWorld forum post made by user aitsu124, who first issued the rallying cry on several sites to preserve the game and make it available to the public. After learning of the game, I remembered the past times I’d seen photos of the cover without even looking twice. I thought it was just a plain old DK3 port. How could I have missed that? After some back and forth, we agreed that I would bid on the game.

Screenshot of the auction: a hard-fought battle

Aitsu124 had already started gathering money for the dump, and, after winning the auction, I was able to obtain a substantial sum from contributors to help pay for it. As a result of the publicity, the auction ended for a whopping 44.5k yen, about 5 times more expensive than the previous listing. Oh well. Now that the game was secured, it was time to think about dumping it.

Looking first at the basics, I started reading about floppy drives and how the disks were set up. I was able to figure out that the 3” disks in question were Maxell CF-2D type disks with a 320KB capacity, similar to the X1’s 2D format 5.25” disks. Each of these disks is typically split into 0–39 cylinders for a total of 80 tracks, with 8 sectors per track and 512 bytes per sector. Note that these aren’t your typical 3.5” 1.44MB disks. They’re not nearly as well-documented, and the equipment necessary to read them is much harder to find. The reason 3” disks are such a pain to deal with is because of how quickly they became obsolete: the casings were very expensive to produce, pushing major companies to adopt the 3.5” diskettes, thus making them the de facto standard. Not only are these disks non-standard, the file formatting is also proprietary to the X1. In conclusion, reading the disk contents might require some serious reverse-engineering if there was no existing code or documentation.

DIP Switch settings (image from Neo Kobe Team)

Shortly after purchasing the disk from Yahoo auctions, I managed to find a listing for a standalone 3” floppy drive made for the Sharp X1D computer and purchased it in the hopes that I could somehow fit it to my Turbo Z II. Both the game and the disk drive were shipped to me within a few weeks. As an aside, one has to note that older floppy drives came with DIP switches on their logic boards so that their drive numbers could be set manually. “Modern” floppy drives didn’t come with switches so users wouldn’t have to worry about it. Instead, the two-drive 34-pin cable known today eliminated this problem by including a “twist” in the wires between the two connectors, so that Drive A and Drive B would be set based on where they were plugged in. The X1 didn’t use this technology. So, I had to figure out how to configure the dip switches before using the drive. Luckily, the Neo Kobe team had preserved a specific page from the CZ-300F service manual with DIP switch settings.

Upon examining the PCB, it looked like the pinout on the 3” drive was identical to the 5.25” drive. Optimistically, I configured the 3” drive as drive 0 and connected it the computer internally to the 5.25” drive’s connector. I managed to run the game directly from the X1’s IPL as a 2D disk. Watching the title screen load was a mixture of relief and excitement. There is hope! I closed up my X1 and attached the drive externally, setting it as drive 2.* The X1 treated the 3” drive as a 5.25” drive without issues. Awesome. The drive works, and the disk runs, too! Dumping the game should be trivial from here.

X1 running Xevious from a 3" disk

My first thought was to load a blank disk image on my HxC floppy drive emulator and use a tried and true copy utility to simply write the disk data straight to an SD card. It’d be just as easy as duplicating any floppy disk, right? No low-level knowledge needed. The computer wouldn’t even know the difference! Unfortunately, it seemed to me like the copy utilities I was able to get my hands on only supported a specific list of games or could only handle disks with the HuBASIC file system. After being unable to find further documentation for the copy tools (in English or Japanese) and setting up an emulator environment to try and brute force an understanding, I decided to try a different approach.