Saturday, May 27, 2017

Rise From Your Grave : The Game Boy Interface

The Game Boy Player (GBP) is a genuine Game Boy Advance (GBA) console that attaches to a Nintendo GameCube (NGC),  It allows you to play Game Boy (DMG/MGB), Game Boy Color (GBC/CGB) and GBA games.  The device fit on one of the expansion ports on the underside of the NGC and could be screwed into it for a permanent attachment.  It was a very popular purchase, essentially the Super Game Boy 1/2 (SGB) two generations later.  Unfortunately, the GBP does not boot or do anything without the Official Boot Disc (OBD) that came with the system.  While the GBP is frequently sold with a NGC, the disc was often lost.  Burning a replacement disc involves finding an image, modding the NGC with a modchip to bypass its copy protection.  Relatively few people have the skill or the inclination to do that.  However, there is an alternative solution these days, and it is a magnificent one.  In this blog entry, I am going to describe my experiences with the Game Boy Interface (GBI) software.


The GBI is essentially a software replacement for the OBD.  It can be downloaded freely from https://www.gc-forever.com/forums/viewtopic.php?t=2782.  In order to get your GameCube to boot the GBI software, you need some way to run homebrew software.  One way is to burn an ISO (included with the GBI zip) and run it from a modchipped NGC.  The other way is to purchase an SD Media Launcher (SDML).  Using the SDML does not require any modding or soldering, so it is a good solution for novice users.

The SDML comes with an Action Replay disc which will work in an unmodded NGC.  It also comes with an SD card to GameCube memory card adapter.  The adapter is a simple passive wiring adapter and is not exclusive to the SDML.  Nintendo released such a device in Japan : https://www.gc-forever.com/wiki/index.php?title=SDGecko.  I bought an SDML from here : http://uk.codejunkies.com/products/sd-media-launcher__ef000580v.aspx.  It cost me $34.27 after shipping and currency conversion from US dollars to British pounds.  It took 11 days to get to the US by U.K. Royal Air Mail.  If you purchase one, choose your correct region.  The OBD will typically run you about $60 on ebay.  The GBP itself tends to go for $25-30.  The SD card adapter takes regular sized SD cards, and it may not work with cards greater than 4GB in size.  This is weird because 4GB cards use the SDHC standard, which supports up to 32GB capacities.

Screen Capture - Action Replay Menu
While I have my original NGC, GBP and OBD, I was eager to run GBI once I read of the advantages it could offer.  The OBD runs all software in 480i or 480p.  GB/GBC games run in 144p and GBA games in 160p.  The SGB1/2 run GB games in 240p with borders.  The OBD has filtering which cannot be turned off and also adds several frames of latency because it must process the GBA's video output through its own Graphics Processing Unit.

The GBI comes in three versions in order to address the weaknesses of the OBD.  First is regular GBI, which offers the ability to zoom and stretch the image far greater than the OBD.  It offers many filter options, including Normal2x and NormalNx for players who like their pixels sharp.  Like the OBD, it has an in-game menu which you can change certain settings.  Latency is only 3-4 frames, on par with the OBD.

Screen Capture - Swiss v0.4 Menu
Next is the GBI Low Latency (GBI-LL) version, which sacrifices some of the advanced features like the filtering and the in-game menu of full GBI for lower latency.  You can achieve 1-2 frames of latency with GBI-LL.

Both the GBI and GBI-LL allow you to change the resolution and frame rate at which the GBP will output.  480i and 480p are supported, but so is 240p (60fps).  240p is the closest to the ideal resolution and frame rate for the GB/GBC/GBA.  It also supports some weird frame rates like 240p/120Hz and 480p/30Hz and 480p/30Hz progressive segmented frame.

Finally, there is the GBI Ultra Low Latency version (GBI-ULL), which sacrifices all user-adjustable settings to achieve a 240p resolution at 59.7276Hz, which is almost identical to the GB/GBC/GBA LCD refresh rate 59.7275Hz.  This almost completely eliminates latency and frame skipping/stuttering.  It does not work on every display device, however.  The NGC allows software to control its refresh rate to a great extent, the SNES does not.  The SNES runs at a fixed 60.0988 fps, so the SGB1, which outputs video at 61.1679fps, and the SGB2, which outputs video at 59.7275fps, must be matched to the SNES's frame rate.  The result is either duplicated or dropped frames.

Screen Capture - GBI-ULL
I am relatively blessed with equipment to test the GBI.  I own the official NGC Component Video cable and a Hori GBP Controller.  Both are rare and I had the foresight to buy them back when NGC was Nintendo's flagship console.  I have an LCD TV from 2014, an LCD TV from 2008, a CRT with component video input, a CRT with S-video input and a 1,920x1,200 ASUS computer monitor with component video input.  I also have official Nintendo S-Video and Composite video cables.

For CRTs, I found that either the component or S-video cables gave an excellent picture on my tube TVs.  In fact, I could see no obvious advantage to using component cables on a CRT.  The improvement from composite to S-Video was substantial.  Composite looks rather blurry, even at 240p.  GBA graphics were meant to be displayed on a razor sharp LCD, so fuzzy video and rainbow artifacting is contrary to the spirit of GBA graphics.  Curiously, the GBI-ULL looks awful in composite due to constant dot crawl or fringing between changes in color.  It is especially noticeable in text.  Stick to the GBI-LL if you must use composite cables.  S-Video cables for Nintendo multi-out consoles (SNES, N64, NGC) are not extremely expensive, although modern LCDs have done away with S-Video ports.  If I had a quality Sony PVM or BVM, I would probably look down on the S-Video connection, but I am not so blessed.

For connecting to an LCD, your best bet is to use a component cable or one of the good substitutes out there.  There are HDMI mods that use the digital port, but they usually require soldering.  This one can actually plug into the Digital port on the back of the NGC without any soldering : http://www.ebay.com/itm/Gamecube-Component-Cable-HDMI-480p-2-0-Blue-Edition-/162525731987?hash=item25d749dc93:g:N4IAAOSw42JZI5tA  All the HDMI mods I have discovered for the NGC do not support better than 480/576p.  The benefit to the HDMI mod is that there is no analog to digital conversion as there is with the component cable.

The component or HDMI mod/cable is the only way to enjoy 60Hz progressive scan from those NTSC games that support it.  The default NGC resolution is 480i, so LCDs must de-interlace that.  480p improves the picture quality as well as ensuring fluid frame rates.   The GBI can scale 160p or 144p by 2x and 3x (in .125 increments) to reduce borders in 480p mode.  If you go above 3.5x, the GBI will drop frames.

In order to run GBI, you need to copy the unzipped files to the root directory of your SD card.  Insert the card into the adapter and the adapter into the NGC memory slot.  Put the Action Reply disc in the drive and when the NGC boots it, it will show you your SD card's directory structure.  You can only execute files with the .dol extension.

You can configure GBI or GBI-LL with a text file you can create called gbi.cli or gbi-ll.cli  These are command line interface files, and the commands appear to be buried within the GBI forum thread linked above.  Most people use Swiss, a homebrew launching software, to configure GBI & GBI-LL.  You can find the download links to the most recent build of Swiss here : https://www.gc-forever.com/wiki/index.php?title=Swiss.  Instead of executing the GBI/GBI-LL/GBI-ULL .dol from the Action Replay menu, you boot into Swiss, swiss_r387.dol for the most recent build available.  That will boot into Swiss and show you a different directory structure menu (blueish/purple background instead of white for the Action Replay).  If you see a garbled screen on a CRT, reboot and hold the L trigger down, this will force Swiss to boot into 480i mode.  The B button will toggle between the Swiss menu and navigating the folders.  When you run gbi.dol or gbi-ll.dol, you will see their configuration menus.  Unless each item is checked, the default choice will be used.  gbi-ull.dol has no configuration menu.  You can rename swiss_r387.dol to autoexec.dol to automatically boot into Swiss.

When using GBI, you can bring up the menu by pressing the X button.  Hold down the Start button to reboot the NGC.  Pressing the R and L buttons will resize the screen and  using the D-pad will positition the active screen image within the frame.  On my ASUS 1920x1200 monitor, resizing can get you this :


You can swap out cartridges without turning the NGC on and off.  Pressing reset on the NGC will bring you back to the EverDrive GB or EverDrive GBA X5's menu.  To exit from GBI-LL or GBI-ULL completely, you will have to power off your system.  If you want to try new settings from GBI or GBI-LL, the software will restore the the state of the game when you left if after you restart.  You can download the borders from the OBD and use them as borders in GBI, the link is located on the main GBI forum thread, linked above.

One hidden, if tiny, benefit I discovered by using GBI is that it will play Game Boy Advance Video cartridges.  The OBD will refuse to load these cartridges, and the cartridges themselves have a splash screen where they state they are not compatible with the GBP.  There is no hardware reason why the GBP cannot run these carts, as the GBI proves.  Of course the compression and frame rate reductions used to get these TV shows and movies to fit into a 32MB/64MB cart looks much worse on a large CRT TV or LCD TV than a 2.9" LCD screen.

Here is a summary of my display test results :

Display Type Component S-Video Composite Notes
2014 Vizio 4K TV LCD Excellent 480p N/A Not Tested No 240p support
2008 RCA 1080p TV LCD Excellent 480p Not Tested Not Tested
Asus 1920x1200 Monitor LCD Excellent 480p N/A N/A
Toshiba 27” CRT Excellent Excellent GBI-LL Good, GBI-ULL Bad No 480p support
Durabrand 27” CRT N/A Excellent GBI-LL Good, GBI-ULL Bad
Sylvania 19” CRT N/A N/A GBI-LL Good, GBI-ULL Bad

In conclusion, the GBI is an absolutely essential purchase if you want to play GB/GBA/GBC games with a GBP.  The price is reasonable, the software is easier to work with than you may think and the games can usually be made to look great on any system.  Here is some video capture I took of the GBI-ULL through an S-Video cable :




2 comments:

  1. SDHC was late in coming, and there was an "unofficial" way to make 4GB SD cards that worked in many non-HC devices, so they were pretty popular. That might be what we're looking at here. If so, a proper SDHC 4GB card probably doesn't work, only the slightly off-spec ones. I used to have a car stereo with the same restriction.

    ReplyDelete
  2. I came from the future to warn you: Your post still very helpful in 2019 =)

    ReplyDelete