nitro2k01’s SGB Enabler for EZ Flash Jr

August 19th, 2021

EZ Flash Jr is an SD card based flash cartridge for the Gameboy and Gameboy Color. While economical, there’s one feature that has been missing from it, namely good support for SGB (Super Gameboy). You can sometimes get it to work by hitting the reset button at exactly the right time, but even then any SGB enabled game would lack any SGB enhancements, like custom borders. The SGB Enabler is a modified version of EZ Flash Jr Kernel 1.04e which mostly solves these problems.

This is a beta version - feedback appreciated. Especially from people using a NTSC SNES or a SGB2.

What was the problem and how does the SGB Enabler work?

The SGB contains a full Gameboy CPU and the SNES is used to show the graphics and sound from the Gameboy. But before the SNES allows an image to be shown, it needs a message from the Gameboy to validate the cartridge. Unfortunately, EZ Flash Jr holds the CPU in reset (basically locks it up) while it’s loading its own firmware. Because of this, the timing is thrown off. The SNES never gets the message and only shows a black screen forever.

But the Gameboy CPU is still running in the background. The SGB Enabler sends the same commands as the Gameboy boot ROM would normally send, and the SNES allows an an image to be shown.

How do you use the SGB Enabler?

Simply copy the included ezgb.dat file to the root of the SD card, overwriting the existing file. Then start the Super Gameboy. (download link at the bottom of the page.) You do not need to touch the reset button on either the cartridge or SNES. It just works.

Does the SGB Enabler restore all SGB functions?

Yes, it enables the game to use colorization and border graphics, and even special sound effects in the few games that use those. And Space Invaders 94’s SNES arcade mode works as well.

Is the SGB Enabler safe to use?

Yes. The SGB Enabler only modifies the kernel (menu), and doesn’t touch the firmware (FPGA). Therefore, you can simply restore it to its original state by copying the original ezgb.dat file from EZ Flash Team onto the SD card, and there’s no risk of bricking. You do not need to upgrade to FW5 (which Team EZ Flash removed). It’s recommended to use FW4.

Can I still use the SGB Enabler on a DMG/GBC?

Yes, the only downside is that the boot time is longer because it always tries to send the commands to wake up the SGB as explained above. I will try to figure out a way to fix this later, but this is just an early beta version to get feedback from users. If this is a problem, simply replace ezgb.dat with the original file from EZ Flash. (Detecting the hardware is not as straightforward as it seems because the EZ Flash Jr has an internal boot ROM that erases the initial registers that programmers normally use to detect which type of hardware the game is running on.)

Does the SGB Enabler work on both PAL and NTSC Super Gameboys?

I only have a PAL SNES, but I’ve region modded it so I can select PAL or NTSC. In my testing, I’ve made sure the SGB Enabler works in both PAL and NTSC mode, but feedback from someone who has a real NTSC SGB would be appreciated.

The SNES reset button doesn’t work!

Please use the reset button on the cartridge, or power cycle the SNES to restart.

Download

Download kernel104-sgbenabler.zip