139 lines
5.4 KiB
Plaintext
139 lines
5.4 KiB
Plaintext
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
Copyright (C) 2007 by sinamas <sinamas at users.sourceforge.net>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License version 2 as
|
|
published by the Free Software Foundation.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License version 2 for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
version 2 along with this program; if not, write to the
|
|
Free Software Foundation, Inc.,
|
|
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
--------------------------------------------------------------------------------
|
|
--------------------------------------------------------------------------------
|
|
|
|
About
|
|
--------------------------------------------------------------------------------
|
|
Gambatte is a work-in-progress, portable, open-source, Game Boy Color emulator,
|
|
and reverse engineering project, written with a wish to preserve something. The
|
|
development of numerous tests, and their verification on hardware, is as much an
|
|
emphasis as the development of an efficient software implementation.
|
|
|
|
(Tests may be useful in verifying the accuracy of an implementation. The
|
|
preservation aspect of the project is emphasised by the development of verified
|
|
tests to support the development, and verification, of accurate implementations.
|
|
Note that the source code is not intended to serve as documentation for the
|
|
hardware being emulated; efficiency and convenience are often emphasised.
|
|
Priority is on accuracy over functionality, completeness, compatibility, or
|
|
refactoring. Most of this is, by now, written a long time ago; this has some
|
|
natural side-effects [e.g. using an older standard of C++].)
|
|
|
|
The core emulation code is contained in a separate library backend
|
|
(libgambatte) written in platform-independent C++. There is currently a Qt GUI
|
|
frontend (gambatte_qt), and a simplistic command-line interface SDL frontend
|
|
(gambatte_sdl).
|
|
|
|
The Qt frontend has been ported to Windows, Mac OS X, and Linux/BSD/Unix-like
|
|
OSes with audio/video engines utilizing native APIs on these platforms.
|
|
|
|
The SDL frontend should be usable on all platforms with a working SDL port. It
|
|
should also be quite trivial to create new (simple) frontends (note that the
|
|
library API should in no way be considered stable).
|
|
|
|
Usage
|
|
--------------------------------------------------------------------------------
|
|
You will have to supply Gambatte with a ROM image file of the GB/GBC
|
|
program/game you would like to run/play, either as a command line argument, or
|
|
through the File->Open... menu in gambatte_qt.
|
|
|
|
gambatte_sdl keyboard commands:
|
|
TAB - fast-forward
|
|
Ctrl-f - toggle full screen
|
|
Ctrl-r - reset
|
|
F5 - save state
|
|
F6 - previous state slot
|
|
F7 - next state slot
|
|
F8 - load state
|
|
0 to 9 - select state slot 0 to 9
|
|
|
|
Default key mapping:
|
|
Up: Up
|
|
Down: Down
|
|
Left: Left
|
|
Right: Right
|
|
A: D
|
|
B: C
|
|
Start: Return
|
|
Select: Shift
|
|
|
|
Compiling
|
|
--------------------------------------------------------------------------------
|
|
Building Gambatte from source code can be done by executing the
|
|
build_<qt/sdl>.sh scripts for the qt/sdl frontends respectively, or by issueing
|
|
the correct build command (either 'scons' or 'qmake && make') in the top-level
|
|
subdirectories (libgambatte will have to be built first). The clean.sh script
|
|
can be executed to remove all generated files after a compile (including
|
|
binaries).
|
|
|
|
Requirements for building libgambatte:
|
|
- A decent C++ compiler (like g++ in the GNU Compiler Collection).
|
|
- SCons.
|
|
- optionally zlib
|
|
|
|
Requirements for building gambatte_sdl:
|
|
- A decent C++ compiler (like g++ in the GNU Compiler Collection).
|
|
- SDL headers and library.
|
|
- SCons.
|
|
(- libgambatte.)
|
|
|
|
Requirements for building gambatte_qt:
|
|
- A decent C++ compiler (like g++ in the GNU Compiler Collection).
|
|
- Qt4 (Core, GUI, OpenGL) headers and library.
|
|
- Qmake and make (GNU Make should work).
|
|
- Platform-specific requirements:
|
|
* MS Windows:
|
|
- Win32 API headers and libraries.
|
|
- DirectSound and DirectDraw7 headers and libraries.
|
|
- Direct3D9 headers
|
|
* Linux/BSD/UNIX-like OSes:
|
|
- POSIX/UNIX headers (unistd.h, fcntl.h, sys/ioctl.h, sys/time.h, sys/shm.h).
|
|
- Open Sound System header (sys/soundcard.h).
|
|
- X11 Xlib, XVideo, XRandR and XShm headers and libraries.
|
|
- Alsa headers and library (Linux only).
|
|
* Max OS X:
|
|
- Recent Mac OS X SDK (Panther Xcode/SDK should work)
|
|
(- libgambatte.)
|
|
|
|
Installing after a compile simply amounts to copying the generated binary
|
|
(either gambatte_qt/bin/gambatte_qt<.exe> or gambatte_sdl/gambatte_sdl<.exe>)
|
|
to wherever you'd like to keep it.
|
|
|
|
Thanks
|
|
--------------------------------------------------------------------------------
|
|
Derek Liauw Kie Fa (Kreed)
|
|
Gilles Vollant
|
|
Jeff Frohwein
|
|
Jonathan Gevaryahu (Lord Nightmare)
|
|
kOOPa
|
|
Marat Fayzullin
|
|
Martin Korth (nocash)
|
|
Maxim Stepin (MaxSt)
|
|
Nach
|
|
Pan of Anthrox
|
|
Pascal Felber
|
|
Paul Robson
|
|
SDL
|
|
Shay Green (blargg)
|
|
The OpenGL Extension Wrangler Library
|
|
|
|
--------------------------------------------------------------------------------
|
|
Game Boy and Game Boy Color are registered trademarks of
|
|
Nintendo of America Inc.
|
|
Gambatte is not affiliated with or endorsed by any of the companies mentioned.
|