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