cdrom: change pause timing again
[pcsx_rearmed.git] / readme.txt
CommitLineData
303ee308 1
4ea086f6 2PCSX-ReARMed - yet another PCSX fork, ARM special
303ee308 3
c9dbba7f 4http://notaz.gp2x.de/pcsx_rearmed.php
5
303ee308 6
7About
8-----
9
10PCSX ReARMed is yet another PCSX fork based on the PCSX-Reloaded project,
11which itself contains code from PCSX, PCSX-df and PCSX-Revolution. This
12version is ARM architecture oriented and features MIPS->ARM recompiler by
3938f69a 13Ari64, NEON GTE code and more performance improvements. It was created for
14Pandora handheld, but should be usable on other devices after some code
4ea086f6 15adjustments (N900, GPH Wiz/Caanoo, PlayBook versions are also available).
303ee308 16
c069dc1b 17PCSX ReARMed features ARM NEON GPU by Exophase, that in many cases produces
18pixel perfect graphics at very high performance. There is also Una-i's GPU
19plugin from PCSX4ALL project, and traditional P.E.Op.S. one.
303ee308 20
21
06d2e1a5 22Compiling
23---------
24
3aba4185 25For libretro build, just doing "make -f Makefile.libretro" is recommended as
26it's the way libretro team is building the core and only Makefile.libretro is
27maintained by them.
28
29For standalone build, './configure && make' should work for the most part.
06d2e1a5 30
31When compiling for ARM, it's advisable to tell configure script the CPU, FPU
32and ABI that matches your target system to get best performance, like this:
33
34CFLAGS='-mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp' ./configure
35
36Cross compilation should also work if kernel-style CROSS_COMPILE variable
37is set:
38CROSS_COMPILE='arm-none-linux-gnueabi-' ./configure
39
40
303ee308 41Usage
42-----
43
06d2e1a5 44There are several different frontends that can be built from source (one
45generic and several platform specific), so usage slightly differs depending
46on that. Most of them have a menu that can be used to run games and configure
47the emulator.
303ee308 48
33716956 49Supported 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 60CDDA (CD audio) only supported when .cue/.toc/.ccd/.mds files are present.
900acfae 61There 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
63extension). This is required for Libcrypt copy protected game support.
303ee308 64
c9dbba7f 65The emulator can simulate BIOS, which means BIOS files are not required,
66however implementation is not complete and some games still need real BIOS
06d2e1a5 67to work. To use real BIOS, copy uncompressed BIOS files to bios/ directory
68which itself should be in main emulator directory.
69
70For pandora, it should be:
c9dbba7f 71[sd card]/pandora/appdata/pcsx_rearmed/bios/
06d2e1a5 72
73When the file is copied, BIOS should be selected in Options->BIOS/Plugins menu.
c9dbba7f 74
b0c8d18b 75On pandora, analog controllers are supported using nubs, but this is
76disabled by default and needs to be enabled in 'Controls' menu.
7ca0ce80 77There is also touchscreen based GunCon support, which also requires
78appropriate controller selected in controls configuration.
799b0b87 79
303ee308 80
ee78346e 81Plugins
82-------
83
84GPU (graphics) and SPU (sound) plugins can be selected in
85[BIOS/Plugins] menu:
86
c069dc1b 87builtin_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).
90gpu_peops.so - P.E.Op.S. soft GPU, reasonably accurate but slow
91 (also found with older emulators on PC)
5a920d32 92gpu_unai_old.so- Unai's plugin from PCSX4ALL project. Faster than P.E.Op.S.
93 but has some glitches (old version).
4ea086f6 94gpu_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 97builtin_spu - P.E.Op.S. SPU plugin, optimized for ARM.
ee78346e 98spunull.so - NULL plugin, i.e. no sound emulation.
4ea086f6 99 May cause compatibility problems.
ee78346e 100
101
9c27c205 102Cheats
103------
104
105PCSX 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
107loaded from cheatpops.db file, if one is present in emulator's directory and
108has any cheats for the loaded game in it.
109If any of those files are successfully loaded, 'cheats' option will appear in
110the main menu where it is possible to enable/disable individual cheats.
111
112
9af2e936 113Changelog
114---------
115
46d596bb 116r24 (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
623cf65e 124r23 (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 130r22 (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 138r21 (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 147r20 (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 164r19 (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 172r18 (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
179r17 (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 186r16 (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 196r15 (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 210r14 (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 220r13 (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 229r12 (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 239r11 (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 256r10 (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 270r9 (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 289r8 (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 302r7 (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 317r6 (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 336r5 (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 350r4 (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 357r3 (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
364r2 (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 378r1 (2010-12-25):
9af2e936 379* initial release
380
381
303ee308 382Credits / License
383-----------------
384
f932e54b 385Emulator 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 412NEON GPU plugin:
3ce7adeb 413 (C) 2011-2012 Exophase
414 (C) 2011-2012 notaz
c069dc1b 415
ee78346e 416PCSX4ALL GPU plugin:
417 (C) 2010 PCSX4ALL Team
418 (C) 2010 Unai
419 Franxis <franxism@gmail.com>
420 Chui <sdl_gp32@yahoo.es>
421
422GLES plugin (psx4m project):
f932e54b 423 (C) 1999-2009 by Pete Bernert
424 EQ
425 Olli Hinkka
426 Proger
427 Pickle
428
c069dc1b 429P.E.Op.S. GPU plugin:
1775933a 430 (C) Pete Bernert and the P.E.Op.S. team
431
c069dc1b 432P.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
438MIPS->ARM recompiler:
1775933a 439 (C) 2009-2011 Ari64
6b8a7b88 440
f932e54b 441integration, optimization and frontend:
3ce7adeb 442 (C) 2010-2012 notaz
443
444Special thanks to Mednafen author, shalma/gretar and Rokas for
445various help while developing this emulator.
303ee308 446
3ce7adeb 447Some implementation ideas (and maybe code?) likely originated from
22d3b349 448MAME/smf/pSXauthor and were integrated by various people to PCSX.
449
303ee308 450Source code is released under GNU GPL license, version 2 or later.
3ce7adeb 451See COPYING included in the archive (pandora version's .pnd can be
452extracted using unsquashfs).
453
303ee308 454The source code is available in a GIT repository at:
455
456git://notaz.gp2x.de/~notaz/pcsx_rearmed.git
457