ips patches, 0.4 r162 rel?
[fceu.git] / out_gp2x / readme.txt
aa2dba92 1=================================================================================\r
2 GPFCE - NES emulator for the GP2X\r
aa2dba92 4\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
11In case you don't know what the NES is about, see:\r
d0f72c9a 14\r
16 Usage\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
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
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
d0f72c9a 67 Palettes\r
70gpfce has similar palette options as FCE Ultra, so here is modified excerpt\r
71from FCE Ultra manual:\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
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
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
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
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
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
aa2dba92 104------------------------------------------------------------------\r
d0f72c9a 105 Famicom Disk System\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
112You will also probably need configure keys for swapping the virtual FDS disks,\r
113they are configurable in Controls menu.\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
121 VS Unisystem\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
127You will need to configure a key to insert coins, see Controls option in the menu.\r
131 Cheats\r
134For cheating you can ether use the authentic game genie support, or the .cht files.\r
136To use authentic game genie, place appropriate gg.rom into\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
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
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
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
892b1f6c 156------------------------------------------------------------------\r
157 IPS patch support\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
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
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
d0f72c9a 174------------------------------------------------------------------\r
175 FCM movies\r
178Version 0.4 has partial FCM movie support. Most of the movies desync due to\r
179different timing, but some of them can be played. There is only playback support.\r
180Files should be placed in the ROMs directory along with the ROMs themselves.\r
892b1f6c 181Naming is the same as for IPS patches (see previous section), buf use .fcm\r
182extension instead of .ips.\r
d0f72c9a 183\r
aa2dba92 184\r
186 Version History\r
c0bf6f9f 190ver 0.4 (by notaz)\r
892b1f6c 191 rev 162\r
0bb3fe12 192 - Fixed savestate subsections (were causing some mapper data not\r
193 to be saved).\r
194 - Fixed an issue of MapIRQHook getting lost after loading a savestate\r
195 (glitched Akumajou Densetsu and other games after savestate load).\r
ca5c359d 196 - A bug, which prevented configuring multiple USB pads fixed.\r
7b356ee3 197 - Fixed sound breaking bug after switching it on/off multiple times.\r
198 - Added "Perfect VSYNC" option, which changes GP2X refresh rate and\r
199 syncs emu timing to LCD vsync.\r
892b1f6c 200 - Fixed IPS patch support.\r
0bb3fe12 201 rev 153\r
d0f72c9a 202 - Lots of work on the asm core. Timing fixed for some instructions.\r
203 Some missing undocumented instruction handlers added. Lots of\r
204 tweaking to make it compatible with all that mapper code.\r
205 - Completely new PicoDrive style menu added with most standard\r
206 FCE Ultra and some additional options. Selector removed, ROM list\r
207 is now built-in and only limited by available memory.\r
208 - Merged in most of code from 0.98.1x versions. Only ppu/rendering\r
209 and sound emulation code left from 0.81 (which is less accurate\r
210 but much faster).\r
211 - Default palette changed to one from later versions.\r
212 - Fixed some alignment problems in MMC5 and some other mappers.\r
213 - Some generic optimizations and code cleanup/refactoring.\r
214 - The built-in NSF player fixed.\r
215 - Authentic GameGenie support fixed.\r
216 - FDS support fixed.\r
217 - VS Unisystem support fixed.\r
218 - Ingame saves fixed (not sure when they got broken).\r
219 - Increased maximum sound volume.\r
220 - Added Zapper emulation just for fun.\r
221 - Added partial FCM movie support.\r
222 - Fixed some memory leaks.\r
223 - Fixed a bug which caused USB connection from GP2X menu\r
224 to hang after using gpfce.\r
225 - Software scaler added.\r
226 - USB gamepad support added.\r
227 - TV out fixed.\r
228 - Documentation updated.\r
c0bf6f9f 229\r
4e1934c1 231ver 0.3 (by notaz)\r
233 - Major improvement: added ARM asm CPU core from LJGP32,\r
234 which itself was adapted from FCA by Yoyofr.\r
235 The core required substantial changes to make it work in\r
236 FCE ultra.\r
237 - The emulator renders directly to frame buffer now (previously\r
238 it was drawing to offscreen buffer, which was then copied to\r
239 framebuffer).\r
240 - Squidge's MMU hack added.\r
241 - Added sync() calls after savestate writes.\r
242 - Some additional tweaking here and there to get a few more FPS.\r
243 - Volume middle now can be used as shift to emulator functions\r
244 instead stick click (saving, stretching, etc.).\r
245 - Added frameskip selection with shift+A and shift+Y (shift is\r
246 stick click or volume middle).\r
247 - Probably some more changes I forgot about.\r
aa2dba92 251ver 0.2 5/29/2006 MD5SUM: dd75fa3f090f9298f9f4afff01ab96f2 *gpfce\r
253 - Sound output issue with stereo fixed, now using\r
254 22050 khz 16-bit mono. I've tried interpolating to \r
255 44khz mono, but the results seemed similar.\r
256 - selector supports up to 2048 files, sorted, with\r
257 alpha scrolling via left/right in addition to \r
258 page up/down via L/R.\r
259 - additional startup scripts to select button and fps \r
260 configurations\r
261 - can load FDS files, but does not seem to work yet\r
262 - configurable buttons (use swapbuttons version )\r
263 - configurable fps (use showfps version)\r
264 - Configurable turbo fire control\r
265 - Selectable save slots from 0-9\r
266 - Volume bar\r
267 - compiled with GCC 4.1.0 -O3 with profiling\r
270ver 0.1 5/23/2006 MD5SUM: 13681f25713ad04c535c23f8c61f1e0b *gpfce\r
aa2dba92 271\r
272 - Initial version\r
273 - Around 60 fps with sound\r
274 - Load/Save State\r
275 - Hardware Stretch\r
276 - Soft reset support\r
277 - No GUI, using selector with config\r
278 - Hard coded 22050 audio, 16-bit, stereo\r
279 - compiled with GCC 4.1.0 -O3 with profiling\r
280 - Hard coded config path. This is to prevent users\r
281 from filling up the gp2x space by accident\r
d0f72c9a 284 \r
aa2dba92 285------------------------------------------------------------------\r
d0f72c9a 286 Credits/thanks\r
aa2dba92 287------------------------------------------------------------------\r
d0f72c9a 289- Original base code of FCE Ultra by Xodnizel, Bero.\r
290- Porting/optimization/integration/frontend for 0.3 and 0.4 by notaz.\r
291- Versions 0.1 and 0.2 by zzhu8192 (http://www.unicorn-jockey.com).\r
292- asm CPU core from FCA and Little John GP32.\r
293- Minimal library by rlyeh.\r
294- Additional low-level GP2X libs by Hermes/PS2Reality, theoddbot,\r
295 god_at_hell, Puck2099.\r
aa2dba92 296\r
d0f72c9a 297additional thanks:\r
298- Cruel and DaveC from gp32x boards for beta testing.\r
299- All FCE Ultra contributors listed in\r
300 http://fceultra.sourceforge.net/docs.php\r
aa2dba92 301\r
d0f72c9a 302...and everyone whose name my mind has misplaced.\r
aa2dba92 303\r
d0f72c9a 304zzhu8192's thanks:\r
aa2dba92 305- To lots of talented developers on the http://www.gp32x.com/board/\r
306 Reesy, Squidge, etc. for responding to my technical questions.\r
307- Thanks to \r
308- Lil-kun - for the neat GPFCE logo and the Web Site (under construction) :D\r
309- Referenced source code from MameGP2X (Franxis) and FCEU-0.3 gp2x (Noname)\r
310- Awesome wiki: http://wiki.gp2x.org/wiki/Main_Page\r
311- Awesome gp2x site: http://www.gp32x.com/\r
312- ryleh's minimal lib - w/o which this wouldn't have worked\r
313- FCE Ultra developers (http://fceultra.sourceforge.net/) \r
314 for the wonderful and feature rich NES emulator.\r
315- kounch for Selector frontend - works great for lazy developers like me. :-D\r
316 I have sent my changes to kounch, so hopefully the changes will make it into\r
317 version 1.2 or later.\r
318- gp2x community - just plain rocks\r