Music for the Nintendo Gameboy. mp3 submission is allowed but not recommended. Submit hardware compatible files, if possible.
- System Specifications
- Playback for Voting
- Sound Hardware
- Music Software
- See Also
The GameBoy format is for entries created for or with the Nintendo Game Boy or Game Boy Color. The Game Boy itself is a handheld game console first released in 1989; it remains the most successful handheld console in history and originally came bundled with the famous Tetris puzzle game. It has an extended 8080 CPU which takes inspiration from the Zilog Z80 CPU, but features new instructions not seen in either. The term "Game Boy" is often used as a blanket term for the entire line of systems with that moniker. Since there are so many different models of the system, the original is commonly referred to as the "DMG". Throughout the console's lifespan, many new models were released; examples include the Game Boy Pocket, the Game Boy Light, and the Game Boy Color. Later on, there was also the Game Boy Advance—this system featured an all-new CPU and sound hardware, and is thus excluded from this format.
Sharp LR35902 at 4.19MHz; the Game Boy Color runs at 8.38MHz—this CPU is similar to the Intel 8080 and the Zilog Z80
8kb; Game Boy Color has 32kb.
Video RAM (VRAM):
8kb; Game Boy Color has 16kb.
160 x 144 pixels.
59.73 frames per second.
4 (off and LCD intensity levels 1-3); Game Boy Color has a 32,768 (15-bit) palette.
See the "Sound Hardware" section below.
The Game Boy can also communicate via built-in serial ports. These ports are used to connect two or more systems together for multiplayer games or other uses.
Game cartridges varied in size from 256Kbit to 8Mbit.
Playback for Voting
Gameboy as format uses a variety of different file types for compatibility purposes. It is generally recommended entries be .lsdprj or .gbs - .lsdprj files also include LSDJ kits.
Do NOT submit the LSDJ ROM in your submission as this violates the clause of the license which prohibits ROM distribution.
You can create .lsdprj files for your submission by doing the following:
1. Download the LSDPatch
application (requires Java 8 or newer)
2. Open LSDPatcher and load the corresponding LSDJ ROM + sav file
3. Click "Songs" and select the song from the list of songs
4. Click "Export songs" and save to .lsdprj. It is highly recommended to put the version number of LSDJ in the .lsdprj filename e.g. "song_v92L.lsdprj". Since BotB internally changes the filename, it's also good to put the version in the song description.
Use LSDpatcher + LSDj to playback .lsdprj files:
1. Run LSDpatcher
2. Select your LSDj ROM .gb and .sav files with the browse buttons
3. Clicks 'Songs' and 'Add Song', can add multiple songs for voting, etc.
4. Select the .lsdprj file for playback
5. Click save to create a new copy of the ROM incorporating the additional song(s)
6. Close out of LSDpatcher
7. Run LSDj, load up the song. Voila!
Other playback tools:
Useful for, well, vgm files.
Runs gbs and vgm with the game emu player component (downloaded separately).
8kb; Game music emu, which vlc comes with by default, is supposed to run gbs and vgm files.
Vba-m is a gameboy emulator, so accordingly, it runs .gb files. Honestly, any emulator (that works) should be fine for .gb files. Whereas,
Modding is extremely popular in the Game Boy scene, and for good reason—there are plentiful amounts of aftermarket parts available and no shortage of different modifications that one can do to a given Game Boy console. Almost every mod requires some amount of soldering, but if you don't know how, fear not—modded systems can easily be purchased from sites like eBay or Etsy. This section lists and summarizes some of the ways you can modify your Game Boy.
ProSound (aka line-out mod)
Most models have a headphone output, but it is not very "clean"—the sound is often muddied with hissing, buzzing, or white noise. To fix this, one can perform the "ProSound" mod (which is nothing more than adding a line-out jack). The specific steps depend on which Game Boy you intend to perform this mod on, but it typically involves tapping the sound output directly from the CPU or volume wheel and wiring it to the headphone jack, additional RCA jacks, or a new headphone jack. The latter two require shell modification, and may be difficult on more compact models such as the Game Boy Pocket or Game Boy Color. To find a tutorial for performing this mod on your Game Boy, simply search for "[Game Boy model] ProSound mod" on your search engine of choice. If you intend to make your songs on real hardware or at least make hardware recordings, this modification is a must.
Frontlighting and Backlighting
Every early Game Boy model (sans the rare and Japan-exclusive Game Boy Light) features an unlit screen. Due to this, it can be difficult to see the screen in low-light conditions. These mods alleviate that, making the display more visible even when there is no ambient light. It is a trade-off, however—the light panel consumes additional power, so your batteries will not last as long. To many, this mod is still well worth the extra power consumption, and is practically a must if you intend to travel with your system. Much like the ProSound mod, specific instructions vary by model. The Game Boy and Game Boy Pocket use a backlight, while the Game Boy Color uses a frontlight. Use your favorite search engine to find a video or tutorial on how to perform the mod on your console.
Overclocking and Underclocking
If you've heard of overclocking in general, then you probably know that it allows a piece of electronics hardware to run at a faster speed than was originally intended. In contrast, underclocking is the opposite; it decreases the speed at which an electronic runs. The Game Boy ordinarily runs at a clock speed of 4.19MHz (Game Boy Color 8.38MHz), but overclocking/underclocking can push it above or below that speed. This makes the system in its entirety run faster or slower, and as such it isn't exactly practical for making music since it changes the pitch. It can, however, be used to create bizarre sounds or to reach lower or higher frequencies than the Game Boy can normally generate. Every Game Boy has a crystal which regulates the frequency to its normal speed, so this mod involves replacing it. You have two choices: you can replace the default crystal with a different one, or install a variable clock. The latter is adjustable and ideal if you don't want to always be overclocked/underclocked, but it requires shell modification and can be difficult on more compact Game Boy models.
This is not a mod, per se, but is still useful for music so it is included in this list. It involves using an external device to send/receive MIDI input to/from the Game Boy for use in music software. This is typically achieved by using what is called an ArduinoBoy
. This device allows serial MIDI communication to and from the Game Boy through its link port for controlling software such as LSDj or mGB. Depending on your setup, this may not be a necessity, but if you want to create music for the system through external software with MIDI commands or sync it to another piece of music hardware it is a must.
As mentioned above, there is a thriving market of aftermarket parts. If you have a beat up system, no worries; you can easily purchase a variety of new parts for your system such as a new shell, new buttons, or new screen bezel. The aftermarket is unfortunately limited to cosmetic parts (i.e. plastic stuff), so if you need to get your hands on something like a replacement screen you will have to salvage them from other systems. Nonetheless, if you want your system to feel like new again, this is a great way to do so!
Rechargeable Battery Pack
Most models of the Game Boy only accept AA or AAA batteries. With this mod, you can replace them with a rechargeable battery pack instead. The benefits are obvious, but this is one of the more difficult mods; shell modification is always required and there are little to no kits available for it. Even so, this may be a mod worthy of your time if you find yourself always burning through your supply of batteries.
Much like the 2a03
CPU found in the NES, the Game Boy does not feature a dedicated sound chip; the sound-processing hardware is integrated directly into the CPU itself. The system has four channels of sound—two pulse waves, a variable waveform channel, and a noise channel. The pulse and noise channels function similarly to those of the NES, however one of the pulse channels has a tone sweep function and the noise channel generally can produce a greater range of tones. It also features stereo sound, but it is quite coarse: you can only pan channels fully to the right or fully to the left.
The first two channels are for pulse waves, both with a selectable duty cycle of 12.5%, 25%, 50%, or 75%, just like the NES
. Both channels have an 11-bit period, sixteen levels of volume, and an optional note cutoff length. The first pulse channel also has a hardware frequency sweep.
The wave channel has a 16-byte (32-sample), four-bit user-definable waveform. Like the pulse channels, it also has an 11-bit period and a note cutoff length, but only four volume settings: 100%, 50%, 25%, and off—the volume settings are simply shifts of the sample data, and often do not sound very good. Depending on the composition software used, sample playback may also be possible, but not at the same time as a defined wave.
The fourth channel is a noise channel which generates random noise using a linear feedback shift register (LFSR). It has sixteen volume levels and two different modes, 7-bit and 15-bit. The 15-bit mode is similar to standard white noise, and is commonly used for percussion; the 7-bit mode sounds more tonal and metallic. It functions and sounds similar to the noise channel of the NES, but can produce a larger range of tones.
Though rarely discussed, there is also a fifth channel. There is a pin on the cartridge for sound chip expansions (similar to how the NES used chip expansions such as the VRC6), but it was never utilized.
See the pandocs (linked in the "Programming" section) for more detailed and technical information on the system's sound capabilities.
Little Sound Dj (LSDj)
Little Sound Dj
(called LSDj for short) is by far the most popular and widely known Game Boy music program. It runs natively on the system or in an emulator. If you have a flashcart, then you can use the program on a real Game Boy! This is the program of choice for many, and boasts numerous features like having various sampled drum-sets, a speech synthesizer, and synchronization between two Game Boys via link cable (double Game Boy isn't allowed in the GameBoy format though, just one!).
LSDPatch ROM Patcher and Song Manager
Beginner Tutorials - Little Sound Dj Wiki
is a multi-platform tracker that targets various platforms; the Game Boy is one of the many systems that it supports. It is not as extensive or customizable as LSDj is, and does not support samples in the wave channel. Unlike LSDj, Deflemask runs on PC, Mac, and Linux and supports exporting music as Game Boy ROM files (.gb) or .gbs files. It also has built-in support for overclocking! Some consider Deflemask easier to use or less clunky than LSDj.
mGB is a simple program that allows the Game Boy to act as a MIDI input device. It can only be run on real hardware and requires a MIDI device such as the aforementioned ArduinoBoy
. Music is made entirely by sending MIDI commands to the Game Boy and recording the output.
nanoloop is a synthesizer and step-sequencer program designed for the Game Boy, Game Boy Advance, and Android/iOS. There are two different variations of the Game Boy version: nanoloop mono and nanoloop one. Both versions feature the same basic interface and capabilities, but nanoloop mono makes use of the fifth sound channel mentioned in the "Sound Hardware" section. nanoloop one, on the other hand, uses the Game Boy's standard four sound channels.
nanoloop Online Shop
nanoloop one Page
nanoloop one Manual and Changelog
nanoloop one Demo ROM
nanoloop mono Page
nanoloop mono Manual and Changelog
If you're not familiar with MML
, it's a way to type out music through specific written notations. It has a bit of a learning curve and can sometimes be buggy, but some prefer it to the other programs available. For making Game Boy music, two different MML compilers are available: XPMCK and GBMC. XPMCK is a multi-platform MML compiler, while GBMC is specialized for making Game Boy music. GBMC is the preferred MML compiler for Game Boy tunes due to its ease of compiling .gbs, .gb, and .gbc files without the need for extra files and programs. It has a catch, however—the manual is written only in Japanese! Fear not though, Savestate's Winter Chip X entry
has comments outlining the basic use of GBMC.
GBMC Website (Japanese)
There's various tools out there that let you compose in one format, and convert it to a format playable on the Game Boy.
is a Lua script that simply converts any FamiTracker
-generated NSF to a .gbs file as long as it uses one Namco N163 channel. If you don't want to learn a new program to make Game Boy music, then this is probably your best option; keep in mind that stereo sound is not supported, though!
is a tool written by Savestate
that converts FTM text exports to GBMC MML. This allows fine tuning of the results post-conversion.
GBT Player (using MOD2GBT)
is a music creation environment for GB and GBC. It contains a tool, mod2gbt, which converts a mod file into a gbt (GameBoy Tracker) file which can be played by GBT Player.
(This section is a stub. If you know anything about programming the Game Boy, please help by adding more information!)
For developing your own Game Boy software, check out Gameboy Development Kit
on SourceForge. Some people may prefer to use WLA-DX
as an assembler, which contains Z80 and 6502 compilers along with a few others.
Game Boy Development Kit Tutorial
(details hardware and software interfaces and general development information)
(accurate emulator and debugger, Windows-only)