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