aa2dba92 |
1 | =================================================================================\r |
2 | GPFCE - NES emulator for the GP2X\r |
3 | =================================================================================\r |
4 | Ported by: zzhu8192\r |
4e1934c1 |
5 | Optimized by: notaz\r |
6 | Current version: 0.3\r |
aa2dba92 |
7 | Email: zzhu8192@yahoo.com\r |
8 | Web Site: www.unicorn-jockey.com\r |
9 | Web Site Admin: Lil-kun\r |
10 | =================================================================================\r |
11 | \r |
12 | \r |
13 | This is a gp2x port of the **great** Open Source NES emulator FCE Ultra:\r |
14 | http://fceultra.sourceforge.net. If you enjoyed using this emulator, please\r |
15 | keep in mind that this would not have been possible without the hard work and\r |
16 | dedication of the FCE Ultra developers.\r |
17 | \r |
18 | In case you don't know what the NES is about, see:\r |
19 | http://en.wikipedia.org/wiki/Famicom.\r |
20 | \r |
21 | My main reasons for working on this port is to get some game programming \r |
22 | experience on smaller devices. Although coding/porting an emu is \r |
23 | generally not the same thing, it's still pretty cool.\r |
24 | I'm an Enterprise Java software developer by trade, so this is a nice side project\r |
25 | for me, and a welcome change of pace. I'm also planning to write some \r |
26 | original games in Java for the GP2x. This should be interesting.... \r |
27 | \r |
28 | \r |
29 | ------------------------------------------------------------------\r |
30 | What's new\r |
31 | ------------------------------------------------------------------\r |
aa2dba92 |
32 | \r |
33 | Many usability features were added, thanks to some great input \r |
34 | from developers and users on the gp32x.com board. Some of the\r |
35 | changes went into the selector frontend.\r |
36 | \r |
37 | (I have sent my selector customization changes to kounch, \r |
38 | so hopefully the changes will make it into\r |
39 | version 1.2 or later for other projects to use)\r |
40 | \r |
41 | There are now 4 executable scripts.\r |
42 | gpfce\r |
43 | gpfce_showfps\r |
44 | gpfce_swapbuttons\r |
45 | gpfce_showfps_swapbuttons\r |
46 | \r |
47 | showfps: this means FPS is displayed on the upper left of the screen\r |
48 | (in non-stretch mode only). \r |
49 | \r |
50 | swapbuttons: this means instead of Y/A as NES_B and B/X as NES_A\r |
51 | use A/X as NES_B, and Y/B as NES_A. (think NES MAX)\r |
52 | \r |
53 | Volume meter is now shown on the OSD when adjusted.\r |
54 | \r |
55 | \r |
56 | See version history below for more details.\r |
57 | \r |
58 | Depending on feedback, speed and even more compability will \r |
59 | probably be the major focus going forward.\r |
60 | \r |
61 | \r |
62 | ------------------------------------------------------------------\r |
63 | Current Features\r |
64 | ------------------------------------------------------------------\r |
65 | - .zip file support\r |
66 | - 22050 Hz Mono Sound support with volume control support\r |
67 | - OSD Volume bar\r |
68 | - Load/Save state (up to 10 slots, pick by holding down R)\r |
69 | - Hardware stretch (See controls)\r |
70 | - Soft Reset\r |
71 | - Savegame support\r |
72 | - 60 FPS without frame skipping on many games\r |
73 | - Configurable Turbo Fire (hold L to toggle)\r |
74 | - Game genie/Cheat code (functionality already exists in FCEU 0.81)\r |
75 | - Sorted display of 2048 roms per subdirectory (recommended 512-1024)?\r |
76 | - Semi-Configurable button layout (startup only)\r |
77 | - configurable FPS display on upper left hand side\r |
78 | \r |
79 | --------------------------------------------------------------------\r |
80 | Version History\r |
81 | --------------------------------------------------------------------\r |
82 | \r |
83 | \r |
c0bf6f9f |
84 | ver 0.4 (by notaz)\r |
85 | \r |
86 | - Compatibility fixes for the asm core.\r |
87 | - Fixed an anligment problem in MMC5 mapper.\r |
88 | \r |
89 | \r |
4e1934c1 |
90 | ver 0.3 (by notaz)\r |
91 | \r |
92 | - Major improvement: added ARM asm CPU core from LJGP32,\r |
93 | which itself was adapted from FCA by Yoyofr.\r |
94 | The core required substantial changes to make it work in\r |
95 | FCE ultra.\r |
96 | - The emulator renders directly to frame buffer now (previously\r |
97 | it was drawing to offscreen buffer, which was then copied to\r |
98 | framebuffer).\r |
99 | - Squidge's MMU hack added.\r |
100 | - Added sync() calls after savestate writes.\r |
101 | - Some additional tweaking here and there to get a few more FPS.\r |
102 | - Volume middle now can be used as shift to emulator functions\r |
103 | instead stick click (saving, stretching, etc.).\r |
104 | - Added frameskip selection with shift+A and shift+Y (shift is\r |
105 | stick click or volume middle).\r |
106 | - Probably some more changes I forgot about.\r |
107 | \r |
108 | \r |
109 | \r |
aa2dba92 |
110 | ver 0.2 5/29/2006 MD5SUM: dd75fa3f090f9298f9f4afff01ab96f2 *gpfce\r |
111 | \r |
112 | - Sound output issue with stereo fixed, now using\r |
113 | 22050 khz 16-bit mono. I've tried interpolating to \r |
114 | 44khz mono, but the results seemed similar.\r |
115 | - selector supports up to 2048 files, sorted, with\r |
116 | alpha scrolling via left/right in addition to \r |
117 | page up/down via L/R.\r |
118 | - additional startup scripts to select button and fps \r |
119 | configurations\r |
120 | - can load FDS files, but does not seem to work yet\r |
121 | - configurable buttons (use swapbuttons version )\r |
122 | - configurable fps (use showfps version)\r |
123 | - Configurable turbo fire control\r |
124 | - Selectable save slots from 0-9\r |
125 | - Volume bar\r |
126 | - compiled with GCC 4.1.0 -O3 with profiling\r |
127 | \r |
128 | \r |
129 | ver 0.1 5/23/2006 MD5SUM: 13681f25713ad04c535c23f8c61f1e0b *gpfce\r |
130 | \r |
131 | \r |
132 | - Initial version\r |
133 | - Around 60 fps with sound\r |
134 | - Load/Save State\r |
135 | - Hardware Stretch\r |
136 | - Soft reset support\r |
137 | - No GUI, using selector with config\r |
138 | - Hard coded 22050 audio, 16-bit, stereo\r |
139 | - compiled with GCC 4.1.0 -O3 with profiling\r |
140 | - Hard coded config path. This is to prevent users\r |
141 | from filling up the gp2x space by accident\r |
142 | \r |
143 | \r |
144 | ------------------------------------------------------------------\r |
145 | Usage\r |
146 | ------------------------------------------------------------------\r |
147 | 1) Untar the emulator tarball onto some directory on your SD card.\r |
148 | 2) You must have a directory called /roms/nes on your SD card.\r |
149 | Put the roms in there, i.e. /mnt/sd/roms/nes is the gp2x path.\r |
150 | Rom files can be zipped.\r |
151 | 3) The emulator will create a subdirectory under roms \r |
152 | /roms/nes/fceultra. Save states etc. go here.\r |
153 | 4) To start a different rom while running one, hit L+R+JOY.\r |
154 | To exit the file selection menu, press start.\r |
155 | 5) For FDS support, put disksys.rom in /mnt/sd/roms/nes/fceultra\r |
156 | Note: FDS roms must not be zipped.\r |
157 | 6) For GameGenie support, put gg.rom in /mnt/sd/roms/nes/fceultra\r |
158 | \r |
159 | ------------------------------------------------------------------\r |
160 | Cheats\r |
161 | ------------------------------------------------------------------\r |
162 | \r |
163 | gpfce uses the cheat mechanisms already provided by\r |
164 | http://mednafen.com/documentation/cheat.html Note this feature\r |
165 | is untested on gpfce as of version 0.2\r |
166 | \r |
167 | To use game genie, place appropraite gg.rom into /mnt/sd/roms/nes/fceultra.\r |
168 | Use -gg on commandline to activate the game genie rom.\r |
169 | \r |
170 | \r |
171 | ------------------------------------------------------------------\r |
172 | Controls\r |
173 | ------------------------------------------------------------------\r |
174 | \r |
175 | Note: JOY means press in on the joystick (i.e. not up/down/left/right)\r |
176 | \r |
177 | \r |
178 | In file selector mode\r |
179 | (This is based on selector version 1.1)\r |
180 | ----------------------------------------------\r |
181 | Start - EXIT file selector, back to main menu.\r |
182 | B,A,X,Y, JOY - start rom\r |
183 | L - page up\r |
184 | R - page down\r |
185 | UP - scroll up one, wraps if at top\r |
186 | DOWN - scroll down one, wraps if at bottom\r |
187 | LEFT - jump up list by first letter of rom name\r |
188 | RIGHT - jump down list by first letter of rom name\r |
189 | \r |
190 | \r |
191 | \r |
192 | \r |
193 | In game\r |
194 | ------------------------\r |
195 | Y - NES B\r |
196 | A - NES B\r |
197 | B - NES A\r |
198 | X - NES A\r |
199 | SELECT - NES SELECT\r |
200 | START - NES START\r |
201 | VOL +/- - Vol control. \r |
202 | \r |
203 | hold L - toggles between \r |
204 | No Turbo Fire, \r |
205 | Upper row of buttons turbo fire\r |
206 | Lower row of buttons turbo fire \r |
207 | \r |
208 | hold R - cycles through save state slots\r |
209 | \r |
210 | L & JOY - Save state\r |
211 | R & JOY - Load State\r |
212 | SEL & JOY - Stretch screen toggle\r |
213 | L & R - Reset NES\r |
214 | \r |
215 | L + R + JOY - Exit back to menu\r |
216 | \r |
217 | \r |
218 | FDS only\r |
219 | -------------------------------\r |
220 | L - insert disk\r |
221 | R - eject disk\r |
222 | JOY - select disk\r |
223 | \r |
224 | \r |
225 | \r |
226 | ------------------------------------------------------------------\r |
227 | Known issues\r |
228 | ------------------------------------------------------------------\r |
229 | 1) Stretch mode could use a better aspect ratio. Looks a bit odd.\r |
230 | Might look into some fancy non-2x filtering algorthms, if there are such things.\r |
231 | 2) Not thoroughly QA'd\r |
232 | 3) S-Video not working\r |
233 | 4) FDS does not seem to be working\r |
234 | 5) Some compatibility issues\r |
235 | 6) Can't sustain 60fps on some games\r |
236 | 7) Some clipping issues in some games\r |
237 | 8) Game genie behaves a bit odd, although code works...\r |
238 | \r |
239 | ------------------------------------------------------------------\r |
240 | Might have time to do list\r |
241 | ------------------------------------------------------------------\r |
242 | 1) Fix more known issues\r |
243 | 2) Better looking stretch?\r |
244 | 3) File based Game genie support\r |
245 | 4) Cleaner build\r |
246 | 5) Full speed on all games. (This may require some work)\r |
247 | 6) Better compability\r |
248 | 7) Multiplayer support via cable - this one is obviously pretty\r |
249 | tricky. Will need cables and a usb hub first.\r |
250 | It's definitely possible, but is not a priority at this point. \r |
251 | \r |
252 | \r |
253 | ------------------------------------------------------------------\r |
254 | Many thanks\r |
255 | ------------------------------------------------------------------\r |
256 | - To lots of talented developers on the http://www.gp32x.com/board/\r |
257 | Reesy, Squidge, etc. for responding to my technical questions.\r |
258 | - Thanks to \r |
259 | - Lil-kun - for the neat GPFCE logo and the Web Site (under construction) :D\r |
260 | - Referenced source code from MameGP2X (Franxis) and FCEU-0.3 gp2x (Noname)\r |
261 | - Awesome wiki: http://wiki.gp2x.org/wiki/Main_Page\r |
262 | - Awesome gp2x site: http://www.gp32x.com/\r |
263 | - ryleh's minimal lib - w/o which this wouldn't have worked\r |
264 | - FCE Ultra developers (http://fceultra.sourceforge.net/) \r |
265 | for the wonderful and feature rich NES emulator.\r |
266 | - kounch for Selector frontend - works great for lazy developers like me. :-D\r |
267 | I have sent my changes to kounch, so hopefully the changes will make it into\r |
268 | version 1.2 or later.\r |
269 | - gp2x community - just plain rocks\r |
270 | \r |
271 | \r |