           --- SFMAME, written and compiled by JJWE (NeoGouki) ---

What's this?
------------

    SFMAME is a special MAME compile made for all you sprite rippers out there. 
    Short for "Shot Factory" MAME, the build is meant to incorporate special 
    features for as many games as possible to make "ripping" sprites easier.
    Currently supporting Capcom's CPS1 and CPS2 systems as well as SNK's
    NEO*GEO system, the build will be added upon with time as I figure out
    how the individual drivers work.

What's new? (8th of august 2001)
--------------------------------

    * Added support for all the CPS2 games that were released between this build 
      and the initial one.
    
    * Added NJ's excellent NEO*GEO video hardware driver. 
      This however broke my tile offset coding and I'm too lazy to figure out 
      what's wrong right now, so for now that feature is out. If annyone misses it 
      terribly, lemme' know and I might actually delve deeper into the coding.
      PLEASE remember that to play games with raster effects you need to either 
      have "raster" set to "1" in mame.ini or run the game with "-raster". Also 
      remember that any changes you make with the SF when playing raster driven 
      games will show up on the NEXT frame.
    
    * Added support for SF1 and all its revisions. :D

How does it work?
-----------------

    In terms of emulation, SFMAME works just like any other build out there. All 
    I've done is add some extra keys and command lines that will enable and disable 
    some special functions. The build included within this archive is the Windows 
    specific version, but as the source code is included you could easily compile 
    your own DOS version if you so desire. After emulation has been initiated, 
    these are the specific keys that control the shot factory's functions:
    
    *** For CPS1 and CPS2 games ***
    
    <On the keyboard>
    
    W = Disables/enables Scroll1 (layer)
    E = Disables/enables Scroll2 (layer)
    R = Disables/enables Scroll3 (layer)
    T = Disables/enables all sprites
    Y = Disables/enables distortion (line scrolling and etc.)
    A = Turns tile range on/off
    S = Decreases the start of the tile range
    D = Increases the start of the tile range
    F = Decreases the end of the tile range
    G = Increases the end of the tile range
    C = Speed up
    V = Turn information window on/off
    B = Toggle alternate bg color on/off
    
    <On the keypad>
    
    / = Shift sprite offset to the left
    * = Shift sprite offset to the right
    - = Shift sprite offset up
    + = Shift sprite offset down
    
    (holding either Ctrl key will toggle to layer offset instead)

    As you can see, there are a whole lot of keys to keep track of, and if you 
    don't like my original positioning, they're all configurable through MAME's 
    default key config. As some of these functions aren't always self- 
    explanatory, I'll try to run through them briefly.
    
    What "W", "E", "R" and "T" does should be pretty obvious, they simply turn
    their respective layers on or off.
    
    "Y" disables the "distortion" that is mainly used on floors to 
    warp them and give them that 3D-ish feel.
    
    "A" makes the effects of your tile range visible or not and "S", "D", "F" 
    and "H" all alter the tile range, letting you see more or less of the 
    graphics intended to be displayed on- screen. Holding "C" while altering the 
    tile range will make the alteration progress faster, letting you make big 
    changes much faster. 
    
    "V" turns a small information window on and off that tells you your current 
    tile range, as well as total number of tiles meant to be displayed on-
    screen. Format is: "tile start > tile end : total tiles". Please note that 
    the information window WILL show up on any screenshots you take, so be sure 
    to disable it first.
    
    "B" alters the background to a nice shade of pink (255,0,255), which is a 
    color seldom used and will therefore hopefully not blend with any of the 
    colors used by the game.
    
    Finally, the "/", "*", "-" and "+" keys on the keypad controls the 
    sprites'/layers' offset, letting you shift them all across the screen to 
    easier view stuff that ends up off- screen.

    *** For Street Fighter ***
    
    W = Disables/enables Layer 1
    E = Disables/enables Layer 2
    R = Disables/enables Text layer
    T = Disables/enables all sprites
    A = Turns tile range on/off
    S = Decreases the start of the tile range
    D = Increases the start of the tile range
    F = Decreases the end of the tile range
    G = Increases the end of the tile range
    C = Speed up
    V = Turn information window on/off
    B = Toggle alternate bg color on/off
    
    *** For NEO*GEO games ***

    W = Disables/enables foreground layer
    T = Disables/enables all sprites
    A = Turns tile range on/off
    S = Decreases the start of the tile range
    D = Increases the start of the tile range
    F = Decreases the end of the tile range
    G = Increases the end of the tile range
    C = Speed up
    V = Turn information window on/off
    B = Toggle alternate bg color on/off
   
    The controls for NEO*GEO games and Street Fighter are virtually the same 
    with some exclusions, as seen above.
    
    As a final note about keys, hitting Ctrl + "L" will reset all the shot 
    factory's functions to their defaults.

Syntax
------

    sfmamew [name of game] [options]
    
    In addition to all MAME's regular command line options, I've added two:
    
    -[no]sfalways
    
        Per default, the shot factory is ONLY active when the game is paused. 
        Some might prefer this, others do not. Hence this option will make the 
        shot factory always stay active, even when not paused.
        
    -[no]raster
    
        Some of the NEO*GEO games use a raster display to display its graphical 
        content. Such a display cannot be updated while the game is paused, 
        therefore I have made it default NOT to use the raster driver for ANY 
        game. If you however run SFMAME with this command line all raster 
        effects will be turned back on. (Note! There's currently a slight 
        performance hit when running a game meant to use raster effects with -
        noraster, for some reason)
        
    When running SFMAME for the first time and you create your config (sfmamew -
    createconfig) these two options will be available at the very bottom of the 
    .INI that is created, under "Shot factory options" to be permanently set 
    either on or off.
    
Known bugs
----------

    * Performance hit in NEO*GEO games that use raster effects when they are 
      turned off
    * The NEO*GEO tile counter is pretty crap, ignore it for now ^_^;
    
Credits
-------

    * Nicola Salmoria and the rest of the MAME team, without whom this wouldn't 
      have been possible
    * CrashTest, who is the original author of SFMAME
    * _[Mhz]_, for giving me tips on C coding and writing the CPSx tile counter
    * NJ for that fantastic NEO*GEO driver