mirror of
https://github.com/RetroDECK/Supermodel.git
synced 2024-11-25 15:15:40 +00:00
- Only player 1 crosshair is shown by default now.
- Tweaked Makefiles a bit. - More documentation updates. - Changed version string to 0.2a in preparation for the final release :)
This commit is contained in:
parent
33f35effaf
commit
83067f076f
|
@ -13,6 +13,9 @@
|
||||||
Copyright 2011 Bart Trzynadlowski, Nik Henson
|
Copyright 2011 Bart Trzynadlowski, Nik Henson
|
||||||
|
|
||||||
|
|
||||||
|
LICENSE AGREEMENT FOR SUPERMODEL VERSION 0.2A
|
||||||
|
|
||||||
|
|
||||||
Supermodel is distributed as free software under the terms of the GNU General
|
Supermodel is distributed as free software under the terms of the GNU General
|
||||||
Public License, included below. See README.txt for additional documentation.
|
Public License, included below. See README.txt for additional documentation.
|
||||||
The source code may be obtained from the official Supermodel web site:
|
The source code may be obtained from the official Supermodel web site:
|
||||||
|
|
180
Docs/README.txt
180
Docs/README.txt
|
@ -1,7 +1,7 @@
|
||||||
TODO: Proof source code, fix capitalization in config dialog!
|
TODO: Proof source code
|
||||||
|
TODO: if Nik adds MSVC project files, mention that first in compiling section
|
||||||
TODO: discussion of missing input settings in index: saturation, dead zone, analog/digital sensitivity, etc. All missing now.
|
TODO: discussion of missing input settings in index: saturation, dead zone, analog/digital sensitivity, etc. All missing now.
|
||||||
TODO: input stuff to be written in section 12
|
TODO: input stuff to be written in section 12
|
||||||
TODO: add a title to this document and LICENSE.txt (e.g. 'User Manual for Supermodel Version 0.2a', 'License Agreement for Supermodel v0.2a')
|
|
||||||
TODO: final proof read, then convert all tabs to spaces
|
TODO: final proof read, then convert all tabs to spaces
|
||||||
TODO: don't forget to add date to revision history!
|
TODO: don't forget to add date to revision history!
|
||||||
|
|
||||||
|
@ -15,20 +15,22 @@ TODO: don't forget to add date to revision history!
|
||||||
#### ### ## ## #### #### ## ## #### ### ## #### ####
|
#### ### ## ## #### #### ## ## #### ### ## #### ####
|
||||||
####
|
####
|
||||||
|
|
||||||
Supermodel Version 0.2a
|
|
||||||
A Sega Model 3 Arcade Emulator.
|
A Sega Model 3 Arcade Emulator.
|
||||||
Copyright 2011 Bart Trzynadlowski, Nik Henson
|
Copyright 2011 Bart Trzynadlowski, Nik Henson
|
||||||
|
|
||||||
|
|
||||||
|
USER MANUAL FOR SUPERMODEL VERSION 0.2A
|
||||||
|
|
||||||
|
|
||||||
================
|
================
|
||||||
Introduction
|
Introduction
|
||||||
================
|
================
|
||||||
|
|
||||||
Supermodel emulates the Sega Model 3 arcade platform. It uses OpenGL 2.1 and
|
Supermodel emulates the Sega Model 3 arcade platform. It uses OpenGL 2.1 and
|
||||||
is available for Windows, Linux, and Mac OS X. In order to use it, you must
|
runs on Windows, Linux, and Mac OS X. In order to use it, you must legally
|
||||||
legally possess ROM images of Model 3 games. Learning to operate Supermodel
|
possess ROM images of Model 3 games. Learning to operate Supermodel will come
|
||||||
may come with a steep learning curve for most people. Carefully reading this
|
with a steep learning curve for most people. Before seeking out help, please
|
||||||
document in its entirety before seeking out help is strongly advised.
|
read this user manual carefully.
|
||||||
|
|
||||||
Supermodel is distributed as free software under the terms of the GNU General
|
Supermodel is distributed as free software under the terms of the GNU General
|
||||||
Public License, included in LICENSE.txt. Additional copyright information for
|
Public License, included in LICENSE.txt. Additional copyright information for
|
||||||
|
@ -44,10 +46,10 @@ The source code may be obtained from the official Supermodel web site:
|
||||||
==============
|
==============
|
||||||
|
|
||||||
This is an early public release of Supermodel. It is very much preliminary,
|
This is an early public release of Supermodel. It is very much preliminary,
|
||||||
alpha version software (hence the 'a' in the version number). Development was
|
alpha version software (hence the 'a' in the version number). Development
|
||||||
started in January of 2011 and has focused on reverse engineering aspects of
|
began in January of 2011 and has focused on reverse engineering aspects of the
|
||||||
the system that are still unknown. Consequently, many important features, such
|
Model 3 that are still unknown. Consequently, many important features, such as
|
||||||
as a proper user interface, are not yet implemented and game compatibility is
|
a proper user interface, are not yet implemented and game compatibility is
|
||||||
still low.
|
still low.
|
||||||
|
|
||||||
|
|
||||||
|
@ -81,7 +83,7 @@ still low.
|
||||||
1. Revision History
|
1. Revision History
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
Version 0.2a (September ?, 2011)
|
Version 0.2a (September 24, 2011)
|
||||||
- New, fully customizable input system. Supports any combination of
|
- New, fully customizable input system. Supports any combination of
|
||||||
keyboards, mice, and analog and digital controllers. [Nik Henson]
|
keyboards, mice, and analog and digital controllers. [Nik Henson]
|
||||||
- Texture offsets. Fixes models in 'Fighting Vipers 2', 'Virtual On',
|
- Texture offsets. Fixes models in 'Fighting Vipers 2', 'Virtual On',
|
||||||
|
@ -94,13 +96,13 @@ still low.
|
||||||
- Sound support. Special thanks to ElSemi for contributing his SCSP
|
- Sound support. Special thanks to ElSemi for contributing his SCSP
|
||||||
emulator and Karl Stenerud for allowing us to use his 68K emulator.
|
emulator and Karl Stenerud for allowing us to use his 68K emulator.
|
||||||
- Multi-threading support. Sound and drive board emulation are off-
|
- Multi-threading support. Sound and drive board emulation are off-
|
||||||
loaded to a separate thread, substantially enhancing performance.
|
loaded to separate threads, substantially enhancing performance.
|
||||||
[Nik Henson]
|
[Nik Henson]
|
||||||
- Z80 emulation based on code by Frank D. Cringle and YAZE-AG by
|
- Z80 emulation based on code by Frank D. Cringle and YAZE-AG by
|
||||||
Andreas Gerlich.
|
Andreas Gerlich.
|
||||||
- Digital Sound Board (MPEG music) emulation courtesy of R. Belmont and
|
- Digital Sound Board (MPEG music) emulation courtesy of R. Belmont and
|
||||||
the MPEG decoder library by Tomislav Uzelac.
|
the MPEG decoder library by Tomislav Uzelac.
|
||||||
- Improved ROM loading. It should no longer be as easily confused by
|
- Improved ROM loader. It should no longer be as easily confused by
|
||||||
combined ROM sets as long as unused files are removed.
|
combined ROM sets as long as unused files are removed.
|
||||||
- Configuration file now supports more settings and allows game-
|
- Configuration file now supports more settings and allows game-
|
||||||
specific customization.
|
specific customization.
|
||||||
|
@ -154,7 +156,8 @@ directories should be created:
|
||||||
Saves/ Directory where save states will be saved.
|
Saves/ Directory where save states will be saved.
|
||||||
|
|
||||||
Supermodel requires OpenGL 2.1 and a substantial amount of both video and
|
Supermodel requires OpenGL 2.1 and a substantial amount of both video and
|
||||||
system memory.
|
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
|
As of this version, Linux and Mac OS X binaries are not provided. Users must
|
||||||
compile their own.
|
compile their own.
|
||||||
|
@ -170,7 +173,7 @@ arguments for an explanation of supported options.
|
||||||
|
|
||||||
Supermodel uses MAME-compatible ROM sets. It loads from ZIP archives based on
|
Supermodel uses MAME-compatible ROM sets. It loads from ZIP archives based on
|
||||||
file checksums and automatically detects games; therefore, file names are not
|
file checksums and automatically detects games; therefore, file names are not
|
||||||
important. A maximum of one ZIP file can be specified on the command line. For
|
important. Only one ZIP file can be specified on the command line. For
|
||||||
example:
|
example:
|
||||||
|
|
||||||
supermodel scud.zip -fullscreen
|
supermodel scud.zip -fullscreen
|
||||||
|
@ -314,10 +317,10 @@ automatically adjusts the display area to retain the aspect ratio of the Model
|
||||||
3's native (and Supermodel's default) resolution, 496x384. Currently, this
|
3's native (and Supermodel's default) resolution, 496x384. Currently, this
|
||||||
cannot be overriden. Changing video modes at run-time is not yet supported.
|
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
|
By default, Supermodel limits the frame rate to 60 frames per second. This has
|
||||||
performance except when the frame rate exceeds 60 FPS on fast systems. This
|
no impact on performance except when the frame rate exceeds 60 FPS on fast
|
||||||
can be disabled with the '-no-throttle' option. Some video drivers may
|
systems. Frame rate limiting can be disabled with the '-no-throttle' option.
|
||||||
continue to lock to the refresh rate.
|
Some video drivers may continue to lock to the refresh rate.
|
||||||
|
|
||||||
To change the resolution, use the '-res' command line option. For full screen
|
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,
|
mode, use '-fullscreen'. For example, to set a full screen 1920x1080 mode,
|
||||||
|
@ -326,7 +329,7 @@ try:
|
||||||
supermodel game.zip -res=1920,1080 -fullscreen
|
supermodel game.zip -res=1920,1080 -fullscreen
|
||||||
|
|
||||||
Video settings may also be specified globally or on a per-game basis in the
|
Video settings may also be specified globally or on a per-game basis in the
|
||||||
configuration file, described elsewhere in this document.
|
configuration file, described elsewhere in this manual.
|
||||||
|
|
||||||
|
|
||||||
=====================
|
=====================
|
||||||
|
@ -360,7 +363,7 @@ levels become too high.
|
||||||
|
|
||||||
To disable sound and music board emulation altogether, use the '-no-sound' and
|
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
|
'-no-dsb' options. These will not merely mute the corresponding audio channels
|
||||||
but will prevent the CPUs and audio chips from being emulated altogether. Save
|
but will prevent the audio co-processors from being emulated altogether. Save
|
||||||
states generated with these settings may not be able to properly restore audio
|
states generated with these settings may not be able to properly restore audio
|
||||||
when loaded after emulation is re-enabled.
|
when loaded after emulation is re-enabled.
|
||||||
|
|
||||||
|
@ -371,15 +374,16 @@ 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
|
buggy. Periodic squeaks and pops occur on many music tracks. The Sega Custom
|
||||||
Sound Processor (SCSP) emulator, used for sound emulation, is an older version
|
Sound Processor (SCSP) emulator, used for sound emulation, is an older version
|
||||||
of ElSemi's code and also quite buggy. Sound glitches are known to occur now
|
of ElSemi's code and also quite buggy. Sound glitches are known to occur now
|
||||||
and then, and many sounds and tunes do not sound quite correct.
|
and then, and many sounds and tunes do not sound quite correct yet.
|
||||||
|
|
||||||
|
|
||||||
===============
|
===============
|
||||||
7. Controls
|
7. Controls
|
||||||
===============
|
===============
|
||||||
|
|
||||||
Supermodel only supports the keyboard and mouse at present. Emulator functions
|
Game controls are fully configurable and can be mapped to keyboards, mice, and
|
||||||
are listed below and cannot be changed.
|
game controllers. Emulator functions, on the other hand, cannot be changed and
|
||||||
|
are listed below.
|
||||||
|
|
||||||
Function Key Assignment
|
Function Key Assignment
|
||||||
-------- --------------
|
-------- --------------
|
||||||
|
@ -415,19 +419,22 @@ 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.
|
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, make sure
|
If the configuration dialog is not responding to your key presses, make sure
|
||||||
that the blank window rather than the command prompt is selected. This may
|
that the blank pop-up window rather than the command prompt is selected. This
|
||||||
seem counter-intuitive but inputs are captured by the graphical window while
|
may seem counter-intuitive but inputs are captured by the graphical window
|
||||||
messages are printed to the command prompt.
|
while messages are printed to the command prompt.
|
||||||
|
|
||||||
|
|
||||||
XBox 360 Controllers
|
XBox 360 Controllers
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
For full XBox 360 controller support, the XInput system must be used
|
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
|
('-input-system=xinput'). Otherwise, the left and right trigger buttons cannot
|
||||||
be mapped individually and force feedback will not work. Please read the
|
be mapped individually and force feedback will not work. Please read the
|
||||||
section titled 'Input Systems', further below.
|
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
|
||||||
---------------
|
---------------
|
||||||
|
@ -461,7 +468,7 @@ Virtual On Twin Joysticks
|
||||||
to a tracked vehicle (e.g. a tank). Movement is accomplished by pushing both
|
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
|
joysticks in the same direction. Pushing and pulling in opposite directions
|
||||||
will turn the robot, while pulling the joysticks apart sideways or pushing them
|
will turn the robot, while pulling the joysticks apart sideways or pushing them
|
||||||
inwards is for jumping and falling back down to the ground, respectively.
|
inwards are for jumping and falling back down to the ground, respectively.
|
||||||
|
|
||||||
Supermodel supports mapping the individual joysticks but also provides 'macro'
|
Supermodel supports mapping the individual joysticks but also provides 'macro'
|
||||||
controls by default. These allow all the necessary twin joystick commands to
|
controls by default. These allow all the necessary twin joystick commands to
|
||||||
|
@ -486,13 +493,16 @@ 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-
|
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
|
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
|
off-screen. To reload, hold down this button and then, while holding it, press
|
||||||
the trigger.
|
the trigger. For automatic reloading, the 'InputAutoTrigger' setting can be
|
||||||
|
enabled in the configuration file (described elsewhere in this manual).
|
||||||
|
|
||||||
Crosshairs for both players will be visible in full screen mode and can also be
|
Crosshairs will be visible in full screen mode and can also be enabled in
|
||||||
enabled in windowed modes. Use Alt-I to select the crosshair mode.
|
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 used, Raw
|
For multiple mouse support, allowing two mice or PC light guns to be mapped,
|
||||||
Input must be used. This is supported only on Windows and is described below.
|
Raw Input must be used. This is supported only on Windows and is described
|
||||||
|
below.
|
||||||
|
|
||||||
|
|
||||||
Input Systems
|
Input Systems
|
||||||
|
@ -518,8 +528,8 @@ Windows users can select between four different input systems:
|
||||||
Windows but does not provide full support for all devices.
|
Windows but does not provide full support for all devices.
|
||||||
|
|
||||||
When switching input systems with '-input-system', you must also configure your
|
When switching input systems with '-input-system', you must also configure your
|
||||||
inputs using the same option. For example, when running Supermodel with
|
inputs using the same option. For example, when running Supermodel with XInput
|
||||||
XInput ('supermodel game.zip -input-system=xinput'), you must configure with
|
('supermodel game.zip -input-system=xinput'), you must also configure with
|
||||||
XInput ('supermodel -config-inputs -input-system=xinput'). Many settings are
|
XInput ('supermodel -config-inputs -input-system=xinput'). Many settings are
|
||||||
not compatible between input systems.
|
not compatible between input systems.
|
||||||
|
|
||||||
|
@ -563,8 +573,8 @@ Force feedback can be enabled and tuned in the configuration file. Setting
|
||||||
|
|
||||||
ForceFeedback = 1
|
ForceFeedback = 1
|
||||||
|
|
||||||
There are three DirectInput effects: constant force, self centering, and
|
There are four DirectInput effects: constant force, self centering, friction,
|
||||||
vibration. The strength of each can be tuned with the following settings:
|
and vibration. The strength of each can be tuned with the following settings:
|
||||||
|
|
||||||
DirectInputConstForceMax = 100
|
DirectInputConstForceMax = 100
|
||||||
DirectInputSelfCenterMax = 100
|
DirectInputSelfCenterMax = 100
|
||||||
|
@ -588,7 +598,8 @@ The relevant settings are:
|
||||||
The constant force threshold specifies how strong a constant force command must
|
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
|
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
|
determined by XInputConstForceMax). The default values are shown above and
|
||||||
will require calibration by the user on a game-by-game basis.
|
will require calibration by the user on a game-by-game basis to achieve the
|
||||||
|
best feel.
|
||||||
|
|
||||||
|
|
||||||
============================
|
============================
|
||||||
|
@ -600,11 +611,19 @@ Save states are saved and restored by pressing F5 and F7, respectively. Up to
|
||||||
Saves/ directory, which must exist beforehand. If you extracted the Supermodel
|
Saves/ directory, which must exist beforehand. If you extracted the Supermodel
|
||||||
ZIP file correctly, it will have been created automatically.
|
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
|
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
|
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
|
stores machine settings (often accessed using the Test buttons). NVRAM is
|
||||||
automatically saved each time Supermodel exits and is loaded at start-up. It
|
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.
|
can be cleared by deleting the NVRAM files or pressing Alt-N.
|
||||||
|
|
||||||
|
|
||||||
=======================================
|
=======================================
|
||||||
|
@ -643,7 +662,7 @@ 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
|
caused by an unknown emulation bug. Simply wait until the Darth Vader sequence
|
||||||
appears before attempting to start a game.
|
appears before attempting to start a game.
|
||||||
|
|
||||||
If Star Wars Trilogy is booting directly into the stage select screen, it is
|
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.
|
probably because you exited Supermodel with credits still in the machine.
|
||||||
Clear the NVRAM (Alt-N) and reset the game (Alt-R).
|
Clear the NVRAM (Alt-N) and reset the game (Alt-R).
|
||||||
|
|
||||||
|
@ -651,8 +670,8 @@ Clear the NVRAM (Alt-N) and reset the game (Alt-R).
|
||||||
Sega Rally 2
|
Sega Rally 2
|
||||||
------------
|
------------
|
||||||
|
|
||||||
As with Star Wars Trilogy, you may experience problems if you attempt to start
|
As with 'Star Wars Trilogy', you may experience problems if you attempt to
|
||||||
a game before any 3D graphics are displayed (for example, during the Sega
|
start a game before any 3D graphics are displayed (for example, during the Sega
|
||||||
logo).
|
logo).
|
||||||
|
|
||||||
The region can be changed by entering the test menu (press the Test button) and
|
The region can be changed by entering the test menu (press the Test button) and
|
||||||
|
@ -660,11 +679,22 @@ 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.
|
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
|
The Lost World
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
To reload, the light gun must be pointed off-screen by pressing (and holding)
|
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.
|
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
|
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
|
pressing: Start, Start, Service, Start, Service, Test. Use the player 1 Start
|
||||||
|
@ -681,6 +711,8 @@ during transition scenes.
|
||||||
Virtua Striker 2 '98 (Step 1.5 and 2.0 versions)
|
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)
|
The region can be changed by entering the test menu (press the Test button)
|
||||||
and, in the 'Game Assignments' menu, performing the following sequence:
|
and, in the 'Game Assignments' menu, performing the following sequence:
|
||||||
|
|
||||||
|
@ -741,7 +773,7 @@ game-specific settings, and lastly, global settings.
|
||||||
|
|
||||||
An index of all allowed settings is provided further below in this document.
|
An index of all allowed settings is provided further below in this document.
|
||||||
|
|
||||||
NOTE: Type carefully! Supermodel will not report syntax errors or detect
|
NOTE: Type carefully! Supermodel will not report syntax errors nor detect
|
||||||
typos. Carefully read the discussion of the file syntax below. To verify that
|
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
|
your intended settings are taking effect, check the 'error.log' file that is
|
||||||
produced by Supermodel during each run.
|
produced by Supermodel during each run.
|
||||||
|
@ -750,16 +782,15 @@ produced by Supermodel during each run.
|
||||||
File Structure and Syntax
|
File Structure and Syntax
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
The configuration file is a list of settings grouped under sections. All names
|
The configuration file is a list of settings grouped by sections. All setting
|
||||||
and settings in the file are case sensitive. Settings take the form:
|
names and their arguments are case sensitive. They take the form:
|
||||||
|
|
||||||
Name = Argument
|
Name = Argument
|
||||||
|
|
||||||
Names are case sensitive. Only one setting per line is allowed. Only two
|
Only one setting per line is allowed. Only two types of arguments are allowed:
|
||||||
types of arguments are allowed: integers and strings. The choice of which to
|
integers and strings. The choice of which to use is determined by the setting.
|
||||||
use is determined by the setting. Integers are unsigned and begin at 0.
|
Integers are unsigned and begin at 0. Strings can contain any characters and
|
||||||
Strings can contain any characters and are enclosed by double quotes.
|
are enclosed by double quotes. Examples:
|
||||||
Examples:
|
|
||||||
|
|
||||||
IntegerSetting1 = 0
|
IntegerSetting1 = 0
|
||||||
IntegerSetting2 = 65536
|
IntegerSetting2 = 65536
|
||||||
|
@ -788,7 +819,7 @@ Global and Game-Specific Sections
|
||||||
|
|
||||||
Sections determine whether settings are applied globally, to all games, or to
|
Sections determine whether settings are applied globally, to all games, or to
|
||||||
specific games. Game-specific settings will override global settings and can
|
specific games. Game-specific settings will override global settings and can
|
||||||
be used to tune Supermodel on a game-by-game basis. Global settings should be
|
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
|
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
|
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
|
(http://www.mamedev.org) naming convention. They can be obtained by running
|
||||||
|
@ -845,7 +876,7 @@ by generating a configuration file using '-config-inputs'.
|
||||||
=====================================
|
=====================================
|
||||||
|
|
||||||
All valid command line settings are listed here, ordered by category. Defaults
|
All valid command line settings are listed here, ordered by category. Defaults
|
||||||
are given under the assumption that they also have not been changed in the
|
are given under the assumption that they have not been changed in the
|
||||||
configuration file.
|
configuration file.
|
||||||
|
|
||||||
Square brackets ('[' and ']') indicate optional parameters. Angled brackets
|
Square brackets ('[' and ']') indicate optional parameters. Angled brackets
|
||||||
|
@ -890,9 +921,10 @@ not. All options are case sensitive.
|
||||||
may slow down Supermodel on weaker computers. Supermodel's
|
may slow down Supermodel on weaker computers. Supermodel's
|
||||||
performance can frequently be improved by lowering the
|
performance can frequently be improved by lowering the
|
||||||
PowerPC frequency (25 MHz works in many games). In some
|
PowerPC frequency (25 MHz works in many games). In some
|
||||||
games, this will cause timing problems. The optimum value
|
games, this will cause timing problems and jerky
|
||||||
for this setting will vary from game to game and system to
|
performance. The optimum frequency will vary from game to
|
||||||
system. Valid values are 1 to 1000.
|
game and system to system. Valid values for <f> are 1 to
|
||||||
|
1000.
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
@ -908,7 +940,8 @@ not. All options are case sensitive.
|
||||||
Description: Disables 60 FPS throttling. The Model 3 runs at a 60 Hz
|
Description: Disables 60 FPS throttling. The Model 3 runs at a 60 Hz
|
||||||
refresh rate, which Supermodel enforces if this option is
|
refresh rate, which Supermodel enforces if this option is
|
||||||
omitted. Unthrottled operation may not work on some
|
omitted. Unthrottled operation may not work on some
|
||||||
systems because graphics drivers may lock the refresh rate.
|
systems because graphics drivers may lock the refresh rate
|
||||||
|
on their own.
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
@ -920,8 +953,9 @@ not. All options are case sensitive.
|
||||||
|
|
||||||
Option: -res=<x>,<y>
|
Option: -res=<x>,<y>
|
||||||
|
|
||||||
Description: Resolution of the display in pixels. The default is
|
Description: Resolution of the display in pixels, with <x> being width
|
||||||
496x384, the Model 3's native resolution.
|
and <y> being height. The default is 496x384, the Model
|
||||||
|
3's native resolution.
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
@ -935,9 +969,12 @@ not. All options are case sensitive.
|
||||||
-vert-shader=<file>
|
-vert-shader=<file>
|
||||||
|
|
||||||
Description: Allows external fragment and vertex shaders to be used for
|
Description: Allows external fragment and vertex shaders to be used for
|
||||||
3D rendering. Files should be ASCII text files containing
|
3D rendering. <file> is the file path. Files should be
|
||||||
GLSL source code. The file extension is not important. By
|
ASCII text files containing GLSL source code. The file
|
||||||
default, Supermodel's internal shader programs are used.
|
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.
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
@ -967,8 +1004,8 @@ not. All options are case sensitive.
|
||||||
Description: Specifies the volume of MPEG music produced by the Digital
|
Description: Specifies the volume of MPEG music produced by the Digital
|
||||||
Sound Board and the audio produced by the sound board in
|
Sound Board and the audio produced by the sound board in
|
||||||
percent. The default is 100, which is full volume, and the
|
percent. The default is 100, which is full volume, and the
|
||||||
valid range is 0 (muted) to 200%. See the section on audio
|
valid range of <v> is 0 (muted) to 200. See the section on
|
||||||
settings for more information.
|
audio settings for more information.
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
@ -992,7 +1029,7 @@ not. All options are case sensitive.
|
||||||
|
|
||||||
Description: Sets the input system. This is only available on Windows,
|
Description: Sets the input system. This is only available on Windows,
|
||||||
where the default is 'dinput' (DirectInput). SDL is used
|
where the default is 'dinput' (DirectInput). SDL is used
|
||||||
for all other platforms. Valid input systems are:
|
for all other platforms. Valid choices for <s> are:
|
||||||
|
|
||||||
dinput DirectInput.
|
dinput DirectInput.
|
||||||
xinput XInput
|
xinput XInput
|
||||||
|
@ -1563,6 +1600,7 @@ we would like to thank:
|
||||||
- ElSemi, for all sorts of technical information and insight
|
- ElSemi, for all sorts of technical information and insight
|
||||||
- Naibo Zhang, for his work on Model 3 graphics
|
- Naibo Zhang, for his work on Model 3 graphics
|
||||||
- R. Belmont, for all sorts of help and the Mac OS X port
|
- R. Belmont, for all sorts of help and the Mac OS X port
|
||||||
|
- krom, for adding in the remaining ROM sets
|
||||||
- Andrew Lewis (a.k.a. Andy Geezer), for dumping the drive board ROMs and
|
- Andrew Lewis (a.k.a. Andy Geezer), for dumping the drive board ROMs and
|
||||||
providing region codes
|
providing region codes
|
||||||
- The Guru, for his efforts in dumping Model 3 ROM sets
|
- The Guru, for his efforts in dumping Model 3 ROM sets
|
||||||
|
@ -1577,10 +1615,12 @@ we would like to thank:
|
||||||
|
|
||||||
Supermodel includes code from the following projects:
|
Supermodel includes code from the following projects:
|
||||||
|
|
||||||
zlib: http://zlib.net
|
- zlib: http://zlib.net
|
||||||
minizip: http://www.winimage.com/zLibDll/minizip.html
|
- minizip: http://www.winimage.com/zLibDll/minizip.html
|
||||||
The OpenGL Extension
|
- YAZE-AG: http://www.mathematik.uni-ulm.de/users/ag/yaze/
|
||||||
Wrangler Library (GLEW): http://glew.sourceforge.net
|
- Amp by Tomislav Uzalec
|
||||||
|
- The OpenGL Extension Wrangler Library (GLEW):
|
||||||
|
http://glew.sourceforge.net
|
||||||
|
|
||||||
The OpenGL Extension Wrangler Library
|
The OpenGL Extension Wrangler Library
|
||||||
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
|
||||||
|
|
|
@ -66,7 +66,7 @@ CC = gcc
|
||||||
OCC = gcc
|
OCC = gcc
|
||||||
LD = gcc
|
LD = gcc
|
||||||
COMPILER_FLAGS = -I$(OBJ_DIR) -ISrc/ -ISrc/OSD -ISrc/OSD/SDL/ -ISrc/Pkgs/ -ISrc/CPU/68K/Musashi -ISrc/Sound/MPEG -c -Wall -O3 -DUSE_FILE32API -DSUPERMODEL_OSX
|
COMPILER_FLAGS = -I$(OBJ_DIR) -ISrc/ -ISrc/OSD -ISrc/OSD/SDL/ -ISrc/Pkgs/ -ISrc/CPU/68K/Musashi -ISrc/Sound/MPEG -c -Wall -O3 -DUSE_FILE32API -DSUPERMODEL_OSX
|
||||||
CFLAGS = $(COMPILER_FLAGS) -std=c99
|
CFLAGS = $(COMPILER_FLAGS)
|
||||||
CPPFLAGS = $(COMPILER_FLAGS)
|
CPPFLAGS = $(COMPILER_FLAGS)
|
||||||
LFLAGS = -o $(OUTFILE) $(SDL_LDFLAGS) -lz -lm -lstdc++
|
LFLAGS = -o $(OUTFILE) $(SDL_LDFLAGS) -lz -lm -lstdc++
|
||||||
|
|
||||||
|
@ -213,7 +213,7 @@ $(OBJ_DIR)/%.o: Src/Pkgs/%.c
|
||||||
# To eliminate name conflicts, object files have the prefix "amp_" attached.
|
# To eliminate name conflicts, object files have the prefix "amp_" attached.
|
||||||
#
|
#
|
||||||
$(OBJ_DIR)/amp_%.o: Src/Sound/MPEG/%.cpp Src/Sound/MPEG/%.h
|
$(OBJ_DIR)/amp_%.o: Src/Sound/MPEG/%.cpp Src/Sound/MPEG/%.h
|
||||||
$(CC) $< $(CFLAGS) -o $(OBJ_DIR)/amp_$(*F).o
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/amp_$(*F).o
|
||||||
|
|
||||||
$(OBJ_DIR)/amp_%.o: Src/Sound/MPEG/%.cpp
|
$(OBJ_DIR)/amp_%.o: Src/Sound/MPEG/%.cpp
|
||||||
$(CC) $< $(CFLAGS) -o $(OBJ_DIR)/amp_$(*F).o
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/amp_$(*F).o
|
|
@ -67,7 +67,7 @@ OUTFILE = $(BIN_DIR)/Supermodel
|
||||||
CC = gcc
|
CC = gcc
|
||||||
LD = gcc
|
LD = gcc
|
||||||
COMPILER_FLAGS = `sdl-config --cflags` -ISrc/ -ISrc/OSD/SDL/ -ISrc/Pkgs/ -c -Wall -O3
|
COMPILER_FLAGS = `sdl-config --cflags` -ISrc/ -ISrc/OSD/SDL/ -ISrc/Pkgs/ -c -Wall -O3
|
||||||
CFLAGS = $(COMPILER_FLAGS) -std=c99
|
CFLAGS = $(COMPILER_FLAGS)
|
||||||
CPPFLAGS = $(COMPILER_FLAGS)
|
CPPFLAGS = $(COMPILER_FLAGS)
|
||||||
LFLAGS = -o $(OUTFILE) -L$(SDL_LIBPATH) -lGL -lGLU -lSDL -lz -lm -lstdc++
|
LFLAGS = -o $(OUTFILE) -L$(SDL_LIBPATH) -lGL -lGLU -lSDL -lz -lm -lstdc++
|
||||||
|
|
||||||
|
@ -215,7 +215,7 @@ $(OBJ_DIR)/%.o: Src/Pkgs/%.c
|
||||||
# To eliminate name conflicts, object files have the prefix "amp_" attached.
|
# To eliminate name conflicts, object files have the prefix "amp_" attached.
|
||||||
#
|
#
|
||||||
$(OBJ_DIR)/amp_%.o: Src/Sound/MPEG/%.cpp Src/Sound/MPEG/%.h
|
$(OBJ_DIR)/amp_%.o: Src/Sound/MPEG/%.cpp Src/Sound/MPEG/%.h
|
||||||
$(CC) $< $(CFLAGS) -o $(OBJ_DIR)/amp_$(*F).o
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/amp_$(*F).o
|
||||||
|
|
||||||
$(OBJ_DIR)/amp_%.o: Src/Sound/MPEG/%.cpp
|
$(OBJ_DIR)/amp_%.o: Src/Sound/MPEG/%.cpp
|
||||||
$(CC) $< $(CFLAGS) -o $(OBJ_DIR)/amp_$(*F).o
|
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/amp_$(*F).o
|
||||||
|
|
|
@ -71,6 +71,10 @@ endif
|
||||||
# Edit these paths as necessary.
|
# Edit these paths as necessary.
|
||||||
# The following environment variables are used:
|
# The following environment variables are used:
|
||||||
# DXSDK_DIR is Direct X installation directory.
|
# DXSDK_DIR is Direct X installation directory.
|
||||||
|
#
|
||||||
|
# SDL and zlib must have been built with the multi-threaded static run-time
|
||||||
|
# library (/MT option). By default, they usually come built with /MD. You must
|
||||||
|
# either compile them yourself or edit the compiler options below to use /MD.
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -677,9 +677,9 @@ static void UpdateCrosshairs(CInputs *Inputs, unsigned showCrosshairs)
|
||||||
|
|
||||||
// Draw visible crosshairs
|
// Draw visible crosshairs
|
||||||
glBegin(GL_TRIANGLES);
|
glBegin(GL_TRIANGLES);
|
||||||
if ((showCrosshairs & 2) && !Inputs->trigger[0]->offscreenValue) // Player 1
|
if ((showCrosshairs & 1) && !Inputs->trigger[0]->offscreenValue) // Player 1
|
||||||
DrawCrosshair(x[0], y[0], 1.0f, 0.0f, 0.0f);
|
DrawCrosshair(x[0], y[0], 1.0f, 0.0f, 0.0f);
|
||||||
if ((showCrosshairs & 1) && !Inputs->trigger[1]->offscreenValue) // Player 2
|
if ((showCrosshairs & 2) && !Inputs->trigger[1]->offscreenValue) // Player 2
|
||||||
DrawCrosshair(x[1], y[1], 0.0f, 1.0f, 0.0f);
|
DrawCrosshair(x[1], y[1], 0.0f, 1.0f, 0.0f);
|
||||||
glEnd();
|
glEnd();
|
||||||
}
|
}
|
||||||
|
@ -739,11 +739,8 @@ int Supermodel(const char *zipFile, CInputs *Inputs, CINIFile *CmdLine)
|
||||||
// Hide mouse if fullscreen, enable crosshairs for gun games
|
// Hide mouse if fullscreen, enable crosshairs for gun games
|
||||||
Inputs->GetInputSystem()->SetMouseVisibility(!g_Config.fullScreen);
|
Inputs->GetInputSystem()->SetMouseVisibility(!g_Config.fullScreen);
|
||||||
gameHasLightguns = !!(Model3->GetGameInfo()->inputFlags & (GAME_INPUT_GUN1|GAME_INPUT_GUN2));
|
gameHasLightguns = !!(Model3->GetGameInfo()->inputFlags & (GAME_INPUT_GUN1|GAME_INPUT_GUN2));
|
||||||
if (g_Config.fullScreen)
|
if (g_Config.fullScreen && gameHasLightguns)
|
||||||
{
|
showCrosshairs = 1; // show player 1 cursor only by default (TODO: add an IsMapped() member to CInput to allow testing for both lightguns)
|
||||||
if (gameHasLightguns)
|
|
||||||
showCrosshairs = 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Attach the inputs to the emulator
|
// Attach the inputs to the emulator
|
||||||
Model3->AttachInputs(Inputs);
|
Model3->AttachInputs(Inputs);
|
||||||
|
@ -980,14 +977,14 @@ int Supermodel(const char *zipFile, CInputs *Inputs, CINIFile *CmdLine)
|
||||||
}
|
}
|
||||||
else if (Inputs->uiSelectCrosshairs->Pressed() && gameHasLightguns)
|
else if (Inputs->uiSelectCrosshairs->Pressed() && gameHasLightguns)
|
||||||
{
|
{
|
||||||
// Count downwards to get this sequence: both, player 1, player 2, none
|
|
||||||
showCrosshairs--;
|
showCrosshairs++;
|
||||||
switch ((showCrosshairs&3))
|
switch ((showCrosshairs&3))
|
||||||
{
|
{
|
||||||
case 0: puts("Crosshairs disabled."); break;
|
case 0: puts("Crosshairs disabled."); break;
|
||||||
case 3: puts("Crosshairs enabled."); break;
|
case 3: puts("Crosshairs enabled."); break;
|
||||||
case 2: puts("Showing Player 1 crosshair only."); break;
|
case 1: puts("Showing Player 1 crosshair only."); break;
|
||||||
case 1: puts("Showing Player 2 crosshair only."); break;
|
case 2: puts("Showing Player 2 crosshair only."); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (Inputs->uiClearNVRAM->Pressed())
|
else if (Inputs->uiClearNVRAM->Pressed())
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
Program-Wide Definitions
|
Program-Wide Definitions
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
#define SUPERMODEL_VERSION "0.2a-RC3" // version string
|
#define SUPERMODEL_VERSION "0.2a" // version string
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
|
Loading…
Reference in a new issue