psp readme, some adjustments

git-svn-id: file:///home/notaz/opt/svn/PicoDrive/platform@296 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2007-11-16 19:19:21 +00:00
parent 5ecedd0cc2
commit c14459dbf9

View file

@ -7,6 +7,15 @@ http://www.gp32x.com/board/
About
-----
#ifdef PSP
This is yet another Megadrive / Genesis emulator for PSP, but with
Sega CD / Mega CD support. Although it has been originally written having
ARM CPU based devices in mind, it has now been ported to PSP too, by
replacing ARM specific parts with portable C code.
The base code originates from Dave's (fdave, finalburn) PicoDrive 0.30 for
Pocket PC. The Sega/Mega CD code is roughly based on Stephane Dallongeville's
Gens.
#else
This is yet another Megadrive / Genesis / Sega CD / Mega CD emulator, which
was written having ARM-based handheld devices in mind (such as PDAs,
smartphones and handheld consoles like GP2X and Gizmondo of course).
@ -14,6 +23,7 @@ The critical parts (renderer, 68K and Z80 cpu interpreters) and some other
random code is written in ARM asm, other code is C. The base code originates
from Dave's (fdave, finalburn) PicoDrive 0.30 for Pocket PC. The Sega/Mega CD
code is roughly based on Stephane Dallongeville's Gens.
#endif
How to make it run
@ -34,10 +44,28 @@ the root of SD, etc). Then load a ROM and enjoy! ROMs can be placed anywhere, ca
be in .smd or .bin format and can be zipped (one ROM per zip).
#endif
If you have any problems (game does not boot, sound is glitchy, broken graphics),
make sure you enable "Accurate timing", "Emulate Z80" and use "16bit accurate
renderer". This way you will get the best compatibility this emulator can
provide.
#ifdef PSP
If you are running a custom firmware, just copy the whole PicoDrive directory to
/PSP/GAME or /PSP/GAMEXXX directory in your memory stick (it shouldn't matter
which one GAME* directory to use).
If you are on 1.5, you will have to use KXploit tool to create the needed files
and directories, and then copy them to /PSP/GAME. I assume 1.5 users know how to
do this, if not, just google for KXploit.
#endif
Note that this emulator may require some tweaking of configuration settings to run
some games well. For Genesis/MegaDrive, if you have any problems (game does not
boot, sound is glitchy, broken graphics), try to:
* enable "Accurate timing" (options menu)
#ifdef PSP
* enable "accurate renderer"
#else
* enable "16bit accurate renderer"
#endif
* make sure Z80 is not disabled (in "advanced options" submenu in options).
Some games may need to be reset after adjusting settings.
For possible Sega/Mega CD problems, see "Other important stuff" section below.
@ -68,6 +96,11 @@ Sonic the Hedgehog CD (US) - Track 02.mp3
Sonic the Hedgehog CD (US) - Track 03.mp3
...
It is very important to have the MP3s encoded at 44kHz sample rate and they
must be stereo, or else they will play too fast/slow or won't play at all.
Be sure NOT to use anything but classic mp3 format (don't use things like
mp3pro).
ISO files can also be zipped (but not mp3 files, as they are already
compressed). Note that this can cause very long loading times, which may
take up to several minutes. File naming is similar as with uncompressed ISOs.
@ -83,12 +116,24 @@ Other important stuff
---------------------
* If your Genesis/MD game hangs or has glitches, this is most likely because
"Accurate timing" option is not enabled, or 8bit fast renderer is used
(try the 16 bit one), or Z80 is disabled in "advanced options".
"Accurate timing" option is not enabled, or fast renderer is used
(try the accurate one), or Z80 is disabled in "advanced options".
* Sega/Mega CD: If the game hangs after Sega logo, you may need to enable
"better sync" and/or "Scale/Rot. fx" options, found in "Sega/Mega CD options"
submenu, and then reset the game. Some other games may also require
"CDDA audio" and "PCM audio" to work.
"CDDA audio" and "PCM audio" to be enabled to work (enabled by default).
Incorrectly named/missing mp3s may also be the cause.
* Sega/Mega CD: If the background music is missing, you might have named your
MP3s incorrectly. Read "How to run Sega/Mega CD games" section again.
* Sega/Mega CD: If the game music plays too fast or too slow, you have encoded
your MP3s incorrectly. You will have to re-encode and/or resample them.
PicoDrive is not a mp3 player, so all mp3s MUST be encoded at 44.1kHz stereo.
Badly encoded mp3s can cause various kind of problems, like noises, incorrect
playback speeds, not repeating music or even prevent game from starting.
* Sega/Mega CD: If your games hangs at the BIOS screen (with planets shown),
you may be using a bad BIOS dump. Try another from a different source.
* Some Sega/Mega CD games don't use Z80 for anything, but they leave it active,
so disabling Z80 manually (in advanced options) improves performance.
#ifdef GP2X
* Sega/Mega CD: if FMV game performance is poor, try adjusting
"ReadAhead buffer" to something like 2048K.
@ -98,9 +143,6 @@ Other important stuff
it may start hanging and producing random noise, or causing ARM940 crashes
("940 crashed" message displayed).
#endif
* PicoDrive is not a mp3 player, so all mp3s MUST be encoded at 44.1kHz stereo.
Badly encoded mp3s can cause various kind of problems, like noises, incorrect
playback speeds, not repeating music or even prevent game from starting.
* Use lower bitrate for better performance (96 or 128kbps CBRs recommended).
#ifdef GP2X
* Due to internal implementation mp3s must not be larger that 12MB
@ -131,11 +173,18 @@ a bit faster for some games, but not much, because colors still need to be
converted to 16bit, as this is what Gizmondo requires. It also introduces
graphics problems for some games, so it's best to use 16bit one.
#endif
#ifdef PSP
This option allows to switch between fast and accurate renderers. The fast one
is much faster, because it draws the whole frame at a time, instead of doing it
line by line, like the accurate one does. But because of the way it works it
can't render any mid-frame image changes (raster effects), so it is useful only
for some games.
#endif
#ifdef GIZ
@@0. "Scanline mode"
This option was designed to work around slow framebuffer access (the Gizmondo's
main bottleneck) by drawing every other line (even nummbered lines only).
main bottleneck) by drawing every other line (even numbered lines only).
This improves performance greatly, but looses detail.
#endif
@ -179,7 +228,12 @@ Does what it says. You must enable at least YM2612 or SN76496 (in advanced optio
see below) for this to make sense (already done by default).
@@0. "Sound Quality"
Sound rate and stereo mode. Mono is not available in Sega/Mega CD mode.
#ifdef PSP
Sound sample rate, affects sound quality and emulation performance.
22050Hz setting is the recommended one.
#else
Sound sample rate and stereo mode. Mono is not available in Sega/Mega CD mode.
#endif
#ifdef GP2X
If you want 44100Hz sound, it is recommended to enable the second core (next option).
@ -198,7 +252,7 @@ specified region, or just to set autodetection order. Also affects Sega/Mega CD.
@@0. "Use SRAM/BRAM savestates"
This will automatically read/write SRAM (or BRAM for Sega/Mega CD) savestates for
games which are using them. SRAM is saved whenever you pause your game or exit the
games which are using them. SRAM is saved whenever you enter the menu or exit the
emulator.
@@0. "Confirm savestate"
@ -217,6 +271,14 @@ There is no separate option for the second CPU because both CPUs use the same cl
source. Setting this option to 200 will cause PicoDrive NOT to change GP2X's clocks
at all (this is if you use external program to set clock).
#endif
#ifdef PSP
@@0. "CPU/bus clock"
This allows to change CPU and bus clocks for PSP. 333MHz is recommended.
@@0. "[Display options]"
Enters Display options menu (see below).
#endif
@@0. "[Sega/Mega CD options]"
Enters Sega/Mega CD options menu (see below).
@ -347,6 +409,43 @@ for example most (all?) Wolfteam games, and some other ones. Don't use it for
games which don't need it, it will just slow them down.
#ifdef PSP
Display options
---------------
@@3. "Scale factor"
This allows to resize the displayed image by using the PSP's hardware. The number is
used to multiply width and height of the game image to get the size of image to be
displayed. If you just want to make it fullscreen, just use "Set to fullscreen"
setting below.
@@3. "Hor. scale (for low res. games)"
This one works similarly as the previous setting, but can be used to apply additional
scaling horizontally, and is used for games which use lower (256 pixel wide) Gen/MD
resolution.
@@3. "Hor. scale (for hi res. games)"
Same as above, only for higher (320 pixel wide) resolution using games.
@@3. "Bilinear filtering"
If this is enabled, PSP hardware will apply bilinear filtering on the resulting image,
making it smoother, but blurry.
@@3. "Wait for vsync"
Wait for the screen to finish updating before switching to next frame, to avoid tearing.
There are 3 options:
* never: don't wait for vsync.
* sometimes: wait only if emulator is running fast enough.
* always: always wait (causes emulation slowdown).
@@3. "Set to unscaled centered"
Adjust the resizing options to set game image to it's original size.
@@3. "Set to fullscreen"
Adjust the resizing options to make the game image fullscreen.
#endif
Key configuration
-----------------
@ -358,6 +457,9 @@ the right GP2X ones, which are assigned to them. If you bind 2 different GP2X bu
#ifdef GIZ
the right Giz ones, which are assigned to them. If you bind 2 different Giz buttons
#endif
#ifdef PSP
the right PSP ones, which are assigned to them. If you bind 2 different PSP buttons
#endif
to the same action, you will get a combo (which means that you will have to press
both buttons for that action to happen.
@ -404,14 +506,23 @@ What is emulated?
-----------------
Genesis/MegaDrive:
#ifdef PSP
main 68k @ 7.6MHz: yes, FAME/C core
z80 @ 3.6MHz: yes, CZ80 core
#else
main 68k @ 7.6MHz: yes, Cyclone core
z80 @ 3.6MHz: yes, DrZ80 core
#endif
VDP: yes, except some quirks not used by games
YM2612 FM: yes, optimized MAME core
SN76489 PSG: yes, MAME core
Sega/Mega CD:
#ifdef PSP
another 68k @ 12.5MHz: yes, FAME/C too
#else
another 68k @ 12.5MHz: yes, Cyclone too
#endif
gfx scaling/rotation chip (custom ASIC): yes
PCM sound source: yes
CD-ROM controller: yes (mostly)
@ -434,7 +545,7 @@ Credits
This emulator uses code from these people/projects:
notaz
GP2X, UIQ, Gizmondo ports, Cyclone 68000 hacks,
GP2X, UIQ, PSP, Gizmondo ports, CPU core hacks,
lots of additional coding (see changelog).
Homepage: http://notaz.gp2x.de/
@ -442,22 +553,39 @@ Dave
Cyclone 68000 core, Pico emulation library
Homepage: http://www.finalburn.com/
#ifdef PSP
Chui
FAME/C 68k interpreter core
(based on C68K by Stephane Dallongeville)
Stephane Dallongeville (written), NJ (optimized)
CZ80 Z80 interpreter core
#else
Reesy & FluBBa
DrZ80, the Z80 emulator written in ARM assembly.
DrZ80, the Z80 interpreter written in ARM assembly.
Homepage: http://reesy.gp32x.de/
Tatsuyuki Satoh, Jarek Burczynski, MultiArcadeMachineEmulator development
#endif
Tatsuyuki Satoh, Jarek Burczynski, MAME development
software implementation of Yamaha FM sound generator
MultiArcadeMachineEmulator (MAME) development
Texas Instruments SN76489 / SN76496 programmable tone /noise generator
MAME development
Texas Instruments SN76489 / SN76496 programmable tone/noise generator
Homepage: http://www.mame.net/
Stephane Dallongeville
Gens, MD/Mega CD/32X emulator. Most Sega CD code is based on this emu.
#ifdef PSP
people @ ps2dev.org forums / PSPSDK crew
libaudiocodec code (by cooleyes)
other sample code
#else
Helix community
Helix mp3 decoder
#endif
Additional thanks
@ -499,6 +627,13 @@ Additional thanks
Changelog
---------
1.35
+ PSP port added. Lots of new code for it. Integrated modified FAME/C, CZ80 cores.
+ Some minor generic optimizations.
* Patched some code which was crashing under PSP, but was working in GP2X/Giz
(although it should have crashed there too).
* Readme updated.
1.34
+ Gizmondo port added.
+ Some new optimizations in memory handlers, and for shadow/hilight mode.