trzy / Supermodel

Official repository of the Sega Model 3 arcade emulator.
https://supermodel3.com
262 stars 37 forks source link

Lag in Emergency Call Ambulance #128

Closed jaoxford closed 7 months ago

jaoxford commented 9 months ago

We're having an issue in Emergency Call Ambulance. About halfway in the 3rd level (nighttime fire), there are massive frame drops.

Any idea what's causing it / how to fix?

Thanks!

dukeeeey commented 9 months ago

what's your emulated CPU clock speed? The default 50 is too low for the game

jaoxford commented 9 months ago

How can I find that out?

jaoxford commented 9 months ago

Is it this: PowerPCFrequency

And what should I set this to using the command line options?

e.g. -ppc-frequency=50?

trzy commented 9 months ago

The actual game uses 166 but probably anything over 80 is fine.Sent from my iPhoneOn Dec 30, 2023, at 7:45 AM, Jacob Oxford @.***> wrote: Is it this: PowerPCFrequency And what should I set this to using the command line options? e.g. -ppc-frequency=50?

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

jaoxford commented 9 months ago

I've tried to do this via the supermodel.ini file. Nothing works there for game specific settings:

My ini file:

;;
;; 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 = true
QuadRendering = true
WideScreen = true
Stretch = false
XResolution = 3840
YResolution = 2160
WideBackground = true
ShowFrameRate = true

; 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"

; Common
InputStart1 = "KEY_1,JOY1_BUTTON19"
InputStart2 = "KEY_2,JOY2_BUTTON9"
InputCoin1 = "KEY_3,JOY1_BUTTON17"
InputCoin2 = "KEY_4,JOY2_BUTTON10"
InputServiceA = "KEY_F1"
InputServiceB = "KEY_F2"
InputTestA = "KEY_F3"
InputTestB = "KEY_F4"

; 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 = "JOY1_BUTTON11"           ; sequential shift up
InputGearShiftDown = "JOY1_BUTTON12"         ; sequential shift down

; 4-Speed manual transmission (Daytona 2, Sega Rally 2, Scud Race)
InputGearShift1 = "KEY_Q,JOY1_BUTTON9"
InputGearShift2 = "KEY_W,JOY1_BUTTON10"
InputGearShift3 = "KEY_E,JOY1_BUTTON11"
InputGearShift4 = "KEY_R,JOY1_BUTTON12"
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,MOUSE_XAXIS"   ; analog, full X axis
InputAnalogJoyY = "JOY_YAXIS,MOUSE_YAXIS"   ; analog, full Y axis
InputAnalogJoyTrigger = "KEY_A,JOY_BUTTON1,MOUSE_LEFT_BUTTON"
InputAnalogJoyEvent = "KEY_S,JOY_BUTTON2,MOUSE_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 = "MOUSE_XAXIS,JOY1_XAXIS"    ; analog, full X axis
InputGunY = "MOUSE_YAXIS,JOY1_YAXIS"    ; analog, full Y axis
InputTrigger = "KEY_A,JOY1_BUTTON1,MOUSE_LEFT_BUTTON"
InputOffscreen = "KEY_S,JOY1_BUTTON2,MOUSE_RIGHT_BUTTON"    ; point off-screen
InputAutoTrigger = 0                    ; automatic reload when off-screen
InputGunLeft2 = "NONE"
InputGunRight2 = "NONE"
InputGunUp2 = "NONE"
InputGunDown2 = "NONE"
InputGunX2 = "JOY2_XAXIS"
InputGunY2 = "JOY2_YAXIS"
InputTrigger2 = "JOY2_BUTTON1"
InputOffscreen2 = "JOY2_BUTTON2"
InputAutoTrigger2 = 0

; 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 = "MOUSE_XAXIS,JOY1_XAXIS"    ; analog, full X axis
InputAnalogGunY = "MOUSE_YAXIS,JOY1_YAXIS"    ; analog, full Y axis
InputAnalogTriggerLeft = "KEY_A,JOY1_BUTTON1,MOUSE_LEFT_BUTTON"
InputAnalogTriggerRight = "KEY_S,JOY1_BUTTON2,MOUSE_RIGHT_BUTTON"
InputAnalogGunLeft2 = "NONE"
InputAnalogGunRight2 = "NONE"
InputAnalogGunUp2 = "NONE"
InputAnalogGunDown2 = "NONE"
InputAnalogGunX2 = "NONE"
InputAnalogGunY2 = "NONE"
InputAnalogTriggerLeft2 = "NONE"
InputAnalogTriggerRight2 = "NONE"

; 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"

[ eca ]

PowerPCFrequency = 160

[ daytona2 ]

PowerPCFrequency = 25

[ scud ]

InputJoy1XSaturation = 200
SoundVolume = 50
MusicVolume = 200
jaoxford commented 9 months ago

And for good measure here's my supermodel.log file:

[Info]  Supermodel Version 0.3a-git-75260f9
[Info]  Started as:
[Info]    argv[0] = C:\Users\jacob\Games\Sega Arcade\Model3\Supermodel_0.3a-git-75260f9_Win64\Supermodel.exe
[Info]    argv[1] = -outputs=win
[Info]    argv[2] = C:\Users\jacob\Games\Sega Arcade\Model3\ROMs\eca.zip
[Info]  Opened C:\Users\jacob\Games\Sega Arcade\Model3\ROMs\eca.zip.
[Info]  ecau:
[Info]    banked_crom: stride=8, chunk size=2, byte layout=10325476
[Info]      mpr-22873.4, crc32=0xdd406330, offset=0x00000000
[Info]      mpr-22872.3, crc32=0x4fde63a1, offset=0x00000002
[Info]      mpr-22871.2, crc32=0xcf5bb5b5, offset=0x00000004
[Info]      mpr-22870.1, crc32=0x52054043, offset=0x00000006
[Info]      mpr-22877.8, crc32=0xe53b8764, offset=0x01000000
[Info]      mpr-22876.7, crc32=0xa7561249, offset=0x01000002
[Info]      mpr-22875.6, crc32=0x1bb5c018, offset=0x01000004
[Info]      mpr-22874.5, crc32=0x5e990497, offset=0x01000006
[Info]      epr-22885.16, crc32=0x3525b46d, offset=0x03000000
[Info]      epr-22884.15, crc32=0x254c3b63, offset=0x03000002
[Info]      epr-22883.14, crc32=0x86d90148, offset=0x03000004
[Info]      epr-22882.13, crc32=0xb161416f, offset=0x03000006
[Info]    crom: stride=8, chunk size=2, byte layout=10325476
[Info]      epr-22898.20, crc32=0xefb96701, offset=0x00000000
[Info]      epr-22905.19, crc32=0x9755dd8c, offset=0x00000002
[Info]      epr-22904.18, crc32=0x0ff828a8, offset=0x00000004
[Info]      epr-22895.17, crc32=0x07df16a0, offset=0x00000006
[Info]    driveboard_program: stride=1, chunk size=1, byte layout=
[Info]      epr-19338a.bin, crc32=0xc9fac464, offset=0x00000000
[Info]    sound_program: stride=2, chunk size=2, byte layout=10
[Info]      epr-22886.21, crc32=0x374ec1c6, offset=0x00000000
[Info]    sound_samples: stride=2, chunk size=2, byte layout=10
[Info]      mpr-22887.22, crc32=0x7d04a867, offset=0x00000000
[Info]      mpr-22889.24, crc32=0x4f9ba45d, offset=0x00400000
[Info]      mpr-22888.23, crc32=0x018fcf22, offset=0x00800000
[Info]      mpr-22890.25, crc32=0xb638bd7c, offset=0x00c00000
[Info]    vrom: stride=32, chunk size=2, byte layout=
[Info]      mpr-22854.26, crc32=0x97a23d16, offset=0x00000000
[Info]      mpr-22855.27, crc32=0x7249cdc9, offset=0x00000002
[Info]      mpr-22856.28, crc32=0x9c0d1d1b, offset=0x00000004
[Info]      mpr-22857.29, crc32=0x44e6ce2b, offset=0x00000006
[Info]      mpr-22858.30, crc32=0x0af40aae, offset=0x00000008
[Info]      mpr-22859.31, crc32=0xc64f0158, offset=0x0000000a
[Info]      mpr-22860.32, crc32=0x053af14b, offset=0x0000000c
[Info]      mpr-22861.33, crc32=0xd26343da, offset=0x0000000e
[Info]      mpr-22862.34, crc32=0x38347c14, offset=0x00000010
[Info]      mpr-22863.35, crc32=0x28b558e6, offset=0x00000012
[Info]      mpr-22864.36, crc32=0x31ed02f6, offset=0x00000014
[Info]      mpr-22865.37, crc32=0x3e3a211a, offset=0x00000016
[Info]      mpr-22866.38, crc32=0xa863a3c8, offset=0x00000018
[Info]      mpr-22867.39, crc32=0x1ce6c7b2, offset=0x0000001a
[Info]      mpr-22868.40, crc32=0x2db40cf8, offset=0x0000001c
[Info]      mpr-22869.41, crc32=0xc6d62634, offset=0x0000001e
[Info]  Runtime configuration:
[Info]    GameXMLFile=Config/Games.xml
[Info]    InitStateFile=
[Info]    MultiThreaded=1
[Info]    GPUMultiThreaded=1
[Info]    PowerPCFrequency=50
[Info]    MultiTexture=0
[Info]    VertexShader=
[Info]    FragmentShader=
[Info]    VertexShaderFog=
[Info]    FragmentShaderFog=
[Info]    VertexShader2D=
[Info]    FragmentShader2D=
[Info]    EmulateSound=1
[Info]    Balance=0.0
[Info]    BalanceLeftRight=0.0
[Info]    BalanceFrontRear=0.0
[Info]    NbSoundChannels=4
[Info]    SoundFreq=57.6
[Info]    EmulateDSB=1
[Info]    SoundVolume=100
[Info]    MusicVolume=100
[Info]    LegacySoundDSP=false
[Info]    ForceFeedback=0
[Info]    New3DEngine=true
[Info]    QuadRendering=true
[Info]    XResolution=3840
[Info]    YResolution=2160
[Info]    WindowXPosition=<empty>
[Info]    WindowYPosition=<empty>
[Info]    FullScreen=0
[Info]    BorderlessWindow=0
[Info]    Supersampling=1
[Info]    WideScreen=true
[Info]    Stretch=false
[Info]    WideBackground=true
[Info]    VSync=1
[Info]    Throttle=1
[Info]    RefreshRate=60.000
[Info]    ShowFrameRate=true
[Info]    Crosshairs=0
[Info]    CrosshairStyle=vector
[Info]    FlipStereo=0
[Info]    InputSystem=dinput
[Info]    DirectInputConstForceLeftMax=100
[Info]    DirectInputConstForceRightMax=100
[Info]    DirectInputSelfCenterMax=100
[Info]    DirectInputFrictionMax=100
[Info]    DirectInputVibrateMax=100
[Info]    XInputConstForceThreshold=30
[Info]    XInputConstForceMax=100
[Info]    XInputVibrateMax=100
[Info]    XInputStereoVibration=1
[Info]    SDLConstForceMax=100
[Info]    SDLSelfCenterMax=100
[Info]    SDLFrictionMax=100
[Info]    SDLVibrateMax=100
[Info]    SDLConstForceThreshold=30
[Info]    Network=false
[Info]    SimulateNet=true
[Info]    PortIn=1970
[Info]    PortOut=1971
[Info]    AddressOut=127.0.0.1
[Info]    Outputs=win
[Info]    DumpTextures=0
[Info]    InputStart1=KEY_1,JOY1_BUTTON19
[Info]    InputStart2=KEY_2,JOY2_BUTTON9
[Info]    InputCoin1=KEY_3,JOY1_BUTTON17
[Info]    InputCoin2=KEY_4,JOY2_BUTTON10
[Info]    InputServiceA=KEY_F1
[Info]    InputServiceB=KEY_F2
[Info]    InputTestA=KEY_F3
[Info]    InputTestB=KEY_F4
[Info]    InputJoyUp=KEY_UP,JOY1_UP
[Info]    InputJoyDown=KEY_DOWN,JOY1_DOWN
[Info]    InputJoyLeft=KEY_LEFT,JOY1_LEFT
[Info]    InputJoyRight=KEY_RIGHT,JOY1_RIGHT
[Info]    InputJoyUp2=JOY2_UP
[Info]    InputJoyDown2=JOY2_DOWN
[Info]    InputJoyLeft2=JOY2_LEFT
[Info]    InputJoyRight2=JOY2_RIGHT
[Info]    InputPunch=KEY_A,JOY1_BUTTON1
[Info]    InputKick=KEY_S,JOY1_BUTTON2
[Info]    InputGuard=KEY_D,JOY1_BUTTON3
[Info]    InputEscape=KEY_F,JOY1_BUTTON4
[Info]    InputPunch2=JOY2_BUTTON1
[Info]    InputKick2=JOY2_BUTTON2
[Info]    InputGuard2=JOY2_BUTTON3
[Info]    InputEscape2=JOY2_BUTTON4
[Info]    InputShift=KEY_A,JOY1_BUTTON1
[Info]    InputBeat=KEY_S,JOY1_BUTTON2
[Info]    InputCharge=KEY_D,JOY1_BUTTON3
[Info]    InputJump=KEY_F,JOY1_BUTTON4
[Info]    InputShortPass=KEY_A,JOY1_BUTTON1
[Info]    InputLongPass=KEY_S,JOY1_BUTTON2
[Info]    InputShoot=KEY_D,JOY1_BUTTON3
[Info]    InputShortPass2=JOY2_BUTTON1
[Info]    InputLongPass2=JOY2_BUTTON2
[Info]    InputShoot2=JOY2_BUTTON3
[Info]    InputSteeringLeft=KEY_LEFT
[Info]    InputSteeringRight=KEY_RIGHT
[Info]    InputSteering=JOY1_XAXIS
[Info]    InputAccelerator=KEY_UP,JOY1_UP
[Info]    InputBrake=KEY_DOWN,JOY1_DOWN
[Info]    InputGearShiftUp=JOY1_BUTTON11
[Info]    InputGearShiftDown=JOY1_BUTTON12
[Info]    InputGearShift1=KEY_Q,JOY1_BUTTON9
[Info]    InputGearShift2=KEY_W,JOY1_BUTTON10
[Info]    InputGearShift3=KEY_E,JOY1_BUTTON11
[Info]    InputGearShift4=KEY_R,JOY1_BUTTON12
[Info]    InputGearShiftN=KEY_T
[Info]    InputVR1=KEY_A,JOY1_BUTTON1
[Info]    InputVR2=KEY_S,JOY1_BUTTON2
[Info]    InputVR3=KEY_D,JOY1_BUTTON3
[Info]    InputVR4=KEY_F,JOY1_BUTTON4
[Info]    InputViewChange=KEY_A,JOY1_BUTTON1
[Info]    InputHandBrake=KEY_S,JOY1_BUTTON2
[Info]    InputRearBrake=KEY_S,JOY1_BUTTON2
[Info]    InputMusicSelect=KEY_D,JOY1_BUTTON3
[Info]    InputTwinJoyTurnLeft=KEY_Q,JOY1_RXAXIS_NEG
[Info]    InputTwinJoyTurnRight=KEY_W,JOY1_RXAXIS_POS
[Info]    InputTwinJoyForward=KEY_UP,JOY1_YAXIS_NEG
[Info]    InputTwinJoyReverse=KEY_DOWN,JOY1_YAXIS_POS
[Info]    InputTwinJoyStrafeLeft=KEY_LEFT,JOY1_XAXIS_NEG
[Info]    InputTwinJoyStrafeRight=KEY_RIGHT,JOY1_XAXIS_POS
[Info]    InputTwinJoyJump=KEY_E,JOY1_BUTTON1
[Info]    InputTwinJoyCrouch=KEY_R,JOY1_BUTTON2
[Info]    InputTwinJoyLeft1=NONE
[Info]    InputTwinJoyLeft2=NONE
[Info]    InputTwinJoyRight1=NONE
[Info]    InputTwinJoyRight2=NONE
[Info]    InputTwinJoyUp1=NONE
[Info]    InputTwinJoyUp2=NONE
[Info]    InputTwinJoyDown1=NONE
[Info]    InputTwinJoyDown2=NONE
[Info]    InputTwinJoyShot1=KEY_A,JOY1_BUTTON5
[Info]    InputTwinJoyShot2=KEY_S,JOY1_BUTTON6
[Info]    InputTwinJoyTurbo1=KEY_Z,JOY1_BUTTON7
[Info]    InputTwinJoyTurbo2=KEY_X,JOY1_BUTTON8
[Info]    InputAnalogJoyLeft=KEY_LEFT
[Info]    InputAnalogJoyRight=KEY_RIGHT
[Info]    InputAnalogJoyUp=KEY_UP
[Info]    InputAnalogJoyDown=KEY_DOWN
[Info]    InputAnalogJoyX=JOY_XAXIS,MOUSE_XAXIS
[Info]    InputAnalogJoyY=JOY_YAXIS,MOUSE_YAXIS
[Info]    InputAnalogJoyTrigger=KEY_A,JOY_BUTTON1,MOUSE_LEFT_BUTTON
[Info]    InputAnalogJoyEvent=KEY_S,JOY_BUTTON2,MOUSE_RIGHT_BUTTON
[Info]    InputAnalogJoyTrigger2=KEY_D,JOY_BUTTON2
[Info]    InputAnalogJoyEvent2=NONE
[Info]    InputGunLeft=KEY_LEFT
[Info]    InputGunRight=KEY_RIGHT
[Info]    InputGunUp=KEY_UP
[Info]    InputGunDown=KEY_DOWN
[Info]    InputGunX=MOUSE_XAXIS,JOY1_XAXIS
[Info]    InputGunY=MOUSE_YAXIS,JOY1_YAXIS
[Info]    InputTrigger=KEY_A,JOY1_BUTTON1,MOUSE_LEFT_BUTTON
[Info]    InputOffscreen=KEY_S,JOY1_BUTTON2,MOUSE_RIGHT_BUTTON
[Info]    InputAutoTrigger=0
[Info]    InputGunLeft2=NONE
[Info]    InputGunRight2=NONE
[Info]    InputGunUp2=NONE
[Info]    InputGunDown2=NONE
[Info]    InputGunX2=JOY2_XAXIS
[Info]    InputGunY2=JOY2_YAXIS
[Info]    InputTrigger2=JOY2_BUTTON1
[Info]    InputOffscreen2=JOY2_BUTTON2
[Info]    InputAutoTrigger2=0
[Info]    InputAnalogGunLeft=KEY_LEFT
[Info]    InputAnalogGunRight=KEY_RIGHT
[Info]    InputAnalogGunUp=KEY_UP
[Info]    InputAnalogGunDown=KEY_DOWN
[Info]    InputAnalogGunX=MOUSE_XAXIS,JOY1_XAXIS
[Info]    InputAnalogGunY=MOUSE_YAXIS,JOY1_YAXIS
[Info]    InputAnalogTriggerLeft=KEY_A,JOY1_BUTTON1,MOUSE_LEFT_BUTTON
[Info]    InputAnalogTriggerRight=KEY_S,JOY1_BUTTON2,MOUSE_RIGHT_BUTTON
[Info]    InputAnalogGunLeft2=NONE
[Info]    InputAnalogGunRight2=NONE
[Info]    InputAnalogGunUp2=NONE
[Info]    InputAnalogGunDown2=NONE
[Info]    InputAnalogGunX2=NONE
[Info]    InputAnalogGunY2=NONE
[Info]    InputAnalogTriggerLeft2=NONE
[Info]    InputAnalogTriggerRight2=NONE
[Info]    InputSkiLeft=KEY_LEFT
[Info]    InputSkiRight=KEY_RIGHT
[Info]    InputSkiUp=KEY_UP
[Info]    InputSkiDown=KEY_DOWN
[Info]    InputSkiX=JOY1_XAXIS
[Info]    InputSkiY=JOY1_YAXIS
[Info]    InputSkiPollLeft=KEY_A,JOY1_BUTTON1
[Info]    InputSkiPollRight=KEY_S,JOY1_BUTTON2
[Info]    InputSkiSelect1=KEY_Q,JOY1_BUTTON3
[Info]    InputSkiSelect2=KEY_W,JOY1_BUTTON4
[Info]    InputSkiSelect3=KEY_E,JOY1_BUTTON5
[Info]    InputMagicalLeverUp1=KEY_UP
[Info]    InputMagicalLeverDown1=KEY_DOWN
[Info]    InputMagicalLeverUp2=NONE
[Info]    InputMagicalLeverDown2=NONE
[Info]    InputMagicalLever1=JOY1_YAXIS
[Info]    InputMagicalLever2=JOY2_YAXIS
[Info]    InputMagicalPedal1=KEY_A,JOY1_BUTTON1
[Info]    InputMagicalPedal2=KEY_S,JOY2_BUTTON1
[Info]    InputFishingRodLeft=KEY_LEFT
[Info]    InputFishingRodRight=KEY_RIGHT
[Info]    InputFishingRodUp=KEY_UP
[Info]    InputFishingRodDown=KEY_DOWN
[Info]    InputFishingStickLeft=KEY_A
[Info]    InputFishingStickRight=KEY_D
[Info]    InputFishingStickUp=KEY_W
[Info]    InputFishingStickDown=KEY_S
[Info]    InputFishingRodX=JOY1_XAXIS
[Info]    InputFishingRodY=JOY1_YAXIS
[Info]    InputFishingStickX=JOY1_RXAXIS
[Info]    InputFishingStickY=JOY1_RYAXIS
[Info]    InputFishingReel=KEY_SPACE,JOY1_ZAXIS_POS
[Info]    InputFishingCast=KEY_Z,JOY1_BUTTON1
[Info]    InputFishingSelect=KEY_X,JOY1_BUTTON2
[Info]    InputFishingTension=KEY_T,JOY1_ZAXIS_NEG
[Info]    LogOutput=Supermodel.log
[Info]    LogLevel=info
[Info]  
[Info]  OpenGL information:
[Info]    Vendor                   : NVIDIA Corporation
[Info]    Renderer                 : NVIDIA GeForce RTX 2060/PCIe/SSE2
[Info]    Version                  : 4.5.0 NVIDIA 537.42
[Info]    Shading Language Version : 4.50 NVIDIA
[Info]    Maximum Vertex Array Size: 1048576 vertices
[Info]    Maximum Texture Size     : 32768 texels
[Info]    Maximum Vertex Attributes: 16
[Info]    Maximum Vertex Uniforms  : 4096
[Info]    Maximum Texture Img Units: 32
[Info]  
[Info]  Program terminated normally.
trzy commented 9 months ago

This is correct. Maybe you’re editing the wrong Supermodel.ini and Supermodel is picking up a different one? Also, be careful with your game name. Check Supermodel.log and verify that the ROM set you have loaded is ‘eca’ and not some variant.

On Dec 30, 2023, at 12:28 PM, Jacob Oxford @.***> wrote:

I've tried to do this via the supermodel.ini file. Nothing works there for game specific settings:

My ini file:

;; ;; 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 = true QuadRendering = true WideScreen = true Stretch = false XResolution = 3840 YResolution = 2160 WideBackground = true ShowFrameRate = true

; 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"

; Common InputStart1 = "KEY_1,JOY1_BUTTON19" InputStart2 = "KEY_2,JOY2_BUTTON9" InputCoin1 = "KEY_3,JOY1_BUTTON17" InputCoin2 = "KEY_4,JOY2_BUTTON10" InputServiceA = "KEY_F1" InputServiceB = "KEY_F2" InputTestA = "KEY_F3" InputTestB = "KEY_F4"

; 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 = "JOY1_BUTTON11" ; sequential shift up InputGearShiftDown = "JOY1_BUTTON12" ; sequential shift down

; 4-Speed manual transmission (Daytona 2, Sega Rally 2, Scud Race) InputGearShift1 = "KEY_Q,JOY1_BUTTON9" InputGearShift2 = "KEY_W,JOY1_BUTTON10" InputGearShift3 = "KEY_E,JOY1_BUTTON11" InputGearShift4 = "KEY_R,JOY1_BUTTON12" 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,MOUSE_XAXIS" ; analog, full X axis InputAnalogJoyY = "JOY_YAXIS,MOUSE_YAXIS" ; analog, full Y axis InputAnalogJoyTrigger = "KEY_A,JOY_BUTTON1,MOUSE_LEFT_BUTTON" InputAnalogJoyEvent = "KEY_S,JOY_BUTTON2,MOUSE_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 = "MOUSE_XAXIS,JOY1_XAXIS" ; analog, full X axis InputGunY = "MOUSE_YAXIS,JOY1_YAXIS" ; analog, full Y axis InputTrigger = "KEY_A,JOY1_BUTTON1,MOUSE_LEFT_BUTTON" InputOffscreen = "KEY_S,JOY1_BUTTON2,MOUSE_RIGHT_BUTTON" ; point off-screen InputAutoTrigger = 0 ; automatic reload when off-screen InputGunLeft2 = "NONE" InputGunRight2 = "NONE" InputGunUp2 = "NONE" InputGunDown2 = "NONE" InputGunX2 = "JOY2_XAXIS" InputGunY2 = "JOY2_YAXIS" InputTrigger2 = "JOY2_BUTTON1" InputOffscreen2 = "JOY2_BUTTON2" InputAutoTrigger2 = 0

; 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 = "MOUSE_XAXIS,JOY1_XAXIS" ; analog, full X axis InputAnalogGunY = "MOUSE_YAXIS,JOY1_YAXIS" ; analog, full Y axis InputAnalogTriggerLeft = "KEY_A,JOY1_BUTTON1,MOUSE_LEFT_BUTTON" InputAnalogTriggerRight = "KEY_S,JOY1_BUTTON2,MOUSE_RIGHT_BUTTON" InputAnalogGunLeft2 = "NONE" InputAnalogGunRight2 = "NONE" InputAnalogGunUp2 = "NONE" InputAnalogGunDown2 = "NONE" InputAnalogGunX2 = "NONE" InputAnalogGunY2 = "NONE" InputAnalogTriggerLeft2 = "NONE" InputAnalogTriggerRight2 = "NONE"

; 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"

[ eca ]

PowerPCFrequency = 160

[ daytona2 ]

PowerPCFrequency = 25

[ scud ]

InputJoy1XSaturation = 200 SoundVolume = 50 MusicVolume = 200 — Reply to this email directly, view it on GitHub https://github.com/trzy/Supermodel/issues/128#issuecomment-1872599973, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJZ3RMGMVH76N7MCV2UHUDYMB2NFAVCNFSM6AAAAABBHSUXTGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZSGU4TSOJXGM. You are receiving this because you commented.

jaoxford commented 9 months ago

Aha. I've just noticed this in the log file:

[Info]  Opened C:\Users\jacob\Games\Sega Arcade\Model3\ROMs\eca.zip.
[Info]  ecau:

So I added this to my config file:

[ ecau ]

PowerPCFrequency = 160

And now the correct thing is showing up in the logs.

jaoxford commented 9 months ago

I think you can see where I'm going with this now.... Even though I'm using the ROM eca.zip, why is this coming up as ecau?

A bug, something to do with the romset, something else?

trzy commented 9 months ago

Cool! Maybe we should add the ability to specify sections by game name and do a fuzzy match or something. But in the meantime, remember that you can also specify multiply ROM sets for a single section, e.g.:

[ eca, ecau ]

You could open up Games.xml and take a look at all the variants that exist for your ROM and cover them all with a single game-specific section this way.

On Dec 30, 2023, at 12:34 PM, Jacob Oxford @.***> wrote:

Aha. I've just noticed this in the log file:

[Info] Opened C:\Users\jacob\Games\Sega Arcade\Model3\ROMs\eca.zip. [Info] ecau: So I added this to my config file:

[ ecau ]

PowerPCFrequency = 160 And now the correct thing is showing up in the logs.

— Reply to this email directly, view it on GitHub https://github.com/trzy/Supermodel/issues/128#issuecomment-1872601299, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJZ3RLQ57WVNRW4TWVJNZ3YMB3G5AVCNFSM6AAAAABBHSUXTGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZSGYYDCMRZHE. You are receiving this because you commented.

jaoxford commented 9 months ago

Just did a run through Emergency call, PowerPCFrequency was set to 166, definitely ran much better. There was a bit of lag towards the end of the 3rd level but I'm not sure if that's an emulation issue or what else now? I need to try it on the real machine 😆

Thanks for your help.

trzy commented 9 months ago

Try to save that level and then load using the legacy engine. If it’s the level with lots of fire, it could be related to transparency. Also regarding the ROM naming, it’s not a bug. We generally follow the MAME naming convention and I think many ROMs in the wild are misnamed. We load by CRC and ignore the filenames.Sent from my iPhoneOn Dec 30, 2023, at 12:53 PM, Jacob Oxford @.***> wrote: Just did a run through Emergency call, PowerPCFrequency was set to 166, definitely ran much better. There was a bit of lag towards the end of the 3rd level but I'm not sure if that's an emulation issue or what else now? I need to try it on the real machine 😆 Thanks for your help.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

jaoxford commented 9 months ago

Thank you so much for your help. This is great stuff for me to get on with!

jaoxford commented 9 months ago

I've now tested the 3rd level (the one with the fire) using the -legacy3d option. Performance is much better there / almost perfect, but the visuals are much worse as I expected.

Using the new 3d engine with my PPC at 166. I notice a lot of lag during these moments:

image

image

image

image

So I think you're right, it's something to do with the flames / transparency.

dukeeeey commented 9 months ago

You need a very fast cpu for 166mhz emulation. Try maybe 100mhz. Also what gpu do you have?

jaoxford commented 9 months ago

I'll give 100mhz a go.

My specs: AMD Ryzen 5 3600X RTX 2060 6GB 32GB RAM

jaoxford commented 9 months ago

I've tried again with ppc ranging from 60-166 in increments of 10. I would say that none of them have completely fixed the performance where it's on par with the legacy3d engine. It's definitely an improvement over where I started though!

I'm still getting big dips down to anywhere between 35-50fps with a fair bit of input lag. I'm not really sure what else I can do to fix the performance?

dukeeeey commented 9 months ago

RTX 2060 6GB

That card should be MORE than fast enough. Are you sure you aren't using integrated gfx lol. What resolution are you using? Are you using super sampling?

jaoxford commented 9 months ago

I'm pretty sure I don't even have integrated graphics on my CPU lmao. 😆

I'm running in 4k (3140 x 2160). I'm not using any supersampling.

jaoxford commented 9 months ago

Running in 1080P & 1440P removes all lag for me though! So must be a 4k / GPU issue.

dukeeeey commented 9 months ago

You can try using the triangle renderer, it's a lot cheaper on the GPU

jaoxford commented 9 months ago

How can I do that? 😨

dukeeeey commented 9 months ago

just don't enable -quad-rendering

jaoxford commented 9 months ago

Setting QuadRendering = false and running in 4k the difference in performance is negligible. My frames still tank when there are flames.

So far the best solution for me has been to downgrade my resolution to 1440p, whilst keeping Quadrendering to true, and the PowerPCFrequency at 166. That gives me the best performance and visuals.

crashGG commented 9 months ago

Setting QuadRendering = false and running in 4k the difference in performance is negligible. My frames still tank when there are flames.

So far the best solution for me has been to downgrade my resolution to 1440p, whilst keeping Quadrendering to true, and the PowerPCFrequency at 166. That gives me the best performance and visuals.

Have you ever recorded cpu and gpu usage when lag occurs? Maybe you can try this build, https://www.supermodel3.com/Files/Git_Snapshots/Supermodel_0.3a-git-4c727ab_Win64.zip after this version , the new 3d engine updates the api to opengl 4+ .From then on, the nightmare of lags began...

jaoxford commented 9 months ago

Have you ever recorded cpu and gpu usage when lag occurs? Maybe you can try this build, https://www.supermodel3.com/Files/Git_Snapshots/Supermodel_0.3a-git-4c727ab_Win64.zip after this version , the new 3d engine updates the api to opengl 4+ .From then on, the nightmare of lags began...

No I've not tried to record CPU / GPU. Any recommendations / suggestions on how to do so?

I've tried to use the legacy-3d engine on the latest build which solved the lag issue, but the visuals were poor.