=================================================================
 Callus                                    Version 0.42 (6/xx/98)
 by Bloodlust Software
=================================================================

Do not email stupid questions to: bldlust@maelstrom.net 
Do not ask aboot future versions of anything, ever.
NEVER send any files without asking first.

Get Scitech Display Doctor at www.scitechsoft.com
Get DirectX 5.0 at www.microsoft.com/directx

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.
Tweaked resolutions are not supported under DirectDraw.

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
Sound requires an extra 2MB of RAM for FM games, 4MB for Qsound games.
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. 

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.

The digital FM and QSound mixer use 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.

The background music in arcade Strider is intentionally repeated in the
later levels. An emulation bug this is not.

Callus DOS stores its system settings in callus.ini
Callus95 stores its system settings in callus95.ini
Game settings are all stored in game.ini

State files/movies in callus .41+ are RLE compressed, so they cannot be used
with earlier versions of callus.

The only difference between the Jap versions of GNG/Magic Sword 
and the US versions are in their CPU roms. Therefore these games run from the
same directory as the US ones, check gamelist.txt for the right filenames.

Street Fighter 2 Rainbow edition runs from the sf2t subdir and also requires the
roms from sf2cej and sf2t to run.

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

Callus is a DOS/DirectX 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), 
 Street Fighter II Rainbow Edition (pirate)
 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 (US and Jap),
 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 (US) and Senjyo no Ookami II (Jap),
 Punisher (US and Jap),
 Warriors of Fate (US and Jap),
 Cadillacs and Dinosaurs,
 Muscle Bomber Duo (US and Jap),
 Pnickies (Jap),
 Dynasty Wars (Jap),
 Capcom World 2 (Jap),
 Ghouls 'n Ghosts (US) and Daimakaimura (Jap)


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

The graphics renderer, palette mapper, digital YM2151
emulation, QSound mixer 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.42:
 -QSound games run with z80 disabled
 -Saved callus95 video settings
 -Street Fighter 2 Rainbow Edition support (sf2rb)
 -Slammasters crashes a bit less often
 -Fixed Dynasty Wars layer priority
 -Fixed Muscle Bomber Duo copy protection

Version 0.41b:
 -400x300 tweaked mode (maybe not very compatible)
 -16-bit SB output via 8-bit dma
 -Fixed minor start/coin input bug
 -Fixed DOS 8-bit QSound output (typo)

Version 0.41:
 -Jap Magic Sword support (mswordj)
 -Jap Daimakaimura support (gngj)
 -Jap Muscle Bomber Duo support (mbomberj)
 -Z80 CPU skipping
 -ABC and XYZ button mappings
 -RLE compressed state files
 -'qvol' option
 -Automatic MMX detection
 -Better input device remapping
 -ROM loading from ZIP files
 -Stereo output for QSound games (-stereo on/off)
 -QSound emulation
 -Kabuki Z80 decryption

Version 0.40:
 -Senjyo no Ookami II support (mercsj)
 -Ghouls 'n Ghosts support (gng)
 -Fixed GrIP support
 -TCP/IP netplay
 -DirectX port ("callus95.exe")
 -Game settings stored in game.ini
 -16 bit hicolor renderer (-hicolor)
 -Jap Capcom World 2 support (cworld2j)
 -YM logging
 -'map2to3' option

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
---------------------

CPS2 emulation would be trivial if the CPU roms were not encrypted.
What would help would be the dumped CPU roms from the CPS2 versions
of Rockman The Power Battle or Pnickies, since the CPS1 and CPS2 CPU roms are 
likely very similar. 

Hiscore saving (just use savestates).

The GUI is rotated in rotated games ('doh).
The GUI is absent in hicolor modes under DOS.

Rotated games need rotation in DX.
Stupid fucking DX HEL doesn't support fucking DDBLTFX_ROTATE90

Netplay sucks

Column-based overdraw reduction
Digital FM is less than perfect.

Slammasters still crashes/messes up due to copy protection.


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

A Pentium with at least 16MB-32MB of RAM.

DOS:
 VESA support (get Scitech Display Doctor)
 Soundblaster or 100% compatible optional.

Win95:
 DirectX 5.0 or later

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.

The ROMs are to be put in a subdirectory from the callus
main directory. For example:
  callus dir:        C:\callus
  Final Fight roms:  C:\callus\ffight
  
Callus can load the roms from a ZIP file instead:
  Final Fight ZIP:   C:\callus\ffight.zip


---------------------
     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 (DOS only)
 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

DOS only:
 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 accessed with ALT+<menukey>.

Valid input device types under DOS (-setinput <#> <type>):
    KEY1        Keyboard layout 1
    KEY2        Keyboard layout 2
    KEY3        Keyboard layout 3
    KEY4        Keyboard layout 4
    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)

Valid input device types under Win95 (-setinput <#> <type>):
    KEY1        Keyboard layout 1
    KEY2        Keyboard layout 2
    KEY3        Keyboard layout 3
    KEY4        Keyboard layout 4
    JOY1        Joystick 1
    JOY2        Joystick 2
    JOY3        Joystick 3
    JOY4        Joystick 4


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 4 button games
 are a/s/d/f 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.


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.

You must copy grip.gll to the callus dir for GrIP to be used.

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. Version 2.0 of the MS SW software
conflicts with the DOS SW reading code for some reason, disable the game profiler
or stick with 1.5.

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 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.

Callus can log the YM2151 register writes to a .CYM file. 
Someone (not me) could possibly write a utility to convert 
this data into a .MID or other music file. 
The CYM format works like this:  
  read a byte of data
  if zero then one frame has elapsed (1/60th of a second)
  if nonzero then this byte is the YM2151 register number and 
    the following byte is the data written to that register.
  repeat until EOF
The most important YM2151 registers are 0x08 (keyon/off) and
0x28-0x37 (channel frequency).


Notes on netplay:
 -Netplay will be rewritten using DirectX 6.0 (whenever it comes out).
 -Netplay is only peer to peer for now (ie, only 2 players, head to head)
 -There is no difference between the client and the server
 -There is a tradeoff between game smoothness and game responsiveness.
 -The net lag (latency) is adjustable in the net/settings menu.
  If this setting is too low, then callus will pause waiting for 
  packets and will slow down. If too high then the game will be so 
  lagged to be unplayable.
 -A good setting is approximately equal to the ping time between clients.
 -Over a fast LAN, .04-.10 sec is acceptable
 -Over a slow internet, .20-.40 sec is tolerable (depends a lot really)

---------------------
    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> <x> <y> <z> <start> <coin> <abc> <xyz>
                : Remaps buttons for <device>
-setkey <device> <ul> <u> <ur> <l> <r> <dl> <d> <dr> <a> <b> <c> <x> <y> <z> <start> <coin> <abc> <xyz>
                : Sets the keyboard scancodes for <device>
-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)

-romdir <dir>   : Sets root for rom subdirs
-savedir <dir>  : Sets the directory for state files
-logdir <dir>   : Sets the directory for logging/dumps
-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

-soundrate <hz> : Sets sound sampling rate (11025,22050,44100)
-stereo <ON/OFF>: Sets stereo for QSound games
-vol <adpcm><fm>: Sets volume for ADPCM/FM games (dB)
-qvol <qsound>  : Sets volume for QSound games (0..15)

-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

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

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

-map2to3        : If set in the SF2 games, pressing just 2 punch or kick buttons will cause
                : all 3 to be pressed, making special moves somewhat easier. SF2 requires
                : that all 3 buttons go from being up to down simultaneously 
                : within 1/60th of a second.

-hicolor        : Use 16-bit hicolor mode in DOS
                : The GUI is not available in hicolor modes in DOS
                : You must run: callus <gamename> -hicolor -res <xres> <yres>


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

Bloodlust
bldlust@maelstrom.net

Do not send any files without asking first.

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

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

Big thanks to Dragan Rasula and Samir the Mastermind (from YU)
 for information on the Kabuki encryption scheme

Neill Corlett for typing up those lengthy YM2151 docs

Hanz Freemurmur for S-Race

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

Y0SHi and Darknight for kindly donating webspace.

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

Mark Adler for the ZIP file code

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,1998 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 ROM images are copyrighted by Capcom.
QSound is a registered trademark of QSound
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 exclamation 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.
wyasktihby
