I have a question regarding all the new settings in switchres and some observations I have made with different settings. I hope that Calamity or one of the more experianced users on here can explain. So I have been using the latest Groovymame which of course has numerous benefites and enhancments over previous versions but I have had what can only be described as screen tearing or a very mild form of it.
What I mean is that there would be a sort of wave / ripple effect on the screen that could move up or down the screen on most games (rastan, robocop, gigawing, 1944)
This has been frustrating me as I never used to have this so I starting experamenting with the numerous settings in the mame.ini and now I have a stable perfect picture on all games. Let me explain, first it's prob best if I upload my current working mame.ini
#
# CORE CONFIGURATION OPTIONS
#
readconfig 1
writeconfig 0
#
# CORE SEARCH PATH OPTIONS
#
rompath /home/roms/mame/bios;/home/roms/mame/roms;/home/roms/mame/chds
hashpath $HOME/hash
samplepath /home/roms/mame/samples
artpath /home/roms/mame/artwork
ctrlrpath /home/roms/mame/ctrlr
inipath $HOME/.ume;$HOME;.;$HOME/ini
fontpath /home/roms/mame/fonts
cheatpath /home/roms/mame/cheat
crosshairpath /home/roms/mame/crosshair
crosshairpath $HOME/crosshair
pluginspath /usr/share/sdlmame/plugins
languagepath $HOME/language
swpath $HOME/software
#
# CORE OUTPUT DIRECTORY OPTIONS
#
cfg_directory $HOME/cfg
nvram_directory $HOME/nvram
input_directory $HOME/inp
state_directory $HOME/sta
snapshot_directory $HOME/snap
diff_directory $HOME/diff
comment_directory $HOME/comments
#
# CORE STATE/PLAYBACK OPTIONS
#
state
autosave 0
playback
record
record_timecode 0
exit_after_playback 0
mngwrite
aviwrite
wavwrite
snapname %g/%i
snapsize auto
snapview internal
snapbilinear 1
statename %g
burnin 0
#
# CORE PERFORMANCE OPTIONS
#
autoframeskip 0
frameskip 0
seconds_to_run 0
throttle 1
syncrefresh 1
autosync 0
sleep 1
speed 1.0
refreshspeed 0
#
# CORE RENDER OPTIONS
#
keepaspect 1
unevenstretch 1
unevenstretchx 0
unevenstretchy 0
autostretchxy 0
intoverscan 0
intscalex 0
intscaley 0
#
# CORE ROTATION OPTIONS
#
rotate 1
ror 0
rol 0
autoror 0
autorol 0
flipx 0
flipy 0
#
# CORE ARTWORK OPTIONS
#
artwork_crop 1
use_backdrops 0
use_overlays 0
use_bezels 0
use_cpanels 0
use_marquees 0
#
# CORE SCREEN OPTIONS
#
brightness 1.0
contrast 1.0
gamma 1.0
pause_brightness 0.65
effect none
#
# CORE VECTOR OPTIONS
#
beam_width_min 1.0
beam_width_max 1.0
beam_intensity_weight 0
flicker 0
#
# CORE SOUND OPTIONS
#
samplerate 48000
samples 1
volume 0
#
# CORE INPUT OPTIONS
#
coin_lockout 1
ctrlr
mouse 1
joystick 1
lightgun 0
multikeyboard 0
multimouse 0
steadykey 0
ui_active 0
offscreen_reload 0
joystick_map auto
joystick_deadzone 0.3
joystick_saturation 0.85
natural 0
joystick_contradictory 0
coin_impulse 0
#
# CORE INPUT AUTOMATIC ENABLE OPTIONS
#
paddle_device keyboard
adstick_device keyboard
pedal_device keyboard
dial_device keyboard
trackball_device mouse
lightgun_device mouse
positional_device keyboard
mouse_device mouse
#
# CORE DEBUGGING OPTIONS
#
verbose 0
log 0
oslog 0
debug 0
update_in_pause 0
debugscript
#
# CORE COMM OPTIONS
#
comm_localhost 0.0.0.0
comm_localport 15112
comm_remotehost 127.0.0.1
comm_remoteport 15112
#
# CORE MISC OPTIONS
#
drc 1
drc_use_c 0
drc_log_uml 0
drc_log_native 0
bios
cheat 0
skip_gameinfo 1
uifont default
ui cabinet
ramsize
confirm_quit 0
ui_mouse 1
autoboot_command
autoboot_delay 0
autoboot_script
console 0
plugins 1
plugin hiscore
noplugin
language English
#
# CORE SWITCHRES OPTIONS
#
modeline_generation 1
monitor custom
orientation horizontal
connector auto
interlace 1
doublescan 1
super_width 2560
changeres 1
powerstrip 0
lock_system_modes 1
lock_unsupported_modes 1
refresh_dont_care 0
dotclock_min 0
sync_refresh_tolerance 2.0
frame_delay 0
vsync_offset 0
black_frame_insertion 0
modeline auto
ps_timing auto
lcd_range auto
crt_range0 15625-16200, 49.50-65.00, 2.000, 4.700, 8.000, 0.064, 0.160, 1.056, 0, 0, 288, 400
crt_range1 24960-24960, 49.50-65.00, 0.800, 4.000, 3.200, 0.080, 0.200, 1.000, 0, 0, 400, 768
crt_range2 auto
crt_range3 auto
crt_range4 auto
crt_range5 auto
crt_range6 auto
crt_range7 auto
crt_range8 auto
crt_range9 auto
#
# OSD KEYBOARD MAPPING OPTIONS
#
uimodekey SCRLOCK
#
# OSD FONT OPTIONS
#
uifontprovider auto
#
# OSD OUTPUT OPTIONS
#
output auto
#
# OSD INPUT OPTIONS
#
keyboardprovider auto
mouseprovider auto
lightgunprovider auto
joystickprovider auto
#
# OSD DEBUGGING OPTIONS
#
debugger auto
debugger_font auto
debugger_font_size 0
watchdog 0
#
# OSD PERFORMANCE OPTIONS
#
numprocessors auto
bench 0
#
# OSD VIDEO OPTIONS
#
video auto
numscreens 1
window 0
maximize 1
waitvsync 1
monitor polo
#
# OSD PER-WINDOW VIDEO OPTIONS
#
screen auto
aspect auto
resolution auto
view auto
screen0 auto
aspect0 auto
resolution0 auto
view0 auto
screen1 auto
aspect1 auto
resolution1 auto
view1 auto
screen2 auto
aspect2 auto
resolution2 auto
view2 auto
screen3 auto
aspect3 auto
resolution3 auto
view3 auto
#
# OSD FULL SCREEN OPTIONS
#
switchres 1
#
# OSD ACCELERATED VIDEO OPTIONS
#
filter 0
prescale 1
#
# OpenGL-SPECIFIC OPTIONS
#
gl_forcepow2texture 0
gl_notexturerect 0
gl_vbo 1
gl_pbo 1
gl_glsl 0
gl_glsl_filter 1
glsl_shader_mame0 none
glsl_shader_mame1 none
glsl_shader_mame2 none
glsl_shader_mame3 none
glsl_shader_mame4 none
glsl_shader_mame5 none
glsl_shader_mame6 none
glsl_shader_mame7 none
glsl_shader_mame8 none
glsl_shader_mame9 none
glsl_shader_screen0 none
glsl_shader_screen1 none
glsl_shader_screen2 none
glsl_shader_screen3 none
glsl_shader_screen4 none
glsl_shader_screen5 none
glsl_shader_screen6 none
glsl_shader_screen7 none
glsl_shader_screen8 none
glsl_shader_screen9 none
#
# OSD SOUND OPTIONS
#
sound portaudio
audio_latency 1.0
#
# PORTAUDIO OPTIONS
#
pa_api none
pa_device default
pa_latency 0.05
#
# BGFX POST-PROCESSING OPTIONS
#
bgfx_path bgfx
bgfx_backend auto
bgfx_debug 0
bgfx_screen_chains default
bgfx_shadow_mask slot-mask.png
bgfx_avi_name auto
#
# SDL PERFORMANCE OPTIONS
#
sdlvideofps 0
#
# SDL VIDEO OPTIONS
#
centerh 1
centerv 1
scalemode none
#
# SDL FULL SCREEN OPTIONS
#
useallheads 0
#
# SDL KEYBOARD MAPPING
#
keymap 0
keymap_file keymap.dat
#
# SDL JOYSTICK MAPPING
#
joy_idx1 auto
joy_idx2 auto
joy_idx3 auto
joy_idx4 auto
joy_idx5 auto
joy_idx6 auto
joy_idx7 auto
joy_idx8 auto
sixaxis 0
#
# SDL MOUSE MAPPING
#
mouse_index1 auto
mouse_index2 auto
mouse_index3 auto
mouse_index4 auto
mouse_index5 auto
mouse_index6 auto
mouse_index7 auto
mouse_index8 auto
#
# SDL KEYBOARD MAPPING
#
keyb_idx1 auto
keyb_idx2 auto
keyb_idx3 auto
keyb_idx4 auto
keyb_idx5 auto
keyb_idx6 auto
keyb_idx7 auto
keyb_idx8 auto
#
# SDL LOWLEVEL DRIVER OPTIONS
#
videodriver auto
renderdriver auto
audiodriver auto
gl_lib auto
So if I highlight the options that I changed to get a solid no tearing screen and maybe Calamity could explain why this is working and if this has any detrement in terms of latency etc.. to the performance of the emulation?
The main changes were:
changed autosync from 1 to 0 (turned it off)
changed syncrefresh from 0 to 1 (turned it on)
and finally changed waitvsync from 0 to 1 (turned it on) (Make sure this is enabled or you get crazy fast emulation even with throttle enabled)
with these changes I get what seems to be a perfect screen no tearing and in my opinion great emulation performance and no slowdown.
I am using a Polo/2 CRT with this setup and I have a ATI HD 4350 GPU on a Horizontal setup.
Any thoughts on my observations and if there is an even better way to get this output with better performance. Thanks again to Calamity, Ves, Doozer and Inteals and any other developers who keep making this the best solution for old school arcade emulation.
Thanks,
Strontium