
 Sega System C2 Emulator
 Version 0.2b

 by Charles Mac Donald
 E-mail: cgfm2@hooked.net
 WWW: http://cgfm2.emuviews.com/

 What's New
 ~~~~~~~~~~
 [Version 0.2b]
 - Haze submitted fixes for sample ROM loading in Stack Columns, and a bug
   with sprite width clipping.
 - Fixed version number display.
 - Improved sound channel disable switches.

 [Version 0.2a]
 - Made minor bugfix to correct the Borench colors, thanks to Haze.

 [Version 0.2]
 - Many improvements and patches from Haze, including an in-game DIP
   switch editor. Now most games have correct colors and gameplay.
 - Zipped ROM support.
 - SN76489 PSG sound.
 - Preliminary uPD7759 sample support.
 - Second player input via gamepad or joystick.
 - DIP switch saving and loading.
 - Configurable paths for ROMs, snapshots, and DIP switch settings.
 - Shadow / Hilight display processing for Poto Poto and Puyo Puyo 2.
 - By default frameskip is disabled, can set up through configuration file.
 - Tweaks to the rendering code for unique sprite colors and 100%
   accurate priority handling.
 - Stereo sound swap option.
 - Fixed problem with button C not being mapped correctly.

 Known Issues
 ~~~~~~~~~~~~
 It is important to know that this emulator is by no means complete, and
 as such has some problems.

 Due to protection, not all games are playable, and playable games may have
 problems (such as missing sound, resets / lockups, or gameplay issues).

 YM3438 sound does not work properly in some games, due to a lack of timer
 emulation. uPD7759 sample playback is too slow, and banked sample ROMs
 aren't supported.

 There are options for 16-bit displays and enabling a blur effect.
 This will be needed for games that use raster effects. However,
 I haven't completed the 16-bit color setup code, so you cannot
 use the '-depth' and '-blur' options for now.

 Not all games will display correct colors. You can switch beteween a
 fixed palette suitable for all games, or a dynamic palette which may
 work for others. The default palette mode is picked based on the game
 being played.

 Required ROMs
 ~~~~~~~~~~~~~

 ROM files can be put in two places:

     /ziproms/<gamename>.zip        (for zipped ROMs)

     /roms/<gamename>/<files>       (for unzipped ROMs)

 I haven't tried running games from archives with excess junk or
 directory structures within them. I use clean archives myself, and
 the ZIP loading code can handle that.

 See the configuration section for details on changing directories, if
 you want to store your ROM files elsewhere.

 Haze has provided a DAT file for ClrMamePro (www.mameworld.net/clrmame/).
 Because several C2 games require ROMs from other sets, and since multiple
 dumps exist, it is very convenient to place all your ROMs in one directory
 and use ClrMamePro to build the proper ROM directories for use with this
 emulator.

 If you don't use ClrMamePro, read the following instructions on how
 to generate a list of needed files for a given game.

 Use and Options
 ~~~~~~~~~~~~~~~

 Usage: c2emu <gamename> [-options]
 Type 'c2emu -help' for a summary of the available options
 Type 'c2emu -list' for a list of game drivers.
 Type 'c2emu -info <gamename>' for a list of files needed by game drivers.

     -vdriver <s>            select video driver
     -res <w> <h>            specify display resolution
     -depth <n>              specify display depth
     -blur <on|off>          enable blur effect (16-bit color only)
     -scanlines <on|off>     enable scanlines effect
     -scale <on|off>         scale display to width of screen
     -vsync <on|off>         enable vsync polling
     -throttle <on|off>      enable speed throttling
     -fps <on|off>           show FPS meter
     -skip <n>               specify frame skip level (1=no frames skipped)
     -sound <on|off>         enable sound output
     -sndcard <n>            select sound card
     -sndrate <n>            specify sound sample rate (8000-44100)
     -swap <on|off>          swap left and right channels
     -joy <s>                select joystick driver
     -dipdir <d>             specify directory for storing dip switch settings
     -zipdir <d>             specify directory for loading zipped game files
     -romdir <d>             specify directory for loading game files
     -snapdir <d>            specify directory for saving screen snapshots

 You can put these options in a plain text file called "c2emu.cfg"--one
 option per line, please. Command line options will override anything
 in the configuration file.

 If using VSync polling or speed throttling, don't enable frame skipping.
 Enabling sound automatically enables speed throttling.

 Sound emulation takes a *lot* of CPU time.

 There's no other friendly features at the moment, like auto frameskipping,
 save states, or game pausing. Sorry.

 Default directories:

    Zipped ROM images   =   ./ziproms
    Unzipped ROM images =   ./roms
    Game snapshots      =   ./snap
    DIP switch settings =   ./dip

 When specifying directories, use forward slashes, and don't append a
 trailing slash to the end of the path.
 E.g. `-snapdir e:/images/pcx'

 Video drivers:

    auto, safe, vga, modex, vesa2l, vesa3, vbeaf

 Joystick drivers:

    auto, none, standard, 2pads, 4button, 6button, 8button,
    fspro, wingex, sidewinder, gamepadpro, grip, grip4,
    sneslpt*, psxlpt*, n64lpt*, db9lpt*, tglpt*, wingwar,
    segaisa, segapci, segapci2

 Sound card numbers:

   0. Silence
   1. Sound Blaster
   3. Pro Audio Spectrum
   4. Ultrasound Max (CS4231 Codec)
   5. Ultrasound
   6. Windows Sound System
   7. Ensoniq Soundscape

 Supported games:

    bloxeedc      `Bloxeed'
    borench       `Borench'
    columns       `Columns (Japan)'
    columns2      `Columns II - The Voyage Through Time (Japan)'
    ichident      `Ichident-R (Puzzle & Action 2) (Japan)'
    potopoto      `PotoPoto (Japan)'
    puyopuyo      `Puyo Puyo (Program Revision ?, Japan)'
    puyopuya      `Puyo Puyo (Program Revsion A, Japan)'
    puyopuy2      `Puyo Puyo 2 (Expert?) (Japan)'
    spainpa       `SpainDumps version of Puzzle & Action (Bad Dump?)'
    stkclmns      `Stack Columns (Japan)'
    tantr         `Tant-R (Puzzle & Action) (Japan)'
    tantrbl       `Tant-R (Puzzle & Action) (Japan, Bootleg?)'
    tforceac      `Thunder Force AC (US/Europe)'
    tfacjp        `Thunder Force AC (Japan)'
    tfacbl        `Thunder Force AC (US/Europe, Bootleg)'
    zunkyou       `Zunzunkyou No Yabou (Japan)'

 Keys
 ~~~~
 Arrow keys -   Joystick
 a, s, d    -   Buttons A, B, C
 1, 2       -   1P, 2P start
 3, 4       -   1P, 2P coin
 5, 6       -   Test, Service

 7          -   Toggle YM3438 FM sound output
 8          -   Toggle SN76489 PSG sound output
 9          -   Toggle uPD7759 sound output
 0          -   Enable all sound channels

 Esc/End    -   Quit emulator
 Tab        -   Reset emulator
 F1-F4      -   Set frame skip level (F1=no skip, F2=every other frame, etc.)

 F5         -   Save snapshot to <gamename>.pcx
 F9         -   Toggle FPS meter
 F10        -   Toggle speed throttling
 F11        -   Toggle VSync polling

 F12        -   Switch between a fixed palette suitable for all games, or
                a hack that may display partially correct colors in some
                games.

 Alt-R      -   Dump the program ROM to '<gamename>.rom'

 F6         -   Switch between DIP switch banks 1 and 2.
 Numpad 1-9 -   Toggle DIP switch bits 0-7 for the current bank selected.


 Game Descriptions
 ~~~~~~~~~~~~~~~~~
 Haze has written up a list of how well game performs.
 Please read the list before asking questions about game problems.

 Bloxeed (System C Version) (English)
 Rom Name: bloxeedc
 Genre: Puzzle (Vs.)
 Graphics: Good
 Sound: None
 Playable: Yes

 Borench (English)
 Rom Name: borench
 Genre: Puzzle
 Graphics: Good
 Sound: Partially (Missing Samples)
 Playable: Yes

 Columns (Japanese)
 Rom Name: columns
 Genre: Puzzle
 GraGood
 Sound: Full
 Playable: Yes*
 *Points System doesn't work Correctly (Starscream Bug?)

 Columns II - The Voyage Through Time (Japanese)
 Rom Name: columns2
 Genre: Puzzle
 Graphics: Good
 Sound: Full
 Playable: Yes

 Ichident-R (Puzzle & Action 2) (Japanese)
 Rom Name: ichident
 Genre: Puzzle (Mini-Games)
 Graphics: Bad Colours*
 Sound: Partial (Missing Samples)
 Playable: Yes*
 *Colour Issues will cause problems in some Sub-Games

 Poto Poto (Japanese)
 Rom Name: potopoto
 Genre: Puzzle (Vs.)
 Graphics: Good
 Sound: Partial (Missing Samples)
 Playable: Yes

 Puyo Puyo (Japanese, Program Revision ?)
 Rom Name: puyopuyo
 Genre: Puzzle (Vs.)
 Graphics: Good
 Sound: Partial (Missing Some Samples)
 Playable: Yes

 Puyo Puyo (Japanese, Program Revision A)
 Rom Name: puyopuya
 Genre: Puzzle (Vs.)
 Graphics: Good
 Sound: Partial (Missing Some Samples)
 Playable: Yes

 Puyo Puyo 2 (Japanese)
 Rom Name: puyopuy2
 Genre: Puzzle (Vs.)
 Graphics: Good
 Sound: Partial (Missing Some Samples)
 Playable: Partial*
 *Game Won't Move to Level 2 When You Win .. Protection

 Puzzle and Action (Spain Dumps, Bad?)
 Rom Name: spainpa
 Genre: Puzzle (Mini-Games)
 Graphics: n/a
 Sound: n/a
 Playable: No*
 *This is Probably a Bad Dump, half sized roms?

 Stack Columns
 Rom Name: stkclmns
 Genre: Puzzle (Vs.)
 Graphics: Good
 Sound: Partial (Missing Samples)
 Playable: Yes*
 *Some Protection(?) Problems, eg You can't enter your Hi-Score name

 Tant-R (Puzzle and Action) (Japanese)
 Rom Name: tantr
 Genre: Puzzle (Mini-Games)
 Graphics: Partial (Needs Palette Raster Effects)
 Sound: Partial (Missing Samples)
 Playable: No*
 *There are Protection Issues, Use the Bootleg

 Tant-R (Puzzle and Action) (Japanese, Bootleg)
 Rom Name: tantrbl
 Genre: Puzzle (Mini-Games)
 Graphics: Partial (Needs Palette Raster Effects)
 Sound: Partial (Missing Samples)
 Playable: Yes

 ThunderForce AC (English)
 Rom Name: tforceac
 Genre: Shoot 'em Up
 Graphics: Partial*
 Sound: No
 Playable: No*
 *There are Protection Issues, Use the Bootleg

 ThunderForce AC (Japanese)
 Rom Name: tfacjp
 Genre: Shoot 'em Up
 Graphics: Partial*
 Sound: No
 Playable: No*
 *There are Protection Issues, Use the English Language Bootleg

 ThunderForce AC (English, Bootleg)
 Rom Name: tfacbl
 Genre: Shoot 'em Up
 Graphics: Good
 Sound: No
 Playable: Yes

 Zunzunkyou No Yabou! (Japanese)
 Rom Name: zunkyou
 Genre: Shoot 'em Up
 Graphics: Good
 Sound: Partial (Missing Samples)
 Playable: Yes


 Thanks and Greetings
 ~~~~~~~~~~~~~~~~~~~~
 I'd like to thank Haze for providing valuable information about the C2
 hardware. This emulator would not have been possible without his help.
 Also for providing the ClrMamePro DAT file, beta testing, and source code
 fixes / improvements.
 
 In alphabetical order, everybody else:

 - Bart Trzynadlowski
 - Christian Schiller
 - Flavio Morsoletto
 - Omar Cornut
 - Pascal Bosquet
 - Stephane Dallongeville
 - Ulrich Hecht

 And last but not least, the ROM dumpers:

 - Team Japump
 - Thierry Lescot & Gerald
 - D-Zine
 - Spain Dumps.

 If I'm forgetting someone, let me know.

 Source Code
 ~~~~~~~~~~~
 This program is not truly free software, in the sense that I do not allow
 ports or derviative works. My primary reason for making the source code
 available is so people can learn from it and see one possible way to
 implement things. So feel free to read the source, compile your own
 version to experiment with, or submit changes and other cool features
 to me, but that's it. ;)

 Miscellaneous
 ~~~~~~~~~~~~~
 - I'm interested in schematics for any Sega arcade game board.

 - If any Mega Play or Mega Tech game cartridges (or the system BIOS)
   have been dumped, I'd appreciate some information on that as well.

 Legal
 ~~~~~
 "Starscream 680x0 emulation library by Neill Corlett
  (corlett@elwha.nrrc.ncsu.edu)"

 SEAL Synthetic Audio Library API Interface Copyright (C) 1995, 1996
    Carlos Hasan. All Rights Reserved.

 YM2612, SN76496, and uPD7759 emulation came from the MAME source code.
    http://www.mame.net/

