(Image source: RetroMags.com)

GameShark Pro-blems

It’s safe to say that I will never find gainful employment in the IT field. My eyes have a way of turning glassy whenever there’s computer jargon in sight. I took a high school class in programming once, and all I could relay to you about the experience is that course credit showed up on my report card afterwards. Don’t ask the grade. I have an autographed head shot of Leo Laporte from my days when I volunteered as a chat room moderator for ZDTV, and somewhere in a student folder of elementary school files there’s a printed diploma from Mario Teaches Typing. That’s about the full extent of my technological background.

One of my ulterior motives for having spent years of my life covering pre-release and unreleased video games is that I wanted to show others that they need not be afraid to join in on the rescuing themselves. If I can recover these slowly dying pieces of software before their unknown expiration dates, literally anyone can. These objects, while deserving of respect, don’t need to be treated as untouchable artifacts that only a handful of privileged people pass between themselves as they puff on stogies, rock fezzes, and slurp blood-red Kool-Aid at their secret late-night Illuminati meetings in an empty Denny’s parking lot. If you fancy yourself a gaming historian or a preservationist, a four-year doctorate is not required. An active PayPal account will suffice.

With usually not much effort, any game-playing fan wishing to become a real-life Indiana Jones can safeguard an untold amount of beta data from games that were designed for nearly every classic Nintendo system.

For the original Nintendo, there’s the affordable standalone Kazzo “INL Retro” Dumper-Programmer ($20). For the Super Nintendo, you can look to the Retrode ($58). For the Game Boy and the Game Boy Color, the Altane Cartridge Programmer will serve your needs ($75).

That’s only a partial list of the choices that are out there. The ones mentioned are speedy, self-contained plug-and-play devices that run on modern operating systems and require no additional installation. Saving video game history from extinction takes less time than making toast.

However, you may have noticed one important piece of vintage Nintendo hardware that’s sorely missing from this lineup–and, no, it isn’t the Virtual Boy.

In between its release droughts, the Nintendo 64 ushered in some of the most revolutionary titles in the annals of electronic gaming. Super Mario 64 laid the groundwork for 3D world adventuring, and many regard The Legend of Zelda: Ocarina of Time to represent the very pinnacle of the entire medium.

My fondest memories come from its multiplayer component. No other home console at the time came close to competing with the hectic split-screen excitement of Mario Kart 64, Mario Party, or Super Smash Bros.

In particular, as a bloodthirsty brat, nothing could beat a heart-pumping four-player deathmatch. At sleepovers, when I wasn’t blasting my best buds with the Golden Gun in GoldenEye 007, my dual sub-machine guns would mow them down on the mean streets of Duke Nukem 64.

That’s why when a European, otherwise known as “PAL,” prototype of the latter first-person shooter appeared for sale in 2009, I was ready to kick ass and chew bubble gum all over again. Little did I know that I was the one about to receive a mighty boot to the butt. And, tragically, I’d be all out of Bubblicious.

I started searching around to see what was out there for protecting the legacy of this hugely influential machine, what manner of neat gadgetry entrepreneurial modders had concocted to continue breathing life into the hardy, charcoal gray control deck.

The inevitable answer blindsided me because it was something straight from my childhood: the GameShark Pro. But not just any GameShark Pro, the kind that has a version 3.2 sticker on the back, or possibly a 3.3 model if the outer case is “sparkly.”

I wish I were joking.

It’s painfully true, though: The preservation of Nintendo 64 prototypes, of unreleased games, tragically is in the hands of a long-discontinued, prone-to-failure cheat code peripheral from the 1990s. I last used the accessory when I still had braces on my teeth to water-walk to the Dam’s little island getaway in GoldenEye. I don’t think mine lasted more than a month before self-destructing like a piece of Mr. Bond’s postal mail.

A 50% complete Super Mario 64 runs off a flash ROM development cartridge at the 1995 Shoshinkai trade show in Tokyo. (Image source: YouTube.com/GamesMaster)

To be fair, a couple of other options do exist for digitally archiving the system’s retail releases, such as one of the old Hong Kong back-up devices made by a company called Bung, which, it has been said, were chiefly responsible for most of the Nintendo 64 software ROM images that are downloadable today. However, there are conflicting reports online regarding how well these hard-to-find alternatives work with prototypes.

Four attendees of the 1999 E3 convention shoot it out in Perfect Dark‘s multiplayer. Notice how the development cartridge has been attached to a locking mechanism on the system in order to prevent thievery. (Image source: YouTube.com/N64 Magazine)

The closest thing to a current-day Nintendo 64 dumper is a plug-in adapter for the Retrode, which, as of this writing, will not read the flash memory technology that prototypes store their data on, nor will it read many of the game saves from regular cartridges that rely on related memory types like electrically erasable programmable read only memory (e.g. Super Mario 64 ) or flash RAM (e.g. The Legend of Zelda: Majora’s Mask).

The GameShark Pro remains the only proven path, which should be a frightening thought to anyone who has ever had the displeasure of owning one.

Backing up a prototype from a Nintendo 64 development cartridge will require not only a still functioning GameShark Pro 3.2 (or a 3.3 if it has a usable parallel slot on the back–not all of them do) but also a DB25 male-to-female cable and an old computer with a built-in parallel port (parallel-to-USB adapters won’t work).

As life would have it, after I had checked off the first two things on this list, my PC crashed and flat lined. To complicate matters, I had picked up a North American, or “NTSC,” prototype of Duke’s other Nintendo 64 shooter, Duke Nukem: Zero Hour in the interim. Now I had two ticking Nintendo 64 prototype time bombs and no way of saving them before their data exploded, as newer computers and laptops have gotten rid of the archaic parallel port completely.

It was only years later, when I learned that a relative was going to toss out a cat-pissed-on Dell Dimension 2400 desktop, loaded with Windows XP, that I was once again in the possession of that rare, near-extinct animal: the parallel port.

The following is a journal that I kept of the whole arduous ordeal so that maybe someone can profit from my pain. This guide is less of a how-to and more of a do-not-do. It’s also to demonstrate not only how horribly outdated this method is, but why Nintendo 64 preservation so desperately needs a better fix–and fast.

 

Trial and Error and Error and Error and Error and Error

After wiping off some of the ancient computer’s grime, I downloaded and extracted a program called Game Software Code Creator (“GSCC”).

In the program, under “File” and “Configuration,” I changed the “System” selection to “Nintendo 64” and clicked on “Auto Detect Settings” for GSCC to set up my parallel port connection.

The software didn’t detect anything at first, but that was because all of the sneezing from the dust allergens had made me forget to turn on my Nintendo 64 with the Duke Nukem: Zero Hour prototype inserted into the GameShark Pro.

I had purchased a long enough DB25 cable to run the pinless “female” connector from the GameShark Pro to the “male” connector plugged into the back of the computer tower.

After the GameShark Pro main menu popped up on the television, GSCC was able to find the device and configure the program; I then clicked “Save” before proceeding. (For the record, the desktop’s parallel port is on “EPP” mode. I discovered this by pressing the F2 key repeatedly while the PC was starting up, which displayed a list of the computer’s internal settings.)

Choosing “Open Window” under the “Ram Edit” option in the toolbar brought up a button near the bottom of the program to “Dump Cartridge Rom.”

After agreeing to a legal prompt, the transfer began, or so I thought.

“Error: Communication has timed out” are the five most frustrating words in the English language. After suffering enough of these soul-wrenching data transfer timeouts, it eventually dawned on me that all other applications running in the background must be closed, and nothing must be touched on the computer as the dumping software is busy, or the back-up process will interrupt and fail. Unlike USB copiers, which dump games in a matter of seconds, backing up one Nintendo 64 flash development cartridge through a parallel port takes approximately 15 minutes to an hour, depending upon the size of the game. I became so paranoid about a random act of God occurring within that delicate time frame that I went so far as to cover a nearby air vent for fear that even a sudden gust might make for another wasted half an hour. It didn’t help any knowing how fickle GameShark Pros are, and how powering one every time feels like acting out Christopher Walken’s role in Deer Hunter.

When Duke Nukem: Zero Hour‘s data actually appeared to start copying, without any infernal communication errors, the GameShark Pro’s main menu text became scrambled on the television. I thought at first that I had bricked the thing, but after the dumping was complete, the TV–and my pulse–went back to normal.

I tested the 32 megabyte output file in a Nintendo 64 emulator called 1964, and the game played without any hiccups. I then did what any responsible video game preservationist would do–copied the cartridge all over again to check the dump’s integrity.

Another Seinfeld rerun later, I had a second back-up. A file comparison showed that both copies, however, were hundreds of bytes different, although the second loaded just fine in the same emulator as the first did.

I went ahead and fiddled with the cable and the GameShark Pro and made a third attempt, which, again, seemed to work, but differed from the previous two dumps.

When I went to copy the prototype for a fourth time, I made sure not to fool with anything, which resulted in another unique playable ROM image.

Now approaching the umpteenth hour of the dumping process, my shaking hands put Duke Nukem: Zero Hour aside, and I reached for the development cartridge containing the PAL version of Duke Nukem 64. I slid the second prototype into the GameShark Pro and powered on the Nintendo 64.

No GameShark main menu came on the television, and the computer’s software could not detect anything.

I replaced the GameShark Pro with a Passport Plus III, a third-party adapter that gives North American Nintendo 64 consoles like mine the ability to read international cartridges, and the prototype played. Unfortunately, the same could not be said when I tried piggybacking the PassPort Plus III with the GameShark Pro–the screen froze whenever I went to start the game.

Copying the PAL Duke Nukem 64 prototype data proved to be impossible with my current setup.

My frustration level now reaching critical mass, I knew it was time to back away and find some outside help before things turned violent. You wouldn’t like me when I’m angry.

I approached a Nintendo 64 hacker who goes by the handle “Zoinkity.” He had previously been given the chance to analyze a GameCube non-Master Quest debug build of Ocarina of Time, which was found on a PAL Nintendo 64 flash development cartridge in 2014. In other words, he knew his stuff.

He advised me that the GameShark Pro is somewhat unreliable when used in conjugation with “post-Win9x” operating systems such as Windows XP. As for the PAL prototype not behaving with the GameShark Pro, he said that was on account of the different checking integrated circuit (“CIC”) region lockout chips. I would have to download and use N64 Version 3 Utilities, an official program from the cheat code accessory’s manufacturer, Datel, and flash an international version of the GameShark Pro, called the Pro Action Replay, for a game to boot from over the pond. The utilities software doesn’t play nicely with Windows XP, he added, although an unofficial patched version improves its compatibility.

Faced with the possibility of securing a better back-up, I decided to ditch Windows XP altogether and locate a CD copy of Windows 98 SE to install.

With the introduction of Windows 98 SE came a new set of problems, the biggest being its lack of modern mouse support. I tried every mouse in the house on a USB-to-PS/2 adapter, all Logitechs, and none would respond. Using some keyboard kung-fu, I was able to TAB and arrow key my way into the “Control Panel” to select the “Accessibility” options and turn on “MouseKeys,” which allowed me to use the numeric keypad to painstakingly crawl the mouse cursor in straightaways across the screen. This resulted in a a scary out-of-body experience, as it felt like I was watching my computer-illiterate mother haphazardly trying to open and close windows, only the clumsy one with whom I was losing patience was me.

The second issue was more serious. My Kingston DataTraveler’s dive now wouldn’t open. I had been using the thumb drive to move files to and from the old computer. I happened upon a fix online called the Windows 98SE Generic USB Mass Storage Device Driver (“nusb36e.exe”). Burning this executable to a CD-R (remember those?) and then installing it on the computer supplied Windows 98 SE with the necessary driver to grant me access to my removable Kingston drive again.

I was now ready to write over the GameShark Pro and convert it into a Pro Action Replay that would cooperate with my PAL Duke Nukem 64 prototype.

As an initial test, I opened the official utilities program, and under “Other Utilities,” clicked on the “Upgrade” button with “Overwrite code list & settings” checked. Within moments, my GameShark Pro v3.2 upgraded to v3.3.

Afterwards, just for fun, I tried to dump the Duke Nukem: Zero Hour prototype for a fifth time, and then a sixth time to try to verify the fifth, and after that didn’t work, a seventh time to validate the sixth, and then an eighth time for the seventh. I stopped when I began to develop a burning desire to ram my head through the wall. All of the files were bad, bad, bad.

I turned my attention back to Duke Nukem 64.

There is a .zip floating around the Internet named “GS-BIOS,” which contains a number of files, including a Perfect Dark trainer (“PDtrainer.enc”) and what appears to be the Pro Action Replay BIOS (“ar3.enc”).

From this “GS-BIOS.zip” archive, I copied “ar3.enc” and pasted the file into the official utilities directory. This replaced the “ar3.enc” that was already there, which contained the aforementioned GameShark Pro v3.3. I subsequently went into the official utilities program and clicked the “Upgrade” button once more in the hopes of turning the GameShark Pro into a Pro Action Replay.

What I ended up doing instead was making the peripheral seemingly unusable. Not only would the European prototype not play, now none of my retail North American cartridges would work with the GameShark Pro, either. The front digital readout display stopped counting down, as well, pausing at “8.”

Yet again, I thought for sure that I had fried the junk, and came close to shopping for a replacement. I thought I would at least finish trying out the rest of my Nintendo 64 game pile first.

When I arrived at Perfect Dark near the bottom of the cartridge stack, a black menu screen became visible on the television with the words “PERFECT TRAINER © iCEMARiO 2003.”

All of a sudden, the official utilities software recognized my GameShark Pro, labeling the device as “Action Replay (UK – Datel) 1.PT.”

I had inadvertently burned a fan-made cheating program designed specifically for the best-selling first-person shooter. A file comparison of “ar3.enc” and “PDtrainer.enc” corroborated that they did, in fact, contain the exact same bytes.

That’s what I get for blindly downloading wild .zip files from the Web.

Having identified the problem, I was then able to replace the deceptively-named Perfect Dark trainer with the official GameShark Pro v3.3 BIOS by extracting a new folder of the official Utilities software archive and hitting the “Upgrade” button for a third time, wiping the code list along with it. The GameShark Pro suddenly counted down once more, and the v3.3 main menu returned, bringing me back to square one.

Upon hours of further research, I found reports of players overseas being able to use the GameShark Pro on their non-U.S. Nintendo 64 consoles. It sounded like I didn’t have to fool with altering the accessory’s built-in program after all. With no other options left, I decided it was time to import a European Nintendo 64 and test this for myself. Between the Duke Nukem 64 prototype and my sanity, I was determined to see that at least one of us could be salvaged.

After seeing how much it would cost to ship a system Stateside, I turned to searching domestically.

As with anything on eBay, discretion is a bidder’s best bargain. Several listings contained the word “PAL” in their auction headlines, even though the consoles were not. This is a form of keyword stuffing, or “seller schizophrenia” as I like to call it, to fish for more eyes. Distinguishing what region a Nintendo 64 truly originates from requires looking on the underside of the console at the “Nintendo 64 CONTROL DECK” label, where the part of the world is printed in parenthesis directly to the right of the model number.

Eventually, I located an “NUS-001 (EUR)” from California. No cables or AC adapter came included, but, since the Nintendo 64 runs on an external power supply anyway, I would be able to safely use the power and A/V hookups from my North American system without fire erupting.

Coincidentally, this vendor was the same person who had sold three unreleased Nintendo 64 prototypes back in early 2012, WildWaters: Extreme Kayak, Mini Racers, and Tamiya Racers, all of which have since been publicly shared. I saw that as a good omen.

When the European control deck arrived in the mail, I detached my Nintendo 64’s U.S. power supply and A/V cable and plugged them into the back of the console with the GameShark Pro and the PAL Duke Nukem 64 prototype on top. With my fingers and toes crossed, I switched on the juice.

I’ll always remember when I scaled Death Mountain in Ocarina of Time and gazed down at the faint glow of Kakariko Village below as the sun set overhead. It was the first time I had stopped in a video game to marvel at the awesome scope of it all.

This treasured moment paled in comparison to the vision that presently blinded me: the GameShark Pro’s garish scrolling background in black and white. Although the main menu had turned monochromatic, likely due to the television’s video standards clashing with the differently formatted machine, it was a sight for sore eyes.

At last, I was able to back up the Duke Nukem 64 prototype via GSCC. The program vomited out a huge overdump over the course of an hour, 64 megabytes in total (the retail version is only eight megabytes). Despite the massive digital upchuck, the game ran in an emulator.

Rather than waiting for another hour to confirm its veracity, I recalled that “Zoinkity” had talked about a patched version of the official utilities software that includes an extra feature to dump the ROM image (there’s even a hacked version of the patched tools to save a Nintendo 64DD disk). It was worth a shot.

After downloading and unzipping Userport, which is a required driver for the modified program to run, I then grabbed the patched N64 Version 3 Utilities Hi-Res Patch and pasted the extracted “N64 Utils [8MB].exe” file into the “Userport” folder.

Inside the patched program, I made sure that my GameShark Pro could be detected before doing anything.

Clicking on the “Other Utilities” tab gave a list of “Grabbing Options,” with the first being “Grab Rom.” Unlike GSCC, there is no progress bar to monitor the transfer status. The process was much faster this time around, though, and before I knew it, the GameShark Pro menu unfroze on the television and a new file, named “arom.rom,” was created. The ROM image was twice the size of the game, 16 megabytes, but like the GSCC dump before it, Duke’s heavy metal theme song soon pumped out of the computer speakers when I loaded the game in an emulator.

I went ahead and made another back-up through the patched Utilities program. After the second .ROM saved, I ran a file comparison in a hex editor and offered up a Hail Mary.

“The chosen files are identical.”

I could hardly believe the words. They looked foreign, like a language from a faint memory that I had known in some past life. As I stood there in front of the hulking CRT monitor at three in the morning, I may have silently wept because I felt my cheeks moisten. I couldn’t tell if tears or beads of sweat were falling on top of the dead feline hair poking out from between the keys. I didn’t know if my reaction was out of euphoric joy or confused despondency, and I was too numb to care. Hours upon hours of 16-bit color gawking had long taken their toll on me by that point.

I shut off the European system and hooked the cables back to my North American Nintendo 64, bringing over the GameShark Pro and attaching to it the NTSC Duke Nukem: Zero Hour prototype. I went back to the patched program and clicked on “Grab Rom.”

If you’re keeping count at home, this marked dump number nine. Each of the previous eight attempts had taken 30 minutes, or 4 hours in total. The waiting time for the ninth was less than the others, as only a 16 megabyte file trickled out, which is half the size that it should have been. Even the miraculous patched program just wasn’t having it, and I had finally had enough.

I passed the bad dumps along to “Zoinkity.”

He began telling me what I already knew, that hundreds of bytes differed in each one, but went on to elaborate that these differences fall on what he called “the low half of the word.” According to him, when the GameShark Pro receives interference or there’s noise on the line, this can create an error pattern that on occasion can be fixed if it occurs periodically enough.

My eyes started to cross at this explanation, but they returned to normal when he revealed that the internal checksum of the released North American Duke Nukem: Zero Hour (“04DAF07F 0D18E688”) matched the internals of the prototype dumps.

“All of the compressed files have the same compressed and uncompressed sizes in their headers,” he said, “and the files that do have noise in them don’t decompress.”

My eyes were moving together again until he added, “It’s safe to say Zero Hour is retail, just a couple bad dumps.”

Since the cartridge has a big old fat “Final” written on the front label, the conclusion he came to did not surprise me in the slightest. All this time, I was only looking for confirmation for posterity’s sake. Still, I know I’ll be wanting those four hours back when I’m withering on my deathbed.

The 1964 emulator is not a good choice to test out ROM images, as it bypasses errors and will read even faulty dumps. Attempting to load one of the prototype Duke Nukem: Zero Hour back-up files in a more discerning emulator like Project64 will trigger a pop-up that reads: “In a permanent loop that cannot be exited. Emulation will now stop. Verify ROM and ROM Settings.” This “permanent loop” is a direct result of the game not being able to pass an internal checksum. Project64 is alerting you that the ROM image is no good.

As for the verifiably dumped Duke Nukem 64 prototype, the twice-as-large 16 megabyte ROM image that the patched Utilities programs had generated consisted of unused repeated and blank data, which could be clipped to correct its size.

The nightmare was over.

 

A Call to Action

It’s entirely embarrassing that stewardship of Nintendo 64 development study has so far been primarily dependent on the obsolete GameShark Pro. If all other major cartridge-based Nintendo consoles have enjoyed modern support in the form of accessible dumpers, what makes the Nintendo 64 the black sheep of the family?

More importantly, where’s the fire from the 64-bit enthusiast crowd? Why are they seemingly so content with a clunky game enhancer that when typed into Google brings up the following autocomplete suggestions:

(Image source: Google.com)

While mass-manufactured Nintendo 64 game pak prices ranged from $24 to $38 back in the day, development cartridges cost companies much more, which means that far fewer were made (link). Should someone be fortune enough to come into possession of one not already languishing in a landfill, that person shouldn’t have to then hunt down ancient hardware and battle it for hours on end like I did. Digital records of gaming’s past are in serious danger here.

For years and years I have been searching and waiting and hoping for an easier, more dependable solution to come along. I don’t expect most hobbyists to be as patient or persistent.

(Image source: 3DRealms.com)

As Duke Nukem would say, “What you waiting for… Christmas?”