 
 
  ####                                                      ###           ###
 ##  ##                                                      ##            ##
 ###     ##  ##  ## ###   ####   ## ###  ##  ##   ####       ##   ####     ##
  ###    ##  ##   ##  ## ##  ##   ### ## ####### ##  ##   #####  ##  ##    ##
    ###  ##  ##   ##  ## ######   ##  ## ####### ##  ##  ##  ##  ######    ##
 ##  ##  ##  ##   #####  ##       ##     ## # ## ##  ##  ##  ##  ##        ##
  ####    ### ##  ##      ####   ####    ##   ##  ####    ### ##  ####    ####
                 ####                                                            

                           Supermodel Version 0.1a
                       A Sega Model 3 Arcade Emulator.
                      Copyright 2011 Bart Trzynadlowski


----------------
  Terms of Use
----------------

Supermodel is distributed as free software under the terms of the GNU General
Public License, included in LICENSE.txt.  Additional copyright information for
software included within Supermodel is located at the bottom of this file.

The source code may be obtained from the official Supermodel web site:

    http://www.trzy.org/Supermodel


--------------
  Disclaimer
--------------

This is the first public release of Supermodel.  It is very much preliminary,
alpha version software (hence the 'a' in the version number).  Development was
started in January of 2011 and has focused on reverse engineering aspects of 
the system that are still unknown.  Consequently, many important features, such
as sound, a user interface, and game pad support, are not yet implemented.


-------------------------
  Installing Supermodel
-------------------------

To install Supermodel on Windows, extract the ZIP archive containing the
Supermodel executable to a folder of your choice.  The following files and
directories should be created:

    Name                    Description
    ----                    -----------
    Supermodel.exe          Supermodel program. Run this.
    SDL.dll                 The SDL library. Use the bundled DLL file.
    README.txt              This text file.
    LICENSE.txt             Supermodel license and terms of use.
    Config/                 Directory where configuration files will be stored.
    NVRAM/                  Directory where NVRAM contents will be saved.
    Saves/                  Directory where save states will be saved.
    
Supermodel requires OpenGL 2.0 and a substantial amount of both video and
system memory.  The 'error.log' file, which is produced during each session,
records the amount of video memory allocated for vertex buffers.  If either the
static or dynamic vertex buffer are substantially less than 16 MB or 4 MB,
respectively, Supermodel may run abnormally slowly and drop some geometry.


-----------------------------
  Compiling the Source Code
-----------------------------

First, ensure that OpenGL, SDL (http://www.libsdl.org), GLEW 
(http://glew.sourceforge.net), and zlib (http://zlib.net) are installed.
Although glew.c is included in the Supermodel source tree, GL/glew.h is not.

Next, extract the Supermodel source code and copy the appropriate Makefile 
from the Makefiles/ directory to the base directory (that is, the one above
Src/ and Makefiles/).  Makefiles for Microsoft Visual C++ 2008 (Windows) and 
GCC (Linux/UNIX) are provided, but both require GNU Make. For Windows 
developers, MinGW (http://www.mingw.org) provides GNU Make.  Alternatively, you
can write a Makefile compatible with Microsoft Nmake and submit it to me for 
inclusion in the next release. ;)  Consult the Visual Studio documentation to 
learn how to configure the Microsoft compiler for command line operation.

Edit SDL_LIBPATH and SDL_INCLUDEPATH to reflect the location of the SDL
development library and header files.

Finally, run 'make'.  If all goes well it should produce a Supermodel binary.


---------------
  Basic Usage
---------------

For now, Supermodel does not include a proper user interface.  It is operated
entirely from the command line.  Run 'Supermodel' without any command line 
arguments for an explanation of supported options.

Supermodel uses MAME-compatible ROM sets.  It loads from ZIP archives based on
file checksums and automatically detects games; therefore, file names are not
important.  ROMs that are split into parent and child sets (eg., 'Scud Race
Plus', whose parent ROM set is 'Scud Race') must be combined into a single ZIP 
file with the child ROM set appearing first to ensure Supermodel detects the 
correct game to load.  The best way to do this is to add the contents of the
parent ROM set into the child ROM set ZIP file.  If for some reason Supermodel
detects the wrong game, you should try to combine them the opposite way.

To improve performance, Supermodel underclocks the PowerPC down to 25 MHz by
default.  This may be the cause of some games running too slowly even when the
frame rate is at 60 FPS (which is the native rate).  You may want to experiment
with increasing the clock frequency, although this comes with a performance 
penalty.

Note that there is no user interface and all messages are printed to the 
terminal.  In full screen mode, they will not be visible.


-------------------
  Supported Games
-------------------

The following games and ROM sets are supported by this version of Supermodel.
Not all of them are playable.

    ROM Set        Game Title
    -------        ----------
    vf3            Virtua Fighter 3
    lemans24       Le Mans 24
    scud           Scud Race
    scudp          Scud Race Plus
    lostwsga       The Lost World
    von2           Virtual On Oratorio Tangram
    vs298          Virtua Striker 2 '98
    srally2        Sega Rally 2
    daytona2       Daytona USA 2
    dayto2pe       Daytona USA 2 Power Edition
    fvipers2       Fighting Vipers 2
    harley         Harley Davidson & L.A. Riders
    lamachin       L.A. Machineguns
    oceanhun       The Ocean Hunter
    swtrilgy       Star Wars Trilogy
    eca            Emergency Car Ambulance

The '-print-games' option can be used to obtain this list.


------------------
  Video Settings
------------------

Supermodel may be run in either windowed (default) or full screen mode.  It 
automatically adjusts the display area to retain the aspect ratio of the Model
3's native (and Supermodel's default) resolution, 496x384.  Currently, this
cannot be overriden.  Changing video modes at run-time is not yet supported.

By default, Supermodel limits the frame rate to 60 Hz.  This has no impact on
performance except when the frame rate exceeds 60 FPS on fast systems.  This
can be disabled with the '-no-throttle' option.

The mouse cursor is disabled by default in full screen modes but can be toggled
with the Alt-I command.


------------
  Controls
------------

Supermodel only supports the keyboard and mouse at present.  Emulator functions
are listed below and cannot be changed.

    Function                                Key Assignment
    --------                                --------------
    Exit                                    Escape
    Reset                                   Alt-R
    Clear NVRAM                             Alt-N
    Toggle Mouse Cursor (Full Screen Mode)  Alt-I
    Toggle 60 Hz Frame Limiting             Alt-T
    Save State                              F5
    Load State                              F7
    Change Save Slot                        F6

Game controls can be configured using the '-config-inputs' command line option.
This starts a configuration utility and requires each button for all supported
games to be defined.  Pressing Escape retains the current setting.  The blank
window that opens up must be selected when pressing keys.  To choose a mouse
button, click the black area of the window.  New configurations are saved to
Config/Supermodel.ini.  The Config/ directory should have been automatically
created when Supermodel was extracted from its ZIP file.

Default settings are given below.

    Game/Input Type                    Input                Default Assignment
    ---------------                    -----                ------------------
    All                                Start 1              1
    All                                Start 2              2
    All                                Coin 1               3
    All                                Coin 2               4
    All                                Service A            5
    All                                Test A               6
    All                                Service B            7
    All                                Test B               8
    Digital joystick                   Up                   Up arrow
    Digital joystick                   Down                 Down arrow
    Digital joystick                   Left                 Left arrow
    Digital joystick                   Right                Right arrow
    Fighting games                     Punch                A
    Fighting games                     Kick                 S
    Fighting games                     Guard                D
    Fighting games                     Escape               F
    Racing games                       Steering             Left/Right arrows
    Racing games                       Accelerate           Up arrow
    Racing games                       Brake                Down arrow
    Racing games                       Shift 1/Up           Q
    Racing games                       Shift 2/Down         W
    Racing games                       Shift 3              E
    Racing games                       Shift 4              R
    Racing games                       VR1 (Red)            A
    Racing games                       VR1 (Blue)           S
    Racing games                       VR1 (Yellow)         D
    Racing games                       VR1 (Green)          F
    Sega Rally 2                       View Change          A
    Sega Rally 2                       Hand Brake           S
    Virtua Striker 2                   Short Pass           A
    Virtua Striker 2                   Long Pass            S
    Virtua Striker 2                   Shoot                D
    Virtual On Oratorio Tangram        Turn Left            Q        
    Virtual On Oratorio Tangram        Turn Right           W
    Virtual On Oratorio Tangram        Forward              Up arrow
    Virtual On Oratorio Tangram        Reverse              Down arrow
    Virtual On Oratorio Tangram        Strafe Left          Left arrow
    Virtual On Oratorio Tangram        Strafe Right         Right arrow
    Virtual On Oratorio Tangram        Jump                 E
    Virtual On Oratorio Tangram        Crouch               R
    Virtual On Oratorio Tangram        Left Shot Trigger    A
    Virtual On Oratorio Tangram        Right Shot Trigger   S
    Virtual On Oratorio Tangram        Left Turbo           Z
    Virtual On Oratorio Tangram        Right Turbo          X
    Analog joystick                    Motion               Mouse
    Analog joystick                    Trigger Button       A
    Analog joystick                    Event Button         S
    Lightgun                           Aim                  Mouse
    Lightgun                           Trigger              Left mouse button
    Lightgun                           Point Off-screen     Right mouse button

The lightgun will point off-screen as long as the 'point off-screen' button is
held down.  To shoot off-screen, hold this button and then simultaneously press
the trigger.


-------------------------
  Save States and NVRAM  
-------------------------

Save states are saved and restored by pressing F5 and F7, respectively.  Up to
10 different save slots can be selected with F6.  All files are written to the
Saves/ directory, which must exist.  If you extracted the Supermodel ZIP file
correctly, they will have automatically been created.

Non-volatile memory (NVRAM) consists of battery-backed backup RAM and an EEPROM
chip.  The former is used for things like high score data whereas the latter 
stores machine settings (often accessed using the Test buttons).  NVRAM is 
automatically saved each time Supermodel exits and is loaded at start-up.  It
can be cleared by deleting the NVRAM files or using Alt-N.


-----------------------------------
  Game-Specific Comments and Tips
-----------------------------------

The following games are not playable due to unimplemented controls, severe
graphical problems, or other issues:

    - L.A. Machineguns
    - The Ocean Hunter
    - Harley Davidson & L.A. Riders
    - Emergency Call Ambulance
    
Daytona USA 2 and Daytona USA 2 Power Edition
---------------------------------------------

To bypass the network board error, enter the Test Menu by pressing the Test
button.  Navigate to 'Game Assignments' using the Service button and select it
with Test.  Change 'Link ID' from 'Master' to 'Single'.

In 'Daytona USA 2', the region menu can be accessed by entering the Test Menu,
holding down the Start button, and pressing: VR4, VR4, VR2, VR3, VR1, VR3, VR2.
Changing the region to USA changes game text to English.

Star Wars Trilogy
-----------------

Inserting coins and starting a game before any 3D graphics have been displayed
in attract mode will result in a PowerPC crash before the stage loads.  This is
caused by an unknown emulation bug.  Simply wait until the Darth Vader sequence
appears before attempting to start a game.

If Star Wars Trilogy is booting directly into the stage select screen, it is
probably because you exited Supermodel with credits still in the machine.
Clear the NVRAM (Alt-N) and reset the game (Alt-R).

Sega Rally 2
------------

As with Star Wars Trilogy, you may experience problems if you attempt to start
a game before any 3D graphics are displayed (for example, during the Sega
logo).

Virtua Fighter 3
----------------

The game is playable but there are numerous graphical glitches, particularly 
during transition scenes.


-----------------------
  Contact Information
-----------------------

The official Supermodel web site is:

    http://www.trzy.org/Supermodel
    
Questions? Comments? Contributions? Your feedback is welcome! I only ask that
you refrain from making feature requests or asking about ROMs. I (Bart
Trzynadlowski) can be reached at:

    supermodel.emu@gmail.com


-------------------
  Acknowledgments
-------------------

Supermodel includes code from the following projects:

    zlib:                       http://zlib.net
    minizip:                    http://www.winimage.com/zLibDll/minizip.html
    The OpenGL Extension 
    Wrangler Library (GLEW):    http://glew.sourceforge.net
    
The OpenGL Extension Wrangler Library
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
Copyright (C) 2002, Lev Povalahev
All rights reserved.

Redistribution and use in source and binary forms, with or without 
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, 
  this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, 
  this list of conditions and the following disclaimer in the documentation 
  and/or other materials provided with the distribution.
* The name of the author may be used to endorse or promote products 
  derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
