diff options
author | Jens Arnold <amiconn@rockbox.org> | 2005-03-02 23:49:38 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2005-03-02 23:49:38 +0000 |
commit | 384de102469fee4e0792df8fe38586d3206774ed (patch) | |
tree | ee5342103e17738acfb8421328ea7c57433f55e6 /apps/plugins/rockboy/README | |
parent | 48dad47df98bdec632e8930b6a97359dc2c428f5 (diff) | |
download | rockbox-384de102469fee4e0792df8fe38586d3206774ed.tar.gz rockbox-384de102469fee4e0792df8fe38586d3206774ed.zip |
Rockboy - gameboy emulation for rockbox, based on gnuboy. Still a bit early, but already playable on iRiver H1xx and the simulators. The archos recorder version is currently rather slow...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6104 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/rockboy/README')
-rwxr-xr-x | apps/plugins/rockboy/README | 199 |
1 files changed, 199 insertions, 0 deletions
diff --git a/apps/plugins/rockboy/README b/apps/plugins/rockboy/README new file mode 100755 index 0000000000..f10a5f08d3 --- /dev/null +++ b/apps/plugins/rockboy/README | |||
@@ -0,0 +1,199 @@ | |||
1 | |||
2 | GNUBOY README | ||
3 | |||
4 | |||
5 | INTRO | ||
6 | |||
7 | Welcome to gnuboy, one of the few pieces of Free Software to emulate | ||
8 | the Game Boy handheld game console. Written in ANSI C with a few | ||
9 | optional assembler optimizations for particular cpus, gnuboy supports | ||
10 | a 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 | |||
26 | Additionally, gnuboy should run on any other *nix variants that have | ||
27 | ANSI C compilers and that are remotely POSIX compliant. As gnuboy is | ||
28 | Free Software, you're welcome to fix any problems you encounter | ||
29 | building it for a particular system, or to port it to entirely new | ||
30 | systems. | ||
31 | |||
32 | |||
33 | EMULATION | ||
34 | |||
35 | gnuboy emulates nearly all aspects of the (Color) Gameboy, including | ||
36 | all 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 | |||
49 | Aspects 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 | |||
60 | Only the two marked by * are known to affect the playability of | ||
61 | actual games or demos; the rest are just listed for completeness' | ||
62 | sake. | ||
63 | |||
64 | |||
65 | FEATURES | ||
66 | |||
67 | In addition to basic emulation, gnuboy provides the following | ||
68 | features: | ||
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 | |||
81 | For information on configuring and using these features, see the | ||
82 | additional documentation in the "docs" directory. | ||
83 | |||
84 | |||
85 | COMPATIBILITY | ||
86 | |||
87 | Out of over 300 results reported by testers, all games are known to | ||
88 | work 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 | |||
117 | Please report any other incompatibilities discovered directly to | ||
118 | gnuboy@unix-fu.org, so that they can be documented and hopefully | ||
119 | fixed. | ||
120 | |||
121 | |||
122 | FUTURE / WISHLIST | ||
123 | |||
124 | Here'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 | |||
139 | Features 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 | |||
167 | Ideas and suggestions for other features are welcome, but won't | ||
168 | necessarily be used. You're of course also free to add features | ||
169 | yourself, and if they fit well into the main tree they may eventually | ||
170 | get included in the official release. See the file HACKING for more | ||
171 | details on modifying and/or contributing. | ||
172 | |||
173 | |||
174 | THANKS | ||
175 | |||
176 | Thanks goes out to everyone who's expressed interest in gnuboy by | ||
177 | writing -- users, porters, authors of other emulators, and so forth. | ||
178 | Apologies if we don't get a personal response out to everyone, but | ||
179 | either way, consider your feedback appreciated. | ||
180 | |||
181 | |||
182 | EPILOGUE | ||
183 | |||
184 | OK, 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 | |||