=================================================================
 Callus                                    Version 0.30 (3/24/98)
 by Bloodlust Software
=================================================================

Do not email stupid questions to: bldlust@maelstrom.net 
Do not send bug reports or questions concerning the operation of callus. 
Do not ask about future versions of anything, ever.
NEVER send any files without asking first.

Get Scitech Display Doctor at www.scitechsoft.com

The arcade resolution is 384x224 and there is no SVGA equivilent.
For compatibilities sake, the default resolution is 640x480.
The resolution can be changed from the settings menu.
The best VESA resolution is 400x300, although not all cards natively support 
that res (which is why you should get SDD). There's also tweaked res's 
384x257 and 384x224 which may not work on all monitors/vidcards. 
These video modes are planar and are a lot slower than a regular VESA mode.

Estimated free RAM requirements:
 12MB for Final Fight, UN Squadron, Area88, Carrier Air Wing, 
          Magic Sword, 1941, Megatwins, Nemo, Varth
 16MB for Strider, Captain Commando, King of Dragons, Willow, Mercs, 
          WOF, Cad&Dinosaurs
 20MB for SF2 WW/CE/Turbo, Three Wonders, Punisher, MBomber
 24MB for Rockman The Power Battle
Having sound enabled requires an extra 2MB of RAM.
It is possible to use virtual ram but that is neither recommended nor supported.

To get into a game's test mode, hold down F11 (the test 
mode button) and then hit F10 to reset. 

Punisher and other newer Qsound games do not use dipswitches, 
instead game configuration is stored in an EEPROM chip. To change 
game settings, you have to enter its test mode with F11. The contents 
of the EEPROM are read/written to a .EPM file (eg, punish.epm) located 
in the save directory.

To play a 3 or 4 player game, turning on the alt keyboard layout (misc menu)
will allow all 4 start/coin buttons to be accessed via keys '1'-'8'.
F6/F8 can still be used to change state slots.

Muscle Bomber Duo and Slammasters both employ a sick copy-protection thing,
as a result Slammasters crashes frequently in 'Single Match', 
although Mbomber seems to run ok.

The digital FM uses an obscene amount of self-modifying code to be as 
fast as possible. Hopefully this is not a problem with non-intel cpus.
The default sound rate is 22050hz. FM is most accurate at 44100hz. 
A fast CPU is needed for digital FM at high sample rates. 
Using '-nosound' will disable sound and Z80 totally for slow computers.

---------------------
     Identity
---------------------

Callus is a DOS based emulator for the Capcom System 1 hardware.

Currently runs: 
 Final Fight (US and Jap), 
 Street Fighter II The World Warriors (US and Jap)
 Street Fighter II Championship Edition (US and Jap)
 Street Fighter II Turbo (US and Jap), 
 Strider (US and Jap), 
 UN Squadron (US) and Area88 (Jap), 
 Carrier Air Wing (US and Jap)
 Three Wonders (US) and Wonder 3 (Jap),
 Captain Commando (US and Jap),
 King of Dragons (US and Jap),
 Willow (US and Jap),
 Knights of the Round (US and Jap),
 Magic Sword,
 Megatwins (US) and Chiki Chiki Boys (Jap),
 1941 (US and Jap),
 Rockman The Power Battle (Jap),
 Nemo (US and Jap),
 Varth (US and Jap),
 Quiz and Dragons (US and Jap),
 Mercs,
 Punisher (US and Jap),
 Warriors of Fate (US and Jap),
 Cadillacs and Dinosaurs,
 Muscle Bomber Duo,
 Pnickies (Jap),
 Dynasty Wars (Jap)

(US refers less specifically to any non-Japcrap romset)

The graphics rendering, palette mapper, digital YM2151
emulation and ADPCM mixer were written from *scratch* in assembly.
The 68k and Z80 are also in asm. The rest is in C++.

It is freeware and it *MUST NOT* be distributed with arcade
ROMs and it cannot be modified or sold. This readme must be 
included unmodified with the executable.


---------------------
     Novelty
---------------------

Version 0.30:
 -Fixed sprite clip bug
 -Row based overdraw reduction
 -Exponential operator envelopes
 -Corrected black background intensity
 -'resv' command line option
 -Volume control dialog 
 -Movie playing/recording (<gamename>.CM?)
 -Rewrote graphics decoder in asm (faster loading)
 -Modified 384x224 mode (should be more compatible)
 -Rotated display
 -Japanese Dynasty Wars support (dwj)
 -Japanese Pnickies support (pnickj)
 -Chiki Chiki Boys support (chikij) 
 -Tile/sprite partial-priority
 -Improved plane enable bits
 -Muscle Bomber Duo support (mbomber)
 -Hybrid input option (see below)
 -KOD/Rockmanj dipswitches
 -3rd/4th player inputs
 -Support for a second sidewinder (untested)
 -Haggar pants GUI
 -Fixed sprite/bg synch
 -Sound logging to wav files
 -Implemented ADPCM channel volume
 -Fixed rare palette mapper color leak
 -Fixed minor player input bug
 -Cadillacs and Dinosaurs support (dino)
 -Japanese Knights of the Round support (knightsj)
 -Japanese Warriors of Fate support (wofj)
 -Warriors of Fate support (wof)
 -Semiaccurate YM2151 timer/irq mechanism
 -Digital YM2151 FM emulation
 -Emulated hardware coin counter
 -1941 support (1941)
 -State slots changeable with F6/F8
 -State display
 -Fixed -remapbut bug
 -Punisher support (punish)
 -EEPROM emulation 
 -Japanese Punisher support (punishj)
 -Nemo support (nemo)
 -Quiz and Dragons support (qad)
 -Japanese Wonder 3 support (wonder3)
 -Japanese Varth support (varthj)
 -Japanese Willow support (willowj)
 -Mercs support (mercs)
 -Japanese Quiz and Dragons support (qadj)
 -Varth support (varth)
 -Japanese Nemo support (nemoj)
 -Japanese Street Fighter II support (sf2j)

Version 0.23:
 -Fixed minor sprite bug
 -Test mode altered
 -Fixed minor palette mapper bug
 -Japanese Rockman The Power Battle support (rockmanj)
 -Megatwins support (mtwins)
 -Japanese 1941 support (1941j)
 -Japanese King of Dragons support (kodj)
 -Magic Sword support (msword)
 -Knights of the Round support (knights)
 -Carrier Air Wing US support (cawing)
 -Willow support (willow)
 -Street Fighter II support (sf2)

Version 0.22:
 -"-FPUcopy" and "-MMXcopy" speed up vesa modes
 -Common ini file (callus.ini) for video/dir/inputtype settings
 -Japanese Captain Commando support (captcomj)
 -Japanese Strider support (striderj)
 -384x224 tweaked mode 
 -King of Dragons support (kod)
 -Captain Commando support (captcomm)
 -Area 88 support (area88)
 -Three Wonders support (3wonders)
 -Japanese Final Fight support (ffightj)
 -Fixed Carrier Air Wing Jap

Version 0.21b:
 -"-altmode" uses the original 384x257 used in .20
 -"-vesa6bit" will force 6bit VESA palettes
 -Fixed banking problem in VESA banked modes
 -Japanese Street Fighter II Turbo Support (sf2tj)
 -Partial Carrier Air Wing Jap support (cawingj)
 -UN Squadron support (unsquad)
 -Screen centered in clipped video modes
 -Uses 8 bit VESA palette DAC (if present)
 -Palette intensity bits (disabled by default, Alt-I or -intensity)
 -Z80 state saved in save states
 -Fixed 2nd player kick buttons
 -Japanese Street Fighter II Championship Edition Support (sf2cej)
 -Modified 68k byte order
 -Street Fighter II Championship Edition Support (sf2ce)
 -Implemented plane enable bits (may not be totally correct)
 -Strider support (strider)
 -Native MS Sidewinder Gamepad support
 -Added SNES Pad input devices
 -Lowered ADPCM output sample rate
 -Start/Coin inputs now mappable to joystick buttons
 -Adjusted 384x257 mode

Version 0.20: 
 -Added tweaked planar mode 384x257 courtesy Brad Thomas
 -Layer toggling (Alt+'1'-'4')
 -Much improved palette mapper (colors should be 99% arcade perfect)
 -"-noelephant" command line option (you'll be glad you used it)
 -Dip switch menu (F12)
 -Alternate keyboard settings with "-altkey" 
 -Separate .ini file for each game
 -Multi-game support: "callus <gamename>"
 -Manual frame skip settings
 -Line based engine for SF2 parallax'd floors
 -Street Fighter II Turbo (Hyper Fighting) support
 -Better sprite/plane priority
 -Many rendering optimizations
 -Now should abort if it runs out of RAM
 -"-double" command line option
 -ADPCM output
 -Z80 emulation

Version 0.10:
 -Initial release


---------------------
     Deficiency
---------------------

Digital FM is less than perfect.

ADPCM sounds are 'tinny' when upsampled to high sample rates.
Probably needs some sort of low-pass filter (as exists on a real board).

Qsound emulation.
The Z80(?) roms in Qsound CPS1 games appear to be encrypted or something (help?).

CPS2 emulation would be trivial if the CPU roms were not encrypted (help?).

Hiscore saving (just use savestates).

The GUI is rotated in rotated games ('doh).

Hicolor renderer. 

Column-based overdraw reduction

---------------------
     Necessity
---------------------

A Pentium with at least 16MB or 24MB of RAM.
VESA support (get Scitech Display Doctor)
Soundblaster or 100% compatible optional.

The arcade ROMS are required to play the game.
These I cannot provide so don't even ask.
You may only be in possession of copyrighted ROMs 
if legally entitled to do so.

Consult gamelist.txt for the required ROM file names.

---------------------
     Utility
---------------------

Keys are as follows:

 F1:  Player 1 start
 F2:  Player 2 start
 F3:  Coin 1
 F4:  Coin 2

 F5:  Save state
 F6:  Decrement state slot number
 F7:  Load state
 F8:  Increment state slot number

 F9:  Save PCX snapshot
 F10: Reset emulation
 F11: Test mode button (hold down and press F10 to get into test mode)
 F12: Service mode button (?)

 ESC:   Quit
 Space: Toggle GUI

 +/-: Adjust frameskip

Alt-V: Toggle V-sync
Alt-M: Toggle FM music
Alt-D: Toggle digital sound effects
Alt-P: Pause emulation
Alt-I: Toggle palette intensity
Alt-Q: Quit

Menu options are can be accessed with Alt+<menukey>

The default keys for the first player in 2 button games
 are CTRL/ALT and the arrow keys.
The default keys for the first player in 3 button games
 are a/s/d and the arrow keys.
The default keys for the first player in 6 button games
 are a/s/d/z/x/c and the arrow keys.
 
Valid input device types (-setinput <#> <type>):
    KEY1        Keyboard layout 1
    KEY2        Keyboard layout 2
    JOY1        2 button analog joystick 1
    JOY2        2 button analog joystick 2
    4BUTTON     4 button analog joystick/gamepad
    6BUTTON     6 button analog joystick/gamepad
    SIDEWINDER1 Microsoft Sidewinder Gamepad in digital mode (10 button)
    SIDEWINDER2 Microsoft Sidewinder Gamepad in digital mode (10 button)
    GRIP1       GrIP slot 1 (8 button)
    GRIP2       GrIP slot 2 (8 button)
    SNESPAD1    SNES Pad 1 connected via LPT1 (8 button)
    SNESPAD2    SNES Pad 2 connected via LPT1 (8 button)

In 2 button games (FF,Strider,etc), if you use a joystick with 4+ buttons, 
the other 2 buttons function as player start and coin input. 

In 6 button games (SF2T/CE), same goes for input devices with 8+ buttons. 

In 3 button games (Rockman,mtwins), if you use a joystick with 4 buttons, 
the other button functions as player start. If you use a joystick with
more than 4 buttons the other 2 buttons function as player start and coin input. 

The GrIP support doesn't seem to work for everyone, but from what I've been told
its the fault of the DOS SDK which I can't do much about.

SNES Pads can be connected to your computer with an adapter to the parallel port.
See http://www.geocities.com/SiliconValley/Way/8843/ for more info.

On a MS Sidewinder, start functions as player start and the M button functions
as a coin input. Reading the MS Sidewinder in its native digital mode is much 
faster than as a 6 button analog joystick. 
For the MS Sidewinder to work under Win95 you must have version 1.5 of the 
MS sidewinder Win95 software (www.microsoft.com/sidewinder) and press the 
Sidewinder's mode button twice after callus loads.

With hybrid input enabled, input devices 1 & 2 control player 1 and input
devices 3 & 4 control player 2. Its then possible to control player 1
with combinations of input devices (such as keyboard+joystick). With
hybrid input on, there is no access to player 3/4 inputs.

F5/F7 saves and loads states. Pressing the keyboard keys 0-9
will change the current state slot for subsequent saves/loads
and movie playing/recording. F6/F8 also changes slots one by one.
The state filename follows the form "xxxx.CS?" where 'xxxx'
is the gamename and ? is the current save slot (0-9).

Movie filenames have the extension '.CM?'. Movies may be incompatible in
future versions as the emulation core changes.

With the alternate keyboard layout (-altkey), '1'-'4' function as start and
'5'-'8' function as coin inputs for each player. You can use F6/F8 to 
change save slots.

To change the save/pcx dirs you have to manually edit the ini as well.

To reduce "shearing", enable vsyncing and disable autoframeskipping 
(-frameskip 1). "-exclusive" and/or running under pure DOS helps too.

Having the palette intensity bits enabled really throws a wrench into
the palette mapper code (plus you really need vsync on for it), so its 
left as an option.

---------------------
    Voluntary
---------------------


@<filename>     : Parses the file <filename> for command line options

-res  <xw> <yw> : Sets the resolution for horizontal games to xw,yw
-resv <xw> <yw> : Sets the resolution for vertical games to xw,yw

-setinput <num> <type>
                : Sets input device <num> to <type>
-remapbut <device> <a> <b> <c> <d> <e> <f> <start> <coin>
                : Remaps buttons for <device>
                : <device> can be JOY1, JOY2, 4BUTTON, GRIP1, GRIP2, 6BUTTON, SIDEWINDER
-setkey <device> <ul> <u> <ur> <l> <r> <dl> <d> <dr> <a> <b> <c> <d> <e> <f> <start> <coin>
                : Sets the keyboard scancodes for <device>
                : <device> can be KEY1 or KEY2
-setjoythresh <num>  <left> <right> <up> <down>
                : Sets the joystick threshold for analog joystick <num>
                : left,right,up,down define the joystick's "dead-zone"
-analogjoyres <num>
                : Sets the maximum number of times the joystick port
                : is polled. Increase this number if the calibration values
                : seem to max out.

-vsync <ON/OFF> : Wait for the vertical sync to draw frames
-frameskip <x>  : Sets frameskip (1-8 or "AUTO" for autoskipping)

-savedir <dir>  : Sets the directory for state files
-pcxdir <dir>   : Sets the directory for saving snapshots

-? or -h        : Display command line help
-novesa         : Don't use VESA extensions
-linear         : Force linear VESA mode
-banked         : Force banked VESA mode

-dip <a> <b> <c>: Sets the hex values for the dip switches

-exclusive      : This switch will disable windows multitasking.
-altkey         : Alternate player start/coin input

-fpucopy        : Uses the FPU to do pageflips, only faster on Intel Pentium processors
-mmxcopy        : Uses MMX to do pageflips, only for MMX processors (faster than FPU)

-coincount <#>  : Keeps a tally of the number of coins inserted into a game

---------------------
    Diplomacy
---------------------

Bloodlust Software
bldlust@maelstrom.net

Do not send any files without asking first.


---------------------
     Gramercy
---------------------

Special thanks to Cabbe, ShinobiZ, Argyle, RASCAL,
 Paul Swan, Org, Virtu-Al, and Crowbait

Neill Corlett for typing up those lengthy YM2151 docs

Brad Thomas, Charles Mac Donald, PacEm,
Nick Jacobson, Dirty Digger and Benny Boola Hill

Y0SHi, Darknight and Dirty Digger for kindly donating webspace.

Thanks to Robert William Grubbs for writing his document 
 on reading the MS Sidewinder digitally in DOS. 

The authors of PMODE/W, a great DOS4GW replacement.

And especially Capcom, for making undoubtably the best
 arcade games in existence (except, of course, for the 
 generic shooters).

---------------------
     Legality
---------------------

Callus Copyright 1997 Bloodlust Software
Final Fight, Street Fighter 2, Street Fighter 2 Turbo, Street Fighter 2 Championship Edition,
 Strider, UN Squadron, Carrier Air Wing, Three Wonders, Area 88, Captain Commando,
 King of Dragons, Willow, Knights of the Round, Magic Sword, 1941, Megatwins,
 Rockman The Power Battle, Quiz and Dragons, Varth, Nemo, Mercs, Punisher, Warriors of Fate,
 and all other CPS1 games mentioned are registered trademarks of Capcom 
 and their arcade ROMs are copyrighted by Capcom.
You may only be in possession of copyrighted ROMs if legally entitled to do so.
Neither Bloodlust Software nor the author are affiliated with Capcom.
The Callus logo can't be used between the tag <H1> nor postfixed with multiple exlamation marks.
Callus is freeware and can be distributed freely as long as it is not
 modified or sold and ROMs are not packaged with the program. This readme
 must be included with the executable.
When you use this software you do so at your own risk. The author is
 not responsible for any loss or damage resulting from the use or
 misuse of this software.
If you do not agree with these terms delete this software now.


