I have been getting reports of camera roll functions messing with mouse input somehow. A common description is that mouse looking feels "jerky" or "input lag".
I am unable to detect these issues across the variety hardware I'm using (all completely different computers, different mice, etc). Even on my current mouse, which has a 1000hz input rate, paired with a 144hz monitor. I'm not experiencing these issues people are reporting.
Please test these two files loaded one at a time (don't load both), and WITHOUT other mods (don't want other mods interfering with this test). You should also disable your autoloads (tick the "disable autoload" checkbox at startup, or start gzdoom.exe with -noautoload for advanced users.
Instructions:
Load up the mods in any of the Doom games, then press your +use key (the key you use to open doors, activate switches etc) to toggle view tilting on or off. Let me know if you detect any mouse input jitter with the thing ON vs OFF.
Let me know if there is any difference at all between Test A and Test B.
Re: Mouse polling issues with view roll
Posted: Wed May 12, 2021 10:04 am
by 0mnicydle
Hey thanks for looking into this! I tried each one (-noautoload) and I can't really discern a difference. They are both stuttering when enabled, and fine when disabled.
Re: Mouse polling issues with view roll
Posted: Wed May 12, 2021 10:53 am
by 0mnicydle
Btw, I really hope this can be fixed because I'd absolutely love to add this to my autoload stack. I have this weekend ritual of using Github Desktop to check all the projects I'm interested in (building GZDoom, Raze, DOSBox etc...) and your Tilt++ repository has been on my list for ages now just waiting for the day I can finally use it
/EDIT Oh and the problems for me predate when I started building my own GZDoom, and just to be sure I just pulled the latest off DRD and yeah, no change.
Re: Mouse polling issues with view roll
Posted: Thu May 13, 2021 12:04 am
by wildweasel
You should probably also post your INI file so we can rule out any kind of settings changes that might provoke this.
Re: Mouse polling issues with view roll
Posted: Thu May 13, 2021 8:55 am
by 0mnicydle
Here's a dump after applying my cfg on a fresh install. Two things to note: I use a VRR monitor, and I occasionally switch between OpenGL and Vulkan (but there's no difference between them as far as this issue goes). EDIT/ Oh three notes: -noautoload makes no difference. And I've experimented with every option under the sun. I'd be shocked if you found anything useful in here honestly
# This file was generated by GZDoom g4.6pre-226-g31b1d760b on 2021-05-13 10:52:56
# These are the directories to automatically search for IWADs.
# Each directory should be on a separate line, preceded by Path=
[IWADSearch.Directories]
Path=$PROGDIR
Path=..
Path=../wads
# These are the directories to search for wads added with the -file
# command line parameter, if they cannot be found with the path
# as-is. Layout is the same as for IWADSearch.Directories
[FileSearch.Directories]
Path=$PROGDIR
Path=..
Path=../wads
Path=../mods
# These are the directories to search for soundfonts that let listed in the menu.
# Layout is the same as for IWADSearch.Directories
[SoundfontSearch.Directories]
Path=$PROGDIR/soundfonts
Path=$PROGDIR/fm_banks
Path=../classicmusic
# Files to automatically execute when running the corresponding game.
# Each file should be on its own line, preceded by Path=
[Doom.AutoExec]
Path=../cfg/autoexec.cfg
[Heretic.AutoExec]
Path=../cfg/autoexec.cfg
[Hexen.AutoExec]
Path=../cfg/autoexec.cfg
[Strife.AutoExec]
Path=../cfg/autoexec.cfg
[Chex.AutoExec]
Path=../cfg/autoexec.cfg
# WAD files to always load. These are loaded after the IWAD but before
# any files added with -file. Place each file on its own line, preceded
# by Path=
[Global.Autoload]
Path=lights.pk3
Path=brightmaps-master/bmplus_spritefix
Path=brightmaps-master/bmplus_textures
Path=mystuff/myui.wad
Path=SpriteShadow-master
Path=nashgore-master
Path=damnums_1.0.2.pk3
Path=TopHPBars.pk3
# Wad files to automatically load depending on the game and IWAD you are
# playing. You may have have files that are loaded for all similar IWADs
# (the game) and files that are only loaded for particular IWADs. For example,
# any files listed under 'doom.Autoload' will be loaded for any version of Doom,
# but files listed under 'doom.doom2.Autoload' will only load when you are
# playing a Doom 2 based game (doom2.wad, tnt.wad or plutonia.wad), and files listed under
# 'doom.doom2.commercial.Autoload' only when playing doom2.wad.
[doom.Autoload]
[doom.id.Autoload]
Path=pk_doom_sfx_20120224.wad
Path=mystuff/mydoombloodcolors.wad
Path=mystuff/mydoomevileyelight.pk3
Path=mystuff/mydoomglowflats.wad
Path=mystuff/mydoomimpballtrails.wad
Path=mystuff/mydoomjumpheight.wad
Path=mystuff/mydoomjumpsounds.wad
Path=mystuff/mydoomloudmidi.pk3
Path=mystuff/mydoomsbar.wad
Path=mystuff/mydoomwarpflats.wad
Path=newsplsh/splash.pk3
Path=STEVE_FLASHLIGHT_PLUS.PK7
[doom.id.doom2.Autoload]
Path=sprfix19/D2DEHFIX.DEH
Path=sprfix19/D2SPFX19.WAD
Path=mystuff/mydoomblackgloves_SPFX19.wad
Path=mystuff/mydoomwidescreen.pk3
[doom.id.doom2.commercial.Autoload]
Path=masterlevels/master.wad
Path=NERVE.WAD
Path=mystuff/mynerve.wad
[doom.id.doom2.commercial.french.Autoload]
[doom.id.doom2.commercial.xbox.Autoload]
[doom.id.doom2.unity.Autoload]
[doom.id.doom2.bfg.Autoload]
[doom.id.doom2.plutonia.Autoload]
Path=music/plutmidi/plutmidi.wad
[doom.id.doom2.plutonia.unity.Autoload]
[doom.id.doom2.tnt.Autoload]
[doom.id.doom2.tnt.unity.Autoload]
[doom.id.doom1.Autoload]
Path=sprfix19/D1DEHFIX.DEH
Path=sprfix19/D1SPFX19.WAD
Path=mystuff/mydoomblackgloves_SPFX19.wad
Path=mystuff/mydoomwidescreen.pk3
[doom.id.doom1.registered.Autoload]
[doom.id.doom1.ultimate.Autoload]
Path=SIGIL_v1_21.WAD
[doom.id.doom1.ultimate.xbox.Autoload]
[doom.id.wadsmoosh.Autoload]
Path=sprfix19/D2DEHFIX.DEH
Path=sprfix19/D2SPFX19.WAD
Path=mystuff/mydoomblackgloves_SPFX19.wad
Path=mystuff/myplutmidiforwadsmoosh.pk3
[doom.id.doom1.unity.Autoload]
[doom.id.doom1.bfg.Autoload]
[doom.freedoom.Autoload]
[doom.freedoom.demo.Autoload]
[doom.freedoom.phase1.Autoload]
[doom.freedoom.phase2.Autoload]
[doom.freedoom.freedm.Autoload]
[heretic.Autoload]
Path=game_widescreen_gfx.pk3
Path=heretic/HRSPFX10.WAD
Path=heretic/HRWIDE10.WAD
Path=fullscrn_huds.pk3
[heretic.heretic.Autoload]
[heretic.shadow.Autoload]
[blasphemer.Autoload]
[hexen.Autoload]
Path=game_widescreen_gfx.pk3
Path=hexen/HeXen_Widescreen_v3(no_sbar+no_titles).wad
Path=fullscrn_huds.pk3
[hexen.deathkings.Autoload]
[hexen.hexen.Autoload]
[strife.Autoload]
[strife.strife.Autoload]
Path=game_widescreen_gfx.pk3
[strife.veteran.Autoload]
[chex.Autoload]
[chex.chex1.Autoload]
[chex.chex3.Autoload]
[urbanbrawl.Autoload]
[hacx.Autoload]
[hacx.hacx1.Autoload]
[hacx.hacx2.Autoload]
[harmony.Autoload]
[square.Autoload]
[square.squareware.Autoload]
[square.square.Autoload]
[delaweare.Autoload]
[woolball.Autoload]
[woolball.rotwb.Autoload]
[Joy:XI:0]
Axis3scale=-0.25
[LastRun]
Version=222
[GlobalSettings]
I_FriendlyWindowTitle=1
adl_chips_count=6
adl_emulator_id=0
adl_fullpan=true
adl_run_at_pcm_rate=false
adl_volume_model=0
autoloadbrightmaps=false
autoloadlights=false
autoloadwidescreen=false
autosavecount=4
autosavenum=0
chase_dist=90
chase_height=-8
cl_capfps=false
cl_defaultconfiguration=0
cl_noprediction=false
cl_oldfreelooklimit=false
cl_predict_lerpscale=0.05000000074505806
cl_predict_lerpthreshold=2
cl_predict_specials=true
cl_run=false
cl_waitforsave=true
con_buffersize=-1
con_ctrl_d=
con_notifylines=1
defaultiwad=DOOM 2: Hell on Earth
demo_compress=true
developer=0
disableautoload=false
disableautosave=0
disablecrashlog=false
enablescriptscreenshot=false
fluid_chorus=true
fluid_chorus_depth=8
fluid_chorus_level=1
fluid_chorus_speed=0.30000001192092896
fluid_chorus_type=0
fluid_chorus_voices=3
fluid_gain=0.5
fluid_interp=1
fluid_lib=
fluid_patchset=GMGSx
fluid_reverb=true
fluid_reverb_damping=0.23000000417232513
fluid_reverb_level=0.5699999928474426
fluid_reverb_roomsize=0.6100000143051147
fluid_reverb_width=0.7599999904632568
fluid_samplerate=0
fluid_threads=1
fluid_voices=128
freelook=true
gl_billboard_faces_camera=false
gl_billboard_mode=0
gl_billboard_particles=true
gl_cachenodes=true
gl_cachetime=0.6000000238418579
gl_control_tear=false
gl_debug=false
gl_debug_breakpoint=false
gl_debug_level=0
gl_distfog=70
gl_dither_bpc=0
gl_enhanced_nv_stealth=3
gl_finishbeforeswap=false
gl_fxaa=0
gl_lens=false
gl_lens_chromatic=1.1200000047683716
gl_lens_k=-0.11999999731779099
gl_lens_kcube=0.10000000149011612
gl_light_particles=true
gl_light_shadowmap=false
gl_light_sprites=true
gl_lights=true
gl_mask_sprite_threshold=0.5
gl_mask_threshold=0.5
gl_mirror_envmap=true
gl_multisample=1
gl_multithread=true
gl_no_skyclear=false
gl_particles_style=0
gl_plane_reflection=true
gl_render_precise=true
gl_satformula=1
gl_seamless=true
gl_shadowmap_filter=1
gl_shadowmap_quality=512
gl_sort_textures=true
gl_sprite_blend=false
gl_ssao=0
gl_ssao_portals=1
gl_ssao_strength=0.699999988079071
gl_texture_filter=6
gl_texture_filter_anisotropic=16
gl_texture_hqresize_maxinputsize=512
gl_texture_hqresize_mt_height=4
gl_texture_hqresize_mt_width=16
gl_texture_hqresize_multithread=true
gl_texture_hqresize_targets=15
gl_texture_hqresizemode=0
gl_texture_hqresizemult=1
gl_usecolorblending=true
gme_stereodepth=0
gus_memsize=0
gus_patchdir=
i_soundinbackground=false
in_mouse=0
inter_subtitles=false
invertmouse=true
invertmousex=false
joy_dinput=true
joy_ps2raw=true
joy_xinput=true
k_allowfullscreentoggle=true
k_mergekeys=false
language=auto
longsavemessages=false
lookstrafe=false
m_blockcontrollers=false
m_cleanscale=false
m_filter=false
m_forward=0
m_pitch=0.5
m_sensitivity_x=0.4266670048236847
m_sensitivity_y=0.4266670048236847
m_show_backbutton=0
m_showinputgrid=0
m_side=2
m_simpleoptions=false
m_swapbuttons=false
m_use_mouse=1
m_yaw=1
map_point_coordinates=true
midi_config=gzdoom
midi_dmxgus=false
midi_voices=32
mod_autochip=false
mod_autochip_scan_threshold=12
mod_autochip_size_force=100
mod_autochip_size_scan=500
mod_dumb_mastervolume=1
mod_interp=2
mod_samplerate=0
mod_volramp=2
mouse_capturemode=1
mus_calcgain=true
mus_enabled=true
mus_gainoffset=0
mus_usereplaygain=false
nointerscrollabort=false
nomonsterinterpolation=false
opl_core=0
opl_fullpan=true
opl_numchips=2
opn_chips_count=8
opn_emulator_id=0
opn_fullpan=true
opn_run_at_pcm_rate=false
os_isanyof=true
png_gamma=0
png_level=5
queryiwad=true
queryiwad_key=shift
quicksavenum=-1
quicksaverotation=true
quicksaverotationcount=4
r_actorspriteshadow=1
r_actorspriteshadowdist=1500
r_blendmethod=false
r_dynlights=true
r_fakecontrast=2
r_fullbrightignoresectorcolor=true
r_fuzzscale=true
r_line_distance_cull=0
r_linearsky=false
r_magfilter=false
r_minfilter=true
r_mipmap=true
r_mirror_recursions=4
r_models=true
r_multithreaded=1
r_noaccel=false
r_quakeintensity=1
r_sprite_distance_cull=0
r_spriteadjust=2
r_ticstability=true
save_dir=
save_formatted=false
saveloadconfirmation=false
savestatistics=0
screenshot_dir=
screenshot_quiet=false
screenshot_type=png
show_messages=true
showendoom=0
snd_aldevice=Default
snd_alresampler=Default
snd_backend=openal
snd_buffersize=0
snd_channels=128
snd_efx=true
snd_hrtf=-1
snd_mastervolume=1
snd_mididevice=0
snd_midiprecache=false
snd_musicvolume=0.6499999761581421
snd_samplerate=0
snd_sfxvolume=0.8500000238418579
snd_streambuffersize=64
snd_waterreverb=true
statfile=zdoomstat.txt
storesavepic=true
strictdecorate=false
telezoom=true
timidity_channel_pressure=false
timidity_chorus=0
timidity_config=gzdoom
timidity_drum_effect=false
timidity_drum_power=1
timidity_key_adjust=0
timidity_lpf_def=1
timidity_min_sustain_time=5000
timidity_modulation_envelope=true
timidity_modulation_wheel=true
timidity_overlap_voice_allow=true
timidity_pan_delay=false
timidity_portamento=true
timidity_reverb=0
timidity_reverb_level=0
timidity_surround_chorus=false
timidity_temper_control=true
timidity_tempo_adjust=1
turnspeedsprintfast=1280
turnspeedsprintslow=320
turnspeedwalkfast=640
turnspeedwalkslow=320
use_joystick=false
use_mouse=true
vid_activeinbackground=false
vid_adapter=1
vid_aspect=0
vid_brightness=0
vid_contrast=1
vid_cropaspect=false
vid_defheight=480
vid_defwidth=640
vid_fullscreen=true
vid_gamma=1
vid_gpuswitch=0
vid_hdr=false
vid_maxfps=120
vid_preferbackend=0
vid_rendermode=4
vid_saturation=1
vid_scale_customheight=200
vid_scale_custompixelaspect=1
vid_scale_customwidth=320
vid_scale_linear=false
vid_scalefactor=1
vid_scalemode=0
vid_vsync=true
vk_debug=false
vk_debug_callstack=true
vk_device=0
vk_hdr=false
vr_enable_quadbuffered=false
vr_hunits_per_meter=41
vr_ipd=0.06199999898672104
vr_screendist=0.800000011920929
wildmidi_config=
wildmidi_enhanced_resampling=true
wildmidi_reverb=false
win_h=1152
win_maximized=false
win_w=2048
win_x=-1
win_y=-1
xbrz_centerdirectionbias=4
xbrz_colorformat=0
xbrz_dominantdirectionthreshold=3.5999999046325684
xbrz_equalcolortolerance=30
xbrz_luminanceweight=1
xbrz_steepdirectionthreshold=2.200000047683716
[GlobalSettings.Unknown]
[Doom.Player]
autoaim=0
classicflight=false
color=40 cf 00
colorset=0
fov=90
gender=male
movebob=0.25
name=Player
neverswitchonpickup=false
playerclass=Fighter
skin=base
stillbob=0
team=255
wbobfire=0
wbobspeed=1
wi_noautostartmap=false
[Doom.Player.Mod]
TopHPBars_FullBright=false
TopHPBars_Offset=0.10000000149011612
TopHPBars_RenderStyle=true
TopHPBars_Scale=0.30000001192092896
TopHPBars_Style=0
dam_fontclass=DamNumFontGameSmall
dam_physics=0
dam_translation=DamDefault
dam_usetypes=false
nashgore_bloodimpactsoundvolume=0.550000011920929
[Doom.ConsoleVariables]
addrocketexplosion=true
adl_bank=14
adl_custom_bank=
adl_use_custom_bank=false
allcheats=false
am_backcolor=2d 2d 2d
am_cdwallcolor=87 87 87
am_colorset=0
am_customcolors=false
am_drawmapback=0
am_efwallcolor=5a 5a 5a
am_emptyspacemargin=50
am_fdwallcolor=5a 5a 5a
am_followplayer=true
am_gridcolor=3c 3c 3c
am_interlevelcolor=b4 5a b4
am_intralevelcolor=5a 3c b4
am_lockedcolor=87 00 ff
am_map_secrets=0
am_markcolor=6
am_markfont=BigFont
am_notseencolor=0f 0f 0f
am_ovcdwallcolor=87 87 87
am_ovefwallcolor=5a 5a 5a
am_overlay=1
am_ovfdwallcolor=5a 5a 5a
am_ovinterlevelcolor=b4 5a b4
am_ovlockedcolor=87 00 ff
am_ovotherwallscolor=3c 3c 3c
am_ovportalcolor=3c 3c 3c
am_ovsecretsectorcolor=3c 3c 3c
am_ovsecretwallcolor=3c 3c 3c
am_ovspecialwallcolor=00 b4 b4
am_ovtelecolor=5a 5a b4
am_ovthingcolor=3c 3c 3c
am_ovthingcolor_citem=00 b4 5a
am_ovthingcolor_friend=5a 00 b4
am_ovthingcolor_item=00 5a b4
am_ovthingcolor_monster=b4 00 00
am_ovthingcolor_ncmonster=b4 00 00
am_ovunexploredsecretcolor=ff 7f 00
am_ovunseencolor=3c 3c 3c
am_ovwallcolor=b4 b4 b4
am_ovyourcolor=b4 5a 00
am_portalcolor=0f 0f 0f
am_portaloverlay=true
am_rotate=2
am_secretsectorcolor=3c 3c 3c
am_secretwallcolor=3c 3c 3c
am_showgrid=false
am_showitems=true
am_showkeys=true
am_showkeys_always=false
am_showmaplabel=2
am_showmonsters=true
am_showsecrets=true
am_showthingsprites=0
am_showtime=true
am_showtotaltime=false
am_showtriggerlines=0
am_specialwallcolor=00 b4 b4
am_textured=true
am_thingcolor=3c 3c 3c
am_thingcolor_citem=00 b4 5a
am_thingcolor_friend=5a 00 b4
am_thingcolor_item=00 5a b4
am_thingcolor_monster=b4 00 00
am_thingcolor_ncmonster=b4 00 00
am_thingrenderstyles=true
am_tswallcolor=3c 3c 3c
am_unexploredsecretcolor=ff 7f 00
am_wallcolor=b4 b4 b4
am_xhaircolor=b4 b4 b4
am_yourcolor=b4 5a 00
am_zoomdir=0
blood_fade_scalar=1
chat_substitution=false
chatmacro0=No
chatmacro1=I'm ready to kick butt!
chatmacro2=I'm OK.
chatmacro3=I'm not looking too good!
chatmacro4=Help!
chatmacro5=You suck!
chatmacro6=Next time, scumbag...
chatmacro7=Come here!
chatmacro8=I'll take care of it.
chatmacro9=Yes
cl_bbannounce=false
cl_bloodsplats=true
cl_bloodtype=0
cl_custominvulmapcolor1=00 00 1a
cl_custominvulmapcolor2=a6 a6 7a
cl_customizeinvulmap=false
cl_doautoaim=false
cl_gfxlocalization=3
cl_maxdecals=1024
cl_missiledecals=true
cl_pufftype=0
cl_rockettrails=0
cl_showmultikills=true
cl_showsecretmessage=true
cl_showsprees=true
cl_spreaddecals=true
classic_scaling_factor=1
classic_scaling_pixelaspect=1.2000000476837158
compatmode=0
con_alpha=0
con_centernotify=false
con_midtime=3
con_notablist=false
con_notifytime=3
con_pulsetext=false
con_scale=0
con_scaletext=0
crosshair=1
crosshaircolor=db 00 00
crosshairforce=false
crosshairgrow=false
crosshairhealth=0
crosshairon=true
crosshairscale=0
dehload=1
dimamount=0
dimcolor=00 00 00
displaynametags=0
dlg_musicvolume=1
dlg_vgafont=false
gl_aalines=true
gl_bandedswlight=false
gl_bloom=false
gl_bloom_amount=1.399999976158142
gl_brightfog=false
gl_enhanced_nightvision=false
gl_exposure_base=0.3499999940395355
gl_exposure_min=0.3499999940395355
gl_exposure_scale=1.2999999523162842
gl_exposure_speed=0.05000000074505806
gl_fogmode=2
gl_fuzztype=0
gl_interpolate_model_frames=true
gl_light_models=true
gl_lightadditivesurfaces=false
gl_lightmode=16
gl_menu_blur=0
gl_paltonemap_powtable=2
gl_paltonemap_reverselookup=true
gl_precache=true
gl_scale_viewport=true
gl_sclipfactor=1.7999999523162842
gl_sclipthreshold=10
gl_spriteclip=2
gl_tonemap=0
gl_weaponlight=8
hud_althud=false
hud_althud_forceinternal=false
hud_althudscale=0
hud_ammo_order=0
hud_ammo_red=25
hud_ammo_yellow=50
hud_armor_green=100
hud_armor_red=25
hud_armor_yellow=50
hud_aspectscale=true
hud_berserk_health=true
hud_health_green=100
hud_health_red=25
hud_health_yellow=50
hud_oldscale=true
hud_scale=0
hud_scalefactor=1
hud_showammo=2
hud_showangles=false
hud_showitems=false
hud_showlag=0
hud_showmonsters=true
hud_showscore=false
hud_showsecrets=true
hud_showstats=false
hud_showtime=0
hud_showweapons=true
hud_timecolor=5
hudcolor_ltim=8
hudcolor_statnames=6
hudcolor_stats=3
hudcolor_time=6
hudcolor_titl=10
hudcolor_ttim=5
hudcolor_xyco=3
inter_classic_scaling=true
log_vgafont=false
lookspring=true
m_quickexit=false
msg=0
msg0color=11
msg1color=5
msg2color=2
msg3color=3
msg4color=3
msgmidcolor=11
msgmidcolor2=4
nametagcolor=5
nocheats=false
opn_custom_bank=
opn_use_custom_bank=false
paletteflash=0
pickup_fade_scalar=1
r_deathcamera=false
r_drawfuzz=1
r_maxparticles=4000
r_portal_recursions=4
r_rail_smartspiral=false
r_rail_spiralsparsity=1
r_rail_trailsparsity=1
r_skymode=2
r_vanillatrans=0
sb_cooperative_enable=true
sb_cooperative_headingcolor=6
sb_cooperative_otherplayercolor=2
sb_cooperative_yourplayercolor=3
sb_deathmatch_enable=true
sb_deathmatch_headingcolor=6
sb_deathmatch_otherplayercolor=2
sb_deathmatch_yourplayercolor=3
sb_teamdeathmatch_enable=true
sb_teamdeathmatch_headingcolor=6
screenblocks=11
setslotstrict=true
show_obituaries=true
snd_menuvolume=1
snd_pitched=true
st_oldouch=false
st_scale=0
transsouls=0.75
ui_screenborder_classic_scaling=true
uiscale=0
underwater_fade_scalar=1
vid_allowtrueultrawide=1
vid_cursor=-
vid_nopalsubstitutions=false
wi_cleantextscale=false
wi_percents=true
wi_showtotaltime=true
wipetype=1
[Doom.LocalServerInfo]
compatflags=0
compatflags2=0
forcewater=false
maxviewpitch=90
sv_corpsequeuesize=64
sv_disableautohealth=false
sv_dropstyle=0
sv_portal_recursions=4
sv_smartaim=0
[Doom.LocalServerInfo.Mod]
dam_enabled=true
dam_shootable=false
dam_spray=0
flashlight_color=ff f1 df
flashlight_inner=11.25
flashlight_intensity=384
flashlight_location=3
flashlight_outer=22.5
nashgore_bloodmult=1
nashgore_bloodspurt=false
nashgore_bloodtype=2
nashgore_corpseblood=true
nashgore_deathflip=true
nashgore_footprints=true
nashgore_gibablecorpses=true
nashgore_gibmult=1
nashgore_gibtype=1
nashgore_icedeath=true
nashgore_maxgore=1024
nashgore_splat=true
nashgore_spriteblood=false
nashgore_squish=true
[Doom.ConfigOnlyVariables]
[Doom.ConfigOnlyVariables.Mod]
[Doom.UnknownConsoleVariables]
[Doom.ConsoleAliases]
Name=secrets2
Command=am_cheat 2; am_map_secrets 2; am_showtriggerlines 2; mapbind space secrets3
Name=smooth
Command=gl_texture_filter 4; gl_particles_style 2; gl_sprite_blend 1; gl_texture_filter_anisotropic 16; gl_texture_hqresizemode 0
Name=slow
Command=cl_capfps true; nomonsterinterpolation true
Name=am_colors3
Command=exec ../cfg/am_colors3.cfg
Name=-quicksecrets2
Command=secrets3
Name=fast
Command=cl_capfps false; nomonsterinterpolation false
Name=nocandy
Command=exec ../cfg/nocandy.cfg
Name=chunky
Command=gl_texture_filter 6; gl_particles_style 0; gl_sprite_blend 0; gl_texture_filter_anisotropic 16; gl_texture_hqresizemode 0
Name=candy
Command=exec ../cfg/candy.cfg
Name=+quicksecrets
Command=secrets
Name=secrets3
Command=am_cheat 0; am_map_secrets 0; am_showtriggerlines 0; mapbind space secrets
Name=+quicksecrets2
Command=secrets2
Name=am_colors
Command=exec ../cfg/am_colors.cfg; mapbind o am_colors2
Name=am_colors2
Command=exec ../cfg/am_colors2.cfg; mapbind o am_colors
Name=secrets
Command=am_cheat 1; am_map_secrets 2; am_showtriggerlines 2; mapbind space secrets2
Name=-quicksecrets
Command=secrets3
[Doom.SteveFlashlightKeySection.Bindings]
F=toggleflashlight_bind
[Doom.SteveFlashlightKeySection.DoubleBindings]
[Doom.Bindings]
1=slot 1
2=slot 2
3=slot 3
4=slot 4
5=slot 5
6=slot 6
7=slot 7
8=slot 8
9=slot 9
0=slot 0
Backspace=weapdrop
Tab=togglemap; am_followplayer true
W=+forward
E=+use
R=+reload
T=messagemode
Ctrl=+crouch
A=+moveleft
S=+back
D=+moveright
`=toggleconsole
Shift=+speed
\=+showscores
,=weapprev
.=weapnext
/=invquery
Space=+jump
F1=menu_help
F2=menu_save
F3=menu_load
F4=menu_options
F5=menu_display
F6=quicksave
F7=menu_endgame
F8=togglemessages
F9=quickload
F10=menu_quit
F11=spynext
Pause=pause
Del=invdrop
Mouse1=+attack
Mouse2=+altattack
[Doom.DoubleBindings]
Alt=+quicksecrets2
[Doom.AutomapBindings]
0=am_gobig
-=+am_zoomout
Equals=+am_zoomin
Q=am_setmark
W=+am_panup
R=am_toggletexture
O=am_colors2
A=+am_panleft
S=+am_pandown
D=+am_panright
F=am_togglefollow
G=am_togglegrid
Z=+am_zoomin
X=+am_zoomout
C=am_clearmarks
M=am_setmark
Alt=+quicksecrets
Space=secrets
MWheelUp=am_zoom 1.2
MWheelDown=am_zoom -1.2
Re: Mouse polling issues with view roll
Posted: Fri May 14, 2021 12:38 am
by StroggVorbis
I will test it later today once I'm back home.
Re: Mouse polling issues with view roll
Posted: Fri May 14, 2021 2:59 am
by Rachael
This is exactly the kind of use case that i_timescale was meant for.
Have you tried a value like 0.2?
Re: Mouse polling issues with view roll
Posted: Fri May 14, 2021 3:21 am
by Nash
We've determined where the problem might come from.
A_Set[View]Angle/Pitch/Roll (yes, all three are affected; not just roll, as per original report) activates the CF_INTERPVIEW flag for 1 tic if SPF_INTERPOLATE is passed to the scripts, and this is tripping the view interpolation for some reason.
For mods that only call such functions once in a while (like weapon mods with recoil), the effect is probably less felt, but for a mod like Tilt++ which calls A_SetViewRoll every tick, it manifests as "input lag" or "view jitter" to players who are sensitive to it.
However, it seems that not everyone can feel this side effect. As I've said in another thread - it is invisible to me. And apparently, to the ~10k people who're using Tilt++. Additionally, I have changed computers and hardware several times throughout the years and in none of my hardware combinations have I been able to detect this problem. But I'm acknowledging that the problem exists and shouldn't be dismissed.
Here are some snippets where phantombeta suggests what can be done about it. I'm putting this here so it doesn't get lost.
Re: Mouse polling issues with view roll
Posted: Fri May 14, 2021 4:01 am
by StroggVorbis
Sounds like almost if not exactly the same problem I reported some time ago.
viewtopic.php?f=2&t=61422
Re: Mouse polling issues with view roll
Posted: Fri May 14, 2021 4:11 am
by Graf Zahl
Sounds reasonable Normally, mouse axis polling is done at render frame rate and not interpolated. If you now add you own axis changes on top of it it will surely create interference if you want them interpolated.
We had massive issues with similar effects in Raze because the games add their own view shaking effects that simply do not work right if the mouse polling is decoupled from the tic rate - think Duke's vieq squashing effect on hard landing as an example.
In some cases the problems were bad enough that we had to temporarily revert mouse to synchronized input.
Since Roll is not affected by mouse input - only yaw and pitch is - it should be solvable, but for the other two axes it will probably require a major rework of the input code.
I'd suggest to get mjr4077au into this discussion because he has done most of that work on Raze and may have better ideas how to address it.
Re: Mouse polling issues with view roll
Posted: Fri May 14, 2021 4:37 am
by Rachael
I think the easiest solution actually might be to allow the function that changes the third axis to be run when running CF_PREDICTING. This might mean the function itself has to be run in a limited scope.
It would be easier if CF_PREDICTING was run on temporary data, instead of operating (as far as I know) a direct copy of the actual game sim data. This complicates things a lot more than it ever should.
To facilitate this, one possibility might be to make the input handlers virtual, and allow for ZScript code to change the player view as it deems necessary for such purposes.
Re: Mouse polling issues with view roll
Posted: Fri May 14, 2021 6:16 am
by Graf Zahl
I don't think that would help at all, In multiplayer the unsynchronized mouse input is completely disabled so whatever you do in the prediction code will never be subjected to what happens here.
Also changing ZScript won't help any bit. What you got here is two conflicting paths of input for the same variable and you got to find a way to make them coexist.
Re: Mouse polling issues with view roll
Posted: Fri May 14, 2021 9:46 am
by 0mnicydle
Thank you Graf!!
Btw, i_timescale .2 with the tilt mod active resulted in a hilarious "drunken doomguy" effect /EDIT it definitely makes the little "brick walls" you hit more apparent though. If the idea was to make the issue more perceptible to Nash, I think it should...
Re: Mouse polling issues with view roll
Posted: Fri May 14, 2021 10:09 am
by Nash
I've tried playing with 0.2 timescale. Nope, still no jitter detected. It feels the same with or without mods, at 1.0 timescale or 0.2.
Re: Mouse polling issues with view roll
Posted: Fri May 14, 2021 10:20 am
by 0mnicydle
Curious what your inches per 360 is. I’m at 8”. If you move your mouse at a constant speed over let’s say 12”, you don’t notice any interruptions? I’ll try the timescale thing again when I get back to my computer to make sure I’m not talking out my ass, but pretty sure I was hitting these big snags with the timescale set.