GithubHelp home page GithubHelp logo

gbdev / awesome-gbdev Goto Github PK

View Code? Open in Web Editor NEW
3.9K 110.0 177.0 701 KB

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

gameboy gameboy-emulator documentation retrogaming nintendo dmg gameboy-color-emulator resources tools awesome-list

awesome-gbdev's People

Contributors

7thsamurai avatar antoniond avatar avivace avatar baekalfen avatar bbbbbr avatar bekicot avatar daid avatar gitendo avatar issotm avatar lmmendes avatar marcormio avatar meliurwen avatar minerobber9000 avatar nickdesaulniers avatar pashutk avatar paul-arutyunov avatar pbuyle avatar pierre-borckmans avatar raphaklaus avatar raphamorim avatar rnegron avatar robert avatar rondnelson99 avatar stan-roelofs avatar svendahlstrand avatar tobiasvl avatar trekawek avatar wistudent avatar wtjones avatar y2jb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-gbdev's Issues

vtGBte tile editor

vtGBte - A raw-binary format tile editor for Unix systems.

What I'm supposed to write here?

Why Sonic 1?

Even if you ignore the graphics hardware differences, it doesn't even run on the same processor!

"Errata" for the Ben Heck video of the GB Printer

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.

Note the accuracy of documentation listed

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.

Re-order emulators into their own section?

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.

Game Boy Advance

  • Mention somewhere (maybe in the "disambiguation" box?) that GBA is a completely difference story, not covered here. Link to awesome-gbadev.
  • Describe the intersection of GBA and GB/GBC: GBA running on CGB mode (different colors, different registers init, APU quirks). Maybe @LIJI32 or @endrift can describe this briefly (or point me to some documentation describing GBA in CGB mode) ?

Reiner Ziegler

Does anyone have a backup of the page w/ photos? The website has sadly gone offlisn

Possible addition gbz80-pseudoOps

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.

List Review: (7) Hardware

-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.

Remove `Glitches and exploits` sub category

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

List Review: (4) Documentation > Misc

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.

Merge the "emulators" and "open-source emulators" sections

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.

"Awesome" quality standard

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":

  • Be in a minimal working state
  • Have a clear purpose and/or provide something different
  • Have a minimal documentation/README providing at least a brief overview of the project

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?

List Review (8): Peripherals

Check #124

Should we honor misspelled website titles?

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?

List review and overhaul

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):

  • We will be doing this revising blocks of 3-4 links, this thread tracks and links the single github issues about this.
  • MORE.md will be the place for everything we remove from the main list.
  • Every thread will stay up for 10 days then if there's no opposition or ongoing talk the modifications will be merged in the review2020 branch
  • Once 50% of the thread are closed, we start merging the review2020 branch into master and the progressively integrate everything

Everyone is invited to partecipate in giving feedback on this.


Review threads:

Y2Dmg Emulator

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.

Assembly course from Withicha State Universiy

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.

Emux emulator addition

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.

z88dk C compiler

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.

Move the repo to a neutral namespace

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.

Many links broken by search/replace

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 :)

Peripherals and Hardware sections

We have:

  • Schematics, documentation and research on the Game Boy (main console, cartridges)
  • Schematics, documentation and research on the less known hardware accessories and cartridges (sometimes, software emulating/technical investigations)
  • Projects hardware-emulating an accessory (like the GB Printer)

They are under the Peripherals , Cartridges and Hardware sections confused and without a serious and enforced criteria.

Licensing

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.

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.