--- /dev/null
+=================================================================================\r
+ GPFCE - NES emulator for the GP2X\r
+=================================================================================\r
+\r
+\r
+This is a gp2x port of the **great** Open Source NES emulator FCE Ultra:\r
+http://fceultra.sourceforge.net. If you enjoyed using this emulator, please\r
+keep in mind that this would not have been possible without the hard work and\r
+dedication of the FCE Ultra developers.\r
+\r
+In case you don't know what the NES is about, see:\r
+http://en.wikipedia.org/wiki/Famicom.\r
+\r
+\r
+------------------------------------------------------------------\r
+ Usage\r
+------------------------------------------------------------------\r
+\r
+1) Unzip the emulator onto some directory on your SD card.\r
+2) Since version 0.4 ROMs no longer have to be put to fixed location,\r
+ so you can put them anywhere. Rom files can be zipped.\r
+3) The emulator will create a subdirectory in it's working directory \r
+ called fceultra. Save states etc. go here.\r
+ If you want to load saves from < 0.4 version, you should copy files\r
+ from /mnt/sd/roms/nes/fceultra/fcs to\r
+ <where_you_put_gpfce>/fceultra/fcs directory.\r
+4) Hit both volume keys to enter the menu.\r
+5) For FDS support, put disksys.rom in <where_you_put_gpfce>/fceultra\r
+6) For GameGenie support, put gg.rom in <where_you_put_gpfce>/fceultra\r
+\r
+\r
+------------------------------------------------------------------\r
+ Controls\r
+------------------------------------------------------------------\r
+\r
+Since v0.4 controls are configurable. Default controls are:\r
+\r
+B - NES A\r
+X - NES B\r
+Y - NES A (turbo)\r
+A - NES B (turbo)\r
+SELECT - NES SELECT\r
+START - NES START\r
+VOL +/- - Vol control. Pressing both enters the menu. \r
+\r
+L & JOY - Save state\r
+R & JOY - Load State\r
+\r
+Note: JOY means press in on the joystick (i.e. not up/down/left/right)\r
+\r
+\r
+gpfce can't emulate all input devices which FCE Ultra does, but it can handle\r
+gamepad emulation of course, plus it can emulate Zapper and the Arkanoid\r
+controller (the last two have hardcoded controls).\r
+\r
+B is the emulated trigger button for the Zapper. X is also emulated as the\r
+trigger, but as long as you have it pressed down, no color detection will take\r
+place, which is effectively like pulling the trigger while the Zapper is\r
+pointed away from the television screen. Note that you must press X for a\r
+short time to have the desired effect.\r
+\r
+For Zapper and the Arkanoid controller Y increases the movement speed,\r
+A decreases.\r
+\r
+\r
+------------------------------------------------------------------\r
+ Palettes\r
+------------------------------------------------------------------\r
+\r
+gpfce has similar palette options as FCE Ultra, so here is modified excerpt\r
+from FCE Ultra manual:\r
+\r
+FCE Ultra has many palette features, including loading a custom palette to\r
+replace the default NES palette (see FCE Ultra option in options menu).\r
+The palette from an NTSC NES can also be generated on-the-fly.\r
+\r
+First, a note on on the format of external palettes; Palette files are expected\r
+to contain 64 8-bit RGB triplets(each in that order; red comes first in the\r
+triplet in the file, then green, then blue). Each 8-bit value represents\r
+brightness for that particular color. 0 is minimum, 255 is maximum.\r
+\r
+Palettes can be set on a per-game basis. To do this, put a palette file in the\r
+<where_you_put_gpfce>/fceultra/pal directory with the same base filename as the\r
+game you wish to associate with and add the extension "pal". Examples:\r
+\r
+ File name: Palette file name:\r
+ BigBad.nes BigBad.pal\r
+ BigBad.zip BigBad.pal\r
+ BigBad.Better.nes BigBad.Better.pal\r
+\r
+\r
+With so many ways to choose a palette, figuring out which one will be active may\r
+be difficult. Here's a list of what palettes will be used, in order from highest\r
+priority to least priority(if a condition doesn't exist for a higher priority\r
+palette, the emulator will continue down its list of palettes).\r
+\r
+ * Palette loaded from the "fceultra/pal" directory.\r
+ * NTSC Color Emulation(only for NTSC NES games).\r
+ * VS Unisystem palette(if the game is a VS Unisystem game and a palette is available).\r
+ * Custom global palette (set in the menu).\r
+ * Default NES palette.\r
+\r
+\r
+------------------------------------------------------------------\r
+ Famicom Disk System\r
+------------------------------------------------------------------\r
+\r
+You will need the FDS BIOS ROM image in <where_you_put_gpfce>/fceultra directory.\r
+It's size should be 8192 bytes and it must be named "disksys.rom".\r
+gpfce will not load FDS games without this file.\r
+\r
+You will also probably need to configure keys for swapping the virtual FDS disks,\r
+they are configurable in Controls menu.\r
+\r
+Two types of FDS disk images are supported: disk images with the FWNES-style header,\r
+and disk images with no header. The number of sides on headerless disk images is\r
+calculated by the total file size, so don't put extraneous data at the end of the file.\r
+\r
+\r
+------------------------------------------------------------------\r
+ VS Unisystem\r
+------------------------------------------------------------------\r
+\r
+gpfce currently only supports VS Unisystem ROM images in the iNES format. See\r
+FCE Ultra manual for the list of supported games.\r
+\r
+You will need to configure a key to insert coins, see Controls option in the menu.\r
+\r
+\r
+------------------------------------------------------------------\r
+ Cheats\r
+------------------------------------------------------------------\r
+\r
+For cheating you can ether use the authentic game genie support, or the .cht files.\r
+\r
+To use authentic game genie, place appropriate gg.rom into\r
+<where_you_put_gpfce>/fceultra.\r
+Use the FCE Ultra option menu or -gg on commandline to activate the game genie rom.\r
+The ROM image may either be the 24592 byte iNES-format image, or the 4352\r
+byte raw ROM image.\r
+\r
+The .cht files fould be placed into <where_you_put_gpfce>/fceultra/cheats/ directory.\r
+They should have the same base filename as the game you wish to associate with\r
+with the extension "cht". Examples:\r
+\r
+ File name: Palette file name:\r
+ BigBad.nes BigBad.cht\r
+ BigBad.zip BigBad.cht\r
+ BigBad.Better.nes BigBad.Better.cht\r
+\r
+If you have done everything correctly, Cheat option will appear in the main menu\r
+after you load the ROM. You can activate/deactivate cheats by pressing B.\r
+For description of .cht file format, see http://fceultra.sourceforge.net/cheat.php\r
+\r
+\r
+------------------------------------------------------------------\r
+ IPS patch support\r
+------------------------------------------------------------------\r
+\r
+Place the IPS files in the same directory as the ROM to load, and name them\r
+filename.ips or filename.something.ips. Examples:\r
+\r
+\r
+ File name: IPS file names:\r
+ BigBad.nes BigBad.nes.ips BigBad.nes.somehack.ips\r
+ BigBad.zip BigBad.zip.ips BigBad.zip.badhack.ips\r
+ BigBad.Better.nes BigBad.Better.nes.ips BigBad.Better.nes.evenbetterhack.ips\r
+\r
+Patching is supported for all supported formats (iNES, FDS, UNIF, and NSF), but\r
+it will probably only be useful for the iNES and FDS formats. UNIF files can't be\r
+patched well with the IPS format because they are chunk-based with no fixed offsets.\r
+\r
+\r
+------------------------------------------------------------------\r
+ FCM movies\r
+------------------------------------------------------------------\r
+\r
+Version 0.4 has partial FCM movie support. Most of the movies desync due to\r
+different timing, but some of them can be played. Note that 'accurate renderer'\r
+option solves some desync problems. There is only playback support.\r
+Files should be placed in the ROMs directory along with the ROMs themselves.\r
+Naming is the same as for IPS patches (see previous section), buf use .fcm\r
+extension instead of .ips.\r
+\r
+\r
+--------------------------------------------------------------------\r
+ Version History\r
+--------------------------------------------------------------------\r
+\r
+\r
+ver 0.4 (by notaz)\r
+ ret 313\r
+ - Improved open bus emulation, fixes missing ground in some SMB3 levels.\r
+ - Improved auto frameskip behavior in cases when emu is not fast\r
+ enough to maintain 50/60 fps.\r
+ - Fixed a bug which prevented some key combo configurations from working.\r
+ - Some other minor changes.\r
+ rev 171\r
+ - Added optional "Accurate renderer", which is the original FCE Ultra\r
+ 0.98.x renderer + PPU emulation code. It's much slower, but it can\r
+ handle games which need more precise PPU timing emulation (like\r
+ Marble Madness).\r
+ - Fixed saving and loading of game specific configs.\r
+ - Some other minor changes.\r
+ rev 163\r
+ - Added A r k's fast-direction-change fix for usbjoy lib.\r
+ - Fixed an issue of usbjoys stopping to work when "Perfect vsync"\r
+ is enabled.\r
+ rev 162\r
+ - Fixed savestate subsections (were causing some mapper data not\r
+ to be saved).\r
+ - Fixed an issue of MapIRQHook getting lost after loading a savestate\r
+ (glitched Akumajou Densetsu and other games after savestate load).\r
+ - A bug, which prevented configuring multiple USB pads fixed.\r
+ - Fixed sound breaking bug after switching it on/off multiple times.\r
+ - Added "Perfect VSYNC" option, which changes GP2X refresh rate and\r
+ syncs emu timing to LCD vsync.\r
+ - Fixed IPS patch support.\r
+ rev 153\r
+ - Lots of work on the asm core. Timing fixed for some instructions.\r
+ Some missing undocumented instruction handlers added. Lots of\r
+ tweaking to make it compatible with all that mapper code.\r
+ - Completely new PicoDrive style menu added with most standard\r
+ FCE Ultra and some additional options. Selector removed, ROM list\r
+ is now built-in and only limited by available memory.\r
+ - Merged in most of code from 0.98.1x versions. Only ppu/rendering\r
+ and sound emulation code left from 0.81 (which is less accurate\r
+ but much faster).\r
+ - Default palette changed to one from later versions.\r
+ - Fixed some alignment problems in MMC5 and some other mappers.\r
+ - Some generic optimizations and code cleanup/refactoring.\r
+ - The built-in NSF player fixed.\r
+ - Authentic GameGenie support fixed.\r
+ - FDS support fixed.\r
+ - VS Unisystem support fixed.\r
+ - Ingame saves fixed (not sure when they got broken).\r
+ - Increased maximum sound volume.\r
+ - Added Zapper emulation just for fun.\r
+ - Added partial FCM movie support.\r
+ - Fixed some memory leaks.\r
+ - Fixed a bug which caused USB connection from GP2X menu\r
+ to hang after using gpfce.\r
+ - Software scaler added.\r
+ - USB gamepad support added.\r
+ - TV out fixed.\r
+ - Documentation updated.\r
+\r
+\r
+ver 0.3 (by notaz)\r
+\r
+ - Major improvement: added ARM asm CPU core from LJGP32,\r
+ which itself was adapted from FCA by Yoyofr.\r
+ The core required substantial changes to make it work in\r
+ FCE ultra.\r
+ - The emulator renders directly to frame buffer now (previously\r
+ it was drawing to offscreen buffer, which was then copied to\r
+ framebuffer).\r
+ - Squidge's MMU hack added.\r
+ - Added sync() calls after savestate writes.\r
+ - Some additional tweaking here and there to get a few more FPS.\r
+ - Volume middle now can be used as shift to emulator functions\r
+ instead stick click (saving, stretching, etc.).\r
+ - Added frameskip selection with shift+A and shift+Y (shift is\r
+ stick click or volume middle).\r
+ - Probably some more changes I forgot about.\r
+\r
+\r
+\r
+ver 0.2 5/29/2006 MD5SUM: dd75fa3f090f9298f9f4afff01ab96f2 *gpfce\r
+\r
+ - Sound output issue with stereo fixed, now using\r
+ 22050 khz 16-bit mono. I've tried interpolating to \r
+ 44khz mono, but the results seemed similar.\r
+ - selector supports up to 2048 files, sorted, with\r
+ alpha scrolling via left/right in addition to \r
+ page up/down via L/R.\r
+ - additional startup scripts to select button and fps \r
+ configurations\r
+ - can load FDS files, but does not seem to work yet\r
+ - configurable buttons (use swapbuttons version )\r
+ - configurable fps (use showfps version)\r
+ - Configurable turbo fire control\r
+ - Selectable save slots from 0-9\r
+ - Volume bar\r
+ - compiled with GCC 4.1.0 -O3 with profiling\r
+\r
+\r
+ver 0.1 5/23/2006 MD5SUM: 13681f25713ad04c535c23f8c61f1e0b *gpfce\r
+\r
+ - Initial version\r
+ - Around 60 fps with sound\r
+ - Load/Save State\r
+ - Hardware Stretch\r
+ - Soft reset support\r
+ - No GUI, using selector with config\r
+ - Hard coded 22050 audio, 16-bit, stereo\r
+ - compiled with GCC 4.1.0 -O3 with profiling\r
+ - Hard coded config path. This is to prevent users\r
+ from filling up the gp2x space by accident\r
+\r
+\r
+ \r
+------------------------------------------------------------------\r
+ Credits/thanks\r
+------------------------------------------------------------------\r
+\r
+- Original base code of FCE Ultra by Xodnizel, Bero.\r
+- Porting/optimization/integration/frontend for 0.3 and 0.4 by notaz.\r
+- Versions 0.1 and 0.2 by zzhu8192 (http://www.unicorn-jockey.com).\r
+- asm CPU core from FCA and Little John GP32.\r
+- Minimal library by rlyeh.\r
+- Additional low-level GP2X libs by Hermes/PS2Reality, theoddbot,\r
+ god_at_hell, Puck2099.\r
+\r
+additional thanks:\r
+- Cruel and DaveC from gp32x boards for beta testing.\r
+- All FCE Ultra contributors listed in\r
+ http://fceultra.sourceforge.net/docs.php\r
+\r
+...and everyone whose name my mind has misplaced.\r
+\r
+zzhu8192's thanks:\r
+- To lots of talented developers on the http://www.gp32x.com/board/\r
+ Reesy, Squidge, etc. for responding to my technical questions.\r
+- Thanks to \r
+- Lil-kun - for the neat GPFCE logo and the Web Site (under construction) :D\r
+- Referenced source code from MameGP2X (Franxis) and FCEU-0.3 gp2x (Noname)\r
+- Awesome wiki: http://wiki.gp2x.org/wiki/Main_Page\r
+- Awesome gp2x site: http://www.gp32x.com/\r
+- ryleh's minimal lib - w/o which this wouldn't have worked\r
+- FCE Ultra developers (http://fceultra.sourceforge.net/) \r
+ for the wonderful and feature rich NES emulator.\r
+- kounch for Selector frontend - works great for lazy developers like me. :-D\r
+ I have sent my changes to kounch, so hopefully the changes will make it into\r
+ version 1.2 or later.\r
+- gp2x community - just plain rocks\r
+\r
+\r