1265 lines
59 KiB
HTML
1265 lines
59 KiB
HTML
<h1 id="gameboyicon-awesome-game-boy-development"><img
|
||
src="http://i.imgur.com/ROUq7NT.gif" alt="GameboyIcon" /> Awesome Game
|
||
Boy Development</h1>
|
||
<h4 id="join-us-on-discord-discord-badge"><a
|
||
href="https://gbdev.io/chat.html">Join us on Discord</a> <a
|
||
href="https://discord.gg/tKGMPNr"><img
|
||
src="https://img.shields.io/badge/dynamic/json.svg?label=chat&colorB=green&suffix=%20online&query=presence_count&uri=https://discordapp.com/api/guilds/303217943234215948/widget.json"
|
||
alt="Discord Badge" /></a></h4>
|
||
<p>A curated list of awesome Game Boy (Color) Development resources,
|
||
tools, docs, related projects and open-source ROMs. Inspired by the <a
|
||
href="https://github.com/sindresorhus/awesome">awesome</a> list
|
||
thing.</p>
|
||
<p>You can find a (way cooler) web version of this list <a
|
||
href="https://gbdev.github.io/resources">here</a>.</p>
|
||
<h2 id="contents">Contents</h2>
|
||
<ul>
|
||
<li><a href="#introduction">Introduction</a>
|
||
<ul>
|
||
<li><a href="#disambiguation">Disambiguation</a></li>
|
||
</ul></li>
|
||
<li><a href="#community">Community</a></li>
|
||
<li><a href="#documentation">Documentation</a>
|
||
<ul>
|
||
<li><a href="#misc">Misc</a></li>
|
||
<li><a href="#opcodes">Opcodes</a></li>
|
||
<li><a href="#game-boy-color">Game Boy Color</a></li>
|
||
<li><a href="#hardware">Hardware</a></li>
|
||
<li><a href="#peripherals">Peripherals</a></li>
|
||
<li><a href="#cartridges">Cartridges</a></li>
|
||
</ul></li>
|
||
<li><a href="#emulator-development">Emulator Development</a>
|
||
<ul>
|
||
<li><a href="#testing">Testing</a></li>
|
||
</ul></li>
|
||
<li><a href="#software-development">Software Development</a>
|
||
<ul>
|
||
<li><a href="#assemblers">Assemblers</a></li>
|
||
<li><a href="#compilers">Compilers</a>
|
||
<ul>
|
||
<li><a href="#experimentalproof-of-concepts">Experimental/Proof of
|
||
Concepts</a></li>
|
||
</ul></li>
|
||
<li><a href="#emulators">Emulators</a></li>
|
||
<li><a href="#tools">Tools</a>
|
||
<ul>
|
||
<li><a href="#engines">Engines</a></li>
|
||
<li><a href="#development-tools">Development tools</a></li>
|
||
<li><a href="#graphics-utilities">Graphics utilities</a></li>
|
||
<li><a href="#hardware-and-rom-utilities">Hardware and ROM
|
||
utilities</a></li>
|
||
<li><a href="#music-drivers-and-trackers">Music drivers and
|
||
trackers</a></li>
|
||
</ul></li>
|
||
</ul></li>
|
||
<li><a href="#programming">Programming</a>
|
||
<ul>
|
||
<li><a href="#asm">ASM</a>
|
||
<ul>
|
||
<li><a href="#sources">Sources</a></li>
|
||
<li><a href="#timings">Timings</a></li>
|
||
<li><a href="#boilerplates">Boilerplates</a></li>
|
||
<li><a href="#syntax-highlighting-packages">Syntax highlighting
|
||
packages</a></li>
|
||
</ul></li>
|
||
<li><a href="#c">C</a></li>
|
||
</ul></li>
|
||
<li><a href="#homebrews">Homebrews</a>
|
||
<ul>
|
||
<li><a href="#asm-1">ASM</a></li>
|
||
<li><a href="#c-1">C</a></li>
|
||
<li><a href="#gb-studio">GB Studio</a></li>
|
||
<li><a href="#demos">Demos</a></li>
|
||
</ul></li>
|
||
<li><a href="#reverse-engineering">Reverse Engineering</a>
|
||
<ul>
|
||
<li><a href="#game-disassemblies">Game Disassemblies</a></li>
|
||
</ul></li>
|
||
<li><a href="#game-boy-camera">Game Boy Camera</a>
|
||
<ul>
|
||
<li><a href="#retrieving-images">Retrieving Images</a></li>
|
||
<li><a href="#changing-the-cameras-behavior">Changing the camera’s
|
||
behavior</a></li>
|
||
<li><a href="#post-processing">Post-processing</a></li>
|
||
</ul></li>
|
||
<li><a href="#related-projects">Related projects</a>
|
||
<ul>
|
||
<li><a href="#directories">Directories</a></li>
|
||
<li><a href="#websites">Websites</a></li>
|
||
</ul></li>
|
||
<li><a href="#about">About</a>
|
||
<ul>
|
||
<li><a href="#contribute">Contribute</a></li>
|
||
<li><a href="#license">License</a></li>
|
||
<li><a href="#acknowledgements">Acknowledgements</a></li>
|
||
<li><a href="#sponsors">Sponsors</a></li>
|
||
</ul></li>
|
||
</ul>
|
||
<h2 id="introduction">Introduction</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.youtube.com/playlist?list=PLu3xpmdUP-GRDp8tknpXC_Y4RUQtMMqEu">The
|
||
Game Boy, a hardware autopsy</a></li>
|
||
<li><a
|
||
href="https://media.ccc.de/v/33c3-8029-the_ultimate_game_boy_talk">The
|
||
Ultimate Game Boy Talk</a></li>
|
||
</ul>
|
||
<blockquote>
|
||
<h3 id="disambiguation">Disambiguation</h3>
|
||
<h4 id="game-boy-advance">Game Boy Advance</h4>
|
||
<p>Game Boy Advance development is covered by another project, the <a
|
||
href="https://github.com/gbdev/awesome-gbadev">awesome-gbadev</a> list.
|
||
GBA, however, <em>can run</em> GB/GBC games. It does so in a slightly
|
||
different way compared to native hardware: this is covered in the
|
||
Emulator Development section of this list.</p>
|
||
<h4 id="game-boy-color-and-super-game-boy">Game Boy Color and Super Game
|
||
Boy</h4>
|
||
<p>This list is focused on the original <em>Game Boy</em> (GB or DMG,
|
||
1989), the <em>Game Boy Color</em> (GBC or CGB) and the <em>Super Game
|
||
Boy</em> (SGB) are very similar systems, with a few important
|
||
distinctions, such as:</p>
|
||
<ul>
|
||
<li>Different hardware specifications;</li>
|
||
<li>Specific hardware and software features;</li>
|
||
<li>Specific registers;</li>
|
||
<li>Specific bugs, quirks and exploitable behaviours.</li>
|
||
</ul>
|
||
<p>If you aim to develop your software for SGB or GBC, or you want to
|
||
know how it runs on the other systems, you may want to take advantage
|
||
and adapt to these differences, check the <a href="#game-boy-color">Game
|
||
Boy Color</a> category and look for specific references to GBC/CGB and
|
||
SGB.</p>
|
||
</blockquote>
|
||
<h2 id="community">Community</h2>
|
||
<ul>
|
||
<li><a href="https://gbdev.io/chat">Chat channels</a></li>
|
||
<li><a href="https://gbdev.gg8.se/forums/">Forum</a></li>
|
||
</ul>
|
||
<h2 id="documentation">Documentation</h2>
|
||
<ul>
|
||
<li><a href="https://gbdev.github.io/pandocs/"><strong>Pan
|
||
Docs</strong></a> - The single, most comprehensive technical reference
|
||
to Game Boy available to the public. Corrected, updated and maintained
|
||
by the community.</li>
|
||
<li><a
|
||
href="https://github.com/AntonioND/giibiiadvance/blob/master/docs/TCAGBD.pdf">The
|
||
Cycle-Accurate Game Boy Docs</a> - A precise documentation by AntonioND
|
||
to make a cycle-accurate Game Boy emulator.</li>
|
||
<li><a href="https://gekkio.fi/files/gb-docs/gbctr.pdf">Complete
|
||
Technical Reference</a> - by Gekkio.</li>
|
||
<li><a href="https://www.copetti.org/writings/consoles/game-boy/">Game
|
||
Boy Architecture: A Practical Analysis</a> - by Rodrigo Copetti.</li>
|
||
<li><a
|
||
href="http://www.cs.columbia.edu/~sedwards/classes/2019/4840-spring/reports/GameBoy.pdf">Game
|
||
Boy Project Report</a> - Report of an hardware <a
|
||
href="https://github.com/kitsuneh/SVGameBoy">emulator</a> (on a Terasic
|
||
DE1-SoC Board) developed as final project for the CSEE4840 Embedded
|
||
Systems Design course at Columbia University.</li>
|
||
</ul>
|
||
<h4 id="opcodes">Opcodes</h4>
|
||
<ul>
|
||
<li><a
|
||
href="https://gbdev.github.io/gb-opcodes/optables/">gb-opcodes</a> -
|
||
Opcodes table</li>
|
||
<li><a href="https://rgbds.gbdev.io/docs/gbz80.7">RGBDS opcodes
|
||
reference</a> - A reference of all instructions, including short
|
||
descriptions, cycle and byte counts, and explanations of flag
|
||
modifications.</li>
|
||
</ul>
|
||
<h3 id="game-boy-color">Game Boy Color</h3>
|
||
<ul>
|
||
<li><a href="https://tcrf.net/Game_Boy_Color_Bootstrap_ROM">Bootstrap
|
||
ROM</a></li>
|
||
<li><a href="https://tcrf.net/Notes:Game_Boy_Color_Bootstrap_ROM">Unused
|
||
Palettes</a></li>
|
||
<li><a
|
||
href="https://forums.nesdev.com/viewtopic.php?p=114388&sid=c3d4ce08cfd9d9c834958d4f148750c3#p114388">Colorization
|
||
palettes in the BIOS</a></li>
|
||
<li><a href="https://gist.github.com/drhelius/6063265">Boot ROM
|
||
Disassembly</a></li>
|
||
<li><a href="https://romhack.github.io/doc/gbcHiColour/">GBC Hicolour
|
||
notes</a> - A technical note regarding Hicolour mode trick for Game Boy
|
||
Color and its realization in the GBC game “Crystalis”.</li>
|
||
</ul>
|
||
<h3 id="hardware">Hardware</h3>
|
||
<ul>
|
||
<li><a href="http://gbdev.gg8.se/wiki/articles/DMG_Schematics">DMG
|
||
Schematics</a> - Hardware schematics.</li>
|
||
<li><a href="http://marc.rawer.de/Gameboy/Docs/GBProject.pdf">The Game
|
||
Boy Project</a> - Provides a study on the hardware and detailed
|
||
constructional information for the implementation of three 8-bit
|
||
bidirectional parallel ports.</li>
|
||
<li><a href="https://github.com/Gekkio/gb-hardware">Related custom
|
||
hardware</a> - by Gekkio.</li>
|
||
<li><a
|
||
href="https://github.com/applefreak/esp8266-gameboy-dev-board">ESP8266
|
||
GB Dev Board</a> - Dev board for Game Boy accessories development,
|
||
powered by ESP8266.</li>
|
||
<li><a
|
||
href="https://github.com/applefreak/esp8266-gameboy-printer">ESP8266 GB
|
||
Printer</a> - A device that emulates the GB Printer and lets you
|
||
retrieve images using WiFi.</li>
|
||
<li><a
|
||
href="https://web.archive.org/web/20220628023315/https://verhoeven272.nl/fruttenboel/Gameboy/index.html">fruttenboel</a>
|
||
- Page with loads of information on the hardware, custom boards to
|
||
interface with the console and other related projects.</li>
|
||
<li><a href="https://gbhwdb.gekkio.fi/">Game Boy hardware database</a> -
|
||
Data and photos of various types of Game Boy consoles.</li>
|
||
<li><a
|
||
href="https://github.com/msinger/dmg-schematics">dmg-schematics</a> -
|
||
Schematics and annotated overlay for the DMG-CPU B chip, extracted from
|
||
die photos, made with KiCad. Also contains Electric VLSI library with
|
||
layouts for some of the cells and memories.</li>
|
||
</ul>
|
||
<h3 id="peripherals">Peripherals</h3>
|
||
<ul>
|
||
<li><a href="https://shonumi.github.io/dandocs.html">Dan Docs</a> -
|
||
Obscure Game Boy hardware documentation.</li>
|
||
<li><a href="https://shonumi.github.io/articles.html">Edge of
|
||
Emulation</a>, a series of articles about emulating and investigating
|
||
Game Boy accessories. Also available as <a
|
||
href="https://github.com/shonumi/gbe-plus/tree/master/src/docs/technical">technical
|
||
documents</a> in the GBE- emulator documentation.
|
||
<ul>
|
||
<li><a href="https://shonumi.github.io/articles/art14.html">Mobile
|
||
Adapter GB</a> - Internet connectivity and DLC on the Game Boy
|
||
Color.</li>
|
||
<li><a href="https://shonumi.github.io/articles/art2.html">The Game Boy
|
||
Printer</a></li>
|
||
<li><a href="https://shonumi.github.io/articles/art13.html">Pocket
|
||
Sonar</a> - A blue cart with built-in sonar hardware.</li>
|
||
<li><a href="https://shonumi.github.io/articles/art8.html">Zok Zok
|
||
Heroes</a> - Zok Zok Heroes’ Full Changer, a motion-activated
|
||
accessory.</li>
|
||
<li><a href="https://shonumi.github.io/articles/art11.html">Infrared
|
||
Madness</a> - Infrared communication on the Game Boy Color.</li>
|
||
<li><a href="https://shonumi.github.io/articles/art9.html">Game Boy
|
||
4-Player Adapter</a> - DMG-07.</li>
|
||
<li><a href="https://shonumi.github.io/articles/art7.html">Barcode
|
||
Boy</a> - The first Game Boy card-scanner.</li>
|
||
<li><a href="https://shonumi.github.io/articles/art6.html">Barcode
|
||
Taisen Bardigun</a> - A late 90s DMG-GBC barcode reader.</li>
|
||
</ul></li>
|
||
<li><a
|
||
href="https://raw.githubusercontent.com/shonumi/gbe-plus/master/src/docs/technical/DMG_07.txt">DMG-07
|
||
Technical Documentation</a></li>
|
||
<li><a href="https://github.com/AntonioND/gbcam-rev-engineer">Game Boy
|
||
Camera RE</a> - Documentation about GB Camera and tools used to reverse
|
||
engineer it by using Arduino.</li>
|
||
<li><a
|
||
href="http://www.pinchofintelligence.com/photorealistic-neural-network-gameboy/">Creating
|
||
photo realistic images with neural networks and a Gameboy
|
||
Camera</a></li>
|
||
<li><a href="https://shonumi.github.io/articles/art2.html">The Game Boy
|
||
Printer</a> - An in-depth technical document about the printer hardware,
|
||
the communication protocol and the usual routine that games used for
|
||
implementing the print feature.</li>
|
||
<li><a href="https://www.youtube.com/watch?v=43FfJvd-YP4">Ben Heck
|
||
Reverse Engineers Game Boy Printer</a> (Errata: the used thermal paper
|
||
is expired, 4 colors are actually printable).</li>
|
||
<li><a
|
||
href="https://github.com/mofosyne/arduino-gameboy-printer-emulator">Arduino
|
||
Game Boy Printer Emulator</a> - Emulating a Game Boy Printer via the
|
||
Game Boy Link cable with an Arduino.</li>
|
||
<li><a
|
||
href="https://bulbapedia.bulbagarden.net/wiki/Mobile_Game_Boy_Adapter">Mobile
|
||
Game Boy Adapter</a></li>
|
||
<li><a
|
||
href="http://nectaris.tg-16.com/GB-KISS-LINK-FAQ-hudson-gameboy-nectaris.html">GB
|
||
KISS LINK MODEM</a></li>
|
||
</ul>
|
||
<h3 id="cartridges">Cartridges</h3>
|
||
<ul>
|
||
<li><a href="https://bbbbbr.github.io/GameBoy-Flash-Carts/">GB Flash
|
||
Cartridges for Sale</a> - A List of available, ready-made Game Boy Flash
|
||
Cartridges.</li>
|
||
<li><a
|
||
href="https://github.com/AntonioND/giibiiadvance/tree/master/docs">AntonioND’s
|
||
docs</a> - Corrected schematics and infos on cartridge header data.</li>
|
||
<li><a
|
||
href="http://gekkio.fi/blog/2015-02-14-mooneye-gb-gameboy-cartridge-types.html">Gekkio’s
|
||
Game Boy cartridge types</a> - An overview on existing cartridge
|
||
types.</li>
|
||
<li>Gekkio’s cartridge analysis:
|
||
<ul>
|
||
<li><a
|
||
href="http://gekkio.fi/blog/2015-05-18-mooneye-gb-cartridge-analysis-dmg-bean-02.html">DMG-BEAN-02</a>;</li>
|
||
<li><a
|
||
href="http://gekkio.fi/blog/2015-05-17-mooneye-gb-cartridge-analysis-fortress-of-fear.html">MBC1</a>;</li>
|
||
<li><a
|
||
href="http://gekkio.fi/blog/2015-02-28-mooneye-gb-cartridge-analysis-tetris.html">no
|
||
MBC</a>.</li>
|
||
</ul></li>
|
||
<li>Pinout, registers descriptions and VHDL code of some cartridge types
|
||
on Tauwasser’s wiki:
|
||
<ul>
|
||
<li><a href="https://wiki.tauwasser.eu/view/MBC1">MBC1</a></li>
|
||
<li><a href="https://wiki.tauwasser.eu/view/MBC2">MBC2</a></li>
|
||
<li><a href="https://wiki.tauwasser.eu/view/MMM01">MMM01</a></li>
|
||
</ul></li>
|
||
<li><a href="http://www.devrs.com/gb/files/gb.html">Game Boy Cartridges
|
||
Schematics</a> - Schematics for MBC2 and MBC3 types.</li>
|
||
<li><a href="https://imgur.com/a/D5bpC">Cartridges PCB photos</a></li>
|
||
<li><a href="http://www.devrs.com/gb/files/mbc1.gif">MBC1+RAM+Battery
|
||
cartridge Schematic</a> - First schematics by Jeff Frohwein.</li>
|
||
<li><a href="http://fms.komkon.org/GameBoy/Tech/Carts.html">MBC1 and
|
||
MBC2 cartridges circuits</a> - and explanation on how these MBC bank
|
||
switch and control RAM.</li>
|
||
<li><a href="CartridgeList.csv">GB Rom List</a> - Navigable table of
|
||
every game released with details on their cartridges.</li>
|
||
<li><a
|
||
href="http://gekkio.fi/blog/2016-03-19-game-boy-cartridge-pcb-photos.html">Game
|
||
Boy cartridge PCB photos</a></li>
|
||
</ul>
|
||
<h4 id="custom-cartridges">Custom cartridges</h4>
|
||
<ul>
|
||
<li><a
|
||
href="https://dhole.github.io/post/gameboy_cartridge_emu_1/">Emulating a
|
||
GameBoy Cartridge</a> - Emulating the functionality of a Game Boy
|
||
cartridge with the development board STM32F4.</li>
|
||
<li><a href="http://www.happydaze.se/wolf/">Wolf</a> - Game Boy
|
||
cartridge with co-processor.</li>
|
||
<li><a
|
||
href="https://github.com/dwaq/Homebrew-Gameboy-Cartridge">Homebrew-Gameboy-Cartridge</a>
|
||
- Eagle library, schematic, and board files for a cartridge PCB using an
|
||
Atmel AT49F040 as ROM.</li>
|
||
<li><a href="https://github.com/Xyl2k/Gameboy-Color-Cartridge">Homebrew
|
||
Gameboy Color Cartridge</a> - Board layout for an EEPROM powered
|
||
cartridge.</li>
|
||
<li><a href="https://github.com/zephray/NekoCart-GB">Nekocart</a> -
|
||
Open-source flash cartridge using an Xilinx CPLD as MBC5 (<a
|
||
href="https://hackaday.io/project/41160-nekocart-cpld-gameboy-cartridge">Post</a>).</li>
|
||
<li><a href="http://reinerziegler.de.mirrors.gg8.se/">Reiner Ziegler’s
|
||
Game Boy page</a> - Commercial and homemade programmable cartridges and
|
||
programming systems. Tutorials, wiring and schematics provided.</li>
|
||
<li><a
|
||
href="https://github.com/insidegadgets/Gameboy-MBC5-MBC1-Hybrid">Gameboy-MBC5-MBC1-Hybrid</a>
|
||
- CPLD implementation of a MBC5/MBC1 Hybrid cartridge.</li>
|
||
</ul>
|
||
<h4 id="misc">Misc</h4>
|
||
<ul>
|
||
<li><a href="http://pepijndevos.nl/sha2017/workshop.pdf">Introduction to
|
||
Game Boy Hacking</a> - Workshop introducing basic assembly, debugging
|
||
and reverse engineering.</li>
|
||
<li><a
|
||
href="https://github.com/bwhitman/pushpin/blob/master/src/gbsound.txt">GBSOUND.txt</a>
|
||
- A document detailing the Game Boy sound engine.</li>
|
||
<li><a href="http://www.devrs.com/gb/files/faqs.html">gbdev FAQs</a> -
|
||
Must read by Jeff Frohwein.</li>
|
||
<li><a href="http://www.neviksti.com/DMG/DMG_ROM.asm">Game Boy
|
||
Bootrom</a> - Commented dump of the DMG bootrom.</li>
|
||
<li><a href="http://www.z80.info/z80gboy.txt">Differences between the
|
||
Z80 and the gameboy’s processor</a></li>
|
||
<li><a href="http://www.huderlem.com/demos/gameboy2bpp.html">Gameboy
|
||
2BPP Graphics Format</a> - Information on how the Game Boy interprets
|
||
VRAM tile data to color pixels.</li>
|
||
</ul>
|
||
<h2 id="emulator-development">Emulator Development</h2>
|
||
<ul>
|
||
<li><a href="https://www.youtube.com/watch?v=GBYwjch6oEE">Reverse
|
||
Engineering fine details of Game Boy hardware</a> - 43 minutes talk by
|
||
Gekkio given at Disobey 2018 (<a
|
||
href="https://gekkio.fi/blog/2018-02-05-errata-for-reverse-engineering-fine-details-of-game-boy-hardware.html">errata</a>).</li>
|
||
<li><a
|
||
href="https://github.com/Baekalfen/PyBoy/blob/master/extras/PyBoy.pdf">Emulation
|
||
of Nintendo Game Boy</a> - Overview of the Game Boy hardware with the
|
||
perspective of building an emulator.</li>
|
||
<li><a href="https://rylev.github.io/DMG-01/public/book/">DMG-01</a> -
|
||
An educational Gameboy Emulator in Rust and a companion book explaining
|
||
its development. *<a
|
||
href="https://media.ccc.de/v/rustfest-rome-3-gameboy-emulator">Oh Boy!
|
||
Creating a Game Boy Emulator in Rust</a>- is a talk given at Rust Fest
|
||
18 about this.</li>
|
||
<li><a
|
||
href="http://imrannazar.com/gameboy-Emulation-in-JavaScript">Building a
|
||
Game Boy emulator in JavaScript</a> - Step by step tutorial.</li>
|
||
<li><a href="https://cturt.github.io/cinoop.html">Writing a Game Boy
|
||
emulator, Cinoop</a></li>
|
||
<li><a
|
||
href="https://jeremybanks.github.io/0dmg/2018/05/23/getting-started.html">0dmg</a>
|
||
- Learning Rust by building a partial Game Boy emulator.</li>
|
||
<li><a href="https://realboyemulator.wordpress.com/posts/">RealBoy
|
||
Emulator</a> - A series of posts about the design and implementation of
|
||
the RealBoy Emulator.</li>
|
||
<li><a
|
||
href="http://www.codeslinger.co.uk/pages/projects/gameboy.html">Codeslinger</a>
|
||
- Another series of posts documenting the building of an emulator.</li>
|
||
<li><a href="http://blog.rekawek.eu/2017/02/09/coffee-gb/">Why did I
|
||
spend 1.5 months creating a Gameboy emulator?</a> - Blog post.</li>
|
||
<li><a
|
||
href="https://binji.github.io/2017/12/31/binjgb-rewind.html">binjgb
|
||
rewind</a> - Implementing a *rewind- feature.</li>
|
||
<li><a
|
||
href="https://binji.github.io/2017/02/26/binjgb-on-the-web-part-1.html">binjgb
|
||
on the web</a> - Porting of the binjgb emulator to Web Assembly. <a
|
||
href="https://binji.github.io/2017/02/27/binjgb-on-the-web-part-2.html">(Part
|
||
2)</a></li>
|
||
<li><a
|
||
href="https://binji.github.io/2017/05/03/debugging-hangs.html">binjgb
|
||
debugging hangs</a> - Investigations on emulations quirks.</li>
|
||
<li><a
|
||
href="https://gb-archive.github.io/salvage/decoding_gbz80_opcodes/Decoding%20Gamboy%20Z80%20Opcodes.html">Decoding
|
||
Gameboy Z80 opcodes</a> - How to algorithmically decode Game Boy
|
||
instructions (as opposed to writing one huge switch-case
|
||
statement).</li>
|
||
<li><a
|
||
href="https://djhworld.github.io/post/2018/09/21/i-ported-my-gameboy-color-emulator-to-webassembly/">Porting
|
||
a GO Game Boy emulator to WebAssembly</a></li>
|
||
<li><a href="https://mitxela.com/projects/swotgb/about">About swotGB</a>
|
||
- Notes about the development of a Game Boy emulator in JavaScript.</li>
|
||
<li><a href="EMULATORS.md">List of open source emulators</a></li>
|
||
<li><a href="https://github.com/robert/gameboy-doctor">Game Boy
|
||
Doctor</a> - A command line tool for comparing logs from your emulator
|
||
to those from a known-correct one. Useful for line-by-line debugging of
|
||
Blargg’s test ROMs.</li>
|
||
</ul>
|
||
<h3 id="testing">Testing</h3>
|
||
<ul>
|
||
<li><a href="http://gbdev.gg8.se/files/roms/blargg-gb-tests/">Blargg’s
|
||
test roms</a></li>
|
||
<li><a href="https://gekkio.fi/files/mooneye-gb/latest/">Gekkio’s test
|
||
roms</a></li>
|
||
<li><a href="https://github.com/LIJI32/SameSuite">SameSuite</a></li>
|
||
<li><a
|
||
href="https://github.com/mattcurrie/mealybug-tearoom-tests">Mealybug
|
||
Tearoom Tests</a></li>
|
||
<li><a
|
||
href="http://tasvideos.org/EmulatorResources/GBAccuracyTests.html">GB
|
||
Accuracy Tests</a></li>
|
||
<li><a
|
||
href="https://github.com/pinobatch/240p-test-mini/tree/master/gameboy">144p
|
||
Test Suite</a> - Port of Artemio Urbina’s 240p Test Suite to the Game
|
||
Boy.</li>
|
||
<li><a href="https://github.com/aaaaaa123456789/rtc3test">MBC3 RTC test
|
||
ROM</a></li>
|
||
<li><a href="https://github.com/mattcurrie/dmg-acid2">dmg-acid2</a> and
|
||
<a href="https://github.com/mattcurrie/cgb-acid2">cgb-acid2</a> - Basic
|
||
PPU rendering tests.</li>
|
||
</ul>
|
||
<h2 id="software-development">Software Development</h2>
|
||
<p>The <a href="https://gbdev.io/guides/tools.html">Choosing tools for
|
||
Game Boy development</a> essay provides an overview of the available
|
||
development tools for Game Boy.</p>
|
||
<h3 id="assemblers">Assemblers</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/gbdev/rgbds">RGBDS</a> - Assembler and
|
||
linker package. <a href="https://rgbds.gbdev.io">Documentation</a>.</li>
|
||
<li><a href="https://github.com/csoren/asmotor">ASMotor</a> - Assembler
|
||
engine and development system targeting Game Boy, among other CPUs.
|
||
Written by the original RGBDS author. <a
|
||
href="https://github.com/asmotor/asmotor/tree/develop#further-reading">Documentation</a>.</li>
|
||
<li><a href="https://github.com/vhelin/wla-dx">wla-dx</a> - Yet Another
|
||
GB-Z80/Z80/… Multi Platform Cross Assembler Package. <a
|
||
href="http://www.villehelin.com/wla.txt">Documentation</a>.</li>
|
||
</ul>
|
||
<h3 id="compilers">Compilers</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/gbdk-2020/gbdk-2020/">GBDK</a> -
|
||
Maintained and modernized GBDK (Game Boy Development Kit) powered by an
|
||
updated version of the SDCC toolchain. Provides a C compiler, assembler,
|
||
linker and a set of libraries.
|
||
<ul>
|
||
<li><a
|
||
href="https://gbdk-2020.github.io/gbdk-2020/docs/api/docs_getting_started.html">API
|
||
docs: Getting Started</a></li>
|
||
<li><a
|
||
href="https://github.com/mrombout/gbdk_playground">Examples</a></li>
|
||
<li><a
|
||
href="https://gbdk-2020.github.io/gbdk-2020/docs/api/docs_links_and_tools.html">Documentation,
|
||
links and tools</a></li>
|
||
</ul></li>
|
||
<li><a
|
||
href="https://lemonspawn.com/turbo-rascal-syntax-error-expected-but-begin/">Turbo
|
||
Rascal Syntax Error</a> - Complete suite (IDE, compiler, programming
|
||
language, resource editor) intended for developing games/demos for 8 /
|
||
16-bit line of computers, including the Game Boy and Game Boy
|
||
Color.</li>
|
||
</ul>
|
||
<h4 id="experimentalproof-of-concepts">Experimental/Proof of
|
||
Concepts</h4>
|
||
<ul>
|
||
<li><a href="https://gbdev.io/rgbds-live">RGBDS-Live</a> - In-browser
|
||
coding environment to try out RGBDS.</li>
|
||
<li><a href="https://github.com/wiz-lang/wiz">Wiz</a> - A high-level
|
||
assembly language for writing homebrew on retro console platforms (Game
|
||
Boy, NES, Atari 2600, and more).</li>
|
||
<li><a href="https://github.com/ams-hackers/gbforth">gbforth</a> - A
|
||
Forth-based Game Boy development kit.</li>
|
||
<li><a href="https://gitlab.com/BonsaiDen/gbasm-rs">gbasm-rs</a> - An
|
||
opinionated Rust based compiler for Game Boy z80 assembly code.</li>
|
||
<li><a href="https://github.com/BonsaiDen/gbasm">gbasm</a> - A
|
||
JavaScript based compiler for Game Boy z80 assembly code.</li>
|
||
<li><a href="http://www.tni.nl/products/tniasm.html">tniASM</a> - Macro
|
||
Assembler.</li>
|
||
<li><a href="https://github.com/ulrikdamm/Assembler">Assembler</a> -
|
||
Assembler written in Swift.</li>
|
||
<li><a href="https://github.com/Bevinsky/llvm-gbz80">llvm-gbz80</a> / <a
|
||
href="https://github.com/Bevinsky/clang-gbz80">clang-gbz80</a> -
|
||
Clang/LLVM port to the GBZ80 CPU (similar to the deprecated <a
|
||
href="https://github.com/euclio/llvm-gbz80">euclio/llvm-gbz80</a>).</li>
|
||
<li><a href="https://github.com/pokemium/gbdk-go">gbdk-go</a> - A
|
||
compiler translates Go programs to C code. The output C code is built
|
||
into GB ROM by GBDK.</li>
|
||
<li><a href="https://github.com/zlfn/rust-gb">Rust-GB</a> - A compiler
|
||
and library that enable the development of GB ROMs using Rust.</li>
|
||
</ul>
|
||
<h3 id="emulators">Emulators</h3>
|
||
<ul>
|
||
<li><p><a href="https://bgb.bircd.org/">BGB</a> - Powerful emulator and
|
||
debugger. Provides an accurate hardware emulation.</p></li>
|
||
<li><p><a href="https://github.com/LIJI32/SameBoy">SameBoy</a> -
|
||
Accurate emulator with a wide range of powerful debugging
|
||
features.</p></li>
|
||
<li><p><a href="https://github.com/Gekkio/mooneye-gb">Mooneye GB</a> -
|
||
Research project and emulator in Rust.</p></li>
|
||
<li><p><a href="https://github.com/mgba-emu/mgba">mGBA</a> - Modern
|
||
cross platform GBA emulator which also runs GB/GBC games.</p></li>
|
||
<li><p><a href="https://github.com/binji/binjgb">Binjgb</a> - 5Kloc
|
||
emulator that passes most of the tests. *Rewind- feature. Runs in the
|
||
browser using WebAssembly.</p></li>
|
||
<li><p><a href="https://github.com/gb-archive/gambatte">Gambatte</a> -
|
||
Cross-platform and accurate emulator.</p></li>
|
||
<li><p><a href="https://github.com/aappleby/MetroBoy">MetroBoy</a> - A
|
||
playable, circuit-level simulation of an entire Game Boy.</p></li>
|
||
<li><p><a href="https://github.com/shonumi/gbe-plus">gbe-plus</a> - A
|
||
recently rewritten emulator that has a large effort in preserving the
|
||
functions of obscure accessories (such as IR link, Mobile Network GB,
|
||
Barcode Boy, GB Printer, local and online GB Serial Link Cable, …
|
||
)</p></li>
|
||
<li><p><a href="https://emulicious.net/">Emulicious</a> - Provides
|
||
accurate emulation and includes powerful tools such as a profiler and
|
||
source-level debugging for ASM and C via a <a
|
||
href="https://marketplace.visualstudio.com/items?itemName=emulicious.emulicious-debugger">VS
|
||
Code debug adapter</a>.</p></li>
|
||
</ul>
|
||
<p><a href="EMULATORS.md">Complete list of open source emulators</a></p>
|
||
<h3 id="tools">Tools</h3>
|
||
<h4 id="engines">Engines</h4>
|
||
<ul>
|
||
<li><a href="https://github.com/Zal0/ZGB">ZGB</a> - A little engine for
|
||
creating games for the original Game Boy (expands gbdk, more info <a
|
||
href="http://zalods.blogspot.com/2017/01/zgb-little-engine-for-game-boy.html">here</a>).</li>
|
||
<li><a href="https://bitbucket.org/HellSuffering/retr0-gb/">Retr0 GB</a>
|
||
- An engine for creating games (expands GBDK).</li>
|
||
</ul>
|
||
<h4 id="development-tools">Development tools</h4>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.tensi.eu/thomas/programming/utilities/gbx_library/gbx_library.html">GBExtended</a>
|
||
- C library extending gbdk.</li>
|
||
<li><a
|
||
href="https://github.com/ProGM/gbdk-lib-extension">gbdk-lib-extension</a>
|
||
- A small set of sources and tools for the Game Boy Development Kit by
|
||
Michael Hope.</li>
|
||
<li><a href="https://github.com/mattcurrie/mgbdis">mgbdis</a> - Game Boy
|
||
ROM disassembler with RGBDS compatible output.</li>
|
||
<li><a href="http://catskull.net/GB-Logo-Generator/">ROM Header
|
||
Utility</a> - An online tool to inspect and modify a ROM’s header data,
|
||
including the logo.</li>
|
||
<li><a href="https://github.com/bbbbbr/romusage">romusage</a> - Command
|
||
line tool for estimating usage (free space) of Game Boy ROMs from a
|
||
.map, .noi or ihx file. Works with GBDK-2020 and RGBDS.</li>
|
||
<li><a href="https://github.com/devdri/awake">awake</a> - Game Boy
|
||
decompiler.</li>
|
||
<li><a href="https://github.com/raphaklaus/gameboy-text-tools">Game Boy
|
||
Text Tools</a> - Set of tools for text manipulation and translation of
|
||
Game Boy ROMs written in Node.js.</li>
|
||
<li><a href="https://github.com/eievui5/evscript">evscript</a> - A
|
||
scripting language for the Game Boy, useful for enemy AI, dialogue,
|
||
animations, and coroutines.</li>
|
||
<li><a href="https://github.com/eievui5/evunit">evunit</a> - A unit
|
||
testing program for assembly code.</li>
|
||
<li><a
|
||
href="https://github.com/rondnelson99/opcode_count">opcode_count</a> -
|
||
Generates statistics on which CPU instructions are run the most often
|
||
using Python and Emulicious</li>
|
||
</ul>
|
||
<h4 id="graphics-utilities">Graphics utilities</h4>
|
||
<ul>
|
||
<li><a href="https://github.com/chrisantonellis/gbtdg">Game Boy Tile
|
||
Data Generator</a> - HTML5 / JS web application that will convert bitmap
|
||
images to hexadecimal data appropriate for use in tile based graphical
|
||
applications, specifically GB.</li>
|
||
<li><a href="http://www.devrs.com/gb/hmgd/intro.html">Harry Mulder’s GB
|
||
Development</a> - Some sources and home of Game Boy Tile Designer (GBTD)
|
||
and Game Boy Map Builder (GBMB) tools.</li>
|
||
<li><a href="https://github.com/bashaus/gbtiles">GBTiles</a> - Converts
|
||
.GBR files created with Harry Mulder’s Tile Designer (GBTD) and .GBM
|
||
files created with Harry Mulder’s Map Builder (GBMB) to different
|
||
formats for use with the Game Boy and GBDK.</li>
|
||
<li><a href="https://github.com/gitendo/bmp2cgb">bmp2cgb</a> - Graphics
|
||
converter for Game Boy Color development providing real time palette
|
||
adjustments.</li>
|
||
<li><a href="https://github.com/LuckyLights/png2gb">png2gb</a> - CLI
|
||
tool to convert image file to game boy .c array.</li>
|
||
<li><a href="https://github.com/gb-archive/gb-convert">GB-convert</a> -
|
||
Game Boy tile conversion and map editor tool (converts to
|
||
assembly).</li>
|
||
<li><a href="http://make.vg/brewtool/">brewtool</a> - A collection of
|
||
primitive editor/converter tools for making assets used with homebrew
|
||
ROM development.</li>
|
||
<li><a href="https://github.com/paul-arutyunov/vtGBte">vtGBte</a> - A
|
||
minimalistic ncurses tile editor.</li>
|
||
<li><a href="https://github.com/TwitchPlaysPokemon/tpp1">tpp1</a> -
|
||
Definition and specification of a custom GB/GBC memory/hardware mapper,
|
||
as a functional superset of MBC.</li>
|
||
<li><a href="https://github.com/delwink/libstdgb">libstdgb</a> - A C
|
||
library of useful Game Boy operations (SDCC).</li>
|
||
<li><a href="https://github.com/bbbbbr/gimp-tilemap-gb">Tilemap GB</a> -
|
||
GIMP image editor plug-in for importing & exporting GBMB and GBTD
|
||
tilemaps and tilesets (as bitmap images or .GBM/.GBR files).</li>
|
||
<li><a href="https://github.com/bbbbbr/gimp-tilemap-helper">Tilemap
|
||
Helper</a> - GIMP image editor plug-in for optimizing tile maps and tile
|
||
sets.</li>
|
||
<li><a href="https://github.com/Rangi42/tilemap-studio">Tilemap
|
||
Studio</a> - A tilemap editor for Game Boy, Color, Advance, and SNES
|
||
projects. Written in C++ with FLTK.</li>
|
||
<li><a href="https://github.com/Optiroc/SuperFamiconv">Superfamiconv</a>
|
||
- Flexible and composable tile graphics converter supporting Super
|
||
Nintendo, Game Boy, Game Boy Color, Game Boy Advance, Mega Drive and PC
|
||
Engine formats.</li>
|
||
</ul>
|
||
<h4 id="hardware-and-rom-utilities">Hardware and ROM utilities</h4>
|
||
<ul>
|
||
<li><a href="https://github.com/Palmr/cart-dumper">cart-dumper</a> -
|
||
Game Boy Cartridge Dumper ROM.</li>
|
||
<li><a href="https://github.com/jkbenaim/gbcamextract">gbcamextract</a>
|
||
- Extracts photos from Game Boy Camera saves.</li>
|
||
<li><a
|
||
href="https://github.com/svendahlstrand/game-boy-lcd-sniffing">Game Boy
|
||
LCD sniffing</a> - Sniff your Game Boy’s LCD using a logic
|
||
analyzer.</li>
|
||
<li><a href="https://github.com/sanqui/swapdump">swapdump</a> -
|
||
Diagnostic utility for Game Boy flashcarts.</li>
|
||
<li><a
|
||
href="https://github.com/JustinLloyd/Gameboy-LinkUp">Gameboy-LinkUp</a>
|
||
- Game Boy LinkUp serial cable networking project.</li>
|
||
</ul>
|
||
<h4 id="music-drivers-and-trackers">Music drivers and trackers</h4>
|
||
<ul>
|
||
<li><a href="https://github.com/DevEd2/DevSoundX">DevSoundX</a> - Sound
|
||
driver embeddable in homebrews which supports pulse width manipulation,
|
||
arpeggios, and multiple waveforms.</li>
|
||
<li><a
|
||
href="http://gbdev.gg8.se/files/musictools/Aleksi%20Eeben/Carillon%20Editor.zip">Carillon
|
||
Player</a> - Music Engine.</li>
|
||
<li><a href="https://github.com/AntonioND/gbt-player">GBT PLAYER</a> - A
|
||
music player library and converter kit.</li>
|
||
<li><a href="https://github.com/SimonLarsen/mmlgb">mmlgb</a> - A MML
|
||
parser and GBDK sound driver for the Nintendo Game Boy.</li>
|
||
<li><a href="https://github.com/bazzinotti/XPMCK">XPMCK</a> - An MML
|
||
based music compiler with support for Game Boy & Game Boy
|
||
Color.</li>
|
||
<li><a href="https://github.com/gbdev/GBSoundSystem">GBSoundSystem</a> -
|
||
A modernized audio driver for GameBoy Tracker (aka the Paragon 5 music
|
||
player).</li>
|
||
<li><a href="https://github.com/SuperDisk/hUGETracker">hUGETracker</a> -
|
||
A music tracker based on OpenMPT, focused on ease of use, compact
|
||
output, and embeddability in homebrew games.</li>
|
||
<li><a href="https://github.com/datguywitha3ds/CBT-FX">CBT-FX</a> - A
|
||
GBDK-2020 sound effect driver compatible with FX-Hammer sound
|
||
effects.</li>
|
||
</ul>
|
||
<h2 id="programming">Programming</h2>
|
||
<p>Guides, tutorials and tools to develop software for Game Boy using
|
||
the development toolchains described in the <a
|
||
href="#software-development">Software Development</a> chapter.</p>
|
||
<h3 id="asm">ASM</h3>
|
||
<ul>
|
||
<li><strong><a href="https://eldred.fr/gb-asm-tutorial">gb asm
|
||
tutorial</a></strong> - Step by step tutorial, building several ROMs to
|
||
accompany its explanations.</li>
|
||
<li><a href="https://github.com/tobiasvl/hardware.inc">hardware.inc</a>
|
||
- Standard include file containing Game Boy hardware definitions for use
|
||
in RGBDS projects.</li>
|
||
<li><a
|
||
href="https://gb-archive.github.io/salvage/tutorial_de_ensamblador/tutorial_de_ensamblador_la_decadence.html">Assembly
|
||
tutorial by David Pello</a> - Good document to learn to produce working
|
||
asm code for gb. Brief explanations of many important topics. Many
|
||
examples with commented source code.</li>
|
||
<li><a
|
||
href="https://github.com/assemblydigest/gameboy">assemblydigest</a> -
|
||
Exploring Game Boy programming techniques:
|
||
<ul>
|
||
<li><a
|
||
href="http://assemblydigest.tumblr.com/post/77203696711/tutorial-making-an-empty-game-boy-rom-in-wiz">Making
|
||
an Empty Game Boy ROM (in Wiz)</a></li>
|
||
<li><a
|
||
href="http://assemblydigest.tumblr.com/post/77404621743/tutorial-making-art-for-the-game-boy">Making
|
||
Art for the Game Boy</a></li>
|
||
</ul></li>
|
||
<li><a
|
||
href="http://web.archive.org/web/20150511145100/http://www.bennvenn.com/Beginners_Guide_To_Reverse_Engineering.htm">Beginner’s
|
||
Guide to Reverse Engineering GB</a> - Some starting tips on
|
||
disassembling and reverse engineering.</li>
|
||
<li><a href="http://voidptr.io/blog/2017/01/21/GameBoy.html">FlappyBoy:
|
||
Making a simple Game Boy Game</a></li>
|
||
<li><a
|
||
href="https://imanoleasgames.blogspot.no/2016/12/games-aside-1-super-game-boy.html">Super
|
||
Game Boy development</a> - Step by step tutorial to implement Super Game
|
||
Boy features (frame and palettes).</li>
|
||
<li><a
|
||
href="https://peterwynroberts.wordpress.com/2014/05/11/gameboy-programming-tutorial-hello-world/">GameBoy
|
||
programming tutorial: Hello World!</a> - Step by step tutorial.</li>
|
||
<li><a href="https://github.com/lancekindle/DMGreport">DMGreport</a> -
|
||
Game programming tutorials in assembly.</li>
|
||
<li><a href="https://gbdev.gg8.se/wiki/articles/OAM_DMA_tutorial">OAM
|
||
DMA tutorial</a> - Example of how to use OAM DMA in assembly.</li>
|
||
<li><a href="https://github.com/ahrnbom/gbapfomgd">Game Boy Assembly
|
||
Programming for the Modern Game Developer</a> - An e-book about making
|
||
Game Boy games in Assembly.</li>
|
||
</ul>
|
||
<h4 id="sources">Sources</h4>
|
||
<p>Fragments of code, effects, proof of concepts and generally non
|
||
complete games.</p>
|
||
<ul>
|
||
<li><a href="http://www.devrs.com/gb/asmcode.php">dev’rs ASM section</a>
|
||
- A lot of working demos and sources.</li>
|
||
<li><a href="https://github.com/EmmaEwert/gameboy">EmmaEwert’s
|
||
experiments</a> - A collection of prototype programs, mostly just toying
|
||
around. Among others, a daylight effect, transparency and a weather
|
||
effect.</li>
|
||
<li><a href="https://github.com/gb-archive/DeadCScroll">DeadCScroll</a>
|
||
- A detailed tutorial on how to make the screen wobble, among other
|
||
“raster effects”</li>
|
||
</ul>
|
||
<h4 id="timings">Timings</h4>
|
||
<ul>
|
||
<li><a
|
||
href="http://blog.kevtris.org/blogfiles/Nitty%20Gritty%20Gameboy%20VRAM%20Timing.txt">Nitty
|
||
Gritty Gameboy Cycle Timing</a></li>
|
||
<li><a
|
||
href="https://old.reddit.com/r/EmuDev/comments/59pawp/gb_mode3_sprite_timing/">Mode3
|
||
Sprite Timing</a></li>
|
||
<li><a
|
||
href="http://gameboy.mongenel.com/dmg/gbc_dma_transfers.txt">GameBoy
|
||
Color DMA-Transfers v0.0.1</a></li>
|
||
<li><a href="http://gameboy.mongenel.com/dmg/istat98.txt">STAT interrupt
|
||
timings</a></li>
|
||
<li><a href="https://github.com/jdeblese/gbcpu/wiki/Video-Timing">Video
|
||
Timing</a></li>
|
||
</ul>
|
||
<h4 id="boilerplates-and-libraries">Boilerplates and libraries</h4>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/nezticle/rgbds-template">rgbds-template</a> -
|
||
Basic hello-world example for Game Boy using RGBDS.</li>
|
||
<li><a href="http://www.devrs.com/gb/files/galp.zip">Game Boy Assembly
|
||
Language Primer</a> - Simple template code with memory defines, copy
|
||
routines and IBM font tilemap.</li>
|
||
<li><a href="https://github.com/yenatch/bootstrap.gb">bootstrap.gb</a> -
|
||
An example Game Boy project.</li>
|
||
<li><a
|
||
href="https://github.com/junebug12851/GameboyBoilerplateProj">Gameboy
|
||
Boilerplate</a> - Boilerplate project to move quicker into the actual
|
||
assembly code for your game.</li>
|
||
<li><a href="https://github.com/ahrnbom/gingerbread">GingerBread</a> - A
|
||
software library for making your own Game Boy games. It is made to be
|
||
used alongside the book <a
|
||
href="https://github.com/ahrnbom/gbapfomgd">Game Boy Assembly
|
||
Programming for the Modern Game Developer</a> which also doubles as
|
||
documentation.</li>
|
||
<li><a href="https://github.com/ISSOtm/gb-vwf">gb-vwf</a> - Library to
|
||
print variable-width text, comes with a demo.</li>
|
||
<li><a
|
||
href="https://github.com/ISSOtm/gb-boilerplate">gb-boilerplate</a> - A
|
||
template for starting Game Boy projects, providing a Makefile for
|
||
infrastructure.</li>
|
||
<li><a
|
||
href="https://github.com/ISSOtm/gb-starter-kit">gb-starter-kit</a> - An
|
||
expansion on the above, including base library code as well to get
|
||
started faster.</li>
|
||
<li><a href="https://github.com/gb-archive/gb-template">gb-template</a>
|
||
- A template with basic functions such as joypad input, DMA transfers,
|
||
and map/tile data loading.</li>
|
||
</ul>
|
||
<h4 id="syntax-highlighting-packages">Syntax highlighting packages</h4>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/ISSOtm/gbz80-highlight">gbz80-highlight</a> -
|
||
Notepad+- and gedit syntax highlighting files for RGBDS assembly.</li>
|
||
<li><a href="http://www.vim.org/scripts/script.php?script_id=819">Vim
|
||
syntax file for the Game Boy assembler RGBASM</a> - Vim syntax
|
||
highlighting for RGBDS assembly.</li>
|
||
<li><a
|
||
href="https://github.com/Leandros/dotfiles/blob/master/.vim/syntax/rgbds.vim">Vim
|
||
syntax file for RGBDS</a> - Another Vim syntax highlighting file for
|
||
RGBDS assembly.</li>
|
||
<li><a href="https://packagecontrol.io/packages/RGBDS">sublime-rgbds</a>
|
||
- A Sublime Text 3 package for RGBDS, including syntax highlighting and
|
||
some completion snippets.</li>
|
||
<li><a href="https://github.com/Imanolea/z80asm-vscode">Z80 Assembly
|
||
support for Visual Studio Code</a></li>
|
||
<li><a
|
||
href="https://github.com/DonaldHays/rgbds-vscode">rgbds-vscode</a> -
|
||
Visual Studio Code language extension for RGBDS GBZ80 Assembly.</li>
|
||
<li><a href="https://github.com/japanoise/rgbds-mode">rgbds-mode</a> -
|
||
Emacs major mode for RGBDS assembly.</li>
|
||
</ul>
|
||
<h3 id="c">C</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/gb-archive/salvage/blob/master/misc/8bit_wonderland.pdf">8-Bit
|
||
Wonderland</a> - Well-written introductory document about how the Game
|
||
Boy works and how to start developing working code for it.</li>
|
||
<li><a
|
||
href="https://github.com/gbdk-salvage/grooves-game-boy-programming">Grooves
|
||
Game Boy Programming</a> - A complete set of lessons about implementing
|
||
various game mechanics in a Game Boy game.</li>
|
||
<li><a href="http://pastebin.com/F3tHLj68">How to Write a Simple Side
|
||
Scrolling Game</a> - Old (but still relevant) tutorial.</li>
|
||
<li><a
|
||
href="http://web.archive.org/web/20230327070526/http://pastebin.com/gzT47MPJ">Just
|
||
another simple tutorial</a></li>
|
||
<li><a
|
||
href="https://refreshgames.co.uk/2016/04/18/gameboy-tutorial-rom/">GBDK
|
||
Tutorial</a> - Fairly minimal game demo for getting started with
|
||
GBDK.</li>
|
||
<li><a
|
||
href="http://gbdev.gg8.se/wiki/articles/GBDK_Sprite_Tutorial">GBDK
|
||
Sprite</a> - Presents a workflow for getting multiple sprites to display
|
||
and animate.</li>
|
||
<li><a href="http://gbdev.gg8.se/wiki/articles/GBDK_Color_Tutorial">GBDK
|
||
Color</a> - Extends your knowledge of basic spriting on the Game Boy by
|
||
adding colors to sprites, backgrounds and the window layer.</li>
|
||
<li><a
|
||
href="http://gbdev.gg8.se/wiki/articles/GBDK_Joypad_Tutorial">GBDK
|
||
Joypad</a> - Details the use of the joypad with GBDK.</li>
|
||
<li><a
|
||
href="https://web.archive.org/web/20210427064949/www.personal.triticom.com/~erm/GameBoy/">Game
|
||
Boy home of Flavor</a> - Some full games and sources.</li>
|
||
<li><a
|
||
href="https://videlais.com/2016/07/03/programming-game-boy-games-using-gbdk-part-1-configuring-programming-and-compiling/">GBDK
|
||
Configuring and Programming Tutorial</a> - Configuring GBDK, Using
|
||
Tiles, Colliding Sprites, GBTD, GBMB, Memory Management and ROM
|
||
Banking.</li>
|
||
<li><a href="https://github.com/mrombout/gbdk_playground">Simplified
|
||
GBDK examples</a></li>
|
||
<li><a
|
||
href="https://www.youtube.com/playlist?list=PLeEj4c2zF7PaFv5MPYhNAkBGrkx4iPGJo">GBDK
|
||
Programming Video Tutorials</a> - A series of video tutorials
|
||
introducing beginners to programming with GBDK.</li>
|
||
<li><a
|
||
href="https://laroldsretrogameyard.com/category/tutorials/gb/">Larold’s
|
||
Retro Gameyard</a> - A collection of detailed GBDK-2020 based
|
||
tutorials.</li>
|
||
</ul>
|
||
<h2 id="homebrews">Homebrews</h2>
|
||
<p>Complete and open source games.</p>
|
||
<ul>
|
||
<li><a href="https://hh.gbdev.io">Homebrew Hub</a> - A community-led
|
||
attempt to collect, archive and preserve every unlicensed and homebrew
|
||
game released for Game Boy. Entries are playable online.</li>
|
||
</ul>
|
||
<h3 id="asm-1">ASM</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/BonsaiDen/Tuff.gb">Tuff</a></li>
|
||
<li><a href="https://github.com/Sanqui/2048-gb">2048-gb</a></li>
|
||
<li><a
|
||
href="https://bitbucket.org/Sanqui/snake/src/?at=master">Snake</a></li>
|
||
<li><a href="https://github.com/huderlem/lazerpong">Lazerpong</a></li>
|
||
<li><a href="https://github.com/AntonioND/geometrix">Geometrix</a></li>
|
||
<li><a href="https://github.com/AntonioND/ucity">µCity</a></li>
|
||
<li><a href="https://github.com/mholtkamp/carazu">Carazu</a></li>
|
||
<li><a href="https://github.com/DonaldHays/snake-gb">Snake-gb</a></li>
|
||
<li><a href="https://github.com/furrtek/GB303">GB303</a> - GB303
|
||
wavetable-based TB-303 style synthesizer for the Nintendo Game Boy.</li>
|
||
<li><a href="https://github.com/JustSid/Sushi">Sushi</a></li>
|
||
<li><a
|
||
href="https://github.com/bitnenfer/flappy-boy-asm">Flappy-boy-asm</a></li>
|
||
<li><a href="https://github.com/dubvulture/gbdev">kupman</a> and some
|
||
other projects.</li>
|
||
<li><a href="https://github.com/tbsp/Adjustris">Adjustris</a></li>
|
||
<li><a href="https://github.com/gb-archive/exeman">exeman</a></li>
|
||
<li><a href="https://github.com/ISSOtm/Aevilia-GB">Aevilia</a></li>
|
||
<li><a href="https://github.com/Kartones/gameboy">GBSlides</a> - A
|
||
simple Game Boy Powerpoint-like slides viewer.</li>
|
||
<li><a href="https://github.com/dannye/pokered-gbc">Pokered-gbc</a> -
|
||
Pokémon Red remade with full GBC support.</li>
|
||
<li><a
|
||
href="https://github.com/tslanina/Retro-GameBoyColor-ToyToy">ToyToy</a></li>
|
||
<li><a
|
||
href="https://github.com/tslanina/Retro-GameBoyColor-StefaN">StefaN</a>
|
||
- Fourway Breakout clone.</li>
|
||
<li><a
|
||
href="https://github.com/tslanina/Retro-GameBoyColor-Galaxia">Galaxia</a></li>
|
||
<li><a href="https://github.com/sanqui/desgb">desgb</a> - DES
|
||
encryption.</li>
|
||
<li><a
|
||
href="https://github.com/l0k1/superhappyfunbubbletime">superhappyfunbubbletime</a></li>
|
||
<li><a
|
||
href="https://github.com/lancekindle/minesweepGB">minesweepGB</a></li>
|
||
<li><a href="https://github.com/pinobatch/libbet">Libbet and the Magic
|
||
Floor</a></li>
|
||
<li><a href="https://github.com/dannye/waveform-gb">waveform-gb</a> -
|
||
Program visualizing the wave form used by the wave channel. The wave
|
||
form can be edited freely and playback of the wave is updated
|
||
immediately.</li>
|
||
<li><a href="https://gitlab.com/BonsaiDen/vectroid.gb">vectroid.gb</a> -
|
||
Developed with gbasm.</li>
|
||
<li><a href="https://github.com/gb-archive/plantboy">PlantBoy</a></li>
|
||
<li><a href="https://makrill.itch.io/death-planet">Death Planet</a></li>
|
||
<li><a href="https://makrill.itch.io/quartet">Quartet</a> - Puzzle game
|
||
for the Game Boy (Color) and Super Game Boy.</li>
|
||
<li><a href="https://snorpung.itch.io/dangan-gb">Dangan</a></li>
|
||
</ul>
|
||
<h3 id="c-1">C</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/bitnenfer/FlappyBoy">FlappyBoy</a></li>
|
||
<li><a
|
||
href="https://github.com/pashutk/flappybird-gameboy">flappybird-gameboy</a></li>
|
||
<li><a href="https://github.com/gb-archive/fbgb">fbgb</a></li>
|
||
<li><a
|
||
href="https://web.archive.org/web/20171002042716/http://ludumdare.com/compo/ludum-dare-34/?action=preview&uid=6823">Novascape</a></li>
|
||
<li><a href="https://github.com/cppchriscpp/SquishyTheTurtle">Squishy
|
||
the Turtle</a></li>
|
||
<li><a href="https://github.com/avivace/quadratino">Quadratino</a></li>
|
||
<li><a href="https://github.com/elfgames/doctorhow">Doctor How</a></li>
|
||
<li><a href="https://github.com/Zal0/gbjam2016">Super Princess’ 2092
|
||
Exodus</a> - (<a href="https://github.com/Zal0/ZGB/">ZGB
|
||
engine</a>).</li>
|
||
<li><a href="https://github.com/brovador/GBsnake">GBsnake</a></li>
|
||
<li><a
|
||
href="https://github.com/andreasjhkarlsson/gb-mines">gb-mines</a></li>
|
||
<li><a
|
||
href="http://www.atari2600land.com/gameboy/oranges.html">oranges</a></li>
|
||
<li><a
|
||
href="https://github.com/Imanolea/bitbitjam3_red_hot_princess_carnage">red
|
||
hot princess carnage</a></li>
|
||
<li><a
|
||
href="https://www.tensi.eu/thomas/programming/games/loderunner/loderunner.html">loderunner</a></li>
|
||
<li><a
|
||
href="https://refreshgames.co.uk/2017/04/24/ludum-dare-38-entry-hives/">Hives</a></li>
|
||
<li><a href="https://github.com/DonaldHays/bubblefactory">Bubble
|
||
Factory</a> - *Vanilla- SDCC (no gbdk).</li>
|
||
<li><a href="https://github.com/rubfi/gbc-atari-boxing">GBC Atari
|
||
Boxing</a> - Atari 2600 Boxing clone for the Game Boy (Color).</li>
|
||
<li><a
|
||
href="https://github.com/haroldo-ok/really-old-stuff/tree/master/gameboy">GB
|
||
raycaster, Vision-8</a> - and some other projects.</li>
|
||
<li><a href="https://github.com/SimonLarsen/tobutobugirl-dx">Tobu Tobu
|
||
Girl Deluxe</a> - An arcade platformer for the Game Boy (Color).</li>
|
||
<li><a href="http://sebastianmihai.com/gameboy-burly-bear.html">Burly
|
||
Bear vs. The Mean Foxes</a> (<a
|
||
href="http://sebastianmihai.com/gameboy-color-burly-bear.html">GBC</a>
|
||
port)</li>
|
||
<li><a href="https://github.com/MasterIV/PostBot">PostBot</a></li>
|
||
<li><a href="https://github.com/kanfor/gunsridersgameboy">Guns &
|
||
Riders</a></li>
|
||
<li><a
|
||
href="https://github.com/gingemonster/DinosOfflineAdventure">Dino’s
|
||
Offline Adventure</a> - A clone of the Google Chrome offline game.</li>
|
||
<li><a href="https://github.com/rnegron/dino-gb">dino-gb</a> - Another
|
||
clone of the Chrome game.</li>
|
||
<li><a href="https://github.com/flozz/evoland.gb">Evoland.gb</a> - A
|
||
port of the first level of Evoland.</li>
|
||
<li><a href="https://github.com/bbbbbr/Petris">Petris</a> - A puzzle
|
||
game of shapely pets for the Game Boy Color (<a
|
||
href="https://bbbbbr.itch.io/petris">itch.io</a>).</li>
|
||
<li><a href="https://github.com/gb-archive/infinity-gbc">Infinity</a> -
|
||
RPG developed by Affinix Software primarily between the years 1999 and
|
||
2001. The game never found a publisher and was eventually canceled. Got
|
||
recently released with the full source, development tools and
|
||
workflows.</li>
|
||
<li><a href="https://gbdev.gg8.se/forums/viewtopic.php?id=743">Black
|
||
Castle</a> - Side scrolling platformer for the Game Boy (<a
|
||
href="https://user0x7f.itch.io/black-castle">itch.io</a>).</li>
|
||
<li><a
|
||
href="https://gbdev.gg8.se/forums/viewtopic.php?id=674">Genesis</a> -
|
||
Shmup for the Game Boy (<a
|
||
href="https://user0x7f.itch.io/genesis">itch.io</a>).</li>
|
||
<li><a
|
||
href="https://antonylavelle.itch.io/indestructotank-gb">Indestructo
|
||
Tank!</a></li>
|
||
<li><a href="https://asobitech.itch.io/super-jetpak-dx">Super JetPak
|
||
DX</a></li>
|
||
<li><a href="https://aiguanachein.itch.io/powa">Powa!</a> - Side
|
||
scrolling platformer for the Game Boy (Color) (<a
|
||
href="https://github.com/Zal0/ZGB/">ZGB engine</a>).</li>
|
||
<li><a href="https://thegreatgallus.itch.io/cavern-mvm-9">Cavern</a> -
|
||
(<a href="https://github.com/Zal0/ZGB/">ZGB engine</a>).</li>
|
||
<li><a href="https://ctneptune.itch.io/mona-and-the-witchs-hat-dx">Mona
|
||
and the Witch’s Hat Deluxe</a> - (<a
|
||
href="https://github.com/Zal0/ZGB/">ZGB engine</a>).</li>
|
||
<li><a href="https://gamejolt.com/games/the-bouncing-ball-gb/86699">The
|
||
Bouncing Ball</a></li>
|
||
<li><a href="https://drludos.itch.io/dmg-deals-damage">DMG Deals
|
||
Damage</a></li>
|
||
</ul>
|
||
<h3 id="gb-studio">GB Studio</h3>
|
||
<ul>
|
||
<li><a href="https://kadabura.itch.io/soul-void">Soul Void</a> -
|
||
Interactive horror fiction.</li>
|
||
<li><a href="https://izma.itch.io/deadeus">Deadeus</a></li>
|
||
<li><a href="https://lumpytouch.itch.io/super-impostor-bros">SUPER
|
||
IMPOSTOR BROS.</a></li>
|
||
</ul>
|
||
<h3 id="demos">Demos</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/AntonioND/back-to-color">Back to
|
||
Color</a></li>
|
||
<li><a href="https://github.com/vegard/beach-gbc">beach-gbc</a></li>
|
||
<li><a href="https://github.com/mills32/CUTE_DEMO">CUTE DEMO</a></li>
|
||
<li><a
|
||
href="https://github.com/svendahlstrand/10-print-game-boy"><code>10 PRINT</code>
|
||
Game Boy</a></li>
|
||
<li><a href="https://github.com/naavis/roboto-demo">Roboto Demo</a></li>
|
||
<li><a
|
||
href="https://github.com/wtjones/matrix-rain-gb">matrix-rain-gb</a> - A
|
||
Matrix digital rain effect in assembler.</li>
|
||
<li><a href="https://github.com/LIJI32/GBVideoPlayer">GBVideoPlayer</a>
|
||
- A technical demo demonstrating how the Game Boy LCD controller can be
|
||
hacked to make a Game Boy Color play a full motion video in color,
|
||
together with music.</li>
|
||
<li><a
|
||
href="https://github.com/LIJI32/GBVideoPlayer2">GBVideoPlayer2</a> - The
|
||
second iteration of the above demo, which increases the resolution, adds
|
||
<em>stereo- PCM audio, and introduces video compression</em>.</li>
|
||
</ul>
|
||
<h2 id="reverse-engineering">Reverse Engineering</h2>
|
||
<ul>
|
||
<li><a
|
||
href="http://ecc-comp.blogspot.it/2016/03/reverse-engineering-kirbys-dreamland-2.html">Reverse
|
||
engineering Kirby’s Dreamland 2</a></li>
|
||
<li><a
|
||
href="https://github.com/pret/pokemon-reverse-engineering-tools">pokemontools</a>
|
||
- a python module that provides various reverse engineering components
|
||
for various Pokémon games.</li>
|
||
<li><a
|
||
href="https://www.megabeets.net/reverse-engineering-a-gameboy-rom-with-radare2">Reverse
|
||
Engineering a Gameboy ROM with radare2</a> - A walkthrough to reverse
|
||
engineer a Game Boy ROM challenge using radare2.</li>
|
||
<li><a
|
||
href="http://kemenaran.winosx.com/posts/category-disassembling-links-awakening/">Disassembling
|
||
Link’s Awakening</a> - A series of blog posts about disassembling Link’s
|
||
Awakening DX.</li>
|
||
<li><a
|
||
href="https://github.com/h3nnn4n/Reverse-Engineering-the-GameBoy-Tetris">Reverse
|
||
Engineering the GameBoy Tetris</a></li>
|
||
<li><a href="https://gbdev.io/guides/dma_hijacking">DMA hijacking</a> -
|
||
A simple technique that allows you to run custom code in most GB/SGB/CGB
|
||
games, provided you have an ACE exploit.</li>
|
||
</ul>
|
||
<h3 id="game-disassemblies">Game Disassemblies</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/pret/pokered">Pokémon Red/Blue</a></li>
|
||
<li><a href="https://github.com/pret/pokecrystal">Pokémon
|
||
Crystal</a></li>
|
||
<li><a href="https://github.com/pret/pokeyellow">Pokémon Yellow</a></li>
|
||
<li><a href="https://github.com/pret/pokegold">Pokémon Gold and
|
||
Silver</a></li>
|
||
<li><a href="https://github.com/pret/pokepinball">Pokémon
|
||
Pinball</a></li>
|
||
<li><a href="https://github.com/pret/poketcg">Pokémon TCG</a></li>
|
||
<li><a
|
||
href="https://github.com/pret/pokegold-spaceworld">pokegold-spaceworld</a>
|
||
- Pokémon Gold and Silver 1997 Space World demo.</li>
|
||
<li><a href="https://github.com/mojobojo/LADX-Disassembly">Link’s
|
||
Awakening DX</a></li>
|
||
<li><a href="https://github.com/drenn1/ages-disasm">Oracle of
|
||
Ages</a></li>
|
||
<li><a href="https://github.com/vinheim3/tetris-gb-disasm">Tetris</a> -
|
||
Complete Tetris disassembly.</li>
|
||
<li><a href="https://github.com/DevEd2/FXHammer-Disasm">FX
|
||
Hammer</a></li>
|
||
<li><a href="https://github.com/sanqui/hm3">Harvest Moon 3</a></li>
|
||
<li><a href="https://github.com/daid/FFA-disassembly">Final Fantasy
|
||
Adventure</a></li>
|
||
<li><a
|
||
href="https://github.com/not-chciken/jungle-book-gb-disassembly">The
|
||
Jungle Book</a></li>
|
||
</ul>
|
||
<h2 id="game-boy-camera">Game Boy Camera</h2>
|
||
<h3 id="retrieving-images">Retrieving images</h3>
|
||
<p>Game Boy Printer emulation (e.g. to retrieve images from the
|
||
camera):</p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/mofosyne/arduino-gameboy-printer-emulator">Arduino
|
||
Gameboy Printer Emulator</a> - Emulate a gameboy printer via the gameboy
|
||
link cable.</li>
|
||
<li><a
|
||
href="https://github.com/applefreak/esp8266-gameboy-printer">ESP8266
|
||
Game Boy Printer</a> - A device that emulates the Gameboy Printer and
|
||
lets you retrieve images using WiFi powered by an ESP8266.</li>
|
||
<li><a href="https://github.com/HerrZatacke/wifi-gbp-emulator">WiFi GBP
|
||
Emulator</a> - A GameBoy printer emulator which provides the received
|
||
data over a WiFi connection.</li>
|
||
<li><a href="https://github.com/cristofercruz/gbp-esp-shield-pcb">Game
|
||
Boy WiFi Printer - D1 Mini Shield</a> - Game Boy Printer interface
|
||
shield for D1 mini/mini Pro ESP8266 boards.</li>
|
||
<li><a href="https://github.com/mofosyne/GameboyPrinterSniffer">Game Boy
|
||
Printer Sniffer</a> - Sniff packet communications between a Game Boy and
|
||
the Printer.</li>
|
||
</ul>
|
||
<h3 id="changing-the-cameras-behavior">Changing the camera’s
|
||
behavior</h3>
|
||
<p>Methods to improve and/or manipulate the camera’s quality and
|
||
behavior:</p>
|
||
<ul>
|
||
<li><a href="http://ekeler.com/game-boy-camera-canon-ef-mount">Game Boy
|
||
Camera Canon EF Lens Mount</a></li>
|
||
<li><a href="https://www.thingiverse.com/thing:4337362">Game Boy Camera
|
||
to Canon Lens mount</a> - based on the above.</li>
|
||
<li><a
|
||
href="https://github.com/cristofercruz/game-boy-camera-frame-replacer">game-boy-camera-frame-replacer</a>
|
||
- Manipulate the ROM of a camera to include custom frames</li>
|
||
</ul>
|
||
<h3 id="post-processing">Post processing</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/mofosyne/GameboyPrinterPaperSimulation">Game
|
||
Boy Printer Paper Simulation</a> - Generate as-if-printed images of
|
||
digital printed images.</li>
|
||
<li><a href="https://github.com/HerrZatacke/gb-printer-web">Game Boy
|
||
Printer Web</a> - Gallery app for to the Game Boy camera: import
|
||
pictures from exports or cartridge dumps and choose color palettes.</li>
|
||
</ul>
|
||
<h2 id="related-projects">Related projects</h2>
|
||
<ul>
|
||
<li><a href="https://www.gbstudio.dev/">GB Studio</a> - Drag and drop
|
||
game creator with simple, no knowledge required, visual scripting.
|
||
<ul>
|
||
<li><a href="https://gbstudiocentral.com/resources/">Resources to get
|
||
started</a></li>
|
||
<li><a href="https://discord.gg/knRryZWGcm">Dedicated Discord</a></li>
|
||
<li><a href="https://gumpyfunction.itch.io/lets-build-a-platformer">Lets
|
||
Build a Platformer Game!</a> - A course designed to teach anyone how to
|
||
create a platformer game using GB Studio 4+.</li>
|
||
</ul></li>
|
||
<li><a href="https://github.com/trash80/Arduinoboy">ArduinoBoy</a> -
|
||
Serial communication (MIDI) from an Arduino to the Game Boy for music
|
||
applications such as LittleSoundDJ, Nanoloop, and mGB.</li>
|
||
<li><a href="https://github.com/diegovalverde/papiGB">papiGB</a> - Game
|
||
Boy Classic fully functional FPGA implementation from scratch.</li>
|
||
<li><a href="https://github.com/trun/fpgaboy">fpgaboy</a> -
|
||
Implementation Nintendo’s Game Boy console on an FPGA.</li>
|
||
<li><a href="https://github.com/danShumway/Piglet">Piglet</a> - A
|
||
LUA-driven AI that plays classic Game Boy color games using
|
||
experimentation. In active development.</li>
|
||
<li><a href="https://github.com/PumpMagic/ostrich">Ostrich</a> - A Game
|
||
Boy Sound System player written in Swift.</li>
|
||
<li><a href="https://github.com/trash80/mGB">mGB</a> - A Game Boy
|
||
cartridge program that enables the Game Boy to act as a full MIDI
|
||
supported sound module.</li>
|
||
<li><a href="https://github.com/LIJI32/GBVisualizer">GBVisualizer</a> -
|
||
Demonstrating the use of two undocumented Game Boy Color registers,
|
||
nicknamed PCM12 (FF76) and PCM34 (FF77), which can be used to read the
|
||
current PCM amplitude of the 4 APU channels.</li>
|
||
<li><a
|
||
href="https://github.com/drhelius/arduinogameboy">ArduinoGameBoy</a> -
|
||
Arduino based Game Boy cartridge reader and writer.</li>
|
||
<li><a
|
||
href="https://github.com/bitnenfer/gameboy-brainfuck">gameboy-brainfuck</a>
|
||
- Brainf*ck interpreter.</li>
|
||
<li><a href="https://github.com/elseyf/gbfk">gbfk</a> - Brainf*ck
|
||
interpreter, with input.</li>
|
||
<li><a
|
||
href="https://github.com/mattcurrie/gb-save-states">gb-save-states</a> -
|
||
Patches to add save state support to Game Boy games when playing on the
|
||
original hardware.</li>
|
||
<li><a href="https://github.com/jdeblese/gbcpu">gbcpu</a> - A CPU and
|
||
peripherals implementing the Game Boy instruction set and
|
||
functionality.</li>
|
||
<li><a href="https://youtube.com/watch?v=1lzHfLYzyRM">Digitized Speech
|
||
in Game Boy Games</a></li>
|
||
<li><a href="https://dhole.github.io/post/gameboy_serial_1/">Sniffing
|
||
Game Boy serial traffic with an STM32F4</a></li>
|
||
<li><a href="https://dhole.github.io/post/gameboy_serial_2/">Virtual
|
||
Game Boy Printer with an STM32F4</a></li>
|
||
<li><a href="https://dhole.github.io/post/gameboy_serial_3/">Printing on
|
||
the Game Boy Printer using an STM32F4</a></li>
|
||
<li><a
|
||
href="https://dhole.github.io/post/gameboy_cartridge_rw_1/">Programming
|
||
Game Boy Chinese cartridges with an STM32F4</a></li>
|
||
<li><a
|
||
href="https://tilde.town/~minerobber/techwriteups/pokemonpc.html">Pokemon
|
||
Pocket Computer:</a> - What is it and how to use it to make cheat
|
||
codes.</li>
|
||
<li><a href="https://dhole.github.io/post/gameboy_custom_logo/">Booting
|
||
the Game Boy with a custom logo</a> - Bypassing the Nintendo logo
|
||
check.</li>
|
||
<li>Making a Game Boy game in 2017: A “Sheep It Up!” Post-Mortem (<a
|
||
href="https://www.gamasutra.com/blogs/DoctorLudos/20171207/311143/">part
|
||
1</a>, <a
|
||
href="https://www.gamasutra.com/blogs/DoctorLudos/20180213/314554/">part
|
||
2</a>)</li>
|
||
<li><a href="http://fuji.drillspirits.net/?post=87">Nintendo’s fake
|
||
logos</a> - Every cartridge has to show the authentic logo to be
|
||
considered valid and be run, but obviously some companies managed to
|
||
exploit the check system.</li>
|
||
<li><a href="https://github.com/stijnfrishert/liblsdj">liblsdj</a> -
|
||
Utility library for interacting with the LSDj save format (.sav), song
|
||
files (.lsdsng) and more.</li>
|
||
<li><a href="https://github.com/jkotlinski/lsdpatch">lsdpatch</a> - Tool
|
||
for modifying samples, fonts and palettes on LSDj ROM images.</li>
|
||
<li><a
|
||
href="https://github.com/ChaosCabbage/crazy-gameboy-video-experiments">Game
|
||
Boy video effects</a> - Some little experiments using the STAT interrupt
|
||
to do funny video manipulations.</li>
|
||
<li><a href="https://github.com/ekimekim/gbos">gbos</a> - A basic
|
||
operating system for the Game Boy.</li>
|
||
<li><a
|
||
href="https://translate.google.com/translate?hl=&sl=ru&tl=en&u=https%3A%2F%2Fweb.archive.org%2Fweb%2F20081226145726%2Fhttp%3A%2F%2Fworkmaster.ru%2Findex.php%3Fp%3D8&sandbox=1">Work
|
||
Master OS</a> - Russian multi tasking operating system.</li>
|
||
<li><a href="https://github.com/Palmr/gb-link-cable">Game Boy Link Cable
|
||
Breakout Board</a></li>
|
||
<li><a href="https://github.com/Tauwasser/GBCartFlasher">GBCartFlasher
|
||
firmware</a></li>
|
||
<li><a href="https://github.com/zephray/VerilogBoy/">VerilogBoy</a> -
|
||
Game Boy compatible console Verilog RTL implementation.</li>
|
||
<li><a href="https://github.com/furrtek/GBCamcorder">GBCamcorder</a> -
|
||
Lo-Fi portable video recorder using a GameBoy Camera cartridge.</li>
|
||
<li><a href="https://github.com/insidegadgets/GBCartRead">GBCartRead</a>
|
||
- Read ROM, Read RAM or Write RAM from/to a GameBoy Cartridge.</li>
|
||
<li><a href="https://github.com/insidegadgets/GBxCart-RW">GBxCart-RW</a>
|
||
- A device for reading game ROMs, save games and restoring saves for GB,
|
||
GBC and GBA carts from your PC via USB.</li>
|
||
<li><a href="http://www.its.caltech.edu/~costis/sgb_hack/">Dumping the
|
||
Super Game Boy Boot ROM</a></li>
|
||
</ul>
|
||
<h3 id="directories">Directories</h3>
|
||
<ul>
|
||
<li><a href="http://gbdev.gg8.se/files/">Archive of related
|
||
files</a></li>
|
||
<li><a href="https://github.com/gb-archive">The Game Boy Archive</a> - A
|
||
library of Game Boy related software, hardware and literature. Aimed to
|
||
mirror and preserve old and fragmented contributions from the last three
|
||
decades.</li>
|
||
<li><a href="https://github.com/gb-archive/salvage">The Game Boy Archive
|
||
- Salvage</a> - Historical archive of software, old articles, FAQs and
|
||
various documents.</li>
|
||
</ul>
|
||
<h3 id="websites">Websites</h3>
|
||
<ul>
|
||
<li><a href="http://devrs.com/gb">devrs.com/gb</a> - Old home of the
|
||
scene: examples, sources, complete documentation, guides, tutorials and
|
||
various tools.</li>
|
||
<li><a href="http://pdroms.de/news/gameboy/">pdroms.de</a> - Game Boy
|
||
releases.</li>
|
||
<li><a href="http://hhug.me">Handheld Underground</a> - Unlicensed
|
||
games, blog posts about Game Boy, home of the hhugboy emulator.</li>
|
||
</ul>
|
||
<h2 id="about">About</h2>
|
||
<h3 id="contribute">Contribute</h3>
|
||
<p>Take a look at <a href="CONTRIBUTING.md">Contribution
|
||
Guidelines</a>.</p>
|
||
<h3 id="license">License</h3>
|
||
<p>Licensed under <strong>GPLv3</strong>. See <a
|
||
href="LICENSE">LICENSE</a> for more information.</p>
|
||
<h3 id="acknowledgements">Acknowledgements</h3>
|
||
<p>Thanks to <a
|
||
href="https://github.com/avivace/awesome-gbdev/graphs/contributors">every</a>
|
||
contributor of this project, Jeff Frohwein, Pascal Felber, KOOPa, Pan of
|
||
Anthrox, GABY, Marat Fayzullin, Paul Robson, BOWSER, neviksti, Martin
|
||
“nocash” Korth, Nitro2k01, Duo, Chris Antonellis, Michael Hope, Beware,
|
||
Jonathan “Lord Nightmare” Gevaryahu, Carsten Sorense, Sindre Aamås,
|
||
Otaku No Zoku, GeeBee.</p>
|
||
<h3 id="sponsors">Sponsors</h3>
|
||
<p>Special thanks to our friends at <a
|
||
href="https://www.digitalocean.com/">DigitalOcean</a> and <a
|
||
href="https://incube8games.com/">Incube8 Games</a>, sponsoring the open
|
||
source activites of our Game Boy Development community.</p>
|
||
<p><a href="https://github.com/gbdev/awesome-gbdev">gbdev.md
|
||
Github</a></p>
|