readme updated
[libpicofe.git] / base_readme.txt
index 0c63752..71b2b5e 100644 (file)
@@ -25,6 +25,9 @@ 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
 #endif\r
 \r
+PicoDrive is the first emulator ever to properly emulate Virtua Racing and\r
+it's SVP chip.\r
+\r
 \r
 How to make it run\r
 ------------------\r
@@ -55,7 +58,6 @@ If you are on 1.5, there is a separate KXploited version for it.
 Note that this emulator may require some tweaking of configuration settings to run\r
 some games well. For Genesis/MegaDrive, if you have any problems (game does not\r
 boot, sound is glitchy, broken graphics), try to:\r
-  * enable "Accurate timing" (options menu)\r
 #ifdef PSP\r
   * enable "accurate renderer"\r
 #else\r
@@ -78,10 +80,14 @@ EU: eu_mcd1_9210.bin eu_mcd2_9303.bin eu_mcd2_9306.bin
 JP: jp_mcd1_9112.bin jp_mcd1_9111.bin\r
 these files can also be zipped.\r
 \r
-The game must be dumped to ISO format, but BIN can be used too. If you want\r
-CD music, you must use ISO+mp3 files. Audio from BIN files won't be read at\r
-all. Also BIN files are usually larger, so it's better to use ISO. ISO+mp3\r
-files can be named similarly as for other emus.\r
+The game must be dumped to ISO format, but CUE/BIN can be used too. When using\r
+CUE/BIN, you must load .cue file from the menu, or else the emu will not find\r
+audio tracks.\r
+CUE/BIN usually takes a lot of space, so it can be converted to cue/cso/mp3 by\r
+using bin_to_cso_mp3 tool, which is included with the emulator. See readme in\r
+the bin_to_cso_mp3/ directory for details.\r
+\r
+ISO+mp3 files can be named similarly as for other emus.\r
 Here are some examples:\r
 \r
 SonicCD.iso             data track\r
@@ -115,9 +121,8 @@ SonicCD_03.mp3
 Other important stuff\r
 ---------------------\r
 \r
-* If your Genesis/MD game hangs or has glitches, this is most likely because\r
-  "Accurate timing" option is not enabled, or fast renderer is used\r
-  (try the accurate one), or Z80 is disabled in "advanced options".\r
+* If your Genesis/MD game has graphical glitches, this is most likely because\r
+  "accurate renderer" is not enabled (see options).\r
 * Sega/Mega CD: If the game hangs after Sega logo, you may need to enable\r
   "better sync" and/or "Scale/Rot. fx" options, found in "Sega/Mega CD options"\r
   submenu, and then reset the game. Some other games may also require\r
@@ -133,13 +138,13 @@ Other important stuff
   Some games (like Snatcher) may hang in certain scenes because of this.\r
   Some mp3 rippers/encoders remove silence and beginning/end of audio tracks,\r
   what causes audio desyncs and/or mentioned problems.\r
+  If you have cue/bin rip, you can use the bin_to_cso_mp3 tool (included with\r
+  the emulator) to make a proper iso/mp3 rip.\r
 * Sega/Mega CD: If your games hangs at the BIOS screen (with planets shown),\r
   you may be using a bad BIOS dump. Try another from a different source.\r
 * Some Sega/Mega CD games don't use Z80 for anything, but they leave it active,\r
   so disabling Z80 manually (in advanced options) improves performance.\r
 #ifdef GP2X\r
-* Sega/Mega CD: if FMV game performance is poor, try adjusting\r
-  "ReadAhead buffer" to something like 2048K.\r
 * When you use both GP2X CPUs, keep in mind that you can't overclock as high as\r
   when using ARM920 only. For example my GP2X when run singlecore can reach\r
   280MHz, but with both cores it's about 250MHz. When overclocked too much,\r
@@ -210,17 +215,6 @@ pixels wide. This option scales their width to 320 by using simple
 pixel averaging scaling. Works only when 16bit renderer is enabled.\r
 \r
 #endif\r
-@@0. "Accurate timing"\r
-This adds some more emulation precision, but slows the emulation down. Without\r
-this option some games do not boot (Red Zone for example), others have sound\r
-problems. This options has no effect for Sega/Mega CD emulation.\r
-\r
-@@0. "Accurate sprites"\r
-This option improves emulation of sprite priorities, it also enables emulation\r
-of sprite collision bit. If you see one sprite being drawn incorrectly above\r
-the other (often seen in Sonic 3D Blast), you can enable this to fix the problem.\r
-This only works with the accurate renderers (see first option).\r
-\r
 @@0. "Show FPS"\r
 Self-explanatory. Format is XX/YY, where XX is the number of rendered frames and\r
 YY is the number of emulated frames per second.\r
@@ -323,6 +317,12 @@ This one adjusts the LCD refresh rate to better match game's refresh rate and st
 synchronizing rendering with it. Should make scrolling smoother and eliminate tearing.\r
 \r
 #endif\r
+@@1. "Disable sprite limit"\r
+The MegaDrive/Genesis had a limit on how many sprites (usually smaller moving\r
+objects) can be displayed on single line. This option allows to disable that\r
+limit. Note that some games used this to hide unwanted things, so it is not\r
+always good to enable this option.\r
+\r
 @@1. "Emulate Z80"\r
 Enables emulation of Z80 chip, which was mostly used to drive the other sound chips.\r
 Some games do complex sync with it, so you must enable it even if you don't use\r
@@ -391,14 +391,10 @@ This enables 8 channel PCM sound source. It is required for some games to run,
 because they monitor state of this audio chip.\r
 \r
 @@2. "ReadAhead buffer"\r
-#ifdef GP2X\r
-This option is for dealing with slow SD card access in GP2X, which makes FMV\r
-games unplayable. It will allow emulator not to access SD card for longer periods\r
-of time, but it will take more time to fill the buffer.\r
-#endif\r
-#ifdef GIZ\r
-This option can prefetch more data from the CD then read by the game - not really\r
-useful for Gizmondo (this is a workaround for SD access problems on GP2X port).\r
+This option can prefetch more data from the CD image then requested by game\r
+(to avoid accessing card later), what can improve performance in some cases.\r
+#ifndef PSP\r
+"OFF" is the recommended setting.\r
 #endif\r
 \r
 @@2. "Save RAM cart"\r
@@ -437,6 +433,13 @@ Same as above, only for higher (320 pixel wide) resolution using games.
 If this is enabled, PSP hardware will apply bilinear filtering on the resulting image,\r
 making it smoother, but blurry.\r
 \r
+@@3. "Gamma adjustment"\r
+Color gamma can be adjusted with this.\r
+\r
+@@3. "Black level"\r
+This can be used to reduce unwanted "ghosting" effect for dark games, by making\r
+black pixels brighter. Use in conjunction with "gamma adjustment" for more effect.\r
+\r
 @@3. "Wait for vsync"\r
 Wait for the screen to finish updating before switching to next frame, to avoid tearing.\r
 There are 3 options:\r
@@ -522,6 +525,8 @@ z80 @ 3.6MHz: yes, DrZ80 core
 VDP: yes, except some quirks not used by games\r
 YM2612 FM: yes, optimized MAME core\r
 SN76489 PSG: yes, MAME core\r
+SVP chip: yes! This is first emu to ever do this.\r
+Some in-cart mappers are supported too.\r
 \r
 Sega/Mega CD:\r
 #ifdef PSP\r
@@ -538,11 +543,13 @@ bram (internal backup RAM): yes
 Problems / limitations\r
 ----------------------\r
 \r
-* 32x and SVP are not emulated.\r
+* 32x is not emulated.\r
+#ifdef PSP\r
+* SVP emulation is terribly slow.\r
+#endif\r
 * Various VDP quirks (window bug, scroll size 2, etc.) are not emulated,\r
   as very few games use this (if any at all).\r
-* Some games don't work or have glitches because of inaccurate timing and sync\r
-  between the emulated chips.\r
+* The emulator is not 100% accurate, so some things may not work as expected.\r
 \r
 \r
 Credits\r
@@ -600,8 +607,11 @@ Additional thanks
 * Charles MacDonald (http://cgfm2.emuviews.com/) for old but still very useful\r
   info about genesis hardware.\r
 * Steve Snake for all that he has done for Genesis emulation scene.\r
+* Tasco Deluxe for his reverse engineering work on SVP and some mappers.\r
 * Bart Trzynadlowski for his SSFII and 68000 docs.\r
 * Haze for his research (http://haze.mameworld.info).\r
+* Lordus, Exophase and Rokas for various ideas.\r
+* Nemesis for his YM2612 research.\r
 * Mark and Jean-loup for zlib library.\r
 * ketchupgun for the skin.\r
 #ifdef GP2X\r
@@ -633,6 +643,74 @@ Additional thanks
 \r
 Changelog\r
 ---------\r
+1.50\r
+  + Added some basic support for Sega Pico, a MegaDrive-based toy.\r
+  + Added proper support for cue/bin images, including cdda playback.\r
+    .cue sheets with iso/cso/mp3/wav files listed in them are now\r
+    supported too (but 44kHz restriction still applies).\r
+  + Added bin_to_cso_mp3 tool, based on Exophase's bin_to_iso_ogg.\r
+    The tool can convert .cue/.bin Sega CD images to .cso/.mp3.\r
+  * Changed how scheduling between 68k and z80 is handled. Improves\r
+    performance for some games. Credits to Lordus for the idea.\r
+  * YM2612 state was not 100% saved, this should be better now.\r
+  * Improved renderer performance for shadow/hilight mode.\r
+  * Added a hack for YM2612 frequency overflow issue (bleep noises\r
+    in Shaq Fu, Spider-Man - The Animated Series (intro music), etc.)\r
+    Credits to Nemesis @ spritesmind forum. Works only sound rate\r
+    is set to 44kHz.\r
+  + Implemented some sprite rendering improvements, as suggested by\r
+    Exophase. Games with lots of sprites now perform better.\r
+  + Added better idle loop detection, based on Lordus' idea again.\r
+  * "accurate timing" option removed, as disabling it no longer\r
+    improves performance.\r
+  * "accurate sprites" was removed too, the new sprite code can\r
+    properly handle sprite priorities in all cases.\r
+  * Timers adjusted again.\r
+  * Improved .smd detection code.\r
+  * ARM: fixed a bug in DrZ80 core, which could cause problems in\r
+    some rare cases.\r
+  * ARM: fixed a problem of occasional clicks on MP3 music start.\r
+  * Minor general optimizations and menu improvements.\r
+  * Fixed a bug in Sega CD savestate loader, where the game would\r
+    sometimes crash after load.\r
+  * Fixed a crash of games using eeprom (introduced in 1.40b).\r
+\r
+1.40c\r
+  * Fixed a problem with sound in Marble Madness.\r
+  * GP2X: Fixed minor problem with key config.\r
+\r
+1.40b\r
+  * Fixed sprite masking code. Thanks to Lordus for explaining how it works.\r
+  + Added "disable sprite limit" option.\r
+  + PSP: added black level adjustment to display options.\r
+  * Changed reset to act as 'soft' reset.\r
+  + Added detection for Puggsy (it doesn't really have sram).\r
+  * Some small timing adjustments.\r
+\r
+1.40a\r
+  * GP2X: Fixed a binding problem with up and down keys.\r
+  * Default game config no longer overrides global user config.\r
+\r
+1.40\r
+  + Added support for SVP (Sega Virtua Processor) to emulate Virtua Racing,\r
+    wrote ARM recompiler and some HLE code for VR. Credits to Exophase and\r
+    Rokas for various ideas.\r
+  * Changed config file format, files are now human-readable. Game specific\r
+    configs are now held in single file (but old game config files are still\r
+    read when new one is missing).\r
+  * Fixed a bug where some key combos didn't work as expected.\r
+  * Fixed a regression in renderer (ARM ports only, some graphic glitches in\r
+    rare cases).\r
+  * Adjusted fast renderer to work with more games, including VR.\r
+  * Fixed a problem where SegaCD RAM cart data was getting lost on reset.\r
+  * GP2X: Greatly reduced SegaCD FMV game slowdowns by disabling read-ahead\r
+    in the Linux kernel and C library (thanks to Rokas and Exophase for ideas\r
+    again). Be sure to keep "ReadAhead buffer" OFF to avoid slowdowns.\r
+  + PicoDrive now comes with a game config file for some games which need\r
+    special settings, so they should now work out-of-the-box. More games will\r
+    be added with later updates.\r
+  + GP2X: Files now can be deleted by pressing A+SELECT in the file browser.\r
+\r
 1.35b\r
   * PSP: mp3 code should no longer fail on 1.5 firmware.\r
   + PSP: added gamma adjustment option.\r