2 PCSX-ReARMed - yet another PCSX fork, ARM special
4 http://notaz.gp2x.de/pcsx_rearmed.php
10 PCSX ReARMed is yet another PCSX fork based on the PCSX-Reloaded project,
11 which itself contains code from PCSX, PCSX-df and PCSX-Revolution. This
12 version is ARM architecture oriented and features MIPS->ARM recompiler by
13 Ari64, NEON GTE code and more performance improvements. It was created for
14 Pandora handheld, but should be usable on other devices after some code
15 adjustments (N900, GPH Wiz/Caanoo, PlayBook versions are also available).
17 PCSX ReARMed features ARM NEON GPU by Exophase, that in many cases produces
18 pixel perfect graphics at very high performance. There is also Una-i's GPU
19 plugin from PCSX4ALL project, and traditional P.E.Op.S. one.
25 For libretro build, just doing "make -f Makefile.libretro" is recommended as
26 it's the way libretro team is building the core and only Makefile.libretro is
29 For standalone build, './configure && make' should work for the most part.
31 When compiling for ARM, it's advisable to tell configure script the CPU, FPU
32 and ABI that matches your target system to get best performance, like this:
34 CFLAGS='-mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp' ./configure
36 Cross compilation should also work if kernel-style CROSS_COMPILE variable
38 CROSS_COMPILE='arm-none-linux-gnueabi-' ./configure
44 There are several different frontends that can be built from source (one
45 generic and several platform specific), so usage slightly differs depending
46 on that. Most of them have a menu that can be used to run games and configure
49 Supported CD image formats:
56 - .ZNX/.ZNX.table (partial)
57 - EBOOT.PBP (PSP, partial)
60 CDDA (CD audio) only supported when .cue/.toc/.ccd/.mds files are present.
61 There is support for redump.org .sbi files, which can be used instead of
62 .sub files to save space (name it the same as .cue/.bin, just use .sbi
63 extension). This is required for Libcrypt copy protected game support.
65 The emulator can simulate BIOS, which means BIOS files are not required,
66 however implementation is not complete and some games still need real BIOS
67 to work. To use real BIOS, copy uncompressed BIOS files to bios/ directory
68 which itself should be in main emulator directory.
70 For pandora, it should be:
71 [sd card]/pandora/appdata/pcsx_rearmed/bios/
73 When the file is copied, BIOS should be selected in Options->BIOS/Plugins menu.
75 On pandora, analog controllers are supported using nubs, but this is
76 disabled by default and needs to be enabled in 'Controls' menu.
77 There is also touchscreen based GunCon support, which also requires
78 appropriate controller selected in controls configuration.
84 GPU (graphics) and SPU (sound) plugins can be selected in
87 builtin_gpu - this is either Exophase's ARM NEON GPU (accurate and fast,
88 available if platform supports NEON, like on pandora),
89 gpu_peops or gpu_unai (depends on compile options).
90 gpu_peops.so - P.E.Op.S. soft GPU, reasonably accurate but slow
91 (also found with older emulators on PC)
92 gpu_unai_old.so- Unai's plugin from PCSX4ALL project. Faster than P.E.Op.S.
93 but has some glitches (old version).
94 gpu_gles.so - experimental port of P.E.Op.S. MesaGL plugin to OpenGL ES.
95 Occasionally faster but has lots of glitches and seems to
96 be rather unstable (may crash the driver/system).
97 builtin_spu - P.E.Op.S. SPU plugin, optimized for ARM.
98 spunull.so - NULL plugin, i.e. no sound emulation.
99 May cause compatibility problems.
105 PCSX and cwcheat cheat formats are supported. PCSX .cht file can be loaded from
106 "extra stuff" menu after game is loaded, while cwcheat cheats are automatically
107 loaded from cheatpops.db file, if one is present in emulator's directory and
108 has any cheats for the loaded game in it.
109 If any of those files are successfully loaded, 'cheats' option will appear in
110 the main menu where it is possible to enable/disable individual cheats.
117 * many fixes from various contributors on github and from the libretro fork
118 * dynarec related slowdowns have been greatly reduced
119 * many dynarec bug fixes
120 + added chd disk image support
123 * general: fixed a race condition/crash in threaded SPU mode
124 * pandora: C64x: fixed compatibility with newer c64_tools, enabled L2 cache
125 * frontend: fixed control config corruption on load for devices that are
126 disconnected on startup
127 * some dma accuracy improvements, might fix occasional glitches in ff7
128 * ARMv6 build and the dynarec now make use of available instructions (gizmo98)
131 + general: added ability to run SPU emulation on a separate thread, enabled it
132 by default when multicore CPU is detected. Significant effort was made to
133 avoid any compatibility problems which the old P.E.Op.S. implementation had.
134 + pandora: added ability to run SPU emulation on TI C64x DSP by using bsp's
136 * libretro: fixed win32 build (mingw only)
137 * some tweaks for the scanline effect and other things
140 * fixed various sound accuracy issues, like effects in ff7-ff9
141 for standalone build, audio will no longer slow down when emu is not fast
142 enough and stutter instead, as the former behavior causes accuracy issues.
143 Old mode can be restored in SPU plugin config options, but is not recommended.
144 * savestates now save small parts of dynarec state to reduce dynarec related
145 slowdowns after savestate load
146 * menu: fixed file browser issues with filesystems like exfat-fuse
147 * menu: memcard manager: selected card is saved in config now
148 * standalone: added some basic scanline efect
149 * some CD image loading fixes
150 * converted asm code to be compatible with more assemblers, like Apple's gas
151 + libretro: added Makefile.libretro and support for various platforms like
152 iOS and QNX. Makefile.libretro is recommended way to do libretro builds
153 (patches from CatalystG, squarepusher, notaz and others, see git).
154 * some other minor fixes
157 + libretro: added region, multidisk support
158 * more work on cdrom code
159 * changed sound sync code
160 * fixed masking bugs in NEON GPU (in collaboration with Exophase)
161 * fixed some compatibility issues
162 * various other tweaks and fixes
165 * cdrom code greatly cleaned up
166 + new GLES output mode for ARM Linux/R-Pi
167 * various libretro improvements
168 * fixed several compatibility regressions
169 * various other tweaks and fixes
172 + added overlay support for generic Linux build
173 * attempted to fix sound breakage with PulseAudio
174 * fixed some regressions caused by hires mode code
175 * fixed some sound issues introduced in r9
176 * various other tweaks
179 + gpu_neon now has new hires rendering mode
180 (sometimes slow and occasionally glitchy)
181 + integrated M-HT's scale2x and eagle2x filters
182 (works for 512x256 or lower resolution games)
183 + pandora: added gamma/brightness control (requires SZ 1.52)
184 * pandora: some improvements for nub support
185 + added fast forward support
186 * fixed some glitches after loading savestates from r14 or earlier
189 * various compatibility fixes
190 * attempts to fix various SPU issues
191 * Exophase fixed blending issue in his NEON GPU
192 * fixed some potential crashes
193 * gpu_unai: merged range fix from Franxis
194 + added cheat support
195 + menu: pressing a key in file list now seeks to a file
196 + new code, fixes and refactoring to improve portability:
197 support RAM offset, translation cache in data segment,
198 SDL support, multiple sound output methods, configure script
199 * unified plugin names for all ports
200 + initial libretro support
203 * GLES GPU: implemented frameskip
204 * GLES GPU: merged some changes from schtruck/FPSE
205 * Caanoo: potential workaround for save corruption
206 (always exit emulator cleanly before turning off the console
207 to reduce chance of corruption)
208 * Caanoo: fixed a bug in GTE code (graphic glitches in some games)
209 * Caanoo: reworked vibration support, should support more games
210 * various refactoring/minor tweaks
213 * yet more fixes for regressions from earlier versions
214 * various fixes for NEON GPU (in collaboration with Exophase)
215 + NEON GPU supports interlace mode now, but it's not always
216 enabled due to frameskip glithes (can be changed in the menu)
217 * cdda should resume on savestate load now
218 * fixed date display in menus to honour locale
219 + pandora: added support for minimizing the emulator (while ingame only)
222 + new ARM NEON GPU rasterizer from Exophase (NEON hardware required)
223 + new GPU emulation code
224 + new analog controller configurator
225 * changed frameskip handling (again..), higher values supported
226 * fixed several more regressions from earlier versions
227 * changed cdrom code with hope for better compatibility
228 * sprite optimization for PCSX4ALL plugin
229 + Caanoo: added vibration support
233 * Caanoo: fixed tv-out
234 + Caanoo/Wiz: added scaling (16bpp only)
235 + Caanoo/Wiz: added touchscreen-as-buttons input (4 sections)
236 + added .cbin support
237 + added multidisk eboot support (use "next multidisk CD" in exras menu)
238 * some GTE related optimizations
239 * various other optimizations
240 + added some speed hack options for slower devices
241 (get more speed at stability and correctness loss)
242 * fixed several compatibility issues
243 * fixed a few crash situations
244 * various minor adjustments
245 * maemo: merged some code from Bonapart
246 * maemo: fixed BIOS issue (hopefully)
250 + completely rewrote memory handlers
251 + added fixed frameskip option
252 + added ability to change PSX clock
253 + implemented GTE dead flag detection
254 * switched to larger timeslices for better performance
255 * fixed some cases of flickering
256 * fixed a crash in PCSX4ALL GPU plugin
257 * fixed several dynarec compatibility related issues (hopefully)
258 * fixed multiple SPU regressions from r9 and earlier
259 * fixed frame limiter issue that sometimes caused stuttering
260 * fixed some minor GUI issues
263 * fixed various dynarec integration issues that were causing instability
264 * merged latest Ari64 dynarec code for some performance improvement
265 * changed frameskip handling in builtin and PCSX4ALL plugins,
266 fixes some cases where it would not work
267 * merged PCSX4ALL 2.2 GPU code to it's plugin
268 * fixed PCSX4ALL GPU inline asm, was miscompiling for ARMv7.
269 + added CDDA handling for eboot format
270 * improved CDDA handling for all image formats that support it
271 * various compatibility/accuracy improvements
272 * optimized PEOPS SPU core
273 * various menu adjustments
274 * changed scaling options a bit, there are now two 4:3 options:
275 integer and fractional
276 + added some basic memory card manager, which allows to change
277 or remove cards (remove needed for Tenka)
278 + added GunCon support
279 + added gpuPEOPS2 plugin (peops rendering + new emulation code)
282 * improved recompiler performance for some games
283 * fixed a few recompiler related compatibility issues
284 (also fixes broken memcard support in some games)
285 * fixed some graphics problems caused by frameskip.
286 Note that not all problems were fixed, so if you see graphics
287 glitches try turning off frameskip or using different GPU plugin.
288 + added screenshot function
289 + added some code to attempt to sync with pandora's LCD better
290 * merged a few compatibility fixes from PCSX-Reloaded
291 * fixed and issue with external controllers
292 * added experimental ability to use nubs as buttons
295 + implemented most used GTE operations in NEON
296 * merged latest Ari64's recompiler patches
297 * removed some code from the recompiler that is unneeded for R3k
298 * added some special handlers for constant reads
299 * some moderate builtin GPU and SPU optimizations
300 + added redump.org SBI support
301 * tuned frameskip code again
302 * fixed one 'analog controller not working' issue
303 * fixed a crash in builtin gpu code
304 * fixed cdrom slowdown issue
305 * fixed my stupid bug in the recompiler that slowed down
307 * some other refactoring
310 + added analog controller support using nubs (disabled by default)
311 + added control config saving
312 + added support for ingame actions (eg. savestate load)
313 + added 'auto' region option and made it default
314 + added cd swap functionality
315 + added maemo frontend from Bonapart
316 (with some tuning, source code only)
317 * reworked key configuration to be less confusing
318 * fixed 'SPU IRQ wait' option sometimes causing noise
319 and turned it on by default
320 * fixed mono xa masking (was causing noise)
321 * fixed word access macros in dfxvideo (darkness problem)
322 * changed GPU DMA timing back to 1.92 levels
323 * backported more fixes from PCSX-Reloaded project
324 (mostly shalma's work, see GIT)
325 * fixed a few more recompiler issues
326 + fixed frameskip in builtin plugin
329 + added support for .bz format, also partial support for
330 .znx and eboot.pbp formats
331 + merged latest cdrom code from PCSX-Reloaded project
332 * fixed remaining savestate incompatibilities between PCSX4ALL
333 and P.E.Op.S. GPU plugins
334 * fixed channel disable preventing irqs in P.E.Op.S. SPU plugin
335 * fixed some alignment issues
336 + added handling for branches in delay slots
337 + fixed some unexpected drops to menu
338 * fixed lots of recompiler related issues (see GIT)
339 + added watchdog thread to detect emulator lockups
340 * minor frontend adjustments
343 + added real BIOS support (and various things for it to work)
344 * fixed various recompiler issues
345 + added interpreter option (useful to overcome dynarec bugs)
346 * fixed some memory card related issues with HLE bios
347 * rewrote frame limiter (old was sometimes sleeping needlessly)
350 + added Pickle's port of gpu-gles from psx4m project
351 + added PCSX4ALL gpu as a plugin
352 * improved gpu plugin support
353 + added savestate preview
354 * various frontend fixes
357 * fixed memcard paths
358 * fixed a keybind copy-paste bug
359 * properly implemented pad handling
360 (inputs no longer control both emulated pads at once)
361 * fixed a crash caused by framebuffer out of range access
362 * fixed SWL/SWR handling (usually resulted in graphic glitches)
363 * fixed BxxZAL (Medal of Honor)
364 * fixed alignment crash in color space conversion code (Lunar)
365 * fixed SWC2 occasional use of wrong address register (Parasite Eve)
366 * fixed firstfile() handling in HLE BIOS (broken memory cards in some games)
367 + added per-game configs (controls still not saved though)
368 + added simple plugin select interface to the menu
379 (C) 1999-2003 PCSX Team
380 (c) 1998 Vision Thing
381 Linuzappz <linuzappz@pcsx.net>
382 Shadow <shadow@pcsx.net>
383 Pete Bernett <psswitch@online.de>
384 NoComp <NoComp@mailcity.com>
386 Akumax <akumax@pcsx.net>
388 (C) 2005-2009 PCSX-df Team
389 (c) Ryan Schultz <schultz.ryan@gmail.com>
390 (c) Andrew Burton <adb@iinet.net.au>
391 (c) Stephen Chao <schao@myrealbox.com>
392 (c) Marcus Comstedt <marcus@mc.pp.se>
393 Stefan Sikora <hoshy@schrauberstube.de>
395 (C) 2009-2011 PCSX-Reloaded Team
396 edgbla (Root counters, various core/plugin fixes)
397 shalma (GTE Divider, many core improvements, sound plugin fixes)
398 Firnis (GTE code from PCSX-Revolution Project)
399 Gabriele Gorla (MDEC decoder)
400 Peter Collingbourne (Various core/psxbios fixes)
401 Dario, NeToU, siveritas (Various bugfixes)
402 Wei Mingzhi (Maintainer, input plugin, iso/cheat support, misc stuff)
405 (C) 2011-2012 Exophase
409 (C) 2010 PCSX4ALL Team
411 Franxis <franxism@gmail.com>
412 Chui <sdl_gp32@yahoo.es>
414 GLES plugin (psx4m project):
415 (C) 1999-2009 by Pete Bernert
421 P.E.Op.S. GPU plugin:
422 (C) Pete Bernert and the P.E.Op.S. team
424 P.E.Op.S. SPU plugin:
425 (C) Pete Bernert and the P.E.Op.S. team
426 (C) SPU2-X, gigaherz, Pcsx2 Development Team
430 MIPS->ARM recompiler:
433 integration, optimization and frontend:
436 Special thanks to Mednafen author, shalma/gretar and Rokas for
437 various help while developing this emulator.
439 Some implementation ideas (and maybe code?) likely originated from
440 MAME/smf/pSXauthor and were integrated by various people to PCSX.
442 Source code is released under GNU GPL license, version 2 or later.
443 See COPYING included in the archive (pandora version's .pnd can be
444 extracted using unsquashfs).
446 The source code is available in a GIT repository at:
448 git://notaz.gp2x.de/~notaz/pcsx_rearmed.git