-----------------------
CPS2EMU for GP2X(Ver 8)
-----------------------

* change logs

- test v1
quick & dirty porting from CPS2PSP(NJEMU).

- test v2
add sound support.
add volume and frameskip control.
fix color issue.

- test v3
update cpu core for more compatible.
add auto frameskip.

- test v4
change cache format to compressed type.
sound samplerate set to 22050Hz.
stretch screen mode.
print messages on screen.

- test v5
fix raster mode rendering.
fix line scroll mode rendering.
add save/load state.
add no sound(and sound cpu stop) mode.
support command line options.
support usb joypad(maximum 4 player).
support TV-Out.

- test v6
fix input driver. (now working progear, again)
update draw code to arm asm.
fix line scroll mode more accurated(but, slowly).
add line scroll on/off option(--linescroll, --no-linescroll).
add horizontal only hardware rescale mode(--hwho-rescale).
change cache format for asm draw function. no longer available test v4 cache data.
add frontend option.

- test v7
fix halt on exit problem.
add external input device on/off option.
add cache dir option. game(rom) dir is extract from rom name.
if not found cache file in cache dir, try to search game dir.

- test v8
support decrypt function for m68000 program(possible to run all parent romset).
add xor rom enable/disable option(--xorrom, --no-xorrom).
if xor rom enabled and not found xor rom, automatically using decrypt function.
add puzzle loop 2(euro) romset. puzzle loop 2(japan) is change to clone rom.
add ram timing tweak function and enable/disable option(--tweak, --no-tweak).
if cpu_speed.cfg file exist in emulator dir, get tweak value from this file(but, ignore div,lcd option).
(cpu_speed.cfg is save file from GP2X CPU/LCD/RAM-Tweaker program.)
add GP2X cpu clock adjust function and option(--cpuspeed).
add simple menu. press L + R + Select or Start + Select button to menu screen.
support high score save/load(from test 7.1 by Slaanesh).

* install
1) create cache file using romcnv/cps2conv.bat or romcnv/cps2conv_all.bat(for MS Windows).
if not using MS Windows, build executable file from romcnv source(tested in Redhat linux).
2) make emulator directory in SD card.
3) copy directory and files to SD card.
cache/
hi/
nvram/
roms/
state/
cps2_config
cps2emu
cps2run.gpe
hiscore.dat
mmuhack.o
rominfo.cps2
zipname.cps2
4) if you have alternate frontend(ex: capex), not need files.
cps2_config
cps2run.gpe
5) copy rom file to roms directory in SD card.
6) copy cache file(in romcnv/cache) to cache directory in SD card.

* control
- in selector
A, Y: Change options
Vol +/-: CPU clock adjust
B, Stick(Push), Select: Start game
Start: Quit

- in games
X, B, A, Y: Button 1, 2, 3, 4
Select : Insert coin
Vol +/- : Volume control
Select + Vol +/- : Frame skip control
L + R + Select, Start + Select : Enter menu
L + R + Start : P1, P2 Start button(for service mode)

- in Vertical mode
Vol +: Button 1
L: Button 2
Vol -: Button 3(3 button games), Autofire Button 1(2 button games)
Start + Vol +/- : Volume control

- in 2 button games
X, A: Button 1, Autofire Button 1
B, Y, R: Button 2

- in 6 button games
A, Y, L: Button 1, 2, 3
X, B, R: Button 4, 5, 6

- in menu
Up, Down: Move cursor
Left, Right: Change value
A, B, Stick(Push): Item select
X: Return to game

* command line options
--sound, --no-sound: enable/disable sound. (default: disable)
--samplerate [rate]: set sound samplerate. possible 11025/22050/44100 Hz. (default: 22050 Hz)
--hw-rescale, --hwho-rescale, --sw-rescale, --no-rescale: select rescale mode. (default: no-rescale)
--screen-position [offset]: setting screen position(-32 ~ 32, 0 is center). no-rescale mode only. (default: 0)
--68kclock [clock], --z80clock [clock]: clock adjust main core(m68k), sound core(z80). [clock] is percentage. 0 is 100%. (default: both 100%)
--showfps, --no-showfps: enable/disable display fps. not support in hw-rescale mode. (default: disable)
--linescroll, --no-linescroll: enable/disable line scroll. (default: enable)
--showtitle, --no-showtitle: enable/disable display title. (default: disable)
--frontend [file]: execute [file] when exit. (default: /usr/gp2x/gp2xmenu)
--fullcache, --no-fullcache: upper memory(higher 32MB) using method select. (default: fullcache)
--extinput, --no-extinput: enable/disable external input device(USB Joystick). (default: disable)
--cache-dir [path]: set cache directory. (default: ./cache)
--xorrom, --no-xorrom: enable/disable using xor rom. (default: enable)
--tweak, --no-tweak: enable/disable ram timing tweak. (default: disable)
--cpuspeed [clock]: GP2X cpu clock adjust. [clock] is MHz. (default: not adjust)
--hiscore, --no-hiscore: enable/disable high score save/load. (default: enable)

* credits
- original CPS2PSP by NJ
- porting to GP2X by ell
- Cyclone m68k emulator by Dave (dev@finalburn.com), Reesy (drsms_reesy@yahoo.co.uk), Notaz (notasas@gmail.com)
- DrZ80 z80 emulator by Reesy, Flubba (flubba@i-solutions.se)
- assembly draw code base from GnGeo2X by Pepone
- some assembly code from MAME GP2X by Franxis (fjmar@hotmail.com)
- usbjoy driver by Puck2099 (puck2099@gmail.com)
- m68000 decrypt function from MAME by Nicola Salmoria, Andreas Naive
- CPU/RAM tweak info from CPU/LCD/RAM-Tweaker by god_at_hell
- high score save by Slaanesh

* ps
I always read gp32x.com forum, but difficult to write(and I don't have gp32x.com account).
