FCE Ultra port for GP2X
gpfce is a port of FCE Ultra,
an open-source, portable NES/Famicom emulator based on Bero's FCE source code.
This is an optimized port (includes asm CPU core),
what allows it to run many games fullspeed while underclocked. It is a nearly
full-featured port, which means that most features of the original are there.
There is support for a wide variety of in-cart expansion hardware ("mappers"),
the Famicom Disk System is emulated, several VS Unisystem games are supported well.
A NSF player is built in.
- Original base code of FCE Ultra by Xodnizel, Bero.
- Porting/optimization/integration/frontend for 0.3 and 0.4 by notaz.
- Versions 0.1 and 0.2 by zzhu8192
- asm CPU core from FCA and
Little John GP32.
- Minimal library by rlyeh.
- Additional low-level GP2X libs by Hermes/PS2Reality, theoddbot,
- All FCE Ultra contributors listed in
- ...and everyone whose name my mind has misplaced.
0.4 rev 313 latest
source code mirror
0.4 rev 171 download
- Improved open bus emulation, fixes missing ground in some SMB3 levels.
- Improved auto frameskip behavior in cases when emu is not fast enough to maintain 50/60 fps.
- Fixed a bug which prevented some key combo configurations from working.
- Some other minor changes.
0.4 rev 163 download
- Added optional "Accurate renderer", which is the original FCE Ultra
0.98.x renderer + PPU emulation code. It's much slower, but it can
handle games which need more precise PPU timing emulation (like
- Fixed saving and loading of game specific configs.
- Some other minor changes.
0.4 rev 162 download
- Added A r k's fast-direction-change fix for usbjoy lib.
- Fixed an issue of usbjoys stopping to work when "Perfect vsync" is enabled.
0.4 rev 153 download
- Fixed savestate subsections (were causing some mapper data not
to be saved).
- Fixed an issue of MapIRQHook getting lost after loading a savestate
(glitched Akumajou Densetsu and other games after savestate load).
- A bug, which prevented configuring multiple USB pads fixed.
- Fixed sound breaking bug after switching it on/off multiple times.
- Added "Perfect VSYNC" option, which changes GP2X refresh rate and
syncs emu timing to LCD vsync.
- Fixed IPS patch support.
- Lots of work on the asm core. Timing fixed for some instructions.
Some missing undocumented instruction handlers added. Lots of
tweaking to make it compatible with all that mapper code.
- Completely new PicoDrive style menu added with most standard
FCE Ultra and some additional options. Selector removed, ROM list
is now built-in and only limited by available memory.
- Merged in most of code from 0.98.1x versions. Only ppu/rendering
and sound emulation code left from 0.81 (which is less accurate
but much faster).
- Default palette changed to one from later versions.
- Fixed some alignment problems in MMC5 and some other mappers.
- Some generic optimizations and code cleanup/refactoring.
- The built-in NSF player fixed.
- Authentic GameGenie support fixed.
- FDS support fixed.
- VS Unisystem support fixed.
- Ingame saves fixed (not sure when they got broken).
- Increased maximum sound volume.
- Added Zapper emulation just for fun.
- Added partial FCM movie support.
- Fixed some memory leaks.
- Fixed a bug which caused USB connection from GP2X menu
to hang after using gpfce.
- Software scaler added.
- USB gamepad support added.
- TV out fixed.
- Documentation updated.
- Major improvement: added ARM asm CPU core from LJGP32,
which itself was adapted from FCA by Yoyofr.
The core required substantial changes to make it work in
- The emulator renders directly to frame buffer now (previously
it was drawing to offscreen buffer, which was then copied to
- Squidge's MMU hack added.
- Added sync() calls after savestate writes.
- Some additional tweaking here and there to get a few more FPS.
- Volume middle now can be used as shift to emulator functions
instead stick click (saving, stretching, etc.).
- Added frameskip selection with shift+A and shift+Y (shift is
stick click or volume middle).
- Probably some more changes I forgot about.
Changelog for zzhu8192's 0.1 and 0.2 versions is available
at his page.