+++ /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