gbdev / awesome-gbdev Goto Github PK
View Code? Open in Web Editor NEWA curated list of Game Boy development resources such as tools, docs, emulators, related projects and open-source ROMs.
Home Page: https://gbdev.io/resources
License: Other
A curated list of Game Boy development resources such as tools, docs, emulators, related projects and open-source ROMs.
Home Page: https://gbdev.io/resources
License: Other
vtGBte - A raw-binary format tile editor for Unix systems.
What I'm supposed to write here?
Although I'd be happy to go through and update what I can, when I get the chance.
See #158 for context
1- The Game Boy, a hardware autopsy.
2- The Ultimate Game Boy Talk.
3- Emulation of Nintendo Game Boy - Overview of the Game Boy hardware with the perspective of building an emulator.
Even if you ignore the graphics hardware differences, it doesn't even run on the same processor!
See #158 for context.
- Game Boy Crib Sheet - A handy printable reference sheet with ASM opcodes, memory locations, and much more (repository).
- OP Codes cheatsheet
- gb-opcodes - Opcodes table
- rednex gbz80 opcode reference
- Opcode table
- Opcode table with timings and flags
- Game Boy CPU Instruction Set Sheet (GCISheet) - Cheatsheet for the available Instruction Set.
He uses expired thermal paper, so he ends the video believing that the GB Printer only prints 2 colors. I don't think we should get rid of the video but we definitely need to mention it with the video.
Don't know if it belongs, but I noticed there's no mention of the 'vasm' C compiler, which can target the GameBoy: http://sun.hasenbraten.de/vasm/
Described at:
It's freely available, but not Free or Open Source. I haven't tried it out so I can't attest to its quality.
In the table of contents, the aforementioned link doesn't work... It looks exactly the same as the one automatically generated next to the right paragraph, which does work.
See #158 for context
- Game Boy Programming Manual - Official Game Boy programming and hardware manual by Nintendo.
- Pan Docs - Historical comprehensive technical reference, wikified, corrected and updated.
- The Cycle-Accurate Game Boy Docs - A precise documentation by AntonioND to make a cycle-accurate Game Boy emulator.
- Game Boy: Complete Technical Reference by Gekkio.
See #158 for context
1 - gbdev Discord Server
2 -#gbdev
on EFnet - IRC channel.
3- gbdev.gg8.se Wiki
4 - devrs.com/gb - Old home of the scene: examples, sources, complete documentation, guides, tutorials and various tools.
Some of the resources listed in the Documentation section do not contain accurate information about the Game Boy (Color). It would be helpful to note how accurate each document is. Possibly having an errata section for each document that isn't open for editing.
For example, it was noted that the document at http://marc.rawer.de/Gameboy/Docs/GBCPUman.pdf had inaccuracies throughout. It may be helpful to note what the issues are, or remove a link to the file if it's not usable at all for GB development.
Thanks.
See #149 for the initial proposal and work by @svendahlstrand
This is to track the progress on applying a linter on the list. This is the fork of the linter where we decide the ruleset. This file defines the CI.
Going through the list I noticed a few places where emulators are mentioned amongst tools, but also some in the misc-like section at the bottom.
I feel that there are enough links, that are also nicely varied, to belong in their own section.
Again, I'd be happy to do this.
Does anyone have a backup of the page w/ photos? The website has sadly gone offlisn
I tried to create a PR via GitHub but twice in a row it ended up adding/removing additional lines, so I'll just suggest them here:
I have been working on a library that I think other Game Boy developers could make use of. It is hosted here https://github.com/joeldipops/gbz80-pseudoOps
I'm spruiking my own work so I don't feel qualified to answer the question "Is it awesome" but I think it fits the three criteria
It must be in a minimal working state;
Although I intend for the library to continue to grow and improve, I believe in its current state it is already useful. The 20 or so macros already written are working and reasonably well documented.
It must have a clear purpose or provide something interesting
The purpose is to
a) polyfill operations that feel like they could exist on the gameboy CPU but don't, for example moving data from one memory address to another ldAny [LcdControl], LCD_ON
or 16 bit subtraction sub16 HL, BC
b) Make rgbasm code more readable, through the above polyfills and intuitive constant names.
It must provide a minimal documentation briefly describing what is the project and how to make use of it.
There's a README.md with instructions for including the library and documenting most of the macros, including size, cycle counts and flags affected.
My only concern is that I'm worried I'm the only person that would find this stuff useful. I haven't seen anyone else that dislikes gbhw.inc and it's "rSCY" style naming, and I've completely ignored some advice I've read not to indent asm code as I would an OOP language.
The original locations were:
Found this treasure trove of GB Emu Dev information here:
http://www.emutalk.net/threads/41525-Game-Boy
Would be cool to link to it, or have someone read through it, and find interesting stuff? π
The "High resolution schematics" at https://gbdev.io/list.html#game-boy-color is a dead link.
-1 DMG Schematics - Hardware schematics.
-2 The Game Boy Project - Provides a study on the hardware and detailed constructional information for the implementation of three 8-bit bidirectional parallel ports.
-3 Related custom hardware - by Gekkio.
-4 ESP8266 GB Dev Board - Dev board for Game Boy accessories development, powered by ESP8266.
-5 ESP8266 GB Printer - A device that emulates the GB Printer and lets you retrieve images using WiFi.
-6 fruttenboel - Page with loads of information on the hardware, custom boards to interface with the console and other related projects.
-7 Game Boy hardware database - Data and photos of various types of Game Boy consoles.
-8 DMG-CPU-Inside - Schematics and annotated overlay for the DMG-CPU-B chip, extracted from die photos.
I hadn't seen this before. You have linked to a few of my projects, but I have a few more GB-related:
Demo:
https://github.com/AntonioND/back-to-color
Games:
https://github.com/AntonioND/geometrix
https://github.com/AntonioND/bitcity
Development:
https://github.com/AntonioND/gbt-player
Documentation:
https://github.com/AntonioND/gbcam-rev-engineer
Hello!
See https://github.com/gbdev/awesome-gbdev/blame/master/CONTRIBUTING.md#L38
I don't see those files, though I know we are currently restructuring a lot of things. I don't mind making the change if this isn't by design.
Thanks!
discord thread
[3:50 PM] luckytyphlosion: pls remove asm hacks
[3:50 PM] luckytyphlosion: like the ACE shit
[3:50 PM] avivace: Why it doesn't fit, for you?
[3:51 PM] avivace: The list has plenty of not stritcly "development" resources targeted on hacking the console, the existing software/hardware
[3:51 PM] avivace: And I think it makes sense
[3:53 PM] luckytyphlosion: the yellow debug asm hack isn't even a glitch/exploit
[3:53 PM] luckytyphlosion: it's a binary romhack
[3:53 PM] luckytyphlosion: DMA hijacking is modern enough to go under the radar
[3:54 PM] luckytyphlosion: but the point is, this really doesn't fit on gbdev
[3:54 PM] luckytyphlosion: what counts as Glitches and exploits
[3:54 PM] luckytyphlosion: do we need to link all the pokemon TASes or other game boy TASes which use ACE
[3:55 PM] luckytyphlosion: most of the glitchy ACE stuff you will see will mostly be from pokemon, since that's the most understood GB game
[3:55 PM] avivace: I was sure the Yellow Hack was injecting something, and not editing the ROM before
[3:55 PM] luckytyphlosion: it is an edit
[3:55 PM] avivace: I see, you are indeed right
[3:56 PM] luckytyphlosion:
[3:58 PM] luckytyphlosion: anyway, if Glitches and exploits stay, then I want to use that section to advertise my two ACE setups that have gotten no attention because having them get attention would require growing a youtube channel and people are too drunk on 8F
[3:59 PM] avivace: I'll move it in MORE and in case we can remove it from there, too. (Also cc-ing @ISSOtm for an opinion on this)
[4:05 PM] avivace: At this point that section makes no sense
[4:05 PM] avivace: IF we don't start listing ACE techniques(edited)
[4:05 PM] luckytyphlosion: it will just turn into a pokemon glitch section
[4:06 PM] luckytyphlosion: there are like 3000 ways to get ACE in pokemon
[4:06 PM] avivace: I mean, acquiring ACE, as in ACE setups
[4:09 PM] luckytyphlosion: yes, still 3000
[4:12 PM] avivace: If this is true, no sense in keeping them (not in the main list)
[4:12 PM] avivace: I'll just keep the article by ISSO
SmartGear (SG) is a multi system emulator that supports GB and GBC emulation. SG by @bitbank2 has an open sourced version available at https://github.com/bitbank2/sg_free. Kindly add it to the list of emulators.
See #158 for context.
1- Bootstrap ROM
2- Unused Palettes
3- Colorization palettes in the BIOS
4- High resolution schematics
5- ROM Disassembly
The linked resource OP Codes cheatsheet
Contains wrong byte length at instructions 0xE2
and 0xF2
, both show 2 instead of 1.
The list can also be viewed online (http://gbdev.github.io/awesome-gbdev/), and I think it's a more pleasant read; I think it'd be a good idea to add that link in the repo's description.
See #158 for context
1 - Introduction to Game Boy Hacking - Workshop introducing basic assembly, debugging and reverse engineering.
2 - Everything You Always Wanted To Know About GAME BOY - but were afraid to ask
3 - GBSOUND.txt - A document detailing the Game Boy sound engine.
4 - GB Instructions Game Boy Assembly commands.
5 - GB ASM Tips - Some tips for coding in Assembly by Jeff Frohwein.
6 - gbdev FAQs - Must read by Jeff Frohwein.
7 - Game Boy Bootrom - Commented dump of the DMG bootrom.
8 - GB Technical Information - Some old code resources.
9 - Differences between the Z80 and the gameboy's processor
10 - Gameboy 2BPP Graphics Format - Information on how the Game Boy interprets VRAM tile data to color pixels.
The two sections are far apart from each other, which makes things confusing. Moreover, Gambatte should also be in the open-source section, and having a section for one item, IMO, isn't a good idea.
Alternatively, the more noteworthy emulators like SameBoy, mGBA and mooneye-gb should be moved to the main emulators section, and everything else should be moved to MORE.md.
Context: The list started as a collection of "awesome" resources and ended up in being a raw list of everything related to Game Boy (Development) in general. The idea is to thin the main list a bit, moving the WIP, incomplete, not documented and generally not providing a real contribution entries to another page, called MORE.md.
I think that they need to reach a certain "quality standard":
How do you think we should discriminate the resources? What makes a resource "awesome"? What is a perfect example of an "awesome" resource and what is not?
- 1Dan Docs - Obscure Game Boy hardware documentation.
- 2Edge of Emulation, a series of articles about emulating and investigating Game Boy accessories. Also available as technical documents in the GBE+ emulator documentation.
- Mobile Adapter GB - Internet connectivity and DLC on the Game Boy Color.
- The Game Boy Printer
- Pocket Sonar - A blue cart with built-in sonar hardware.
- Zok Zok Heroes - Zok Zok Heroes' Full Changer, a motion-activated accessory.
- Infrared Madness - Infrared communication on the Game Boy Color.
- Game Boy 4-Player Adapter - DMG-07.
- Barcode Boy - The first Game Boy card-scanner.
- Barcode Taisen Bardigun - A late 90s DMG-GBC barcode reader.
- 3DMG-07 Technical Documentation
- 4Game Boy Camera RE - Documentation about GB Camera and tools used to reverse engineer it by using Arduino.
- 5Creating photo realistic images with neural networks and a Gameboy Camera
- 6The Game Boy Printer - An in-depth technical document about the printer hardware, the communication protocol and the usual routine that games used for implementing the print feature.
- 7Ben Heck Reverse Engineers Game Boy Printer (Errata: the used thermal paper is expired, 4 colors are actually printable).
- 8Arduino Game Boy Printer Emulator - Emulating a Game Boy Printer via the Game Boy Link cable with an Arduino.
- 9Mobile Game Boy Adapter
- 10GB KISS LINK MODEM
Check #124
I just opened #33 which changes "Gameboy" to the correct "Game Boy" throughout the list, as a continuation of 573b31c and #8.
However, it does not take misspelled website titles into consideration. If someone has called their website something with "Gameboy" in it, I have changed that to the correct spelling in my pull request.
Do we want to honor people's misspellings or have the correct spelling consistently throughout?
Game Boy related content is growing fast recently and this list needs some skimming.
We have to review the structure and every link of the list, with the purpose to clean it up and make sure every resource satisfies the "awesome standard" (#96):
review2020
branchreview2020
branch into master
and the progressively integrate everythingEveryone is invited to partecipate in giving feedback on this.
Review threads:
Description notes that the emulator passes (all) of Blarggs test roms, it however only passes a couple. From the comments left in DmgSystem.cs
, only 15 roms were tested out of the total 46.
Until we have a method of quantifiably measuring any particular emulator's accuracy (with a number for instance), I think we should avoid qualitative descriptions.
Only raising this as an issue as many devs are looking for a readable accurate emulator (including myself) and we shouldn't waste their time.
Original link:
http://cratel.wichita.edu/cratel/ECE238Spr08 β Center for Research in Arts, Technology, Education, and Learning (CRATEL) at Withicha State Universiy β ECE 238 β Spring 2008 β Machine and assembly language programming concepts that illustrate basic principles and techniques. Application through study of the Z80 chip and Gameboy programming assignments.
The entire site cratel.wichita.edu
is down. I've tried to recover it from Archive.org (here) but the navigation is broken.
Gambatte has moved from SourceForge and is now on GitHub:
I would like to add an emulator that is in active development.
Currently it can play most games with some graphical glitches, does not yet pass all of Blargg's tests but should soon.
I'm not sure if there are requirements for emulator completeness with the Awesome Standard.
mGBA is an gameboy advance emulator but also plays Gameboy and Gameboy Color roms
please add them to the OpenSource Emulator list
https://github.com/mgba-emu/mgba
Found this oddball from the mid 2000s:
Seems to have been a fairly active and documented project, albeit in Russian. It's still on Archive.org, a translated link is provided below.
Demo: https://www.youtube.com/watch?v=HYzcNVzZHz0
Project page with some working downloads:
https://translate.google.com/translate?sl=auto&tl=en&u=https%3A%2F%2Fweb.archive.org%2Fweb%2F20081226144317%2Fhttp%3A%2F%2Fworkmaster.ru%2Findex.php%3Fp%3D43
Should this go in the MORE.md ?
I noticed the z88dk C compiler isn't mentioned. It can target the GameBoy.
https://github.com/z88dk/z88dk
I can't comment on its quality. It's released under the the obscure Clarified Artistic License, which is a Free and Open Source licence.
I remember this already coming up and today someone pinged me about this.
Should we move this repository to a (more) neutral organization instead of being under the namespace of my personal GitHub account?
The obvious choice would be our gbdev organization.
Looks like in 573b31c, there was a search/replace from "gameboy" to "Game Boy" in README.md
, which broke many links, such as Game Boy Demospotting (should be http://gameboy.modermodemet.se/), etc. I don't want to just revert the commit and fix those as it looks like there were a lot of other useful changes in that commit, but it needs to be gone through so these links can be fixed. I suggest the commit author take this task, but I wouldn't mind doing it myself either :)
We have:
They are under the Peripherals , Cartridges and Hardware sections confused and without a serious and enforced criteria.
Saw this on Twitter: https://github.com/rylev/DMG-01
Emulator built in rust, but it has a well written companion book / guide on writing an emulator, that goes really in depth with memory and CPU. Seems to be unfinished, but would be great to have. Especially for it's CPU section.
This project is licensed under the GPL-3.0. That's fine in itself, but there's a big issue with this choice.
We don't have the legal right to license the salvaged articles under GPL. (We don't really have the right to distribute them either, but I think that's of lesser consequence than licensing them with a copyleft license.)
Solving this is probably as simple as writing somewhere (in LICENSE
, maybe) that the files in the articles/salvage/
directory are not licensed under GPL. We never had the right to license them, so clarifying that fact should really be all that's needed. I think.
It would be great if @Gekkio could help on this: the link to https://github.com/Gekkio/mooneye-gb/blob/master/docs/accuracy.markdown is broken.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.