A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 199 lines 6.8 kB view raw
1 2GNUBOY README 3 4 5 INTRO 6 7Welcome to gnuboy, one of the few pieces of Free Software to emulate 8the Game Boy handheld game console. Written in ANSI C with a few 9optional assembler optimizations for particular cpus, gnuboy supports 10a wide range of host systems, and has been tested successfully on: 11 12 GNU/Linux 13 FreeBSD 14 OpenBSD 15 BeOS 16 Linux/390 (IBM S/390 Mainframe) 17 SunOS/Sun Ultra60 18 IRIX/SGI O2 19 IRIX/SGI Indy 20 AIX/Unknown 21 DR-DOS 22 MS-DOS 23 Windows DOS box 24 Windows 9x/NT/2k 25 26Additionally, gnuboy should run on any other *nix variants that have 27ANSI C compilers and that are remotely POSIX compliant. As gnuboy is 28Free Software, you're welcome to fix any problems you encounter 29building it for a particular system, or to port it to entirely new 30systems. 31 32 33 EMULATION 34 35gnuboy emulates nearly all aspects of the (Color) Gameboy, including 36all of the following and much more: 37 38 Full GBZ80 instruction set. 39 Scanline-based LCD engine. 40 Ten sprites per scanline limit. 41 Support for all CGB graphics extensions. 42 Sprite DMA, HDMA, and GDMA. 43 All four sound channels including digital samples. 44 MBC1, MBC2, MBC3 (including clock), and MBC5 mappers. 45 Wave pattern memory corruption when sound channel 3 is played. 46 Pad, timer, divide counter, and other basic hardware registers. 47 CGB double-speed CPU mode. 48 49Aspects not emulated at this time include: 50 51* Serial IO (link cable). 52 Undocumented 'extra' ram in OAM space on Gameboy Color. 53 All Super Gameboy extensions. 54* GBC, HuC1, and HuC3 IR ports. 55* Obscure mappers such as TAMA5. 56 Sorting sprites by X coordinate in DMG mode. 57 HALT instruction skipping in DMG mode. 58 CPU stalls during HDMA and GDMA. 59 60Only the two marked by * are known to affect the playability of 61actual games or demos; the rest are just listed for completeness' 62sake. 63 64 65 FEATURES 66 67In addition to basic emulation, gnuboy provides the following 68features: 69 70 Highly flexible keybinding and configuration subsystem. 71 State saving and loading at any point. 72 Very precise timing/synchronization, preserved across save/load. 73 Joystick support on Linux, DOS, and all SDL-based ports. 74 Fully customizable palettes for DMG games. 75 Screen scaling by a factor of 2, 3, or 4 in all ports. 76 Hardware-based screen scaling on platforms where it's available. 77 Debug traces to stdout. 78 Dynamic palette allocation when run in 256-color modes... 79 OR simulated 3/3/2 bits per channel in 256-color modes. 80 81For information on configuring and using these features, see the 82additional documentation in the "docs" directory. 83 84 85 COMPATIBILITY 86 87Out of over 300 results reported by testers, all games are known to 88work perfectly on gnuboy with the following exceptions: 89 90 Fighting Phoenix (Japanese) may or may not work since it uses the 91 HuC1 memory controller, which is not implemented properly. There has 92 been no report either way so far. 93 94 Pocket Bomberman (Japanese version, which uses HuC1) runs, but can 95 be made to crash if the player jumps into the ceiling in the first 96 level. It's not clear whether this bug is MBC-related, something 97 else, or an actual bug in the original game. 98 99 Monster Go! Go! Go! (Japanese) is unplayable. The cause of the 100 problem is not fully known, but it's either a very bad dump or it's 101 using some sort of specialized MBC that's not documented. 102 103 Final Fantasy Adventure has visual problems with the fade between 104 screens. Does not affect gameplay. 105 106 Bubble Bobble 2 has some minor tile glitches right before gameplay 107 actually begins. Cause unknown. Does not affect gameplay. 108 109 Alone in the Dark is reported to have minor visual glitches. I 110 haven't seen it myself so I can't judge their severity. 111 112 Both new Zelda games are reported to have a visual glitch at the 113 beginning of the game, and on certain other screens. I haven't seen 114 the problem myself, but supposedly it impacts gameplay to some 115 extent. 116 117Please report any other incompatibilities discovered directly to 118gnuboy@unix-fu.org, so that they can be documented and hopefully 119fixed. 120 121 122 FUTURE / WISHLIST 123 124Here's a brief list of what may appear in gnuboy in the future: 125 126 Screenshots. 127 Integrated debugger. 128 Super Gameboy support. 129 Serial link over the internet. 130 Serial link to a real Gameboy with a custom cable. 131 Configurable color filters to provide more authentic LCD look. 132 Custom colorization of DMG games on a per-tile basis. 133 Support for more colorspaces in the hardware scaler. 134 Recording audio. 135 GBS player built from the same source tree. 136 Full recording and playback of emulation. 137 So-called "high level emulation" of certain typical dumb loops. 138 139Features that are not likely to appear soon or at all include: 140 141 Rumble support - this would be nice, but SDL doesn't seem to support 142 force-feedback yet. We'll see about it in the long-term though. 143 144 Eagle/2xSaI/etc. - probably not feasible since these libraries don't 145 appear to be compatible with the terms of the GPL. We might work on 146 our own interpolation engine eventually, but that's low priority. 147 148 GUI/GUI-like features - such things are best handled by external 149 front-ends. We might eventually add a mechanism for external 150 programs to communicate with gnuboy and reconfigure it while it's 151 running, however. 152 153 Plugins - NO! The way I see it, plugins are just an attempt to work 154 around the GPL. In any case, even if you are adding plugin support 155 yourself, you are bound by the terms of the GPL when linking ANY 156 code to gnuboy, including dynamic-linked modules. However we'd 157 rather not deal with this mess to begin with. 158 159 Compressed ROMs/Saves - this one is very iffy. On most systems, this 160 is redundant; *nix users can just pipe the rom through a 161 decompression program, and Windows users can just double-click or 162 drag files from their favorite GUI unzipper program. Linking to zlib 163 isn't really acceptable since it's massively bloated and we don't 164 want to include it with gnuboy or add external dependencies. We may, 165 however, write our own tiny decompressor to use at some point. 166 167Ideas and suggestions for other features are welcome, but won't 168necessarily be used. You're of course also free to add features 169yourself, and if they fit well into the main tree they may eventually 170get included in the official release. See the file HACKING for more 171details on modifying and/or contributing. 172 173 174 THANKS 175 176Thanks goes out to everyone who's expressed interest in gnuboy by 177writing -- users, porters, authors of other emulators, and so forth. 178Apologies if we don't get a personal response out to everyone, but 179either way, consider your feedback appreciated. 180 181 182 EPILOGUE 183 184OK, that looks like about it. More to come, stick around... 185 186 187 188 -Laguna <laguna@aerifal.cx> 189 190 191 192 193 194 195 196 197 198 199