move some gp2x files
[fceu.git] / drivers / gp2x / out / readme.txt
diff --git a/drivers/gp2x/out/readme.txt b/drivers/gp2x/out/readme.txt
new file mode 100644 (file)
index 0000000..c97aae6
--- /dev/null
@@ -0,0 +1,338 @@
+=================================================================================\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