0.4 rel?
authornotaz <notasas@gmail.com>
Sun, 3 Jun 2007 21:55:53 +0000 (21:55 +0000)
committernotaz <notasas@gmail.com>
Sun, 3 Jun 2007 21:55:53 +0000 (21:55 +0000)
git-svn-id: file:///home/notaz/opt/svn/fceu@153 be3aeb3a-fb24-0410-a615-afba39da0efa

15 files changed:
Makefile.gp2x
out_gp2x/background.png [new file with mode: 0644]
out_gp2x/fondo.png [deleted file]
out_gp2x/gpfce.gpe [deleted file]
out_gp2x/gpfce.man.txt [new file with mode: 0644]
out_gp2x/gpfce_config [deleted file]
out_gp2x/gpfce_showfps.gpe [deleted file]
out_gp2x/gpfce_showfps_config [deleted file]
out_gp2x/gpfce_showfps_swapbuttons.gpe [deleted file]
out_gp2x/gpfce_showfps_swapbuttons_config [deleted file]
out_gp2x/gpfce_swapbuttons.gpe [deleted file]
out_gp2x/gpfce_swapbuttons_config [deleted file]
out_gp2x/readme.txt
out_gp2x/readme_cheat.txt [deleted file]
out_gp2x/selector [deleted file]

index 5e044ae..eb80b17 100644 (file)
@@ -80,7 +80,8 @@ $(error need VER)
 endif
 endif
 
-rel: gpfce.gpe
+rel: gpfce.gpe out_gp2x/readme.txt out_gp2x/gpfce.man.txt out_gp2x/gpfce.png out_gp2x/background.png
        zip -9 -j gpfce_v$(VER).zip $^ drivers/gp2x/mmuhack.o
+       zip -9 gpfce_v$(VER).zip fceultra
 
 
diff --git a/out_gp2x/background.png b/out_gp2x/background.png
new file mode 100644 (file)
index 0000000..3445aa1
Binary files /dev/null and b/out_gp2x/background.png differ
diff --git a/out_gp2x/fondo.png b/out_gp2x/fondo.png
deleted file mode 100644 (file)
index f35c26e..0000000
Binary files a/out_gp2x/fondo.png and /dev/null differ
diff --git a/out_gp2x/gpfce.gpe b/out_gp2x/gpfce.gpe
deleted file mode 100644 (file)
index 8d1208f..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-./selector ./gpfce_config > ./gpfce.log
-sync
-
-cd /usr/gp2x/
-exec /usr/gp2x/gp2xmenu
diff --git a/out_gp2x/gpfce.man.txt b/out_gp2x/gpfce.man.txt
new file mode 100644 (file)
index 0000000..8f177f1
--- /dev/null
@@ -0,0 +1,141 @@
+[About]\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
+[Usage]\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, so you can put them anywhere. Rom files can be zipped.\r
+3)  The emulator will create a subdirectory in it's working directory called fceultra. Save states etc. go here. If you want to load saves from < 0.4 version, you should copy files from /mnt/sd/roms/nes/fceultra/fcs to <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
+[Controls]\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 gamepad emulation of course, plus it can emulate Zapper and the Arkanoid controller (the last two have hardcoded controls).\r
+\r
+B is the emulated trigger button for the Zapper. X is also emulated as the trigger, but as long as you have it pressed down, no color detection will take place, which is effectively like pulling the trigger while the Zapper is pointed away from the television screen. Note that you must press X for a short time to have the desired effect.\r
+\r
+For Zapper and the Arkanoid controller Y increases the movement speed, A decreases.\r
+\r
+\r
+[Palettes]\r
+gpfce has similar palette options as FCE Ultra, so here is modified excerpt from FCE Ultra manual:\r
+\r
+FCE Ultra has many palette features, including loading a custom palette to 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 to contain 64 8-bit RGB triplets(each in that order; red comes first in the triplet in the file, then green, then blue). Each 8-bit value represents 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 <where_you_put_gpfce>/fceultra/pal directory with the same base filename as the 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 be difficult. Here's a list of what palettes will be used, in order from highest priority to least priority(if a condition doesn't exist for a higher priority 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
+[Famicom Disk System]\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 configure keys for swapping the virtual FDS disks, they are configurable in Controls menu.\r
+\r
+Two types of FDS disk images are supported: disk images with the FWNES-style header, and disk images with no header. The number of sides on headerless disk images is calculated by the total file size, so don't put extraneous data at the end of the file.\r
+\r
+\r
+[VS Unisystem]\r
+gpfce currently only supports VS Unisystem ROM images in the iNES format. See 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
+[Cheats]\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 <where_you_put_gpfce>/fceultra. Use the FCE Ultra option menu or -gg on commandline to activate the game genie rom. The ROM image may either be the 24592 byte iNES-format image, or the 4352 byte raw ROM image.\r
+\r
+The .cht files fould be placed into <where_you_put_gpfce>/fceultra/cheats/ directory. They should have the same base filename as the game you wish to associate with 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 after you load the ROM. You can activate/deactivate cheats by pressing B. For description of .cht file format, see http://fceultra.sourceforge.net/cheat.php\r
+\r
+\r
+[FCM movies]\r
+Version 0.4 has partial FCM movie support. Most of the movies desync due to different timing, but some of them can be played. There is only playback support. Files should be placed in the ROMs directory along with the ROMs themselves. Naming is a bit different, the fcm files should have full ROM name in them, with additional .fcm extension added. Examples:\r
+\r
+  File name:              Palette file name:\r
+   BigBad.nes              BigBad.nes.fcm\r
+   BigBad.zip              BigBad.zip.fcm\r
+   BigBad.Better.nes       BigBad.Better.nes.fcm\r
+\r
+\r
+[Credits/thanks]\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
diff --git a/out_gp2x/gpfce_config b/out_gp2x/gpfce_config
deleted file mode 100644 (file)
index 69b6273..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#Selector configuration file
-#Version 1.0
-
-#selector-language english (and it doesn't work, crap)
-langCode=EN
-layoutCode=0
-
-#List of full paths of command line options
-cmdLine=./gpfce
-
-#skins
-skinPath=./
-
-#selectRectange
-selectRectangle=2
-scrollWrap=0
-
-#Full absolute path to base directory for file explorer
-baseDir=/mnt/sd/roms/nes/
-
-#File filters
-fileFilter=zip
-fileFilter=nes
-
-
diff --git a/out_gp2x/gpfce_showfps.gpe b/out_gp2x/gpfce_showfps.gpe
deleted file mode 100644 (file)
index 69a9be4..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-./selector ./gpfce_showfps_config > ./gpfce.log
-sync
-
-cd /usr/gp2x/
-exec /usr/gp2x/gp2xmenu
diff --git a/out_gp2x/gpfce_showfps_config b/out_gp2x/gpfce_showfps_config
deleted file mode 100644 (file)
index 4425747..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#Selector configuration file
-#Version 1.0
-
-#selector-language english (and it doesn't work, crap)
-langCode=EN
-layoutCode=0
-
-#List of full paths of command line options
-cmdLine=./gpfce -showfps
-
-#skins
-skinPath=./
-
-#selectRectange
-selectRectangle=2
-scrollWrap=0
-
-#Full absolute path to base directory for file explorer
-baseDir=/mnt/sd/roms/nes/
-
-#File filters
-fileFilter=zip
-fileFilter=nes
-
diff --git a/out_gp2x/gpfce_showfps_swapbuttons.gpe b/out_gp2x/gpfce_showfps_swapbuttons.gpe
deleted file mode 100644 (file)
index 91a4448..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-./selector ./gpfce_showfps_swapbuttons_config > ./gpfce.log
-sync
-
-cd /usr/gp2x/
-exec /usr/gp2x/gp2xmenu
diff --git a/out_gp2x/gpfce_showfps_swapbuttons_config b/out_gp2x/gpfce_showfps_swapbuttons_config
deleted file mode 100644 (file)
index 6f7a6a2..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#Selector configuration file
-#Version 1.0
-
-#selector-language english (and it doesn't work, crap)
-langCode=EN
-layoutCode=0
-
-#List of full paths of command line options
-cmdLine=./gpfce -swapbuttons -showfps 
-
-#skins
-skinPath=./
-
-#selectRectange
-selectRectangle=2
-scrollWrap=0
-
-#Full absolute path to base directory for file explorer
-baseDir=/mnt/sd/roms/nes/
-
-#File filters
-fileFilter=zip
-fileFilter=nes
-
diff --git a/out_gp2x/gpfce_swapbuttons.gpe b/out_gp2x/gpfce_swapbuttons.gpe
deleted file mode 100644 (file)
index 22265ba..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-./selector ./gpfce_swapbuttons_config > ./gpfce.log
-sync
-
-cd /usr/gp2x/
-exec /usr/gp2x/gp2xmenu
diff --git a/out_gp2x/gpfce_swapbuttons_config b/out_gp2x/gpfce_swapbuttons_config
deleted file mode 100644 (file)
index 93c5357..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#Selector configuration file
-#Version 1.0
-
-#selector-language english (and it doesn't work, crap)
-langCode=EN
-layoutCode=0
-
-#List of full paths of command line options
-cmdLine=./gpfce -swapbuttons
-
-#skins
-skinPath=./
-
-#selectRectange
-selectRectangle=2
-scrollWrap=0
-
-#Full absolute path to base directory for file explorer
-baseDir=/mnt/sd/roms/nes/
-
-#File filters
-fileFilter=zip
-fileFilter=nes
-
index 235eaec..cf1cbc3 100644 (file)
@@ -1,13 +1,6 @@
 =================================================================================\r
                      GPFCE - NES emulator for the GP2X\r
 =================================================================================\r
-                         Ported by:        zzhu8192\r
-                         Optimized by:     notaz\r
-                         Current version:  0.3\r
-                         Email:            zzhu8192@yahoo.com\r
-                         Web Site:         www.unicorn-jockey.com\r
-                         Web Site Admin:   Lil-kun\r
-=================================================================================\r
 \r
 \r
 This is a gp2x port of the **great** Open Source NES emulator FCE Ultra:\r
@@ -18,63 +11,163 @@ dedication of the FCE Ultra developers.
 In case you don't know what the NES is about, see:\r
 http://en.wikipedia.org/wiki/Famicom.\r
 \r
-My main reasons for working on this port is to get some game programming \r
-experience on smaller devices.  Although coding/porting an emu is \r
-generally not the same thing, it's still pretty cool.\r
-I'm an Enterprise Java software developer by trade, so this is a nice side project\r
-for me, and a welcome change of pace.  I'm also planning to write some \r
-original games in Java for the GP2x.  This should be interesting....  \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
-What's new\r
+ Controls\r
 ------------------------------------------------------------------\r
 \r
-Many usability features were added, thanks to some great input \r
-from developers and users on the gp32x.com board.  Some of the\r
-changes went into the selector frontend.\r
+Since v0.4 controls are configurable. Default controls are:\r
 \r
-(I have sent my selector customization changes to kounch, \r
- so hopefully the changes will make it into\r
- version 1.2 or later for other projects to use)\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
-There are now 4 executable scripts.\r
-gpfce\r
-gpfce_showfps\r
-gpfce_swapbuttons\r
-gpfce_showfps_swapbuttons\r
+L & JOY   - Save state\r
+R & JOY   - Load State\r
 \r
-showfps:  this means FPS is displayed on the upper left of the screen\r
-          (in non-stretch mode only).   \r
+Note: JOY means press in on the joystick (i.e. not up/down/left/right)\r
 \r
-swapbuttons:  this means instead of Y/A as NES_B  and B/X as NES_A\r
-              use  A/X as NES_B, and Y/B as NES_A.  (think NES MAX)\r
-              \r
-Volume meter is now shown on the OSD when adjusted.\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
-See version history below for more details.\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
-Depending on feedback, speed and even more compability will \r
-probably be the major focus going forward.\r
+For Zapper and the Arkanoid controller Y increases the movement speed,\r
+A decreases.\r
 \r
 \r
 ------------------------------------------------------------------\r
-Current Features\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
-- .zip file support\r
-- 22050 Hz Mono Sound support with volume control support\r
-- OSD Volume bar\r
-- Load/Save state (up to 10 slots, pick by holding down R)\r
-- Hardware stretch (See controls)\r
-- Soft Reset\r
-- Savegame support\r
-- 60 FPS without frame skipping on many games\r
-- Configurable Turbo Fire (hold L to toggle)\r
-- Game genie/Cheat code (functionality already exists in FCEU 0.81)\r
-- Sorted display of 2048 roms per subdirectory (recommended 512-1024)?\r
-- Semi-Configurable button layout (startup only)\r
-- configurable FPS display on upper left hand side\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 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
+ 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. There is only playback support.\r
+Files should be placed in the ROMs directory along with the ROMs themselves.\r
+Naming is a bit different, the fcm files should have full ROM name in them,\r
+with additional .fcm extension added. Examples:\r
+\r
+                File name:              Palette file name:\r
+                 BigBad.nes              BigBad.nes.fcm\r
+                 BigBad.zip              BigBad.zip.fcm\r
+                 BigBad.Better.nes       BigBad.Better.nes.fcm\r
+\r
 \r
 --------------------------------------------------------------------\r
  Version History\r
@@ -83,8 +176,33 @@ Current Features
 \r
 ver 0.4 (by notaz)\r
 \r
-          - Compatibility fixes for the asm core.\r
-          - Fixed an anligment problem in MMC5 mapper.\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
@@ -127,7 +245,6 @@ ver 0.2   5/29/2006  MD5SUM: dd75fa3f090f9298f9f4afff01ab96f2 *gpfce
 \r
 \r
 ver 0.1   5/23/2006  MD5SUM: 13681f25713ad04c535c23f8c61f1e0b *gpfce\r
-      \r
 \r
           - Initial version\r
           - Around 60 fps with sound\r
@@ -141,118 +258,27 @@ ver 0.1   5/23/2006  MD5SUM: 13681f25713ad04c535c23f8c61f1e0b *gpfce
             from filling up the gp2x space by accident\r
 \r
 \r
+      \r
 ------------------------------------------------------------------\r
-Usage\r
-------------------------------------------------------------------\r
-1)  Untar the emulator tarball onto some directory on your SD card.\r
-2)  You must have a directory called /roms/nes on your SD card.\r
-    Put the roms in there, i.e. /mnt/sd/roms/nes is the gp2x path.\r
-    Rom files can be zipped.\r
-3)  The emulator will create a subdirectory under roms  \r
-    /roms/nes/fceultra.  Save states etc. go here.\r
-4)  To start a different rom while running one, hit L+R+JOY.\r
-    To exit the file selection menu, press start.\r
-5)  For FDS support, put disksys.rom in /mnt/sd/roms/nes/fceultra\r
-    Note: FDS roms must not be zipped.\r
-6)  For GameGenie support, put gg.rom in /mnt/sd/roms/nes/fceultra\r
-\r
-------------------------------------------------------------------\r
-Cheats\r
-------------------------------------------------------------------\r
-\r
-gpfce uses the cheat mechanisms already provided by\r
-http://mednafen.com/documentation/cheat.html  Note this feature\r
-is untested on gpfce as of version 0.2\r
-\r
-To use game genie, place appropraite gg.rom into /mnt/sd/roms/nes/fceultra.\r
-Use -gg on commandline to activate the game genie rom.\r
-\r
-\r
-------------------------------------------------------------------\r
-Controls\r
+ Credits/thanks\r
 ------------------------------------------------------------------\r
 \r
-Note: JOY means press in on the joystick (i.e. not up/down/left/right)\r
-\r
-\r
-In file selector mode\r
-(This is based on selector version 1.1)\r
-----------------------------------------------\r
-Start        - EXIT file selector, back to main menu.\r
-B,A,X,Y, JOY - start rom\r
-L            - page up\r
-R            - page down\r
-UP           - scroll up one, wraps if at top\r
-DOWN         - scroll down one, wraps if at bottom\r
-LEFT         - jump up list by first letter of rom name\r
-RIGHT        - jump down list by first letter of rom name\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
-In game\r
-------------------------\r
-Y         - NES B\r
-A         - NES B\r
-B         - NES A\r
-X         - NES A\r
-SELECT    - NES SELECT\r
-START     - NES START\r
-VOL +/-   - Vol control.  \r
-\r
-hold L    - toggles between  \r
-            No Turbo Fire, \r
-            Upper row of buttons turbo fire\r
-            Lower row of buttons turbo fire  \r
-             \r
-hold R    - cycles through save state slots\r
-\r
-L & JOY   - Save state\r
-R & JOY   - Load State\r
-SEL & JOY - Stretch screen toggle\r
-L & R     - Reset NES\r
-\r
-L + R + JOY - Exit back to menu\r
-\r
-\r
-FDS only\r
--------------------------------\r
-L         - insert disk\r
-R         - eject disk\r
-JOY       - select disk\r
-\r
-\r
-\r
-------------------------------------------------------------------\r
-Known issues\r
-------------------------------------------------------------------\r
-1)  Stretch mode could use a better aspect ratio.  Looks a bit odd.\r
-    Might look into some fancy non-2x filtering algorthms, if there are such things.\r
-2)  Not thoroughly QA'd\r
-3)  S-Video not working\r
-4)  FDS does not seem to be working\r
-5)  Some compatibility issues\r
-6)  Can't sustain 60fps on some games\r
-7)  Some clipping issues in some games\r
-8)  Game genie behaves a bit odd, although code works...\r
-\r
-------------------------------------------------------------------\r
- Might have time to do list\r
-------------------------------------------------------------------\r
-1) Fix more known issues\r
-2) Better looking stretch?\r
-3) File based Game genie support\r
-4) Cleaner build\r
-5) Full speed on all games.  (This may require some work)\r
-6) Better compability\r
-7) Multiplayer support via cable - this one is obviously pretty\r
-   tricky.  Will need cables and a usb hub first.\r
-   It's definitely possible, but is not a priority at this point.    \r
-\r
-       \r
-------------------------------------------------------------------\r
- Many thanks\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
diff --git a/out_gp2x/readme_cheat.txt b/out_gp2x/readme_cheat.txt
deleted file mode 100644 (file)
index 9d74a5d..0000000
+++ /dev/null
@@ -1,283 +0,0 @@
-\r
-\r
-  FCE Ultra Cheat Guide\r
-\r
-***** This file was obtained from *****\r
-http://mednafen.com/documentation/cheat.html\r
-\r
-\r
-/Last updated November 12, 2003\r
-Valid as of FCE Ultra 0.97.4/\r
-\r
-*Table of Contents:*\r
-\r
-    * Introduction <#intro>\r
-          o Cheat Files <#cheatfiles> \r
-    * The Windows Interface <#windows>\r
-          o Cheat Search Interface <#windows-search> \r
-    * The Text Interface(TODO)\r
-    * Examples <#examples>\r
-          o "Mega Man 3" Windows Example <#examples-mm3>\r
-          o "Over Horizon" Text Interface Example <#examples-oh> \r
-    * Tips <#tips> \r
-\r
-------------------------------------------------------------------------\r
-\r
-\r
-    Introduction\r
-\r
-FCE Ultra allows cheating by the periodic "patching" of arbitrary\r
-addresses in the 6502's memory space with arbitrary values, as well as\r
-read substitution. "Read substitution" is the method that would be used\r
-on a real NES/Famicom, such as done by the Game Genie and Pro Action\r
-Replay. It is required to support GG and PAR codes, but since it is\r
-relatively slow when done in emulation, it is not the preferred method\r
-when a RAM patch will suffice. Also, in FCE Ultra, read substitution\r
-will not work properly with zero-page addressing modes(instructions that\r
-operate on RAM at $0000 through $00FF).\r
-\r
-The RAM patches are all applied a short time before the emulated\r
-vertical blanking period. This detail shouldn't concern most people,\r
-though. However, this does mean that cheating with games that use\r
-bank-switched RAM may be problematic. Fortunately, such games are not\r
-very common(in relation to the total number of NES and Famicom games).\r
-\r
-\r
-      Cheat Files\r
-\r
-Cheats are stored in the "cheats" subdirectory under the base FCE Ultra\r
-directory. The files are in a simple plain-text format. Each line\r
-represents a one-byte memory patch. The format is as follows(text in\r
-brackets [] represents optional parameters):\r
-\r
-    [S][C][:]Address(hex):Value(hex):[Compare value:]Description \r
-\r
-Example:\r
-\r
-    040e:05:Infinite super power.\r
-\r
-A colon(:) near the beginning of the line is used to disable the cheat.\r
-"S" denotes a cheat that is a read-substitute-style cheat(such as with\r
-Game Genie cheats), and a "C" denotes that the cheat has a compare value.\r
-\r
-------------------------------------------------------------------------\r
-\r
-\r
-    The Windows Interface\r
-\r
-All addresses listed in the cheats window are in unsigned 16-bit\r
-hexadecimal format and all values in these windows are in an unsigned\r
-8-bit decimal format(the range for values is 0 through 255).\r
-\r
-The cheats window contains the list of cheats for the currently loaded\r
-game on the right side. Existing cheats can be selected, edited, and\r
-updated using the "Update" button.\r
-\r
-\r
-      Cheat Search Interface\r
-\r
-The cheat search interface consists of several components: a list of\r
-addresses and associated data for a search, several command buttons, and\r
-the search parameters.\r
-\r
-Each entry in the list is in the format of:\r
-\r
-    Address:Original Value:Current Value\r
-\r
-The address is the location in the 6502's address space, the original\r
-value is the value that was stored at this address when the search was\r
-reset, and the current value is the value that is currently stored at\r
-that address. Selecting an item in this list will automatically cause\r
-the "Address" field in the cheat information box on the right side of\r
-the window to be updated with the selected address.\r
-\r
-The "Reset Search" button resets the search process; all valid addresses\r
-are displayed in the cheat list and the data values at those addresses\r
-noted.\r
-\r
-The "Do Search" buttons performs a search based on the search parameters\r
-and removes any non-matching addresses from the address list.\r
-\r
-The "Set Original to Current" button sets the remembered original values\r
-to the current values. It is like the "Reset Search" button, but it does\r
-not affect which addresses are shown in the address list. This command\r
-is especially useful when used in conjunction with the "O!=C" search\r
-filter.\r
-\r
-The "Unhide Excluded" button shows all addresses that are excluded as a\r
-result of any previous searches. It is like the "Reset Search" button\r
-except that it does not affect the remembered original values.\r
-\r
-The numbers assigned the names "V1" and "V2" have different meanings\r
-based on which filter is selected. A list of the names of the filters\r
-and detailed information on what they do follows("original value"\r
-corresponds to the value remembered for a given addres and "current\r
-value" is the value currently at that address. Also, if a value is not\r
-explicitly said to be shown under a certain condition, then it is\r
-obviously excluded.):\r
-\r
-"O==V1 && C==V2":\r
-\r
-    Show the address if the original value is equal to "V1" AND the\r
-    current value is equal to "V2". \r
-\r
-"O==V1 && |O-C|==V2":\r
-\r
-    Show the address if the original value is equal to "V1" AND the\r
-    difference between the current value and the original value is equal\r
-    to "V2". \r
-\r
-"|O-C|==V2":\r
-\r
-    Show the address if the difference between the current value and the\r
-    original value is equal to "V2". \r
-\r
-"O!=C":\r
-\r
-    Show the address if the original value does not equal the current\r
-    value. \r
-\r
-The following cheat methods/filters automatically perform the function\r
-of the "Set Original to Current" button after "Do Search" is pressed.\r
-\r
-"Value decreased."\r
-\r
-    Show the address if the value has decreased. \r
-\r
-"Value increased."\r
-\r
-    Show the address if the value has increased. \r
-\r
-------------------------------------------------------------------------\r
-\r
-\r
-    Examples\r
-\r
-\r
-      "Mega Man 3" Windows Example\r
-\r
-This example will give Mega Man unlimited energy. Immediately after\r
-entering the Top Man stage, make your way to the "Add Cheat" window.\r
-Push "Reset Search". Go back to playing and move right until the first\r
-enemy appears. Allow yourself to be hit twice. Each hit does "2" damage,\r
-so you've lost 4 energy bars. Go to the "Add Cheat" window again and\r
-select the third filter ("|O-C|==V2") and enter the value 4 next to\r
-"V2". Then push "Do Search".\r
-\r
-Several addresses will appear in the address list. You can try to find\r
-the address you want through trial and error, or you can narrow the\r
-results down further. We will do the latter.\r
-\r
-Go back to playing MM3 and get hit one more time and make your way back\r
-to the "Add Cheat" window. Your damage is now "6". You can probably see\r
-which address that contains your life(it is 00A2). If not, change V2 to\r
-6 and push "Do Search" again. This should leave only 00A2.\r
-\r
-Select that entry in the address list. Shift your attention to the "Add\r
-Cheat" box to the right. Type in a meaningful name and the desired\r
-value(156; it was the value when you had no damage, so it's safe to\r
-assume it's the maximum value you can use). Push the "Add" button and a\r
-new entry will appear in the cheats list. The cheat has been added.\r
-\r
-\r
-      "Over Horizon" Text Interface Example\r
-\r
-This example will give you infinite lives in the NTSC(Japanese) version\r
-of "Over Horizon".\r
-\r
-Start a new game. Notice that when you press "Start" during gameplay,\r
-the number of lives you have left is indicated. With no cheating, you\r
-start with 3 lives(2 lives left).\r
-\r
-Activate the cheat interface immediately after starting a new game.\r
-Select the "New Cheats" menu and "Reset Search".\r
-\r
-I'll assume that the number of lives left shown in the game is the same\r
-number that's stored in RAM. Now, "Do Search". You're going to use the\r
-first search filter. For V1, enter the value 2. For V2, enter the same\r
-value. This, coupled with the fact that you just reset the search, will\r
-allow you to search for a value "absolutely"(as opposed to changes in\r
-the value).\r
-\r
-Now, "Show Results". When I did it, I received 11 results:\r
-\r
-        1) $0000:002:002\r
-        2) $001c:002:002\r
-        3) $001e:002:002\r
-        4) $009d:002:002\r
-        5) $00b9:002:002\r
-        6) $00e3:002:002\r
-        7) $0405:002:002\r
-        8) $0406:002:002\r
-        9) $0695:002:002\r
-       10) $07d5:002:002       \r
-       11) $07f8:002:002\r
-\r
-You really can't do much yet(unless you want to spend time doing trial\r
-and error cheat additions). Return to the game.\r
-\r
-After losing a life, go back to the cheat interface, to the "New Cheats"\r
-menu, and "Show Results". Here are my results:\r
-\r
-        1) $0000:002:002\r
-        2) $001c:002:002\r
-        3) $001e:002:002\r
-        4) $009d:002:002\r
-        5) $00b9:002:041\r
-        6) $00e3:002:002\r
-        7) $0405:002:001\r
-        8) $0406:002:002\r
-        9) $0695:002:002\r
-       10) $07d5:002:001\r
-       11) $07f8:002:002\r
-\r
-Notice that two addresses seem to hold the number of lives($0405 and\r
-$07d5). You can lose another life and go "Show Results" again, and you\r
-should see that $07d5 is the address that holds the number of lives.\r
-\r
-Now that you know the address that holds the number of lives, you can\r
-add a cheat. You can either type in the number from the cheat results\r
-list corresponding to the address you want to add a cheat for, or you\r
-can remember the address and select "Add Cheat" from the "New Cheats"\r
-menu. Do the former.\r
-\r
-Now you will need to enter a name for the cheat. I suggest something\r
-short, but descriptive. "Infinite lives" will work fine. Next, a prompt\r
-for the address will show up. Since you selected an item from the list,\r
-you can press enter to use the associated address($07d5). Next, you will\r
-need to enter a value. It doesn't need to be large(in fact, it probably\r
-shouldn't be; abnormally high numbers can cause some games to\r
-misbehave). I suggest a value of 2. After this, you should get a prompt\r
-that looks like this:\r
-\r
-   Add cheat "Infinite lives" for address $07d5 with value 002?(Y/N)[N]:\r
-\r
-Answer "Y". You now have infinite lives.\r
-\r
-------------------------------------------------------------------------\r
-\r
-\r
-    Tips\r
-\r
-Games store player information in many different ways. For example, if\r
-you have "3" lives in Super Wacky Dodgeball 1989, the game might store\r
-it in memory as 2, 3, or 4, or perhaps a different number all together.\r
-Also, say that you have 69 life points out of 200 in Mole Mashers. The\r
-game might store how many life points you have, or how much damage you\r
-have taken. Relative value searches are very valuable because you\r
-probably don't know the way that the game stores its player data.\r
-\r
-Some games, especially RPGs, deal with individual numbers greater than\r
-8-bits in size. Most that I've seen seem to store the multiple-byte data\r
-least significant byte(lower byte of number) first in memory, though\r
-conceivably, it could be stored most significant byte first, or the\r
-component bytes of the number could be non-contiguous, though the latter\r
-is very unlikely. For example, say I have 5304 experience points in\r
-Boring Quest for the Overused Plot Device. To split the number into two\r
-eight bit decimal numbers, take 5304 %(modulus) 256. This will give a\r
-number that is the lower 8 bits. Next, take 5304 / 256. The integral\r
-component of your answer will be the upper 8 bits(or the next 8 bits, if\r
-the number is or can be larger than 16 bits) of 5304. Now you will need\r
-to search for these numbers. Fortunately, most(all?) RPGs seem to store\r
-large numbers exactly as they are shown in the game.\r
-\r
diff --git a/out_gp2x/selector b/out_gp2x/selector
deleted file mode 100644 (file)
index 187e41e..0000000
Binary files a/out_gp2x/selector and /dev/null differ