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