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