The Mystery of the Power-Sucking Neo Geo Pocket Color

About two and a half years ago, I finally took the plunge on something I had been wanting for years: a Neo Geo Pocket Color. Or, more specifically, a special edition NGPC themed after the Hanshin Tigers, a Japanese baseball team that I like and follow.

I finally got my hands on one after years of watching eBay and I loved it. It was gorgeous and hit all kinds of pleasure centers in my brain. Retro video games, baseball, the Japanese language… Hell, it even came wrapped in newspaper with an article featuring Shohei Ohtani, a megastar in the Japanese baseball league who, at the time, was making his decision about who to play for in America.

There was just one problem… This was 90s tech. More specifically, it contained 90s-era non-backlit screen tech. I couldn’t see a damn thing unless I played it under a lamp. But you know what? In those times that I could see what I was doing, it was phenomenal.

At the same time, I also got myself a Neo Pocket Flash Masta flash cartridge to better explore the system’s library without completely draining my bank account. Even better, it was a way to play the English fan translation of SNK vs. Capcom: Card Fighters 2 on original hardware. Well, the flash cart worked, but I noticed something. Any time I played a game with it instead of an original cartridge, it seemed to really drain the batteries.

Supposedly, original NGPC hardware has 40 hours of battery life on two AA batteries. I was getting maybe three to four hours out of some Energizer NiMH rechargeables. I didn’t make much of it at the time and just assumed the Flash Masta drained batteries unusually fast. But between the screen issues and the battery draining, I just didn’t get much use out of the system. It went into my closet and mostly stayed there, until recently.

A full screen IPS mod finally became available for the NGPC and I knew I had to have one. I’d gotten pretty handy with hardware mods in the last couple of years, so it was the perfect project. I ordered up an IPS kit from eBay and a replacement shell from AliExpress (the screen replacement requires a physical modification, and I couldn’t be cutting up a collector’s item!). They arrived safely, and I set to work…

And it came out absolutely amazingly. The new screen is just stunning and I was sucked into the platform in a way that I simply wasn’t when I first bought it. Finally, I could see what I was playing! And the new screen showed how vibrant and colorful the games were truly meant to be.

Replacement Shell and IPS Screen Mod Kits
IPS Mod – Before and After

Then the battery problems started. Forty hour battery life? Yeah, right! We weren’t even talking four hours… It was more like two! But it was strange behavior. As the batteries were dying, the system didn’t just stop working. Instead, it would often power on to a point where the game was booting and there was sound, but the screen wouldn’t turn on. Or, the screen would turn on but it would boot to the system BIOS screen instead of the game. Oddly, if I put in an official cart instead of the flash cart, it would often boot fine and I’d get some substantial extra playtime out of it.

At first, I passed all this off as funky behavior because of power drain. But that left me disappointed and unsatisfied. Did I really do all that work for a system that would only give me a measly two hours of battery life? I wouldn’t be able to take it anywhere like that and might as well just play it at home, plugged in.

So I decided to investigate. I started with the obvious: maybe I connected something improperly during the mod. I opened it up and double checked the screen connections and solder points, but everything seemed fine. Then I got curious about the batteries. I pulled out my multimeter and checked the voltages on a pair of batteries that had just stopped working. These were a fresh set of NiMH batteries rated for 1.2 volts… But the “dead” batteries were reading over 1.3v when I tested them! What the hell? They had plenty of juice still left in them! A newly charged set was reading just over 1.4v, so the power in the pair I used had barely dropped.

Rechargeable NiMH voltage test – 1.35v is above the battery’s rating, but apparently not enough to power the NGPC!

And that’s when it struck me. The batteries weren’t dead, they just weren’t supplying enough power anymore for this specific combination of hardware. A typical alkaline AA battery is rated for 1.5v. Use two of them and you get 3v. As time goes on and the batteries start to drain, the voltage they’re capable of supplying will start to taper off. Usually, the device you’re using them in can tolerate those lower voltages and continue to operate for some time. In the NGPC’s case, its low power demands mean typical batteries last quite a while.

Typical rechargeables, however, are only rated for 1.2v. Use two of them and you’re getting 2.4v. At 2.4v, I’m already at a disadvantage from the start. Add a couple hours of drainage and the fact that the actual voltage under load during operation was likely lower, and apparently we were crossing a point of no return very quickly. It seems the IPS screen and Flash Masta are much more sensitive to voltage drops than the NGPC itself, which explains why the system would often power on without booting a game off the flash cart, or boot without turning on the screen.

So, in summary, the NGPC plus an IPS screen plus the Neo Flash Masta plus rechargeable batteries is a finicky combination. What’s the solution? Well, you could avoid rechargeable batteries and probably get some additional gaming time, but that’s an unsatisfying solution. What you really need is a better power supply: something that will provide a consistent 3v without premature voltage drops.

The obvious answer once I thought of it in those terms was to use lithium-ion batteries, since they do a much better job of maintaining their voltage over time than other types of batteries. One approach would be to mod in a rechargeable Li-ion battery pack into the NGPC, but that felt excessively complicated. Instead, I turned my attention to a relatively new type of battery I’d never used before – rechargeable Li-ion AAs!

These turned out to be the perfect solution. They’re slightly expensive at a little under $30 for a four pack, but proved to be well worth it. I haven’t timed it out, but they seem to power my system for a good 6-8 hours and recharge via USB in only 1.5 hours (compared to about 12 hours for my old NiMHs). Less battery life than original hardware, yes, but plenty for my needs. And the short charge time means a freshly charged set will be ready for me before the current set ever dies out.

So to all you NGPC fans, if you’re thinking about screen modding your system, keep power needs in mind. Especially if you’re using a flash cart, too!

Exploring the basics of PlayStation 2 soft-modding with FreeMCBoot and Open PS2 Loader (OPL)

It’s been possible, even downright easy, to soft-mod a PlayStation 2 for years now. And yet, it never really occurred to me to try to do it. Why is that? Maybe it’s because my PS2 has spent a decade in storage, in favor of a backwards compatible PS3. Or maybe because the PS2’s peak was in an era where I was less active with video games. Or maybe the system just never really captured my imagination. I still distinctly remember getting one on launch night, playing some SSX and TimeSplitters and thinking “that’s it?” It felt like a letdown after how mind-blowing the Dreamcast was on release the year before.

Regardless of my own interest in it, the PS2 is a system that really came into its own after a few years on the market and is undeniably one of the biggest successes the industry has ever seen, so even I ended up with a nice collection of games for it. For whatever reason, I recently took an interest in exploring it more. And exploring it more meant modding it. (Really, the true impetus for this project was probably that I’d been wanting to try out Gregory Horror Show, but didn’t have a PAL system to play it on!)

So with that out of the way, let’s document my setup for future reference or for anyone else who might be interested in doing something similar:

Target State

My goal was to have a handful of unique, rare, or otherwise interesting games available to play on my launch-day (NTSC, SCPH-30001) PS2 without needing to open the system or do any physical or permanent modifications. I wanted to be able to play games from any region without having to keep a stack of discs on hand and also wanted to explore interesting homebrew.

The Materials

This took a mix of items I already had on hand, plus a couple of cheap new additions to “the lab.” In all, I spent about $25 – remarkably cheap for everything the system is now capable of doing. Here’s what it took:

  • PlayStation 2 system (cost: already had) – Like I said above, this is the system I’ve had since launch day in October 2000. I connect it to a 32″ JVC D-Series via component cables. There’s nothing else particularly remarkable about it.
  • FreeMCBoot 8MB memory card (cost: <$10 shipped) – FreeMCBoot is a “Free Memory Card Boot” program that fully unlocks your PS2 at boot time, as long as it’s loaded on a memory card inserted into your system. Want to go back to a stock system? No problem, just take out the memory card! It’s an extraordinarily easy and non-invasive mod and remarkable in its effectiveness. It’s possible to make your own FreeMCBoot card, but it’s a complicated setup and you’re best off using a spare memory card dedicated to it anyway, so why not just buy one pre-loaded? They’re dirt cheap on eBay – less than $10.
  • An old 60 GB IDE hard drive (cost: already had) – I used to have an old Pentium 3, circa the year 2000. It was a high school graduation gift from my parents. I later added a second hard drive to it. I recycled that PC long ago, but I pulled the HDD when I did and it’s been in storage ever since. What a great way to put it back to use, don’t you think?
  • Official PS2 HDD/Network Adapter (cost: ~$15+shipping) – This is something I briefly wanted back in the day because I was convinced I wanted to play the original SOCOM online after trying the demo. Then I never got around to it. I guess I finally found an excuse to get one! A used one was surprisingly cheap. I’m not sure why I thought this would cost more than it did!
  • USB thumb drive (cost: already had) – I’m sure you already have one of these. Probably several. So do I. In fact, mine was free. You probably have free ones, too.
  • IDE/SATA to USB 3.0 adapter (cost: already had this one from Amazon, which runs $16) – I got this a few years ago for backing up old hard drives. Super useful and convenient. There are multiple ways to get data onto your PS2 HDD once it’s modded, like via a network connection, but connected to your PC via USB is absolutely the fastest way to move around large files.

The Procedure

1. Perform the Mod

Plug your FreeMCBoot card into either memory card slot and turn on the system. That’s it. The mod is done. Whew – that was hard work, wasn’t it? Your memory card probably came with some pre-installed utilities and emulators, so poke around a bit and see what’s possible. Hopefully it came with uLaunchELF and Open PS2 Loader (OPL) already installed. If not, add them by copying the .ELF files over to your memory card and running the FreeMcBoot Configurator to add them to the launch menu. I’ll leave that exercise to you, since it’s a procedure best documented elsewhere, and this guide assumes they’re probably already installed. At this point, if you really wanted to, you could even start running games off of a USB drive. That isn’t a great experience, though, since the USB ports on the PS2 are so slow. So let’s continue on to the next steps…

2. Format the HDD

With your PS2 powered off and your HDD’s jumper set to Master (note: this is important, don’t skip this!), plug the HDD and Network adapter into your PS2. Boot the system and run uLaunchELF. Go to File Browser –> MISC –> HddManager. In the HDD Manager program, hit R1 and choose “Format.” This will format your drive to be readable by the PS2. After this, reboot and launch OPL. Launching OPL will automatically create the directory structure it needs on your hard drive. With those two steps out of the way, you should be able to browse your HDD in the uLaunchELF File Browser and you’ll see a “+OPL/” directory at its root.

3. Load some games

Unfortunately, you can’t just copy ISO files over to your HDD like any other file and have them be playable. You have to properly install them. So, power your system down, remove the HDD, and place the jumper into Slave mode. Connect the drive to your PC via your USB adapter. (This part is finicky for me, sometimes the drive powers on properly, sometimes it doesn’t. Sometimes apps can recognize it, sometimes they can’t. With my adapter, I need to keep trying until I hear the usual Windows USB chime, without an additional drive appearing in Windows Explorer.) Once the HDD is properly connected, run hdl_dumb (note: run as Administrator!) to install whatever ISOs you happen to have on hand. (You’re backing up your own games, right?) This process is self-explanatory, just follow the obvious functions in the UI.

Installing games to the HDD via HDL Dumb (and an IDE to USB adapter for your PC).

4. Add some fancy artwork

You want your loader menu to look nice when you’re picking out what games to play, don’t you? After your games are installed, run OPL Manager (again, run as Administrator) to get box art, disc art, screenshots, and more. The program can auto-recognize which games are installed by choosing “Get Game List” from the “Local HDD Options” menu. You can automatically download the art you want for your installed games, but note that this process is not actually putting the artwork onto the PS2 HDD at this point. You’ll have to do a transfer process to move everything over. There’s a utility called OPL Manager HDD ART Batcher that can do this automatically, but I found it finicky and it would often skip files (especially disc art, for some reason). Instead, I recommend reinstalling the HDD into your PS2 and manually copying the contents of your OPL Manager hdl_hdd/ART directory from your PC to the corresponding directory on your PS2 HDD with a thumb drive via the uLaunchELF File Browser.

5. Configure OPL

You’re almost done! The next crucial step is to get OPL to recognize your HDD when you launch it. So run OPL, go into the Settings menu, and set “HDD Device Start Mode” to “Auto.” Save your settings and from now on, OPL should automatically recognize your HDD and any games installed on it when you launch it.

At this point, you have a fully functioning mod in place, it’s just a matter of setting up OPL to get the look and feel you want. I recommend exploring the various themes that are available for the utility. They can be easily installed by copying over to your +OPL/THM directory via USB drive. (I particularly like the “stone” theme.) Tinker around with whatever other settings you want – for example, the “Enable Write Operations” flag will allow you to delete games or edit their names straight from OPL. Just don’t forget to save your settings each time you make a change.

Also note that a fair amount of configuration is available at the game level. You can do things like change the video mode (useful for playing PAL games in NTSC-land) and use “virtual memory cards” if your memory card is full. Poke around, see what there is to see, and make the setup your own.


And there you have it! At this point, you have a fully modded PS2 with a collection of games and a nice hard drive loader front-end to browse and launch them. Feel free to explore what else you can do with a modded system, but if I’m completely honest, there’s not much I recommend. Yeah, there are emulators and Doom ports and such, but there are a million and one different devices that can do a better job of those things now. Modding a PS2 these days is really all about running games from a hard drive. But hey, that’s a pretty good use if you ask me!

Quick Thoughts on “Mother to Earth” – An Earthbound Zero Documentary

Mother To Earth

It feels like there has been a downright flood of video game-related documentaries over the last ten to fifteen years, perhaps starting with the success of the surprisingly-compelling King of Kong in 2007. Since then, we’ve seen the likes of Chasing Ghosts, Get Lamp, Indie Game: The Movie, Console Wars, Atari: Game Over, High Score, and… well, the list goes on. You’d be excused for missing one or two along the way.

And miss one, I did. Mother to Earth was successfully Kickstarted back in 2016, with a release more than three years later in Fall 2019. That was then followed by a general streaming release late last year. Somehow, I only became aware of it recently, but once I did, I immediately sat down to watch it.

Make no mistake, Mother to Earth is about a niche as niche gets. Ostensibly, it’s a film that traces the origins of the original English-translated leak of the NES version of cult-classic Mother 1 (aka, Earthbound Zero/Earthbound Beginnings). I say ostensibly because, while that is a significant portion of the film, it’s actually at its best when it strays from that precise topic. The story of the original leak is about what you’d expect – a former employee has a leftover prototype after Nintendo canceled the game and lost interest in it, which eventually finding its way into the hands of a collector, then finally it’s purchased by an enthusiast in order to be dumped and shared. It’s a story the retro gaming community has witnessed many times before.

Instead, Mother to Earth really shines when it steps away from the story of the leak and into the details of the game’s creation, translation, and its cultural impact. By far, the most interesting testimonies come from the lead translator Phil Sandhop, Japanese superfan “Koala,” and especially game composer Keiichi Suzuki. There are tidbits of fun information (like some interesting clandestine behavior by series creator Shigesato Itoi) scattered amongst poignant moments like those from Keiichi Suzuki. The whole film is delivered with a sense of charm and a side of amateurish passion.

Despite the sheer number of game documentaries cropping up, I’m glad the industry’s history is being recorded and preserved. After all, how many other forms of media have been properly documented from their very first days? In the case of Mother to Earth, anyone with an interest in Earthbound or retro gaming in general should give this documentary a chance. All it will cost you is $2.99 and about 90 minutes of your time over at the Vimeo stream!

Running Dinosaur Planet on an EverDrive-64

I recently picked up an EverDrive-64 X7 to tinker with (the version with a USB port that allows connection to a PC for homebrew). While I’m sure there will be plenty for me to say about it in the future, I haven’t had too much of a chance to dig into it yet. But nonetheless, I wanted to drop a quick note here on one *really cool* thing I have managed to do with it: play the leaked N64 version of Dinosaur Planet!

I assume most people are aware of this by now, but if not, a ROM was released a little over a week ago. For the unaware, Dinosaur Planet is an N64 game by Rare that was cancelled and later re-worked into Star Fox Adventures for the GameCube. More info on the release is here:

The best part is, if you have a flash cart, the game runs on original hardware! There’s just one trick to make it work. If you don’t do this, then your game will boot, but the game select screen won’t appear. Instead, you’ll get a black screen after the “Rareware” splash screen. Thankfully, it’s an easy fix:

  1. On your computer, edit the “save_db.txt” in the ED64 directory of your SD card.
  2. Add the following line to the bottom of the file:
DP=5        Dinosaur Planet

So, it should look something like this:

save_db.txt with additional line for Dinosaur Planet

And that’s it! Save your changes, put the SD card back in your EverDrive, and boot it up! It should now take you to the game save selection screen after the splash screens.

With that out of the way, what do I make of the game? Well, it’s quite possibly the best looking N64 game ever made, plus a ton of fully voiced dialogue. But it’s rough. Yeah, it looks great – when you’re standing still. But in motion, it chugs even more than the usual N64 fare. It’s also clearly unfinished with a number of bugs and crashes. Even so, I see the potential here. Had it not been moved over to the GameCube, I think it would have ended up being a top-tier N64 title, though it’s probably pushing the hardware past its limits. Either way, it’s a fascinating bit of history to experience, and I’m thankful I’ve had the chance!

Common PSone Repairs (PlayStation SCPH-101)

PSone Console and Controller

I grew up a Nintendo kid, but for Christmas 1995, I asked my parents for a PlayStation. They didn’t get me one. (Tragic, I know.)

In 1996, I saved up my money and bought a Nintendo 64 on launch day. Shortly thereafter, I even bought a Sega Saturn. From then on, I was a devoted Nintendo and Sega fanboy, finding any opportunity I could to look down on the lame PlayStation. At least, until I got caught up in the PS2 hype and bought one of those on launch day…

After that, I had a real justification for not getting a PS1 – I could play its games on my PS2! Still, something about the redesigned PSone spoke to me when it came out, with its compact form-factor and cool LCD screen attachment. I wanted one almost purely for its aesthetics, I could just never rationalize it.

It wasn’t until I was in my late 30s that I finally found a good justification to get one. I would buy a broken one for cheap and repair it as a project! Sure enough, I did exactly that. And through that experience, I discovered that the PSone is a genuinely fun system to work on.

The PSone is tiny, so it doesn’t take up much space in a console collection. Plus, it’s very repairable and easily moddable. Plus, who doesn’t like that cool little screen attachment!?

Now, I’ve been through the repair, refurbishing, and modding process for a number of PSones. Below are my notes on common faults and fixes. Hopefully, others may find this useful…

Scrambled, Wavy, or Black Screen

There are two surface mount capacitors near the display port, at points marked C550 and C551, which frequently go bad and leak (as so many SMD capacitors do). These two components are part of the S-Video and Composite video signals, respectively. If you’re getting a dark, wavy, scrambled, smeared, or just plain blank screen when you power the system on, it’s likely that one or both of these capacitors is going bad. They’re a common part, being 4v and 220uf, so they can be replaced for pennies. Personally, I prefer to replace them with through-hole components that I’ve trimmed and bent the legs on, but you can replace them with pretty much whatever 220uf capacitors you may already have on hand.

Finicky Power Jack

If you find yourself having to wiggle the power plug around in order to get your system to turn on, you’ve probably encountered one of the most common PSone problems I’ve come across – cracked solder joints. Thankfully, it’s also one of the easiest to fix!

Simply disassemble your system, heat up your soldering iron, and reflow the solder around the jack’s three mounting points. In fact, add some extra solder while you’re at it. This problem most commonly happens when there isn’t enough solder used on components that face lots of repeated physical stress, like power jacks and controller ports. Over time, that stress leads to breaks in the joints. It seems Sony just didn’t use enough solder.

And while you’re at it, reflow the ground points for the controller ports, too. I’ve seen a few systems with cracks there, though none of them have yet caused gameplay issues. I figure it’s only a matter of time, though.

Sticky or Broken Eject Button

I don’t know what it is about the PSone, but so many that I’ve worked on have had janky eject buttons. Most of the time, it’s because dirt and sticky stuff have accumulated under the button (gross). Other times, it’s because something has gone wrong with the springy latch that holds the lid down. There is a delicate “spring” that’s really just a loop of thin plastic which bends in and out when you press the button. That loop can crack or break over time. A little bit of glue seems to do the job to get it working again when it does break. (And, of course, soap and water to clean up whatever grossness has accumulated around it.)

Games not Loading, Slow Loading, or FMVs Skipping

This is a general “CDs aren’t being read correctly” category. If your system isn’t reading discs properly, you may be tempted to replace the whole laser assembly. While that will work, it’s probably not necessary. I’ve had systems that won’t play certain games, or which skip during certain FMV sequences, or are just weirdly noisy or slow to load. All of them have been fixed by adjusting the potentiometer on the laser’s ribbon cable. A very slight clockwise turn does the trick.

Personally, I use a multimeter to read the resistance across the pot in order to be sure of what values I’m working with. The good, working systems I’ve tested generally read between 900-950 ohms, so I aim for that when adjusting a non-working system. The systems that aren’t working properly generally show a higher value to start. (But do note that I’ve seen systems that work best at 1000 ohms, so there will be some trial and error to this process.)

PSone laser assembly. Red square denotes the potentiometer. Arrows denote the two points at which to test resistance values.

That’s all for now! I’m going to dive into a PSone LCD screen repair soon, so watch out for that next.

My Thoughts On: Kirby’s Adventure (NES)

I tend to obsessively dive into my hobbies for short periods of time, which is why you’ll see content on this site ebb and flow. That’s okay because I’m not here to make a living or be an “influencer” or anything like that. This is primarily intended as a place to document and share what I learn in my personal projects – things like hardware mods and repairs, homebrew experimentation, and tinkering with funky accessories.

Lately, my interest in more complicated projects waned around the busy holidays. It’s times like these that I sometimes remind myself that, while things like hacking hardware or learning a new mod can be rewarding in and of themselves, they ultimately serve another purpose: actually playing and enjoying video games!

With that in mind, I was looking for a new game to play over the holidays. I wanted something I hadn’t experienced before, but I also wanted it to be relatively relaxing and chill. No hardcore memorization, grinding, or perfecting of skills. Just something to have a bit of fun with and pass the time while on vacation. And that’s how I settled on Kirby’s Adventure for the NES.

I haven’t had too much experience with Kirby, despite being a Nintendo Kid growing up. I just never paid much attention to the series, even though it’s one of Nintendo’s most prolific and popular. I owned and completed Kirby’s Block Ball because it came with my Game Boy Pocket back in the ’90s. I picked up and played a bit of Kirby’s Canvas Curse in the mid ’00s because it was an interesting use of that unique (at the time) DS touch screen. Sometime in the late ’00s, I got into retro game collecting and added Kirby’s Adventure to my shelf of NES games, but never played it. And that was about the extent of my Kirby experience.

So I dove into Kirby’s Adventure shortly after Christmas, almost completely fresh and mostly unaware of what was to come. My thoughts on the game went through several stages as I played through it.

My first impression was that it was a very well polished game with colorful worlds, catchy music, and an overall cheerful vibe. Exactly what I was looking for. It is, undoubtedly, a technical marvel for the NES. But before long, I was getting a little bored. The first two to three levels are a complete cakewalk, offering almost no challenge whatsoever. And considering this game’s “Levels” are what most platform games call “Worlds,” two to three levels is practically a third of the game!

The difficulty level did start to pick up a bit in later levels, with trickier enemy placements, slightly more complicated boss patterns, and more hidden secrets and exits. But that’s also around the time where I started to get frustrated with the controls. I wouldn’t call this a complicated game, but Kirby has a lot of abilities. Obviously you can run and jump, but you can also duck, float, inhale enemies, dash run, slide attack, and blow puffs of air.

Frankly, that’s a lot to map to a controller with a D-Pad and two action buttons! So I repeatedly found myself cursing Kirby and yelling out things like “Argh, no! I didn’t want to float there!” or “Ugghhh, I wanted to inhale, not blow,” or “Wtf, why did you just run?” Tack on the dramatic slowdown that starts to happen with lots of action on the screen in the later levels, and I just never felt fully in control of Kirby. In a platformer, that’s kryptonite.

So for the middle to later levels, I was feeling pretty sour on the game. But since I knew it was short, I kept playing just to finish and see what else it had to offer. And then I had a revelation that changed my attitude. I stopped feeling frustrated about cheap deaths for one simple reason: this game has absolutely no consequences for failure, whatsoever. Died because my controller stopped responding during a nasty bit of slowdown? No problem, the game puts me right back at the same screen when I start again. Got a game over during a boss fight because Kirby kept floating away instead of running? No worries, I can continue on the exact same fight. Get tired of playing and want to turn the game off? Sure thing, there’s a battery backup, so I can pick up next time right where I left off.

Once I shook off decades of video game conditioning that told me that dying in a game is a bad thing, it became exactly what I was looking for – a chill, relaxing adventure. I beat it but didn’t reach 100%, so I think I’ll casually return to it in the next week or two to find its remaining secrets. And I’m intrigued enough to check out some more of the series. So all in all, I think this was a successful pick. Kirby’s Adventure isn’t perfect, but with the right mindset, it’s certainly worth a play through.

Game BASIC Update: More Homebrew Unearthed

For those of you interested in Game BASIC for Sega Saturn, I have a pretty cool update! I mentioned in the full article that the Internet Archive Wayback Machine did a nice job of archiving several Japanese Game BASIC-related sites from back in the day. In my exploration of those archives, I’ve managed to dig up several interesting programs that don’t seem to have filtered out to the English-language web. (Or, at least, they weren’t archived by Satakore.) One is a small but very well made game, while the other two are fairly robust demos. Here’s more info:

Naruto v1.0

So far as I can tell, this has absolutely nothing to do with the cartoon, so don’t get your hopes up if you’re a fan! Instead, the title refers to the spiral/whirlpool pattern that forms the basis of the game. This is an interesting one-button game, somewhat reminiscent of the old classic Snake. But instead of wandering freely around the screen eating food, you’re a constantly spiraling line. The basic goal is the same, though: last as long as you can without running into anything else, all while constantly growing. Holding a button changes the angle of travel. Last as long as you can to rack up high scores and earn big bonus points by skimming the edge of the line.

The unique gimmick of this game is that it saves a recording of your gameplay to the backup device of your choice. The author even held a high-score competition and asked that players send in their best replays! The downloadable archive includes several of these for you to watch and compete against.

This game was created by NAKATH, who produced several other Game BASIC games and demos. There are two version of this archive available, though both contain the same source code and documentation. The difference is that the November 1999 version includes gameplay recordings that were submitted to the author by other players.

Below are links to the original files. I’ve also provided alternate links in the Game BASIC forum thread, along with English translations of the Readme file.

To browse more of NAKATH’s work, here’s a full directory link to browse everything in the Wayback Machine’s archive of his site. You can find some other little demos and games, as well:*/http:/*

Operation Apollo 1

Another one by the prolific NAKATH, this one was apparently inspired when the author viewed the movie Apollo 13! This is a fairly robust gravity demo with a central object (apparently the moon) and an orbiting rocket. You can change the rocket’s angle with the D-Pad and engage its thrusters by holding the A button, thus changing its orbit speed and angle. Zoom in and out with the L and R buttons.

Again, I have provided an English translation and mirrored downloads of the files in the Game BASIC forum thread.

Do Dan Baku

Roughly translating to “Rage Bomb,” this demo is vaguely reminiscent of a Bomberman game, giving you control of a small character in a top-down arena. But instead of dropping your own bombs, you wander around, setting off the bombs that appear and grow automatically. Set off a chain reaction for big points! This seems incomplete, though, as there are no obstacles or enemies, just a very long timer. Still, it’s pretty satisfying to let the screen fill with bombs and then set them all off at once. (Note: this program requires a standard digital control pad to be inserted in port 1 to run.)

The provenance of this game is a little less clear to me than the ones above from NAKATH. I found the program in an archive of The source file credits the programmer as “Bois,” but I’ve been unable to find anything else by this person. There is no readme to translate, but I’ve provided a mirror of the archive and translation of the program headers in the Game BASIC forum thread:

Hopefully you have the chance to explore and enjoy these pieces of Sega Saturn history! If setting up a whole Game BASIC environment to play old games and demos seems intimidating or like a hassle, I’m working on instructions for how to create bootable ISOs to run Game BASIC programs in emulators or on original hardware. Stay tuned! In the meantime, if you find any other interesting programs that deserve to be shared, please leave a comment here or in the forum thread.

Running N64 homebrew the absurd way: The GameShark Pro loader

Do you really, really want to play homebrew on your original N64 hardware? Is a flash cart just too pedestrian and mainstream for you? Do you posses a GameShark Pro, a 4MB Expansion Pak, and a brain disease that makes you enjoy doing things the hard way? Well, I sure do! And hoo boy, do I have a project for you…

Read on, brave souls, for herein lies the story of how I played a commercial homebrew NES game (legally purchased electronically from Steam) on my N64 via an NES emulator, which I loaded with a GameShark Pro that was interfaced to my Windows 10 PC via a very specific USB-to-Parallel adapter, that was then passed through to a lubuntu virtual machine running via VirtualBox, containing a USB GameShark homebrew loader program.

Doesn’t that sound fun?

This method made the rounds on the web a couple of years ago, but nobody really described how to do it in layman’s terms and the information was a bit scattered. So when I found out about it, it still took some piecing together. Let’s rectify that and make the method as clear as possible. Let’s get started!

The Background

What You’ll Need

  • An original N64 with a 4MB Expansion Pak installed
  • A GameShark Pro with a functional parallel port
  • A USB-to-Parallel adapter based off of a MosChip 7705 bridge
  • The ability to run Linux (I prefer lubuntu on VirtualBox for these sorts of projects)
  • A copy of gs_libusb
  • Your favorite NES ROM (I highly recommend Micro Mages! The Steam version even includes a legal NES ROM that works perfectly for this project.)

The basic goal for this project is that we need to run a Linux application called “gs_libusb” to transfer programs to our GameShark Pro. The tough part is how to get them talking to each other.

The hardest part of making this work might be sourcing the USB-to-Parallel adapter. Any old adapter off of Amazon or eBay or whatever just won’t work. As I mentioned in my post about connecting the GameShark to a PC, it’s only possible to do this with an adapter based off of a MosChip MCS7705 bridge (in fact, gs_libusb is hard-coded to look for it). I don’t know how to identify whether a random cable has this chip, so hunting one down is hard. I did manage to figure out that the USB-1475 manufactured by Cables Unlimited contains this chip and works well. These specific cables don’t seem to be produced anymore and are hard to come by these days. If anyone knows of other cables that contain the right chip, please let me know by leaving a comment.

Next, you’ll need to have the right version of the GameShark Pro. Versions 3.1, 3.2, and 3.3 all came with parallel ports on the back. All versions of 3.1 and 3.2 should work, but only certain versions of 3.3 carts will work. With version 3.3, some contain a working parallel port and some don’t. Usually, GameSharks with a speckled-looking case will work. The folks over at Micro-64 have a good explanation of the difference. (That article also explains how to load homebrew with legacy PC hardware, so check it out if you have an old Windows 98 machine lying around and can’t find the USB-to-Parallel adapter that’s needed for this method.)

Enough rambling, let’s get to it. Here’s the method…

The Method

Step 1: Set up your virtual machine

I won’t go into much depth here about how to set up a virtual machine, I’ll just reiterate that I like lubuntu and Virtual Box for projects like this. Go through the normal setup process for any virtual machine and you’ll be good to go. Here are the important configuration changes you’ll need to make once your install is complete:

  • Install the Virtual Box Extension Pack: By default, Virtual Box only supports USB 1.1. Installing the Extension Pack will allow us to configure USB 3.0.
  • Set your virtual machine to use USB 3.0: Without this step, you’ll be relegated to USB 1.1 and probably get a lot of very frustrating USB timeout errors when you attempt to load anything to the N64. Once the Extension Pack is installed, edit the USB settings for your virtual machine to set them to USB 3.0 mode. Then, with the USB-to-Parallel adapter plugged into your host machine, add a USB device filter for “MosChip Semiconductor MCS7705 Parallel port adapter [0100].” This is what will allow the virtual machine to see your adapter. Or, alternately, add a blank filter to allow all USB devices to pass through.
  • Optional – Install the VirtualBox Guest Additions for Linux: This isn’t strictly necessary, it just makes life easier by allowing you to copy/paste files from Windows to Linux and share a clipboard. Instructions for the install are at the VirtualBox site. I highly recommend doing this, unless you prefer to map network drives to do file sharing between systems.

Step 2: Compile gs_libusb

This is the loader program that will send files to the GameShark Pro, but it’s just provided as source code and needs to be compiled on your system. It’s not too hard, just follow these steps on your Linux machine:

  • Install libusb 1.0 dev libraries: libusb is a tool that allows programs to communicate with USB devices. Your system may have the binaries installed already, but we’ll need the libraries to compile our own code with it. To get them, open a terminal prompt and enter the following commands…
sudo apt-get update
sudo apt-get install libusb-1.0-0-dev
  • Download and extract the gs_libusb project: Grab the whole project from the Github page (download it as a .zip) and extract it to a reasonable directory somewhere, such as your home directory.
  • Compile the code: Open a terminal window in the root gs_libusb-master directory and type the following commands…
sudo make clean
sudo make

Assuming your libusb 1.0 libraries installed correctly, the compile should run quickly, and that’s all there is to this step. You’ll see warnings, but they can be safely ignored.

Step 3: Prepare your N64

Now we need to make sure that the N64 is ready to accept a program we send it. Just do the following…

  • Ensure your N64 has a 4MB Expansion Pak installed: This step is absolutely required, this simply won’t work without an Expansion Pak.
  • Plug in your GameShark: Use a common game, such as Super Mario 64 or Pilotwings 64, in the top slot. Avoid anything that uses the Expansion Pak memory.
  • Plug the USB-to-Parallel adapter into the GameShark: This should be self-explanatory.
  • Boot your game: Power on your N64 and choose to start your game. Make sure to turn the Code Generator ON and start the game Without Cheats. Once the game begins, your GameShark is ready and waiting for commands on the parallel port! (I typically use Super Mario 64, loaded up to the Select File screen.)

Step 4: Run the loader

Finally, the real step. With our VM prepared, gs_libusb compiled, and our N64 waiting patiently, let’s send it something to run!

  • Plug the USB-to-Parallel adapter into your PC: Be careful here and ensure that the VM actually picks it up and sees it. Run the following command at the terminal to ensure the MCS7705 is listed. If it’s not, check your VM’s USB settings and make sure that your host PC hasn’t “claimed” the device. (Unplug it and plug it back in with the VM running.)
  • Copy your ROM to the gs_libusb-master/examples directory: Really, you can put the ROM anywhere on your Linux machine, this will just make the next command simpler.
  • Execute the loader to run an NES emulator and your ROM: Run the following command from the root gs_libusb-master directory. It will load Neon64 and and whatever ROM you specify in place of YOUR_ROM.bin!
sudo ./gsuploader/gsuploader examples/neon64gs.bin examples/YOUR_ROM.bin
  • Let everything load: Here, all you have to do is wait. Your N64 will appear to freeze while the load is happening; that’s okay. Once the load is complete, you should see the Neon64 main screen. Hit any button and play! At any time, you can hit L+R to bring up the main menu.

Step 5: Run other programs

  • The examples folder contains a simple demo program that you can run, too. With everything set up and working, just run the following command to load it instead of neon64gs.bin:
sudo ./gsuploader/gsuploader examples/flames.bin
  • It’s also possible to build and run your own programs to be compatible with this load method. To do so, you’ll need to install gsdevkit, which will give you a complete GameShark-compatible homebrew toolchain. Go knock yourself out!

Much of the info in this tutorial was gleaned from the relevant GitHub Readme files and the following video. Have a look if you want to see someone walk through running the loader:

Running Homebrew on the N64 Without an Everdrive

How the Saturn Floppy Disk Drive breathed new life into Sega Rally

The Sega Saturn Floppy Disk Drive… Useless, or Totally Useless? (Or Totally Cool?)

Let’s face it, Sega did not make a lot of good decisions in the 90s when it came to hardware add-ons and peripherals. The 32X was a straight up debacle. The Sega CD was criminally underutilized. Both are a big part of how Sega lost the trust of consumers, likely contributing to the poor sales of the Saturn and ultimately the company’s demise as a hardware manufacturer. Oh, and let’s not forget about the crazy crap like the Activator. And even an official Sega Power Strip? What the hell was going on over there?

Well, if you’re not already familiar with it, add another one to the list of poorly supported 90s Sega hardware: the Sega Saturn Floppy Disk Drive. The Saturn FDD is, quite possibly, the most superfluous gaming accessory I’ve ever purchased. I recently bought an “untested/junk” drive purely as a project and to have as a curiosity (because I’m a sucker for hardware oddities). After a bit of tinkering. I actually managed to get it working, and you know what? I kinda love it.

Yeah, part of that is the sheer novelty of digging out 25 year old floppy disks from my closet and actually finding a use for them. But part of it is that it’s, well, legitimately useful. But only if you’re trying to do some very specific things.

The folks over at Sega Saturn Shiro have done a fine job of cataloging just how poorly supported this device was. Though the drive was never released in the US, code for it snuck into a handful of games. And by “handful,” I mean nine actually work. So yeah, if you’re looking at this as an alternative to the internal save RAM or a memory cartridge for typical saved games, forget it. Get yourself another backup RAM cart and sleep better at night, with an extra $200 in your pocket.

That said, there is a value proposition here. A single floppy disk, which should cost you no more than $1 if you don’t already have a few laying around, holds over 22,000 blocks of Saturn data. Compare that to the roughly 8000 blocks in an official Backup Memory cart (about $50 these days for a US version), or the 400+ blocks in the internal memory. Given the sheer amount of space you get, the FDD might be worth considering if you’re looking to use it in a few very specific scenarios. Here, in my opinion, are all of those scenarios. All four of them.

  1. You want to do homebrew with Game BASIC and are looking for a fast and easy way to access lots of raw image, texture, and sound data. Streaming the data from your PC each time you load your game is a painfully slow process. The Saturn’s internal memory isn’t nearly enough for even a couple of image files, and backup memory carts will fill up fast. In my opinion, this is actually a great use for it.
  2. You want to get deep into building or playing homebrew shooting games with Dezaemon 2. This is a fascinating world that I’m only starting to scratch the surface of. Long story short, larger storage is a must when you’re building a whole shoot-em-up of your own.
  3. You really, really want to play the Saturn version of Hexen without passwords and don’t want to waste half a memory cart on it. A non-password save in Hexen requires a backup memory cartridge with 3801 free blocks. Absurd. How did this get through QA? Unfortunately, the game doesn’t support direct save and load with the FDD, but you can always copy it to floppy manually to free up space. This is, in my opinion, a legitimate use. Though the broader question of whether you should really be playing Hexen on the Saturn in the 21st century is a whole other can of worms…

And, finally, the reason that is really motivating this post:

4. Multiple Sega Rally ghost files. If you’ve played Sega Rally, I assume you know that there are ghost cars in the game. Set a fast time on a course, and the next time you race it, there will be a “ghost” of your run for you to race against. But did you know that it’s actually possible to save those and race them again any time you want? Well, for the last 25 years, I had no idea! That’s because I never owned an official Sega memory cartridge that supports direct in-game save. I’ve just had a Pro Action Replay since the 90s, and was content with it. But if you plug in an official cart, the game will automatically save your ghosts for next time! If you have almost 2000 free blocks of space, that is.

Okay, but if it’s possible to save ghosts with just the memory cart, where does the FDD come in? Simple – it’s the easiest way to have multiple ghost files. Normally, the game saves all your best ghosts in one save file, which is why it’s so large (and the fact that Sega didn’t bother to implement any compression, but I digress). This is a problem in Sega Rally for one simple reason:

Lancia Stratos.

The Lancia Stratos is, far and away, the fastest car in the game (yes, there are only three, but my point stands). This is annoying because even a mediocre run in the Stratos will typically blow away an excellent run in the Celica or Delta by several seconds. As a result, all your ghosts will pretty much automatically be Stratos ghosts. And that completely sucks the fun out of trying to improve your times with the Celica and Delta. My solution for this conundrum has been to copy separate saves onto floppy for Stratos ghosts and non-Stratos ghosts, then restore whichever I want to practice with to my official memory cart. And I’m loving it! This has completely rejuvenated my interest in Time Attack mode with the Celica and Delta, sparking a whole new interest in the game that had been missing for years.

Now, you might be thinking “why buy an FDD if I could just have two memory carts for way cheaper and do the same thing?” Again, simple. If a memory cart is present, the game will automatically use that for both your ghosts save AND your records save. In fact, if you have a records save in your internal memory, the game will completely ignore it when a memory cart is present. That means, if you want to maintain a single leader board with all your best times, but keep separate ghost files for the different cars, you’re going to be doing a LOT of tedious cart swapping and copying files back and forth between your separate memory carts, using the Saturn’s internal memory as a go-between. Yeah, you could do it, but it’s a dangerous proposition. The Saturn’s cartridge slot is notoriously delicate and that much swapping will most likely destroy it.

“The floppy drive won’t destroy your Saturn because of cartridge swapping” is a pretty strong endorsement, in my opinion.

It Ain’t Pretty But It Works – Connecting the GameShark Pro N64 to a PC

Here’s a little sneak peek into a project I’m currently working on (pardon the mess)… Ever since I managed to get a serial connection working from a modern PC to my Sega Saturn for the Game BASIC project, I’ve been interested in what else I can do by connecting old game consoles to a PC. That led me to the GameShark Pro for N64, which has a parallel port for communicating with a computer.

Unfortunately, the GameShark is an incredibly flaky piece of hardware that gets bricked constantly. I bought three different ones off of eBay and every single one was broken in some way. I returned the first one, but like a true tinkerer, I decided “that’s it, I’m fixing these” for the other two. One was an easy enough fix – all I had to do was boot it with the right game. By sheer chance, after being completely unable to get it to boot with Mario 64, it worked perfectly on the first try with the second game I picked: Jet Force Gemini. That unlocked it and got it working with everything. The remaining GameShark had bigger problems: a corrupted codelist that allowed it to boot, but was completely unusable. However, I had learned that it’s possible to revive bad GameSharks via the parallel connection, so easy enough, right?

Well let me tell you, getting a parallel connection working with any remotely modern PC is an absolute pain in the butt. Unlike USB->Serial adapters, USB->Parallel ones don’t support the full range of the port’s functionality. Basically, they work for printers and not much else. So here’s all I tried:

  • A special USB-to-Parallel adapter… It’s actually possible to load homebrew on an N64 via the GameShark, if you have the right adapter. Specifically, one based on a MosChip MCS7705 bridge. Unfortunately, I have no idea how to tell if an adapter uses this chip and most sellers don’t list that kind of technical information. So I had to do some sleuthing and found that the USB-1475 from Cables Unlimited contains this chip. Problem is, I don’t think it’s made anymore and is hard to track down. I took a gamble on the one seller I could find that had it in stock for a reasonable price. It was a questionable site I’d never heard of before, but you know what? It showed up quickly and was exactly what I’d ordered, all for about $7.50. The cable itself worked in the sense that my PC recognized it, but it didn’t work for talking to the GameShark. Oh well, that was a longshot, anyway. I will save it for homebrew experiments. (And for the record, the site I ordered it from is now out of stock, so I may have gotten the last one. If you know of a good way to identify other cables that will work, let me know.)
  • A mini-PCIe-to-PCIe adapter with a combo Serial/Parallel port adapter… I thought for sure this one would work. I pulled out an older laptop than the one I currently use. It was made for Windows 7 and is currently running Windows 10. I removed the WiFi adapter and replaced it with this mini-PCIe-to-PCIe adapter/extension. Then, I popped a PCIe serial/parallel combo card into the new PCIe port it provides. You can see this whole setup in the pictures, and it actually worked brilliantly… for serial connections. For the life of me, I just couldn’t get it to talk to the GameShark via parallel, either natively in Windows 10 or in Windows 98/XP VMs. I still don’t know what went wrong here, whether it was the adapters not supporting the kind of communication I needed or the VMs or what. So I punted on that approach, which led me to the one that actually worked:
  • A Wyse thin-client with native serial and parallel ports, hacked to run Windows 98 and XP… That’s what you see above. And of course the shipment for the parallel cable I ordered was delayed, so I had to precariously plug the computer itself into a disassembled GameShark. It ain’t pretty, but it works! I have the thin-client running Windows XP Pro headlessly with a USB WiFi adapter so that I can Remote Desktop into it. With that setup, I was able to run the old GameShark PC software, connect to the GameShark, and fix the codelist. I did this by saving the codes from the working GameShark and loading them into the broken one. After tinkering with it a bit, I was even able to upgrade the system software from v3.2 to v3.3!

So there we have it – I now own two working GameSharks and a whole bunch of other hardware and adapters that most people would probably think I’m kinda nuts for having. But the experimenting is half the fun, right? Now to get to hacking! But wait… it turns out I need an N64 Expansion Pak to do all the really cool GameShark<>PC communication. I suppose it’s finally time I got one, huh?