kajgan / gnuboy Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/gnuboy
License: GNU General Public License v2.0
Automatically exported from code.google.com/p/gnuboy
License: GNU General Public License v2.0
GNUBOY README INTRO Welcome to gnuboy, one of the few pieces of Free Software to emulate the Game Boy handheld game console. Written in ANSI C with a few optional assembler optimizations for particular cpus, gnuboy supports a wide range of host systems, and has been tested successfully on: GNU/Linux FreeBSD OpenBSD BeOS Linux/390 (IBM S/390 Mainframe) SunOS/Sun Ultra60 IRIX/SGI O2 IRIX/SGI Indy AIX/Unknown DR-DOS MS-DOS Windows DOS box Windows 9x/NT/2k Additionally, gnuboy should run on any other *nix variants that have ANSI C compilers and that are remotely POSIX compliant. As gnuboy is Free Software, you're welcome to fix any problems you encounter building it for a particular system, or to port it to entirely new systems. EMULATION gnuboy emulates nearly all aspects of the (Color) Gameboy, including all of the following and much more: Full GBZ80 instruction set. Scanline-based LCD engine. Ten sprites per scanline limit. Support for all CGB graphics extensions. Sprite DMA, HDMA, and GDMA. All four sound channels including digital samples. MBC1, MBC2, MBC3 (including clock), and MBC5 mappers. Wave pattern memory corruption when sound channel 3 is played. Pad, timer, divide counter, and other basic hardware registers. CGB double-speed CPU mode. Sorting sprites by X coordinate in DMG mode. HALT instruction skipping in DMG mode. CPU stalls during HDMA and GDMA. Configurable color filters to provide more authentic LCD look. Aspects not emulated at this time include: * Serial IO (link cable). Undocumented 'extra' ram in OAM space on Gameboy Color. * All Super Gameboy extensions. * GBC, HuC1, and HuC3 IR ports. * Obscure mappers such as TAMA5. Only the ones marked by * are known to affect the playability of actual games or demos; the rest are just listed for completeness' sake. FEATURES In addition to basic emulation, gnuboy provides the following features: Highly flexible keybinding and configuration subsystem. State saving and loading at any point. Very precise timing/synchronization, preserved across save/load. Joystick support on Linux, DOS, and all SDL-based ports. Fully customizable palettes for DMG games. Screen scaling by a factor of 2, 3, or 4 in all ports. Hardware-based screen scaling on platforms where it's available. Debug traces to stdout. Dynamic palette allocation when run in 256-color modes... OR simulated 3/3/2 bits per channel in 256-color modes. For information on configuring and using these features, see the additional documentation in the "docs" directory. COMPATIBILITY Out of over 300 results reported by testers, all games are known to work perfectly on gnuboy with the following exceptions: Fighting Phoenix (Japanese) may or may not work since it uses the HuC1 memory controller, which is not implemented properly. There has been no report either way so far. Pocket Bomberman (Japanese version, which uses HuC1) runs, but can be made to crash if the player jumps into the ceiling in the first level. It's not clear whether this bug is MBC-related, something else, or an actual bug in the original game. Monster Go! Go! Go! (Japanese) is unplayable. The cause of the problem is not fully known, but it's either a very bad dump or it's using some sort of specialized MBC that's not documented. Final Fantasy Adventure has visual problems with the fade between screens. Does not affect gameplay. Bubble Bobble 2 has some minor tile glitches right before gameplay actually begins. Cause unknown. Does not affect gameplay. Alone in the Dark is reported to have minor visual glitches. I haven't seen it myself so I can't judge their severity. Both new Zelda games are reported to have a visual glitch at the beginning of the game, and on certain other screens. I haven't seen the problem myself, but supposedly it impacts gameplay to some extent. Please report any other incompatibilities discovered directly to [email protected], so that they can be documented and hopefully fixed. FUTURE / WISHLIST Here's a brief list of what may appear in gnuboy in the future: Screenshots. Integrated debugger. Super Gameboy support. Serial link over the internet. Serial link to a real Gameboy with a custom cable. Custom colorization of DMG games on a per-tile basis. Support for more colorspaces in the hardware scaler. Recording audio. GBS player built from the same source tree. Full recording and playback of emulation. So-called "high level emulation" of certain typical dumb loops. Features that are not likely to appear soon or at all include: Rumble support - this would be nice, but SDL doesn't seem to support force-feedback yet. We'll see about it in the long-term though. Eagle/2xSaI/etc. - probably not feasible since these libraries don't appear to be compatible with the terms of the GPL. We might work on our own interpolation engine eventually, but that's low priority. GUI/GUI-like features - such things are best handled by external front-ends. We might eventually add a mechanism for external programs to communicate with gnuboy and reconfigure it while it's running, however. Plugins - NO! The way I see it, plugins are just an attempt to work around the GPL. In any case, even if you are adding plugin support yourself, you are bound by the terms of the GPL when linking ANY code to gnuboy, including dynamic-linked modules. However we'd rather not deal with this mess to begin with. Compressed ROMs/Saves - this one is very iffy. On most systems, this is redundant; *nix users can just pipe the rom through a decompression program, and Windows users can just double-click or drag files from their favorite GUI unzipper program. Linking to zlib isn't really acceptable since it's massively bloated and we don't want to include it with gnuboy or add external dependencies. We may, however, write our own tiny decompressor to use at some point. Ideas and suggestions for other features are welcome, but won't necessarily be used. You're of course also free to add features yourself, and if they fit well into the main tree they may eventually get included in the official release. See the file HACKING for more details on modifying and/or contributing. THANKS Thanks goes out to everyone who's expressed interest in gnuboy by writing -- users, porters, authors of other emulators, and so forth. Apologies if we don't get a personal response out to everyone, but either way, consider your feedback appreciated. EPILOGUE OK, that looks like about it. More to come, stick around... -Laguna <[email protected]>
What I did:
1. check out the latest revision (r177)
2. copy makefile.win to makefile
3. run mingw32-make
It is telling me [code]sys/sdl/sdl.c:15:21: SDL/SDL.h: No such file or
directory[/code] and a lot of errors which seem to be directly related to the
missing header. I searched for the file in the source code and it really
doesn't seem to be present.
Original issue reported on code.google.com by [email protected]
on 8 Jan 2013 at 12:41
This patch just reduces compiler warnings, mostly by using casts and declaring
strdup().
Original issue reported on code.google.com by [email protected]
on 28 Jun 2013 at 7:40
Attachments:
Related to (closed) Issue 6 GBC gfx regression from 1.04 to 1.05.
-Gnuboy 1.03: Works ok.
-Gnuboy 1.05: Graphic bugs.
Original issue reported on code.google.com by [email protected]
on 14 Mar 2013 at 4:19
What steps will reproduce the problem?
1. Load rom (with md5 checksum 86c1b5f04495e22eedbec15e1a320ff3, name
"International Karate (E) [C][!].gbc")
2. start game
What is the expected output? What do you see instead?
Bottom of score area of screen is corrupt, see
http://boards.dingoonity.org/dingoo-development/gnuboy-for-native-update-and-oh-
boy-port/msg25105/#msg25105
VisualBoyAdvance-1.7.2 shows this area without problem.
Original issue reported on code.google.com by [email protected]
on 18 Dec 2010 at 1:56
What steps will reproduce the problem?
1. load Faceball 2000 Game Boy rom. Game loads and runs demo fine.
2. hit start on main menu
3. game freezes or resets
Originally logged at http://code.google.com/p/ohboy/issues/detail?id=27
For more information about Faceball 2000 see:
* http://www.giantbomb.com/faceball-2000/61-10852/
* http://gameboy.ign.com/objects/005/005958.html
Original issue reported on code.google.com by [email protected]
on 11 Apr 2012 at 4:24
The code changes for supporting BMP borders in OhBoy needed this, so i submit
it.
Original issue reported on code.google.com by [email protected]
on 20 Aug 2011 at 7:07
Attachments:
Not sure if this is still an active project, but I will just give a try:
It would be nice to have a way to speed up the emulation as user. I tried to
get through the source to hack this up for my self, however I am not very
experienced C Coder and its difficould for me to get through the code. If you
could give me an hint to do it myself it would be okay too.
Regards,
Michael
Original issue reported on code.google.com by [email protected]
on 19 Dec 2014 at 6:44
Fix for SRAM saves being overwritten with Savestates' SRAM data when state is
loaded. (i disabled SRAM data reading/writing for savestates)
Original issue reported on code.google.com by [email protected]
on 23 Feb 2012 at 3:34
Attachments:
Based on forum posting
http://boards.dingoonity.org/dingoo-releases/new-ohboy-release-for-native/msg373
06/#msg37306
Monochrome GB Roms:
Killer Instinct:
-Gnuboy 1.03: Does not work (screen goes to black after initial logos)
-Gnuboy 1.05: Works ok (a flickering line of pixels, but its a minor issue and happens in other emus)
GBC Roms:
Shantae, Extreme Ghostbusters, Alice in Wonderland:
-Gnuboy 1.03: Works ok.
-Gnuboy 1.05: Graphic bugs.
Possibly related to issue 1.
Original issue reported on code.google.com by [email protected]
on 23 Mar 2012 at 11:55
Please add link emulation, ideally over WiFi. It would be fun to trade Pokemon
this way.
Original issue reported on code.google.com by [email protected]
on 10 Jan 2013 at 6:03
very very very thanks your fix the zlib is fixed but is still have new error
here is .......
ps: so sorry to this repost
Original issue reported on code.google.com by [email protected]
on 14 Oct 2012 at 8:10
Attachments:
Hi,
I discovered a small incompatibility problem with Donkey Kong Land 2.
Reproducing:
1. make sure that no battery save file with the same name as the rom file exists
2. run Donkey Kong Land 2
3. start a game from an arbitrary internal battery save slot
Depending on which gnuboy version is used one of the following will happen:
- you can play a corrupted boss fight that can be neither won nor lost
(pre-compiled windows binary based on r136 from the downloads tab)
- game will crash immediatly
(self-compiled version from r177)
The bug happens both under Windows XP SP3 32bit and Windows 7 64bit but
interestingly enough only under Windows. (I'm currently doing a port for
Symbian OS, which doesn't show this problem)
I did some testing with a test program (compiled with mingw32 without any
special options) that first allocates some memory, prints the result and then
loads the beginning of the corrupted save and prints it.
It _looks_ like memory allocated with {{{malloc()}}} under Windows will
deterministically begin with {{{78 01}}} (hexadecimal) (4 more or less random
bytes after that, the rest are mostly zeros) as long as the allocated amount is
above some arbitrary threshold between one and two kilobytes.
Obviously, Donkey Kong Land 2 will interprete this as a valid save state
instead of discovering that this is indeed the first run and resetting the
battery backed-up memory.
Either way, a suitable workaround is manually deleting all the internal battery
save slots after first run or adding {{{set memfill 0}}} to gnuboy.rc, which in
my opinion should be default behaviour. (at least for windows builds but such
random problems might happen under other OSs with other games as well).
Original issue reported on code.google.com by [email protected]
on 8 Feb 2013 at 5:41
What steps will reproduce the problem?
1. compile with sdl sound enabled
2. play a game
3. the game plays slowly, and with a low framerate (30fps). sound output is
terrible
What is the expected output? What do you see instead?
game at normal speed. normal sound output
What version of the product are you using? On what operating system?
linux amd64
Please provide any additional information below.
profiling and debugging confine the slowdown to main.c, pcm_submit(), line 875,
" if (pcm_buffered>=1) while(pcm_buffered == pcm_bufferlen);"
Original issue reported on code.google.com by [email protected]
on 29 Jan 2012 at 5:54
There are reports from some users/developers that the current SDL sound support
doesn't sound quite right.
Ayla has worked on a new mixer (diff attached, which includes non-sound changes
too) (full code http://crapouillou.net/~paul/gnuboy-src.tar.gz ) as part of the
OpenDingux port.
The diff makes of of Unix semaphore.h and sem_t type which limits portability.
Original issue reported on code.google.com by [email protected]
on 23 Mar 2012 at 11:53
Attachments:
sorry to repost i try to compiling the svn r175 at windows port but i got this
error can you tell me how i fix it ^^?
Original issue reported on code.google.com by [email protected]
on 14 Oct 2012 at 3:03
Attachments:
SDL 2.0 released:
http://libsdl.org/download-2.0.php
You may consider support it; thank you in advance.
Original issue reported on code.google.com by [email protected]
on 29 Nov 2013 at 3:36
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.