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