Jump to content
The Dark Mod Forums

Recommended Posts

Posted
20 hours ago, snatcher said:

darkmod.cfg (default except for Fullscreen mode and resolution)

  Reveal hidden contents

seta tdm_subtitles_volumeMinDisappear "0.001"
seta tdm_subtitles_volumeMax "0.1"
seta tdm_subtitles_volumeMin "0.003"
seta tdm_subtitles_debug "0"
seta tdm_subtitles_ringRadius "5"
seta tdm_subtitles_ring "1"
seta gui_mediumFontLimit "0.30"
seta gui_smallFontLimit "0.15"
seta radiant_entityMode "0"
seta net_socksPassword ""
seta net_socksUsername ""
seta net_socksPort "1080"
seta net_socksServer ""
seta net_socksEnabled "0"
seta win_topmost "0"
seta win_maximized "0"
seta win_ypos "22"
seta win_xpos "3"
seta sys_lang "english"
seta in_padInverseRY "0"
seta in_padInverseRX "0"
seta in_padDeadZone "0.15"
seta in_padMouseSpeed "2.5"
seta s_alReverbGain "1.0"
seta s_decompressionLimit "6"
seta s_useHRTF "1"
seta s_useEAXReverb "1"
seta s_numberOfSpeakers "2"
seta s_doorDistanceAdd "450"
seta s_globalFraction "0.8"
seta s_subFraction "0.75"
seta s_playDefaultSound "0"
seta s_volume_dB "0"
seta s_meterTopTime "2000"
seta s_reverse "0"
seta s_spatializationDecay "2"
seta s_maxSoundsPerShader "0"
seta s_device "default"
seta s_diffractionMax "10"
seta tdm_subtitles_durationExtensionLimit "5.0"
seta tdm_subtitles_inlineDurationMinimum "1.0"
seta tdm_subtitles_inlineDurationExtension "0.2"
seta r_usePersistentMapping "1"
seta r_frameIndexMemory "4096"
seta r_frameVertexMemory "4096"
seta image_mipmapMode "0"
seta image_useTexStorage "1"
seta image_downSizeLimit "256"
seta image_ignoreHighQuality "0"
seta image_downSizeBumpLimit "128"
seta image_downSizeSpecularLimit "64"
seta image_downSizeBump "0"
seta image_downSizeSpecular "0"
seta image_usePrecompressedTextures "1"
seta image_useNormalCompression "1"
seta image_useCompression "1"
seta image_preload "1"
seta image_forceDownSize "0"
seta image_downSizeAll "0"
seta image_downSize "0"
seta image_lodbias "0"
seta image_anisotropy "1"
seta image_filter "GL_LINEAR_MIPMAP_LINEAR"
seta r_cinematic_checkImmediately "0"
seta r_cinematic_log_flush "0"
seta r_cinematic_log_ffmpeg "0"
seta r_cinematic_log "0"
seta r_cinematic_legacyRoq "0"
seta r_shadowMapSize "1024"
seta r_fboDepthBits "24"
seta r_fboSRGB "0"
seta r_fboColorBits "64"
seta r_glCoreProfile "2"
seta r_useAnonreclaimer "0"
seta r_screenshot_format "jpg"
seta r_debugArrowStep "120"
seta r_debugLineWidth "1"
seta r_debugLineDepthTest "0"
seta com_smp "1"
seta r_forceLoadImages "0"
seta r_lightSourceRadius "0"
seta r_shadows "1"
seta r_shadowPolygonFactor "0"
seta r_shadowPolygonOffset "-1"
seta r_offsetunits "-0.1"
seta r_offsetfactor "-2"
seta r_ambientGamma "1"
seta r_ambientMinLevel "0"
seta r_swapInterval "1"
seta r_softShadowsRadius "1.0"
seta r_softShadowsQuality "0"
seta r_fullscreen "1"
seta r_multiSamples "0"
seta r_glDebugContext "0"
seta r_glDebugOutput "0"
seta r_smallCharSpacing "1"
seta r_tonemapOnlyGame3d "0"
seta r_tonemap "1"
seta r_volumetricDustMultiplier "1"
seta r_volumetricForceShadowMaps "1"
seta r_volumetricEnable "1"
seta r_useParallelAddModels "1"
seta r_maxShadowMapLight "1000"
seta r_volumetricLowres "1"
seta r_volumetricBlur "2"
seta r_volumetricDither "1"
seta r_volumetricSamples "24"
seta r_postprocess_dither_output "2"
seta r_postprocess_dither_input "2"
seta r_postprocess_dither "1"
seta r_postprocess_sharpness "0.5"
seta r_postprocess_sharpen "1"
seta r_postprocess_desaturation "0"
seta r_postprocess_brightness "1"
seta r_postprocess_gamma "1.2"
seta r_postprocess_compress_tail_power "2.0"
seta r_postprocess_compress_initial_slope "1.2"
seta r_postprocess_compress_switch_multiplier "0.7"
seta r_postprocess_compress_switch_point "1.0"
seta r_postprocess_compress "0"
seta r_postprocess_overbright_desaturation "0.0"
seta r_postprocess_exposure "1"
seta r_softShadowsMipmaps "1"
seta r_shadowMapAlphaTested "1"
seta r_shadowMapSinglePass "1"
seta r_shadowMapCullFront "0"
seta r_shadowMapOnTranslucent "1"
seta r_frobOutlineBlurPasses "2"
seta r_frobHighlightColorAddB "0.02"
seta r_frobHighlightColorAddG "0.02"
seta r_frobHighlightColorAddR "0.02"
seta r_frobHighlightColorMulB "0.3"
seta r_frobHighlightColorMulG "0.3"
seta r_frobHighlightColorMulR "0.3"
seta r_frobOutlineExtrusion "-3.0"
seta r_frobOutlineColorA "1.0"
seta r_frobOutlineColorB "1.0"
seta r_frobOutlineColorG "1.0"
seta r_frobOutlineColorR "1.0"
seta r_frobOutline "0"
seta r_frobDepthOffset "0.0005"
seta r_frobIgnoreDepth "0"
seta r_newFrob "0"
seta r_bloom_blursteps "2"
seta r_bloom_downsample_limit "128"
seta r_bloom_weight "0.3"
seta r_bloom_detailblend "0.5"
seta r_bloom_threshold_falloff "8"
seta r_bloom_threshold "0.7"
seta r_bloom "0"
seta r_ssao_edgesharpness "1"
seta r_ssao_base "0.1"
seta r_ssao_intensity "1.0"
seta r_ssao_bias "0.05"
seta r_ssao_radius "32"
seta r_ssao "0"
seta r_glBlacklistExtensions ""
seta r_gpuBufferNonpersistentUpdateMode "0"
seta r_debugGLSL "0"
seta r_fboScaling "1"
seta r_fboResolution "1"
seta jobs_maxHddThreads "1"
seta jobs_numThreadsNonInteractive "-1"
seta jobs_offsetThreadsRealtime "0"
seta jobs_numThreadsRealtime "-1"
seta tdm_download_list_sort_by "1"
seta tdm_download_list_sort_direction "1"
seta tdm_mission_list_sort_direction "0"
seta tdm_mission_list_title_style "1"
seta net_serverDlTable ""
seta net_serverDlBaseURL ""
seta net_serverDownload "0"
seta mod_validSkins "skins/characters/player/marine_mp;skins/characters/player/marine_mp_green;skins/characters/player/marine_mp_blue;skins/characters/player/marine_mp_red;skins/characters/player/marine_mp_yellow"
seta g_mapCycle "mapcycle"
seta g_voteFlags "0"
seta g_gameReviewPause "10"
seta g_countDown "10"
seta g_password ""
seta g_rotoscope "0"
seta g_testModelHeadJoint "Spine2"
seta g_testModelHead "atdm:ai_head_citywatch"
seta g_skipViewEffects "0"
seta g_fov "90"
seta g_showBrass "1"
seta g_showProjectilePct "0"
seta g_showHud "1"
seta g_showPlayerShadow "0"
seta pm_modelView "0"
seta pm_thirdPersonDeath "0"
seta pm_thirdPerson "0"
seta pm_thirdPersonClip "1"
seta pm_thirdPersonAngle "0"
seta pm_thirdPersonHeight "0"
seta pm_thirdPersonRange "80"
seta pm_headbob_mod "1"
seta pm_bobroll "0.0015"
seta pm_bobpitch "0.001"
seta pm_bobup "0.03"
seta pm_runroll "0.003"
seta pm_runpitch "0.001"
seta pm_runbob "0.35"
seta pm_walkbob "0.3"
seta pm_crouchbob "0.2"
seta pm_bboxwidth "32"
seta pm_deadviewheight "10"
seta pm_deadheight "20"
seta pm_normalviewheight "68"
seta pm_normalheight "74"
seta pm_crouchviewheight "34"
seta pm_crouchheight "38"
seta pm_maxviewpitch "89"
seta pm_minviewpitch "-89"
seta pm_noclipspeed "200"
seta pm_stepsize "16"
seta g_enablePortalSky "2"
seta g_showcamerainfo "0"
seta g_damageScale "1"
seta g_decals "1"
seta g_doubleVision "1"
seta g_bloodEffects "1"
seta g_projectileLights "1"
seta g_muzzleFlash "1"
seta gui_CenterY "0.5"
seta gui_CenterX "0.5"
seta gui_Height "1.0"
seta gui_Width "1.0"
seta ui_showGun "1"
seta ui_autoSwitch "1"
seta ui_team "Red"
seta ui_skin "skins/characters/player/marine_mp"
seta ui_name "Player"
seta si_serverURL ""
seta si_spectators "1"
seta si_usePass "0"
seta si_warmup "0"
seta si_teamDamage "0"
seta si_timeLimit "10"
seta si_maxPlayers "4"
seta si_map "game/mp/d3dm1"
seta si_gameType "singleplayer"
seta si_name "DOOM Server"
seta tdm_lod_bias "1.0"
seta tdm_voice_from_off_volume "0"
seta tdm_voice_player_volume "0"
seta tdm_music_volume "0"
seta tdm_door_auto_open_on_unlock "1"
seta tdm_bow_aimer "0"
seta tdm_lp_debug_hud "0"
seta tdm_lp_pawlow "0"
seta tdm_lp_randomize "1"
seta tdm_lp_auto_pick "0"
seta tdm_lp_autopick_attempts "1"
seta tdm_lp_pick_timeout "500"
seta tdm_lp_sample_delay "10"
seta tdm_lp_base_count "5"
seta tdm_empty_model "models/darkmod/misc/system/empty.lwo"
seta tdm_lg_model "models/darkmod/misc/system/lightgem.lwo"
seta tdm_lg_weak "0"
seta tdm_lg_interleave_min "40"
seta tdm_lg_interleave "1"
seta pm_rope_snd_rep_dist "32"
seta pm_min_stepsound_interval "200"
seta pm_stepvol_crouch_creep "-7"
seta pm_stepvol_crouch_run "4"
seta pm_stepvol_crouch_walk "-2"
seta pm_stepvol_creep "-5"
seta pm_stepvol_run "8"
seta pm_stepvol_walk "0"
seta tdm_underwater_blur "3"
seta tdm_rope_pull_force_factor "140"
seta tdm_show_viewpos "0"
seta gui_objectiveTextSize "1.0"
seta gui_barSize "1.0"
seta gui_lightgemSize "1.0"
seta gui_bigTextSize "1.0"
seta gui_smallTextSize "1.0"
seta gui_iconSize "1.0"
seta tdm_subtitles "1"
seta tdm_inv_use_visual_feedback "1"
seta tdm_door_control "0"
seta tdm_inv_use_on_frob "1"
seta tdm_inv_loot_sound "frob_loot"
seta tdm_inv_hud_pickupmessages "1"
seta tdm_hud_hide_lightgem "0"
seta tdm_hud_opacity "0.7"
seta tdm_invgrid_sortstyle "0"
seta tdm_invgrid_hud_file "guis/tdm_invgrid_parchment.gui"
seta tdm_grabber_reverse_control "0"
seta tdm_bounce_sound_min_vel "80"
seta tdm_bounce_sound_max_vel "400"
seta tdm_throw_time "1200"
seta tdm_throw_vellimit_max "900"
seta tdm_throw_vellimit_min "300"
seta tdm_throw_impulse_max "3500"
seta tdm_throw_impulse_min "1200"
seta tdm_phys_show_momentum "0"
seta tdm_ai_hearing_hardcore "1.5"
seta tdm_ai_hearing_challenging "1.0"
seta tdm_ai_hearing_forgiving "0.6"
seta tdm_ai_hearing_nearly_deaf "0.2"
seta tdm_ai_hearing "2"
seta tdm_ai_vision_hardcore "1.005"
seta tdm_ai_vision_challenging "0.804"
seta tdm_ai_vision_forgiving "0.402"
seta tdm_ai_vision_nearly_blind "0.134"
seta tdm_ai_vision "1"
seta tdm_melee_difficulty "normal"
seta tdm_melee_max_particles "10"
seta tdm_melee_forbid_auto_parry "0"
seta tdm_melee_auto_parry "1"
seta tdm_melee_invert_parry "0"
seta tdm_melee_invert_attack "0"
seta tdm_melee_mouse_thresh_ "0"
seta tdm_drag2_af_inair_friction "0.5"
seta tdm_drag2_af_reduceforce_radius "10.0"
seta tdm_drag2_af_weight_ratio_canlift "5.0"
seta tdm_drag2_af_weight_ratio "0.8"
seta tdm_drag2_rigid_acceleration_angle "0.03"
seta tdm_drag2_rigid_angle_halfing_time "0.02"
seta tdm_drag2_rigid_acceleration_radius "1.0"
seta tdm_drag2_rigid_distance_halfing_time "0.1"
seta tdm_drag2_rigid_silentmode "1"
seta tdm_drag2_targetpos_averaging_time "0.1"
seta tdm_drag1_af_ground_timer "800"
seta tdm_drag1_damping_af "0.4"
seta tdm_drag1_damping "0.0"
seta tdm_drag1_limit_force "1"
seta tdm_drag_af_free "0"
seta tdm_drag_new "1"
seta tdm_drag_force_max "100000"
seta tdm_drag_stuck_dist "38.0"
seta tdm_drag_encumber_max "0.4"
seta tdm_drag_encumber_maxmass "55"
seta tdm_drag_encumber_minmass "10"
seta tdm_drag_jump_masslimit "20"
seta tdm_dragged_item_highlight "1"
seta tdm_collision_damage_scale_horiz "0.5"
seta tdm_collision_damage_scale_vert "1"
seta tdm_blackjack_indicate "1"
seta tdm_multiloot_max_interval "2000"
seta tdm_multiloot_min_interval "300"
seta tdm_holdfrob_drag_all_entities "0"
seta tdm_holdfrob_drag_body_behavior "1"
seta tdm_holdfrob_bounds "7"
seta tdm_holdfrob_delay "300"
seta tdm_frobhelper_ignore_size "40.0"
seta tdm_frobhelper_fadeout_duration "500"
seta tdm_frobhelper_fadein_duration "1500"
seta tdm_frobhelper_fadein_delay "500"
seta tdm_frobhelper_alpha "1.0"
seta tdm_frobhelper_alwaysVisible "0"
seta tdm_frobhelper_active "1"
seta tdm_frob_fadetime "100"
seta tdm_frob_width "10.0"
seta tdm_frob_distance_default "63"
seta tdm_toggle_lean "0"
seta pm_shoulderDrop_angleIncrement "22.5"
seta pm_shoulderDrop_maxAngle "91.0"
seta pm_shoulderAnim_delay_msecs "0.0"
seta pm_shoulderAnim_dip_dist "5.0"
seta pm_shoulderAnim_rockDist "3.0"
seta pm_shoulderAnim_dip_duration "0.5"
seta pm_shoulderAnim_msecs "700.0"
seta tdm_toggle_sheathe "0"
seta tdm_toggle_creep "0"
seta tdm_reattach_delay "100"
seta tdm_crouch_toggle_hold_time "0"
seta tdm_toggle_crouch "1"
seta tdm_autosearch_bodies "0"
seta tdm_footfall_sounds_movetype_specific "1"
seta pm_ladderSlide_speedLimit "400.0"
seta pm_mantle_roll_mod "1.0"
seta pm_mantle_while_carrying "1"
seta pm_mantle_maxLowObstacleHeight "36.0"
seta pm_mantle_minflatness "0.707"
seta pm_mantle_height "0.2"
seta pm_mantle_reach "0.5"
seta pm_weightmod "1"
seta pm_softhinderance_run "1.0"
seta pm_softhinderance_walk "0.5"
seta pm_softhinderance_creep "0.2"
seta pm_softhinderance_active "1"
seta pm_push_max_mass "200"
seta pm_push_heavy_threshold "0.15"
seta pm_push_accel_time "1000"
seta pm_push_start_delay "1000"
seta pm_push_maximpulse "300"
seta pm_pushmod "0.15"
seta tdm_savegame_compress "1"
seta tdm_force_savegame_load "0"
seta tdm_mainmenu_confirmquit "1"
seta tdm_debug_aastype "aas32"
seta tdm_allow_http_access "1"
seta tdm_proxy_pass ""
seta tdm_proxy_user ""
seta tdm_proxy ""
seta tdm_fm_restart_delay "0"
seta tdm_default_relations_def "atdm:team_relations_default"
seta tdm_show_trainer_messages "1"
seta tdm_menu_music "1"
seta tdm_wideScreenMode "8"
seta r_aspectRatio "1"
seta r_customHeight "1440"
seta r_customWidth "2560"
seta tdm_ai_show_aasfuncobstacle_state "0"
seta tdm_show_health "0"
seta tdm_ai_debug_greetings "0"
seta tdm_ai_debug_transition_barks "0"
seta tdm_ai_opt_nolipsync "0"
seta tdm_ai_opt_update_enemypos_interleave "48"
seta tdm_ai_opt_interleavethinkframes "0"
seta tdm_ai_opt_interleavethinkskipPVS "0"
seta tdm_ai_opt_interleavethinkmaxdist "0"
seta tdm_ai_opt_interleavethinkmindist "0"
seta tdm_ai_search_type "4"
seta tdm_ai_visdist_show "0.0"
seta tdm_ai_search_show "0.0"
seta tdm_showko "0"
seta tdm_showsprop_radius "0"
seta tdm_showsprop "0"
seta tdm_spr_debug "0"
seta tdm_sndprop_disable "0"
seta tdm_ai_acuity_L5 "1.5"
seta tdm_ai_acuity_L4 "1.3"
seta tdm_ai_acuity_L3 "1.1"
seta tdm_ai_show_conversationstate "0"
seta tdm_ai_show_enemy_visibility "0"
seta tdm_ai_sight_scale "1000.0"
seta tdm_ai_sight_thresh "1.0"
seta tdm_ai_showelevator "0"
seta tdm_ai_showdoor "0"
seta tdm_ai_debug_blocked "0"
seta tdm_ai_showAASarea "0"
seta tdm_ai_showgoalpos "0"
seta tdm_ai_showdest "0"
seta tdm_ai_showalert "0"
seta tdm_ai_showtasks "0"
seta tdm_ai_showanimstate "0"
seta tdm_ai_showko "0"
seta tdm_ai_showfov "0"
seta tdm_ai_debug "0"
seta tdm_ai_bumpobject_impulse "250"
seta tdm_ai_tact "20.0"
seta tdm_ai_sight_combat_cutoff "20.0"
seta tdm_ai_sightmin "15.0"
seta tdm_ai_sightmax "40.0"
seta tdm_ai_sight_mag "1.0"
seta tdm_ai_sight_prob "0.7"
seta tdm_ai_showname "0"
seta tdm_ai_showbark "0"
seta tdm_ai_sndvol "0.0"
seta tdm_player_wait_until_ready "1"
seta com_automation_port "3879"
seta in_padInvertPitchAxis "0"
seta in_padInvertYawAxis "0"
seta m_strafeSmooth "4"
seta m_smooth "1"
seta m_strafeScale "6.25"
seta m_yaw "0.022"
seta m_pitch "0.022"
seta sensitivityMenuOverride "0"
seta sensitivityMenu "1.0"
seta sensitivity "5"
seta in_toggleZoom "0"
seta in_toggleCrouch "0"
seta in_toggleRun "0"
seta in_alwaysRun "0"
seta in_freeLook "1"
seta in_anglespeedkey "1.5"
seta in_pitchspeed "140"
seta in_yawspeed "140"
seta r_useDebugGroups "0"
seta gui_configServerRate "0"
seta com_savegame_preview_format "jpg"
seta com_numQuickSaves "2"
seta com_guid ""
seta com_maxFPS "300"
seta com_fixedTic "1"
seta decl_stack "1"
seta in_padL3HoldWhileDeflected "1"
seta in_padTwoButtonMaxTimeMs "50"
seta in_padLongPressTimeMs "250"
seta com_preloadDemos "0"
seta com_compressDemos "1"
seta con_fontColor "5"
seta con_fontSize "5"
seta con_legacyFont "0"
seta com_product_lang_ext "1"
seta logFile "0"
seta com_showFPSavg "4"
seta com_showFPS "0"
seta com_purgeAll "0"

 

Video: 2025-03-04 09-56-30.mkv (4 MB)

Captures:

1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

I can reproduce.

It occurs when vsync is enabled with uncapped FPS set with a com_maxFPS above your monitor refresh.

Try setting Max FPS to whatever your monitor refresh is and see if the problem persists.

We might need to run a glFinish before escaping to menu? @stgatilov ?

Edit:

@snatcher I haven't been able to reproduce with Vsync set to "Adaptive". Seems like the best option.

  • Like 2

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Posted
10 hours ago, nbohr1more said:

@snatcher I haven't been able to reproduce with Vsync set to "Adaptive". Seems like the best option.

It happens with Vsync On and Off and Adaptive but setting Max FPS to match my monitor refresh solves the issue.

The point however is that the issue was introduced in the latest beta and since the game defaults are now Vsync On and Max FPS 300 all users are exposed to it.

  • Like 3

TDM_Modpack_Thumb.png

Posted

@stgatilov @snatcher

I committed a change at Rev 10943

When using "uncapped mode" and vsync together, maxFPS will be limited to 60 or r_displayRefresh ( whichever is larger ).

With this change, the menu change artifacts are gone.

  • Like 1
  • Thanks 3

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Posted
19 hours ago, nbohr1more said:

@stgatilov @snatcher

I committed a change at Rev 10943

When using "uncapped mode" and vsync together, maxFPS will be limited to 60 or r_displayRefresh ( whichever is larger ).

But it means that all people with higher-than-60 Hz monitors will play on 60 FPS.
I doubt they will find the monitor refresh rate cvar.

I would say the downsides of such change far outweigh the benefits.
Max FPS should be significantly higher than refresh rate, so that the game can produce frames exactly by Vsync signals. If max FPS is equal to refresh rate, then the frames will be missed occasionally. Basically, you ruin the butter-smooth experience with this.

UPDATE: Just remember the old "fixed FPS" mode.
It also tried to limit FPS to exactly 60. Did it work well with Vsync on?

Posted
2 hours ago, stgatilov said:

Max FPS should be significantly higher than refresh rate, so that the game can produce frames exactly by Vsync signals.

Are there more details on this? I have an 144 Hz monitor, I enabled vsync and set the FPS cap to 144 as well. I figured that's the best way to not waste processing power, since how could it help to either render more visual frames or physics calculations than the monitor can display? Besides, few areas in few FM's will run at 144 FPS from a few camera positions and angles :P

Posted
1 hour ago, MirceaKitsune said:

I have an 144 Hz monitor, I enabled vsync and set the FPS cap to 144 as well. I figured that's the best way to not waste processing power, since how could it help to either render more visual frames or physics calculations than the monitor can display?

The defaults in the latest beta are the best: Vsync on, FPS cap off.
Whenever the game produces a frame to monitor Vsync is on, the OS blocks the game until monitor refresh happens. So as long as the game can do its part faster than refresh rate, it will reliably deliver one frame per refresh.

If you also set FPS cap close to 60, then the game will measure the time passed since previous frame processing started, and will not start processing a new frame until 1/60 sec passes. Of course, the time measurements don't match ideally, and frames take different time to process. It can happen that the game will wait 1/60 sec, then start rendering a new frame and miss refresh moment, so when the frame is done it will wait about 1/60 more. This results in a frame drop.

  • Like 2
Posted
5 hours ago, stgatilov said:

But it means that all people with higher-than-60 Hz monitors will play on 60 FPS.
I doubt they will find the monitor refresh rate cvar.

I would say the downsides of such change far outweigh the benefits.
Max FPS should be significantly higher than refresh rate, so that the game can produce frames exactly by Vsync signals. If max FPS is equal to refresh rate, then the frames will be missed occasionally. Basically, you ruin the butter-smooth experience with this.

UPDATE: Just remember the old "fixed FPS" mode.
It also tried to limit FPS to exactly 60. Did it work well with Vsync on?

The old "Fixed FPS" ( com_fixedTic 0 )  mode is still as laggy and poorly performing as ever.

With the new mode and maxFPS = 60 it's still waaaaaayyy smoother than the old mode.

I can try setting it to max between r_displayRefresh and 120 to see whether a perfect double of screen refresh is still viable to remove the artifacts?

I was trying to find a good way to query monitor refresh but it seems that the r_displayRefresh cvar is just an 

alternate to the GLFW mode data that feeds "parms.displayHz" . It seems that we treat that mode data a little differently in Win vs Linux?

So I guess these are the paths to improvement here:

1) Try to use parms.displayHz instead of r_displayRefresh and hope the GFLW does a good job of picking the right value

2) Max between r_displayRefresh and 120 ?

3) Keep trying find a way to restrict maxFPS to 60 in the menus ( I got this one partially working but once you leave the game and return it's stuck at 60. I also had the inverse working, starting at 60 in the menu going to 300 then when returning to menu it was at 300 )

4) Keep trying to find a way to force gameTic sync when entering and leaving menus ( I guess this is the "correct" thing to do... ). ( Thus far, all the glFinish, clear frame data and RunGameTic things I've tried have failed miserably. )

Sadly, r_displayRefresh is a sorta dangerous parameter to play with and thus it isn't archive-able. We could do it, of course but if a user has a legacy CRT and sets something crazy they could damage their hardware etc. Thus to enforce a higher refresh, users will need an autoexec.cfg or will need to constantly invoke the change in the console.

Edit:

Results thus far

Max between parms.displayHz and any value ( 30, 60, 120 ) = artifacts appear

Use parms.displayHz directly = artifacts appear

Hard-code 120 = one blip artifact only on the first entry into the game

Based on the above, and that hard-coding 60 also eliminates the artifacts I can only surmise that parms.displayHz is not picking up the correct value?

 

  • Thanks 1

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Posted
8 hours ago, stgatilov said:

The defaults in the latest beta are the best: Vsync on, FPS cap off.

According to the logs these have been the default for long time:

On 1/2/2025 at 7:32 PM, stgatilov said:

dev16996-10665
* Now Uncapped FPS and Vsync are ON by default.

But I have never noticed these artifacts until now. What changed between beta3 and beta4 that could have triggered this issue?

TDM_Modpack_Thumb.png

Posted

This reminded me of something I kept forgetting, I think this is why I ran with capped FPS: The main menu still doesn't provide an option to fully disable the cap, only to set a higher value for it.

Screenshot_20250307_184047.thumb.jpg.2853cf70ca80308eb5961ce34677452f.jpg

There's no unlimited value for the "Max FPS" field, you can go up to 300 then it loops back to 30. Shouldn't that option be provided, or does the engine not allow fully disabling capped FPS and still requires a limit?

Actually why not mix the "Uncap FPS" and "Max FPS" settings? It might reduce clutter to have one field. Options would be Capped, Uncapped, then all the different numbers.

Even more so, why not mix Uncapped and 60? Technically it should be the same thing, feels redundant to have both under different names. Unless of course there's an important technical distinction between the two modes that shouldn't be removed from the engine; Do "com_fixedTic 1" and "com_maxFPS 60" practically do anything different, any reason not to remove the legacy var entirely and use maxFPS to get the capped FPS of the old days?

Posted
8 hours ago, nbohr1more said:

There is a new “last frame capture” used for cool menus that have a screenshot of in-game view as their background.

Maybe simply nobody noticed?
Because if it is caused by this new feature, it just means the feature needs to be disabled until it behaves properly.

2 hours ago, MirceaKitsune said:

Actually why not mix the "Uncap FPS" and "Max FPS" settings? It might reduce clutter to have one field. Options would be Capped, Uncapped, then all the different numbers.

The "Uncapped FPS" is just an unfortunate name for a completely different approach for timing and modelling the game. In reality it should be named something like "variable game step".

On the other hand, it is questionable why we still have Max FPS as a setting. I think today we can set cvar e.g. to 350 and delete the option from the menu.

  • Like 2
Posted
22 hours ago, stgatilov said:

On the other hand, it is questionable why we still have Max FPS as a setting. I think today we can set cvar e.g. to 350 and delete the option from the menu.

Are there situations where people don't want to set vsync on? Because if so, they might want to set max fps to a lower amount to destress the gpu.

Posted (edited)

Just want to quick note,
starting version Beta 213-05 (and 213-04) on android client "diii4a" (version R59),
crashes the game with error:
"Sys_Error: Error during initialization. Error: file tdm_base01.pk4/script/tdm_weapon_arrow.script, line 197: Unknown value "getcvarf"

Edited by freyk
added errorline and version
  • Thanks 1

.

Posted
On 3/10/2025 at 8:29 PM, freyk said:

Just want to quick note,
starting version Beta 213-05 (and 213-04) on android client "diii4a" (version R59),
crashes the game with error:
"Sys_Error: Error during initialization. Error: file tdm_base01.pk4/script/tdm_weapon_arrow.script, line 197: Unknown value "getcvarf"

You probably run some old executable?

Posted
On 3/10/2025 at 4:29 PM, freyk said:

Just want to quick note,
starting version Beta 213-05 (and 213-04) on android client "diii4a" (version R59),
crashes the game with error:
"Sys_Error: Error during initialization. Error: file tdm_base01.pk4/script/tdm_weapon_arrow.script, line 197: Unknown value "getcvarf"

 

2 hours ago, stgatilov said:

You probably run some old executable?

Yes, diii4a would need to merge our latest code changes to their fork. Otherwise they might need to use scripts, defs, materials, etc from 2.12

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Posted (edited)

As of 2.13 beta 1, the mission Swing is broken. The launcher seat that should propel you reliably up to a high platform now drops quite a way short.

edit: actually, it's broken as far back as dev16996-10665

Edited by thebigh
  • Thanks 1

My missions:      Stand-alone                                                  Duncan Lynch series           Collabs                             

                                 Down and Out on Newford Road          the Factory Heist                  A Collector's Errand (with Bikerdude)

                           The Wizard's Treasure                          A House Call

                                                                                           The House of deLisle                                                                                                  

                              

Posted
3 hours ago, thebigh said:

As of 2.13 beta 1, the mission Swing is broken. The launcher seat that should propel you reliably up to a high platform now drops quite a way short.

edit: actually, it's broken as far back as dev16996-10665

Works in 2.12? 2.11 ?

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Posted

Yeah, I tried it in 2.12 and it was fine. The next version, dev16996-10665, drops me slightly short when I use the catapult chair.

My missions:      Stand-alone                                                  Duncan Lynch series           Collabs                             

                                 Down and Out on Newford Road          the Factory Heist                  A Collector's Errand (with Bikerdude)

                           The Wizard's Treasure                          A House Call

                                                                                           The House of deLisle                                                                                                  

                              

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recent Status Updates

    • sullium

      "Super Slope Jump" seems like a fitting name for this:
       
      I also found an unintentional setup for it in my WIP:
       
      Definitely too hard for Advanced Jump Training's main path, but it could make for a fun secret perhaps...
      · 0 replies
    • taffernicus

      My First time trying dromEd and DR. It's quite intimidating lmao 
      I'm starting to get the big picture
      Hope i get enough time , juggling multiple interests has never been easy
      · 12 replies
    • The Black Arrow

      Well, this is just sad...I was not able to play any Thief or TDM whatsoever, why? Too busy the past 2 months, this month I'm not as busy BUT it's also very heaty in my place.
      I can't play Thief when it's not at least 15c or lower, the game demands to be played when it's cold for...Well, may sound stupid but I'll just say it, for that "immersion".
      It's kinda like playing Quake during Summer, which unless it's the Summer Jam mod, I don't think it's as fun.
      · 7 replies
    • STiFU

      Oh my gosh, I just realized, I will have my 20 year Dark Mod anniversary this year. 😮 I've literally spent half my life with The Dark Mod. That's crazy!!
      · 8 replies
    • Arcturus

      I need money. Anyone wanna hire a 3d artist?
      · 4 replies
×
×
  • Create New...