move some gp2x files
[fceu.git] / drivers / gp2x / out / readme.txt
CommitLineData
aa2dba92 1=================================================================================\r
2 GPFCE - NES emulator for the GP2X\r
3=================================================================================\r
aa2dba92 4\r
5\r
6This is a gp2x port of the **great** Open Source NES emulator FCE Ultra:\r
7http://fceultra.sourceforge.net. If you enjoyed using this emulator, please\r
8keep in mind that this would not have been possible without the hard work and\r
9dedication of the FCE Ultra developers.\r
10\r
11In case you don't know what the NES is about, see:\r
12http://en.wikipedia.org/wiki/Famicom.\r
13\r
d0f72c9a 14\r
15------------------------------------------------------------------\r
16 Usage\r
17------------------------------------------------------------------\r
18\r
191) Unzip the emulator onto some directory on your SD card.\r
202) Since version 0.4 ROMs no longer have to be put to fixed location,\r
21 so you can put them anywhere. Rom files can be zipped.\r
223) The emulator will create a subdirectory in it's working directory \r
23 called fceultra. Save states etc. go here.\r
24 If you want to load saves from < 0.4 version, you should copy files\r
25 from /mnt/sd/roms/nes/fceultra/fcs to\r
26 <where_you_put_gpfce>/fceultra/fcs directory.\r
274) Hit both volume keys to enter the menu.\r
285) For FDS support, put disksys.rom in <where_you_put_gpfce>/fceultra\r
296) For GameGenie support, put gg.rom in <where_you_put_gpfce>/fceultra\r
aa2dba92 30\r
31\r
32------------------------------------------------------------------\r
d0f72c9a 33 Controls\r
aa2dba92 34------------------------------------------------------------------\r
aa2dba92 35\r
d0f72c9a 36Since v0.4 controls are configurable. Default controls are:\r
aa2dba92 37\r
d0f72c9a 38B - NES A\r
39X - NES B\r
40Y - NES A (turbo)\r
41A - NES B (turbo)\r
42SELECT - NES SELECT\r
43START - NES START\r
44VOL +/- - Vol control. Pressing both enters the menu. \r
aa2dba92 45\r
d0f72c9a 46L & JOY - Save state\r
47R & JOY - Load State\r
aa2dba92 48\r
d0f72c9a 49Note: JOY means press in on the joystick (i.e. not up/down/left/right)\r
aa2dba92 50\r
aa2dba92 51\r
d0f72c9a 52gpfce can't emulate all input devices which FCE Ultra does, but it can handle\r
53gamepad emulation of course, plus it can emulate Zapper and the Arkanoid\r
54controller (the last two have hardcoded controls).\r
aa2dba92 55\r
d0f72c9a 56B is the emulated trigger button for the Zapper. X is also emulated as the\r
57trigger, but as long as you have it pressed down, no color detection will take\r
58place, which is effectively like pulling the trigger while the Zapper is\r
59pointed away from the television screen. Note that you must press X for a\r
60short time to have the desired effect.\r
aa2dba92 61\r
d0f72c9a 62For Zapper and the Arkanoid controller Y increases the movement speed,\r
63A decreases.\r
aa2dba92 64\r
65\r
66------------------------------------------------------------------\r
d0f72c9a 67 Palettes\r
68------------------------------------------------------------------\r
69\r
70gpfce has similar palette options as FCE Ultra, so here is modified excerpt\r
71from FCE Ultra manual:\r
72\r
73FCE Ultra has many palette features, including loading a custom palette to\r
74replace the default NES palette (see FCE Ultra option in options menu).\r
75The palette from an NTSC NES can also be generated on-the-fly.\r
76\r
77First, a note on on the format of external palettes; Palette files are expected\r
78to contain 64 8-bit RGB triplets(each in that order; red comes first in the\r
79triplet in the file, then green, then blue). Each 8-bit value represents\r
80brightness for that particular color. 0 is minimum, 255 is maximum.\r
81\r
82Palettes can be set on a per-game basis. To do this, put a palette file in the\r
83<where_you_put_gpfce>/fceultra/pal directory with the same base filename as the\r
84game you wish to associate with and add the extension "pal". Examples:\r
85\r
86 File name: Palette file name:\r
87 BigBad.nes BigBad.pal\r
88 BigBad.zip BigBad.pal\r
89 BigBad.Better.nes BigBad.Better.pal\r
642070a9 90\r
d0f72c9a 91\r
92With so many ways to choose a palette, figuring out which one will be active may\r
93be difficult. Here's a list of what palettes will be used, in order from highest\r
94priority to least priority(if a condition doesn't exist for a higher priority\r
95palette, the emulator will continue down its list of palettes).\r
96\r
97 * Palette loaded from the "fceultra/pal" directory.\r
98 * NTSC Color Emulation(only for NTSC NES games).\r
99 * VS Unisystem palette(if the game is a VS Unisystem game and a palette is available).\r
100 * Custom global palette (set in the menu).\r
101 * Default NES palette.\r
102\r
103\r
aa2dba92 104------------------------------------------------------------------\r
d0f72c9a 105 Famicom Disk System\r
106------------------------------------------------------------------\r
107\r
108You will need the FDS BIOS ROM image in <where_you_put_gpfce>/fceultra directory.\r
109It's size should be 8192 bytes and it must be named "disksys.rom".\r
110gpfce will not load FDS games without this file.\r
111\r
282becab 112You will also probably need to configure keys for swapping the virtual FDS disks,\r
d0f72c9a 113they are configurable in Controls menu.\r
114\r
115Two types of FDS disk images are supported: disk images with the FWNES-style header,\r
116and disk images with no header. The number of sides on headerless disk images is\r
117calculated by the total file size, so don't put extraneous data at the end of the file.\r
118\r
119\r
120------------------------------------------------------------------\r
121 VS Unisystem\r
122------------------------------------------------------------------\r
123\r
124gpfce currently only supports VS Unisystem ROM images in the iNES format. See\r
125FCE Ultra manual for the list of supported games.\r
126\r
127You will need to configure a key to insert coins, see Controls option in the menu.\r
128\r
129\r
130------------------------------------------------------------------\r
131 Cheats\r
132------------------------------------------------------------------\r
133\r
134For cheating you can ether use the authentic game genie support, or the .cht files.\r
135\r
136To use authentic game genie, place appropriate gg.rom into\r
137<where_you_put_gpfce>/fceultra.\r
138Use the FCE Ultra option menu or -gg on commandline to activate the game genie rom.\r
139The ROM image may either be the 24592 byte iNES-format image, or the 4352\r
140byte raw ROM image.\r
141\r
142The .cht files fould be placed into <where_you_put_gpfce>/fceultra/cheats/ directory.\r
143They should have the same base filename as the game you wish to associate with\r
144with the extension "cht". Examples:\r
145\r
146 File name: Palette file name:\r
147 BigBad.nes BigBad.cht\r
148 BigBad.zip BigBad.cht\r
149 BigBad.Better.nes BigBad.Better.cht\r
150\r
151If you have done everything correctly, Cheat option will appear in the main menu\r
152after you load the ROM. You can activate/deactivate cheats by pressing B.\r
153For description of .cht file format, see http://fceultra.sourceforge.net/cheat.php\r
154\r
155\r
892b1f6c 156------------------------------------------------------------------\r
157 IPS patch support\r
158------------------------------------------------------------------\r
159\r
160Place the IPS files in the same directory as the ROM to load, and name them\r
161filename.ips or filename.something.ips. Examples:\r
162\r
163\r
164 File name: IPS file names:\r
165 BigBad.nes BigBad.nes.ips BigBad.nes.somehack.ips\r
166 BigBad.zip BigBad.zip.ips BigBad.zip.badhack.ips\r
167 BigBad.Better.nes BigBad.Better.nes.ips BigBad.Better.nes.evenbetterhack.ips\r
168\r
169Patching is supported for all supported formats (iNES, FDS, UNIF, and NSF), but\r
170it will probably only be useful for the iNES and FDS formats. UNIF files can't be\r
171patched well with the IPS format because they are chunk-based with no fixed offsets.\r
172\r
173\r
d0f72c9a 174------------------------------------------------------------------\r
175 FCM movies\r
176------------------------------------------------------------------\r
177\r
178Version 0.4 has partial FCM movie support. Most of the movies desync due to\r
642070a9 179different timing, but some of them can be played. Note that 'accurate renderer'\r
180option solves some desync problems. There is only playback support.\r
d0f72c9a 181Files should be placed in the ROMs directory along with the ROMs themselves.\r
892b1f6c 182Naming is the same as for IPS patches (see previous section), buf use .fcm\r
183extension instead of .ips.\r
d0f72c9a 184\r
aa2dba92 185\r
186--------------------------------------------------------------------\r
187 Version History\r
188--------------------------------------------------------------------\r
189\r
190\r
c0bf6f9f 191ver 0.4 (by notaz)\r
0ab4d38f 192 ret 313\r
282becab 193 - Improved open bus emulation, fixes missing ground in some SMB3 levels.\r
194 - Improved auto frameskip behavior in cases when emu is not fast\r
195 enough to maintain 50/60 fps.\r
196 - Fixed a bug which prevented some key combo configurations from working.\r
0ab4d38f 197 - Some other minor changes.\r
642070a9 198 rev 171\r
199 - Added optional "Accurate renderer", which is the original FCE Ultra\r
200 0.98.x renderer + PPU emulation code. It's much slower, but it can\r
201 handle games which need more precise PPU timing emulation (like\r
202 Marble Madness).\r
203 - Fixed saving and loading of game specific configs.\r
204 - Some other minor changes.\r
3ee0ae39 205 rev 163\r
206 - Added A r k's fast-direction-change fix for usbjoy lib.\r
207 - Fixed an issue of usbjoys stopping to work when "Perfect vsync"\r
208 is enabled.\r
892b1f6c 209 rev 162\r
0bb3fe12 210 - Fixed savestate subsections (were causing some mapper data not\r
211 to be saved).\r
212 - Fixed an issue of MapIRQHook getting lost after loading a savestate\r
213 (glitched Akumajou Densetsu and other games after savestate load).\r
ca5c359d 214 - A bug, which prevented configuring multiple USB pads fixed.\r
7b356ee3 215 - Fixed sound breaking bug after switching it on/off multiple times.\r
216 - Added "Perfect VSYNC" option, which changes GP2X refresh rate and\r
217 syncs emu timing to LCD vsync.\r
892b1f6c 218 - Fixed IPS patch support.\r
0bb3fe12 219 rev 153\r
d0f72c9a 220 - Lots of work on the asm core. Timing fixed for some instructions.\r
221 Some missing undocumented instruction handlers added. Lots of\r
222 tweaking to make it compatible with all that mapper code.\r
223 - Completely new PicoDrive style menu added with most standard\r
224 FCE Ultra and some additional options. Selector removed, ROM list\r
225 is now built-in and only limited by available memory.\r
226 - Merged in most of code from 0.98.1x versions. Only ppu/rendering\r
227 and sound emulation code left from 0.81 (which is less accurate\r
228 but much faster).\r
229 - Default palette changed to one from later versions.\r
230 - Fixed some alignment problems in MMC5 and some other mappers.\r
231 - Some generic optimizations and code cleanup/refactoring.\r
232 - The built-in NSF player fixed.\r
233 - Authentic GameGenie support fixed.\r
234 - FDS support fixed.\r
235 - VS Unisystem support fixed.\r
236 - Ingame saves fixed (not sure when they got broken).\r
237 - Increased maximum sound volume.\r
238 - Added Zapper emulation just for fun.\r
239 - Added partial FCM movie support.\r
240 - Fixed some memory leaks.\r
241 - Fixed a bug which caused USB connection from GP2X menu\r
242 to hang after using gpfce.\r
243 - Software scaler added.\r
244 - USB gamepad support added.\r
245 - TV out fixed.\r
246 - Documentation updated.\r
c0bf6f9f 247\r
248\r
4e1934c1 249ver 0.3 (by notaz)\r
250\r
251 - Major improvement: added ARM asm CPU core from LJGP32,\r
252 which itself was adapted from FCA by Yoyofr.\r
253 The core required substantial changes to make it work in\r
254 FCE ultra.\r
255 - The emulator renders directly to frame buffer now (previously\r
256 it was drawing to offscreen buffer, which was then copied to\r
257 framebuffer).\r
258 - Squidge's MMU hack added.\r
259 - Added sync() calls after savestate writes.\r
260 - Some additional tweaking here and there to get a few more FPS.\r
261 - Volume middle now can be used as shift to emulator functions\r
262 instead stick click (saving, stretching, etc.).\r
263 - Added frameskip selection with shift+A and shift+Y (shift is\r
264 stick click or volume middle).\r
265 - Probably some more changes I forgot about.\r
266\r
267\r
268\r
aa2dba92 269ver 0.2 5/29/2006 MD5SUM: dd75fa3f090f9298f9f4afff01ab96f2 *gpfce\r
270\r
271 - Sound output issue with stereo fixed, now using\r
272 22050 khz 16-bit mono. I've tried interpolating to \r
273 44khz mono, but the results seemed similar.\r
274 - selector supports up to 2048 files, sorted, with\r
275 alpha scrolling via left/right in addition to \r
276 page up/down via L/R.\r
277 - additional startup scripts to select button and fps \r
278 configurations\r
279 - can load FDS files, but does not seem to work yet\r
280 - configurable buttons (use swapbuttons version )\r
281 - configurable fps (use showfps version)\r
282 - Configurable turbo fire control\r
283 - Selectable save slots from 0-9\r
284 - Volume bar\r
285 - compiled with GCC 4.1.0 -O3 with profiling\r
286\r
287\r
288ver 0.1 5/23/2006 MD5SUM: 13681f25713ad04c535c23f8c61f1e0b *gpfce\r
aa2dba92 289\r
290 - Initial version\r
291 - Around 60 fps with sound\r
292 - Load/Save State\r
293 - Hardware Stretch\r
294 - Soft reset support\r
295 - No GUI, using selector with config\r
296 - Hard coded 22050 audio, 16-bit, stereo\r
297 - compiled with GCC 4.1.0 -O3 with profiling\r
298 - Hard coded config path. This is to prevent users\r
299 from filling up the gp2x space by accident\r
300\r
301\r
d0f72c9a 302 \r
aa2dba92 303------------------------------------------------------------------\r
d0f72c9a 304 Credits/thanks\r
aa2dba92 305------------------------------------------------------------------\r
306\r
d0f72c9a 307- Original base code of FCE Ultra by Xodnizel, Bero.\r
308- Porting/optimization/integration/frontend for 0.3 and 0.4 by notaz.\r
309- Versions 0.1 and 0.2 by zzhu8192 (http://www.unicorn-jockey.com).\r
310- asm CPU core from FCA and Little John GP32.\r
311- Minimal library by rlyeh.\r
312- Additional low-level GP2X libs by Hermes/PS2Reality, theoddbot,\r
313 god_at_hell, Puck2099.\r
aa2dba92 314\r
d0f72c9a 315additional thanks:\r
316- Cruel and DaveC from gp32x boards for beta testing.\r
317- All FCE Ultra contributors listed in\r
318 http://fceultra.sourceforge.net/docs.php\r
aa2dba92 319\r
d0f72c9a 320...and everyone whose name my mind has misplaced.\r
aa2dba92 321\r
d0f72c9a 322zzhu8192's thanks:\r
aa2dba92 323- To lots of talented developers on the http://www.gp32x.com/board/\r
324 Reesy, Squidge, etc. for responding to my technical questions.\r
325- Thanks to \r
326- Lil-kun - for the neat GPFCE logo and the Web Site (under construction) :D\r
327- Referenced source code from MameGP2X (Franxis) and FCEU-0.3 gp2x (Noname)\r
328- Awesome wiki: http://wiki.gp2x.org/wiki/Main_Page\r
329- Awesome gp2x site: http://www.gp32x.com/\r
330- ryleh's minimal lib - w/o which this wouldn't have worked\r
331- FCE Ultra developers (http://fceultra.sourceforge.net/) \r
332 for the wonderful and feature rich NES emulator.\r
333- kounch for Selector frontend - works great for lazy developers like me. :-D\r
334 I have sent my changes to kounch, so hopefully the changes will make it into\r
335 version 1.2 or later.\r
336- gp2x community - just plain rocks\r
337\r
338\r