first commit
@@ -0,0 +1,72 @@
|
||||
# Build output
|
||||
bin/
|
||||
obj/
|
||||
bin64/
|
||||
obj64/
|
||||
build/
|
||||
out/
|
||||
dist/
|
||||
target/
|
||||
Debug/
|
||||
Release/
|
||||
x64/
|
||||
x86/
|
||||
|
||||
# Compiled artifacts
|
||||
*.o
|
||||
*.obj
|
||||
*.lo
|
||||
*.la
|
||||
*.a
|
||||
*.lib
|
||||
*.so
|
||||
*.dylib
|
||||
*.dll
|
||||
*.exe
|
||||
*.exp
|
||||
*.pdb
|
||||
*.idb
|
||||
*.ilk
|
||||
*.ipdb
|
||||
*.iobj
|
||||
*.pch
|
||||
|
||||
# Generated files
|
||||
*.nv
|
||||
Makefile
|
||||
*.log
|
||||
*.tmp
|
||||
*.swp
|
||||
*.swo
|
||||
|
||||
# Archives
|
||||
*.zip
|
||||
*.tar
|
||||
*.gz
|
||||
*.bz2
|
||||
*.7z
|
||||
*.rar
|
||||
|
||||
# Android/Gradle
|
||||
android/.gradle/
|
||||
android/.idea/
|
||||
android/local.properties
|
||||
android/*.iml
|
||||
android/**/build/
|
||||
android/**/.cxx/
|
||||
|
||||
# IDE/Editor
|
||||
.idea/
|
||||
.vs/
|
||||
.vscode/
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
*.VC.db
|
||||
*.VC.opendb
|
||||
|
||||
# OS-generated
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
desktop.ini
|
||||
@@ -0,0 +1,433 @@
|
||||
;;
|
||||
;; Supermodel Configuration File
|
||||
;; Default settings.
|
||||
;;
|
||||
|
||||
|
||||
;
|
||||
; Quick Overview
|
||||
; --------------
|
||||
;
|
||||
; All settings are case sensitive. Numbers must be integers. Check your
|
||||
; spelling carefully because invalid settings are silently ignored. To verify
|
||||
; that your settings are being parsed correctly, check the contents of
|
||||
; Supermodel.log.
|
||||
;
|
||||
; Global options apply to all games. To create configuration profiles for
|
||||
; individual games, place settings under sections with the same name as the
|
||||
; corresponding MAME ROM set, like so:
|
||||
;
|
||||
; ; Scud Race
|
||||
; [ scud ]
|
||||
;
|
||||
; SoundVolume = 50
|
||||
; MusicVolume = 200
|
||||
; ; ... etc. ...
|
||||
;
|
||||
; For a list of all valid settings, please consult README.txt. Only default
|
||||
; inputs are assigned here.
|
||||
;
|
||||
|
||||
|
||||
[ Global ]
|
||||
|
||||
; Graphics
|
||||
New3DEngine = false
|
||||
QuadRendering = false
|
||||
WideScreen = false
|
||||
Stretch = false
|
||||
WideBackground = false
|
||||
|
||||
; Refresh rate (milliHertz accuracy). Actual Model 3 refresh rate is 57.524 Hz
|
||||
; but this can cause judder so we use 60 Hz by default.
|
||||
RefreshRate = 60.000
|
||||
|
||||
; Legacy SCSP DSP implementation for games that do not play well with the newer
|
||||
; one (e.g., Fighting Vipers 2)
|
||||
LegacySoundDSP = false
|
||||
|
||||
; Network board
|
||||
Network = false
|
||||
SimulateNet = true
|
||||
PortIn = 1970
|
||||
PortOut = 1971
|
||||
AddressOut = "127.0.0.1"
|
||||
|
||||
; Input
|
||||
; Sets the ManyMouse backend to ignore any mouse devices that don't provide
|
||||
; absolute positioning when enabled, ideal for using Lightguns.
|
||||
ABSMiceOnly = false
|
||||
|
||||
; Common
|
||||
InputUIExit = "JOY1_BUTTON10+JOY1_BUTTON9"
|
||||
InputUIPause = "JOY1_BUTTON9+JOY1_BUTTON4"
|
||||
InputUISelectCrosshairs = "JOY1_BUTTON9+JOY1_BUTTON2"
|
||||
InputUISaveState = "KEY_9,JOY1_BUTTON10+JOY1_BUTTON4"
|
||||
InputUILoadState = "KEY_0,JOY1_BUTTON10+JOY1_BUTTON2"
|
||||
InputStart1 = "KEY_1,JOY1_BUTTON10"
|
||||
InputStart2 = "KEY_2,JOY2_BUTTON10"
|
||||
InputCoin1 = "KEY_3,KEY_ALT,JOY1_BUTTON9"
|
||||
InputCoin2 = "KEY_4,JOY2_BUTTON9"
|
||||
InputServiceA = "KEY_5"
|
||||
InputServiceB = "KEY_7"
|
||||
InputTestA = "KEY_6"
|
||||
InputTestB = "KEY_8"
|
||||
|
||||
; 4-way digital joysticks
|
||||
InputJoyUp = "KEY_UP,JOY1_UP"
|
||||
InputJoyDown = "KEY_DOWN,JOY1_DOWN"
|
||||
InputJoyLeft = "KEY_LEFT,JOY1_LEFT"
|
||||
InputJoyRight = "KEY_RIGHT,JOY1_RIGHT"
|
||||
InputJoyUp2 = "JOY2_UP"
|
||||
InputJoyDown2 = "JOY2_DOWN"
|
||||
InputJoyLeft2 = "JOY2_LEFT"
|
||||
InputJoyRight2 = "JOY2_RIGHT"
|
||||
|
||||
; Fighting game buttons
|
||||
InputPunch = "KEY_A,JOY1_BUTTON1"
|
||||
InputKick = "KEY_S,JOY1_BUTTON2"
|
||||
InputGuard = "KEY_D,JOY1_BUTTON3"
|
||||
InputEscape = "KEY_F,JOY1_BUTTON4"
|
||||
InputPunch2 = "JOY2_BUTTON1"
|
||||
InputKick2 = "JOY2_BUTTON2"
|
||||
InputGuard2 = "JOY2_BUTTON3"
|
||||
InputEscape2 = "JOY2_BUTTON4"
|
||||
|
||||
; Spikeout buttons
|
||||
InputShift = "KEY_A,JOY1_BUTTON1"
|
||||
InputBeat = "KEY_S,JOY1_BUTTON2"
|
||||
InputCharge = "KEY_D,JOY1_BUTTON3"
|
||||
InputJump = "KEY_F,JOY1_BUTTON4"
|
||||
|
||||
; Virtua Striker buttons
|
||||
InputShortPass = "KEY_A,JOY1_BUTTON1"
|
||||
InputLongPass = "KEY_S,JOY1_BUTTON2"
|
||||
InputShoot = "KEY_D,JOY1_BUTTON3"
|
||||
InputShortPass2 = "JOY2_BUTTON1"
|
||||
InputLongPass2 = "JOY2_BUTTON2"
|
||||
InputShoot2 = "JOY2_BUTTON3"
|
||||
|
||||
; Steering wheel
|
||||
InputSteeringLeft = "KEY_LEFT" ; digital, turn wheel left
|
||||
InputSteeringRight = "KEY_RIGHT" ; digital, turn wheel right
|
||||
InputSteering = "JOY1_XAXIS" ; analog, full steering range
|
||||
|
||||
; Pedals
|
||||
InputAccelerator = "KEY_UP,JOY1_UP"
|
||||
InputBrake = "KEY_DOWN,JOY1_DOWN"
|
||||
|
||||
; Up/down shifter manual transmission (all racers)
|
||||
InputGearShiftUp = "KEY_Y" ; sequential shift up
|
||||
InputGearShiftDown = "KEY_H" ; sequential shift down
|
||||
|
||||
; 4-Speed manual transmission (Daytona 2, Sega Rally 2, Scud Race)
|
||||
InputGearShift1 = "KEY_Q,JOY1_BUTTON5"
|
||||
InputGearShift2 = "KEY_W,JOY1_BUTTON6"
|
||||
InputGearShift3 = "KEY_E,JOY1_BUTTON7"
|
||||
InputGearShift4 = "KEY_R,JOY1_BUTTON8"
|
||||
InputGearShiftN = "KEY_T"
|
||||
|
||||
; VR4 view change buttons (Daytona 2, Le Mans 24, Scud Race)
|
||||
InputVR1 = "KEY_A,JOY1_BUTTON1"
|
||||
InputVR2 = "KEY_S,JOY1_BUTTON2"
|
||||
InputVR3 = "KEY_D,JOY1_BUTTON3"
|
||||
InputVR4 = "KEY_F,JOY1_BUTTON4"
|
||||
|
||||
; Single view change button (Dirt Devils, ECA, Harley-Davidson, Sega Rally 2)
|
||||
InputViewChange = "KEY_A,JOY1_BUTTON1"
|
||||
|
||||
; Handbrake (Sega Rally 2)
|
||||
InputHandBrake = "KEY_S,JOY1_BUTTON2"
|
||||
|
||||
; Harley-Davidson controls
|
||||
InputRearBrake = "KEY_S,JOY1_BUTTON2"
|
||||
InputMusicSelect = "KEY_D,JOY1_BUTTON3"
|
||||
|
||||
; Virtual On macros
|
||||
InputTwinJoyTurnLeft = "KEY_Q,JOY1_RXAXIS_NEG"
|
||||
InputTwinJoyTurnRight = "KEY_W,JOY1_RXAXIS_POS"
|
||||
InputTwinJoyForward = "KEY_UP,JOY1_YAXIS_NEG"
|
||||
InputTwinJoyReverse = "KEY_DOWN,JOY1_YAXIS_POS"
|
||||
InputTwinJoyStrafeLeft = "KEY_LEFT,JOY1_XAXIS_NEG"
|
||||
InputTwinJoyStrafeRight = "KEY_RIGHT,JOY1_XAXIS_POS"
|
||||
InputTwinJoyJump = "KEY_E,JOY1_BUTTON1"
|
||||
InputTwinJoyCrouch = "KEY_R,JOY1_BUTTON2"
|
||||
|
||||
; Virtual On individual joystick mapping
|
||||
InputTwinJoyLeft1 = "NONE"
|
||||
InputTwinJoyLeft2 = "NONE"
|
||||
InputTwinJoyRight1 = "NONE"
|
||||
InputTwinJoyRight2 = "NONE"
|
||||
InputTwinJoyUp1 = "NONE"
|
||||
InputTwinJoyUp2 = "NONE"
|
||||
InputTwinJoyDown1 = "NONE"
|
||||
InputTwinJoyDown2 = "NONE"
|
||||
|
||||
; Virtual On buttons
|
||||
InputTwinJoyShot1 = "KEY_A,JOY1_BUTTON5"
|
||||
InputTwinJoyShot2 = "KEY_S,JOY1_BUTTON6"
|
||||
InputTwinJoyTurbo1 = "KEY_Z,JOY1_BUTTON7"
|
||||
InputTwinJoyTurbo2 = "KEY_X,JOY1_BUTTON8"
|
||||
|
||||
; Analog joystick (Star Wars Trilogy)
|
||||
InputAnalogJoyLeft = "KEY_LEFT" ; digital, move left
|
||||
InputAnalogJoyRight = "KEY_RIGHT" ; digital, move right
|
||||
InputAnalogJoyUp = "KEY_UP" ; digital, move up
|
||||
InputAnalogJoyDown = "KEY_DOWN" ; digital, move down
|
||||
InputAnalogJoyX = "JOY_XAXIS,MOUSE1_XAXIS_INV" ; analog, full X axis
|
||||
InputAnalogJoyY = "JOY_YAXIS,MOUSE1_YAXIS_INV" ; analog, full Y axis
|
||||
InputAnalogJoyTrigger = "KEY_A,JOY_BUTTON1,MOUSE1_LEFT_BUTTON"
|
||||
InputAnalogJoyEvent = "KEY_S,JOY_BUTTON2,MOUSE1_RIGHT_BUTTON"
|
||||
InputAnalogJoyTrigger2 = "KEY_D,JOY_BUTTON2"
|
||||
InputAnalogJoyEvent2 = "NONE"
|
||||
|
||||
; Light guns (Lost World)
|
||||
InputGunLeft = "KEY_LEFT" ; digital, move gun left
|
||||
InputGunRight = "KEY_RIGHT" ; digital, move gun right
|
||||
InputGunUp = "KEY_UP" ; digital, move gun up
|
||||
InputGunDown = "KEY_DOWN" ; digital, move gun down
|
||||
InputGunX = "MOUSE1_XAXIS,JOY1_XAXIS" ; analog, full X axis
|
||||
InputGunY = "MOUSE1_YAXIS,JOY1_YAXIS" ; analog, full Y axis
|
||||
InputTrigger = "KEY_A,JOY1_BUTTON1,MOUSE1_LEFT_BUTTON"
|
||||
InputOffscreen = "KEY_S,JOY1_BUTTON2,MOUSE1_RIGHT_BUTTON" ; point off-screen
|
||||
InputAutoTrigger = 1 ; automatic reload when off-screen
|
||||
InputGunLeft2 = "NONE"
|
||||
InputGunRight2 = "NONE"
|
||||
InputGunUp2 = "NONE"
|
||||
InputGunDown2 = "NONE"
|
||||
InputGunX2 = "JOY2_XAXIS,MOUSE2_XAXIS"
|
||||
InputGunY2 = "JOY2_YAXIS,MOUSE2_YAXIS"
|
||||
InputTrigger2 = "JOY2_BUTTON1,MOUSE2_LEFT_BUTTON"
|
||||
InputOffscreen2 = "JOY2_BUTTON2,MOUSE2_RIGHT_BUTTON"
|
||||
InputAutoTrigger2 = 1
|
||||
|
||||
; Analog guns (Ocean Hunter, LA Machineguns)
|
||||
InputAnalogGunLeft = "KEY_LEFT" ; digital, move gun left
|
||||
InputAnalogGunRight = "KEY_RIGHT" ; digital, move gun right
|
||||
InputAnalogGunUp = "KEY_UP" ; digital, move gun up
|
||||
InputAnalogGunDown = "KEY_DOWN" ; digital, move gun down
|
||||
InputAnalogGunX = "MOUSE1_XAXIS,JOY1_XAXIS" ; analog, full X axis
|
||||
InputAnalogGunY = "MOUSE1_YAXIS,JOY1_YAXIS" ; analog, full Y axis
|
||||
InputAnalogTriggerLeft = "KEY_A,JOY1_BUTTON1,MOUSE1_LEFT_BUTTON"
|
||||
InputAnalogTriggerRight = "KEY_S,JOY1_BUTTON2,MOUSE1_RIGHT_BUTTON"
|
||||
InputAnalogGunLeft2 = "NONE"
|
||||
InputAnalogGunRight2 = "NONE"
|
||||
InputAnalogGunUp2 = "NONE"
|
||||
InputAnalogGunDown2 = "NONE"
|
||||
InputAnalogGunX2 = "MOUSE2_XAXIS"
|
||||
InputAnalogGunY2 = "MOUSE2_YAXIS"
|
||||
InputAnalogTriggerLeft2 = "MOUSE2_LEFT_BUTTON"
|
||||
InputAnalogTriggerRight2 = "MOUSE2_RIGHT_BUTTON"
|
||||
|
||||
; Ski Champ controls
|
||||
InputSkiLeft = "KEY_LEFT"
|
||||
InputSkiRight = "KEY_RIGHT"
|
||||
InputSkiUp = "KEY_UP"
|
||||
InputSkiDown = "KEY_DOWN"
|
||||
InputSkiX = "JOY1_XAXIS"
|
||||
InputSkiY = "JOY1_YAXIS"
|
||||
InputSkiPollLeft = "KEY_A,JOY1_BUTTON1"
|
||||
InputSkiPollRight = "KEY_S,JOY1_BUTTON2"
|
||||
InputSkiSelect1 = "KEY_Q,JOY1_BUTTON3"
|
||||
InputSkiSelect2 = "KEY_W,JOY1_BUTTON4"
|
||||
InputSkiSelect3 = "KEY_E,JOY1_BUTTON5"
|
||||
|
||||
; Magical Truck Adventure controls
|
||||
InputMagicalLeverUp1 = "KEY_UP"
|
||||
InputMagicalLeverDown1 = "KEY_DOWN"
|
||||
InputMagicalLeverUp2 = "NONE"
|
||||
InputMagicalLeverDown2 = "NONE"
|
||||
InputMagicalLever1 = "JOY1_YAXIS"
|
||||
InputMagicalLever2 = "JOY2_YAXIS"
|
||||
InputMagicalPedal1 = "KEY_A,JOY1_BUTTON1"
|
||||
InputMagicalPedal2 = "KEY_S,JOY2_BUTTON1"
|
||||
|
||||
; Sega Bass Fishing / Get Bass controls
|
||||
InputFishingRodLeft = "KEY_LEFT"
|
||||
InputFishingRodRight = "KEY_RIGHT"
|
||||
InputFishingRodUp = "KEY_UP"
|
||||
InputFishingRodDown = "KEY_DOWN"
|
||||
InputFishingStickLeft = "KEY_A"
|
||||
InputFishingStickRight = "KEY_D"
|
||||
InputFishingStickUp = "KEY_W"
|
||||
InputFishingStickDown = "KEY_S"
|
||||
InputFishingRodX = "JOY1_XAXIS"
|
||||
InputFishingRodY = "JOY1_YAXIS"
|
||||
InputFishingStickX = "JOY1_RXAXIS"
|
||||
InputFishingStickY = "JOY1_RYAXIS"
|
||||
InputFishingReel = "KEY_SPACE,JOY1_ZAXIS_POS"
|
||||
InputFishingCast = "KEY_Z,JOY1_BUTTON1"
|
||||
InputFishingSelect = "KEY_X,JOY1_BUTTON2"
|
||||
InputFishingTension = "KEY_T,JOY1_ZAXIS_NEG"
|
||||
|
||||
;Our non input settings...
|
||||
|
||||
; Game specific settings
|
||||
;daytona 2 power edition
|
||||
[ dayto2pe ]
|
||||
PowerPCFrequency = 90
|
||||
EmulateDSB = 1
|
||||
;daytona 2: battle to the edge
|
||||
[ daytona2 ]
|
||||
PowerPCFrequency = 90
|
||||
EmulateDSB = 1
|
||||
;Dirt Devils (Export, Revision A)
|
||||
[ dirtdvls ]
|
||||
PowerPCFrequency = 60
|
||||
;Dirt Devils (Australia, Revision A)
|
||||
[ dirtdvlsa ]
|
||||
PowerPCFrequency = 60
|
||||
;Dirt Devils (German)
|
||||
[ dirtdvlsg ]
|
||||
PowerPCFrequency = 60
|
||||
;Dirt Devils (Japan, Revision A)
|
||||
[ dirtdvlsj ]
|
||||
PowerPCFrequency = 60
|
||||
;Emergency Call Ambulance (Export) - NOT WORKING PI
|
||||
[ eca ]
|
||||
;Emergency Call Ambulance (Japan) - NOIT WORKING PI
|
||||
[ ecaj ]
|
||||
;Emergency Call Ambulance (US location test?) - NOT WORKING PI
|
||||
[ ecap ]
|
||||
;Emergency Call Ambulance (USA) - NOT WORKING PI
|
||||
[ ecau ]
|
||||
;Fighting Vipers 2 (Japan, Revision A)
|
||||
[ fvipers2 ]
|
||||
PowerPCFrequency = 55
|
||||
;Fighting Vipers 2 (?)
|
||||
[ fvipers2o ]
|
||||
PowerPCFrequency = 48
|
||||
;Get Bass (?)
|
||||
[ getbass ]
|
||||
PowerPCFrequency = 30
|
||||
;Harley-Davidson and L.A. Riders (Revision B) - pi too slow
|
||||
[ harley ]
|
||||
PowerPCFrequency = 166
|
||||
;Harley-Davidson and L.A. Riders (Revision A) - pi too slow
|
||||
[ harleya ]
|
||||
PowerPCFrequency = 166
|
||||
;L.A. Machineguns: Rage of the Machines (Japan)
|
||||
[ lamachin ]
|
||||
PowerPCFrequency = 40
|
||||
;Le Mans 24 (Revision B)
|
||||
[ lemans24 ]
|
||||
;The Lost World (Japan, Revision A)
|
||||
[ lostwsga ];The Lost World (Original Revision)
|
||||
PowerPCFrequency = 33
|
||||
[ lostwsgo ]
|
||||
PowerPCFrequency = 33
|
||||
;Magical Truck Adventure (Japan)
|
||||
[ magtruck ]
|
||||
PowerPCFrequency = 40
|
||||
;The Ocean Hunter - Default works fine on pi
|
||||
[ oceanhun ]
|
||||
MusicVolume = 200
|
||||
SoundVolume = 200
|
||||
[ oceanhuna ]
|
||||
MusicVolume = 200
|
||||
SoundVolume = 200
|
||||
;Scud Race (Australia, Twin)
|
||||
[ scud ]
|
||||
PowerPCFrequency = 35
|
||||
MusicVolume = 200
|
||||
EmulateDSB = 1
|
||||
;Scud Race (Export, Twin)
|
||||
[ scuda ]
|
||||
PowerPCFrequency = 35
|
||||
MusicVolume = 200
|
||||
EmulateDSB = 1
|
||||
;Scud Race (Japan, Deluxe)
|
||||
[ scudj ]
|
||||
PowerPCFrequency = 35
|
||||
MusicVolume = 200
|
||||
EmulateDSB = 1
|
||||
;Scud Race Plus (Revision A)
|
||||
[ scudplus ]
|
||||
PowerPCFrequency = 35
|
||||
MusicVolume = 200
|
||||
EmulateDSB = 1
|
||||
;Scud Race Plus (?)
|
||||
[ scudplusa ]
|
||||
PowerPCFrequency = 35
|
||||
MusicVolume = 200
|
||||
EmulateDSB = 1
|
||||
;Ski Champ (Japan)
|
||||
[ skichamp ]
|
||||
;PowerPCFrequency = 43
|
||||
PowerPCFrequency = 60
|
||||
;Spikeout Final Edition (?) - too slow on pi
|
||||
[ spikeofe ]
|
||||
PowerPCFrequency = 100
|
||||
EmulateDSB = 1
|
||||
;Spikeout (Revision C)
|
||||
[ spikeout ]
|
||||
;PowerPCFrequency = 35
|
||||
PowerPCFrequency = 55
|
||||
EmulateDSB = 1
|
||||
;Sega Rally 2 (?)
|
||||
[ srally2 ]
|
||||
EmulateDSB = 1
|
||||
PowerPCFrequency = 60
|
||||
;Sega Rally 2 (Prototype)
|
||||
[ srally2p ]
|
||||
PowerPCFrequency = 48
|
||||
EmulateDSB = 1
|
||||
;Sega Rally 2 (Prototype Version A)
|
||||
[ srally2pa ]
|
||||
PowerPCFrequency = 48
|
||||
EmulateDSB = 1
|
||||
;Sega Rally 2 (Deluxe)
|
||||
[ srally2x ]
|
||||
;Playable on pi but more slower down than srally2
|
||||
PowerPCFrequency = 100
|
||||
EmulateDSB = 1
|
||||
;Star Wars Trilogy Arcade - Default works fine on pi
|
||||
[ swtrilgy ]
|
||||
;Star Wars Trilogy Arcade (?)
|
||||
[ swtrilgya ]
|
||||
;Star Wars Trilogy Arcade (?)
|
||||
[ swtrilgyp ]
|
||||
;Virtua Fighter 3 (Revision D)
|
||||
[ vf3 ]
|
||||
PowerPCFrequency = 40
|
||||
;PowerPCFrequency = 100
|
||||
;Virtua Fighter 3 (Revision A)
|
||||
[ vf3a ]
|
||||
PowerPCFrequency = 40
|
||||
;Virtua Fighter 3 (Revision C)
|
||||
[ vf3c ]
|
||||
PowerPCFrequency = 40
|
||||
;Virtua Fighter 3 Team Battle (?)
|
||||
[ vf3tb ]
|
||||
PowerPCFrequency = 40
|
||||
;Virtual On 2: Oratorio Tangram (Revision B)
|
||||
[ von2 ]
|
||||
PowerPCFrequency = 30
|
||||
;Virtual On 2: Oratorio Tangram (Ver 5.4g)
|
||||
[ von254g ]
|
||||
PowerPCFrequency = 30
|
||||
;Virtual On 2: Oratorio Tangram (Revision A)
|
||||
[ von2a ]
|
||||
PowerPCFrequency = 30
|
||||
;Virtual On 2: Oratorio Tangram (?)
|
||||
[ von2o ]
|
||||
PowerPCFrequency = 35
|
||||
;Virtua Striker 2 (Step 2.0) - no special settings
|
||||
[ vs2 ]
|
||||
;Virtua Striker 2 (Step 1.5) - no special settings
|
||||
[ vs215 ]
|
||||
;Virtua Striker 2 (Step 1.5, older) - no special settings
|
||||
[ vs215o ]
|
||||
;Virtua Striker 2 '98 (Step 2.0) - no special settings
|
||||
[ vs298 ]
|
||||
;Virtua Striker 2 '98 (Step 1.5) - no special settings
|
||||
[ vs29815 ]
|
||||
;Virtua Striker 2 '99 (?)
|
||||
[ vs299 ]
|
||||
;Virtua Striker 2 '99 (Step 1.5)
|
||||
[ vs29915 ]
|
||||
;Virtua Striker 2 '99 (Revision A)
|
||||
[ vs299a ]
|
||||
;Virtua Striker 2 '99 (Revision B)
|
||||
[ vs299b ]
|
||||
;Virtua Striker 2 '99.1 (Revision B)
|
||||
|
After Width: | Height: | Size: 13 MiB |
|
After Width: | Height: | Size: 11 MiB |
|
After Width: | Height: | Size: 16 MiB |
|
After Width: | Height: | Size: 13 MiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 11 MiB |
|
After Width: | Height: | Size: 9.8 MiB |
@@ -0,0 +1 @@
|
||||
Source code for Third-party libraries needs to be placed in here.
|
||||
@@ -0,0 +1,81 @@
|
||||
##
|
||||
## Supermodel
|
||||
## A Sega Model 3 Arcade Emulator.
|
||||
## Copyright 2003-2022 The Supermodel Team
|
||||
##
|
||||
## This file is part of Supermodel.
|
||||
##
|
||||
## Supermodel is free software: you can redistribute it and/or modify it under
|
||||
## the terms of the GNU General Public License as published by the Free
|
||||
## Software Foundation, either version 3 of the License, or (at your option)
|
||||
## any later version.
|
||||
##
|
||||
## Supermodel is distributed in the hope that it will be useful, but WITHOUT
|
||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
## more details.
|
||||
##
|
||||
## You should have received a copy of the GNU General Public License along
|
||||
## with Supermodel. If not, see <http://www.gnu.org/licenses/>.
|
||||
##
|
||||
|
||||
#
|
||||
# Makefile.OSX
|
||||
#
|
||||
# Makefile for Mac OS X systems using clang.
|
||||
#
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Build Options
|
||||
###############################################################################
|
||||
|
||||
DELETE = rm -d -r -f
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Platform Configuration
|
||||
#
|
||||
# Edit library and include paths as needed.
|
||||
###############################################################################
|
||||
|
||||
#
|
||||
# Must be included first
|
||||
#
|
||||
include Makefiles/Options.inc
|
||||
|
||||
#
|
||||
# Toolchain
|
||||
#
|
||||
CC = clang
|
||||
CXX = clang
|
||||
LD = clang
|
||||
|
||||
#
|
||||
# SDL
|
||||
#
|
||||
|
||||
SDL_CFLAGS =
|
||||
SDL_LIBS = -framework SDL2 -framework AGL -framework OpenGL -framework GLUT -framework Cocoa
|
||||
ifeq ($(strip $(NET_BOARD)),1)
|
||||
SDL_LIBS += -framework SDL2_net
|
||||
endif
|
||||
|
||||
#
|
||||
# OSX-specific
|
||||
#
|
||||
|
||||
PLATFORM_CXXFLAGS = $(SDL_CFLAGS) -DSUPERMODEL_OSX -F/Library/Frameworks/ -O3
|
||||
PLATFORM_LDFLAGS = $(SDL_LIBS) -lz -lm -lstdc++ -F/Library/Frameworks/
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Core Makefile
|
||||
###############################################################################
|
||||
|
||||
include Makefiles/Rules.inc
|
||||
|
||||
clean:
|
||||
$(SILENT)echo Cleaning up \"$(BIN_DIR)\" and \"$(OBJ_DIR)\"...
|
||||
$(SILENT)$(DELETE) $(BIN_DIR)
|
||||
$(SILENT)$(DELETE) $(OBJ_DIR)
|
||||
@@ -0,0 +1,78 @@
|
||||
##
|
||||
## Supermodel
|
||||
## A Sega Model 3 Arcade Emulator.
|
||||
## Copyright 2003-2022 The Supermodel Team
|
||||
##
|
||||
## This file is part of Supermodel.
|
||||
##
|
||||
## Supermodel is free software: you can redistribute it and/or modify it under
|
||||
## the terms of the GNU General Public License as published by the Free
|
||||
## Software Foundation, either version 3 of the License, or (at your option)
|
||||
## any later version.
|
||||
##
|
||||
## Supermodel is distributed in the hope that it will be useful, but WITHOUT
|
||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
## more details.
|
||||
##
|
||||
## You should have received a copy of the GNU General Public License along
|
||||
## with Supermodel. If not, see <http://www.gnu.org/licenses/>.
|
||||
##
|
||||
|
||||
#
|
||||
# Makefile.UNIX
|
||||
#
|
||||
# Makefile for UNIX/Linux systems.
|
||||
#
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Build Options
|
||||
###############################################################################
|
||||
|
||||
DELETE = rm -d -r -f
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Platform Configuration
|
||||
#
|
||||
# Edit library and include paths as needed.
|
||||
###############################################################################
|
||||
|
||||
#
|
||||
# Must be included first
|
||||
#
|
||||
include Makefiles/Options.inc
|
||||
|
||||
#
|
||||
# Toolchain
|
||||
#
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
LD = gcc
|
||||
|
||||
#
|
||||
# SDL
|
||||
#
|
||||
|
||||
SDL2_CFLAGS = `sdl2-config --cflags`
|
||||
SDL2_LIBS = `sdl2-config --libs`
|
||||
|
||||
#
|
||||
# UNIX-specific
|
||||
#
|
||||
|
||||
PLATFORM_CXXFLAGS = $(SDL2_CFLAGS) -O3
|
||||
PLATFORM_LDFLAGS = $(SDL2_LIBS) -lGL -lGLU -lz -lm -lstdc++ -lpthread -lSDL2_net -ldl
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Core Makefile
|
||||
###############################################################################
|
||||
|
||||
include Makefiles/Rules.inc
|
||||
|
||||
clean:
|
||||
$(SILENT)echo Cleaning up \"$(BIN_DIR)\" and \"$(OBJ_DIR)\"...
|
||||
$(SILENT)$(DELETE) $(BIN_DIR)
|
||||
$(SILENT)$(DELETE) $(OBJ_DIR)
|
||||
@@ -0,0 +1,115 @@
|
||||
##
|
||||
## Supermodel
|
||||
## A Sega Model 3 Arcade Emulator.
|
||||
## Copyright 2003-2022 The Supermodel Team
|
||||
##
|
||||
## This file is part of Supermodel.
|
||||
##
|
||||
## Supermodel is free software: you can redistribute it and/or modify it under
|
||||
## the terms of the GNU General Public License as published by the Free
|
||||
## Software Foundation, either version 3 of the License, or (at your option)
|
||||
## any later version.
|
||||
##
|
||||
## Supermodel is distributed in the hope that it will be useful, but WITHOUT
|
||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
## more details.
|
||||
##
|
||||
## You should have received a copy of the GNU General Public License along
|
||||
## with Supermodel. If not, see <http://www.gnu.org/licenses/>.
|
||||
##
|
||||
|
||||
#
|
||||
# Makefile.Win32
|
||||
#
|
||||
# Makefile for Windows systems using gcc and the standard Command Prompt.
|
||||
#
|
||||
# Set variables in the "Configuration" section as required by your system
|
||||
# configuration.
|
||||
#
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Configuration
|
||||
#
|
||||
# Edit as necessary. Some users may need to edit the "Platform Configuration"
|
||||
# section as well, namely SDL2_LIBS and PLATFORM_LIBS.
|
||||
###############################################################################
|
||||
|
||||
#
|
||||
# Must be included first
|
||||
#
|
||||
include Makefiles/Options.inc
|
||||
|
||||
#
|
||||
# Bitness of build ('32' or '64')
|
||||
#
|
||||
BITS = 64
|
||||
|
||||
#
|
||||
# Path to SDL2
|
||||
#
|
||||
SDL2_INCLUDE_DIR = \msys64\mingw64\include\SDL2
|
||||
SDL2_LIB_DIR = \msys64\mingw64\lib
|
||||
|
||||
#
|
||||
# Toolchain
|
||||
#
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
LD = g++
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Platform Configuration
|
||||
###############################################################################
|
||||
|
||||
# Safety check: can be only '32' or '64' otherwise defaults to '64'
|
||||
ifneq ($(filter $(strip $(BITS)),32 64),$(strip $(BITS)))
|
||||
override BITS = 64
|
||||
endif
|
||||
|
||||
#
|
||||
# Use Bash or Windows Prompt shell commands?
|
||||
#
|
||||
DELETE = rm -d -r -f
|
||||
ifeq ($(strip $(MSYSTEM)),)
|
||||
DELETE = rmdir /s /q
|
||||
endif
|
||||
|
||||
#
|
||||
# SDL2
|
||||
#
|
||||
SDL2_LIBS = -lmingw32 -lSDL2main -lSDL2 -Wl,--no-undefined -lshell32 -lsetupapi -ladvapi32 -luuid -lversion -limm32 -lwinmm -lgdi32 -luser32 -lm -pipe
|
||||
SDL2_CFLAGS =
|
||||
ifeq ($(strip $(NET_BOARD)),1)
|
||||
SDL2_LIBS += -lSDL2_net -liphlpapi
|
||||
endif
|
||||
|
||||
#
|
||||
# MinGW/Windows-specific
|
||||
#
|
||||
|
||||
PLATFORM_INCLUDE_DIR = $(SDL2_INCLUDE_DIR)
|
||||
PLATFORM_LIB_DIR = $(SDL2_LIB_DIR)
|
||||
PLATFORM_LIBS = -ldxerr8 -ldinput8 -lglu32 -lole32 -loleaut32 -lopengl32 -lwbemuuid -lws2_32 -lz
|
||||
PLATFORM_CXXFLAGS = $(SDL2_CFLAGS) -DSUPERMODEL_WIN32 $(addprefix -I,$(sort $(PLATFORM_INCLUDE_DIR)))
|
||||
PLATFORM_LDFLAGS = -static -L$(sort $(PLATFORM_LIB_DIR)) $(SDL2_LIBS) $(PLATFORM_LIBS)
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Core Makefile
|
||||
###############################################################################
|
||||
|
||||
PLATFORM_SRC_FILES = \
|
||||
Src/OSD/Windows/DirectInputSystem.cpp \
|
||||
Src/OSD/Windows/WinOutputs.cpp
|
||||
|
||||
.PHONY: clean
|
||||
|
||||
include Makefiles/Rules.inc
|
||||
|
||||
clean:
|
||||
$(SILENT)echo Cleaning up $(BIN_DIR) and $(OBJ_DIR)...
|
||||
$(SILENT)$(DELETE) $(BIN_DIR)
|
||||
$(SILENT)$(DELETE) $(OBJ_DIR)
|
||||
@@ -0,0 +1,67 @@
|
||||
##
|
||||
## Supermodel
|
||||
## A Sega Model 3 Arcade Emulator.
|
||||
## Copyright 2003-2022 The Supermodel Team
|
||||
##
|
||||
## This file is part of Supermodel.
|
||||
##
|
||||
## Supermodel is free software: you can redistribute it and/or modify it under
|
||||
## the terms of the GNU General Public License as published by the Free
|
||||
## Software Foundation, either version 3 of the License, or (at your option)
|
||||
## any later version.
|
||||
##
|
||||
## Supermodel is distributed in the hope that it will be useful, but WITHOUT
|
||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
## more details.
|
||||
##
|
||||
## You should have received a copy of the GNU General Public License along
|
||||
## with Supermodel. If not, see <http://www.gnu.org/licenses/>.
|
||||
##
|
||||
|
||||
#
|
||||
# Options.inc
|
||||
#
|
||||
# Build options.
|
||||
#
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Build Options
|
||||
###############################################################################
|
||||
|
||||
#
|
||||
# Verbose progression
|
||||
#
|
||||
VERBOSE =
|
||||
ifneq ($(filter $(strip $(VERBOSE)),0 1),$(strip $(VERBOSE)))
|
||||
override VERBOSE =
|
||||
endif
|
||||
SILENT = @
|
||||
ifeq ($(strip $(VERBOSE)),1)
|
||||
SILENT =
|
||||
endif
|
||||
|
||||
#
|
||||
# Enable render state analyser for the legacy 3D engine (will slow down emulation!)
|
||||
#
|
||||
DEBUG =
|
||||
ifneq ($(filter $(strip $(DEBUG)),0 1),$(strip $(DEBUG)))
|
||||
override DEBUG =
|
||||
endif
|
||||
|
||||
#
|
||||
# Enable support for Model3 Net Board emulation
|
||||
#
|
||||
NET_BOARD =
|
||||
ifneq ($(filter $(strip $(NET_BOARD)),0 1),$(strip $(NET_BOARD)))
|
||||
override NET_BOARD =
|
||||
endif
|
||||
|
||||
#
|
||||
# Include console-based debugger in emulator ('yes' or 'no')
|
||||
#
|
||||
ENABLE_DEBUGGER =
|
||||
ifneq ($(filter $(strip $(ENABLE_DEBUGGER)),0 1),$(strip $(ENABLE_DEBUGGER)))
|
||||
override ENABLE_DEBUGGER =
|
||||
endif
|
||||
@@ -0,0 +1,334 @@
|
||||
##
|
||||
## Supermodel
|
||||
## A Sega Model 3 Arcade Emulator.
|
||||
## Copyright 2003-2022 The Supermodel Team
|
||||
##
|
||||
## This file is part of Supermodel.
|
||||
##
|
||||
## Supermodel is free software: you can redistribute it and/or modify it under
|
||||
## the terms of the GNU General Public License as published by the Free
|
||||
## Software Foundation, either version 3 of the License, or (at your option)
|
||||
## any later version.
|
||||
##
|
||||
## Supermodel is distributed in the hope that it will be useful, but WITHOUT
|
||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
## more details.
|
||||
##
|
||||
## You should have received a copy of the GNU General Public License along
|
||||
## with Supermodel. If not, see <http://www.gnu.org/licenses/>.
|
||||
##
|
||||
|
||||
#
|
||||
# Rules.inc
|
||||
#
|
||||
# Build rules, included by all (platform-specific) top-level Makefiles.
|
||||
#
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Output Locations
|
||||
###############################################################################
|
||||
|
||||
OBJ_DIR = obj$(strip $(BITS))
|
||||
BIN_DIR = bin$(strip $(BITS))
|
||||
|
||||
OUTFILE = supermodel
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Compiler Flags
|
||||
###############################################################################
|
||||
|
||||
#
|
||||
# Construct Supermodel build options
|
||||
#
|
||||
SUPERMODEL_BUILD_FLAGS =
|
||||
|
||||
# If render state analyser is enabled, need to define DEBUG
|
||||
ifeq ($(strip $(DEBUG)),1)
|
||||
SUPERMODEL_BUILD_FLAGS += -DDEBUG
|
||||
endif
|
||||
|
||||
# If Net Board support is enabled, need to define NET_BOARD
|
||||
ifeq ($(strip $(NET_BOARD)),1)
|
||||
SUPERMODEL_BUILD_FLAGS += -DNET_BOARD
|
||||
endif
|
||||
|
||||
# If Bart's new frame timing is enabled, need to define NEW_FRAME_TIMING
|
||||
ifeq ($(strip $(NEW_FRAME_TIMING)),1)
|
||||
SUPERMODEL_BUILD_FLAGS += -DNEW_FRAME_TIMING
|
||||
endif
|
||||
|
||||
# If built-in debugger enabled, need to define SUPERMODEL_DEBUGGER
|
||||
ifeq ($(strip $(ENABLE_DEBUGGER)),1)
|
||||
SUPERMODEL_BUILD_FLAGS += -DSUPERMODEL_DEBUGGER
|
||||
endif
|
||||
|
||||
#
|
||||
# Compiler options
|
||||
#
|
||||
ARCH = -march=native
|
||||
OPT = -O3
|
||||
WARN = -Wall
|
||||
CSTD = -std=iso9899:2011
|
||||
CXXSTD = -std=c++17
|
||||
|
||||
|
||||
#
|
||||
# Construct the compiler (C and C++) and linker flags
|
||||
#
|
||||
COMMON_CFLAGS = -c $(ARCH) $(OPT) $(WARN) $(addprefix -I,$(sort $(INCLUDE_DIRS))) -DGLEW_STATIC $(SUPERMODEL_BUILD_FLAGS)
|
||||
CFLAGS = $(COMMON_CFLAGS) $(CSTD)
|
||||
CXXFLAGS = $(PLATFORM_CXXFLAGS) $(COMMON_CFLAGS) $(CXXSTD)
|
||||
LDFLAGS = -o $(BIN_DIR)/$(OUTFILE) $(PLATFORM_LDFLAGS) -s
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Source Files
|
||||
###############################################################################
|
||||
|
||||
SRC_FILES = \
|
||||
Src/CPU/PowerPC/PPCDisasm.cpp \
|
||||
Src/BlockFile.cpp \
|
||||
Src/Pkgs/unzip.cpp \
|
||||
Src/Pkgs/ioapi.cpp \
|
||||
Src/Model3/93C46.cpp \
|
||||
Src/Util/BitRegister.cpp \
|
||||
Src/JTAG.cpp \
|
||||
Src/Graphics/Legacy3D/Error.cpp \
|
||||
Src/Pkgs/glew.cpp \
|
||||
Src/Graphics/Shader.cpp \
|
||||
Src/Model3/Real3D.cpp \
|
||||
Src/Graphics/Legacy3D/Legacy3D.cpp \
|
||||
Src/Graphics/Legacy3D/Models.cpp \
|
||||
Src/Graphics/Legacy3D/TextureRefs.cpp \
|
||||
Src/Graphics/New3D/GLSLShader.cpp \
|
||||
Src/Graphics/New3D/R3DFrameBuffers.cpp \
|
||||
Src/Graphics/New3D/New3D.cpp \
|
||||
Src/Graphics/New3D/Mat4.cpp \
|
||||
Src/Graphics/New3D/Model.cpp \
|
||||
Src/Graphics/New3D/PolyHeader.cpp \
|
||||
Src/Graphics/New3D/Texture.cpp \
|
||||
Src/Graphics/New3D/TextureSheet.cpp \
|
||||
Src/Graphics/New3D/VBO.cpp \
|
||||
Src/Graphics/New3D/Vec.cpp \
|
||||
Src/Graphics/New3D/R3DShader.cpp \
|
||||
Src/Graphics/New3D/R3DFloat.cpp \
|
||||
Src/Graphics/New3D/R3DScrollFog.cpp \
|
||||
Src/Graphics/Render2D.cpp \
|
||||
Src/Model3/TileGen.cpp \
|
||||
Src/Model3/Model3.cpp \
|
||||
Src/CPU/PowerPC/ppc.cpp \
|
||||
Src/OSD/SDL/Main.cpp \
|
||||
Src/OSD/SDL/Audio.cpp \
|
||||
Src/OSD/SDL/Thread.cpp \
|
||||
Src/Model3/SoundBoard.cpp \
|
||||
Src/Sound/SCSP.cpp \
|
||||
Src/Sound/SCSPDSP.cpp \
|
||||
Src/CPU/68K/68K.cpp \
|
||||
$(OBJ_DIR)/m68kcpu.c \
|
||||
$(OBJ_DIR)/m68kopnz.c \
|
||||
$(OBJ_DIR)/m68kopdm.c \
|
||||
$(OBJ_DIR)/m68kopac.c \
|
||||
$(OBJ_DIR)/m68kops.c \
|
||||
Src/Model3/DSB.cpp \
|
||||
Src/CPU/Z80/Z80.cpp \
|
||||
Src/Model3/IRQ.cpp \
|
||||
Src/Model3/53C810.cpp \
|
||||
Src/Model3/PCI.cpp \
|
||||
Src/Model3/RTC72421.cpp \
|
||||
Src/Model3/DriveBoard/DriveBoard.cpp \
|
||||
Src/Model3/DriveBoard/WheelBoard.cpp \
|
||||
Src/Model3/DriveBoard/JoystickBoard.cpp \
|
||||
Src/Model3/DriveBoard/SkiBoard.cpp \
|
||||
Src/Model3/DriveBoard/BillBoard.cpp \
|
||||
Src/Model3/MPC10x.cpp \
|
||||
Src/Inputs/Input.cpp \
|
||||
Src/Inputs/Inputs.cpp \
|
||||
Src/Inputs/InputSource.cpp \
|
||||
Src/Inputs/InputSystem.cpp \
|
||||
Src/Inputs/InputTypes.cpp \
|
||||
Src/Inputs/Linux_evdev.c \
|
||||
Src/Inputs/X11_xinput2.c \
|
||||
Src/Inputs/Manymouse.c \
|
||||
Src/Inputs/MultiInputSource.cpp \
|
||||
Src/OSD/SDL/SDLInputSystem.cpp \
|
||||
Src/OSD/Outputs.cpp \
|
||||
Src/Sound/MPEG/MpegAudio.cpp \
|
||||
Src/Model3/Crypto.cpp \
|
||||
Src/OSD/Logger.cpp \
|
||||
Src/Util/Format.cpp \
|
||||
Src/Util/NewConfig.cpp \
|
||||
Src/Util/ByteSwap.cpp \
|
||||
Src/Util/ConfigBuilders.cpp \
|
||||
Src/GameLoader.cpp \
|
||||
Src/Pkgs/tinyxml2.cpp \
|
||||
Src/ROMSet.cpp \
|
||||
$(PLATFORM_SRC_FILES)
|
||||
|
||||
ifeq ($(strip $(NET_BOARD)),1)
|
||||
SRC_FILES += \
|
||||
Src/Network/TCPReceive.cpp \
|
||||
Src/Network/TCPSend.cpp \
|
||||
Src/Network/NetBoard.cpp \
|
||||
Src/Network/SimNetBoard.cpp
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(ENABLE_DEBUGGER)),1)
|
||||
SRC_FILES += \
|
||||
Src/Debugger/Debugger.cpp \
|
||||
Src/Debugger/ConsoleDebugger.cpp \
|
||||
Src/Debugger/SupermodelDebugger.cpp \
|
||||
Src/Debugger/CPUDebug.cpp \
|
||||
Src/Debugger/AddressTable.cpp \
|
||||
Src/Debugger/Breakpoint.cpp \
|
||||
Src/Debugger/CodeAnalyser.cpp \
|
||||
Src/Debugger/Exception.cpp \
|
||||
Src/Debugger/Interrupt.cpp \
|
||||
Src/Debugger/DebuggerIO.cpp \
|
||||
Src/Debugger/Label.cpp \
|
||||
Src/Debugger/Register.cpp \
|
||||
Src/Debugger/Watch.cpp \
|
||||
Src/Debugger/CPU/PPCDebug.cpp \
|
||||
Src/Debugger/CPU/68KDebug.cpp \
|
||||
Src/Debugger/CPU/Musashi68KDebug.cpp \
|
||||
Src/Debugger/CPU/Z80Debug.cpp
|
||||
endif
|
||||
|
||||
#
|
||||
# Sorted-path compile order
|
||||
#
|
||||
OBJ_FILES = $(foreach file,$(SRC_FILES),$(OBJ_DIR)/$(basename $(notdir $(file))).o)
|
||||
|
||||
#
|
||||
# Deduce include directories from the source file list. The sort function
|
||||
# removes duplicates and is used to construct a set.
|
||||
#
|
||||
INCLUDE_DIRS = $(sort $(foreach file,$(SRC_FILES),$(dir $(file))))
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Targets
|
||||
###############################################################################
|
||||
|
||||
#
|
||||
# Default target: build Supermodel binary. Must be specified *before* the auto-
|
||||
# generated dependencies because otherwise, make gets confused for some reason
|
||||
# and thinks the default target is just one of the object files.
|
||||
#
|
||||
all: $(BIN_DIR)/$(OUTFILE)
|
||||
|
||||
#
|
||||
# Release targets: used only to create official builds stamped with the Git
|
||||
# version number. Double-colon rules should force ordered execution.
|
||||
# The automated build script relies on these -- don't modify their output!
|
||||
#
|
||||
.PHONY: set_version
|
||||
.PHONY: print_message
|
||||
.PHONY: version
|
||||
release:: set_version
|
||||
release:: print_message
|
||||
release:: clean
|
||||
release:: all
|
||||
set_version:
|
||||
$(eval VERSION = $(strip $(subst ',,0.3a-git-$(shell git rev-parse --short HEAD --sq))))
|
||||
$(eval SUPERMODEL_BUILD_FLAGS += -DSUPERMODEL_VERSION=\"$(VERSION)\")
|
||||
print_message:
|
||||
$(info Building Supermodel Version $(VERSION))
|
||||
version: set_version
|
||||
@echo $(VERSION)
|
||||
|
||||
$(BIN_DIR)/$(OUTFILE): $(BIN_DIR) $(OBJ_DIR) $(OBJ_FILES)
|
||||
$(info --------------------------------------------------------------------------------)
|
||||
$(info Linking Supermodel : $(BIN_DIR)/$(OUTFILE))
|
||||
$(SILENT)$(LD) $(OBJ_FILES) $(LDFLAGS)
|
||||
$(info --------------------------------------------------------------------------------)
|
||||
|
||||
$(BIN_DIR):
|
||||
$(info Creating directory : $(BIN_DIR))
|
||||
$(SILENT)mkdir $(BIN_DIR)
|
||||
|
||||
$(OBJ_DIR):
|
||||
$(info Creating directory : $(OBJ_DIR))
|
||||
$(SILENT)mkdir $(OBJ_DIR)
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Rules
|
||||
###############################################################################
|
||||
|
||||
#
|
||||
# Create list of auto-generated dependency files (which contain rules that make
|
||||
# understands) and include them all.
|
||||
#
|
||||
AUTODEPS := $(patsubst %.o,%.d,$(OBJ_FILES))
|
||||
-include $(AUTODEPS)
|
||||
|
||||
#
|
||||
# VPATH is the search path for files. This trick allows a single %.cpp rule to
|
||||
# be matched against files in sub-directories of Src/.
|
||||
#
|
||||
VPATH = $(INCLUDE_DIRS)
|
||||
|
||||
#
|
||||
# Compilation rules that both auto-generate the dependency files and compile
|
||||
# the source code. This technique is described in the reply by user "rr-" at:
|
||||
# https://stackoverflow.com/questions/8025766/makefile-auto-dependency-generation
|
||||
#
|
||||
$(OBJ_DIR)/%.o: %.cpp
|
||||
$(info Generating dependencies: $< -> $(OBJ_DIR)/$(*F).d)
|
||||
$(SILENT)$(CXX) -MM -MP -MT $(OBJ_DIR)/$(*F).o -MT $(OBJ_DIR)/$(*F).d $(CXXFLAGS) $< > $(OBJ_DIR)/$(*F).d
|
||||
$(info Compiling : $< -> $@)
|
||||
$(SILENT)$(CXX) $(CXXFLAGS) $< -o $@
|
||||
|
||||
$(OBJ_DIR)/%.o: %.c
|
||||
$(info Generating dependencies: $< -> $(OBJ_DIR)/$(*F).d)
|
||||
$(SILENT)$(CC) -MM -MP -MT $(OBJ_DIR)/$(*F).o -MT $(OBJ_DIR)/$(*F).d $(CFLAGS) $< > $(OBJ_DIR)/$(*F).d
|
||||
$(info Compiling : $< -> $@)
|
||||
$(SILENT)$(CC) $(CFLAGS) $< -o $@
|
||||
|
||||
|
||||
#
|
||||
# Musashi 68K emulator
|
||||
#
|
||||
# All generated source files are emitted to the object directory. For MSVC,
|
||||
# INLINE must be redefined as "static __inline", which is the syntax in C mode.
|
||||
#
|
||||
# The .exe suffix is absolutely required for native Windows non-MSYS builds!
|
||||
#
|
||||
|
||||
MUSASHI_OUTFILE = $(OBJ_DIR)/m68kmake.exe # do not remove the .exe suffix!
|
||||
MUSASHI_CFLAGS = -ISrc/CPU/68K/Musashi -I$(OBJ_DIR) -DINLINE="static inline" -Wno-unused-variable
|
||||
MUSASHI_LDFLAGS = -o $(MUSASHI_OUTFILE) $(OBJ_DIR)/m68kmake.o -s
|
||||
|
||||
$(MUSASHI_OUTFILE): Src/CPU/68K/Musashi/m68kmake.c Src/CPU/68K/Musashi/m68k_in.c
|
||||
$(info --------------------------------------------------------------------------------)
|
||||
$(info Compiling : $< -> $(OBJ_DIR)/m68kmake.o)
|
||||
$(SILENT)$(CC) $< $(CFLAGS) -o $(OBJ_DIR)/m68kmake.o
|
||||
$(info Linking : $(MUSASHI_OUTFILE))
|
||||
$(SILENT)$(LD) $(MUSASHI_LDFLAGS)
|
||||
|
||||
$(OBJ_DIR)/m68kops.h $(OBJ_DIR)/m68kops.c $(OBJ_DIR)/m68kopac.c $(OBJ_DIR)/m68kopdm.c $(OBJ_DIR)/m68kopnz.c: $(MUSASHI_OUTFILE) Src/CPU/68K/Musashi/m68k_in.c Src/CPU/68K/Musashi/m68k.h Src/CPU/68K/Musashi/m68kconf.h
|
||||
$(info Generating 68K emulator: $@)
|
||||
@$(MUSASHI_OUTFILE) $(OBJ_DIR) Src/CPU/68K/Musashi/m68k_in.c
|
||||
|
||||
$(OBJ_DIR)/m68kcpu.o: Src/CPU/68K/Musashi/m68kcpu.c $(OBJ_DIR)/m68kops.h Src/CPU/68K/Musashi/m68k.h Src/CPU/68K/Musashi/m68kconf.h
|
||||
$(info Compiling : $< -> $@)
|
||||
@$(CC) $< $(CFLAGS) $(MUSASHI_CFLAGS) -o $(OBJ_DIR)/m68kcpu.o
|
||||
|
||||
$(OBJ_DIR)/m68kops.o: $(OBJ_DIR)/m68kops.c $(OBJ_DIR)/m68kops.h Src/CPU/68K/Musashi/m68k.h Src/CPU/68K/Musashi/m68kconf.h $(MUSASHI_OUTFILE)
|
||||
$(info Compiling : $< -> $@)
|
||||
@$(CC) $< $(CFLAGS) $(MUSASHI_CFLAGS) -o $@
|
||||
|
||||
$(OBJ_DIR)/m68kopac.o: $(OBJ_DIR)/m68kopac.c $(OBJ_DIR)/m68kops.h Src/CPU/68K/Musashi/m68k.h Src/CPU/68K/Musashi/m68kconf.h $(MUSASHI_OUTFILE)
|
||||
$(info Compiling : $< -> $@)
|
||||
@$(CC) $< $(CFLAGS) $(MUSASHI_CFLAGS) -o $@
|
||||
|
||||
$(OBJ_DIR)/m68kopdm.o: $(OBJ_DIR)/m68kopdm.c $(OBJ_DIR)/m68kops.h Src/CPU/68K/Musashi/m68k.h Src/CPU/68K/Musashi/m68kconf.h $(MUSASHI_OUTFILE)
|
||||
$(info Compiling : $< -> $@)
|
||||
@$(CC) $< $(CFLAGS) $(MUSASHI_CFLAGS) -o $@
|
||||
|
||||
$(OBJ_DIR)/m68kopnz.o: $(OBJ_DIR)/m68kopnz.c $(OBJ_DIR)/m68kops.h Src/CPU/68K/Musashi/m68k.h Src/CPU/68K/Musashi/m68kconf.h $(MUSASHI_OUTFILE)
|
||||
$(info Compiling : $< -> $@)
|
||||
@$(CC) $< $(CFLAGS) $(MUSASHI_CFLAGS) -o $@
|
||||
@@ -0,0 +1,2 @@
|
||||
# Super3
|
||||
Sega Model 3 emulator for android based on the supermodel emulator
|
||||