303ee308 |
1 | |
4ea086f6 |
2 | PCSX-ReARMed - yet another PCSX fork, ARM special |
303ee308 |
3 | |
c9dbba7f |
4 | http://notaz.gp2x.de/pcsx_rearmed.php |
5 | |
303ee308 |
6 | |
7 | About |
8 | ----- |
9 | |
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 |
3938f69a |
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 |
4ea086f6 |
15 | adjustments (N900, GPH Wiz/Caanoo, PlayBook versions are also available). |
303ee308 |
16 | |
c069dc1b |
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. |
303ee308 |
20 | |
21 | |
06d2e1a5 |
22 | Compiling |
23 | --------- |
24 | |
3aba4185 |
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 |
27 | maintained by them. |
28 | |
29 | For standalone build, './configure && make' should work for the most part. |
06d2e1a5 |
30 | |
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: |
33 | |
34 | CFLAGS='-mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp' ./configure |
35 | |
36 | Cross compilation should also work if kernel-style CROSS_COMPILE variable |
37 | is set: |
38 | CROSS_COMPILE='arm-none-linux-gnueabi-' ./configure |
39 | |
40 | |
303ee308 |
41 | Usage |
42 | ----- |
43 | |
06d2e1a5 |
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 |
47 | the emulator. |
303ee308 |
48 | |
33716956 |
49 | Supported CD image formats: |
f932e54b |
50 | - .bin/.cue |
51 | - .bin/.toc |
52 | - .img/.ccd/.sub |
53 | - .mdf/.mds |
303ee308 |
54 | - .Z/.Z.table |
33716956 |
55 | - .bz/.bz.table |
56 | - .ZNX/.ZNX.table (partial) |
57 | - EBOOT.PBP (PSP, partial) |
bab59f00 |
58 | - .cbn |
303ee308 |
59 | |
7ca0ce80 |
60 | CDDA (CD audio) only supported when .cue/.toc/.ccd/.mds files are present. |
900acfae |
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. |
303ee308 |
64 | |
c9dbba7f |
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 |
06d2e1a5 |
67 | to work. To use real BIOS, copy uncompressed BIOS files to bios/ directory |
68 | which itself should be in main emulator directory. |
69 | |
70 | For pandora, it should be: |
c9dbba7f |
71 | [sd card]/pandora/appdata/pcsx_rearmed/bios/ |
06d2e1a5 |
72 | |
73 | When the file is copied, BIOS should be selected in Options->BIOS/Plugins menu. |
c9dbba7f |
74 | |
b0c8d18b |
75 | On pandora, analog controllers are supported using nubs, but this is |
76 | disabled by default and needs to be enabled in 'Controls' menu. |
7ca0ce80 |
77 | There is also touchscreen based GunCon support, which also requires |
78 | appropriate controller selected in controls configuration. |
799b0b87 |
79 | |
303ee308 |
80 | |
ee78346e |
81 | Plugins |
82 | ------- |
83 | |
84 | GPU (graphics) and SPU (sound) plugins can be selected in |
85 | [BIOS/Plugins] menu: |
86 | |
c069dc1b |
87 | builtin_gpu - this is either Exophase's ARM NEON GPU (accurate and fast, |
06d2e1a5 |
88 | available if platform supports NEON, like on pandora), |
4ea086f6 |
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) |
1fec8a95 |
92 | gpu_unai_old.so- Unai's plugin from PCSX4ALL project. Faster than P.E.Op.S. |
93 | but has some glitches (old version). |
4ea086f6 |
94 | gpu_gles.so - experimental port of P.E.Op.S. MesaGL plugin to OpenGL ES. |
ee78346e |
95 | Occasionally faster but has lots of glitches and seems to |
4ea086f6 |
96 | be rather unstable (may crash the driver/system). |
c069dc1b |
97 | builtin_spu - P.E.Op.S. SPU plugin, optimized for ARM. |
ee78346e |
98 | spunull.so - NULL plugin, i.e. no sound emulation. |
4ea086f6 |
99 | May cause compatibility problems. |
ee78346e |
100 | |
101 | |
9c27c205 |
102 | Cheats |
103 | ------ |
104 | |
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. |
111 | |
112 | |
9af2e936 |
113 | Changelog |
114 | --------- |
115 | |
1fec8a95 |
116 | r24 (2024-01-22) |
117 | * HLE compatibility has been greatly improved |
118 | * various compatibility and accuracy improvements |
119 | + support for more lightgun types |
120 | - savestates from older versions might not work, especially if HLE was used. |
121 | Memory card files remain fully compatible. |
122 | * many small changes I forgot about |
123 | |
124 | r23 (2022-03-14) |
125 | * many fixes from various contributors on github and from the libretro fork |
126 | * dynarec related slowdowns have been greatly reduced |
127 | * many dynarec bug fixes |
128 | + added chd disk image support |
129 | |
bf48d3aa |
130 | r22 (2015-02-05) |
131 | * general: fixed a race condition/crash in threaded SPU mode |
132 | * pandora: C64x: fixed compatibility with newer c64_tools, enabled L2 cache |
133 | * frontend: fixed control config corruption on load for devices that are |
134 | disconnected on startup |
135 | * some dma accuracy improvements, might fix occasional glitches in ff7 |
136 | * ARMv6 build and the dynarec now make use of available instructions (gizmo98) |
137 | |
52d279a5 |
138 | r21 (2015-01-12) |
139 | + general: added ability to run SPU emulation on a separate thread, enabled it |
140 | by default when multicore CPU is detected. Significant effort was made to |
141 | avoid any compatibility problems which the old P.E.Op.S. implementation had. |
142 | + pandora: added ability to run SPU emulation on TI C64x DSP by using bsp's |
143 | c64_tools. |
144 | * libretro: fixed win32 build (mingw only) |
145 | * some tweaks for the scanline effect and other things |
146 | |
3aba4185 |
147 | r20 (2014-12-25) |
148 | * fixed various sound accuracy issues, like effects in ff7-ff9 |
149 | for standalone build, audio will no longer slow down when emu is not fast |
150 | enough and stutter instead, as the former behavior causes accuracy issues. |
151 | Old mode can be restored in SPU plugin config options, but is not recommended. |
152 | * savestates now save small parts of dynarec state to reduce dynarec related |
153 | slowdowns after savestate load |
154 | * menu: fixed file browser issues with filesystems like exfat-fuse |
155 | * menu: memcard manager: selected card is saved in config now |
156 | * standalone: added some basic scanline efect |
157 | * some CD image loading fixes |
158 | * converted asm code to be compatible with more assemblers, like Apple's gas |
159 | + libretro: added Makefile.libretro and support for various platforms like |
160 | iOS and QNX. Makefile.libretro is recommended way to do libretro builds |
161 | (patches from CatalystG, squarepusher, notaz and others, see git). |
162 | * some other minor fixes |
163 | |
101e053c |
164 | r19 (2013-03-17) |
165 | + libretro: added region, multidisk support |
166 | * more work on cdrom code |
167 | * changed sound sync code |
168 | * fixed masking bugs in NEON GPU (in collaboration with Exophase) |
169 | * fixed some compatibility issues |
170 | * various other tweaks and fixes |
171 | |
d77e7438 |
172 | r18 (2013-01-06) |
173 | * cdrom code greatly cleaned up |
174 | + new GLES output mode for ARM Linux/R-Pi |
175 | * various libretro improvements |
176 | * fixed several compatibility regressions |
177 | * various other tweaks and fixes |
178 | |
179 | r17 (2012-11-24) |
06d2e1a5 |
180 | + added overlay support for generic Linux build |
181 | * attempted to fix sound breakage with PulseAudio |
182 | * fixed some regressions caused by hires mode code |
183 | * fixed some sound issues introduced in r9 |
184 | * various other tweaks |
185 | |
e7b8bfad |
186 | r16 (2012-11-10) |
187 | + gpu_neon now has new hires rendering mode |
188 | (sometimes slow and occasionally glitchy) |
189 | + integrated M-HT's scale2x and eagle2x filters |
190 | (works for 512x256 or lower resolution games) |
191 | + pandora: added gamma/brightness control (requires SZ 1.52) |
192 | * pandora: some improvements for nub support |
193 | + added fast forward support |
194 | * fixed some glitches after loading savestates from r14 or earlier |
195 | |
4ea086f6 |
196 | r15 (2012-08-02) |
197 | * various compatibility fixes |
198 | * attempts to fix various SPU issues |
199 | * Exophase fixed blending issue in his NEON GPU |
200 | * fixed some potential crashes |
201 | * gpu_unai: merged range fix from Franxis |
202 | + added cheat support |
203 | + menu: pressing a key in file list now seeks to a file |
204 | + new code, fixes and refactoring to improve portability: |
205 | support RAM offset, translation cache in data segment, |
206 | SDL support, multiple sound output methods, configure script |
207 | * unified plugin names for all ports |
208 | + initial libretro support |
209 | |
ea1f6f2f |
210 | r14 (2012-03-04) |
211 | * GLES GPU: implemented frameskip |
212 | * GLES GPU: merged some changes from schtruck/FPSE |
213 | * Caanoo: potential workaround for save corruption |
214 | (always exit emulator cleanly before turning off the console |
215 | to reduce chance of corruption) |
216 | * Caanoo: fixed a bug in GTE code (graphic glitches in some games) |
217 | * Caanoo: reworked vibration support, should support more games |
218 | * various refactoring/minor tweaks |
219 | |
3ce7adeb |
220 | r13 (2012-01-09) |
221 | * yet more fixes for regressions from earlier versions |
222 | * various fixes for NEON GPU (in collaboration with Exophase) |
223 | + NEON GPU supports interlace mode now, but it's not always |
224 | enabled due to frameskip glithes (can be changed in the menu) |
225 | * cdda should resume on savestate load now |
226 | * fixed date display in menus to honour locale |
227 | + pandora: added support for minimizing the emulator (while ingame only) |
228 | |
c069dc1b |
229 | r12 (2011-12-24) |
230 | + new ARM NEON GPU rasterizer from Exophase (NEON hardware required) |
231 | + new GPU emulation code |
232 | + new analog controller configurator |
233 | * changed frameskip handling (again..), higher values supported |
234 | * fixed several more regressions from earlier versions |
235 | * changed cdrom code with hope for better compatibility |
236 | * sprite optimization for PCSX4ALL plugin |
237 | + Caanoo: added vibration support |
238 | |
b0c8d18b |
239 | r11 (2011-10-31) |
240 | + added Wiz support |
241 | * Caanoo: fixed tv-out |
242 | + Caanoo/Wiz: added scaling (16bpp only) |
243 | + Caanoo/Wiz: added touchscreen-as-buttons input (4 sections) |
244 | + added .cbin support |
245 | + added multidisk eboot support (use "next multidisk CD" in exras menu) |
246 | * some GTE related optimizations |
247 | * various other optimizations |
248 | + added some speed hack options for slower devices |
249 | (get more speed at stability and correctness loss) |
250 | * fixed several compatibility issues |
251 | * fixed a few crash situations |
252 | * various minor adjustments |
253 | * maemo: merged some code from Bonapart |
254 | * maemo: fixed BIOS issue (hopefully) |
255 | |
cbd45cda |
256 | r10 (2011-10-10) |
257 | + added Caanoo port |
258 | + completely rewrote memory handlers |
aaac9c7e |
259 | + added fixed frameskip option |
cbd45cda |
260 | + added ability to change PSX clock |
261 | + implemented GTE dead flag detection |
262 | * switched to larger timeslices for better performance |
263 | * fixed some cases of flickering |
aaac9c7e |
264 | * fixed a crash in PCSX4ALL GPU plugin |
265 | * fixed several dynarec compatibility related issues (hopefully) |
cbd45cda |
266 | * fixed multiple SPU regressions from r9 and earlier |
aaac9c7e |
267 | * fixed frame limiter issue that sometimes caused stuttering |
268 | * fixed some minor GUI issues |
269 | |
7ca0ce80 |
270 | r9 (2011-08-13) |
271 | * fixed various dynarec integration issues that were causing instability |
272 | * merged latest Ari64 dynarec code for some performance improvement |
273 | * changed frameskip handling in builtin and PCSX4ALL plugins, |
274 | fixes some cases where it would not work |
275 | * merged PCSX4ALL 2.2 GPU code to it's plugin |
276 | * fixed PCSX4ALL GPU inline asm, was miscompiling for ARMv7. |
277 | + added CDDA handling for eboot format |
278 | * improved CDDA handling for all image formats that support it |
279 | * various compatibility/accuracy improvements |
280 | * optimized PEOPS SPU core |
281 | * various menu adjustments |
282 | * changed scaling options a bit, there are now two 4:3 options: |
283 | integer and fractional |
284 | + added some basic memory card manager, which allows to change |
285 | or remove cards (remove needed for Tenka) |
286 | + added GunCon support |
287 | + added gpuPEOPS2 plugin (peops rendering + new emulation code) |
288 | |
3938f69a |
289 | r8 (2011-03-22) |
290 | * improved recompiler performance for some games |
291 | * fixed a few recompiler related compatibility issues |
292 | (also fixes broken memcard support in some games) |
293 | * fixed some graphics problems caused by frameskip. |
294 | Note that not all problems were fixed, so if you see graphics |
295 | glitches try turning off frameskip or using different GPU plugin. |
296 | + added screenshot function |
297 | + added some code to attempt to sync with pandora's LCD better |
298 | * merged a few compatibility fixes from PCSX-Reloaded |
299 | * fixed and issue with external controllers |
300 | * added experimental ability to use nubs as buttons |
301 | |
900acfae |
302 | r7 (2011-03-02) |
303 | + implemented most used GTE operations in NEON |
304 | * merged latest Ari64's recompiler patches |
305 | * removed some code from the recompiler that is unneeded for R3k |
306 | * added some special handlers for constant reads |
307 | * some moderate builtin GPU and SPU optimizations |
308 | + added redump.org SBI support |
309 | * tuned frameskip code again |
310 | * fixed one 'analog controller not working' issue |
311 | * fixed a crash in builtin gpu code |
312 | * fixed cdrom slowdown issue |
313 | * fixed my stupid bug in the recompiler that slowed down |
314 | recompilation a lot |
315 | * some other refactoring |
316 | |
acb57d8d |
317 | r6 (2011-02-10) |
318 | + added analog controller support using nubs (disabled by default) |
319 | + added control config saving |
320 | + added support for ingame actions (eg. savestate load) |
321 | + added 'auto' region option and made it default |
322 | + added cd swap functionality |
323 | + added maemo frontend from Bonapart |
324 | (with some tuning, source code only) |
325 | * reworked key configuration to be less confusing |
326 | * fixed 'SPU IRQ wait' option sometimes causing noise |
327 | and turned it on by default |
328 | * fixed mono xa masking (was causing noise) |
329 | * fixed word access macros in dfxvideo (darkness problem) |
330 | * changed GPU DMA timing back to 1.92 levels |
331 | * backported more fixes from PCSX-Reloaded project |
332 | (mostly shalma's work, see GIT) |
333 | * fixed a few more recompiler issues |
334 | + fixed frameskip in builtin plugin |
335 | |
5b09a334 |
336 | r5 (2011-01-31) |
337 | + added support for .bz format, also partial support for |
338 | .znx and eboot.pbp formats |
339 | + merged latest cdrom code from PCSX-Reloaded project |
340 | * fixed remaining savestate incompatibilities between PCSX4ALL |
341 | and P.E.Op.S. GPU plugins |
342 | * fixed channel disable preventing irqs in P.E.Op.S. SPU plugin |
343 | * fixed some alignment issues |
344 | + added handling for branches in delay slots |
345 | + fixed some unexpected drops to menu |
346 | * fixed lots of recompiler related issues (see GIT) |
347 | + added watchdog thread to detect emulator lockups |
348 | * minor frontend adjustments |
349 | |
c9dbba7f |
350 | r4 (2011-01-15) |
351 | + added real BIOS support (and various things for it to work) |
352 | * fixed various recompiler issues |
353 | + added interpreter option (useful to overcome dynarec bugs) |
354 | * fixed some memory card related issues with HLE bios |
355 | * rewrote frame limiter (old was sometimes sleeping needlessly) |
356 | |
ee78346e |
357 | r3 (2011-01-05): |
358 | + added Pickle's port of gpu-gles from psx4m project |
359 | + added PCSX4ALL gpu as a plugin |
360 | * improved gpu plugin support |
361 | + added savestate preview |
362 | * various frontend fixes |
363 | |
364 | r2 (2010-12-29): |
9af2e936 |
365 | * fixed memcard paths |
366 | * fixed a keybind copy-paste bug |
367 | * properly implemented pad handling |
ee78346e |
368 | (inputs no longer control both emulated pads at once) |
9af2e936 |
369 | * fixed a crash caused by framebuffer out of range access |
370 | * fixed SWL/SWR handling (usually resulted in graphic glitches) |
371 | * fixed BxxZAL (Medal of Honor) |
372 | * fixed alignment crash in color space conversion code (Lunar) |
373 | * fixed SWC2 occasional use of wrong address register (Parasite Eve) |
374 | * fixed firstfile() handling in HLE BIOS (broken memory cards in some games) |
375 | + added per-game configs (controls still not saved though) |
376 | + added simple plugin select interface to the menu |
377 | |
ee78346e |
378 | r1 (2010-12-25): |
9af2e936 |
379 | * initial release |
380 | |
381 | |
303ee308 |
382 | Credits / License |
383 | ----------------- |
384 | |
f932e54b |
385 | Emulator core: |
386 | |
303ee308 |
387 | (C) 1999-2003 PCSX Team |
6b8a7b88 |
388 | (c) 1998 Vision Thing |
389 | Linuzappz <linuzappz@pcsx.net> |
390 | Shadow <shadow@pcsx.net> |
391 | Pete Bernett <psswitch@online.de> |
392 | NoComp <NoComp@mailcity.com> |
393 | Nik3d |
394 | Akumax <akumax@pcsx.net> |
395 | |
303ee308 |
396 | (C) 2005-2009 PCSX-df Team |
6b8a7b88 |
397 | (c) Ryan Schultz <schultz.ryan@gmail.com> |
398 | (c) Andrew Burton <adb@iinet.net.au> |
399 | (c) Stephen Chao <schao@myrealbox.com> |
400 | (c) Marcus Comstedt <marcus@mc.pp.se> |
401 | Stefan Sikora <hoshy@schrauberstube.de> |
402 | |
900acfae |
403 | (C) 2009-2011 PCSX-Reloaded Team |
6b8a7b88 |
404 | edgbla (Root counters, various core/plugin fixes) |
900acfae |
405 | shalma (GTE Divider, many core improvements, sound plugin fixes) |
6b8a7b88 |
406 | Firnis (GTE code from PCSX-Revolution Project) |
407 | Gabriele Gorla (MDEC decoder) |
6b8a7b88 |
408 | Peter Collingbourne (Various core/psxbios fixes) |
ee78346e |
409 | Dario, NeToU, siveritas (Various bugfixes) |
6b8a7b88 |
410 | Wei Mingzhi (Maintainer, input plugin, iso/cheat support, misc stuff) |
411 | |
c069dc1b |
412 | NEON GPU plugin: |
3ce7adeb |
413 | (C) 2011-2012 Exophase |
414 | (C) 2011-2012 notaz |
c069dc1b |
415 | |
ee78346e |
416 | PCSX4ALL GPU plugin: |
417 | (C) 2010 PCSX4ALL Team |
418 | (C) 2010 Unai |
419 | Franxis <franxism@gmail.com> |
420 | Chui <sdl_gp32@yahoo.es> |
421 | |
422 | GLES plugin (psx4m project): |
f932e54b |
423 | (C) 1999-2009 by Pete Bernert |
424 | EQ |
425 | Olli Hinkka |
426 | Proger |
427 | Pickle |
428 | |
c069dc1b |
429 | P.E.Op.S. GPU plugin: |
1775933a |
430 | (C) Pete Bernert and the P.E.Op.S. team |
431 | |
c069dc1b |
432 | P.E.Op.S. SPU plugin: |
1775933a |
433 | (C) Pete Bernert and the P.E.Op.S. team |
434 | (C) SPU2-X, gigaherz, Pcsx2 Development Team |
435 | shalma |
c069dc1b |
436 | notaz |
f932e54b |
437 | |
438 | MIPS->ARM recompiler: |
1775933a |
439 | (C) 2009-2011 Ari64 |
6b8a7b88 |
440 | |
f932e54b |
441 | integration, optimization and frontend: |
3ce7adeb |
442 | (C) 2010-2012 notaz |
443 | |
444 | Special thanks to Mednafen author, shalma/gretar and Rokas for |
445 | various help while developing this emulator. |
303ee308 |
446 | |
3ce7adeb |
447 | Some implementation ideas (and maybe code?) likely originated from |
22d3b349 |
448 | MAME/smf/pSXauthor and were integrated by various people to PCSX. |
449 | |
303ee308 |
450 | Source code is released under GNU GPL license, version 2 or later. |
3ce7adeb |
451 | See COPYING included in the archive (pandora version's .pnd can be |
452 | extracted using unsquashfs). |
453 | |
303ee308 |
454 | The source code is available in a GIT repository at: |
455 | |
456 | git://notaz.gp2x.de/~notaz/pcsx_rearmed.git |
457 | |