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