Skip to content

Commit

Permalink
conviction: increase fps limit in coop mode
Browse files Browse the repository at this point in the history
  • Loading branch information
ThirteenAG committed Jul 28, 2024
1 parent 2bac8a6 commit 263c6bf
Show file tree
Hide file tree
Showing 5 changed files with 295 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .github/docs/scb.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

![](https://habrastorage.org/webt/d_/eg/ym/d_egymd6w_tem2erocab-e9ikna.png) Added an option to enable [Logitech G LIGHTSYNC RGB Lighting](https://www.logitechg.com/innovation/lightsync-rgb.html)

![](https://habrastorage.org/webt/d_/eg/ym/d_egymd6w_tem2erocab-e9ikna.png) Difficulty tweaks: **Mark and Execute**, sonar(with decreased range) and drop crates enabled on **Perfectionist**, unlimited ammo disabled on **Rookie**. To go back to original behavior, delete `update/difficultyconfiguration.ini`
![](https://habrastorage.org/webt/d_/eg/ym/d_egymd6w_tem2erocab-e9ikna.png) Difficulty tweaks: **Mark and Execute**, sonar and drop crates enabled on **Perfectionist**, unlimited ammo disabled on **Rookie**. To go back to original behavior, delete `update/difficultyconfiguration.ini` and set `DisablePerfectionistChecks` to 0.

![](https://habrastorage.org/webt/d_/eg/ym/d_egymd6w_tem2erocab-e9ikna.png) Added an option to be able to run during forced walking sections

Expand Down
2 changes: 2 additions & 0 deletions .github/docs/scc.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@

![](https://habrastorage.org/webt/d_/eg/ym/d_egymd6w_tem2erocab-e9ikna.png) Added Splinter Cell Blacklist control scheme (not fully tested, report issues via github)

![](https://habrastorage.org/webt/d_/eg/ym/d_egymd6w_tem2erocab-e9ikna.png) FPS limit in coop is changed to 60: possible to set custom with `update/convictionsettings.ini`, `SyncMaxStepFrequency` parameter

![controls](https://github.com/user-attachments/assets/2498a891-2991-4604-b0dc-b5d309a0c02d)

https://user-images.githubusercontent.com/4904157/192846910-6ddfb3fb-3089-4553-ba94-b8d031855fc7.mp4
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ FOVFactor = 1.0 // [0.5, 2.5]
ScreenCullBias = 0.0 // 0.0 achieves the best draw distance, game default value is 1.0, but it makes distant objects disappear
ShadowCullDist = 100.0 // 100.0 for increased draw distance of shadows, game default value is 90.0
DisableNightVisionFlash = 1 // Disables the white flash when activating night vision
DisablePerfectionistChecks = 1 // M&E UI, radar

[UNLOCKS]
UnlockDLC = 1 // Unlocks all DLC content that is not possible to obtain after server shutdown
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,289 @@
// Line with this "//" are comments. They are not used by the game
// Something like this [Toto] is called a section. All variables of a section must be grouped together. No empty line
// can separate a section's variables. If a variable is not specified, it will be 0.
[Engine.GameInfo]
VisFullyThreshold=120.000000
VisMostlyThreshold=80.000000
VisPartiallyThreshold=45.000000
VisBarelyThreshold=10.000000
VisSpeedGain=10.000000
VisCrouchMul=0.90000
NoBlood=False
bNoRDReact=False
//m_GameMode=EGameMode_Hunter
NewPhysWalkingPlayer=true
NewPhysWalkingNPC=true
MaxStepHeight_Single=32.0
UsePhysNavMesh=true
[Echelon.EPlayerController]
m_speedSmallStep=55
m_speedFadeSmallStepToWalk=0.25
m_speedWalk=105
m_speedRun=400
m_speedSmallStepCr=30
m_speedWalkCr=50
m_speedRunCr=220
m_speedActionWalk=1505
m_speedActionRun=500
m_speedActionWalkCr=100
m_speedActionRunCr=350
m_speedWalkFP=120.0
m_speedWalkFPCr=75.0
m_speedWalkSniping=100.0
m_speedFence=70.0
m_speedGrab=80.0
m_speedGrabFP=60.0
m_speedCarry=130.0
m_turnMul=0.5
m_towardAngle=0.707
m_ThrowMinSpeed=(X=300,Y=0,Z=100)
m_ThrowMidSpeed=(X=750,Y=0,Z=150)
m_ThrowMaxSpeed=(X=2000,Y=0,Z=250)
m_ThrowVarSpeed=1000.0
m_UseNewThrow=True
CanBeGameOver=false
m_CTE_MaxDistToLookAt=1000 //Maximum distance in cm where Sam can look at a NPC
[Echelon.EPlayerPawn]
m_TimeToWalkingRepulsion=0.2 // Time required to walk into a civilian before (s)he will be repulsed
m_TimeToStableGroupRepulsion=0.7 // Time required to walk into a civilian in a stable group before repulsion
m_fCombatBICMinDistanceFromNPCs=1000.0f // Minimum distance from any NPC to allow BIC during combat
m_fDelayAnnoyedSpamAnim=2.0f
m_fSwatTurnMaxDistanceCheck=600.0f
m_fB2WTestDistance=110.0f
m_fTakeCoverAngle=55.0f
m_fTakeCoverPeekAngle=10.0f
m_bCheckFor180CornerTurn=false
m_fCheckForStickyOffset=36.0f
m_fPeekScanOffset=20.0f
m_fNextCoverToCamDirMaxAngle=12.5f
m_fCantPeekShootMinAngle=27.0f
m_fCantPeekShootMaxAngle=62.0f
m_fCantCoverShootAngle=35.0f
m_fNightVisionBlendInTime=0.5f // Night vision blend in time (seconds)
m_fNightVisionBlendOutTime=0.5f // Night vision blend out time (seconds)
m_fSpammedRumbleDuration=1.0f
m_fSpammedRumbleStrength=0.3f
m_fSpammedRumbleBuildup=0.05f
m_MinDistanceForFallDamage=320.0f; // The fall distance at which it will cause damage
m_MinDistanceForFallKill=1000.0f;
m_SniperGaugePercentDecayPerSecond=10.0f; // Decay rate of the sniper gauge when no spotter is seeing the player.
m_fCoopChokeDuration=30.0f // During coop choke gameplay, time before killing the grabbed player
m_fCoopChokeShootingAngle=210.0f // During coop choke gameplay, this is the angle where the 2nd player is allowed to shoot the NPC
m_fCoopChokePressureFeedbackThreshold=0.3 // During coop choke gameplay, percentage under which pressure feedback is triggered
m_bEnableIdleLayers=true;
// 1st person scope blend vars
m_fShadowFadeDuration=0.15f
m_fActorFadeDuration=0.075f
m_fScopeModelFadeDuration=0.1f
m_fOverlapStartRatio=0.75f
// Coop partner silhouette
m_fCoopPlayerVis_Distance=1500 // Distance in cm over which silhouette is displayed
m_fCoopPlayerVis_MaxRatio=0.5 // Ratio of visible bones under which silhouette is displayed
m_fGrenadeWarningDistance=400
m_TargetingGeoVerticalAvoidanceParams=(m_ScanningType=eScanning_Geo,m_TargetingCylinderWidth=35.0,m_TargetingCylinderHeight=50.0f,m_CollisionFOV=-1.0,m_DepthPrecisionFOV=1.0,m_DirectionHeightOffset=0.0,m_TouchRangeDistance=0.0,m_TouchRangeFOV=0.00,m_TouchRangeSideFOV=0.0,m_TouchRangeSideDistance=0.0)
m_fUndetectedTargetTime=600.0f; // Time needed to get challenge reward for being undetected
m_fB2WPushUpToStand_CamToWallFrontAngle=85.0f
m_fB2WPushUpToStand_JPushToWallFrontAngle=30.0f
[Echelon.EPawn]
BreathingTimeThreshold=5.0
BreathingEffortTimeThreshold=10.0
m_VisibilityAngleHoriz=110.000000
m_VisibilityAngleVertical=90.00000
m_VisibilityMaxDistance==3000.0 // Maximum distance at which an NPC can detect something (in cm).
m_fMaxMPPreAttackWaitTime=2.0
m_fDeadRumbleDuration=0.9f
m_fDeadRumbleStrength=1.0f
m_fDeadRumbleBuildup=0.2f
[Echelon.ECoopPlayerController]
m_speedSmallStep=55
m_speedFadeSmallStepToWalk=0.25
m_speedWalk=105
m_speedRun=400
m_speedSmallStepCr=30
m_speedWalkCr=50
m_speedRunCr=220
m_speedActionWalk=150
m_speedActionRun=500
m_speedActionWalkCr=100
m_speedActionRunCr=350
m_speedWalkFP=120.0
m_speedWalkFPCr=75.0
m_speedWalkSniping=100.0
m_speedFence=70.0
m_speedGrab=80.0
m_speedGrabFP=60.0
m_speedCarry=130.0
m_turnMul=0.5
m_towardAngle=0.707
m_ThrowMinSpeed=(X=300,Y=0,Z=100)
m_ThrowMidSpeed=(X=750,Y=0,Z=150)
m_ThrowMaxSpeed=(X=2000,Y=0,Z=250)
m_ThrowVarSpeed=1000.0
CanBeGameOver=false
m_CTE_MaxDistToLookAt=1000 //Maximum distance in cm where Sam can look at a NPC
BalancingPeriod=5
BalancingBlendTime=0.2
HangOverCameraOffset=(X=95,Y=0,Z=65)
HangOverCameraRotation=(Pitch=11000,Yaw=0,Roll=0)
HangOverCameraSpeed=200
BoostAcceleration=625
[Echelon.EPlayerCam]
m_yawSpeed=45000.0//40000.0 // maximum turning speed, when joystick is at extrem position
m_pitchSpeed=15000.0//25000.0 // maximum lookup speed, when joystick is at extrem position
m_minPitch=-16380 // dont touch
m_maxPitch=16380 // dont touch
m_pitchCurveBias=0.2 // pitch curve when looking up. the smaller the faster
m_constraintSpeed=30000.0 // How fast camera gets out of constraint angles
m_absoluteMinDist=25.0 // Camera can never get closer than this
m_targetZMaxDist=100.0 // max global Z distance of smoothing
m_collisionRadius=15.0 // radius of the cylinder used by the camera's collision check
m_collisionHeight=15.0 // height of the cylinder used by the camera's collision check
m_NPCDistance=200.0 // Distance when looking at npc
m_resetPitchSpeed=45000.0
m_resetYawSpeed=75000.0
m_resetEnable=True
m_closeupDist=200.0
m_closeupHeight=30.0
m_closeupDamping=0.6
[EchelonIngredient.EStickyCamera]
minfov=10.0
maxfov=90.0
zoomspeed=5.0
damping=100.0
[EchelonIngredient.EFlashGrenade]
FlashMinRadius=500
FlashMinAngle=180
FlashMinTime=6
FlashMaxTime=18
[Echelon.ESniperNoise]
pitchSize=600
pitchSpeed=2.17
yawSize=400
yawSpeed=1.8
noiseUpSpeed=1.6
noiseDownSpeed=1.6
recoilSize=600
recoilPitchAdd=300
recoilYawAdd=100
recoilUpSpeed=15000.0
recoilDownSpeed=3000.0
recoilFatigueUp=0.3
holdMax=3.0
tiredMax=3.0
[Echelon.EchelonGameInfo]
HUD_OFFSET_X=24
HUD_OFFSET_Y=39
bNoSamLookAt=false
TrainingMap=0_0_2_Training
m_minForce=0.02
m_gentleForce=0.2
m_fullForce=0.9
m_PlayerJoggingThreshold=300.000000
bFriendlyFire=false
m_bEnableFlashlightToAll=false
m_MPLayeredMinDuration=2.0f
m_MPLayeredMaxDuration=15.0f
m_MPCharacterInNPCFOVWeight=0.1f
m_MPNPCInPlayerFOVWeight=0.1f
m_MPBaseWeight=0.1f
[Echelon.EMatchManager]
m_bUseTimeLimit=false
m_fEndMatchDelayTime=4.0f
m_fRespawnDelayKilled=3 //seconds
m_MaxNbLives=5
[NetZ]
MAX_SILENCEDTIME=30000
SyncMinInputDelay=70
SyncMaxInputDelay=200
SyncInitialInputDelay=100
SyncInitialStepFrequency=10
SyncMaxStepFrequency=60
NbStepBundling=2 // current plus past # frames; when set to 2 it means 3 input step per frame
AssertOnDivergence=false
UseCheckSumLogging=true
FullChecksumLogs=false
EnableCheckSum=true
EnablePackageCRC=true
DoMSAssetsCRC=false
AnimFrameToDump=0
DoHavokXML=false
DoAnimModelBoneChecksum=true
CountChecksumLogOrder=false
MaxBufferedSteps=7
MakeReportScript=PrepareDivergenceReport.bat
MakeReportScriptHost=PrepareDivergenceReport_Host.bat
MakeReportScriptClient=PrepareDivergenceReport_Client.bat
OpenReportScript=OpenReport.bat
[RendezVous]
DefaultUsername=yop2
DefaultPassword=yop123456
EnableLogger=True
EnableDebugLog=False
[VoiceChat]
Enabled=true
[HUD]
FlashHudGameMessageDisplayTime=10.0
FlashHudGameMessageDisplayCutTime=0.0
[MAINMENU]
Flash_MainMenu=Ingame\3D_MainMenu.swf
Flash_PauseMenu=Ingame\3D_SP_Pause.swf
Flash_DefaulfLoadingScreen=Ingame\DynamicLoader_Page_FPP.swf
Flash_SeamlessLoadingTooShort=Ingame\3DLoading01.swf
Flash_SeamlessLoadingTooLong=Ingame\3D_Loading02.swf
Flash_SeamlessLoadingTimeCodeSubTitle=Ingame\Dynamic_LoadingTimeCodeSubTitle.swf
Flash_HudSavingDuringTransit=Ingame\HUD_Saving.swf
Flash_GameInit=Ingame\DynamicBeforeGameInit.swf
Flash_DefaultInteraction=ingame\Dynamic_InteractiveItem_01.swf
Flash_NewsDeltaPerFrame=2.5f
Coop_AllowResumeDelay=5.0f
[UBISOFTMTLPRESENTS]
SP_Video=M01_Market_se010_Load_I.bik
SP_FrameStart=30
COOP_Video=C01_BANYA_SE510_Load_I.bik
COOP_FrameStart=20
[HINTSSYSTEM_CONFIG]
InitialDelay=2 // In seconds.
DelayBetween2Hints=2.5 // In seconds.
[SAMSTHOUGHTS]
DiffuseRadius=750
DiffuseInnerRadius=500
HDR_LightBrightness=1.7
SpotCenterZ=9999
SpotNearWidth=256
SpotNearHeight=128
[SUBSTITUTION]
Version=2.0
Normal=
Buttons=width='32' height='32' vspace='-6'
MouseButtons=width='36' height='36' vspace='-8'
HudBarButtons=width='22' height='22' vspace='-5'
InteractionPlaneButtons=width='32' height='32' vspace='-5'
Uplay_small=vspace='-7'
StartButton=width='30' height='30' vspace='-6'
[Init]
EnableKeyTranslation=True
3 changes: 2 additions & 1 deletion source/SplinterCellBlacklist.FusionMod/dllmain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ void Init()
fScreenCullBias = std::clamp(iniReader.ReadFloat("MAIN", "ScreenCullBias", 0.0f), 0.0f, 1.0f);
static float fShadowCullDist = std::clamp(iniReader.ReadFloat("MAIN", "ShadowCullDist", 100.0f), 90.0f, 120.0f);
auto bDisableNightVisionFlash = iniReader.ReadInteger("MAIN", "DisableNightVisionFlash", 1) != 0;
auto bDisablePerfectionistChecks = iniReader.ReadInteger("MAIN", "DisablePerfectionistChecks", 1) != 0;

sExtractionWaveConfigs = iniReader.ReadString("EXTRACTION", "ExtractionWaveConfigs", "Default");
nExtractionWaveEnemyMultiplier = std::clamp(iniReader.ReadInteger("EXTRACTION", "ExtractionWaveEnemyMultiplier", 1), 1, 9999);
Expand Down Expand Up @@ -339,7 +340,7 @@ void Init()

//Disable perfectionist checks
pattern = hook::pattern("53 32 DB E8 ? ? ? ? 85 C0 74 29");
UI::shGetIsDifficultyLevelPerfectionist = safetyhook::create_inline(pattern.get_first(), UI::GetIsDifficultyLevelPerfectionistHook);
UI::shGetIsDifficultyLevelPerfectionist = safetyhook::create_inline(pattern.get_first(), bDisablePerfectionistChecks ? UI::GetIsDifficultyLevelPerfectionistHook : UI::GetIsDifficultyLevelPerfectionist);

pattern = hook::pattern("E8 ? ? ? ? F3 0F 10 46 ? 51 8B CE");
FThermalSonarVisionComponent::shSetCurrentActiveSonarWaveRange = safetyhook::create_inline(injector::GetBranchDestination(pattern.get_first()).as_int(), FThermalSonarVisionComponent::SetCurrentActiveSonarWaveRange);
Expand Down

0 comments on commit 263c6bf

Please sign in to comment.