Giter VIP home page Giter VIP logo

awesome-gbdev's Introduction

GameboyIcon Awesome Game Boy Development

A curated list of awesome Game Boy (Color) Development resources, tools, docs, related projects and open-source ROMs. Inspired by the awesome list thing.

Contents

Intro

Disambiguation

Although this documentation is focused on the original (1989) Game Boy (DMG), the Game Boy Color (GBC) and Super Game Boy (SGB) are very similar systems, with few important distinctions, such as:

  • Different hardware specifications
  • Specific hardware and software features
  • Specific registers
  • Specific bugs and exploitable behaviours

If you aim to develop your software for SGB or GBC, or you want to know how it runs on the others system, you may want to take advantage and adapt to these differences, check the Game Boy Color category and look for specific references to GBC/CGB and SGB in the documentation.

Community

Documentation

Misc

Cheatsheets, Tables

Hardware

Game Boy Color

Peripherals

Cartridges

Emulator Development

Open-source emulators

  • Mooneye-gb - A Game Boy research project and emulator written in Rust.
  • jsGB - Javascript.
  • php-terminal-Game Boy-emulator - PHP Terminal.
  • gameboy-Online - Javascript, HTML5 canvas and JavaScript audio APIs.
  • cboy - C. Mac OS X and Linux.
  • weplay - Collaborative Game Boy emulation powered by JavaScript.
  • giibiiadvance - A GB, GBC emulator with GB Camera support. Written in C.
  • GBE+ - Built in C++ and SDL. Focused on enhancements.
  • Sameboy - Portable C.
  • GameYob - Emulator for Nintendo (3)DS.
  • oneup-gb - C++ DMG. Currently provides SDL frontend and Retroarch integration.
  • rustboy - A basic DMG emulator written in Rust, using the Piston engine for window creation and graphics.
  • Gearboy - C++. iOS, Raspberry Pi, Mac, Windows and Linux.
  • AndroidGameBoyEmulator
  • GameLad - C++/SDL almost fully featured emulator.
  • Wadatsumi - Arrow.
  • Binjgb - 5kloc emulator in C that passes most of the tests.
  • jgilchrist - Modern C++.
  • gameboyGO - Go.
  • GameBoyEmulator-GBS - C++ 14 with a single library dependency of SFML.
  • PyBoy - Python. Mac, Linux and Windows.
  • scimitar - Rust.
  • FunGBC - F#.
  • barnacleboy - Rust.
  • node-gameboy - Node.js.
  • PlutoBoy - Cross platform (Windows, OSX, Linux/Unix, Android, iOS, Web Browsers, and Sony PSP) emulator.
  • SuperGameHerm - Cross platform emulator written in C11.
  • Coffee GB - Java 8.
  • gomeboycolor - Go, cross platform documented emulator.
  • mGBA - A modern cross platform GBA emulator which also runs GB/GBC games. Written in C.
  • GBRE - Game Boy Runtime Environment for iOS (iOS Safari and Chrome).
  • PatBoy - C++/SDL2 with a fully functional visual debugger.
  • gnuboy - ANSI C.
  • SmartGear - C++, SDL2. Focus on optimized performance for resource-limited devices. GTK or direct framebuffer build.
  • wasmBoy - Web Assembly.
  • gameboycore - C++ emulation backend. Dependency free C++11 library.
  • Gambattye - macOS, powered by a fork of Gambatte.
  • miniBoy - C.
  • hhugboy - Windows, based on GEST v1.1.1 by TM, with added support for unlicensed mappers, Unicode filenames, screenshots and some other stuff

Software Development

Assemblers

  • RGBDS - Assembler and linker package (a fork currently updated).
  • wla-dx - Yet Another GB-Z80/Z80/.. Multi Platform Cross Assembler Package.

Experimentals/Proof of Concepts

  • gbasm - A JavaScript based compiler for Game Boy z80 assembly code.
  • tniASM - Macro Assembler.
  • Assembler - Assembler written in Swift.
  • llvm-gbz80 - LLVM port to the GBZ80 CPU (similar project, deprecated).

Compilers

  • The Game Boy Developer's Kit (GBDK) - A set of tools that enable to develop programs for the Nintendo Game Boy system in C. Includes a set of libraries for the most common requirements and generates image files for use with a real Game Boy.
  • gbdk-osx - Patched GBDK 2.96a for the latest compilers on OS X.
  • clang-gbz80 - Clang port to the GBZ80 CPU.

Emulators

  • BGB - Powerful Game Boy emulator and debugger. Provides an accurate hardware emulation.
  • Gambatte - Open-source, cross-platform and accurate emulator for Game Boy and Game Boy Color.

Tools

  • ZGB - A little engine for creating games for the original Game Boy (expands gbdk, more info here).
  • DevSound - Sound driver embeddable in homebrews which supports pulse width manipulation, arpeggios, and multiple waveforms.
  • Carillon Player - Music Engine for Game Boy & Game Boy Color.
  • Game Boy Tile Data Generator - HTML5 / JS web application that will convert bitmap images to hexadecimal data appropriate for use in tile based graphical applications, specifically GB.
  • Harry Mulder's GB Development - Some sources and home of Game Boy Tile Designer and Game Boy Map Builder tools.
  • GBT PLAYER - A music player library and converter kit for Game Boy that can be used with RGBDS.
  • ROM Header Utility - An online tool to inspect and modify a ROM's header data, including the logo.
  • gbcamextract - Extracts photos from Game Boy Camera saves.
  • GBExtended - C library extending gbdk.
  • GBZ80 to items - An online converter, translates gameboy assembly into Pokémon R/B/Y items (Source).
  • bmp2cgb - 8bpp bitmap converter for Game Boy Color development.
  • png2gb - CLI tool to convert image file to game boy .c array.
  • gbdk-lib-extension - A small set of sources and tools for the Game Boy Development Kit by Michael Hope.
  • GB-convert - Game Boy tile conversion and map editor tool (converts to assembly).
  • cart-dumper - Game Boy Cartridge Dumper ROM.
  • Game Boy LCD sniffing - Sniff your Game Boy's LCD using a logic analyzer.
  • Dot Matrix Game Editor - An IDE for Game Boy programming in a C-like language called GBL, with many other features like tile and map extraction, WLA-DX assembly, and more.
  • brewtool - A collection of primitive editor/converter tools for making assets used with homebrew ROM development.
  • Game Boy Text Tools - Set of tools for text manipulation and translation of Game Boy ROMs written in NodeJS
  • mmlgb - MML to Game Boy parser and driver.
  • mgbdis - Game Boy ROM disassembler with RGBDS compatible output.
  • Retr0 GB - An engine for creating games (expands GBDK).
  • awake - Gameboy decompiler.

Syntax highlighting packages

Programming Tutorials

ASM

Glitches and exploits

Timings

C

Games

  • Homebrew Hub - Every unofficial homebrew ever produced for Game Boy playable online (mobile/touch too): a community-lead attempt to collect, archive and save every unofficial game, homebrew, demo, patch, hackrom for Game Boy (Color) produced by the community through years of passionate work.
  • Infinity - 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.

ASM

C

Hack ROMs

Demos

ROMs Disassembly

Related projects

  • ArduinoBoy - Serial communication (MIDI) from an Arduino to the Game Boy for music applications such as LittleSoundDJ, Nanoloop, and mGB.
  • papiGB - Game Boy Classic fully functional FPGA implementation from scratch.
  • fpgaboy - Implementation Nintendo's Game Boy console on an FPGA.
  • Piglet - A LUA-driven AI that plays classic Game Boy color games using experimentation. In active development.
  • gbdk-n - Aims to update the gbdk libraries to be compatible with new versions of SDCC and provide helpers for building roms.
  • Wiz - A high-level assembly language for writing homebrew on retro console platforms (Game Boy, NES, Atari 2600, and more).
  • Gatesboy - Non-gaming purposes applications development.
  • Ostrich - A Game Boy Sound System player written in Swift.
  • mGB - A Game Boy cartridge program that enables the Game Boy to act as a full MIDI supported sound module.
  • GBVisualizer - 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.
  • GBVideoPlayer - 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.
  • ArduinoGameBoy - Arduino based Game Boy cartridge reader and writer.
  • gameboy-brainfuck - Implementation of a brainfuck interpreter.
  • gb-save-states - Patches to add save state support to Game Boy games when playing on the original hardware.
  • gbcpu - A CPU and peripherals implementing the Game Boy instruction set and functionality.
  • Digitized Speech in Game Boy Games
  • Sniffing Game Boy serial traffic with an STM32F4
  • Virtual Game Boy Printer with an STM32F4
  • Printing on the Game Boy Printer using an STM32F4
  • Pokemon Pocket Computer: - What is it and how to use it to make cheat codes.
  • Booting the Game Boy with a custom logo - Bypassing the Nintendo logo check.
  • Making a Game Boy game in 2017: A "Sheep It Up!" Post-Mortem (part 1, part 2)
  • Nintendo's fake logos - 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.

Directories

Websites

About

Contribute

Take a look at Contribution Guidelines.

License

Licensed under GPLv3. See LICENSE for more information.

Acknowledgements

Thanks to every 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.

awesome-gbdev's People

Contributors

antoniond avatar avivace avatar baekalfen avatar brovador avatar catskull avatar davidsharp avatar deved2 avatar donaldhays avatar frestr avatar gitendo avatar issotm avatar itayc0hen avatar lmmendes avatar loociano avatar mofosyne avatar nickdesaulniers avatar pashutk avatar raphaklaus avatar renatocribeiro avatar rubfi avatar svendahlstrand avatar tobiasvl avatar trekawek avatar wistudent avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.