Super Game Boy 1 and 2

Solving the issue of a small green screen, Nintendo's Super Game Boy was created to play Game Boy games on the SNES, and allows some games to have multiple enhancements including additional sounds, custom palettes, borders, alternate soundtracks using the Super Nintendo's SPC700 (using the standard Nintendo sound driver), or even custom code to run any form of SNES code can be read from the Game Boy game...few people bothered aside from slapping on a border and half-arsed palettes, though games like Space Invaders and Small Soldiers really show what could have been done.

Nintendo later released the Super Game Boy 2, an updated version that adds Link Cable support, additional borders, and new credits music along with booting games quicker and playing them at the correct speed.

Unfinished Speed Setting and Useful Features
By setting the RAM address to any non-zero value, or the ROM address  you will set the menus and screensavers to function at twice the speed. It is now possible to speed up the cursor by pressing A and holding B grants access to turbo A selection. Graphic glitches ensued depending on how late you enable the code during startup. is actually written to twice during startup and always when in-game to see if the bit is set, so this might have been used for debugging purposes. Could have been left unfinished due to button mapping issues, though using L and R would have been fine for the menus. This does not affect game-play.

Might also have been intended for a command that would allow proper menu navigation for games that are heavy in transferring palettes or was a separate command altogether seeing how this was finished half-way through.

Initial Border Setting
There is a RAM variable that if set to, the Super Game Boy will not jump to the initial border (or any additional borders) from the default Super Game Boy border upon loading. Nintendo may have used this setting for testing the PCT_TRN command.

Super Game Boy 1 and 2 Differences
Music for both the Super Game Boy 1 and 2 were changed from a Swing-eqsue song to a Rock-and-Roll theme.

Music
While technically used, the credits theme is padded from. Value is used for the credits music. Padding was necessary in order to prevent the APU from crashing when songs exceeded allowing games to have Super Game Boy soundtracks and storing more than two songs in ARAM, overwriting music data in the Super Game Boy sound bank. Pressing X to switch palette settings in-game will set the song (where "??" is 00-0F; song listing differs per game and bank). Setting the music bit to either or  will stop all Super Game Boy audio.

The GB Memory cartridge sets right before making the JUMP to the selected game, so these settings are likely used to prepare the APU for the new SNES program code.

Unused Sounds
Several sound effects are reserved for Game Boy games offering enhancements that may call the SOUND command whenever needed to play a specific sound per situation basis ranging from explosions, rainstorms, fires and others as seen in several games such as The Pagemaster, Kirby's Dream Land 2, Pro Mahjong Kiwame GB and many other games. Real Bout Special (Fatal Fury), and Nettoh Beast Wars will allow testing of each sound effect, the Super Game Boy release of Tetris 2 offers a limited Super Game Boy sound test in the debug menu.

SNES Pro Action Replay code (where "??" is 00-30) will modify the A-type sound played when pressing X to switch palette settings;  (where "??" is 00-0F) will change the pitch/volume setting. (where "??" is 00-19) sets the sustained B-type sound effects upon pressing X. Setting B-type sounds to will stop all Super Game Boy audio until  is set, used for system settings.

Unfinished Sound Function
Normally when pressing X to swap between selected and default palettes (unless the game disables the palette settings), you would hear a glass breaking sound effect. An unfinished function exists that assigns each of the 34 palette settings one of the 48 unused sounds specific to each row and palette column. Nintendo did not assign specific pitch/volume commands and the default is set.

SNES PAR code will re-enable this feature. Setting the bit to will play the first 34 sounds, while setting the bit to  will play the rest of the sounds starting from palette column 1.

Custom Palette Test Palette
Leaving the custom palette the default setting a test palette can be seen. SNES PAR code will set any game that uses the default 1-A palette the custom palette setting. Creating a custom palette will replace the default setting for the duration of the game.

BIOS Information
BIOS strings for both the Multitap and SNES Mouse are found in the Super Game Boy 1 and 2 BIOS. Multitap support for up-to four players is possible in specific Super Game Boy supported games such as Wario Blast: Featuring Bomberman!, Bomberman GB, Battle Arena Toshinden, Rock'n! Monster!!, and other games that are suitable for multiple players on the same screen and where controllers can be reasonably alternated between players. Only controllers 1 and 2 are able to access the system menu, as well as the SNES Mouse for navigation and drawing graffiti. Additionally, the second player controls both the system menu and the game simultaneously.

This appears to be an oversight of the programmers fault, possibly hinting that support for the two-player feature itself was added later on as a Super Game Boy enhancement for games to utilize.

Multitap
START OF MULTI5 BIOS

NINTENDO SHVC MULTI5 BIOS Ver2.10 END OF MULTI5 BIOS START OF MULTI5 CONNECT CHECK

Mouse
NINTENDO SHVC MULTI5 CONNECT CHECK Ver1.00 END OF MULTI5 CONNECT CHECK START OF MOUSE BIOS

NINTENDO SHVC MOUSE BIOS Ver1.00 END OF MOUSE BIOS

IOS

Game Boy Internal Filenames
Starting at is a list of internal filenames used to detect specific games published or developed by Nintendo prior to 1994 and applies a single predefined palette out of the 32 defaults. Assume all regional and revision versions display the same palette unless the game was released under a different name for a particular region (i.e. Mario & Yoshi, Yossy no Tamago, and Yoshi are the same game with different names depending on region). Oddly, Radar Mission has no specified palette.

Balloon Kid (appears as BALL..N KID in the Super Game Boy ROM text, yet is named BALLOON KID in the Game Boy ROM header) uses the default palette. Most likely, Nintendo wanted to acknowledge the game but couldn't find a suitable palette or were too lazy to create a new palette.

Unused Region Incompatibility Message
This message is displayed in the first Japanese revision of the Super Game Boy BIOS when attempting to play the cartridge in a PAL SNES console.

SNES PAR code or Game Genie code  will start up all later Super Game Boy 1 and 2 BIOS revisions at this region error screen. Nintendo probably came to their senses and scrapped regional incompatibility since the Game Boy is regionally compatible with any game. Nintendo also never bothered updating the screen for the Super Game Boy 2 using the rainbow font.

Text for the message can also be found at : This Super GAME BOY is not designed for your SUPER FAMICOM or SUPER NES. Nintendo

Crayon
Pro Action Replay code enables an otherwise-unused greenish crayon that comes in miniature and huge sizes! An icon fitting the palette scheme also exists.



Unused Commands
Several Super Game Boy command packets controlling specific Super Game Boy features were never used by any commercially-released game, or never seem to have an actual effect on gameplay. Interestingly enough, roughly 60 percent of all Super Game Boy enhanced games list all of the commands in some form, likely remnants of a Nintendo tech-demo, or an SDK dev-kit used to show developers the many enhancements available for games to take advantage of and showcase the potential of the Super Game Boy. Wario Land II is notable for having a completely unused sound table listing.

Unfortunately, very little of the impressive and exciting enhancements were used, if at all, even by Nintendo. Most developers felt that throwing in a border and or a few palettes was good enough to call a day likely because time, and memory constraints which was driven by the expense of additional ROM and or the possible inclusion of SRAM battery back-up at the time.

Super Game Boy 2
Alternate enhancements can be given to games when played using a Super Game Boy 2 adapter. Tetris DX is the only known example displaying an alternate border. A demo showing the differences between the Super Game Boy and Super Game Boy 2 was given along with the official Super Game Boy dev-kit and programming documents. Super Game Boy 2 detection is achieved by examining the internal value of the CPU upon boot-up. is for normal Game Boy or Super Game Boy and denotes Super Game Boy 2.

Unused ICON_EN File Register Disable Function
A feature never used by any game exists to disable file transfers can be achieved by setting the bit to. Usually you will notice attract-specified attributes not working only showing four palettes on the screen or any files sent to the SGB BIOS via *_TRN command will not send. SNES PAR code will disable register file transfers.

TEST_EN
Code TEST_EN. Test Enable. Command. A speed function capable of speeding up the inserted game by 2x the normal speed. Players who own a Super Game Boy Controller can access the speed-up function by holding UP during startup and pressing the SPEED button. The TEST_EN packet is disabled by default (bit set to ). Game Boy game Mini 4 Boy II calls TEST_EN during startup though the bit is never set rendering the command useless. World Jet Heroes 2 has been said to enable TEST_EN through using the Turbo Mode cheat though the game merely speeds up.

The official Super Game Boy NOA/NOE programming document actually defines TEST_EN as "Use prohibited", and the function is not explained anywhere except in the Japanese documents. Likely this defined as "Use prohibited" because a programming glitch in the first revision of the Super Game Boy BIOS is present where the command points to a RET instruction rendering it unused. Graphics will glitch when the Game Boy game is sped up, and there is an expected possibility that the game will crash.

OBJ_TRN
Code OBJ_TRN. Object Transfer. Command. Used to display up to 24 entries of scrollable 8&times;8 or 16&times;16 SNES Objects on the screen, comprising a total onscreen palette of 256. Real Bout Special Fatal Fury and Bomberman Quest call OBJ_TRN even though neither game loads data into the SNES VRAM.

(Mario's Picross and the Japanese version Mario no Picross do not show the title screen logo as an SNES object, rather using the border to fill the in-game action window. Pokonyan! Yume no Daibouken and Pocket Love 2 had the initial idea to use objects for the title screen during development and for unknown reasons they were ultimately canned aside from a few traces of data. CHR for the completed mural in Monster Rancher Battle Card GB exist and is said to show the unused function.)

When SNES object mode is enabled, screensavers are disabled giving the same effect as the command ATRC_EN with bit 01 set to, likely because SNES CPU speed would be heavily invested in drawing and reading the objects from the game.

For unknown reasons, the official NOA/NOE Super Game Boy programming document actually defines OBJ_TRN as "Use prohibited", and the function is not explained anywhere. No wonder nobody used this feature. Using the feature would not be lightweight from both the Game Boy game and Super Nintendo as the CPU usage would be quite excessive when using too many objects and using the Game Boy CPU would be required to run game logic. Practically useful for title screens and cutscenes since the bottommost of the Game Boy screen would be used to transfer object data as well. Here are the unused OBJ_TRN caveats.

Byte: Setting: 0    Command*8+Length (fixed length=1) 1    Control Bits Bit 0  - SNES OBJ Mode enable (0=Cancel, 1=Enable) Bit 1  - Change OBJ Colour     (0=No, 1=Use definitions below) Bit 2-7 - Not used (zero) 2-3  System Colour Palette Number for OBJ Palette 4 (0-511) 4-5  System Colour Palette Number for OBJ Palette 5 (0-511) 6-7  System Colour Palette Number for OBJ Palette 6 (0-511) 8-9  System Colour Palette Number for OBJ Palette 7 (0-511) Palette entrees are ignored if above Control Bit 1 is zero. Because each OBJ palette consists of 16 coluors, four system palette entries (of 4 colours each) are transferred into each OBJ palette. Specific system palette numbers are not required to be         aligned to a multiple of four, and will wrap to palette number 0 when exceeding 511. For example, a value of 511 would copy system palettes 511, 0, 1, 2 to the SNES OBJ palette. A-F  Not used (zero) The recommended method is to "display" Game Boy BG tiles from F9h-FFh left to right as the first 7 characters of the bottom-most character line of the Game Boy screen. As for normal 4KByte VRAM transfers, this area should not be scrolled, should not be overlapped by Game Boy OBJs, and the Game Boy GBP palette register should be set up to avoid conflicting with the normal in-game palettes. SNES OAM data can be defined in the 70h bytes of the Game Boy BG tile memory at following addresses: 8F90-8FEF SNES OAM, 24 Entries of 4 bytes each (96 bytes) 8FF0-8FF5 SNES OAM MSBs, 24 Entries of 2 bits each (6 bytes) 8FF6-8FFF Not used, don't care (10 bytes) The format of SNES OAM Entrees are: Byte 0 OBJ X-Position (0-511, MSB is separately stored, see below) Byte 1 OBJ Y-Position (0-255) Byte 2-3 Attributes (16bit) Bit 0-8   Tile Number     (use only 00h-FFh, upper bit zero) Bit 9-11  Palette Number  (use only 4-7) Bit 12-13 OBJ Priority    (use only 3) Bit 14    X-Flip          (0=Normal, 1=Mirror horizontally) Bit 15    Y-Flip          (0=Normal, 1=Mirror vertically) The format of SNES OAM MSB Entrees are unknown. However, 2 bits are used per entry: One bit is the most significant bit of the OBJ X-Position. The other bit specifies the OBJ size (8&times;8 or 16&times;16 pixels).

Unknown F5
v9ENpaBlMnE

Undocumented command will read the proceeding data as five packets. Might be useful to quickly play sounds or create a transitional palette swap. Changing bit settings will not have any differing affects.

In this example video of Pro Mahjong Kiwame GB and the Game Genie code, it will show that upon entering VS mode palettes and sounds will cycle.

Debug Commands
A few debug commands remain, presumably on purpose, to sell the Super Game Boy Commander: a controller designed by Hori Soft that offered otherwise inaccessible options such as muting and speeding up and/or slowing down the DMG CPU. It is impossible to enter these codes by hand, as button presses are read at precisely 25ms.

Speed Setting 1
During gameplay, pressing L, R, R, L, L, R will set the DMG CPU speed to Slower (DMG speed is set to ~2.37mhz per cycle), Slow, (DMG speed is set to ~3.05mhz per cycle) and finally, Normal (DMG speed is set to ~4.3mhz per cycle).

This button sequence is done by the SPEED-Y button on the Super Game Boy Commander.

Speed Setting 2
Holding Up on the D-PAD and the SPEED-Y button (on the Super Game Boy Commander) while powering up the SNES will set the speed to Faster (DMG speed is set to ~5.35Mhz per cycle; will result in graphical glitches), Slower (DMG speed is set to ~2.37mhz per cycle), Slow (DMG speed is set to ~3.05mhz per cycle) and finally, Normal (DMG speed is set to ~4.3mhz per cycle).

Mute Audio
Press R, L, L, R, R, L to mute all sound from the BIOS and game. Press R, L, L, R, R, L again to restore sound. Muting and unmuting while an enhanced song plays will turn it off until a new song is played, or the current song is reset. Also affects the credits screen, if the volume is muted...but a program running on the Super Game Boy, like Space Invaders, will not be muted.

Again, this button sequence is done by the MUTE-L button on the Super Game Boy Commander.

Unused Graphics
Who knows exactly what Nintendo planned; could have been a few extra menu items?

Unused Icons


Loaded in with the main in-game menu. Could have been used for anything.



Also loaded in with the main in-game menu. Might have been an "undo" or "return to default settings" icon.



Loaded along with the custom palette and graffiti tiles is what looks like an early background for the easel.

Graphical Anomalies
There are a few graphical oddities and neither were addressed or fixed for the Super Game Boy 2 release.

Paint Setting
When palette settings are enabled, press either light or darkness setting on either four palette settings then immediately press L + R to exit the menu. You will now see the frame of the icon for a few seconds with the incorrect palette.

Palette Row Sprites


Enter the palette setting menu and wait for the custom border to load and you will see that the last two rows are actually sprites.

Star
Enabling PAR code and going to the soil border allows you to replace any icon with this unused star. This specific star uses a different texture than the other stars.

Glitches
These glitches of sorts will show unused border tiles and unused palette attribute settings; examples provided.

Menu Border Glitch
Normally when a custom border is loaded into the SNES's VRAM, only the first border will switch over from the default Game Boy border to the custom border automatically. When you are in the custom graffiti menu and the custom border is loaded into VRAM, you will be pulled out of the menu and the custom border will be switched only when you are on the default Game Boy border. However, since multiple borders can be loaded replacing the previous one, an oversight on Nintendo's part will cause additional borders to pull you out of the menu and load the custom border only when you are on the default Game Boy border, while this should only affect the custom border.

Custom Border Glitching
Custom Super Game Boy borders are loaded into three parts since you can only send a maximum of 4KBytes of data via VRAM at a time; two chucks of CHR_TRN is split up into CHR_TRN and CHR_TRN. PCT_TRN includes border palette and CHR placement information data and is transferred via PCT_TRN. Loading a new border will overwrite the currently loaded border resulting in glitched pieces comprising of both the old and new border mixed and can be seen when setting the border to the currently-in transition border from any other or while exiting a custom palette or graffiti menu. Nintendo, however recognized this issue and the Super Game Boy will reload the new border again.

Custom Palette Glitching 1
A glitch exists where setting the PAL_TRN command without setting palette data will display this palette as the scheme for 1-A. Since this cannot be seen normally, an example of seeing the glitch would be to use the "Start in Debug Menu cheat" from Rock'n! Monster!! while enabling palettes with the additional Game Boy Game Genie code. Changing the palette will remedy the glitch.

Custom Palette Glitching 2
Clicking on the Camera icon when playing games that allow palette settings will cause the current palette settings to alter with the new palette settings until the game area is unfrozen. Exiting the menu with L + R will leave the settings until the palette changes again.

Finding unused palettes is possible by exploiting this glitch, as seen in this example from Game & Watch Gallery 3, where exploiting the palette glitch from a black-and-white game will show that the controller buttons were simply attraction masked from the original Japanese/European SNES multicolored controller buttons to the purple-and-blue US set instead of actually assigning an updated palette setting.