{"id":16842604,"url":"https://github.com/rofl0r/gnuboy","last_synced_at":"2025-10-06T23:29:20.138Z","repository":{"id":3692208,"uuid":"4762722","full_name":"rofl0r/gnuboy","owner":"rofl0r","description":"latest version of original laguna source, with a handful fixes for modern compilers and systems","archived":false,"fork":false,"pushed_at":"2023-06-10T06:35:10.000Z","size":611,"stargazers_count":93,"open_issues_count":1,"forks_count":35,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-06-08T02:07:49.860Z","etag":null,"topics":["efficient","emulator","framebuffer","gameboy","gameboy-color","opengl","sdl","sdl2","x11"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rofl0r.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2012-06-23T12:15:00.000Z","updated_at":"2025-05-12T05:34:57.000Z","dependencies_parsed_at":"2023-07-05T20:32:23.211Z","dependency_job_id":null,"html_url":"https://github.com/rofl0r/gnuboy","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/rofl0r/gnuboy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rofl0r%2Fgnuboy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rofl0r%2Fgnuboy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rofl0r%2Fgnuboy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rofl0r%2Fgnuboy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rofl0r","download_url":"https://codeload.github.com/rofl0r/gnuboy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rofl0r%2Fgnuboy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261984641,"owners_count":23240302,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["efficient","emulator","framebuffer","gameboy","gameboy-color","opengl","sdl","sdl2","x11"],"created_at":"2024-10-13T12:47:08.978Z","updated_at":"2025-10-06T23:29:15.089Z","avatar_url":"https://github.com/rofl0r.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"GNUBOY 1.0.4 README\n\nWelcome to gnuboy, one of the fastest if not the fastest GB/GBC emu-\nlator available.\n\ngnuboy was written well over 20 years ago and achieved full speed\non most machines of that era, on today's machines it runs close to\n0% CPU usage.\n\ngnuboy development was mostly stagnant for the past 20 years, but\ni revived it using the last released sources and CVS dumps and fixed\nnumerous minor issues with modern compilers and systems, as well\nas the occasional bugfix, plus a new SDL2 backend.\n\nchanges to 1.0.3 include:\n\n- new ao audio backend\n- new SDL2 video/input/audio backend\n- fixed cpu cycle accuracy for all CPU ops\n- backported fix for some opcodes\n- fixed issues with window in NBA hoopz\n- added support for .xz compressed roms\n- added support for original BIOS\n\nunlike most modern GB emulators, gnuboy doesn't strive to be\ncycle-accurate (except where necessary), but to be fast, portable\nand compatible and to provide a good gaming experience.\n\nit works using the following backends:\n\n- linux fbdev\n- linux joystick\n- SDL1.2\n- SDL2\n- X11\n- AO audio\n- OSS audio\n- SVGAlib\n- DOS/Windows (untested)\n\nold README follows.\n\n  INTRO\n\nWelcome to gnuboy, one of the few pieces of Free Software to emulate\nthe Game Boy handheld game console. Written in ANSI C with a few\noptional assembler optimizations for particular cpus, gnuboy supports\na wide range of host systems, and has been tested successfully on:\n\n  GNU/Linux\n  FreeBSD\n  OpenBSD\n  BeOS\n  Linux/390 (IBM S/390 Mainframe)\n  SunOS/Sun Ultra60\n  IRIX/SGI O2\n  IRIX/SGI Indy\n  AIX/Unknown\n  DR-DOS\n  MS-DOS\n  Windows DOS box\n  Windows 9x/NT/2k\n\nAdditionally, gnuboy should run on any other *nix variants that have\nANSI C compilers and that are remotely POSIX compliant. As gnuboy is\nFree Software, you're welcome to fix any problems you encounter\nbuilding it for a particular system, or to port it to entirely new\nsystems.\n\n\n  EMULATION\n\ngnuboy emulates nearly all aspects of the (Color) Gameboy, including\nall of the following and much more:\n\n  Full GBZ80 instruction set.\n  Scanline-based LCD engine.\n  Ten sprites per scanline limit.\n  Support for all CGB graphics extensions.\n  Sprite DMA, HDMA, and GDMA.\n  All four sound channels including digital samples.\n  MBC1, MBC2, MBC3 (including clock), and MBC5 mappers.\n  Wave pattern memory corruption when sound channel 3 is played.\n  Pad, timer, divide counter, and other basic hardware registers.\n  CGB double-speed CPU mode.\n\nAspects not emulated at this time include:\n\n* Serial IO (link cable).\n  Undocumented 'extra' ram in OAM space on Gameboy Color.\n  All Super Gameboy extensions.\n* GBC, HuC1, and HuC3 IR ports.\n* Obscure mappers such as TAMA5.\n  Sorting sprites by X coordinate in DMG mode.\n  HALT instruction skipping in DMG mode.\n  CPU stalls during HDMA and GDMA.\n\nOnly the two marked by * are known to affect the playability of\nactual games or demos; the rest are just listed for completeness'\nsake.\n\n\n  CONFIGURATION\n\nPlease refer to docs/CONFIG and the sample files in etc/.\nThe default search path order for configuration files is:\n\n  $HOME/.gnuboy/gnuboy.rc\n  ./gnuboy.rc\n\n\n  FEATURES\n\nIn addition to basic emulation, gnuboy provides the following\nfeatures:\n\n  Highly flexible keybinding and configuration subsystem.\n  State saving and loading at any point.\n  Very precise timing/synchronization, preserved across save/load.\n  Joystick support on Linux, DOS, and all SDL-based ports.\n  Fully customizable palettes for DMG games.\n  Screen scaling by a factor of 2, 3, or 4 in all ports.\n  Hardware-based screen scaling on platforms where it's available.\n  Debug traces to stdout.\n  Dynamic palette allocation when run in 256-color modes...\n  OR simulated 3/3/2 bits per channel in 256-color modes.\n\nFor information on configuring and using these features, see the\nadditional documentation in the \"docs\" directory.\n\n\n  COMPATIBILITY\n\nOut of over 300 results reported by testers, all games are known to\nwork perfectly on gnuboy with the following exceptions:\n\n  Fighting Phoenix (Japanese) may or may not work since it uses the\n  HuC1 memory controller, which is not implemented properly. There has\n  been no report either way so far.\n\n  Pocket Bomberman (Japanese version, which uses HuC1) runs, but can\n  be made to crash if the player jumps into the ceiling in the first\n  level. It's not clear whether this bug is MBC-related, something\n  else, or an actual bug in the original game.\n\n  Monster Go! Go! Go! (Japanese) is unplayable. The cause of the\n  problem is not fully known, but it's either a very bad dump or it's\n  using some sort of specialized MBC that's not documented.\n\n  Final Fantasy Adventure has visual problems with the fade between\n  screens. Does not affect gameplay.\n\n  Bubble Bobble 2 has some minor tile glitches right before gameplay\n  actually begins. Cause unknown. Does not affect gameplay.\n\n  Alone in the Dark is reported to have minor visual glitches. I\n  haven't seen it myself so I can't judge their severity.\n\n  Both new Zelda games are reported to have a visual glitch at the\n  beginning of the game, and on certain other screens. I haven't seen\n  the problem myself, but supposedly it impacts gameplay to some\n  extent.\n\nPlease report any other incompatibilities discovered directly to\ngnuboy@unix-fu.org, so that they can be documented and hopefully\nfixed.\n\n\n  FUTURE / WISHLIST\n\nHere's a brief list of what may appear in gnuboy in the future:\n\n  Screenshots.\n  Integrated debugger.\n  Super Gameboy support.\n  Serial link over the internet.\n  Serial link to a real Gameboy with a custom cable.\n  Configurable color filters to provide more authentic LCD look.\n  Custom colorization of DMG games on a per-tile basis.\n  Support for more colorspaces in the hardware scaler.\n  Recording audio.\n  GBS player built from the same source tree.\n  Full recording and playback of emulation.\n  So-called \"high level emulation\" of certain typical dumb loops.\n\nFeatures that are not likely to appear soon or at all include:\n\n  Rumble support - this would be nice, but SDL doesn't seem to support\n  force-feedback yet. We'll see about it in the long-term though.\n\n  Eagle/2xSaI/etc. - probably not feasible since these libraries don't\n  appear to be compatible with the terms of the GPL. We might work on\n  our own interpolation engine eventually, but that's low priority.\n\n  GUI/GUI-like features - such things are best handled by external\n  front-ends. We might eventually add a mechanism for external\n  programs to communicate with gnuboy and reconfigure it while it's\n  running, however.\n\n  Plugins - NO! The way I see it, plugins are just an attempt to work\n  around the GPL. In any case, even if you are adding plugin support\n  yourself, you are bound by the terms of the GPL when linking ANY\n  code to gnuboy, including dynamic-linked modules. However we'd\n  rather not deal with this mess to begin with.\n\n  Compressed ROMs/Saves - this one is very iffy. On most systems, this\n  is redundant; *nix users can just pipe the rom through a\n  decompression program, and Windows users can just double-click or\n  drag files from their favorite GUI unzipper program. Linking to zlib\n  isn't really acceptable since it's massively bloated and we don't\n  want to include it with gnuboy or add external dependencies. We may,\n  however, write our own tiny decompressor to use at some point.\n\nIdeas and suggestions for other features are welcome, but won't\nnecessarily be used. You're of course also free to add features\nyourself, and if they fit well into the main tree they may eventually\nget included in the official release. See the file HACKING for more\ndetails on modifying and/or contributing.\n\n\n  THANKS\n\nThanks goes out to everyone who's expressed interest in gnuboy by\nwriting -- users, porters, authors of other emulators, and so forth.\nApologies if we don't get a personal response out to everyone, but\neither way, consider your feedback appreciated.\n\n\n  EPILOGUE\n\nOK, that looks like about it. More to come, stick around...\n\n\n\n                                          -Laguna  \u003claguna@aerifal.cx\u003e\n\n\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frofl0r%2Fgnuboy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frofl0r%2Fgnuboy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frofl0r%2Fgnuboy/lists"}