| 1 | =================================================================================\r |
| 2 | GPFCE - NES emulator for Pandora\r |
| 3 | =================================================================================\r |
| 4 | \r |
| 5 | \r |
| 6 | This is Pandora port of optimized GP2X port of FCE Ultra NES emulator.\r |
| 7 | Homepages:\r |
| 8 | http://notaz.gp2x.de/gpfce.php\r |
| 9 | http://fceultra.sourceforge.net\r |
| 10 | \r |
| 11 | \r |
| 12 | ------------------------------------------------------------------\r |
| 13 | Usage\r |
| 14 | ------------------------------------------------------------------\r |
| 15 | \r |
| 16 | The emulator does not require any setup to play regular ROM images,\r |
| 17 | except for FDS support, for which disksys.rom is needed (see below).\r |
| 18 | ROM images gan be selected using built-in file browser, .zip files\r |
| 19 | are supported.\r |
| 20 | \r |
| 21 | On pandora, saves and other files go to appdata directory, which is\r |
| 22 | usually in <SD card>/pandora/appdata/gpfce/ .\r |
| 23 | From here on this file will refer to it as <root>.\r |
| 24 | \r |
| 25 | \r |
| 26 | ------------------------------------------------------------------\r |
| 27 | Famicom Disk System\r |
| 28 | ------------------------------------------------------------------\r |
| 29 | \r |
| 30 | You will need the FDS BIOS ROM image in <root>/fceultra directory.\r |
| 31 | It's size should be 8192 bytes and it must be named "disksys.rom".\r |
| 32 | gpfce will not load FDS games without this file.\r |
| 33 | \r |
| 34 | You will also probably need to configure keys for swapping the virtual FDS disks,\r |
| 35 | they are configurable in Controls menu.\r |
| 36 | \r |
| 37 | Two types of FDS disk images are supported: disk images with the FWNES-style header,\r |
| 38 | and disk images with no header. The number of sides on headerless disk images is\r |
| 39 | calculated by the total file size, so don't put extraneous data at the end of the file.\r |
| 40 | \r |
| 41 | \r |
| 42 | ------------------------------------------------------------------\r |
| 43 | VS Unisystem\r |
| 44 | ------------------------------------------------------------------\r |
| 45 | \r |
| 46 | gpfce currently only supports VS Unisystem ROM images in the iNES format. See\r |
| 47 | FCE Ultra manual for the list of supported games.\r |
| 48 | \r |
| 49 | You will need to configure a key to insert coins, see Controls option in the menu.\r |
| 50 | \r |
| 51 | \r |
| 52 | ------------------------------------------------------------------\r |
| 53 | Cheats\r |
| 54 | ------------------------------------------------------------------\r |
| 55 | \r |
| 56 | For cheating you can ether use the authentic game genie support, or the .cht files.\r |
| 57 | \r |
| 58 | To use authentic game genie, place appropriate gg.rom into\r |
| 59 | <root>/fceultra.\r |
| 60 | Use the FCE Ultra option menu or -gg on commandline to activate the game genie rom.\r |
| 61 | The ROM image may either be the 24592 byte iNES-format image, or the 4352\r |
| 62 | byte raw ROM image.\r |
| 63 | \r |
| 64 | The .cht files fould be placed into <root>/fceultra/cheats/ directory.\r |
| 65 | They should have the same base filename as the game you wish to associate with\r |
| 66 | with the extension "cht". Examples:\r |
| 67 | \r |
| 68 | File name: Cheat file name:\r |
| 69 | BigBad.nes BigBad.cht\r |
| 70 | BigBad.zip BigBad.cht\r |
| 71 | BigBad.Better.nes BigBad.Better.cht\r |
| 72 | \r |
| 73 | If you have done everything correctly, Cheat option will appear in the main menu\r |
| 74 | after you load the ROM. You can activate/deactivate cheats by pressing B.\r |
| 75 | For description of .cht file format, see http://fceultra.sourceforge.net/cheat.php\r |
| 76 | \r |
| 77 | \r |
| 78 | ------------------------------------------------------------------\r |
| 79 | IPS patch support\r |
| 80 | ------------------------------------------------------------------\r |
| 81 | \r |
| 82 | Place the IPS files in the same directory as the ROM to load, and name them\r |
| 83 | filename.ips or filename.something.ips. Examples:\r |
| 84 | \r |
| 85 | \r |
| 86 | File name: IPS file names:\r |
| 87 | BigBad.nes BigBad.nes.ips BigBad.nes.somehack.ips\r |
| 88 | BigBad.zip BigBad.zip.ips BigBad.zip.badhack.ips\r |
| 89 | BigBad.Better.nes BigBad.Better.nes.ips BigBad.Better.nes.evenbetterhack.ips\r |
| 90 | \r |
| 91 | Patching is supported for all supported formats (iNES, FDS, UNIF, and NSF), but\r |
| 92 | it will probably only be useful for the iNES and FDS formats. UNIF files can't be\r |
| 93 | patched well with the IPS format because they are chunk-based with no fixed offsets.\r |
| 94 | \r |
| 95 | \r |
| 96 | ------------------------------------------------------------------\r |
| 97 | FCM movies\r |
| 98 | ------------------------------------------------------------------\r |
| 99 | \r |
| 100 | Version 0.4 has partial FCM movie support. Most of the movies desync due to\r |
| 101 | different timing, but some of them can be played. Note that 'accurate renderer'\r |
| 102 | option solves some desync problems. There is only playback support.\r |
| 103 | Files should be placed in the ROMs directory along with the ROMs themselves.\r |
| 104 | Naming is the same as for IPS patches (see previous section), buf use .fcm\r |
| 105 | extension instead of .ips.\r |
| 106 | \r |
| 107 | \r |
| 108 | --------------------------------------------------------------------\r |
| 109 | Version History\r |
| 110 | --------------------------------------------------------------------\r |
| 111 | \r |
| 112 | \r |
| 113 | r1 (for pandora)\r |
| 114 | - Ported to pandora, unified the code.\r |
| 115 | - Added M-HT's filters and some pandora specific options/tweaks.\r |
| 116 | \r |
| 117 | ver 0.4 (by notaz)\r |
| 118 | ret 313\r |
| 119 | - Improved open bus emulation, fixes missing ground in some SMB3 levels.\r |
| 120 | - Improved auto frameskip behavior in cases when emu is not fast\r |
| 121 | enough to maintain 50/60 fps.\r |
| 122 | - Fixed a bug which prevented some key combo configurations from working.\r |
| 123 | - Some other minor changes.\r |
| 124 | rev 171\r |
| 125 | - Added optional "Accurate renderer", which is the original FCE Ultra\r |
| 126 | 0.98.x renderer + PPU emulation code. It's much slower, but it can\r |
| 127 | handle games which need more precise PPU timing emulation (like\r |
| 128 | Marble Madness).\r |
| 129 | - Fixed saving and loading of game specific configs.\r |
| 130 | - Some other minor changes.\r |
| 131 | rev 163\r |
| 132 | - Added A r k's fast-direction-change fix for usbjoy lib.\r |
| 133 | - Fixed an issue of usbjoys stopping to work when "Perfect vsync"\r |
| 134 | is enabled.\r |
| 135 | rev 162\r |
| 136 | - Fixed savestate subsections (were causing some mapper data not\r |
| 137 | to be saved).\r |
| 138 | - Fixed an issue of MapIRQHook getting lost after loading a savestate\r |
| 139 | (glitched Akumajou Densetsu and other games after savestate load).\r |
| 140 | - A bug, which prevented configuring multiple USB pads fixed.\r |
| 141 | - Fixed sound breaking bug after switching it on/off multiple times.\r |
| 142 | - Added "Perfect VSYNC" option, which changes GP2X refresh rate and\r |
| 143 | syncs emu timing to LCD vsync.\r |
| 144 | - Fixed IPS patch support.\r |
| 145 | rev 153\r |
| 146 | - Lots of work on the asm core. Timing fixed for some instructions.\r |
| 147 | Some missing undocumented instruction handlers added. Lots of\r |
| 148 | tweaking to make it compatible with all that mapper code.\r |
| 149 | - Completely new PicoDrive style menu added with most standard\r |
| 150 | FCE Ultra and some additional options. Selector removed, ROM list\r |
| 151 | is now built-in and only limited by available memory.\r |
| 152 | - Merged in most of code from 0.98.1x versions. Only ppu/rendering\r |
| 153 | and sound emulation code left from 0.81 (which is less accurate\r |
| 154 | but much faster).\r |
| 155 | - Default palette changed to one from later versions.\r |
| 156 | - Fixed some alignment problems in MMC5 and some other mappers.\r |
| 157 | - Some generic optimizations and code cleanup/refactoring.\r |
| 158 | - The built-in NSF player fixed.\r |
| 159 | - Authentic GameGenie support fixed.\r |
| 160 | - FDS support fixed.\r |
| 161 | - VS Unisystem support fixed.\r |
| 162 | - Ingame saves fixed (not sure when they got broken).\r |
| 163 | - Increased maximum sound volume.\r |
| 164 | - Added Zapper emulation just for fun.\r |
| 165 | - Added partial FCM movie support.\r |
| 166 | - Fixed some memory leaks.\r |
| 167 | - Fixed a bug which caused USB connection from GP2X menu\r |
| 168 | to hang after using gpfce.\r |
| 169 | - Software scaler added.\r |
| 170 | - USB gamepad support added.\r |
| 171 | - TV out fixed.\r |
| 172 | - Documentation updated.\r |
| 173 | \r |
| 174 | \r |
| 175 | ver 0.3 (by notaz)\r |
| 176 | \r |
| 177 | - Major improvement: added ARM asm CPU core from LJGP32,\r |
| 178 | which itself was adapted from FCA by Yoyofr.\r |
| 179 | The core required substantial changes to make it work in\r |
| 180 | FCE ultra.\r |
| 181 | - The emulator renders directly to frame buffer now (previously\r |
| 182 | it was drawing to offscreen buffer, which was then copied to\r |
| 183 | framebuffer).\r |
| 184 | - Squidge's MMU hack added.\r |
| 185 | - Added sync() calls after savestate writes.\r |
| 186 | - Some additional tweaking here and there to get a few more FPS.\r |
| 187 | - Volume middle now can be used as shift to emulator functions\r |
| 188 | instead stick click (saving, stretching, etc.).\r |
| 189 | - Added frameskip selection with shift+A and shift+Y (shift is\r |
| 190 | stick click or volume middle).\r |
| 191 | - Probably some more changes I forgot about.\r |
| 192 | \r |
| 193 | \r |
| 194 | \r |
| 195 | ver 0.2 5/29/2006 MD5SUM: dd75fa3f090f9298f9f4afff01ab96f2 *gpfce\r |
| 196 | \r |
| 197 | - Sound output issue with stereo fixed, now using\r |
| 198 | 22050 khz 16-bit mono. I've tried interpolating to \r |
| 199 | 44khz mono, but the results seemed similar.\r |
| 200 | - selector supports up to 2048 files, sorted, with\r |
| 201 | alpha scrolling via left/right in addition to \r |
| 202 | page up/down via L/R.\r |
| 203 | - additional startup scripts to select button and fps \r |
| 204 | configurations\r |
| 205 | - can load FDS files, but does not seem to work yet\r |
| 206 | - configurable buttons (use swapbuttons version )\r |
| 207 | - configurable fps (use showfps version)\r |
| 208 | - Configurable turbo fire control\r |
| 209 | - Selectable save slots from 0-9\r |
| 210 | - Volume bar\r |
| 211 | - compiled with GCC 4.1.0 -O3 with profiling\r |
| 212 | \r |
| 213 | \r |
| 214 | ver 0.1 5/23/2006 MD5SUM: 13681f25713ad04c535c23f8c61f1e0b *gpfce\r |
| 215 | \r |
| 216 | - Initial version\r |
| 217 | - Around 60 fps with sound\r |
| 218 | - Load/Save State\r |
| 219 | - Hardware Stretch\r |
| 220 | - Soft reset support\r |
| 221 | - No GUI, using selector with config\r |
| 222 | - Hard coded 22050 audio, 16-bit, stereo\r |
| 223 | - compiled with GCC 4.1.0 -O3 with profiling\r |
| 224 | - Hard coded config path. This is to prevent users\r |
| 225 | from filling up the gp2x space by accident\r |
| 226 | \r |
| 227 | \r |
| 228 | \r |
| 229 | ------------------------------------------------------------------\r |
| 230 | Credits/thanks\r |
| 231 | ------------------------------------------------------------------\r |
| 232 | \r |
| 233 | - Original base code of FCE Ultra by Xodnizel, Bero.\r |
| 234 | - Porting/optimization/integration/frontend for 0.3 and 0.4 by notaz.\r |
| 235 | - Versions 0.1 and 0.2 by zzhu8192 (http://www.unicorn-jockey.com).\r |
| 236 | - asm CPU core from FCA and Little John GP32.\r |
| 237 | - Minimal library by rlyeh.\r |
| 238 | - Additional low-level GP2X libs by Hermes/PS2Reality, theoddbot,\r |
| 239 | god_at_hell, Puck2099.\r |
| 240 | \r |
| 241 | additional thanks:\r |
| 242 | - Cruel and DaveC from gp32x boards for beta testing.\r |
| 243 | - All FCE Ultra contributors listed in\r |
| 244 | http://fceultra.sourceforge.net/docs.php\r |
| 245 | \r |
| 246 | ...and everyone whose name my mind has misplaced.\r |
| 247 | \r |
| 248 | zzhu8192's thanks:\r |
| 249 | - To lots of talented developers on the http://www.gp32x.com/board/\r |
| 250 | Reesy, Squidge, etc. for responding to my technical questions.\r |
| 251 | - Thanks to \r |
| 252 | - Lil-kun - for the neat GPFCE logo and the Web Site (under construction) :D\r |
| 253 | - Referenced source code from MameGP2X (Franxis) and FCEU-0.3 gp2x (Noname)\r |
| 254 | - Awesome wiki: http://wiki.gp2x.org/wiki/Main_Page\r |
| 255 | - Awesome gp2x site: http://www.gp32x.com/\r |
| 256 | - ryleh's minimal lib - w/o which this wouldn't have worked\r |
| 257 | - FCE Ultra developers (http://fceultra.sourceforge.net/) \r |
| 258 | for the wonderful and feature rich NES emulator.\r |
| 259 | - kounch for Selector frontend - works great for lazy developers like me. :-D\r |
| 260 | I have sent my changes to kounch, so hopefully the changes will make it into\r |
| 261 | version 1.2 or later.\r |
| 262 | - gp2x community - just plain rocks\r |
| 263 | \r |
| 264 | \r |