mirror of
https://github.com/RetroDECK/Supermodel.git
synced 2024-11-22 22:05:38 +00:00
1980 lines
83 KiB
Plaintext
1980 lines
83 KiB
Plaintext
|
|
|
|
#### ### ###
|
|
## ## ## ##
|
|
### ## ## ## ### #### ## ### ## ## #### ## #### ##
|
|
### ## ## ## ## ## ## ### ## ####### ## ## ##### ## ## ##
|
|
### ## ## ## ## ###### ## ## ####### ## ## ## ## ###### ##
|
|
## ## ## ## ##### ## ## ## # ## ## ## ## ## ## ##
|
|
#### ### ## ## #### #### ## ## #### ### ## #### ####
|
|
####
|
|
|
|
A Sega Model 3 Arcade Emulator.
|
|
Copyright 2011 Bart Trzynadlowski, Nik Henson
|
|
|
|
|
|
USER MANUAL FOR SUPERMODEL VERSION 0.2A
|
|
|
|
|
|
================
|
|
Introduction
|
|
================
|
|
|
|
Supermodel emulates the Sega Model 3 arcade platform. It uses OpenGL 2.1 and
|
|
SDL, and can run on Windows, Linux, and Mac OS X. In order to use it, you must
|
|
legally possess ROM images of Model 3 games. Learning to operate Supermodel
|
|
will come with a steep learning curve for most people. Before seeking out
|
|
help, please read this user manual carefully.
|
|
|
|
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.Supermodel3.com
|
|
|
|
|
|
==============
|
|
Disclaimer
|
|
==============
|
|
|
|
This is an early public release of Supermodel. It is very much preliminary,
|
|
alpha version software (hence the 'a' in the version number). Development
|
|
began in January of 2011 and has focused on reverse engineering aspects of the
|
|
Model 3 that are still unknown. Consequently, many important features, such as
|
|
a proper user interface, are not yet implemented and game compatibility is
|
|
still low.
|
|
|
|
|
|
=====================
|
|
Table of Contents
|
|
=====================
|
|
|
|
--- Introduction
|
|
--- Disclaimer
|
|
--- Table of Conents
|
|
1. Revision History
|
|
2. Installing Supermodel
|
|
3. Running Supermodel
|
|
4. Game Compatibility
|
|
5. Video Settings
|
|
6. Audio Settings
|
|
7. Controls
|
|
8. Force Feedback
|
|
9. Save States and NVRAM
|
|
10. Game-Specific Comments and Tips
|
|
11. Merging Split ROM Sets
|
|
12. The Configuration File
|
|
13. Index of Command Line Options
|
|
14. Index of Configuration File Settings
|
|
15. Compiling the Source Code
|
|
16. Contact Information
|
|
17. Acknowledgments
|
|
|
|
|
|
=======================
|
|
1. Revision History
|
|
=======================
|
|
|
|
Version 0.2a (September 24, 2011)
|
|
- New, fully customizable input system. Supports any combination of
|
|
keyboards, mice, and analog and digital controllers. [Nik Henson]
|
|
- Texture offsets. Fixes models in 'Fighting Vipers 2', 'Virtual On',
|
|
cars in the 'Scud Race' and 'Daytona USA 2' selection screens, etc.
|
|
- Fixed a 2D palette bug that would cause black pixels to occasionally
|
|
turn transparent.
|
|
- Added all remaining ROM sets. [krom]
|
|
- Got some new games to boot: 'Spikeout', 'Ski Champ', 'Sega Bass
|
|
Fishing', 'Dirt Devils', etc.
|
|
- Sound support. Special thanks to ElSemi for contributing his SCSP
|
|
emulator and Karl Stenerud for allowing us to use his 68K emulator.
|
|
- Multi-threading support. Sound and drive board emulation are off-
|
|
loaded to separate threads, substantially enhancing performance.
|
|
[Nik Henson]
|
|
- Z80 emulation based on code by Frank D. Cringle and YAZE-AG by
|
|
Andreas Gerlich.
|
|
- Digital Sound Board (MPEG music) emulation courtesy of R. Belmont and
|
|
the MPEG decoder library by Tomislav Uzelac.
|
|
- Improved ROM loader. It should no longer be as easily confused by
|
|
combined ROM sets as long as unused files are removed.
|
|
- Configuration file now supports more settings and allows game-
|
|
specific customization.
|
|
- Added light gun crosshairs ('The Lost World'), enabled by default in
|
|
full screen mode and selectable by pressing Alt-I.
|
|
- Drive board and force feedback emulation for 'Scud Race', 'Daytona
|
|
USA 2', and 'Sega Rally 2'. [Nik Henson]
|
|
- Viewable display area properly clipped. Ghost artifacts no longer
|
|
appear in border regions when the resolution exceeds the display
|
|
area.
|
|
- Changed gear shifting: added a dedicated neutral gear and sequential
|
|
shifting.
|
|
- Console-based debugger (not enabled by default, must be
|
|
enabled during compile-time). [Nik Henson]
|
|
- Source code and Makefile cleanup.
|
|
|
|
Version 0.1.2a (April 3, 2011)
|
|
- Included missing GLEW files.
|
|
|
|
Version 0.1.1a (April 2, 2011)
|
|
- Minor source code update.
|
|
- Set Render3D to NULL in the CReal3D constructor. Fixes crashes that
|
|
occur on some builds. [Nik Henson]
|
|
- Cleaned up UNIX Makefile and added OS X Makefile. [R. Belmont]
|
|
- Small changes to ppc_ops.cpp for C++0x compliance. [R. Belmont]
|
|
- Included glew.h into the source tree. [R. Belmont]
|
|
- Changed WIN32 definition to SUPERMODEL_WIN32.
|
|
|
|
Version 0.1a (April 1, 2011)
|
|
- Initial public alpha release.
|
|
|
|
|
|
============================
|
|
2. 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 the configuration file is stored.
|
|
Config/Supermodel.ini Configuration file containing default input
|
|
settings.
|
|
NVRAM/ Directory where NVRAM contents will be saved.
|
|
Saves/ Directory where save states will be saved.
|
|
|
|
Supermodel requires OpenGL 2.1 and a substantial amount of both video and
|
|
system memory. A very fast CPU and GPU are needed to achieve playable frame
|
|
rates.
|
|
|
|
As of this version, Linux and Mac OS X binaries are not provided. Users must
|
|
compile their own.
|
|
|
|
|
|
=========================
|
|
3. Running Supermodel
|
|
=========================
|
|
|
|
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. Only one ZIP file can be specified on the command line. For
|
|
example:
|
|
|
|
supermodel scud.zip -fullscreen
|
|
|
|
This will load 'scud.zip' (Scud Race) and run it in full screen mode.
|
|
|
|
Initially, inputs are assigned according to the settings in 'Supermodel.ini',
|
|
located in the 'Config' subdirectory.
|
|
|
|
Note that there is no user interface and all messages are printed to the
|
|
command prompt. In full screen mode, they will not be visible.
|
|
|
|
|
|
=========================
|
|
4. Game Compatibility
|
|
=========================
|
|
|
|
Supermodel recognizes all known Model 3 ROM sets but not all of them are
|
|
playable. Below is a compatibility matrix. The most obvious problem with each
|
|
ROM set is reported.
|
|
|
|
ROM Set Title Playable? Comments
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| bass | Sega Bass Fishing | No | No controls. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| daytona2 | Daytona USA 2 Battle on the Edge | Yes | Minor graphics |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| dayto2pe | Daytona USA 2 Power Edition | Yes | Minor graphics |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| dirtdvls | Dirt Devils | Yes | Severe graphics |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| dirtdvlsa | Dirt Devils (Alternate) | Yes | Severe graphics |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| eca | Emergency Call Ambulance | No | Severe graphics |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| ecax | Emergency Call Ambulance (Export) | No | Severe graphics |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| fvipers2 | Fighting Vipers 2 | Yes | Slow. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| getbass | Get Bass | No | Does not boot. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| harley | Harley Davidson & L.A. Riders | No | Severe graphics |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| harleyb | Harley Davidson & L.A. Riders (Rev. B) | No | Severe graphics |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| lamachin | L.A. Machineguns | No | Severe graphics |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| lemans24 | Le Mans 24 | Yes | Some texture |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| lostwsga | The Lost World | Yes | Some texture |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| magtruck | Magical Truck Adventure | No | Does not boot. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| oceanhun | The Ocean Hunter | No | Severe graphics |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| scud | Scud Race (Australia) | Yes | Minor shading |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| scuda | Scud Race (Export) | Yes | Minor shading |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| scudj | Scud Race (Japan) | Yes | Mis-colored 2D |
|
|
| | | | graphics. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| scudp | Scud Race Plus | Yes | Minor shading |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| skichamp | Ski Champ | No | Severe graphics |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| spikeofe | Spikeout Final Edition | Yes | Some texture |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| spikeout | Spikeout | Yes | Some texture |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| srally2 | Sega Rally 2 | Yes | Major graphics |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| srally2x | Sega Rally 2 DX | No | Does not boot. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| swtrilgy | Star Wars Trilogy (Rev. A) | Yes | Some graphics |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| swtrilgya | Star Wars Trilogy | No | Does not boot. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| vf3 | Virtua Fighter 3 | Yes | Major graphics |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| vf3a | Virtua Fighter 3 (Rev. A) | Yes | Major graphics |
|
|
| | | | problems. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| vf3tb | Virtua Fighter 3 Team Battle | No | Cannot coin up. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| von2 | Virtual On Oratorio Tangram | Yes | Encrypted 2D |
|
|
| | | | graphics. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| von254g | Virtual On Oratorio Tangram (Ver. 5.4g) | Yes | Encrypted 2D |
|
|
| | | | graphics. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| vs2 | Virtua Striker 2 (Step 2.0) | Yes | Slow. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| vs215 | Virtua Striker 2 (Step 1.5) | Yes | Slow. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| vs298 | Virtua Striker 2 '98 (Step 2.0) | Yes | Slow. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| vs29815 | Virtua Striker 2 '98 (Step 1.5) | Yes | Slow. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| vs299 | Virtua Striker 2 '99 | No | PowerPC error. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| vs299a | Virtua Striker 2 '99 (Rev. A) | No | PowerPC error. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| vs299b | Virtua Striker 2 '99 (Rev. B) | No | PowerPC error. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
| vs2v991 | Virtua Striker 2 '99.1 | No | PowerPC error. |
|
|
+-----------+-----------------------------------------+-----+-----------------+
|
|
|
|
Most ROM sets suffering from severe graphical problems are categorized as non-
|
|
playable when in fact many are partially playable. Controls may not be fully
|
|
functional, however, and none have been tested thoroughly.
|
|
|
|
|
|
=====================
|
|
5. 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 frames per second. This has
|
|
no impact on performance except when the frame rate exceeds 60 FPS on fast
|
|
systems. Frame rate limiting can be disabled with the '-no-throttle' option.
|
|
Some video drivers may continue to lock to the refresh rate.
|
|
|
|
To change the resolution, use the '-res' command line option. For full screen
|
|
mode, use '-fullscreen'. For example, to set a full screen 1920x1080 mode,
|
|
try:
|
|
|
|
supermodel game.zip -res=1920,1080 -fullscreen
|
|
|
|
Video settings may also be specified globally or on a per-game basis in the
|
|
configuration file, described elsewhere in this manual.
|
|
|
|
|
|
=====================
|
|
6. Audio Settings
|
|
=====================
|
|
|
|
All Model 3 games have a sound board that is used for sound effects and, in
|
|
some games, background music. A few games use additional Digital Sound Boards
|
|
(DSB) for MPEG music. 'Music' in Supermodel refers exclusively to MPEG music
|
|
produced by the DSB and 'sound' refers to both the sound effects and background
|
|
music produced by the regular sound board.
|
|
|
|
Model 3 sound and MPEG music are generated separately and then mixed by an
|
|
amplifier. The relative signal levels are not known, so Supermodel simply
|
|
outputs all audio at full volume. This causes the MPEG music to be too quiet
|
|
in some games ('Scud Race', 'Daytona USA 2') and too loud in others ('Star Wars
|
|
Trilogy'). The '-sound-volume' and '-music-volume' options can be used to
|
|
change the volume. As arguments, they take a volume level in percent ranging
|
|
from 0 (muted) to 200% (maximum, doubled amplitude). For example:
|
|
|
|
supermodel game.zip -sound-volume=50 -music-volume=170
|
|
|
|
This command line cuts the sound volume in half and increases the music volume
|
|
by 70%.
|
|
|
|
The F9 and F10 keys can be used to adjust music volume during run-time, while
|
|
F11 and F12 control sound volume.
|
|
|
|
Clipping and distortion will occur if the combined sound and music volume
|
|
levels become too high.
|
|
|
|
To disable sound and music board emulation altogether, use the '-no-sound' and
|
|
'-no-dsb' options. These will not merely mute the corresponding audio channels
|
|
but will prevent the audio co-processors from being emulated altogether and
|
|
may slightly improve performance, especially on single-core systems. Save
|
|
states generated with these settings may not be able to properly restore audio
|
|
when loaded after emulation is re-enabled.
|
|
|
|
Audio settings may also be specified globally or on a per-game basis in the
|
|
configuration file, described elsewhere in this document.
|
|
|
|
Please keep in mind that MPEG music emulation is preliminary and the decoder is
|
|
buggy. Periodic squeaks and pops occur on many music tracks. The Sega Custom
|
|
Sound Processor (SCSP) emulator, used for sound emulation, is also still quite
|
|
buggy. Sound glitches are known to occur now and then, and many sounds and
|
|
tunes do not sound quite correct yet.
|
|
|
|
|
|
===============
|
|
7. Controls
|
|
===============
|
|
|
|
Game controls are fully configurable and can be mapped to keyboards, mice, and
|
|
game controllers. Emulator functions, on the other hand, cannot be changed and
|
|
are listed below.
|
|
|
|
Function Key Assignment
|
|
-------- --------------
|
|
Exit Escape
|
|
Pause Alt-P
|
|
Reset Alt-R
|
|
Clear NVRAM Alt-N
|
|
Crosshairs (for light gun games) Alt-I
|
|
Toggle 60 Hz Frame Limiting Alt-T
|
|
Save State F5
|
|
Load State F7
|
|
Change Save Slot F6
|
|
Decrease Music Volume F9
|
|
Increase Music Volume F10
|
|
Decrease Sound Volume F11
|
|
Increase Sound Volume F12
|
|
|
|
|
|
Learning and Configuring Game Controls
|
|
--------------------------------------
|
|
|
|
Settings for game controls are stored in 'Supermodel.ini'. To learn the
|
|
current configuration, use the '-print-inputs' command line option.
|
|
|
|
supermodel -print-inputs
|
|
|
|
If you delete 'Supermodel.ini', all inputs will become unmapped and will have
|
|
to be reconfigured!
|
|
|
|
To reconfigure the inputs, use the '-config-inputs' option. A blank window
|
|
will open up and instructions will be printed to the command prompt. Read them
|
|
carefully! Pressing the Escape key exits without saving changes. Pressing 'q'
|
|
will save changes to 'Supermodel.ini'. You can choose which input to configure
|
|
using the Up and Down arrow keys. Clearing an input means it will be unusable.
|
|
|
|
If the configuration dialog is not responding to your key presses or mouse and
|
|
joystick movements, make sure that the blank pop-up window rather than the
|
|
command prompt is selected. This may seem counter-intuitive but inputs are
|
|
captured by the graphical window while messages are printed to the command
|
|
prompt.
|
|
|
|
|
|
Calibrating Controls
|
|
--------------------
|
|
|
|
Some controls, in particular the accelerator and brake pedals of steering
|
|
wheels, may need calibrating before they will function properly with
|
|
Supermodel.
|
|
|
|
In order to calibrate a control, press 'b' when configuring the inputs and
|
|
follow the on-screen instructions carefully.
|
|
|
|
NOTE: After calibration, you must remap the control again or it will not
|
|
function properly!
|
|
|
|
Several input-related settings are stored in the configuration file. Refer to
|
|
the section discussing the configuration file for more details.
|
|
|
|
|
|
XBox 360 Controllers
|
|
--------------------
|
|
|
|
For full XBox 360 controller support, the XInput system must be used on Windows
|
|
('-input-system=xinput'). Otherwise, the left and right trigger buttons cannot
|
|
be mapped individually and force feedback will not work. Please read the
|
|
section titled 'Input Systems', further below.
|
|
|
|
Mac OS X users can use Colin Munro's XBox 360 controller driver:
|
|
http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/OsxDriver
|
|
|
|
|
|
Analog Controls
|
|
---------------
|
|
|
|
Analog controls, such as steering wheels, pedals, and the light gun axes, can
|
|
be mapped to analog controllers, such as joysticks, wheels, and mice, if
|
|
available. Under digital control, the analog value will increment or decrement
|
|
until it reaches its maximum/minimum values. The rate of change can only be
|
|
set manually in the configuration file. These options are described elsewhere
|
|
in this document.
|
|
|
|
Most analog inputs, such as the steering wheel, require two settings to be
|
|
controlled digitally. For example, the steering wheel can be turned left and
|
|
right by setting 'Steer Left' and 'Steer Right', or it can be mapped to a
|
|
single analog control ('Full Steering').
|
|
|
|
|
|
Shifting Gears
|
|
--------------
|
|
|
|
Racing game gears can be mapped to individual buttons, including one for the
|
|
neutral position, or can be shifted sequentially. Games which only provide two
|
|
gears name them 'Up' and 'Down'. These should not be confused with 'Shift Up'
|
|
and 'Shift Down', the sequential shift commands.
|
|
|
|
|
|
Virtual On Twin Joysticks
|
|
-------------------------
|
|
|
|
'Virtual On Oratorio Tangram' features a twin joystick control scheme similar
|
|
to a tracked vehicle (e.g. a tank). Movement is accomplished by pushing both
|
|
joysticks in the same direction. Pushing and pulling in opposite directions
|
|
will turn the robot, while pulling the joysticks apart sideways or pushing them
|
|
inwards are for jumping and falling back down to the ground, respectively.
|
|
|
|
Supermodel supports mapping the individual joysticks but also provides 'macro'
|
|
controls by default. These allow all the necessary twin joystick commands to
|
|
be replicated with individual controls. The mapping is below:
|
|
|
|
Macro Control Twin Joystick Equivalent
|
|
------------- ------------------------
|
|
Turn Left Left joystick down, right joystick up.
|
|
Turn Right Left joystick up, right joystick down.
|
|
Forward Both joysticks up.
|
|
Reverse Both joysticks down.
|
|
Strafe Left Both joysticks left.
|
|
Strafe Right Both joysticks right.
|
|
Jump Left joystick left, right joystick right.
|
|
Crouch Left joystick right, right joystick left.
|
|
|
|
|
|
Light Guns
|
|
----------
|
|
|
|
Light gun axes can be mapped to mice, analog controls, or even digital buttons.
|
|
To simulate pointing off-screen (required in order to reload), a 'point off-
|
|
screen' input is provided which, for as long as it is pressed, will aim the gun
|
|
off-screen. To reload, hold down this button and then, while holding it, press
|
|
the trigger. For easier reloading, the 'InputAutoTrigger' setting can be
|
|
enabled in the configuration file (described elsewhere in this manual).
|
|
|
|
Crosshairs will be visible in full screen mode and can also be enabled in
|
|
windowed modes. Use Alt-I to cycle through different crosshair options (enable
|
|
for a single player, both, or none).
|
|
|
|
For multiple mouse support, allowing two mice or PC light guns to be mapped,
|
|
Raw Input must be used. This is supported only on Windows and is described
|
|
below.
|
|
|
|
|
|
Input Systems
|
|
-------------
|
|
|
|
Supermodel supports multiple input APIs to provide the best possible
|
|
compatibility for different input devices and configuration schemes. On
|
|
Windows, the default is DirectInput. On all other platforms, SDL is the only
|
|
option available.
|
|
|
|
Windows users can select between four different input systems:
|
|
|
|
- DirectInput. Selected with '-input-system=dinput'. This is the default.
|
|
It provides the best support for PC game controllers and, when emulating
|
|
force feedback, allows all effects (if the controller supports them).
|
|
- XInput. Selected with '-input-system=xinput'. This must be used with
|
|
XBox 360 controllers, otherwise some buttons will not function properly
|
|
and force feedback will not work.
|
|
- Raw Input. Selected with '-input-system=rawinput'. This is intended for
|
|
use with multiple mice and keyboards but is not recommended otherwise.
|
|
- SDL. Selected with '-input-system=sdl'. The standard, cross-platform
|
|
input system intended for non-Windows builds. It is accessible on
|
|
Windows but does not provide full support for all devices.
|
|
|
|
When switching input systems with '-input-system', you must also configure your
|
|
inputs using the same option. For example, when running Supermodel with XInput
|
|
('supermodel game.zip -input-system=xinput'), you must also configure with
|
|
XInput ('supermodel -config-inputs -input-system=xinput'). Many settings are
|
|
not compatible between input systems.
|
|
|
|
A common mistake is to configure inputs using one system and then launch
|
|
Supermodel with another.
|
|
|
|
|
|
Troubleshooting
|
|
---------------
|
|
|
|
Common input-related problems are discussed below.
|
|
|
|
|
|
Problem:
|
|
No response while configuring inputs.
|
|
|
|
Solution:
|
|
Make sure the main window is top window, especially with the SDL input
|
|
system.
|
|
|
|
---------
|
|
|
|
Problem:
|
|
An attached controller is not recognized at all.
|
|
|
|
Solution:
|
|
- On the input configuration screen, press 'I' to see information about
|
|
the input system and check that the required controller is in the
|
|
list.
|
|
- If it is not in the list, check that it is plugged in and visible in
|
|
the operating system. If a controller is plugged in while Supermodel
|
|
is running, Supermodel will need to be restarted in order for it to
|
|
recognize the new controller.
|
|
- On Windows, if after checking the above points the controller is
|
|
still not in the list, try running Supermodel with the SDL input
|
|
system by specifying '-input-system=sdl' on the command line.
|
|
|
|
---------
|
|
|
|
Problem:
|
|
Unable to select a particular joysick axis when configuring a mapping.
|
|
|
|
Solution:
|
|
This may mean that the joystick axis needs calibrating. This can be
|
|
done by pressing 'b' on the configuration screen and following the
|
|
instructions.
|
|
|
|
---------
|
|
|
|
Problem:
|
|
Steering wheel pedals are not being recognized.
|
|
|
|
Solution:
|
|
For some steering wheels where the pedals have been configured in a
|
|
'split axis' mode (ie. not sharing a combined axis), the values that
|
|
the pedals send are inverted. This means that without configuration,
|
|
Supermodel will be unable to recognize them. To fix this, they should
|
|
be calibrated on the calibration screen in the same way as above.
|
|
|
|
---------
|
|
|
|
Problem:
|
|
A control isn't working despite having been calibrated.
|
|
|
|
Solution:
|
|
After calibration, while still in the configuration dialog, you must
|
|
remap the control again for the new settings to take effect.
|
|
|
|
---------
|
|
|
|
Problem:
|
|
XBox 360 controller trigger buttons cannot be triggered simultaneously
|
|
or no rumble effects.
|
|
|
|
Solution:
|
|
On Windows, make sure that you specify '-input-system=xinput'.
|
|
|
|
|
|
=====================
|
|
8. Force Feedback
|
|
=====================
|
|
|
|
Force feedback is presently supported in 'Scud Race' (including 'Scud Race
|
|
Plus'), 'Daytona USA 2' (both editions), and 'Sega Rally 2' on Windows only. To
|
|
enable it, use the '-force-feedback' option.
|
|
|
|
Drive board ROMs are required. They first appear in the MAME 0.143u6 ROM
|
|
catalog and at the time of this writing, have not yet widely proliferated.
|
|
|
|
Game Drive Board ROM File Size Checksum (CRC32)
|
|
---- -------------------- ---- ----------------
|
|
Daytona USA 2 epr-20985.bin 64 KB B139481D
|
|
Scud Race epr-19338a.bin 64 KB C9FAC464
|
|
Sega Rally 2 epr-20512.bin 64 KB CF64350D
|
|
|
|
The sizes and checksums must match those listed above. The file names may be
|
|
different but will almost certainly contain the same identifying numbers.
|
|
Ensure that the appropriate drive board ROM files are present in the
|
|
corresponding games' ZIP archives, otherwise Supermodel will silently proceed
|
|
without force feedback.
|
|
|
|
Force feedback will only work with the DirectInput (the default on Windows) and
|
|
XInput input systems. XInput is intended only for XBox 360 controllers, which
|
|
do not support force feedback through DirectInput.
|
|
|
|
|
|
Tuning Force Feedback
|
|
---------------------
|
|
|
|
Force feedback can be enabled and tuned in the configuration file. Setting
|
|
'ForceFeedback' to 1 enables it:
|
|
|
|
ForceFeedback = 1
|
|
|
|
There are four DirectInput effects: constant force, self centering, friction,
|
|
and vibration. The strength of each can be tuned with the following settings:
|
|
|
|
DirectInputConstForceMax = 100
|
|
DirectInputSelfCenterMax = 100
|
|
DirectInputFrictionMax = 100
|
|
DirectInputVibrateMax = 100
|
|
|
|
They are given as percentages and represent the maximum strength for each
|
|
effect. A setting of 0 disables them entirely. Values above 100% are
|
|
accepted but may clip or distort the effect. By default, they are set to 100%,
|
|
as shown above.
|
|
|
|
XInput devices only support vibration feedback via the left and right motors.
|
|
Because the characteristics of the motors are different, the effects will feel
|
|
somewhat asymmetric. The constant force effect is simulated with vibrations.
|
|
The relevant settings are:
|
|
|
|
XInputConstForceThreshold = 30
|
|
XInputConstForceMax = 100
|
|
XInputVibrateMax = 100
|
|
|
|
The constant force threshold specifies how strong a constant force command must
|
|
be before it is sent to the controller as a vibration effect (whose strength is
|
|
determined by XInputConstForceMax). The default values are shown above and
|
|
will require calibration by the user on a game-by-game basis to achieve the
|
|
best feel.
|
|
|
|
|
|
============================
|
|
9. 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 beforehand. If you extracted the Supermodel
|
|
ZIP file correctly, it will have been created automatically.
|
|
|
|
If a Model 3 co-processor (ie. sound board, DSB, drive board) is disabled when
|
|
a save state is taken, it will not resume normal operation when the state is
|
|
loaded, even if Supermodel is running with the co-processor re-enabled. The
|
|
drive board (and consequently, force feedback effects) is explicitly disabled
|
|
for the remainder of the session if a save state with an inactive drive board
|
|
is loaded. Audio co-processors are not, and therefore audio playback may
|
|
eventually resume after the audio boards have booted themselves up.
|
|
|
|
Non-volatile memory (NVRAM) consists of battery-backed backup RAM and an EEPROM
|
|
chip. The former is used for high score data and statistics 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 pressing Alt-N.
|
|
|
|
|
|
=======================================
|
|
10. Game-Specific Comments and Tips
|
|
=======================================
|
|
|
|
|
|
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.
|
|
|
|
By default, the 'Power Edition' ROM set features remixed music lyrics by
|
|
Takenobu Mitsuyoshi. These can be changed back to the Dennis St. James version
|
|
in the Test Menu, under 'Game Assignments'.
|
|
|
|
|
|
Le Mans 24
|
|
----------
|
|
|
|
The region can be changed by entering the test menu (press the Test button) and
|
|
pressing: Start, Start, Service, Service, Start, Test.
|
|
|
|
|
|
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).
|
|
|
|
The region can be changed by entering the test menu (press the Test button) and
|
|
then pressing the Service button four times for short durations, twice for long
|
|
durations, twice for short durations, and once again for a long duration.
|
|
|
|
|
|
Spikeout and Spikeout Final Edition
|
|
-----------------------------------
|
|
|
|
These games can be played all the way through but may lock up during the
|
|
attract mode. There are periodic texture glitches due to Supermodel's
|
|
inadequate texture caching system and possibly also due to a texture offset
|
|
bug.
|
|
|
|
|
|
The Lost World
|
|
--------------
|
|
|
|
To reload, the light gun must be pointed off-screen by pressing (and holding)
|
|
the 'off-screen' button and, simultaneously, pressing the trigger to shoot.
|
|
This behavior can be changed with the 'InputAutoTrigger' setting in the
|
|
configuration file.
|
|
|
|
The region can be changed by entering the test menu (press the Test button) and
|
|
pressing: Start, Start, Service, Start, Service, Test. Use the player 1 Start
|
|
button.
|
|
|
|
|
|
Virtua Fighter 3
|
|
----------------
|
|
|
|
The game is playable but there are numerous graphical glitches, particularly
|
|
during transition scenes.
|
|
|
|
|
|
Virtua Striker 2 '98 (Step 1.5 and 2.0 versions)
|
|
------------------------------------------------
|
|
|
|
The Virtua Striker games all run very slowly for an unknown reason.
|
|
|
|
The region can be changed by entering the test menu (press the Test button)
|
|
and, in the 'Game Assignments' menu, performing the following sequence:
|
|
|
|
1. Press the Service button once for about 5 seconds.
|
|
2. Press the Service button three times shortly.
|
|
3. Press the Service button again one time for about 5 seconds.
|
|
|
|
|
|
==============================
|
|
11. Merging Split ROM Sets
|
|
==============================
|
|
|
|
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. ROM
|
|
files from the parent set that have the same IC numbers (usually the file
|
|
extension but sometimes the number in the file name itself) as child ROMs
|
|
should be deleted, otherwise Supermodel may choose to load the parent game.
|
|
|
|
For example, 'Scud Race Plus' is normally distributed containing only the
|
|
following files:
|
|
|
|
epr-20092a.17
|
|
epr-20093a.18
|
|
epr-20094a.19
|
|
epr-20095a.20
|
|
epr-20096a.21
|
|
mpr-20097.13
|
|
mpr-20098.14
|
|
mpr-20099.15
|
|
mpr-20100.16
|
|
mpr-20101.24
|
|
|
|
To merge with the parent ROM set, copy over all files from 'Scud Race' except
|
|
those with extension numbers 17-21, 13-16, and 24. Some 'Scud Race Plus' ROM
|
|
sets may have 'mpr-20101.23' instead of 'mpr-20101.24'. They are the same file
|
|
and in both cases should replace the file with extension 24 from 'Scud Race'
|
|
('mpr-19671.24').
|
|
|
|
|
|
==============================
|
|
12. The Configuration File
|
|
==============================
|
|
|
|
Supermodel reads configuration settings from 'Supermodel.ini' located in the
|
|
'Config' subdirectory. If Supermodel was installed properly, a default file
|
|
should have been created. When starting up, Supermodel parses settings in the
|
|
following order:
|
|
|
|
1. Global settings are read from 'Supermodel.ini'. These include input
|
|
mappings and apply to all games.
|
|
2. If the ROM set was loaded correctly, game-specific settings are read
|
|
from 'Supermodel.ini', overriding settings from step 1.
|
|
3. Command line options are applied, overriding settings from the previous
|
|
steps.
|
|
|
|
In other words, command line options have the highest precedence, followed by
|
|
game-specific settings, and lastly, global settings.
|
|
|
|
An index of all allowed settings is provided further below in this document.
|
|
|
|
NOTE: Type carefully! Supermodel will not report syntax errors nor detect
|
|
typos. Carefully read the discussion of the file syntax below. To verify that
|
|
your intended settings are taking effect, check the 'error.log' file that is
|
|
produced by Supermodel during each run.
|
|
|
|
|
|
File Structure and Syntax
|
|
-------------------------
|
|
|
|
The configuration file is a list of settings grouped by sections. All setting
|
|
names and their arguments are case sensitive. They take the form:
|
|
|
|
Name = Argument
|
|
|
|
Only one setting per line is allowed. Only two types of arguments are allowed:
|
|
integers and strings. The choice of which to use is determined by the setting.
|
|
Integers can be negative. Strings can contain any characters and are enclosed
|
|
by double quotes. Examples:
|
|
|
|
IntegerSetting1 = 0
|
|
IntegerSetting2 = 65536
|
|
IntegerSetting3 = -32768
|
|
StringSetting1 = "This is a string."
|
|
StringSetting2 = "123"
|
|
StringSetting3 = "1+1, abc, these are all valid characters!"
|
|
|
|
Many settings are simply boolean variables expecting an integer value of either
|
|
0 (disabled) or 1 (enabled). Some settings require values and others take
|
|
strings for file names or input mappings.
|
|
|
|
Section names appear in between square brackets on their own lines.
|
|
|
|
[ SectionName ]
|
|
|
|
Settings that appear at the beginning of the file without a preceeding section
|
|
are automatically assigned to 'Global'.
|
|
|
|
Comments begin with a semicolon and extend until the end of the line.
|
|
|
|
; This is a comment.
|
|
|
|
|
|
Global and Game-Specific Sections
|
|
---------------------------------
|
|
|
|
Sections determine whether settings are applied globally, to all games, or to
|
|
specific games. Game-specific settings will override global settings and can
|
|
be used to tune Supermodel on a game-by-game basis. Global settings must be
|
|
placed in the 'Global' section and game-specific settings in sections named
|
|
after the ROM sets. ROM sets must be typed in lower case and use the MAME
|
|
(http://www.mamedev.org) naming convention. They can be obtained by running
|
|
'supermodel -print-games'.
|
|
|
|
Input mappings are special. They are only read from the 'Global' section!
|
|
|
|
In the example below, custom configurations are created for 'Scud Race' and
|
|
'The Lost World'. All other games will use the global settings.
|
|
|
|
[ Global ]
|
|
|
|
; Run full screen at 1024x768
|
|
XResolution = 1024
|
|
YResolution = 768
|
|
FullScreen = 1
|
|
|
|
; Scud Race
|
|
[ scud ]
|
|
|
|
; Run at 1080p
|
|
XResolution = 1920
|
|
YResolution = 1080
|
|
|
|
; Music is too quiet by default
|
|
SoundVolume = 50
|
|
MusicVolume = 200
|
|
|
|
; The Lost World
|
|
[ lostwsga ]
|
|
|
|
PowerPCFrequency = 25 ; run PowerPC at 25 MHz
|
|
|
|
In this example, only 'Scud Race' will run at 1920x1080. All other games will
|
|
use 1024x768. 'Scud Race' will also have altered volume settings. 'The Lost
|
|
World' will be run with a lower PowerPC frequency but all other games will use
|
|
the default.
|
|
|
|
|
|
Input Mappings
|
|
--------------
|
|
|
|
Input mappings are specified with strings that have their own internal syntax.
|
|
They may only be specified in the 'Global' section and are ignored elsewhere.
|
|
|
|
A mapping may be specified in one of the following three ways:
|
|
|
|
KEY_XXX For a key XXX on a keyboard (eg. KEY_A, KEY_SPACE, KEY_ALT).
|
|
|
|
MOUSE_XXX For a mouse axis (X or Y), wheel, or button (1-5) (eg.
|
|
MOUSE_XAXIS, MOUSE_WHEEL_UP, MOUSE_BUTTON3).
|
|
|
|
JOY1_XXX For a joystick axis (X, Y, Z, RX, RY, RZ), POV controller
|
|
JOY2_XXX (1-4), or button (1-12) (e.g. JOY1_XAXIS, JOY3_POV2_UP,
|
|
... JOY2_BUTTON4).
|
|
|
|
Joysticks, including game pads and steering wheels, are numbered from 1 on up.
|
|
Their ordering is system dependent and if controllers are swapped between
|
|
invocations of Supermodel, then the ordering may change. If the number is
|
|
omitted then the mapping applies to all joysticks, eg. JOY_BUTTON1 means button
|
|
1 on any attached joystick.
|
|
|
|
In addition to the above, when using the Raw Input system on Windows (command
|
|
line option '-input-system=rawinput') it is possible to refer to a particular
|
|
mouse or keyboard by including its number in the mapping, eg. KEY2_A or
|
|
MOUSE3_XAXIS. This allows the independent mapping of dual mice or dual light
|
|
guns (which present themselves as mice to Supermodel) for 'The Lost World'.
|
|
|
|
Mappings may be combined with a plus '+' or a comma ',' and negated with an
|
|
exclamation mark '!'. The plus signifies that both mappings must be active to
|
|
trigger the input and the comma means that just one needs to be active. The
|
|
exclamation mark means that a mapping must not be active.
|
|
|
|
Of the above the comma is the most useful. It allows the mapping of several
|
|
different control methods to a single input. For example, both a keyboard and
|
|
a joystick could be mapped to the same input. When combining mappings in this
|
|
way, the ordering is important as mappings earlier in the list will take
|
|
precedence over later ones (see example 3 below).
|
|
|
|
When an axis is mapped to a digital input, its direction must be qualified with
|
|
a _POS or _NEG after the axis name. For example, JOY1_XAXIS_NEG indicates that
|
|
joystick 1 must be pushed left (negative direction) in order to activate the
|
|
input. Additionally, the following shortcuts are provided for some common
|
|
joystick axis directions:
|
|
|
|
JOY1_LEFT is the same as JOY1_XAXIS_NEG
|
|
JOY1_RIGHT is the same as JOY1_XAXIS_POS
|
|
JOY1_UP is the same as JOY1_YAXIS_NEG
|
|
JOY1_DOWN is the same as JOY1_YAXIS_POS
|
|
|
|
Another axis manipulator is _INV. This inverts an axis when it is mapped to an
|
|
analog input. JOY1_YAXIS_INV could be used for example to invert the y-axis
|
|
of joystick 1 in Star Wars Trilogy so that it acts like a plane's yoke.
|
|
|
|
Examples:
|
|
|
|
1. InputLeft = "KEY_LEFT,JOY1_LEFT"
|
|
|
|
Digital input InputLeft will be triggered whenever the left arrow key
|
|
is pressed or joystick 1 is pushed left.
|
|
|
|
2. InputStart1 = "KEY_ALT+KEY_S"
|
|
|
|
Both Alt and S must be pressed at the same time in order to trigger the
|
|
digital input InputStart1 (player 1 Start button).
|
|
|
|
3. InputSteering = "JOY1_XAXIS,MOUSE_XAXIS"
|
|
|
|
Analog steering can be controlled with either the joystick or by moving
|
|
the mouse. Due to the ordering used, the joystick will take preference
|
|
and so the mouse can only control the steering when the joystick is
|
|
released.
|
|
|
|
The complete list of input mappings can be found in the settings index below or
|
|
by generating a configuration file using '-config-inputs'.
|
|
|
|
|
|
Controller Settings
|
|
-------------------
|
|
|
|
Several settings are available to fine tune the way Supermodel handles
|
|
controllers.
|
|
|
|
|
|
Keyboard Settings:
|
|
|
|
The rate at which analog controls' values increase or decrease when controlled
|
|
by a key can be set with the InputyKeySensitivity option. It takes a value in
|
|
the range 1-100, with 100 being the most sensitive (fastest response) and 1
|
|
being the least sensitive (slowest response). The default value is 25.
|
|
|
|
The speed with which analog controls return to their rest or 'off' values after
|
|
a key has been released is configured with InputKeyDecaySpeed. This takes a
|
|
value in the range 1-200 and is expressed as a percentage of the attack speed.
|
|
The default setting is 50, which means that analog controls take twice as long
|
|
to return to their off values as they do to reach their maximum and minimum
|
|
values.
|
|
|
|
|
|
Mouse Settings:
|
|
|
|
For a mouse it is possible to specify a rectangular area in the center of
|
|
Supermodel's display within which the mouse is considered to be inactive. The
|
|
width and height of this zone is set with the options 'InputMouseXDeadZone' and
|
|
'InputMouseYDeadZone'. They are expressed as a percentage 0-99 of the width
|
|
and height of the display. The default value is 0 which disables this option.
|
|
|
|
|
|
Joystick Options:
|
|
|
|
Each joystick axis has a set of parameters that can be configured and these are
|
|
given below. The joystick number and axis name (X, Y, Z, RX, RY, or RZ) must
|
|
be substituted in for '**' like so: InputJoy1XDeadZone. If the joystick number
|
|
is omitted, then the option becomes the default for all joysticks, eg.
|
|
InputJoyYSaturation.
|
|
|
|
InputJoy**Deadzone: The dead zone of a joystick axis is the size of the zone
|
|
around its central or 'off' position within which the axis is considered to be
|
|
inactive. It is important to specify this since joysticks rarely return to
|
|
their perfect center when released. The dead zone is expressed as a percentage
|
|
0-99 of the total range of the axis and the default value is 2%.
|
|
|
|
InputJoy**Saturation: The saturation of a joystick axis is the point at which
|
|
the axis is considered to be at its most extreme position. It can be thought
|
|
of as a measure of the sensivity of the axis. Like the dead zone, it is
|
|
expressed as a percentage of the axis range but its value may be larger than
|
|
100, up to a maximum of 200. A value of 50 means that the joystick only needs
|
|
to be moved halfway in order for Supermodel to see it as fully extended.
|
|
Conversely a value of 200 means that when the joystick is at its extreme
|
|
position Supermodel will see it as only halfway. The default sensitivity is
|
|
100%, which corresponds to a 1-to-1 mapping. For playing driving games with a
|
|
game pad, it is sometimes a good idea to use a value larger than 100% so that
|
|
the steering feels less sensitive on a thumbstick.
|
|
|
|
InputJoy**MinVal, InputJoy**OffVal, InputJoy**MaxVal: Normally a joystick axis
|
|
will send values to Supermodel that fall within the range -32768 to +32767,
|
|
with 0 representing the central or 'off' position. However, in some cases an
|
|
axis may behave differently. This has been observed with certain steering
|
|
wheels that have their pedals configured in a 'split axis' mode. The pedals
|
|
invert their range so that they send -32768 when released and +32767 when fully
|
|
depressed. In order for Supermodel to be able to handle such cases the
|
|
minimum, off, and maximum values of the axis can be specified with these three
|
|
options. The default values are MinVal -32768, OffVal 0, and MaxVal 32767 but
|
|
with the pedal example just given, they would need to be set to MinVal 32767,
|
|
OffVal 32767, and MaxVal -32768.
|
|
|
|
In most cases it will be unecessary to alter the DeadZone, MinVal, OffVal, and
|
|
MaxVal options by hand as calibrating a joystick axis from within the input
|
|
configuration screens of Supermodel will set them automatically. Only the
|
|
sensitivity option is not configured in this way.
|
|
|
|
|
|
Additional Options:
|
|
|
|
InputAutoTrigger, InputAutoTrigger2: When playing light gun games such as 'The
|
|
Lost World', the gun must be pointed off-screen and then fired in order to
|
|
reload. With a mouse and the default mappings, this requires clicking both the
|
|
right and left mouse buttons. In order to be able to reload the gun with just
|
|
a single click of the right mouse button, enable these options for players 1
|
|
and 2 by setting them to 1. By default they are disabled (value 0).
|
|
|
|
Enabling these options is also recommended when playing with PC light guns as
|
|
these often map the action "point off screen and press trigger" to a single
|
|
right mouse button click. Supermodel has been tested successfully with
|
|
UltiMarc's AimTrak light-guns. In order to use dual PC light-guns for two
|
|
player games, the Raw Input system must be selected with the command line
|
|
option '-input-system=rawinput' and the input mappings configured for each gun.
|
|
|
|
|
|
=====================================
|
|
13. Index of Command Line Options
|
|
=====================================
|
|
|
|
All valid command line settings are listed here, ordered by category. Defaults
|
|
are given under the assumption that they have not been changed in the
|
|
configuration file.
|
|
|
|
Square brackets ('[' and ']') indicate optional parameters. Angled brackets
|
|
('<' and '>') indicate mandatory parameters. Do not type the brackets. No
|
|
spaces may appear inside of an option. For example, 'supermodel game.zip
|
|
-ppc-frequency=25' is correct but 'supermodel game.zip -ppc-frequency = 25' is
|
|
not. All options are case sensitive.
|
|
|
|
|
|
Option: -?
|
|
-h
|
|
|
|
Description: Prints a message with an overview of the command line
|
|
options and how to run Supermodel.
|
|
|
|
----------------
|
|
|
|
Option: -print-games
|
|
|
|
Description: Lists all supported ROM sets. Not all supported ROM sets
|
|
are playable yet.
|
|
|
|
----------------
|
|
|
|
Option: -no-threads
|
|
|
|
Description: Disables multi-threading. When enabled (the default), the
|
|
PowerPC, graphics rendering, and user interface are run in
|
|
one thread, sound emulation in a second thread, and the
|
|
drive board in a third. It is enabled by default. On
|
|
single-core systems, multi-threading adds overhead and
|
|
slows Supermodel down but can make audio sound a bit
|
|
smoother.
|
|
|
|
----------------
|
|
|
|
Option: -ppc-frequency=<f>
|
|
|
|
Description: Sets the PowerPC frequency in MHz. The default is 50.
|
|
Higher frequencies will allow games to do more processing
|
|
per frame, making them run faster in 'virtual' time, but
|
|
may slow down Supermodel on weaker computers. Supermodel's
|
|
performance can frequently be improved by lowering the
|
|
PowerPC frequency (25 MHz works in many games). In some
|
|
games, this will cause timing problems and jerky
|
|
performance. The optimum frequency will vary from game to
|
|
game and system to system. Valid values for <f> are 1 to
|
|
1000.
|
|
|
|
----------------
|
|
|
|
Option: -fullscreen
|
|
|
|
Description: Runs in full screen mode. The default is to run in a
|
|
window.
|
|
|
|
----------------
|
|
|
|
Option: -no-throttle
|
|
|
|
Description: Disables 60 FPS throttling. The Model 3 runs at a 60 Hz
|
|
refresh rate, which Supermodel enforces if this option is
|
|
omitted. Unthrottled operation may not work on some
|
|
systems because graphics drivers may lock the refresh rate
|
|
on their own.
|
|
|
|
----------------
|
|
|
|
Option: -print-gl-info
|
|
|
|
Description: Prints OpenGL driver information and quits.
|
|
|
|
----------------
|
|
|
|
Option: -res=<x>,<y>
|
|
|
|
Description: Resolution of the display in pixels, with <x> being width
|
|
and <y> being height. The default is 496x384, the Model
|
|
3's native resolution.
|
|
|
|
----------------
|
|
|
|
Option: -show-fps
|
|
|
|
Description: Shows the frame rate in the window title bar.
|
|
|
|
----------------
|
|
|
|
Option: -frag-shader=<file>
|
|
-vert-shader=<file>
|
|
|
|
Description: Allows external fragment and vertex shaders to be used for
|
|
3D rendering. <file> is the file path. Files should be
|
|
ASCII text files containing GLSL source code. The file
|
|
extension is not important. By default, Supermodel's
|
|
internal shader programs are used. These options are
|
|
intended for future extensibility and for use by
|
|
developers.
|
|
|
|
----------------
|
|
|
|
Option: -flip-stereo
|
|
|
|
Description: Swaps the left and right audio channels.
|
|
|
|
----------------
|
|
|
|
Option: -no-dsb
|
|
|
|
Description: Disables Digital Sound Board (MPEG music) emulation. See
|
|
the section on audio settings for more information.
|
|
|
|
----------------
|
|
|
|
Option: -no-sound
|
|
|
|
Description: Disables sound board (sound effects) emulation. See the
|
|
section on audio settings for more information.
|
|
|
|
----------------
|
|
|
|
Option: -music-volume=<v>
|
|
-sound-volume=<v>
|
|
|
|
Description: Specifies the volume of MPEG music produced by the Digital
|
|
Sound Board and the audio produced by the sound board in
|
|
percent. The default is 100, which is full volume, and the
|
|
valid range of <v> is 0 (muted) to 200. See the section on
|
|
audio settings for more information.
|
|
|
|
----------------
|
|
|
|
Option: -config-inputs
|
|
|
|
Description: Launches the interacive input configuration utility in the
|
|
command prompt window. Allows controls to be remapped.
|
|
See the section on controls for more information.
|
|
|
|
----------------
|
|
|
|
Option: -force-feedback
|
|
|
|
Description: Enables force feedback. Force feedback is only supported
|
|
in a few games (see the section on force feedback for more
|
|
details). Available only on Windows.
|
|
|
|
----------------
|
|
|
|
Option: -input-system=<s>
|
|
|
|
Description: Sets the input system. This is only available on Windows,
|
|
where the default is 'dinput' (DirectInput). SDL is used
|
|
for all other platforms. Valid choices for <s> are:
|
|
|
|
dinput DirectInput.
|
|
xinput XInput
|
|
rawinput Raw Input.
|
|
sdl SDL.
|
|
|
|
See the section on input systems for more details.
|
|
|
|
----------------
|
|
|
|
Option: -print-inputs
|
|
|
|
Description: Prints the current input configuration.
|
|
|
|
|
|
============================================
|
|
14. Index of Configuration File Settings
|
|
============================================
|
|
|
|
All valid configuration file settings are listed here, ordered by category.
|
|
Please read the section describing the configuration file for more information.
|
|
|
|
All settings are case sensitive.
|
|
|
|
|
|
Name: MultiThreaded
|
|
|
|
Argument: Integer.
|
|
|
|
Description: If set to 1, enables multi-threading; if set to 0, runs all
|
|
emulation in a single thread. Read the description of the
|
|
'-no-threads' command line option for more information.
|
|
|
|
----------------
|
|
|
|
Name: PowerPCFrequency
|
|
|
|
Argument: Integer.
|
|
|
|
Description: The PowerPC frequency in MHz. The default is 50.
|
|
Equivalent to the '-ppc-frequency' command line option.
|
|
|
|
----------------
|
|
|
|
Name: FullScreen
|
|
|
|
Argument: Integer.
|
|
|
|
Description: If set to 1, runs in full screen mode; if set to 0, runs in
|
|
a window. Disabled by default. Equivalent to the
|
|
'-fullscreen' command line option.
|
|
|
|
----------------
|
|
|
|
Name: ShowFrameRate
|
|
|
|
Argument: Integer.
|
|
|
|
Description: Shows the frame rate in the window title bar when set to 1.
|
|
If set to 0, the frame rate is not computed. Disabled by
|
|
default. Equivalent to the '-show-fps' command line
|
|
option.
|
|
|
|
----------------
|
|
|
|
Name: Throttle
|
|
|
|
Argument: Integer.
|
|
|
|
Description: Controls 60 FPS throttling. It is enabled by setting to 1
|
|
and disabled by setting to 0. For more information, read
|
|
the description of the '-no-throttle' command line option.
|
|
|
|
----------------
|
|
|
|
Name: XResolution
|
|
YResolution
|
|
|
|
Argument: Integer.
|
|
|
|
Description: Resolution of the display in pixels. The default is
|
|
496x384, the Model 3's native resolution. Equivalent to
|
|
the '-res' command line option.
|
|
|
|
----------------
|
|
|
|
Name: FragmentShader
|
|
VertexShader
|
|
|
|
Argument: String.
|
|
|
|
Description: Path to the external fragment or vertex shader file to use
|
|
for 3D rendering. By default, these are not set and the
|
|
internal default shaders are used. These are equivalent to
|
|
the '-frag-shader' and '-vert-shader' command line options.
|
|
|
|
----------------
|
|
|
|
Name: EmulateDSB
|
|
|
|
Argument: Integer.
|
|
|
|
Description: Emulates the Digital Sound Board if set to 1, disables it
|
|
if set to 0. See the section on audio settings for more
|
|
information. A setting of 0 is equivalent to the
|
|
'-no-dsb' command line option.
|
|
|
|
----------------
|
|
|
|
Name: EmulateSound
|
|
|
|
Argument: Integer.
|
|
|
|
Description: Emulates the sound board and its two Sega Custom Sound
|
|
Processors if set to 1, disables it if set to 0. See the
|
|
section on audio settings for more information. A setting
|
|
of 0 is equivalent to the '-no-sound' command line option.
|
|
|
|
----------------
|
|
|
|
Name: FlipStereo
|
|
|
|
Argument: Integer.
|
|
|
|
Description: Swaps the left and right stereo channels if set to 1. If
|
|
set to 0, outputs the channels normally. Disabled by
|
|
default. A setting of 1 is equivalent to using the
|
|
'-flip-stereo' command line option.
|
|
|
|
----------------
|
|
|
|
Name: MusicVolume
|
|
SoundVolume
|
|
|
|
Argument: Integer.
|
|
|
|
Description: Specifies the volume of MPEG music produced by the Digital
|
|
Sound Board and the audio produced by the sound board in
|
|
percent. The default is 100, which is full volume, and the
|
|
valid range is 0 (muted) to 200%. See the section on audio
|
|
settings for more information. The equivalent command line
|
|
options are '-music-volume' and '-sound-volume'.
|
|
|
|
----------------
|
|
|
|
Name: ForceFeedback
|
|
|
|
Argument: Integer.
|
|
|
|
Description: If set to 1, enables force feedback emulation; if set to 0,
|
|
disables it (the default behavior). Equivalent to the
|
|
'-force-feedback' command line option. Available only on
|
|
Windows.
|
|
|
|
----------------
|
|
|
|
Name: DirectInputConstForceMax
|
|
DirectInputFrictionMax
|
|
DirectInputSelfCenterMax
|
|
DirectInputVibrateMax
|
|
|
|
Argument: Integer value.
|
|
|
|
Description: Sets strength of the four DirectInput force feedback
|
|
effects in percent. Default is 100, indicating full
|
|
strength. Values exceeding 100% will distort the effects.
|
|
Available only on Windows.
|
|
|
|
----------------
|
|
|
|
Name: XInputConstForceMax
|
|
XInputVibrateMax
|
|
|
|
Argument: Integer value.
|
|
|
|
Description: Sets strength of XInput force feedback effects in percent.
|
|
Default is 100, indicating full strength. Values exceeding
|
|
100% will distort the effects. The constant force effect
|
|
is simulated using vibration. Available only on Windows.
|
|
|
|
----------------
|
|
|
|
Name: XInputConstForceThreshold
|
|
|
|
Argument: Integer value.
|
|
|
|
Description: Minimum strength above which a Model 3 constant force
|
|
command will be simulated on an XInput device.
|
|
XInputConstForceMax determines the vibration strength for
|
|
this effect. The default value is 30. Available only on
|
|
Windows.
|
|
|
|
----------------
|
|
|
|
Names: InputStart1
|
|
InputStart2
|
|
InputCoin1
|
|
InputCoin2
|
|
InputServiceA
|
|
InputServiceB
|
|
InputTestA
|
|
InputTestB
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for common inputs: player 1 and 2 Start buttons,
|
|
both coin slots, and both Service and Test buttons. Can
|
|
only be set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Names: InputJoyDown
|
|
InputJoyDown2
|
|
InputJoyLeft
|
|
InputJoyLeft2
|
|
InputJoyRight
|
|
InputJoyRight2
|
|
InputJoyUp
|
|
InputJoyUp2
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for 4-way digital joysticks (players 1 and 2).
|
|
These controls appear in 'Virtua Fighter 3', 'Fighting
|
|
Vipers 2', 'Spikeout', etc. Can only be set in the
|
|
'Global' section.
|
|
|
|
----------------
|
|
|
|
Names: InputEscape
|
|
InputEscape2
|
|
InputGuard
|
|
InputGuard2
|
|
InputKick
|
|
InputKick2
|
|
InputPunch
|
|
InputPunch2
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for fighting game buttons (players 1 and 2). Can
|
|
only be set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Names: InputBeat
|
|
InputCharge
|
|
InputJump
|
|
InputShift
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for 'Spikeout' and 'Spikeout Final Edition'
|
|
buttons. Can only be set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputLongPass
|
|
InputLongPass2
|
|
InputShortPass
|
|
InputShortPass2
|
|
InputShoot
|
|
InputShoot2
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for the 'Virtua Striker 2' series of games
|
|
(players 1 and 2). Can only be set in the 'Global'
|
|
section.
|
|
|
|
----------------
|
|
|
|
Name: InputSteering
|
|
|
|
Argument: String.
|
|
|
|
Description: Mapping for the analog steering wheel axis, used in all
|
|
driving games. Can only be set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputSteeringLeft
|
|
InputSteeringRight
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for digital control of the steering wheel,
|
|
intended for users who do not have an analog controller.
|
|
Can only be set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputBrake
|
|
InputAccelerator
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for brake and accelerator pedals used in driving
|
|
games. These are analog axes but can also be mapped to
|
|
digital inputs if needed. Can only be set in the 'Global'
|
|
section.
|
|
|
|
----------------
|
|
|
|
Name: InputGearShift1
|
|
InputGearShift2
|
|
InputGearShift3
|
|
InputGearShift4
|
|
InputGearShiftN
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for the gear box used in driving games. In games
|
|
with only two gears (e.g. 'Le Mans 24'), InputGearShift1
|
|
maps to 'Up' and InputGearShift2 to 'Down'. A neutral
|
|
position can also be selected. Can only be set in the
|
|
'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputGearShiftDown
|
|
InputGearShiftUp
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for sequential shifting. These allow gears to be
|
|
selected sequentially: N, 1, 2, 3, 4. Can only be set in
|
|
the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputVR1
|
|
InputVR2
|
|
InputVR3
|
|
InputVR4
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for the 'VR' (color-coded view select) buttons in
|
|
racing games (e.g. 'Scud Race', 'Daytona USA 2', etc.) Can
|
|
only be set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputViewChange
|
|
|
|
Argument: String.
|
|
|
|
Description: Mapping for the view change button used in 'Sega Rally 2',
|
|
'Dirt Devils', and 'Emergency Car Ambulance'. Can only be
|
|
set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputHandBrake
|
|
|
|
Argument: String.
|
|
|
|
Description: Mapping for the hand brake button used in 'Sega Rally 2'.
|
|
Can only be set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputTwinJoyCrouch
|
|
InputTwinJoyForward
|
|
InputTwinJoyJump
|
|
InputTwinJoyReverse
|
|
InputTwinJoyStrafeLeft
|
|
InputTwinJoyStrafeRight
|
|
InputTwinJoyTurnLeft
|
|
InputTwinJoyTurnRight
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for 'macro' commands for 'Virtual On Oratorio
|
|
Tangram'. These allow movements to be mapped to single
|
|
digital inputs and do not require the use of two joysticks.
|
|
Can only be set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputTwinJoyDown1
|
|
InputTwinJoyDown2
|
|
InputTwinJoyLeft1
|
|
InputTwinJoyLeft2
|
|
InputTwinJoyRight1
|
|
InputTwinJoyRight2
|
|
InputTwinJoyUp1
|
|
InputTwinJoyUp2
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for the individual joysticks used by 'Virtual On
|
|
Oratorio Tangram'. The left stick is stick #1 and the
|
|
right stick is #2. Can only be set in the 'Global'
|
|
section.
|
|
|
|
----------------
|
|
|
|
Name: InputTwinJoyShot1
|
|
InputTwinJoyShot2
|
|
InputTwinJoyTurbo1
|
|
InputTwinJoyTurbo2
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for the shot (trigger) and turbo buttons located
|
|
on the left (1) and right (2) joysticks in 'Virtual On
|
|
Oratorio Tangram'. Can only be set in the 'Global'
|
|
section.
|
|
|
|
----------------
|
|
|
|
Name: InputAnalogJoyDown
|
|
InputAnalogJoyLeft
|
|
InputAnalogJoyRight
|
|
InputAnalogJoyUp
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for digital control of the analog joystick used in
|
|
'Star Wars Trilogy'. Two inputs are provided for the two
|
|
directions available on each axis. Can only be set in the
|
|
'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputAnalogJoyX
|
|
InputAnalogJoyY
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for X and Y axes of the analog joystick in 'Star
|
|
Wars Trilogy'. Can only be set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputAnalogJoyTrigger
|
|
InputAnalogJoyEvent
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for the trigger and Event button in 'Star Wars
|
|
Trilogy'. Can only be set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputGunDown
|
|
InputGunDown2
|
|
InputGunLeft
|
|
InputGunLeft2
|
|
InputGunRight
|
|
InputGunRight2
|
|
InputGunUp
|
|
InputGunUp2
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for digital control of the light guns in 'The Lost
|
|
World'. Inputs for motion in each direction are provided.
|
|
Can only be set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputGunX
|
|
InputGunX2
|
|
InputGunY
|
|
InputGunY2
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for both analog axes of the light guns in 'The
|
|
Lost World'. Can only be set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputOffscreen
|
|
InputOffscreen2
|
|
InputTrigger
|
|
InputTrigger2
|
|
|
|
Argument: String.
|
|
|
|
Description: Mappings for the light gun triggers and off-screen
|
|
controls in 'The Lost World'. The off-screen button aims
|
|
the light gun off-screen while it is pressed, which makes
|
|
re-loading possible. Can only be set in the 'Global'
|
|
section.
|
|
|
|
----------------
|
|
|
|
Name: InputAutoTrigger
|
|
InputAutoTrigger2
|
|
|
|
Argument: Integer.
|
|
|
|
Description: When set to 1, the off-screen button will also
|
|
automatically reload (no need to pull the trigger). Can
|
|
only be set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputKeySensitivity
|
|
|
|
Argument: Integer.
|
|
|
|
Description: The rate at which analog control values increase/decrease
|
|
when controlled by a key. Valid range is 1-100, with 1
|
|
being the least sensitive (slowest response). The default
|
|
is 25. Can only be set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputKeyDecaySpeed
|
|
|
|
Argument: Integer.
|
|
|
|
Description: The rate at which analog control values return to their
|
|
rest or 'off' position after a key has been released. The
|
|
value is expressed as a percentage of the attack speed,
|
|
ranging from 1-200. The default is 50, meaning analog
|
|
controls take twice as long to return to their rest state
|
|
as they do to reach their minimum/maximum values. Can only
|
|
be set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputMouseXDeadZone
|
|
InputMouseYDeadZone
|
|
|
|
Argument: Integer.
|
|
|
|
Description: Specifies a rectangular region in the center of the display
|
|
within which the mouse is considered inactive. Expressed
|
|
as percentages, from 0-99, of the width and height of the
|
|
display. The default values are 0, which disable this
|
|
option. Can only be set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputJoy**DeadZone
|
|
|
|
Argument: Integer.
|
|
|
|
Description: '**' must be the joystick number and axis (eg. '1X', '2RZ',
|
|
etc.). If the joystick number is omitted, the setting will
|
|
apply to all joysticks. Specifies the dead zone as a
|
|
percentage, 0-99, of the total range of the axis. Within
|
|
the dead zone, the joystick is inactive. This is useful
|
|
for joysticks that are 'noisy' when at rest. Can only be
|
|
set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputJoy**Saturation
|
|
|
|
Argument: Integer.
|
|
|
|
Description: '**' must be the joystick number and axis (eg. '1X', '2RZ',
|
|
etc.). If the joystick number is omitted, the setting will
|
|
apply to all joysticks. Specifies the saturation, the
|
|
position at which the joystick is interpreted as being in
|
|
its most extreme position, as a percentage of the total
|
|
range of the axis, from 0-200. Values exceeding 100% mean
|
|
the axis will not use its full range. A value of 200 means
|
|
that the range will be halved (fully pressed will only
|
|
register as 50%). The default is 100, a 1-to-1 mapping.
|
|
Can only be set in the 'Global' section.
|
|
|
|
----------------
|
|
|
|
Name: InputJoy**MinVal
|
|
InputJoy**MaxVal
|
|
InputJoy**OffVal
|
|
|
|
Argument: Integer.
|
|
|
|
Description: '**' must be the joystick number and axis (eg. '1X', '2RZ',
|
|
etc.). If the joystick number is omitted, the setting will
|
|
apply to all joysticks. Specifies the maximum, minimum, or
|
|
offset value of an axis. The range is -32768 to 32768. By
|
|
default, MinVal is -32768, OffVal is 0, and MaxVal is
|
|
32767. Can only be set in the 'Global' section.
|
|
|
|
|
|
=================================
|
|
15. Compiling the Source Code
|
|
=================================
|
|
|
|
First, ensure that OpenGL, SDL (http://www.libsdl.org), and zlib
|
|
(http://zlib.net) are installed. GLEW (http://glew.sourceforge.net) is
|
|
included in the source tree and does not need to be installed separately.
|
|
|
|
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 32-bit Windows (Microsoft Visual C++
|
|
2008), Linux/UNIX (GCC), and Mac OS X (GCC) are provided, all requiring 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 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. This should only be necessary for
|
|
Windows. The UNIX and Mac OS X Makefiles should be able to automatically
|
|
locate SDL if it was installed properly.
|
|
|
|
On Windows, Supermodel is compiled with the multi-threaded, static version of
|
|
the run-time library (/MT option). However, the SDL and zlib development
|
|
libraries, and the SDL run-time DLL, are distributed for use with the dynamic
|
|
run-time (/MD option). They must all be recompiled using /MT to work with
|
|
Supermodel. Alternatively, Supermodel's Makefile can be edited to use the /MD
|
|
option.
|
|
|
|
When everything is ready, rename the appropriate Makefile to 'Makefile' and run
|
|
'make'. If all goes well it should produce a Supermodel binary.
|
|
|
|
|
|
===========================
|
|
16. Contact Information
|
|
===========================
|
|
|
|
The official Supermodel web site is:
|
|
|
|
http://www.Supermodel3.com
|
|
|
|
Questions? Comments? Contributions? Your feedback is welcome! A discussion
|
|
forum is available at the web site and the primary author, Bart Trzynadlowski,
|
|
can be reached by email at:
|
|
|
|
supermodel.emu@gmail.com
|
|
|
|
We ask that you remain mindful of the following courtesies:
|
|
|
|
- Do NOT ask about ROMs.
|
|
- Do NOT request features.
|
|
- Do NOT ask about release dates of future versions.
|
|
|
|
|
|
=======================
|
|
17. Acknowledgments
|
|
=======================
|
|
|
|
Numerous people contributed their precious time and energy to this project.
|
|
Without them, Supermodel would not have been possible. In no particular order,
|
|
we would like to thank:
|
|
|
|
- Ville Linde, original Supermodel team member and MAMEDev extraordinaire
|
|
- Stefano Teso, original Supermodel team member
|
|
- ElSemi, for all sorts of technical information and insight
|
|
- R. Belmont, for DSB code and modified Amp library from his music player,
|
|
M1, and the Mac OS X port
|
|
- Naibo Zhang, for his work on Model 3 graphics
|
|
- krom, for adding in the remaining ROM sets
|
|
- Andrew Lewis (a.k.a. Andy Geezer), for dumping the drive board ROMs and
|
|
providing region codes
|
|
- The Guru, for his efforts in dumping Model 3 ROM sets
|
|
- Abelardo Vidal Martos, for providing extremely useful video recordings of
|
|
actual Model 3 games
|
|
- Andrew Gardner, for fruitful discussion
|
|
- Chad Reker, Alex Corrigan, pcvideogamer, and Groni, for being especially
|
|
thorough play-testers
|
|
- Charles MacDonald, for his helpful description of the System 24 tile
|
|
generator
|
|
|
|
Supermodel includes code from the following projects:
|
|
|
|
- zlib: http://zlib.net
|
|
- minizip: http://www.winimage.com/zLibDll/minizip.html
|
|
- YAZE-AG: http://www.mathematik.uni-ulm.de/users/ag/yaze/
|
|
- Amp by Tomislav Uzalec
|
|
- 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.
|