492 lines
17 KiB
Plaintext
492 lines
17 KiB
Plaintext
#
|
|
PicoDrive 1.xx
|
|
|
|
About
|
|
-----
|
|
#include "../README"
|
|
|
|
How to make it run
|
|
------------------
|
|
|
|
#ifdef GP2X
|
|
Extract all files to some directory on your SD and run PicoDrive.gpe from your
|
|
GP2X/Wiz/Caanoo menu. The same .gpe supports GP2X F100/F200, Wiz and Caanoo,
|
|
there is no need to use separate versions.
|
|
Then load a ROM and enjoy! ROMs can be in .smd or .bin format and can be zipped.
|
|
Sega/Mega CD images can be in ISO/CSO+MP3/WAV or CUE+BIN formats (read below
|
|
for more details).
|
|
#endif
|
|
#ifdef GIZ
|
|
First make sure you have homebrew-enabled Service Pack installed. Then copy
|
|
PicoDrive.exe and KGSDK.dll to any place in your filesystem (both files must
|
|
be in the same directory) and run PicoDrive.exe using the launcher of your choice
|
|
(some of them might require renaming PicoDrive.exe to Autorun.exe, placing it in
|
|
the root of SD, etc). Then load a ROM and enjoy! ROMs can be placed anywhere, can
|
|
be in .smd or .bin format and can be zipped (one ROM per zip).
|
|
#endif
|
|
#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, there is a separate KXploited version for it.
|
|
#endif
|
|
#ifdef PANDORA
|
|
Just copy the .pnd to <sd card>/pandora/menu or <sd card>/pandora/desktop.
|
|
#endif
|
|
|
|
This emulator has lots of options with various tweaks (for improved speed mostly),
|
|
but it should have best compatibility in it's default config. If suddenly you
|
|
start getting glitches or change something and forget what, use "Restore defaults"
|
|
option.
|
|
|
|
|
|
How to run Sega/Mega CD games
|
|
-----------------------------
|
|
|
|
To play any CD game, you need BIOS files. These files must be copied to
|
|
#ifdef PANDORA
|
|
<sd card>/pandora/appdata/picodrive/ directory
|
|
(if you run PicoDrive once it will create that directory for you).
|
|
#else
|
|
the same directory as PicoDrive files.
|
|
#endif
|
|
Files can be named as follows:
|
|
|
|
US: us_scd1_9210.bin us_scd2_9306.bin SegaCDBIOS9303.bin
|
|
EU: eu_mcd1_9210.bin eu_mcd2_9303.bin eu_mcd2_9306.bin
|
|
JP: jp_mcd1_9112.bin jp_mcd1_9111.bin
|
|
these files can also be zipped.
|
|
|
|
The game must be dumped to CUE+BIN or CUE+ISO format.
|
|
ISO/CSO+MP3/WAV is also supported, but may cause problems.
|
|
When using CUE/BIN, you must load .cue file from the menu, or else
|
|
the emu will not find audio tracks.
|
|
|
|
|
|
Other important stuff
|
|
---------------------
|
|
|
|
* Sega/Mega CD: If the background music is missing, the CD image format may be
|
|
wrong. Currently .cue/bin is recommended. Be aware that there are lots of bad
|
|
dumps on the web, and some use mp3 format for audio, which often causes
|
|
problems (see below).
|
|
* While iso/mp3 format is supported, it's not recommended to use.
|
|
Some of many problems with mp3 are listed below:
|
|
* MP3s may be named incorrectly and will not play.
|
|
* The game music may play too fast/too slow/out of sync, which means they
|
|
are encoded incorrectly. PicoDrive is not a mp3 player, so all mp3s MUST
|
|
be encoded at 44.1kHz stereo.
|
|
* Sega/Mega CD: If your games hang at the BIOS screen (with planets shown),
|
|
you may be using a bad BIOS dump. Try another from a different source,
|
|
like dumping it from your own console.
|
|
#ifdef GP2X
|
|
* What using mp3s, use lower bitrate for better performance (96 or 128kbps
|
|
CBRs recommended).
|
|
* GP2X F100/F200: When you use both GP2X CPUs, keep in mind that you can't
|
|
overclock as high as when using ARM920 only. For example my GP2X when run
|
|
singlecore can reach 280MHz, but with both cores it's about 250MHz. When
|
|
overclocked too much, it may start hanging and producing random noise, or
|
|
causing ARM940 crashes ("940 crashed" message displayed).
|
|
* GP2X F100/F200: Due to internal implementation mp3s must not be larger that
|
|
12MB (12582912 bytes). Larger mp3s will not be fully loaded.
|
|
#endif
|
|
|
|
|
|
Configuration
|
|
-------------
|
|
|
|
@@0. "Save slot"
|
|
This is a slot number to use for savestates, when done by a button press outside
|
|
menu. This can also be configured to be changed with a button
|
|
(see "key configuration").
|
|
|
|
@@0. "Frameskip"
|
|
How many frames to skip rendering before displaying another.
|
|
"Auto" is recommended.
|
|
|
|
@@0. "Region"
|
|
This option lets you force the game to think it is running on machine from the
|
|
specified region, or just to set autodetection order. Also affects Sega/Mega CD.
|
|
|
|
@@0. "Show FPS"
|
|
Self-explanatory. Format is XX/YY, where XX is the number of rendered frames and
|
|
YY is the number of emulated frames per second.
|
|
|
|
@@0. "Enable sound"
|
|
Does what it says. You must enable at least YM2612 or SN76496 (in advanced options,
|
|
see below) for this to make sense (already done by default).
|
|
|
|
@@0. "Sound Quality"
|
|
#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
|
|
|
|
@@0. "Confirm savestate"
|
|
Allows to enable confirmation on savestate saving (to prevent savestate overwrites),
|
|
on loading (to prevent destroying current game progress), and on both or none, when
|
|
using shortcut buttons (not menu) for saving/loading.
|
|
|
|
@@0. "[Display options]"
|
|
Enters Display options menu (see below).
|
|
|
|
@@0. "[Sega/Mega CD options]"
|
|
Enters Sega/Mega CD options menu (see below).
|
|
|
|
@@0. "[32X options]"
|
|
Enters 32X options menu (see below).
|
|
|
|
@@0. "[Advanced options]"
|
|
Enters advanced options menu (see below).
|
|
|
|
@@0. "Save cfg as default"
|
|
If you save your config here it will be loaded on next ROM load, but only if there
|
|
is no game specific config saved (which will be loaded in that case).
|
|
You can press left/right to switch to a different config profile.
|
|
|
|
@@0. "Save cfg for current game only"
|
|
Whenever you load current ROM again these settings will be loaded.
|
|
|
|
@@0. "Restore defaults"
|
|
Restores all options (except controls) to defaults.
|
|
|
|
|
|
Display options
|
|
---------------
|
|
|
|
#ifndef PANDORA
|
|
@@1. "Renderer"
|
|
#ifdef GP2X
|
|
8bit fast:
|
|
This enables alternative heavily optimized tile-based renderer, which renders
|
|
pixels not line-by-line (this is what accurate renderers do), but in 8x8 tiles,
|
|
which is much faster. But because of the way it works it can't render any
|
|
mid-frame image changes (raster effects), so it is useful only with some games.
|
|
|
|
Other two are accurate line-based renderers. The 8bit is faster but does not
|
|
run well with some games like Street Racer.
|
|
|
|
#endif
|
|
#ifdef GIZ
|
|
This option allows to switch between 16bit and 8bit renderers. The 8bit one is
|
|
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
|
|
#endif
|
|
#ifdef GP2X
|
|
@@1. "Tearing Fix"
|
|
Wiz only: works around the tearing problem by using portrait mode. Causes ~5-10%
|
|
performance hit, but eliminates the tearing effect.
|
|
|
|
@@1. "Gamma correction"
|
|
F100/F200 only: Alters image gamma through GP2X hardware. Larger values make
|
|
image to look brighter, lower - darker (default is 1.0).
|
|
|
|
@@1. "Vsync"
|
|
This one adjusts the LCD refresh rate to better match game's refresh rate and
|
|
starts synchronizing rendering with it. Should make scrolling smoother and
|
|
eliminate tearing on F100/F200.
|
|
#endif
|
|
#ifdef GIZ
|
|
@@1. "Scanline mode"
|
|
This option was designed to work around slow framebuffer access (the Gizmondo's
|
|
main bottleneck) by drawing every other line (even numbered lines only).
|
|
This improves performance greatly, but looses detail.
|
|
|
|
@@1. "Scale low res mode"
|
|
The Genesis/Megadrive had several graphics modes, some of which were only 256
|
|
pixels wide. This option scales their width to 320 by using simple
|
|
pixel averaging scaling. Works only when 16bit renderer is enabled.
|
|
|
|
@@1. "Double buffering"
|
|
Draws the display to offscreen buffer, and flips it with visible one when done.
|
|
Unfortunately this causes serious tearing, unless v-sync is used (next option).
|
|
|
|
@@1. "Wait for V-sync"
|
|
Waits for vertical sync before drawing (or flipping buffers, if previous option
|
|
is enabled). Emulation is stopped while waiting, so this causes large performance
|
|
hit.
|
|
#endif
|
|
#ifdef PSP
|
|
@@1. "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.
|
|
|
|
@@1. "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.
|
|
|
|
@@1. "Hor. scale (for hi res. games)"
|
|
Same as above, only for higher (320 pixel wide) resolution using games.
|
|
|
|
@@1. "Bilinear filtering"
|
|
If this is enabled, PSP hardware will apply bilinear filtering on the resulting image,
|
|
making it smoother, but blurry.
|
|
|
|
@@1. "Gamma adjustment"
|
|
Color gamma can be adjusted with this.
|
|
|
|
@@1. "Black level"
|
|
This can be used to reduce unwanted "ghosting" effect for dark games, by making
|
|
black pixels brighter. Use in conjunction with "gamma adjustment" for more effect.
|
|
|
|
@@1. "Wait for v-sync"
|
|
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).
|
|
|
|
@@1. "Set to unscaled centered"
|
|
Adjust the resizing options to set game image to it's original size.
|
|
|
|
@@1. "Set to 4:3 scaled"
|
|
Scale the image up, but keep 4:3 aspect, by adding black borders.
|
|
|
|
@@1. "Set to fullscreen"
|
|
Adjust the resizing options to make the game image fullscreen.
|
|
#endif
|
|
#ifdef PANDORA
|
|
Allows to set up scaling, filtering and vertical sync.
|
|
#endif
|
|
|
|
|
|
Sega/Mega CD options
|
|
--------------------
|
|
|
|
@@2. "CD LEDs"
|
|
The Sega/Mega CD unit had two blinking LEDs (red and green) on it. This option
|
|
will display them on top-left corner of the screen.
|
|
|
|
@@2. "CDDA audio"
|
|
This option enables CD audio playback.
|
|
|
|
@@2. "PCM audio"
|
|
This enables 8 channel PCM sound source. It is required for some games to run,
|
|
because they monitor state of this audio chip.
|
|
|
|
@@2. "Save RAM cart"
|
|
Here you can enable 64K RAM cart. Format it in BIOS if you do.
|
|
|
|
@@2. "Scale/Rot. fx"
|
|
The Sega/Mega CD had scaling/rotation chip, which allows effects similar to
|
|
"Mode 7" effects in SNES. On slow systems like GP2X, disabling may improve
|
|
performance but cause graphical glitches.
|
|
|
|
|
|
32X options
|
|
-----------
|
|
|
|
@@3. "32X enabled"
|
|
Enables emulation of addon. Option only takes effect when ROM is reloaded.
|
|
|
|
#ifdef GP2X
|
|
@@3. "32X renderer"
|
|
This currently only affects how the Genesis/MD layers are rendered, which is
|
|
same as "Renderer" in display options.
|
|
|
|
#endif
|
|
@@3. "PWM sound"
|
|
Emulates PWM sound portion of 32X hardware. Disabling this may greatly improve
|
|
performance for games that dedicate one of SD2s for sound, but will cause
|
|
missing sound effects and instruments.
|
|
|
|
@@3. "Master SH2 cycles" / "Slave SH2 cycles"
|
|
This allows underclocking the 32X CPUs for better emulation performance. The
|
|
number has the same meaning as cycles in DOSBox, which is cycles per millisecond.
|
|
Underclocking too much may cause various in-game glitches.
|
|
|
|
|
|
Advanced configuration
|
|
----------------------
|
|
|
|
@@4. "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 enter the menu or exit the
|
|
emulator.
|
|
|
|
@@4. "Disable sprite limit"
|
|
The MegaDrive/Genesis had a limit on how many sprites (usually smaller moving
|
|
objects) can be displayed on single line. This option allows to disable that
|
|
limit. Note that some games used this to hide unwanted things, so it is not
|
|
always good to enable this option.
|
|
|
|
@@4. "Emulate Z80"
|
|
Enables emulation of Z80 chip, which was mostly used to drive the other sound chips.
|
|
Some games do complex sync with it, so you must enable it even if you don't use
|
|
sound to be able to play them.
|
|
|
|
@@4. "Emulate YM2612 (FM)"
|
|
This enables emulation of six-channel FM sound synthesizer chip, which was used to
|
|
produce sound effects and music.
|
|
|
|
@@4. "Emulate SN76496 (PSG)"
|
|
This enables emulation of PSG (programmable sound generation) sound chip for
|
|
additional effects.
|
|
|
|
Note: if you change sound settings AFTER loading a ROM, you may need to reset
|
|
game to get sound. This is because most games initialize sound chips on
|
|
startup, and this data is lost when sound chips are being enabled/disabled.
|
|
|
|
@@4. "gzip savestates"
|
|
This will always apply gzip compression on your savestates, allowing you to
|
|
save some space and load/save time.
|
|
|
|
@@4. "Don't save last used ROM"
|
|
This will disable writing last used ROM to config on exit (what might cause SD
|
|
card corruption according to DaveC).
|
|
|
|
@@4. "Disable idle loop patching"
|
|
Idle loop patching is used to improve performance, but may cause compatibility
|
|
problems in some rare cases. Try disabling this if your game has problems.
|
|
|
|
@@4. "Disable frame limiter"
|
|
This allows games to run faster then 50/60fps, useful for benchmarking.
|
|
|
|
#ifdef GP2X
|
|
@@4. "Use ARM940 core for sound"
|
|
F100/F200: This option causes PicoDrive to use ARM940T core (GP2X's second CPU)
|
|
for sound (i.e. to generate YM2612 samples) to improve performance noticeably.
|
|
It also decodes MP3s in Sega/Mega CD mode.
|
|
|
|
#endif
|
|
@@4. "Enable dynarecs"
|
|
This enables dynamic recompilation for SH2 and SVP CPU code,
|
|
what improves emulation performance greatly.
|
|
|
|
|
|
Key configuration
|
|
-----------------
|
|
|
|
Select "Configure controls" from the main menu. Then select "Player 1" and you will
|
|
see two columns. The left column lists names of Genesis/MD controller buttons, and
|
|
the right column your handheld ones, which are assigned.
|
|
|
|
There is also option to enable 6 button pad (will allow you to configure XYZ
|
|
buttons), and an option to set turbo rate (in Hz) for turbo buttons.
|
|
|
|
|
|
Cheat support
|
|
-------------
|
|
|
|
To use GG/patch codes, you must type them into your favorite text editor, one
|
|
per line. Comments may follow code after a whitespace. Only GameGenie and
|
|
Genecyst patch formats are supported.
|
|
Examples:
|
|
|
|
Genecyst patch (this example is for Sonic):
|
|
|
|
00334A:0005 Start with five lives
|
|
012D24:0001 Keep invincibility until end of stage
|
|
009C76:5478 each ring worth 2
|
|
009C76:5678 each ring worth 3
|
|
...
|
|
|
|
Game Genie patch (for Sonic 2):
|
|
|
|
ACLA-ATD4 Hidden palace instead of death egg in level select
|
|
...
|
|
|
|
Both GG and patch codes can be mixed in one file.
|
|
|
|
When the file is ready, name it just like your ROM file, but with additional
|
|
.pat extension, making sure that case matches.
|
|
|
|
Examples:
|
|
|
|
ROM: Sonic.zip
|
|
PATCH FILE: Sonic.zip.pat
|
|
|
|
ROM: Sonic 2.bin
|
|
PATCH FILE: Sonic 2.bin.pat
|
|
|
|
Put the file into your ROMs directory. Then load the .pat file as you would
|
|
a ROM. Then Cheat Menu Option should appear in main menu.
|
|
|
|
|
|
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 and modes not used by games
|
|
YM2612 FM: yes, optimized MAME core
|
|
SN76489 PSG: yes, MAME core
|
|
SVP chip: yes! This is first emu to ever do this.
|
|
Some in-cart mappers are also supported.
|
|
|
|
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)
|
|
bram (internal backup RAM): yes
|
|
|
|
32X:
|
|
2x SH2 @ 23MHz: yes, custom recompiler
|
|
Super VDP: yes
|
|
PWM: yes
|
|
|
|
|
|
Problems / limitations
|
|
----------------------
|
|
|
|
#ifdef PSP
|
|
* SVP emulation is terribly slow.
|
|
#endif
|
|
* Various VDP modes and quirks (window bug, scroll size 2, etc.) are not
|
|
emulated, as very few games use this (if any at all).
|
|
* The emulator is not 100% accurate, so some things may not work as expected.
|
|
* The FM sound core doesn't support all features and has some accuracy issues.
|
|
|
|
|
|
Changelog
|
|
-------
|
|
|
|
#include "../ChangeLog"
|
|
|
|
|
|
Credits
|
|
-------
|
|
|
|
This emulator is made of the code from following people/projects:
|
|
|
|
#include "../AUTHORS"
|
|
|
|
|
|
License
|
|
-------
|
|
|
|
This program and it's code is released under the terms of MAME license:
|
|
#include "../COPYING"
|
|
|
|
SEGA/Genesis/MegaDrive/SEGA-CD/Mega-CD/32X are trademarks of
|
|
Sega Enterprises Ltd.
|
|
|