GithubHelp home page GithubHelp logo

kajgan / gnuboy Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 1.07 MB

Automatically exported from code.google.com/p/gnuboy

License: GNU General Public License v2.0

C 84.25% Assembly 9.63% Makefile 0.31% C++ 4.77% Nix 0.20% JavaScript 0.08% Perl 0.01% Shell 0.75%

gnuboy's Introduction

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











gnuboy's People

Watchers

James Cloos avatar

gnuboy's Issues

SDL.h seems to be missing

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

GBC: gfx glitch in International Karate

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

Faceball 2000 GB game hangs on game start (demo works)

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

please provide an easy way to speed up the game

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

Patch for /trunk/save.c

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:

GBC gfx regression from 1.04 to 1.05

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

new error coming

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:

Donkey Kong Land 2 corrupted battery save after first run under Windows

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

massive slowdown on linux-sdl when sdl sound is enabled

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

SDL sound improvements

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:

SDL2 Support

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

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.