Merge branch 'dev'
[picodrive.git] / platform / gp2x / PicoDrive.man.txt
CommitLineData
6cadc2da 1[About]\r
2This 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 of course). 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.\r
3\r
a39b7867 4PicoDrive is the first emulator ever to properly emulate Virtua Racing and it's SVP chip.\r
5\r
6cadc2da 6\r
7For help / comments / questions visit GP32X boards at:\r
8http://www.gp32x.com/board/\r
9\r
10\r
11[How to make it run]\r
916363c8 12Copy PicoDrive.gpe, pico940_v3.bin and mmuhack.o to any place in your filesystem (all 3 files must be in the same directory) and run PicoDrive.gpe. Then load a ROM and enjoy! ROMs can be in .smd or .bin format and can be zipped.\r
6cadc2da 13\r
916363c8 14If the game has graphic problems, make sure you use "16bit accurate renderer" (press Y). If it still doesn't work, try clean copy of the emulator, as you may have config problems.\r
6cadc2da 15\r
16\r
17[How to run Sega/Mega CD games]\r
18To play any game, you need BIOS files. These files must be copied to the same directory as PicoDrive.gpe. Files can be named as follows:\r
19US: us_scd1_9210.bin us_scd2_9306.bin SegaCDBIOS9303.bin\r
20EU: eu_mcd1_9210.bin eu_mcd2_9303.bin eu_mcd2_9306.bin\r
21JP: jp_mcd1_9112.bin jp_mcd1_9111.bin\r
22these files can also be zipped.\r
23\r
24The game must be dumped to ISO format, but BIN can be used too. If you want CD music, you must use ISO+mp3 files. Audio from BIN files won't be read at all due to SD access issues. Also BIN files are usually larger, so it's better to use ISO. ISO+mp3 files can be named similarly as for other emus.\r
25Here are some examples:\r
26\r
27SonicCD.iso\r
28SonicCD_02.mp3\r
29SonicCD_03.mp3\r
30...\r
31\r
32Sonic the Hedgehog CD (US) - Track 01.iso\r
33Sonic the Hedgehog CD (US) - Track 02.mp3\r
34Sonic the Hedgehog CD (US) - Track 03.mp3\r
35...\r
36\r
37ISO 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.\r
38Example:\r
39\r
40SonicCD.zip\r
41SonicCD_02.mp3\r
42SonicCD_03.mp3\r
43...\r
44\r
45Notes:\r
46If 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.\r
47If FMV game performance is poor, try adjusting "ReadAhead buffer" to something like 2048K.\r
48\r
49\r
50[Configuration]\r
511. "Renderer"\r
528bit fast:\r
53This 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.\r
54\r
55Other two are accurate line-based renderers. The 8bit is faster but does not run well with some games like Street Racer.\r
56\r
572. "Scaling"\r
58"hw" means GP2X hardware scaler, which causes no performance loss, but scaled image looks a bit blocky. "sw" means software scaling, which uses pixel averaging and may look a bit nicer, but blurry. Horizontal scaling is only for games which use so called "32 column mode" (256x224 or 256x240), and scales image width to 320 pixels. Vertical scales height to 240 for games which use height 224 (most of them).\r
59\r
916363c8 603. "Show FPS"\r
6cadc2da 61Self-explanatory. Format is XX/YY, where XX is the number of rendered frames and YY is the number of emulated frames per second.\r
62\r
916363c8 634. "Frameskip"\r
6cadc2da 64How many frames to skip rendering before displaying another. "Auto" is recommended.\r
65\r
916363c8 665. "Enable sound"\r
6cadc2da 67Does what it says. You must enable at least YM2612 or SN76496 (in advanced options, see below) for this to make sense.\r
68\r
916363c8 696. "Sound Quality"\r
6cadc2da 70Sound rate and stereo mode. If you want 44100Hz sound, it is recommended to enable the second core (next option).\r
71\r
916363c8 727. "Use ARM940 core for sound"\r
6cadc2da 73This option causes PicoDrive to use ARM940T core (GP2X's second CPU) for sound (i.e. to generate YM2612 samples) to improve performance noticeably.\r
74\r
916363c8 758. "6 button pad"\r
6cadc2da 76If you enable this, games will think that 6 button gamepad is connected. If you go and reconfigure your keys, you will be able to bind X,Y,Z and mode actions.\r
77\r
916363c8 789. "Region"\r
6cadc2da 79This 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.\r
80\r
916363c8 8110. "Use SRAM/BRAM savestates"\r
6cadc2da 82This 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 emulator.\r
83\r
916363c8 8411. "Confirm savestate"\r
6cadc2da 85Allows to enable confirmation on savestate saving (to prevent savestate overwrites), on loading (to prevent destroying current game progress), and on both or none.\r
86\r
916363c8 8712. "Save slot"\r
b39bf06a 88This is a slot number to use for savestates. This can also be configured to be changed with a button (see "key configuration").\r
89\r
916363c8 9013. "GP2X CPU clocks"\r
6cadc2da 91Here you can change clocks of both GP2X's CPUs. Larger values increase performance. There is no separate option for the second CPU because both CPUs use the same clock 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).\r
92\r
916363c8 9314. "[Sega/Mega CD options]"\r
6cadc2da 94Enters Sega/Mega CD options menu (see below).\r
95\r
916363c8 9615. "[advanced options]"\r
6cadc2da 97Enters advanced options menu (see below).\r
98\r
916363c8 9916. "Save cfg as default"\r
6cadc2da 100If 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).\r
101\r
916363c8 10217. "Save cfg for current game only"\r
6cadc2da 103Whenever you load current ROM again these settings will be loaded (squidgehack and RAM settings will not take effect until emulator is restarted).\r
104\r
105\r
106Advanced configuration\r
107----------------------\r
108\r
109Enter [advanced options] in config menu to see these options.\r
110\r
1111. "Gamma correction"\r
112Alters image gamma through GP2X hardware. Larger values make image to look brighter, lower - darker (default is 1.0).\r
113\r
b39bf06a 1142. "A_SN's gamma curve"\r
115If this is enabled, different gamma adjustment method will be used (suggested by A_SN from gp32x boards). Basically it makes difference for dark and bright colors.\r
116\r
1173. "Perfect vsync"\r
118This 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.\r
119\r
1204. "Emulate Z80"\r
6cadc2da 121Enables 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.\r
122\r
b39bf06a 1235. "Emulate YM2612 (FM)"\r
6cadc2da 124This enables emulation of six-channel FM sound synthesizer chip, which was used to produce sound effects and music.\r
125\r
b39bf06a 1266. "Emulate SN76496 (PSG)"\r
6cadc2da 127This enables emulation of additional sound chip for additional effects.\r
128\r
129Note: 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.\r
130\r
b39bf06a 1317. "gzip savestates"\r
6cadc2da 132This will always apply gzip compression on your savestates, allowing you to save some space and load/save time.\r
133\r
b39bf06a 1348. "Don't save last used ROM"\r
6cadc2da 135This will disable writing last used ROM to config on exit (what might cause SD card corruption according to DaveC).\r
136\r
b39bf06a 1379. "craigix's RAM timings"\r
6cadc2da 138This overclocks the GP2X RAM chips, but may cause instability. Recommended if you use the second core for sound. Needs emulator restart to take effect.\r
139See this thread:\r
140http://www.gp32x.com/board/index.php?showtopic=32319\r
141\r
b39bf06a 14210. "squidgehack"\r
6cadc2da 143Well known way to improve the GP2X performance. You must restart the emulator for the change of this option to take effect.\r
144\r
145\r
146Sega/Mega CD options \r
147--------------------\r
148\r
1491,2,3. "USA/EUR/JAP BIOS"\r
150These options just show if your BIOS files were correctly detected by the emulator (it shows the filename it is using). If so, you can press Start to test your BIOS.\r
151\r
1524. "CD LEDs"\r
153The 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.\r
154\r
f8af9634 1555. "CDDA audio"\r
6cadc2da 156This option enables CD audio playback.\r
157\r
1586. "PCM audio"\r
159This enables 8 channel PCM sound source. It is required for some games to run, because they monitor state of this audio chip.\r
160\r
1617. "ReadAhead buffer"\r
a39b7867 162This option can prefetch more data from the CD image then requested by game (to avoid accessing card later), what can improve performance in some cases.\r
163"OFF" is the recommended setting.\r
6cadc2da 164\r
1658. "Save RAM cart"\r
166Here you can enable 64K RAM cart. Format it in BIOS if you do.\r
167\r
1689. "Scale/Rot. fx"\r
169The Sega/Mega CD had scaling/rotation chip, which allows effects similar to "Mode 7" effects in SNES. Unfortunately emulating it is slow, and very few games used it, so it's better to disable this option, unless game really needs it.\r
170\r
17110. "Better sync"\r
172This option is similar to "Perfect synchro" in Gens. Some games require it to run, 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.\r
173\r
174\r
175Key configuration\r
176-----------------\r
177\r
b39bf06a 178Select "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 GP2X ones, which are assigned to them. If you bind 2 different GP2X buttons to the same action, you will get a combo (which means that you will have to press both buttons for that action to happen.\r
6cadc2da 179\r
180\r
181[Other important stuff]\r
182When 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).\r
183\r
184PicoDrive 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). Due to internal implementation mp3s must not be larger that ~15MB (15548416 bytes). Larger mp3s will not be fully loaded.\r
185\r
186RAM timings option is good for dualcore operation (it is disabled by default because it doesn't work on every GP2X, so enable it in advanced options).\r
187\r
188\r
189[Cheat support]\r
190To 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.\r
191Examples:\r
192\r
193Genecyst patch (this example is for Sonic):\r
194\r
19500334A:0005 Start with five lives\r
196012D24:0001 Keep invincibility until end of stage\r
197009C76:5478 each ring worth 2\r
198009C76:5678 each ring worth 3\r
199...\r
200\r
201Game Genie patch (for Sonic 2):\r
202\r
203ACLA-ATD4 Hidden palace instead of death egg in level select\r
204...\r
205\r
206Both GG and patch codes can be mixed in one file.\r
207\r
208When the file is ready, name it just like your ROM file, but with additional .pat extension, making sure that case matches.\r
209\r
210Examples:\r
211\r
212ROM: Sonic.zip\r
213PATCH FILE: Sonic.zip.pat\r
214\r
215ROM: Sonic 2.bin\r
216PATCH FILE: Sonic 2.bin.pat\r
217\r
218Put 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.\r
219\r
220\r
221[What is emulated?]\r
222Genesis/MegaDrive:\r
223main 68k @ 7.6MHz: yes, Cyclone core\r
224z80 @ 3.6MHz: yes, DrZ80 core\r
225VDP: yes, except some quirks not used by games\r
226YM2612 FM: yes, optimized MAME core\r
227SN76489 PSG: yes, MAME core\r
a39b7867 228SVP chip: yes! This is first emu to ever do this.\r
229Some in-cart mappers are supported too.\r
6cadc2da 230\r
231Sega/Mega CD:\r
232another 68k @ 12.5MHz: yes, Cyclone too\r
233gfx scaling/rotation chip (custom ASIC): yes\r
234PCM sound source: yes\r
235CD-ROM controller: yes (mostly)\r
236bram (internal backup RAM): yes\r
237RAM cartridge: yes\r
238\r
239\r
240[Problems / limitations]\r
a39b7867 241* 32x is not emulated.\r
6cadc2da 242* Various VDP quirks (window bug, scroll size 2, etc.) are not emulated, as very few games use this (if any at all).\r
a39b7867 243* The emulator is not 100% accurate, so some things may not work as expected.\r
6cadc2da 244\r
245\r
246[Credits]\r
916363c8 247This emulator is made of the code from following people/projects:\r
248\r
249notaz\r
250GP2X, UIQ, PSP, Gizmondo ports, CPU core hacks,\r
251lots of additional coding (see changelog).\r
252Homepage: http://notaz.gp2x.de/\r
6cadc2da 253\r
254Dave\r
255Cyclone 68000 core, Pico emulation library\r
256Homepage: http://www.finalburn.com/\r
257\r
6cadc2da 258Reesy & FluBBa\r
916363c8 259DrZ80, the Z80 interpreter written in ARM assembly.\r
6cadc2da 260Homepage: http://reesy.gp32x.de/\r
261\r
916363c8 262Tatsuyuki Satoh, Jarek Burczynski, MAME development\r
263software implementation of Yamaha FM sound generator\r
6cadc2da 264\r
916363c8 265MAME development\r
266Texas Instruments SN76489 / SN76496 programmable tone/noise generator\r
6cadc2da 267Homepage: http://www.mame.net/\r
268\r
269Stephane Dallongeville\r
270Gens, MD/Mega CD/32X emulator. Most Sega CD code is based on this emu.\r
271\r
272Helix community\r
273Helix mp3 decoder\r
274\r
275\r
276[Additional thanks]\r
916363c8 277* Charles MacDonald (http://cgfm2.emuviews.com/) for old but still very useful\r
278 info about genesis hardware.\r
6cadc2da 279* Steve Snake for all that he has done for Genesis emulation scene.\r
916363c8 280* Tasco Deluxe for his reverse engineering work on SVP and some mappers.\r
6cadc2da 281* Bart Trzynadlowski for his SSFII and 68000 docs.\r
282* Haze for his research (http://haze.mameworld.info).\r
916363c8 283* Lordus, Exophase and Rokas for various ideas.\r
284* Nemesis for his YM2612 research.\r
6cadc2da 285* Mark and Jean-loup for zlib library.\r
916363c8 286* ketchupgun for the skin.\r
6cadc2da 287* rlyeh and all the other people behind the minimal library.\r
288* Squidge for his famous squidgehack(tm).\r
289* Dzz for his ARM940 sample code.\r
290* GnoStiC & Puck2099 for USB joystick support.\r
291* Hermes PS2R, god_at_hell for the CpuCtrl library.\r
916363c8 292* A_SN for his gamma code.\r
6cadc2da 293* craigix for supplying the GP2X hardware and making this port possible.\r
294* Alex for the icon.\r
916363c8 295* All the people from gp32x boards for their support.\r
6cadc2da 296* Anyone else I forgot. You know who you are.\r
297\r
298\r
299[Disclaimer]\r
300THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
301\r
302SEGA/Genesis/MegaDrive/SEGA-CD/Mega-CD/32X are trademarks of Sega Enterprises Ltd.\r
303\r