mirror of
https://github.com/gbdev/awesome-gbdev.git
synced 2025-01-18 04:38:26 +01:00
13 KiB
13 KiB
Awesome Game Boy Development
A curated list of awesome Game Boy Development resources, tools, docs, related projects and open-source ROMs. Inspired by the awesome list thing.
Here you can find everything to get started and master the development of unofficial software for the original 1989 Game Boy.
Contents
- Community
- Documentation
- Development Softwares and Tools
- Programming Tutorials
- ROMs Disassembly
- Cartridges
- Related sites, posts and projects
- Contribute
- License
- Special Thanks
Community
- gbdev.gg8.se - This is basically the home of the gbdev scene. The wiki has a lot of articles from previous sites, tutorials and other documents about a lot of topics.
- devrs.com/gb - Jeff Frohwein’s page, this the main reference for everything. Almost everything is archived here: code examples and working programs(ASM and C), complete documentation and various tools.
- #gbdev on EFnet - IRC channel.
Documentation
- Game Boy Programming Manual - Official Game Boy hardware manual by Nintendo. Pretty much everything in the console is covered and explained in this manual. This should be your first and main resource to start understanding what game boy is.
- The Cycle-Accurate Game Boy Docs - A precise documentation by AntonioND to make a cicle-accurate Game Boy emulator.
- Pan Docs - The single most comprehensive technical reference to Game Boy that is available to the public.
- The Game Boy, a hardware autopsy - A video series explaining how exactly a Game Boy works.
- gbdev Sources - A collection of demos, homebrews and full games with complete sources (in C and ASM)
- GBSOUND.txt - Some informations on the sound engine.
- DMG Schematics - Schematics for every part of hardware.
- [GB Instructions](http://www.chrisantonellis.com/files/Game Boy/gb-instructions.txt) Game Boy Assembly Language Commands
- [GB ASM Tips](http://www.chrisantonellis.com/files/Game Boy/gb-asm-tips.txt) - Some tips for coding in Assembly by Jeff Frohwein.
- [ASMotor Manual](http://www.chrisantonellis.com/files/Game Boy/asmotor-v0.1.0-manual.pdf) - A reference for rgbds.
- GBDK libraries documentation
- gbdev FAQs - Must read by Jeff Frohwein.
- Game Boy CPU InstructionSet Sheet (GCISheet) - Cheatsheet for the available Istruction Set.
- [Game Boy CPU Manual](http://marc.rawer.de/Game Boy/Docs/GBCPUman.pdf) - Assembly Language Commands, Timings and Opcodes.
- Assembly Language Programming Course - Machine and assembly language programming concepts that illustrate basic principles and techniques. Application through study of the Z80 chip and Game Boy programming assignments (Center for Research in Arts, Technology, Education, and Learning CRATEL at Withicha State University).
- [Building a Game Boy emulator in JavaScript](http://imrannazar.com/Game Boy-Emulation-in-JavaScript) - Step by step tutorial.
- Game Boy Camera RE - Documentation about GB Camera and tools used to reverse engineer it by using Arduino UNO.
Development Softwares and Tools
- rgbds - The main gb devkit. Assembler and linker package, currently updated. This is your main tool to write code in ASM.
- The Game Boy Developer's Kit (GBDK) - A set of tools that enable to develop programs for the Nintendo Game Boy system, either in C or in assembly. GBDK includes a set of libraries for the most common requirements and generates image files for use with a real Game Boy.
- BGB - Powerful Game Boy emulator and debugger. Provides an accurate hardware emulation.
- [Game Boy Tile Data Generator](http://www.chrisantonellis.com/Game Boy/gbtdg/) - HTML5 / JS web application that will convert bitmap images to hexidecimal data appropriate for use in tile based graphical applications, specifically GB.
- rgbds_textmate - Some syntax highlighting rules for coding in Z80 assembly as a Textmate language plugin. Works in Sublime Text 2 and 3. The syntax is particularly designed for [RGBDS](http://www.otakunozoku.com/rednex-Game Boy-development-system/) and Game Boy-specific Z80 instructions.
- Harry Mulder's GB Development - Some sources and home of Game Boy Tile Designer and Game Boy Map Builder tools
- Gambatte - Open-source, cross-platform and accurate emulator for Game Boy and Game Boy Color.
- GBT PLAYER - A music player library and converter kit for Game Boy that can be used with RGBDS.
Programming Tutorials
asm
- [ASMSchool](http://Game Boy.mongenel.com/asmschool.html) - A set of lessons by Duo about coding in Assembly for GB/GBC and disassembling.
- dev'rs ASM section - A lot of working demos and sources.
- Assembly tutorial by David Pello - Good document to actually learn to produce working asm code for gb. Brief explainations of many important topics. Many examples with commented source code (spanish only).
- [Assembly tutorial by David Pello](http://92.19.232.58:82/files/Game Boy_RGBDS_ASM_Tutorial.zip) The english version of the resource above.
- Beginners Guide to Reverse Engineering GB Some starting tips on disassembling and reverse engineering.
- [Writing a Game Boy game in ASM](http://siobyte.xyz/1-Game Boy-tutorial/) - Intro to Binary and Hexadecimal.
- Game Boy DMA transfer routines - Understanding and using DMA routines.
C
- Grooves Game Boy Programming - A complete set of lessons about implementing various game mechanics in a Game Boy game.
- 8-Bit Wonderland - Well-written introductory document about how Game Boy works and how to start developing working code for it.
- [Game Boy home of Flavor](http://www.personal.triticom.com/~erm/Game Boy/) - Some full games and sources.
- How to Write a Simple Side Scrolling Game - Old (but still relevant) tutorial.
- Just another simple tutorial
- [GBDK Tutorial by Ryan Carson](https://refreshgames.co.uk/2016/04/18/Game Boy-tutorial-rom/) Fairly minimal game demo for getting started with GBDK.
ROMs Disassembly
Cartridges
- AntonioND's docs - Corrected schematics and infos on cartridge header data
- [Gekkio's Game Boy cartridge types](http://gekkio.fi/blog/2015-02-14-mooneye-gb-Game Boy-cartridge-types.html) - An overview on existing cartridge types.
- Gekkio's cartridge analysis - DMG-BEAN-02, MBC1, no MBC
- Game Boy Cartridges Schematics - Schematics for MBC2 and MBC3 types.
- Reiner Ziegler's Game Boy page - Commercial and homemades programmable cartridges and programming systems. Tutorials, wiring and schematics provided.
- MBC1+Ram+Battery cartridge Schematic - First schematics by Jeff Frohwein.
- [MBC1 and MBC2 cartridges circuits](http://fms.komkon.org/Game Boy/Tech/Carts.html) and explaination on how these MBC actually bank switch and control RAM.
- GB Rom List - Navigable table of every GB game released with details on their cartridges.
- Game Boy cartridge PCB photos
Related sites, posts and projects
- fpgaboy - Implementation Nintendo's Game Boy console on an FPGA.
- [php-terminal-Game Boy-emulator](https://github.com/gabrielrcouto/php-terminal-Game Boy-emulator) - A PHP Terminal Game Boy Emulator.
- [JavaScript Game Boy Color Emulator](https://github.com/taisel/Game Boy-Online) - A Game Boy Color emulator that utilizes HTML5 canvas and JavaScript audio APIs to provide a full emulation of the console.
- weplay - Collaborative Game Boy emulation powered 100% by JavaScript.
- gbasm - A JavaScript based compiler for Game Boy z80 assembly code.
- Piglet - A LUA driven AI that plays classic Game Boy color games using experimentation. In active development.
- [The Game Boy Project](http://marc.rawer.de/Game Boy/Docs/GBProject.pdf) - A work by 6 students of Fachhochschule Karlsruhe University. The document provides a study on the hardware and detailed constructional information for the realisation of three 8 bitbidirectional parallel ports.
- gbdk-n - This project aims to update the gbdk libraries to be compatible with new versions of SDCC and provide helpers for building roms.
- Wiz by Andrew G. Crowell - A high-level assembly language for writing homebrew on retro console platforms (Game Boy, NES, Atari 2600, and more).
- Mooneye-gb - Work-In-Progress emulator made in Rust. The main goals of this project are accuracy and documentation. Existing emulators are very accurate but are not documented very clearly, so they are not that good references for emulator developers. This project is meant to document as clearly as possible why certain behaviour is emulated in a certain way. This also means writing a lot of test ROMs to figure out corner cases and precise behaviour on real hardware.
- Gatesboy - Non-gaming purposes applications development.
- RealBoy blog Articles about the GB hardware and an interesting analysis of the start up phase (bootstrap).
- [pdroms.de](http://pdroms.de/news/Game Boy/) Game Boy releases.
- [Game Boy Demospotting](http://Game Boy.modermodemet.se/en) - A collection of demos.
- Nintendo's fake logos - Every cartdrige has to show the authentic logo to be considered valid and be runned, but obviously some companies managed to exploit the check system.
- GBDK Developers - Active blog about everything related to the scene. Features insights and interviews.
Contribute
Thank you! Take a look at Contribution Guidelines.
License
See LICENSE for more information.
Special Thanks
Jeff Frohwein, Pascal Felber, KOOPa, Pan of Anthrox, GABY, Marat Fayzullin, Paul Robson, Martin Korth, BOWSER, neviksti, Martin “nocash" Korth, Nitro2k01, Duo, Chris Antonellis, Michael Hope, Beware, Jonathan “Lord Nightmare” Gevaryahu, Marat Fayzullin, Paul Robson, Carsten Sorense, Sindre Aamås, Otaku No Zoku, GeeBee.