Monday, April 15, 2019

Three High-Quality 1080p Game Boy "Consolizing" Solutions Compared

For some reasons, probably strange, many people like to play Game Boy or Game Boy Color games outside their portable confines.  One reason is that the games are good but the original screens for these devices are terrible to look at by modern standards.  Nintendo has on certain occasions tried to satisfy the need to play portable games as though they were home console games, but those solutions are old.  Pure software emulation can easily take the GB to 1080p and beyond, but software is wholly divorced from original hardware.  There are software emulators with dumping cartridge slots like the RetroN 5 and Retro Freak, but they are only 720p solutions.  A promising new mod called the GBA Consolizer is an FPGA-based upscaling solution for the Game Boy Advance but is limited to 720p output.  There was a mod called the HDMYBoy a few years ago but it never got beyond a few prototype units.  For this blog article, I will focus on hardware-based solutions which I have some ability to experience personally and can deliver a 1080p experience.

Nt Mini - Castlevania: The Adventure GB Core
1.  The Nt Mini

Pro : Highest Quality Digital and Analog Video & Audio, Cartridges and Expansion Devices Not Required, NES Controller Support

Con : Most Expensive, Nt Minis Not Currently Produced, Occasional Compatibility Issues, No Zero-Delay HDMI Mode, Special Cartridges Not Supported

Supported : Game Boy, Game Boy Color

Required : Nt Mini, SD Card

The Analogue Nt Mini is an FPGA-based console that supports the NES and optionally supports a Game Boy and a Game Boy Color core in its jailbreak firmware.  This allows you to load GB and GBC ROMs via SD card and play them via HDMI.  The GB and GBC use a 160x144 resolution with a 1:1 pixel aspect ratio.  These cores support up to a 7.5x vertical scale and up to 12x horizontal scale, so you can achieve an ideal upscaled image of 1120x1008.  The cores will allow you to load any official GB, SGB or GBC bootstrap ROM if you wish for that extra degree of authenticity. 

The GBC core, with the GBC bootstrap ROM loaded, will apply the same colorization that an original GBC does.  The GB core essentially forces a monochrome palette and fixes a few compatibility issues with GB games run on a GBC.  There is no option to change the colors displayed by the GB core.  The Nt Mini has only NES and NSF Player cores built-in, and loading the GB/GBC cores takes approximately 30 seconds off an SD card.  Switching between the GB and GBC cores happens instantaneously.

Nt Mini - Super Mario Bros. Deluxe GBC Core
Compatibility is very high with commercial Game Boy and Game Boy Color games.  These cores support the common memory management controller chips : MBC1, MBC2, MBC3 & MBC5.  It does not support the real-time clock feature of MBC3 or other memory controller chips.  However, with Game Boy games, as of the latest core, Pinball Fantasies and Pinball Mania will crash, Super Mario Land will sound incorrect when the time is counted as you complete a level and Alleyway will be uncontrollable.  Mega Man Xtreme will show incorrect colors on certain sprites on the GBC core.

The Nt Mini supports original wired NES controllers, which is ideal for GB and GBC.  It also came with an 8bitdo NES30 controller, so you did not need to supply a controller.  The engineer behind the Nt Mini did discuss making cartridge adapters for many of the systems the Nt Mini supports, including Game Boy, but those have not come to fruition at the time of this writing.

Nt Mini - Super Mario Land Analog RGB Capture
CRT TVs and monitors care not that the refresh rate is slightly under the canonical 59.94 NTSC refresh rate.  HDMI monitors often will care, which is why when you are running these Cores digitally, they will enforce a frame buffer to convert 59.7275Hz to 60Hz.  This will result in one frame of lag or a screen tear line traveling vertically up the screen often.

In Analog mode, you might think that video should run at the GB and GBC's native refresh rate, 59.7275Hz.  Additionally, the Nt Mini supports high quality analog output.  RGB, Component Video, S-Video and Composite Video are all possible through its HD-15 port with appropriate cables.  However, in Analog mode the Game Boy core is implemented like the Wideboy peripheral that allowed developers to output Game Boy games to the NES.  The frame rate is the NES's frame rate, 60.988Hz and the GB's 160x144 active display is centered within the NES's 256x240 display.  Unlike the Wideboy, the Nt Mini can run GBC in this manner.  Buffering is still required, as it is with the Super Game Boy or the Game Boy Player.

Nt Mini - Donkey Kong GBC Core with GBC Bootrom Coloe Palette
The Nt Mini allows you to set the volume levels of each of the four GB channels (Rectangle 1, Rectangle 2, Sample, Noise) independently.  Also, even though the GB does have basic stereo capabilities (each channel can be assigned to output left, right or both), you can control their panning individually.

The biggest issue with the Nt Mini as a current option for 1080p GB/GBC play is that it is not currently available.  It was last sold in August-September of 2017 and Analogue has since then been manufacturing the Super Nt and then the Mega Sg.  The only likely way to obtain one is through eBay, where you can expect to spend over $1,000 on the console.  In the past year, Nt Mini's have gone for over $2,000, although the median price at the time of this writing appears to be about $1,500.

Super Nt - SGB2 Super Mario Land (with Predefined Palette)
2.  The Super Nt with Super Game Boy

Pro : Least Expensive Solution, Digital Video, Exclusive Functionality, SNES Controller Support

Con : Audio Filtering, Super Game Boy Frame Interpolation and Speed Up (for SGB1), Fewest Games Supported

Supported : Game Boy, Super Game Boy

Required : Super Nt, Super Game Boy or Super Game Boy 2

The Analogue Super Nt is an FPGA-based SNES console, and through its cartridge port it does support the Super Game Boy expansions.  The SGB contains a standard Nintendo GB CPU(/APU/PPU) chip and works without an issue in the Super Nt.

The Super Game Boy works with the SNES to deliver Game Boy graphics and audio to the player.  Every frame the SGB sends all the data of the active GB screen to the SNES's PPU.  The game are displayed as a 160x144 window within a 256x224 resolution screen.  The Super Nt can scale 256x224 graphics to a 5x/5x scale in 1080p mode.  This will give the active GB display a resolution of 800x720 and the full display a resolution of 1280x1120 (1080 lines visible).  Unlike the original SNES, which uses a 1.14 PAR, the Super Nt has no difficulties with displaying a 1:1 PAR using its scalers.

The SGB can apply colorful borders to the non-active display area and can change the palette to any four colors that the SNES can display (15-bit color, 32,768 colors).  Many later GB games had support for special features when used by the SGB such as more colorful graphics, sound effects produced by the SNES APU, two player support using the SNES's 2nd controller port.  The Super Nt is the only method in this article that supports these features in HDMI.

Super Nt - SGB Konami Classic Collection Vol. 1 (Re-released for SGB)
The SGB supports SNES controllers, which are another great way to play GB games.  However, I prefer the button arrangement assignment where SNES Y is assigned to GB B and SNES B is assigned to GB A, but that is not the SGB's default arrangement.  Other people prefer the default where SNES B and A are assigned to GB B and A.

The original SGB sped up the internal GB CPU so Nintendo wouldn't have to add another crystal to the SGB's PCB.  This results in a slight but audible increase in pitch.  Nintendo fixed this issue with the SGB2, but that was only released in Japan.  If you don't own an SGB, they can be secured for less than $20, but an SGB2 will likely have to be imported from Japan and costs over $40 + shipping.  If you want to modify your SGB for the proper speed, the proper mod is easy to perform and at $15 is a no-brainer. It doesn't add the communication port on the SGB2.  If you had two Super Nts, two SGB2s, two cartridges or flash carts, two monitors and a link cable, you could play two player GB games as though you had two handhelds.

Super Nt - SGB Donkey Kong (Fully Enhanced Game)
Unfortunately, even when the GB is running at the correct speed, it is governed by the SNES's refresh rate of 60.0988Hz, not its own 59.7275Hz.  That means that the SGBs must add or drop frames to match the SNES's refresh rate.  There is also some lag because the SGB has to read the button state of the SNES controller rather than directly read the buttons connected to the GB CPU.  It is generally a minor issue and less noticeable on the SGB2 than the SGB1.  This would not change even when the Super Nt gains analog output capabilities when the Analogue DAC is released later this year.

There was never and can never be a Super Game Boy Color because the SNES's PPU just does not have the bandwidth to accept much more than 2-bit monochrome 160x144 frames.  The GBC outputs 15-bit color 160x144 frames.  This is why other system expansions for the SNES, and there have been expansions released that support NES, Genesis and GBA, output their video via analog video connections directly on the expansion device.

Super Nt - GB Space Invaders "Arcade Mode"
Video is generated entirely digitally in the SGBs are displayed through the Super Nt, but audio is generated by the GB CPU inside the SGBs.  The audio is then directed to the cartridge slot and mixed in with the internal SNES APU audio.  The Super Nt runs the external audio through a ADC but applies a rather heavy low-pass filter, heavier than you may prefer.  It also has the external L & R inputs swapped, this can be reversed by checking the appropriate setting in the Super Nt's audio menu, but that reverses the internal L and R audio too.  Finally, the original SNES tied its audio inputs to ground with 200 Ohm resistors, but these were omitted on the Super Nt, so the SGB can pick up and deliver unwanted bus noise.

One benefit to the Super Nt and the Super Game Boys is that you can use any Super Game Boy (including 2) from any region in the Super Nt, whereas you cannot in original systems without modifying the cartridge slot and defeating the lockout chip (for PAL SGBs in NTSC systems and vice versa).  However, Space Invaders for GB, which has a SNES version of the game which loads into the SNES's RAM, is region locked.  You need to set the region of the Super Nt appropriately to play the SNES version depending on which region's cartridge or ROM you are using.

GameCube GBI High Fidelity 360p - GBA - Super Mario Advance 3: Super Mario World

3.  The Game Boy Player with Game Boy Interface

Pros : Most Faithful Overall Solution, Many Configuration Options, Greatest Number of Games Supported

Cons : Complex Setup, Reliance on Analog Video, GameCube Controller not Ideal

Supported : Game Boy, Game Boy Color, Game Boy Advance

Required : GameCube with Digital A/V Port, Game Boy Player, SD Media Launcher (or some other method of booting homebrew software on GameCube), GameCube Component Cable, Open Source Scan Converter or XRGB-mini Framemeister

GameCube GBI High Fidelity 360p - GBA - Metroid Fusion
This method of getting GB and GBC on 1080p is the "purest" but also the most complex of these three by far.  The sheer amount of equipment you will need is mind-boggling.  First, you need a working GameCube with a Digital A/V Port.  You will also need the Game Boy Player, which allows you to play GB, GBC and GBA games via the GameCube's video and audio output.  Both console and expansion are official with this option.  Unfortunately that is just the beginning.

The purest, sharpest output video output available from a GameCube is still the official GameCube Component Video cable.  The GameCube outputs a digital YCbCr 4:2:2 signal from its GPU.  The Component Video cable converts that into an analog YPbPr signal for NTSC consoles.  PAL consoles convert digital YCbCr 4:2:2 into analog RGB, which is a slightly more lossy conversion than to YPbPr.

GameCube GBI High Fidelity 360p - GBC - Shantae
GameCube HDMI devices like the Carby and the GCHD mk II and the HDMy Cube are based on the open source GCVideo project from an individual who goes by the handle "unseen".  GCVideo reverse engineered Nintendo's digital port with the idea of making replacement GameCube component video cables.  Others took it to add HDMI support, as HDMI supports YCbCr 4:2:2.  Unfortunately, GCVideo is an evolving project and when these products were first released, its color decoding code was not quite accurate.  These products are not designed to be upgradeable, but their makers may have adjusted their color settings.  The homebrew software swiss can fix these errors.  They also only convert signals from digital to digital, there is no upscaling what is essentially a 480p image.

GameCube GBI High Fidelity 360p - GBC - Konami Collection Vol. 1
The Game Boy Player typically double scans 240x160 GBA screens to 480x320 and displays them within a 608x448 frame.  GB and GBC games are double scanned to 320x288.  The official disc provided colorful borders to display around the active display area.  On a digital display, maintaining a proper 1:1 PAR is no issue.

GameCube controllers are not ideal to play GB, GBC or GBA games.  The D-pads on most GameCube controllers are tiny and not in an ideal location for your thumb.  The shoulder buttons are analog on a GameCube and have a lot of travel.  GBA shoulder buttons are digital.  Hori released a Digital Gamepad for the GameCube back in the day, but it is currently a high priced ($160.00) eBay item   In my opinion it is the best controller for the Game Boy Player.  The second best controller is probably a Game Boy Advance using the GBA to GameCube adapter.  You can set a fast polling rate of 1000Hz in the Game Boy Interface software configuration to minimize lag.  Another option identified by RetroRGB that allows SNES controllers to work with a GameCube controller port can be found here.

While the hardware to this point has been official, the software required to achieve 1080p is decidedly unofficial.  You need to use those two pillars of the GameCube homebrew community, swiss and Game Boy Interface.  Before you can do that, you need a method to load homebrew software on your GameCube.  Most people use SD Media Launcher, which lets you load software via SD card and comes with an Action Replay boot disc and an SD-to-Memory Card adapter.

GameCube GBI High Fidelity 360p - GB - Ninja Gaiden Shadow
GBI lets you select 240p output, the official disc is limited to 480i or 480p output.  With that 240p output, you can upscale that via the official component cable to 1080p via a Framemeister or OSSC.  These scalers will output HDMI at 1080p (the OSSC can go up to 1200p) and can do so in a sharp, nearest neighbor fashion.  You can easily obtain a 4x/4x scale of the GBA, GBC and GB's resolutions, giving you an effective 960x640 or 640x576 resolution.  The OSSC can give you Super Nt resolutions with its 1200p/5x mode, but unlike the Super Nt it can actually show all 1200 of those lines if your display supports it.  These scalers are costly, with the OSSC being priced at just over $150 and the Framemeister retailing for over double that.  However, they can be used for any console supporting high quality outputs.  A Datapth VisionRGB E1/E1s can also be used as an upscaler, but it adds more lag than the OSSC or Framemeister.  It also can add a purple border.  Any of these devices will take some time to master.

GBI has an excellent feature, support for 360p mode.  This is really a 960x360 mode with oversampling.  This mode can be line doubled or tripled by the OSSC to give a 1080p image.  Its biggest benefit is that it eliminates the excess border, leaving only vertical strips for GBA games and single border for GBC and GB games compared the double border of the 240p mode.  The GBHIHF OSSC preset .DOL executable starts out in this mode.  For the Datapath, use a capture window of 480x360, a horizontal size of 600 and a phase of 21.  The result is a 6x/6x scale for the GBA, GBC or GB.

GameCube GBI High Fidelity 360p - GB - Alleyway
One of the better features about GBP + GBI is that it can be very faithful to the original data.  Video data in the GBP is sent to the GameCube via a framebuffer and then can be output to the digital port.  GBI can output at a 56.7226Hz, nearly identical to the ideal.  It also has settings to allow you to adjust the colors to the more washed out palettes of the original, non-backlit GBC and GBA screens.  Audio is processed digitally from the GBA to the GameCube.   OBS can scale and crop the borders, but you really do not want to be playing these games through that amount of lag.

As the Game Boy Player has a GBA Game Link port, you can play multiplayer games in a similar manner as described above for the Super Nt and Super Game Boy.

1 comment:

  1. Great article! I appreciate you writing this!