{"id":23146983,"url":"https://github.com/trzy/supermodel","last_synced_at":"2026-01-02T01:52:37.557Z","repository":{"id":37668486,"uuid":"505685652","full_name":"trzy/Supermodel","owner":"trzy","description":"Official repository of the Sega Model 3 arcade emulator.","archived":false,"fork":false,"pushed_at":"2025-04-17T22:45:10.000Z","size":81539,"stargazers_count":310,"open_issues_count":72,"forks_count":43,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-04-19T10:18:05.008Z","etag":null,"topics":["68k","arcade","arcade-games","arcade-machine","cplusplus","cpp","emulation","emulator","opengl","powerpc","sdl2","sega","z80"],"latest_commit_sha":null,"homepage":"https://supermodel3.com","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trzy.png","metadata":{"files":{"readme":"Docs/README.txt","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-06-21T04:12:50.000Z","updated_at":"2025-04-18T21:34:38.000Z","dependencies_parsed_at":"2023-09-27T21:24:32.414Z","dependency_job_id":"60b7d861-e11b-4b8b-9666-281f61b790b0","html_url":"https://github.com/trzy/Supermodel","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trzy%2FSupermodel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trzy%2FSupermodel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trzy%2FSupermodel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trzy%2FSupermodel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trzy","download_url":"https://codeload.github.com/trzy/Supermodel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254471061,"owners_count":22076585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["68k","arcade","arcade-games","arcade-machine","cplusplus","cpp","emulation","emulator","opengl","powerpc","sdl2","sega","z80"],"created_at":"2024-12-17T16:48:16.268Z","updated_at":"2026-01-02T01:52:37.530Z","avatar_url":"https://github.com/trzy.png","language":"C","readme":"\r\n\r\n  ####                                                      ###           ###\r\n ##  ##                                                      ##            ##\r\n ###     ##  ##  ## ###   ####   ## ###  ##  ##   ####       ##   ####     ##\r\n  ###    ##  ##   ##  ## ##  ##   ### ## ####### ##  ##   #####  ##  ##    ##\r\n    ###  ##  ##   ##  ## ######   ##  ## ####### ##  ##  ##  ##  ######    ##\r\n ##  ##  ##  ##   #####  ##       ##     ## # ## ##  ##  ##  ##  ##        ##\r\n  ####    ### ##  ##      ####   ####    ##   ##  ####    ### ##  ####    ####\r\n                 ####\r\n\r\n                       A Sega Model 3 Arcade Emulator.\r\n                   Copyright 2003-2024 The Supermodel Team\r\n\r\n\r\n                        USER MANUAL FOR SUPERMODEL\r\n\r\n\r\n================\r\n  Introduction\r\n================\r\n\r\nSupermodel emulates the Sega Model 3 arcade platform.  It uses OpenGL 2.1 and\r\nSDL, and can run on Windows, Linux, and Mac OS X.  Development began in January\r\nof 2011 and continues to focus on reverse engineering all aspects of the Model\r\n3 arcade platform.\r\n\r\nIn order to use Supermodel, you must legally possess ROM images of Model 3\r\ngames.  Learning to operate Supermodel will come with a steep learning curve for\r\nmost people.  Before seeking out help, please read this user manual carefully.\r\n\r\nSupermodel is distributed as free software under the terms of the GNU General\r\nPublic License, included in LICENSE.txt.  Additional copyright information for\r\nsoftware included within Supermodel is located at the bottom of this file.\r\n\r\nWindows 64-bit builds are updated automatically and are available for download\r\non the official Supermodel download page.  Linux and MacOS users currently have\r\nto compile/build their own executable from the GitHub source code repository.\r\n\r\nThe official Supermodel website:\r\n\r\n    http://www.Supermodel3.com\r\n\r\nSupermodel's GitHub source code repository:\r\n\r\n    https://github.com/trzy/Supermodel\r\n\r\n\r\n==============\r\n  Disclaimer\r\n==============\r\n\r\nSupermodel is a work-in-progress, open source emulator.  Emulation in Supermodel\r\nhas evolved to the point where most games run well, however there may be some\r\nminor visual issues.  Your experience may vary.\r\n\r\n\r\n=====================\r\n  Table of Contents\r\n=====================\r\n\r\n    --- Introduction\r\n    --- Disclaimer\r\n    --- Table of Contents\r\n     1. Installing Supermodel\r\n     2. Running Supermodel\r\n     3. Game Compatibility\r\n     4. Video Settings\r\n     5. Audio Settings\r\n     6. Controls\r\n     7. Force Feedback\r\n     8. Save States and NVRAM\r\n     9. Game-Specific Comments and Tips\r\n    10. The Configuration File\r\n    11. Index of Command Line Options\r\n    12. Index of Configuration File Settings\r\n    13. Compiling the Source Code\r\n    14. Contact Information\r\n    15. Acknowledgments\r\n\r\n\r\n============================\r\n  1. Installing Supermodel\r\n============================\r\n\r\nTo install Supermodel on Windows, extract the ZIP archive containing the\r\nSupermodel executable to a folder of your choice.  The following files and\r\ndirectories should be created:\r\n\r\n    Name                    Description\r\n    ----                    -----------\r\n    Supermodel.exe          Supermodel program.  Run this.\r\n    README.txt              This text file.\r\n    LICENSE.txt             Supermodel license and terms of use.\r\n    CHANGES.txt             Change log directly produces directly from the\r\n                            source code repository.\r\n    Assets/                 Directory containing multimedia assets required by\r\n                            Supermodel.\r\n    Assets/p1crosshair.bmp  Bitmap crosshair image for player 1, used when bit-\r\n                            mapped crosshairs are enabled\r\n                            ('--crosshair-style=bmp').\r\n    Assets/p2crosshair.bmp  Bitmap crosshair image for player 2.\r\n    Config/                 Directory where required configuration files are\r\n                            stored.\r\n    Config/Supermodel.ini   Configuration file containing default input\r\n                            settings.\r\n    Config/Games.xml        Game and ROM set definitions.\r\n    NVRAM/                  Directory where NVRAM contents will be saved.\r\n    ROMs/                   Directory conveniently included (but not required)\r\n                            for placing ROM sets.\r\n    Saves/                  Directory where save states will be saved.\r\n\r\nSupermodel requires OpenGL 2.1 and a substantial amount of both video and system\r\nmemory.  A modern 64-bit CPU and a mid range GPU are the minimum recommendations\r\nto achieve consistent frame rates of 60 FPS.\r\n\r\n\r\n=========================\r\n  2. Running Supermodel\r\n=========================\r\n\r\nFor now, Supermodel does not include a proper user interface.  It is operated\r\nentirely from the command line.  Run 'supermodel' without any command line\r\narguments for an explanation of supported options.\r\n\r\nSupermodel uses MAME-compatible ROM sets.  It loads from ZIP archives based on\r\nfile checksums and automatically detects games; therefore, file names are not\r\nimportant.  Only one ZIP file can be specified on the command line. For\r\nexample:\r\n\r\n    supermodel scud.zip -fullscreen\r\n\r\nThis will load 'scud.zip' (Scud Race) and run it in full screen mode.\r\n\r\nInitially, inputs are assigned according to the settings in 'Supermodel.ini',\r\nlocated in the 'Config' subdirectory.\r\n\r\nNote that there is no user interface and all messages are printed to the\r\ncommand prompt.  In full screen mode, they will not be visible.\r\n\r\n\r\n=========================\r\n  3. Game Compatibility\r\n=========================\r\n\r\nSupermodel recognizes all known Model 3 ROM sets. Below is a compatibility\r\nmatrix.  Other than minor graphical issues, if any, major issues are reported\r\nbelow:\r\n\r\n   ROM Set                    Title                           Comments\r\n+------------+-----------------------------------------+-----------------------+\r\n| bassdx     | Sega Bass Fishing (USA)                 |                       |\r\n|  getbassdx | Get Bass: Sega Bass Fishing (Deluxe)    |                       |\r\n|  getbassur | Get Bass: Sega Bass Fishing (Upright)   |                       |\r\n|  getbass   | Get Bass: Sega Bass Fishing             |                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| daytona2   | Daytona USA 2 Battle on the Edge        |                       |\r\n|  dayto2pe  | Daytona USA 2 Power Edition             |                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| dirtdvls   | Dirt Devils (Export, Revision A)        |                       |\r\n|  dirtdvlsu | Dirt Devils (USA, Revision A)           |                       |\r\n|  dirtdvlsj | Dirt Devils (Japan, Revision A)         |                       |\r\n|  dirtdvlsau| Dirt Devils (Australia, Revision A)     |                       |\r\n|  dirtdvlsg | Dirt Devils (Export, Ver. G?)           |                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| eca        | Emergency Call Ambulance (Export)       |                       |\r\n|  ecau      | Emergency Call Ambulance (USA)          |                       |\r\n|  ecaj      | Emergency Call Ambulance (Japan)        |                       |\r\n|  ecap      | Emergency Call Ambulance (US proto?)    |                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| fvipers2   | Fighting Vipers 2 (Japan, Revision A)   |                       |\r\n|  fvipers2o | Fighting Vipers 2 (Japan)               |                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| harley     | Harley Davidson \u0026 L.A. Riders (Rev. B)  |                       |\r\n|  harleya   | Harley Davidson \u0026 L.A. Riders (Rev. A)  |                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| lamachin   | L.A. Machineguns: Rage of the Machines  |                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| lemans24   | Le Mans 24 (Japan, Revision B)          |                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| lostwsga   | The Lost World Arcade (Japan, Rev A)    |                       |\r\n|  lostwsgp  | The Lost World Aracde (Location Test)   |                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| magtruck   | Magical Truck Adventure (Japan)         |                       |\r\n|  mgtrkbad  | Magical Truck Adventure (bit rot dump)  |                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| oceanhun   | The Ocean Hunter (Japan, Revision A)    |                       |\r\n|  oceanhuna | The Ocean Hunter (Japan)                |                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| scud       | Scud Race (Export, Twin/DX)             |                       |\r\n|  scudau    | Scud Race (Australia, Twin/DX)          |                       |\r\n|  scuddx    | Scud Race (Export, Deluxe, Revision A)  |                       |\r\n|  scudplus  | Scud Race (Export, Twin/DX, Revision A) |                       |\r\n|  scudplusa | Scud Race (Export, Twin/DX)             |                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| skichamp   | Ski Champ (Japan)                       |                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| spikeofe   | Spikeout Final Edition (Export)         |                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| spikeout   | Spikeout (Export, Revision C)           |                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| srally2    | Sega Rally 2 (Export)                   |                       |\r\n|  srally2p  | Sega Rally 2 (Prototype)                | proto is non working  |\r\n|  srally2pa | Sega Rally 2 (Prototype Version A)      | proto is non working  |\r\n|  srally2dx | Sega Rally 2 (Export, Deluxe)           |  DX set may run slow  |\r\n+------------+-----------------------------------------+-----------------------+\r\n| swtrilgy   | Star Wars Trilogy (Export, Revision A)  |   see note 1 below    |\r\n|  swtrilgya | Star Wars Trilogy (Export)              |   see note 1 below    |\r\n|  swtrilgyp | Star Wars Trilogy (Location Test)       |   see note 2 below    |\r\n+------------+-----------------------------------------+-----------------------+\r\n| vf3        | Virtua Fighter 3 (Japan, Revision D)    |                       |\r\n|  vf3c      | Virtua Fighter 3 (Japan, Revision C)    |                       |\r\n|  vf3a      | Virtua Fighter 3 (Japan, Revision A)    |                       |\r\n|  vf3tb     | Virtua Fighter 3 Team Battle (Japan)    |                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| von2       | Virtual On Oratorio Tangram (Revision B)|                       |\r\n|  von2a     | Virtual On Oratorio Tangram (Revision A)|                       |\r\n|  von2o     | Virtual On Oratorio Tangram             |                       |\r\n|  von254g   | Virtual On Oratorio Tangram (Ver. 5.4g) |                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| vs2        | Virtua Striker 2 (Step 2.0, Export, USA)|                       |\r\n|  vs215     | Virtua Striker 2 (Step 1.5, Export, USA)|                       |\r\n|  vs215o    | Virtua Striker 2 (Step 1.5, Japan test?)|                       |\r\n+------------+-----------------------------------------+-----------------------+\r\n| vs298      | Virtua Striker 2 '98 (Step 2.0, Japan)  |                       |\r\n|  vs29815   | Virtua Striker 2 '98 (Step 1.5, Japan)  |                       |\r\n+------------+-----------------------------------------+------------+----------+\r\n| vs2v991    | Virtua Striker 2 '99.1 (Step 2.1 Export, USA, Rev B) |          |\r\n|  vs299a    | Virtua Striker 2 '99   (Step 2.1 Export, USA, Rev A) |          |\r\n|  vs299     | Virtua Striker 2 '99   (Step 2.1 Export, USA)        |          |\r\n|  vs299j    | Virtua Striker 2 '99.1 (Step 2.1 Japan, Rev B)       |          |\r\n|  vs29915   | Virtua Striker 2 '99.1 (Step 1.5 Export, USA, Rev B) |          |\r\n|  vs29915a  | Virtua Striker 2 '99   (Step 1.5 Export, USA)        |          |\r\n|  vs29915j  | Virtua Striker 2 '99.1 (Step 1.5 Japan, Rev B)       |          |\r\n+------------+------------------------------------------------------+----------+\r\n\r\nNote 1: Set game to U/R in game assignment in the TEST MENU to bypass the\r\n        \"WAIT SETUP THE FEEDBACK STICK\" screen\r\nNote 2: Set game to SD in game assignment in the TEST MENU or wait a few seconds\r\n        for the game to continue past the \"WAIT SETUP THE FEEDBACK STICK\" screen\r\n\r\n\r\n=====================\r\n  4. Video Settings\r\n=====================\r\n\r\nSupermodel may be run in either windowed (default) or full screen mode.  By\r\ndefault, it automatically adjusts the display area to retain the aspect ratio of\r\nthe Model 3's native (and Supermodel's default) resolution, 496x384, introducing\r\nletterboxing (black borders) as needed.\r\n\r\nTo stretch the image to fill the display, use the '-stretch' option.\r\n\r\nWide aspect ratios that extend the field of view horizontally are supported by\r\nusing the '-wide-screen' option.  This works well for most common aspect ratio\r\nand additional geometry will be visible but at extremely wide aspect ratios,\r\nobjects will be culled by games, which are not aware of the extended field of\r\nview.  Tile-based 2D background layers will not be stretched and will be\r\nletterboxed.\r\n\r\nTo stretch the 2D background layers, use '-wide-bg'.  Many games use 2D back-\r\ngrounds instead of 3D skyboxes and when playing in wide screen mode, this option\r\noften enhances their appearance.\r\n\r\nBy default, Supermodel limits the frame rate to 60 frames per second.  This has\r\nno impact on performance except when the frame rate exceeds 60 FPS on fast\r\nsystems.  Frame rate limiting can be disabled with the '-no-throttle' option.\r\nSome video drivers may continue to lock to the refresh rate.\r\n\r\nThe actual Model 3 refresh rate is 57.524 Hz.  The '-true-hz' option will switch\r\nto this rate.\r\n\r\nTo change the resolution, use the '-res' command line option.  For full screen\r\nmode, use '-fullscreen'.  For example, to set a full screen 1920x1080 mode,\r\ntry:\r\n\r\n    supermodel game.zip -res=1920,1080 -fullscreen\r\n\r\nVideo settings may also be specified globally or on a per-game basis in the\r\nconfiguration file, described elsewhere in this manual.\r\n\r\nChanging video modes at run-time is not yet supported.\r\n\r\n\r\n=====================\r\n  5. Audio Settings\r\n=====================\r\n\r\nAll Model 3 games have a sound board that is used for sound effects and, in\r\nsome games, background music.  A few games use additional Digital Sound Boards\r\n(DSB) for MPEG music.  'Music' in Supermodel refers exclusively to MPEG music\r\nproduced by the DSB and 'sound' refers to both the sound effects and background\r\nmusic produced by the regular sound board.\r\n\r\nModel 3 sound and MPEG music are generated separately and then mixed by an\r\namplifier.  The relative signal levels are not known, so Supermodel simply\r\noutputs all audio at full volume.  This causes the MPEG music to be too quiet\r\nin some games ('Scud Race', 'Daytona USA 2') and too loud in others ('Star Wars\r\nTrilogy').  The '-sound-volume' and '-music-volume' options can be used to\r\nchange the volume.  As arguments, they take a volume level in percent ranging\r\nfrom 0 (muted) to 200% (maximum, doubled amplitude).  For example:\r\n\r\n    supermodel game.zip -sound-volume=50 -music-volume=170\r\n\r\nThis command line cuts the sound volume in half and increases the music volume\r\nby 70%.\r\n\r\nThe F9 and F10 keys can be used to adjust music volume during run-time, while\r\nF11 and F12 control sound volume.\r\n\r\nClipping and distortion will occur if the combined sound and music volume\r\nlevels become too high.\r\n\r\nTo disable sound and music board emulation altogether, use the '-no-sound' and\r\n'-no-dsb' options.  These will not merely mute the corresponding audio channels\r\nbut will prevent the audio co-processors from being emulated altogether and\r\nmay slightly improve performance, especially on single-core systems.  Save\r\nstates generated with these settings may not be able to properly restore audio\r\nwhen loaded after emulation is re-enabled.\r\n\r\nAudio settings may also be specified globally or on a per-game basis in the\r\nconfiguration file, described elsewhere in this document.\r\n\r\nPlease keep in mind that MPEG music emulation is preliminary and the decoder is\r\nbuggy.  Periodic squeaks and pops occur on many music tracks.  The Sega Custom\r\nSound Processor (SCSP) emulator, used for sound emulation, is also still quite\r\nbuggy.  Sound glitches are known to occur now and then, and many sounds and\r\ntunes do not sound quite correct yet.\r\n\r\n\r\n===============\r\n  6. Controls\r\n===============\r\n\r\nGame controls are fully configurable and can be mapped to keyboards, mice, and\r\ngame controllers.  Emulator functions, on the other hand, cannot be changed and\r\nare listed below.\r\n\r\n    Function                                Key Assignment\r\n    --------                                --------------\r\n    Exit                                    Escape\r\n    Pause                                   Alt-P\r\n    Reset                                   Alt-R\r\n    Clear NVRAM                             Alt-N\r\n    Crosshairs (for light gun games)        Alt-I\r\n    Toggle 60 Hz Frame Limiting             Alt-T\r\n    Save State                              F5\r\n    Load State                              F7\r\n    Change Save Slot                        F6\r\n    Decrease Music Volume                   F9\r\n    Increase Music Volume                   F10\r\n    Decrease Sound Volume                   F11\r\n    Increase Sound Volume                   F12\r\n\r\n\r\nLearning and Configuring Game Controls\r\n--------------------------------------\r\n\r\nSettings for game controls are stored in 'Supermodel.ini'.  To learn the\r\ncurrent configuration, use the '-print-inputs' command line option.\r\n\r\n    supermodel -print-inputs\r\n\r\nIf you delete 'Supermodel.ini', all inputs will become unmapped and will have\r\nto be reconfigured!\r\n\r\nTo reconfigure the inputs, use the '-config-inputs' option.  A blank window\r\nwill open up and instructions will be printed to the command prompt.  Read them\r\ncarefully!  Pressing the Escape key exits without saving changes.  Pressing 'q'\r\nwill save changes to 'Supermodel.ini'.  You can choose which input to configure\r\nusing the Up and Down arrow keys.  Clearing an input means it will be unusable.\r\n\r\nIf the configuration dialog is not responding to your key presses or mouse and\r\njoystick movements, make sure that the blank pop-up window rather than the\r\ncommand prompt is selected.  This may seem counter-intuitive but inputs are\r\ncaptured by the graphical window while messages are printed to the command\r\nprompt.\r\n\r\n\r\nCalibrating Controls\r\n--------------------\r\n\r\nSome controls, in particular the accelerator and brake pedals of steering\r\nwheels, may need calibrating before they will function properly with\r\nSupermodel.\r\n\r\nIn order to calibrate a control, press 'b' when configuring the inputs and\r\nfollow the on-screen instructions carefully.\r\n\r\nNOTE: After calibration, you must remap the control again or it will not\r\nfunction properly!\r\n\r\nSeveral input-related settings are stored in the configuration file.  Refer to\r\nthe section discussing the configuration file for more details.\r\n\r\n\r\nXBox 360 Controllers\r\n--------------------\r\n\r\nFor full XBox 360 controller support, the XInput system must be used on Windows\r\n('-input-system=xinput').  Otherwise, the left and right trigger buttons cannot\r\nbe mapped individually and force feedback will not work.  Please read the\r\nsection titled 'Input Systems', further below.\r\n\r\nMac OS X users can use Colin Munro's XBox 360 controller driver:\r\nhttp://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/OsxDriver\r\n\r\n\r\nAnalog Controls\r\n---------------\r\n\r\nAnalog controls, such as steering wheels, pedals, and the light gun axes, can\r\nbe mapped to analog controllers, such as joysticks, wheels, and mice, if\r\navailable.  Under digital control, the analog value will increment or decrement\r\nuntil it reaches its maximum/minimum values.  The rate of change can only be\r\nset manually in the configuration file.  These options are described elsewhere\r\nin this document.\r\n\r\nMost analog inputs, such as the steering wheel, require two settings to be\r\ncontrolled digitally.  For example, the steering wheel can be turned left and\r\nright by setting 'Steer Left' and 'Steer Right', or it can be mapped to a\r\nsingle analog control ('Full Steering').\r\n\r\n\r\nShifting Gears\r\n--------------\r\n\r\nRacing game gears can be mapped to individual buttons, including one for the\r\nneutral position, or can be shifted sequentially.  Games which only provide two\r\ngears name them 'Up' and 'Down'.  These should not be confused with 'Shift Up'\r\nand 'Shift Down', the sequential shift commands.\r\n\r\n\r\nVirtual On Twin Joysticks\r\n-------------------------\r\n\r\n'Virtual On Oratorio Tangram' features a twin joystick control scheme similar\r\nto a tracked vehicle (e.g. a tank).  Movement is accomplished by pushing both\r\njoysticks in the same direction.  Pushing and pulling in opposite directions\r\nwill turn the robot, while pulling the joysticks apart sideways or pushing them\r\ninwards are for jumping and falling back down to the ground, respectively.\r\n\r\nSupermodel supports mapping the individual joysticks but also provides 'macro'\r\ncontrols by default.  These allow all the necessary twin joystick commands to\r\nbe replicated with individual controls.  The mapping is below:\r\n\r\n    Macro Control       Twin Joystick Equivalent\r\n    -------------       ------------------------\r\n    Turn Left           Left joystick down, right joystick up.\r\n    Turn Right          Left joystick up, right joystick down.\r\n    Forward             Both joysticks up.\r\n    Reverse             Both joysticks down.\r\n    Strafe Left         Both joysticks left.\r\n    Strafe Right        Both joysticks right.\r\n    Jump                Left joystick left, right joystick right.\r\n    Crouch              Left joystick right, right joystick left.\r\n\r\n\r\nLight Guns\r\n----------\r\n\r\nLight gun axes can be mapped to mice, analog controls, or even digital buttons.\r\nTo simulate pointing off-screen (required in order to reload), a 'point off-\r\nscreen' input is provided which, for as long as it is pressed, will aim the gun\r\noff-screen.  To reload, hold down this button and then, while holding it, press\r\nthe trigger.  For easier reloading, the 'InputAutoTrigger' setting can be\r\nenabled in the configuration file (described elsewhere in this manual).\r\n\r\nCrosshairs will be visible in full screen mode and can also be enabled in\r\nwindowed modes.  Use Alt-I to cycle through different crosshair options (enable\r\nfor a single player, both, or none).\r\n\r\nFor multiple mouse support, allowing two mice or PC light guns to be mapped,\r\nRaw Input must be used.  This is supported only on Windows and is described\r\nbelow.\r\n\r\nFor specific information on using Sinden Light guns with Supermodel, refer to\r\nthe Sinden Light gun Wiki:\r\n\r\nhttps://www.sindenwiki.org/wiki/Supermodel_M3\r\n\r\n\r\nInput Systems\r\n-------------\r\n\r\nSupermodel supports multiple input APIs to provide the best possible\r\ncompatibility for different input devices and configuration schemes.  On\r\nWindows, the default is DirectInput.  On all other platforms, SDL is the only\r\noption available.\r\n\r\nWindows users can select between four different input systems:\r\n\r\n    - DirectInput.  Selected with '-input-system=dinput'.  This is the default.\r\n      It provides the best support for PC game controllers and, when emulating\r\n      force feedback, allows all effects (if the controller supports them).\r\n    - XInput.  Selected with '-input-system=xinput'.  This must be used with\r\n      XBox 360 controllers, otherwise some buttons will not function properly\r\n      and force feedback will not work.\r\n    - Raw Input.  Selected with '-input-system=rawinput'.  This is intended for\r\n      use with multiple mice and keyboards but is not recommended otherwise.\r\n    - SDL.  Selected with '-input-system=sdl'.  The standard, cross-platform\r\n      input system intended for non-Windows builds.  It is accessible on\r\n      Windows but does not provide full support for all devices.\r\n\r\nWhen switching input systems with '-input-system', you must also configure your\r\ninputs using the same option.  For example, when running Supermodel with XInput\r\n('supermodel game.zip -input-system=xinput'), you must also configure with\r\nXInput ('supermodel -config-inputs -input-system=xinput').  Many settings are\r\nnot compatible between input systems.\r\n\r\nA common mistake is to configure inputs using one system and then launch\r\nSupermodel with another.\r\n\r\n\r\nTroubleshooting\r\n---------------\r\n\r\nCommon input-related problems are discussed below.\r\n\r\n\r\n    Problem:\r\n        No response while configuring inputs.\r\n\r\n    Solution:\r\n        Make sure the main window is top window, especially with the SDL input\r\n        system.\r\n\r\n    ---------\r\n\r\n    Problem:\r\n        An attached controller is not recognized at all.\r\n\r\n    Solution:\r\n        - On the input configuration screen, press 'I' to see information about\r\n          the input system and check that the required controller is in the\r\n          list.\r\n        - If it is not in the list, check that it is plugged in and visible in\r\n          the operating system.  If a controller is plugged in while Supermodel\r\n          is running, Supermodel will need to be restarted in order for it to\r\n          recognize the new controller.\r\n        - On Windows, if after checking the above points the controller is\r\n          still not in the list, try running Supermodel with the SDL input\r\n          system by specifying '-input-system=sdl' on the command line.\r\n\r\n    ---------\r\n\r\n    Problem:\r\n        Unable to select a particular joystick axis when configuring a mapping.\r\n\r\n    Solution:\r\n        This may mean that the joystick axis needs calibrating.  This can be\r\n        done by pressing 'b' on the configuration screen and following the\r\n        instructions.\r\n\r\n    ---------\r\n\r\n    Problem:\r\n        Steering wheel pedals are not being recognized.\r\n\r\n    Solution:\r\n        For some steering wheels where the pedals have been configured in a\r\n        'split axis' mode (ie. not sharing a combined axis), the values that\r\n        the pedals send are inverted.  This means that without configuration,\r\n        Supermodel will be unable to recognize them.  To fix this, they should\r\n        be calibrated on the calibration screen in the same way as above.\r\n\r\n    ---------\r\n\r\n    Problem:\r\n        A control isn't working despite having been calibrated.\r\n\r\n    Solution:\r\n        After calibration, while still in the configuration dialog, you must\r\n        remap the control again for the new settings to take effect.\r\n\r\n    ---------\r\n\r\n    Problem:\r\n        XBox 360 controller trigger buttons cannot be triggered simultaneously\r\n        or no rumble effects.\r\n\r\n    Solution:\r\n        On Windows, make sure that you specify '-input-system=xinput'.\r\n\r\n\r\n=====================\r\n  7. Force Feedback\r\n=====================\r\n\r\nForce feedback is presently supported in 'Scud Race' (including 'Scud Race\r\nPlus'), 'Daytona USA 2' (both editions), and 'Sega Rally 2' on Windows only. To\r\nenable it, use the '-force-feedback' option.\r\n\r\nDrive board ROMs are required.  They first appear in the MAME 0.143u6 ROM\r\ncatalog and at the time of this writing, have not yet widely proliferated.\r\n\r\n    Game            Drive Board ROM File    Size        Checksum (CRC32)\r\n    ----            --------------------    ----        ----------------\r\n    Daytona USA 2   epr-20985.bin           64 KB       B139481D\r\n    Scud Race       epr-19338a.bin          64 KB       C9FAC464\r\n    Sega Rally 2    epr-20512.bin           64 KB       CF64350D\r\n\r\nThe sizes and checksums must match those listed above.  The file names may be\r\ndifferent but will almost certainly contain the same identifying numbers.\r\nEnsure that the appropriate drive board ROM files are present in the\r\ncorresponding games' ZIP archives, otherwise Supermodel will silently proceed\r\nwithout force feedback.\r\n\r\nForce feedback will only work with the DirectInput (the default on Windows) and\r\nXInput input systems.  XInput is intended only for XBox 360 controllers, which\r\ndo not support force feedback through DirectInput.\r\n\r\n\r\nTuning Force Feedback\r\n---------------------\r\n\r\nForce feedback can be enabled and tuned in the configuration file.  Setting\r\n'ForceFeedback' to 1 enables it:\r\n\r\n    ForceFeedback = 1\r\n\r\nThere are four DirectInput effects: constant force, self centering, friction,\r\nand vibration.  The strength of each can be tuned with the following settings:\r\n\r\n    DirectInputConstForceMax = 100\r\n    DirectInputSelfCenterMax = 100\r\n    DirectInputFrictionMax = 100\r\n    DirectInputVibrateMax = 100\r\n\r\nThey are given as percentages and represent the maximum strength for each\r\neffect.  A setting of 0 disables them entirely.  Values above 100% are\r\naccepted but may clip or distort the effect.  By default, they are set to 100%,\r\nas shown above.\r\n\r\nXInput devices only support vibration feedback via the left and right motors.\r\nBecause the characteristics of the motors are different, the effects will feel\r\nsomewhat asymmetric.  The constant force effect is simulated with vibrations.\r\nThe relevant settings are:\r\n\r\n    XInputConstForceThreshold = 30\r\n    XInputConstForceMax = 100\r\n    XInputVibrateMax = 100\r\n\r\nThe constant force threshold specifies how strong a constant force command must\r\nbe before it is sent to the controller as a vibration effect (whose strength is\r\ndetermined by XInputConstForceMax).  The default values are shown above and\r\nwill require calibration by the user on a game-by-game basis to achieve the\r\nbest feel.\r\n\r\n\r\n============================\r\n  8. Save States and NVRAM\r\n============================\r\n\r\nSave states are saved and restored by pressing F5 and F7, respectively.  Up to\r\n10 different save slots can be selected with F6.  All files are written to the\r\nSaves/ directory, which must exist beforehand.  If you extracted the Supermodel\r\nZIP file correctly, it will have been created automatically.\r\n\r\nIf a Model 3 co-processor (ie. sound board, DSB, drive board) is disabled when\r\na save state is taken, it will not resume normal operation when the state is\r\nloaded, even if Supermodel is running with the co-processor re-enabled.  The\r\ndrive board (and consequently, force feedback effects) is explicitly disabled\r\nfor the remainder of the session if a save state with an inactive drive board\r\nis loaded.  Audio co-processors are not, and therefore audio playback may\r\neventually resume after the audio boards have booted themselves up.\r\n\r\nNon-volatile memory (NVRAM) consists of battery-backed backup RAM and an EEPROM\r\nchip.  The former is used for high score data and statistics whereas the latter\r\nstores machine settings (often accessed using the Test buttons).  NVRAM is\r\nautomatically saved each time Supermodel exits and is loaded at start-up.  It\r\ncan be cleared by deleting the NVRAM files or pressing Alt-N.\r\n\r\n\r\n=======================================\r\n  9. Game-Specific Comments and Tips\r\n=======================================\r\n\r\nThis section contains additional game-specific setup information, workarounds\r\nfor emulation issues, and region codes for changing the region.\r\n\r\n\r\nCyber Troopers Virtual-On Oratorio Tangram\r\n------------------------------------------\r\n\r\nTo change the region, enter Test mode and press Start, Start, Service, Start,\r\nStart, Start, Service, Service, Test.\r\n\r\n\r\nDaytona USA 2 and Daytona USA 2 Power Edition\r\n---------------------------------------------\r\n\r\nBy default, the 'Power Edition' ROM set features remixed music lyrics by\r\nTakenobu Mitsuyoshi.  These can be changed back to the Dennis St. James version\r\nin the Test Menu, under 'Game Assignments'.\r\n\r\nThe region change menu can be accessed in two different ways:\r\n\r\n  1. Enter Test mode and push the Service and Test buttons simultaneously.\r\n  2. Enter Test mode. Then, hold Start and press VR4, VR4, VR2, VR3, VR1, VR3,\r\n     VR2.\r\n\r\n\r\nDirt Devils\r\n-----------\r\n\r\nTo access the region change menu, enter Test mode and press Start, Start,\r\nService, Start, Start, Start, Service, Test.\r\n\r\n\r\nEmergency Call Ambulance\r\n------------------------\r\n\r\nTo play as the paramedics pushing a stretcher, highlight 'Manual' at the\r\ntransmission select screen and then perform the following sequences of gear\r\nshifts: Shift Up, Shift Up, Shift Down, Shift Down, Shift Up.\r\n\r\nSupermodel presently only emulates a sequential shifter but cabinets with a 4-\r\nway H-type shifter exist and the shift sequence on this units is: 3, 3, 4, 4, 3\r\nor 1, 1, 2, 2, 1.\r\n\r\n\r\nFighting Vipers 2\r\n-----------------\r\n\r\nTo change the region, in the 'Game Assignments' screen in Test mode, set the\r\ncursor at the 'Country' line and press: Left, Left, Left, Right, Right, Left.\r\nThe country can then be changed using the Test switch.\r\n\r\n\r\nGet Bass and Sega Bass Fishing\r\n------------------------------\r\n\r\nTo change the region, enter Test mode and go to the second screen of the CRT\r\ntest ('C.R.T. Test 2/2'). Press the Service button four times and then exit the\r\nCRT test.  Next, enter 'Game Assignments', press Service three times, then press\r\nand hold Service and while holding, press Test.  The region select menu will\r\nappear.\r\n\r\n\r\nHarley-Davidson and L.A. Riders\r\n-------------------------------\r\n\r\nTo change the region, enter Test mode and in the 'Game Assignments' screen,\r\npress Shift Up, Shift Up, Shift Down, Shift Down, View, Music, View, Music.\r\n\r\n\r\nL.A. Machineguns\r\n----------------\r\n\r\nTo change the region, enter Test mode and press P1 Start, P1 Start, Service, P1\r\nStart, P1 Start, P1 Start, Service, Test.\r\n\r\n\r\nLe Mans 24\r\n----------\r\n\r\nTo change the region, enter Test mode and press Start, Start, Service, Service,\r\nStart, Test.\r\n\r\n\r\nMagical Truck Adventure\r\n-----------------------\r\n\r\nTo change the region, enter Test mode and press P1 Start, P1 Start, Service, P1\r\nStart, Service, Test.\r\n\r\n\r\nSega Rally 2\r\n------------\r\n\r\nAs with 'Star Wars Trilogy', you may experience problems if you attempt to\r\nstart a game before any 3D graphics are displayed (for example, during the Sega\r\nlogo).\r\n\r\nTo change the region, enter Test mode and perform the following series of short\r\n(press and release) and long (press and hold for 4-5 seconds) Service button\r\npresses: 4 short, 2 long, 2 short, 1 long.\r\n\r\n\r\nSki Champ\r\n---------\r\n\r\nTo change the region, enter Test mode and press Select 1, Select 3, Select 1,\r\nSelect 3, Service, Service.\r\n\r\n\r\nSpikeout\r\n--------\r\n\r\nTo change the region, enter Test mode, place the cursor on the 'Game\r\nAssignments' line and press Charge, Start, Jump, Start, Start, Start, Shift,\r\nStart, Start.  The region change menu will be revealed.\r\n\r\n\r\nSpikeout Final Edition\r\n----------------------\r\n\r\nTo change the region, enter Test mode, place the cursor on the\r\n'Game Assignments' line, and while holding the Service button press Jump, Start,\r\nJump, Start.  Then, release the Service button and press Shift, Start, Start,\r\nStart, Charge, Start, Start, Shift, Start, Test.  The region change menu will be\r\nrevealed.\r\n\r\n\r\nStar Wars Trilogy\r\n-----------------\r\n\r\nInserting coins and starting a game before any 3D graphics have been displayed\r\nin attract mode will result in a PowerPC crash before the stage loads.  This is\r\ncaused by an unknown emulation bug.  Simply wait until the Darth Vader sequence\r\nappears before attempting to start a game.\r\n\r\nIf 'Star Wars Trilogy' is booting directly into the stage select screen, it is\r\nprobably because you exited Supermodel with credits still in the machine.  Clear\r\nthe NVRAM (Alt-N) and reset the game (Alt-R).\r\n\r\nTo change the region, enter Test mode and perform the following series of short\r\n(press and release) and long (press and hold for 4-5 seconds) Service button\r\npresses: 3 short, 2 long, 2 short, 1 long.\r\n\r\n\r\nThe Lost World\r\n--------------\r\n\r\nTo reload, the light gun must be pointed off-screen by pressing (and holding)\r\nthe 'off-screen' button and, simultaneously, pressing the trigger to shoot.\r\nThis behavior can be changed with the 'InputAutoTrigger' setting in the\r\nconfiguration file.\r\n\r\nTo change the region, enter Test mode and press P1 Start, P1 Start, Service, P1\r\nStart, Service, Test.\r\n\r\n\r\nThe Ocean Hunter\r\n----------------\r\n\r\nTo change the region, enter Test mode and in 'Game Assignments', press P1 Start,\r\nP2 Start, P1 Start, P2 Start, P1 Start, P2 Start, P2 Start.\r\n\r\n\r\nVirtua Striker 2 '98\r\n--------------------\r\n\r\nTo change the region, enter Test mode and in 'Game Assignments', perform the\r\nfollowing series of short (press and release) and long (press and hold for 4-5\r\nseconds) Service button presses: 1 long, 3 short, 1 long.\r\n\r\n\r\n==============================\r\n  10. The Configuration File\r\n==============================\r\n\r\nSupermodel reads configuration settings from 'Supermodel.ini' located in the\r\n'Config' subdirectory.  If Supermodel was installed properly, a default file\r\nshould have been created.  When starting up, Supermodel parses settings in the\r\nfollowing order:\r\n\r\n    1. Global settings are read from 'Supermodel.ini'.  These include input\r\n       mappings and apply to all games.\r\n    2. If the ROM set was loaded correctly, game-specific settings are read\r\n       from 'Supermodel.ini', overriding settings from step 1.\r\n    3. Command line options are applied, overriding settings from the previous\r\n       steps.\r\n\r\nIn other words, command line options have the highest precedence, followed by\r\ngame-specific settings, and lastly, global settings.\r\n\r\nAn index of all allowed settings is provided further below in this document.\r\n\r\nNOTE: Type carefully!  Supermodel will not report syntax errors nor detect\r\ntypos.  Carefully read the discussion of the file syntax below.  To verify that\r\nyour intended settings are taking effect, check the 'error.log' file that is\r\nproduced by Supermodel during each run.\r\n\r\n\r\nFile Structure and Syntax\r\n-------------------------\r\n\r\nThe configuration file is a list of settings grouped by sections.  All setting\r\nnames and their arguments are case sensitive.  They take the form:\r\n\r\n    Name = Argument\r\n\r\nOnly one setting per line is allowed.  Only two types of arguments are allowed:\r\nintegers and strings.  The choice of which to use is determined by the setting.\r\nIntegers can be negative.  Strings can contain any characters and are enclosed\r\nby double quotes.  Examples:\r\n\r\n    IntegerSetting1 = 0\r\n    IntegerSetting2 = 65536\r\n    IntegerSetting3 = -32768\r\n    StringSetting1 = \"This is a string.\"\r\n    StringSetting2 = \"123\"\r\n    StringSetting3 = \"1+1, abc, these are all valid characters!\"\r\n\r\nMany settings are simply boolean variables expecting an integer value of either\r\n0 (disabled) or 1 (enabled).  Some settings require values and others take\r\nstrings for file names or input mappings.\r\n\r\nSection names appear in between square brackets on their own lines.\r\n\r\n    [ SectionName ]\r\n\r\nSettings that appear at the beginning of the file without a preceding section\r\nare automatically assigned to 'Global'.\r\n\r\nComments begin with a semicolon and extend until the end of the line.\r\n\r\n    ; This is a comment.\r\n\r\n\r\nGlobal and Game-Specific Sections\r\n---------------------------------\r\n\r\nSections determine whether settings are applied globally, to all games, or to\r\nspecific games.  Game-specific settings will override global settings and can\r\nbe used to tune Supermodel on a game-by-game basis.  Global settings must be\r\nplaced in the 'Global' section and game-specific settings in sections named\r\nafter the ROM sets.  ROM sets must be typed in lower case and use the MAME\r\n(http://www.mamedev.org) naming convention.  They can be obtained by running\r\n'supermodel -print-games'.\r\n\r\nInput mappings are special.  They are only read from the 'Global' section!\r\n\r\nIn the example below, custom configurations are created for 'Scud Race' and\r\n'The Lost World'.  All other games will use the global settings.\r\n\r\n    [ Global ]\r\n\r\n    ; Run full screen at 1024x768\r\n    XResolution = 1024\r\n    YResolution = 768\r\n    FullScreen = 1\r\n\r\n    ; Scud Race\r\n    [ scud ]\r\n\r\n    ; Run at 1080p\r\n    XResolution = 1920\r\n    YResolution = 1080\r\n\r\n    ; Music is too quiet by default\r\n    SoundVolume = 50\r\n    MusicVolume = 200\r\n\r\n    ; The Lost World\r\n    [ lostwsga ]\r\n\r\n    PowerPCFrequency = 25   ; run PowerPC at 25 MHz\r\n\r\nIn this example, only 'Scud Race' will run at 1920x1080.  All other games will\r\nuse 1024x768.  'Scud Race' will also have altered volume settings.  'The Lost\r\nWorld' will be run with a lower PowerPC frequency but all other games will use\r\nthe default.\r\n\r\n\r\nInput Mappings\r\n--------------\r\n\r\nInput mappings are specified with strings that have their own internal syntax.\r\nThey may only be specified in the 'Global' section and are ignored elsewhere.\r\n\r\nA mapping may be specified in one of the following three ways:\r\n\r\n    KEY_XXX     For a key XXX on a keyboard (eg. KEY_A, KEY_SPACE, KEY_ALT).\r\n\r\n    MOUSE_XXX   For a mouse axis (X or Y), wheel, or button (1-5) (eg.\r\n                MOUSE_XAXIS, MOUSE_WHEEL_UP, MOUSE_BUTTON3).\r\n\r\n    JOY1_XXX    For a joystick axis (X, Y, Z, RX, RY, RZ), POV controller\r\n    JOY2_XXX    (1-4), or button (1-12) (e.g. JOY1_XAXIS, JOY3_POV2_UP,\r\n    ...         JOY2_BUTTON4).\r\n\r\nJoysticks, including game pads and steering wheels, are numbered from 1 on up.\r\nTheir ordering is system dependent and if controllers are swapped between\r\ninvocations of Supermodel, then the ordering may change.  If the number is\r\nomitted then the mapping applies to all joysticks, eg. JOY_BUTTON1 means button\r\n1 on any attached joystick.\r\n\r\nIn addition to the above, when using the Raw Input system on Windows (command\r\nline option '-input-system=rawinput') it is possible to refer to a particular\r\nmouse or keyboard by including its number in the mapping, eg. KEY2_A or\r\nMOUSE3_XAXIS.  This allows the independent mapping of dual mice or dual light\r\nguns (which present themselves as mice to Supermodel) for 'The Lost World'.\r\n\r\nMappings may be combined with a plus '+' or a comma ',' and negated with an\r\nexclamation mark '!'.  The plus signifies that both mappings must be active to\r\ntrigger the input and the comma means that just one needs to be active.  The\r\nexclamation mark means that a mapping must not be active.\r\n\r\nOf the above the comma is the most useful.  It allows the mapping of several\r\ndifferent control methods to a single input.  For example, both a keyboard and\r\na joystick could be mapped to the same input.  When combining mappings in this\r\nway, the ordering is important as mappings earlier in the list will take\r\nprecedence over later ones (see example 3 below).\r\n\r\nWhen an axis is mapped to a digital input, its direction must be qualified with\r\na _POS or _NEG after the axis name.  For example, JOY1_XAXIS_NEG indicates that\r\njoystick 1 must be pushed left (negative direction) in order to activate the\r\ninput.  Additionally, the following shortcuts are provided for some common\r\njoystick axis directions:\r\n\r\n    JOY1_LEFT  is the same as JOY1_XAXIS_NEG\r\n    JOY1_RIGHT is the same as JOY1_XAXIS_POS\r\n    JOY1_UP    is the same as JOY1_YAXIS_NEG\r\n    JOY1_DOWN  is the same as JOY1_YAXIS_POS\r\n\r\nAnother axis manipulator is _INV.  This inverts an axis when it is mapped to an\r\nanalog input.  JOY1_YAXIS_INV could be used for example to invert the y-axis\r\nof joystick 1 in Star Wars Trilogy so that it acts like a plane's yoke.\r\n\r\nExamples:\r\n\r\n    1. InputLeft = \"KEY_LEFT,JOY1_LEFT\"\r\n\r\n        Digital input InputLeft will be triggered whenever the left arrow key\r\n        is pressed or joystick 1 is pushed left.\r\n\r\n    2. InputStart1 = \"KEY_ALT+KEY_S\"\r\n\r\n        Both Alt and S must be pressed at the same time in order to trigger the\r\n        digital input InputStart1 (player 1 Start button).\r\n\r\n    3. InputSteering = \"JOY1_XAXIS,MOUSE_XAXIS\"\r\n\r\n        Analog steering can be controlled with either the joystick or by moving\r\n        the mouse.  Due to the ordering used, the joystick will take preference\r\n        and so the mouse can only control the steering when the joystick is\r\n        released.\r\n\r\nThe complete list of input mappings can be found in the settings index below or\r\nby generating a configuration file using '-config-inputs'.\r\n\r\n\r\nController Settings\r\n-------------------\r\n\r\nSeveral settings are available to fine tune the way Supermodel handles\r\ncontrollers.\r\n\r\n\r\nKeyboard Settings:\r\n\r\nThe rate at which analog controls' values increase or decrease when controlled\r\nby a key can be set with the InputyKeySensitivity option.  It takes a value in\r\nthe range 1-100, with 100 being the most sensitive (fastest response) and 1\r\nbeing the least sensitive (slowest response).  The default value is 25.\r\n\r\nThe speed with which analog controls return to their rest or 'off' values after\r\na key has been released is configured with InputKeyDecaySpeed.  This takes a\r\nvalue in the range 1-200 and is expressed as a percentage of the attack speed.\r\nThe default setting is 50, which means that analog controls take twice as long\r\nto return to their off values as they do to reach their maximum and minimum\r\nvalues.\r\n\r\n\r\nMouse Settings:\r\n\r\nFor a mouse it is possible to specify a rectangular area in the center of\r\nSupermodel's display within which the mouse is considered to be inactive.  The\r\nwidth and height of this zone is set with the options 'InputMouseXDeadZone' and\r\n'InputMouseYDeadZone'.  They are expressed as a percentage 0-99 of the width\r\nand height of the display.  The default value is 0 which disables this option.\r\n\r\n\r\nJoystick Options:\r\n\r\nEach joystick axis has a set of parameters that can be configured and these are\r\ngiven below.  The joystick number and axis name (X, Y, Z, RX, RY, or RZ) must\r\nbe substituted in for '**' like so: InputJoy1XDeadZone.  If the joystick number\r\nis omitted, then the option becomes the default for all joysticks, eg.\r\nInputJoyYSaturation.\r\n\r\nInputJoy**Deadzone: The dead zone of a joystick axis is the size of the zone\r\naround its central or 'off' position within which the axis is considered to be\r\ninactive.  It is important to specify this since joysticks rarely return to\r\ntheir perfect center when released.  The dead zone is expressed as a percentage\r\n0-99 of the total range of the axis and the default value is 2%.\r\n\r\nInputJoy**Saturation: The saturation of a joystick axis is the point at which\r\nthe axis is considered to be at its most extreme position.  It can be thought\r\nof as a measure of the sensitivity of the axis.  Like the dead zone, it is\r\nexpressed as a percentage of the axis range but its value may be larger than\r\n100, up to a maximum of 200.  A value of 50 means that the joystick only needs\r\nto be moved halfway in order for Supermodel to see it as fully extended.\r\nConversely a value of 200 means that when the joystick is at its extreme\r\nposition Supermodel will see it as only halfway.  The default sensitivity is\r\n100%, which corresponds to a 1-to-1 mapping.  For playing driving games with a\r\ngame pad, it is sometimes a good idea to use a value larger than 100% so that\r\nthe steering feels less sensitive on a thumbstick.\r\n\r\nInputJoy**MinVal, InputJoy**OffVal, InputJoy**MaxVal: Normally a joystick axis\r\nwill send values to Supermodel that fall within the range -32768 to +32767,\r\nwith 0 representing the central or 'off' position.  However, in some cases an\r\naxis may behave differently.  This has been observed with certain steering\r\nwheels that have their pedals configured in a 'split axis' mode.  The pedals\r\ninvert their range so that they send -32768 when released and +32767 when fully\r\ndepressed.  In order for Supermodel to be able to handle such cases the\r\nminimum, off, and maximum values of the axis can be specified with these three\r\noptions.  The default values are MinVal -32768, OffVal 0, and MaxVal 32767 but\r\nwith the pedal example just given, they would need to be set to MinVal 32767,\r\nOffVal 32767, and MaxVal -32768.\r\n\r\nIn most cases it will be unnecessary to alter the DeadZone, MinVal, OffVal, and\r\nMaxVal options by hand as calibrating a joystick axis from within the input\r\nconfiguration screens of Supermodel will set them automatically.  Only the\r\nsensitivity option is not configured in this way.\r\n\r\n\r\nAdditional Options:\r\n\r\nInputAutoTrigger, InputAutoTrigger2: When playing light gun games such as 'The\r\nLost World', the gun must be pointed off-screen and then fired in order to\r\nreload.  With a mouse and the default mappings, this requires clicking both the\r\nright and left mouse buttons.  In order to be able to reload the gun with just\r\na single click of the right mouse button, enable these options for players 1\r\nand 2 by setting them to 1.  By default they are disabled (value 0).\r\n\r\nEnabling these options is also recommended when playing with PC light guns as\r\nthese often map the action \"point off screen and press trigger\" to a single\r\nright mouse button click.  Supermodel has been tested successfully with\r\nUltiMarc's AimTrak light-guns.  In order to use dual PC light-guns for two\r\nplayer games, the Raw Input system must be selected with the command line\r\noption '-input-system=rawinput' and the input mappings configured for each gun.\r\n\r\n\r\n=====================================\r\n  11. Index of Command Line Options\r\n=====================================\r\n\r\nAll valid command line settings are listed here, ordered by category.  Defaults\r\nare given under the assumption that they have not been changed in the\r\nconfiguration file.\r\n\r\nSquare brackets ('[' and ']') indicate optional parameters.  Angled brackets\r\n('\u003c' and '\u003e') indicate mandatory parameters.  Do not type the brackets.  No\r\nspaces may appear inside of an option.  For example, 'supermodel game.zip\r\n-ppc-frequency=25' is correct but 'supermodel game.zip -ppc-frequency = 25' is\r\nnot.  All options are case sensitive.\r\n\r\n\r\n    Option:         -?\r\n                    -h\r\n\r\n    Description:    Prints a message with an overview of the command line\r\n                    options and how to run Supermodel.\r\n\r\n    ----------------\r\n\r\n    Option:         -print-games\r\n\r\n    Description:    Lists all supported ROM sets.  Not all supported ROM sets\r\n                    are playable yet.\r\n\r\n    ----------------\r\n\r\n    Option:         -no-threads\r\n\r\n    Description:    Disables multi-threading.  When enabled (the default), the\r\n                    PowerPC, graphics rendering, and user interface are run in\r\n                    one thread, sound emulation in a second thread, and the\r\n                    drive board in a third.  It is enabled by default.  On\r\n                    single-core systems, multi-threading adds overhead and\r\n                    slows Supermodel down but can make audio sound a bit\r\n                    smoother.\r\n\r\n    ----------------\r\n\r\n    Option:         -ppc-frequency=\u003cf\u003e\r\n\r\n    Description:    Sets the PowerPC frequency in MHz.  The default is 50.\r\n                    Higher frequencies will allow games to do more processing\r\n                    per frame, making them run faster in 'virtual' time, but\r\n                    may slow down Supermodel on weaker computers.  Supermodel's\r\n                    performance can frequently be improved by lowering the\r\n                    PowerPC frequency (25 MHz works in many games).  In some\r\n                    games, this will cause timing problems and jerky\r\n                    performance.  The optimum frequency will vary from game to\r\n                    game and system to system.  Valid values for \u003cf\u003e are 1 to\r\n                    1000.\r\n\r\n    ----------------\r\n\r\n    Option:         -fullscreen\r\n\r\n    Description:    Runs in full screen mode.  The default is to run in a\r\n                    window.\r\n\r\n    ----------------\r\n\r\n    Option:         -no-throttle\r\n\r\n    Description:    Disables 60 FPS throttling.  The Model 3 runs at a 60 Hz\r\n                    refresh rate, which Supermodel enforces if this option is\r\n                    omitted.  Unthrottled operation may not work on some\r\n                    systems because graphics drivers may lock the refresh rate\r\n                    on their own.\r\n\r\n    ----------------\r\n\r\n    Option:         -print-gl-info\r\n\r\n    Description:    Prints OpenGL driver information and quits.\r\n\r\n    ----------------\r\n\r\n    Option:         -res=\u003cx\u003e,\u003cy\u003e\r\n\r\n    Description:    Resolution of the display in pixels, with \u003cx\u003e being width\r\n                    and \u003cy\u003e being height.  The default is 496x384, the Model\r\n                    3's native resolution.\r\n\r\n    ----------------\r\n\r\n    Option:         -crtcolors=\u003cmode\u003e\r\n\r\n    Description:    Emulates other regional TV standards of the time.\r\n                    These came with the caveat that displaying video content on\r\n                    other regions TVs would/should have needed color corrections\r\n                    (which was usually not done for video games, only broadcasting, etc).\r\n                    Nowadays the world has settled on the same standards, and we\r\n                    can transform from the old ones to the (for now) common sRGB.\r\n\r\n                    This means one can choose between 6 different mappings now:\r\n                    0=none (default)\r\n                    1=ARI/D93 (recommended for all JP developed games, most likely true for all Model 3 games)\r\n                    2=PVM_20M2U/D93\r\n                    3=BT601_525/D93\r\n                    4=BT601_525/D65 (recommended for all US developed games)\r\n                    5=BT601_625/D65 (recommended for all EUR/AUS developed games)\r\n\r\n    ----------------\r\n\r\n    Option:         -upscalemode=\u003cmode\u003e\r\n\r\n    Description:    Selects the filter for upscaling the 2D layers when\r\n                    using a higher output resolution.\r\n\r\n                    This means one can choose between 4 different filters now:\r\n                    0=none (sharp pixels)\r\n                    1=biquintic (a bit smoother)\r\n                    2=bilinear (smooth, but lowest quality, default)\r\n                    3=bicubic (smoothest)\r\n\r\n    ----------------\r\n\r\n    Option:         -show-fps\r\n\r\n    Description:    Shows the frame rate in the window title bar.\r\n\r\n    ----------------\r\n\r\n    Option:         -frag-shader=\u003cfile\u003e\r\n                    -vert-shader=\u003cfile\u003e\r\n\r\n    Description:    Allows external fragment and vertex shaders to be used for\r\n                    3D rendering.  \u003cfile\u003e is the file path.  Files should be\r\n                    ASCII text files containing GLSL source code.  The file\r\n                    extension is not important.  By default, Supermodel's\r\n                    internal shader programs are used.  These options are\r\n                    intended for future extensibility and for use by\r\n                    developers.\r\n\r\n    ----------------\r\n\r\n    Option:         -flip-stereo\r\n\r\n    Description:    Swaps the left and right audio channels.\r\n\r\n    ----------------\r\n\r\n    Option:         -no-dsb\r\n\r\n    Description:    Disables Digital Sound Board (MPEG music) emulation.  See\r\n                    the section on audio settings for more information.\r\n\r\n    ----------------\r\n\r\n    Option:         -no-sound\r\n\r\n    Description:    Disables sound board (sound effects) emulation.  See the\r\n                    section on audio settings for more information.\r\n\r\n    ----------------\r\n\r\n    Option:         -music-volume=\u003cv\u003e\r\n                    -sound-volume=\u003cv\u003e\r\n\r\n    Description:    Specifies the volume of MPEG music produced by the Digital\r\n                    Sound Board and the audio produced by the sound board in\r\n                    percent.  The default is 100, which is full volume, and the\r\n                    valid range of \u003cv\u003e is 0 (muted) to 200.  See the section on\r\n                    audio settings for more information.\r\n\r\n    ----------------\r\n\r\n    Option:         -config-inputs\r\n\r\n    Description:    Launches the interactive input configuration utility in the\r\n                    command prompt window.  Allows controls to be remapped.\r\n                    See the section on controls for more information.\r\n\r\n    ----------------\r\n\r\n    Option:         -force-feedback\r\n\r\n    Description:    Enables force feedback.  Force feedback is only supported\r\n                    in a few games (see the section on force feedback for more\r\n                    details).  Available only on Windows.\r\n\r\n    ----------------\r\n\r\n    Option:         -input-system=\u003cs\u003e\r\n\r\n    Description:    Sets the input system.  This is only available on Windows,\r\n                    where the default is 'dinput' (DirectInput).  SDL is used\r\n                    for all other platforms.  Valid choices for \u003cs\u003e are:\r\n\r\n                        dinput      DirectInput.\r\n                        xinput      XInput\r\n                        rawinput    Raw Input.\r\n                        sdl         SDL.\r\n\r\n                    See the section on input systems for more details.\r\n\r\n    ----------------\r\n\r\n    Option:         -print-inputs\r\n\r\n    Description:    Prints the current input configuration.\r\n\r\n\r\n============================================\r\n  12. Index of Configuration File Settings\r\n============================================\r\n\r\nAll valid configuration file settings are listed here, ordered by category.\r\nPlease read the section describing the configuration file for more information.\r\n\r\nAll settings are case sensitive.\r\n\r\n\r\n    Name:           MultiThreaded\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    If set to 1, enables multi-threading; if set to 0, runs all\r\n                    emulation in a single thread.  Read the description of the\r\n                    '-no-threads' command line option for more information.\r\n\r\n    ----------------\r\n\r\n    Name:           PowerPCFrequency\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    The PowerPC frequency in MHz.  The default is 50.\r\n                    Equivalent to the '-ppc-frequency' command line option.\r\n\r\n    ----------------\r\n\r\n    Name:           FullScreen\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    If set to 1, runs in full screen mode; if set to 0, runs in\r\n                    a window.  Disabled by default.  Equivalent to the\r\n                    '-fullscreen' command line option.\r\n\r\n    ----------------\r\n\r\n    Name:           ShowFrameRate\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    Shows the frame rate in the window title bar when set to 1.\r\n                    If set to 0, the frame rate is not computed.  Disabled by\r\n                    default.  Equivalent to the '-show-fps' command line\r\n                    option.\r\n\r\n    ----------------\r\n\r\n    Name:           Throttle\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    Controls 60 FPS throttling.  It is enabled by setting to 1\r\n                    and disabled by setting to 0.  For more information, read\r\n                    the description of the '-no-throttle' command line option.\r\n\r\n    ----------------\r\n\r\n    Name:           XResolution\r\n                    YResolution\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    Resolution of the display in pixels.  The default is\r\n                    496x384, the Model 3's native resolution.  Equivalent to\r\n                    the '-res' command line option.\r\n\r\n    ----------------\r\n\r\n    Name:           FragmentShader\r\n                    VertexShader\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Path to the external fragment or vertex shader file to use\r\n                    for 3D  rendering.  By default, these are not set and the\r\n                    internal default shaders are used.  These are equivalent to\r\n                    the '-frag-shader' and '-vert-shader' command line options.\r\n\r\n    ----------------\r\n\r\n    Name:           EmulateDSB\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    Emulates the Digital Sound Board if set to 1, disables it\r\n                    if set to 0.  See the section on audio settings for more\r\n                    information.  A setting of 0 is equivalent to the\r\n                    '-no-dsb' command line option.\r\n\r\n    ----------------\r\n\r\n    Name:           EmulateSound\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    Emulates the sound board and its two Sega Custom Sound\r\n                    Processors if set to 1, disables it if set to 0.  See the\r\n                    section on audio settings for more information.  A setting\r\n                    of 0 is equivalent to the '-no-sound' command line option.\r\n\r\n    ----------------\r\n\r\n    Name:           FlipStereo\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    Swaps the left and right stereo channels if set to 1.  If\r\n                    set to 0, outputs the channels normally.  Disabled by\r\n                    default.  A setting of 1 is equivalent to using the\r\n                    '-flip-stereo' command line option.\r\n\r\n    ----------------\r\n\r\n    Name:           MusicVolume\r\n                    SoundVolume\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    Specifies the volume of MPEG music produced by the Digital\r\n                    Sound Board and the audio produced by the sound board in\r\n                    percent.  The default is 100, which is full volume, and the\r\n                    valid range is 0 (muted) to 200%.  See the section on audio\r\n                    settings for more information.  The equivalent command line\r\n                    options are '-music-volume' and '-sound-volume'.\r\n\r\n    ----------------\r\n\r\n    Name:           ForceFeedback\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    If set to 1, enables force feedback emulation; if set to 0,\r\n                    disables it (the default behavior).  Equivalent to the\r\n                    '-force-feedback' command line option.  Available only on\r\n                    Windows.\r\n\r\n    ----------------\r\n\r\n    Name:           DirectInputConstForceMax\r\n                    DirectInputFrictionMax\r\n                    DirectInputSelfCenterMax\r\n                    DirectInputVibrateMax\r\n\r\n    Argument:       Integer value.\r\n\r\n    Description:    Sets strength of the four DirectInput force feedback\r\n                    effects in percent.  Default is 100, indicating full\r\n                    strength.  Values exceeding 100% will distort the effects.\r\n                    Available only on Windows.\r\n\r\n    ----------------\r\n\r\n    Name:           XInputConstForceMax\r\n                    XInputVibrateMax\r\n\r\n    Argument:       Integer value.\r\n\r\n    Description:    Sets strength of XInput force feedback effects in percent.\r\n                    Default is 100, indicating full strength.  Values exceeding\r\n                    100% will distort the effects.  The constant force effect\r\n                    is simulated using vibration.  Available only on Windows.\r\n\r\n    ----------------\r\n\r\n    Name:           XInputConstForceThreshold\r\n\r\n    Argument:       Integer value.\r\n\r\n    Description:    Minimum strength above which a Model 3 constant force\r\n                    command will be simulated on an XInput device.\r\n                    XInputConstForceMax determines the vibration strength for\r\n                    this effect.  The default value is 30.  Available only on\r\n                    Windows.\r\n\r\n    ----------------\r\n\r\n    Names:          InputStart1\r\n                    InputStart2\r\n                    InputCoin1\r\n                    InputCoin2\r\n                    InputServiceA\r\n                    InputServiceB\r\n                    InputTestA\r\n                    InputTestB\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for common inputs: player 1 and 2 Start buttons,\r\n                    both coin slots, and both Service and Test buttons.  Can\r\n                    only be set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Names:          InputJoyDown\r\n                    InputJoyDown2\r\n                    InputJoyLeft\r\n                    InputJoyLeft2\r\n                    InputJoyRight\r\n                    InputJoyRight2\r\n                    InputJoyUp\r\n                    InputJoyUp2\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for 4-way digital joysticks (players 1 and 2).\r\n                    These controls appear in 'Virtua Fighter 3', 'Fighting\r\n                    Vipers 2', 'Spikeout', etc.  Can only be set in the\r\n                    'Global' section.\r\n\r\n    ----------------\r\n\r\n    Names:          InputEscape\r\n                    InputEscape2\r\n                    InputGuard\r\n                    InputGuard2\r\n                    InputKick\r\n                    InputKick2\r\n                    InputPunch\r\n                    InputPunch2\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for fighting game buttons (players 1 and 2).  Can\r\n                    only be set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Names:          InputBeat\r\n                    InputCharge\r\n                    InputJump\r\n                    InputShift\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for 'Spikeout' and 'Spikeout Final Edition'\r\n                    buttons.  Can only be set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputLongPass\r\n                    InputLongPass2\r\n                    InputShortPass\r\n                    InputShortPass2\r\n                    InputShoot\r\n                    InputShoot2\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for the 'Virtua Striker 2' series of games\r\n                    (players 1 and 2).  Can only be set in the 'Global'\r\n                    section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputSteering\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mapping for the analog steering wheel axis, used in all\r\n                    driving games.  Can only be set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputSteeringLeft\r\n                    InputSteeringRight\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for digital control of the steering wheel,\r\n                    intended for users who do not have an analog controller.\r\n                    Can only be set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputBrake\r\n                    InputAccelerator\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for brake and accelerator pedals used in driving\r\n                    games.  These are analog axes but can also be mapped to\r\n                    digital inputs if needed.  Can only be set in the 'Global'\r\n                    section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputGearShift1\r\n                    InputGearShift2\r\n                    InputGearShift3\r\n                    InputGearShift4\r\n                    InputGearShiftN\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for the gear box used in driving games.  In games\r\n                    with only two gears (e.g. 'Le Mans 24'), InputGearShift1\r\n                    maps to 'Up' and InputGearShift2 to 'Down'.  A neutral\r\n                    position can also be selected.  Can only be set in the\r\n                    'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputGearShiftDown\r\n                    InputGearShiftUp\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for sequential shifting.  These allow gears to be\r\n                    selected sequentially: N, 1, 2, 3, 4.  Can only be set in\r\n                    the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputVR1\r\n                    InputVR2\r\n                    InputVR3\r\n                    InputVR4\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for the 'VR' (color-coded view select) buttons in\r\n                    racing games (e.g. 'Scud Race', 'Daytona USA 2', etc.)  Can\r\n                    only be set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputViewChange\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mapping for the view change button used in 'Sega Rally 2',\r\n                    'Dirt Devils', and 'Emergency Car Ambulance'.  Can only be\r\n                    set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputHandBrake\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mapping for the hand brake button used in 'Sega Rally 2'.\r\n                    Can only be set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputTwinJoyCrouch\r\n                    InputTwinJoyForward\r\n                    InputTwinJoyJump\r\n                    InputTwinJoyReverse\r\n                    InputTwinJoyStrafeLeft\r\n                    InputTwinJoyStrafeRight\r\n                    InputTwinJoyTurnLeft\r\n                    InputTwinJoyTurnRight\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for 'macro' commands for 'Virtual On Oratorio\r\n                    Tangram'.  These allow movements to be mapped to single\r\n                    digital inputs and do not require the use of two joysticks.\r\n                    Can only be set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputTwinJoyDown1\r\n                    InputTwinJoyDown2\r\n                    InputTwinJoyLeft1\r\n                    InputTwinJoyLeft2\r\n                    InputTwinJoyRight1\r\n                    InputTwinJoyRight2\r\n                    InputTwinJoyUp1\r\n                    InputTwinJoyUp2\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for the individual joysticks used by 'Virtual On\r\n                    Oratorio Tangram'.  The left stick is stick #1 and the\r\n                    right stick is #2.  Can only be set in the 'Global'\r\n                    section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputTwinJoyShot1\r\n                    InputTwinJoyShot2\r\n                    InputTwinJoyTurbo1\r\n                    InputTwinJoyTurbo2\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for the shot (trigger) and turbo buttons located\r\n                    on the left (1) and right (2) joysticks in 'Virtual On\r\n                    Oratorio Tangram'.  Can only be set in the 'Global'\r\n                    section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputAnalogJoyDown\r\n                    InputAnalogJoyLeft\r\n                    InputAnalogJoyRight\r\n                    InputAnalogJoyUp\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for digital control of the analog joystick used in\r\n                    'Star Wars Trilogy'.  Two inputs are provided for the two\r\n                    directions available on each axis.  Can only be set in the\r\n                    'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputAnalogJoyX\r\n                    InputAnalogJoyY\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for X and Y axes of the analog joystick in 'Star\r\n                    Wars Trilogy'.  Can only be set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputAnalogJoyTrigger\r\n                    InputAnalogJoyEvent\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for the trigger and Event button in 'Star Wars\r\n                    Trilogy'.  Can only be set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputGunDown\r\n                    InputGunDown2\r\n                    InputGunLeft\r\n                    InputGunLeft2\r\n                    InputGunRight\r\n                    InputGunRight2\r\n                    InputGunUp\r\n                    InputGunUp2\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for digital control of the light guns in 'The Lost\r\n                    World'.  Inputs for motion in each direction are provided.\r\n                    Can only be set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputGunX\r\n                    InputGunX2\r\n                    InputGunY\r\n                    InputGunY2\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for both analog axes of the light guns in 'The\r\n                    Lost World'.  Can only be set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputOffscreen\r\n                    InputOffscreen2\r\n                    InputTrigger\r\n                    InputTrigger2\r\n\r\n    Argument:       String.\r\n\r\n    Description:    Mappings for the light gun triggers and off-screen\r\n                    controls in 'The Lost World'.  The off-screen button aims\r\n                    the light gun off-screen while it is pressed, which makes\r\n                    re-loading possible.  Can only be set in the 'Global'\r\n                    section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputAutoTrigger\r\n                    InputAutoTrigger2\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    When set to 1, the off-screen button will also\r\n                    automatically reload (no need to pull the trigger).  Can\r\n                    only be set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputKeySensitivity\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    The rate at which analog control values increase/decrease\r\n                    when controlled by a key.  Valid range is 1-100, with 1\r\n                    being the least sensitive (slowest response).  The default\r\n                    is 25.  Can only be set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputKeyDecaySpeed\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    The rate at which analog control values return to their\r\n                    rest or 'off' position after a key has been released.  The\r\n                    value is expressed as a percentage of the attack speed,\r\n                    ranging from 1-200.  The default is 50, meaning analog\r\n                    controls take twice as long to return to their rest state\r\n                    as they do to reach their minimum/maximum values.  Can only\r\n                    be set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputMouseXDeadZone\r\n                    InputMouseYDeadZone\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    Specifies a rectangular region in the center of the display\r\n                    within which the mouse is considered inactive.  Expressed\r\n                    as percentages, from 0-99, of the width and height of the\r\n                    display.  The default values are 0, which disable this\r\n                    option.  Can only be set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputJoy**DeadZone\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    '**' must be the joystick number and axis (eg. '1X', '2RZ',\r\n                    etc.).  If the joystick number is omitted, the setting will\r\n                    apply to all joysticks.  Specifies the dead zone as a\r\n                    percentage, 0-99, of the total range of the axis.  Within\r\n                    the dead zone, the joystick is inactive.  This is useful\r\n                    for joysticks that are 'noisy' when at rest.  Can only be\r\n                    set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputJoy**Saturation\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    '**' must be the joystick number and axis (eg. '1X', '2RZ',\r\n                    etc.).  If the joystick number is omitted, the setting will\r\n                    apply to all joysticks.  Specifies the saturation, the\r\n                    position at which the joystick is interpreted as being in\r\n                    its most extreme position, as a percentage of the total\r\n                    range of the axis, from 0-200.  Values exceeding 100% mean\r\n                    the axis will not use its full range.  A value of 200 means\r\n                    that the range will be halved (fully pressed will only\r\n                    register as 50%).  The default is 100, a 1-to-1 mapping.\r\n                    Can only be set in the 'Global' section.\r\n\r\n    ----------------\r\n\r\n    Name:           InputJoy**MinVal\r\n                    InputJoy**MaxVal\r\n                    InputJoy**OffVal\r\n\r\n    Argument:       Integer.\r\n\r\n    Description:    '**' must be the joystick number and axis (eg. '1X', '2RZ',\r\n                    etc.).  If the joystick number is omitted, the setting will\r\n                    apply to all joysticks.  Specifies the maximum, minimum, or\r\n                    offset value of an axis.  The range is -32768 to 32768.  By\r\n                    default, MinVal is -32768, OffVal is 0, and MaxVal is\r\n                    32767.  Can only be set in the 'Global' section.\r\n\r\n\r\n=================================\r\n  13. Compiling the Source Code\r\n=================================\r\n\r\nFirst, ensure that OpenGL, SDL (http://www.libsdl.org), and zlib\r\n(http://zlib.net) are installed. GLEW (http://glew.sourceforge.net) is\r\nincluded in the source tree and does not need to be installed separately.\r\n\r\nNext, extract the Supermodel source code and copy the appropriate Makefile\r\nfrom the Makefiles/ directory to the base directory (that is, the one above\r\nSrc/ and Makefiles/).  Makefiles for 32-bit Windows (Microsoft Visual C++\r\n2008), Linux/UNIX (GCC), and Mac OS X (GCC) are provided, all requiring GNU\r\nMake.  For Windows developers, MinGW (http://www.mingw.org) provides GNU Make.\r\nAlternatively, you can write a Makefile compatible with Microsoft Nmake and\r\nsubmit it for inclusion in the next release. ;)  Consult the Visual Studio\r\ndocumentation to learn how to configure the Microsoft compiler for command line\r\noperation.\r\n\r\nEdit SDL_LIBPATH and SDL_INCLUDEPATH to reflect the location of the SDL\r\ndevelopment library and header files.  This should only be necessary for\r\nWindows.  The UNIX and Mac OS X Makefiles should be able to automatically\r\nlocate SDL if it was installed properly.\r\n\r\nOn Windows, Supermodel is compiled with the multi-threaded, static version of\r\nthe run-time library (/MT option).  However, the SDL and zlib development\r\nlibraries, and the SDL run-time DLL, are distributed for use with the dynamic\r\nrun-time (/MD option).  They must all be recompiled using /MT to work with\r\nSupermodel.  Alternatively, Supermodel's Makefile can be edited to use the /MD\r\noption.\r\n\r\nWhen everything is ready, rename the appropriate Makefile to 'Makefile' and run\r\n'make'.  If all goes well it should produce a Supermodel binary.\r\n\r\n\r\n===========================\r\n  14. Contact Information\r\n===========================\r\n\r\nThe official Supermodel web site is:\r\n\r\n    http://www.Supermodel3.com\r\n\r\nQuestions?  Comments?  Contributions?  Your feedback is welcome!  A discussion\r\nforum is available at the web site and the primary author, Bart Trzynadlowski,\r\ncan be reached by email at:\r\n\r\n    supermodel.emu@gmail.com\r\n\r\nWe ask that you remain mindful of the following courtesies:\r\n\r\n    - Do NOT ask about ROMs.\r\n    - Do NOT request features.\r\n    - Do NOT ask about release dates of future versions.\r\n\r\n\r\n=======================\r\n  15. Acknowledgments\r\n=======================\r\n\r\nNumerous people contributed their precious time and energy to this project.\r\nWithout them, Supermodel would not have been possible.  In no particular order,\r\nwe would like to thank:\r\n\r\n    - Ville Linde, original Supermodel team member and MAMEDev extraordinaire\r\n    - Stefano Teso, original Supermodel team member\r\n    - ElSemi, for all sorts of technical information and insight\r\n    - R. Belmont, for DSB code and modified Amp library from his music player,\r\n      M1, and the Mac OS X port\r\n    - Naibo Zhang, for his work on Model 3 graphics\r\n    - krom, for adding in the remaining ROM sets\r\n    - Andrew Lewis (a.k.a. Andy Geezer), for dumping the drive board ROMs and\r\n      providing region codes\r\n    - The Guru, for his efforts in dumping Model 3 ROM sets\r\n    - Brian Troha \u0026 The Dumping Union, for their continuing efforts in adding\r\n      new Model 3 ROM sets\r\n    - Abelardo Vidal Martos, for providing extremely useful video recordings of\r\n      actual Model 3 games\r\n    - Andrew Gardner, for fruitful discussion\r\n    - Chad Reker, Alex Corrigan, pcvideogamer, and Groni, for being especially\r\n      thorough play-testers\r\n    - Charles MacDonald, for his helpful description of the System 24 tile\r\n      generator\r\n    - Andreas Naive, Olivier Galibert, David Haywood \u0026 MAME for the interface\r\n      to and decryption code for the Sega 315-5881 protection device\r\n\r\nSupermodel includes code from the following projects:\r\n\r\n    - zlib:                     http://zlib.net\r\n    - minizip:                  http://www.winimage.com/zLibDll/minizip.html\r\n    - YAZE-AG:                  http://www.mathematik.uni-ulm.de/users/ag/yaze/\r\n    - Amp by Tomislav Uzalec\r\n    - The OpenGL Extension Wrangler Library (GLEW):\r\n                                http://glew.sourceforge.net\r\n\r\nThe OpenGL Extension Wrangler Library\r\nCopyright (C) 2002-2008, Milan Ikits \u003cmilan ikits[]ieee org\u003e\r\nCopyright (C) 2002-2008, Marcelo E. Magallon \u003cmmagallo[]debian org\u003e\r\nCopyright (C) 2002, Lev Povalahev\r\nAll rights reserved.\r\n\r\nRedistribution and use in source and binary forms, with or without\r\nmodification, are permitted provided that the following conditions are met:\r\n\r\n* Redistributions of source code must retain the above copyright notice,\r\n  this list of conditions and the following disclaimer.\r\n* Redistributions in binary form must reproduce the above copyright notice,\r\n  this list of conditions and the following disclaimer in the documentation\r\n  and/or other materials provided with the distribution.\r\n* The name of the author may be used to endorse or promote products\r\n  derived from this software without specific prior written permission.\r\n\r\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\r\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r\nARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\r\nLIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r\nCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\r\nSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r\nINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r\nARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\r\nTHE POSSIBILITY OF SUCH DAMAGE.\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrzy%2Fsupermodel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrzy%2Fsupermodel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrzy%2Fsupermodel/lists"}