Build Your Own Arcade Controls Forum
Software Support => GroovyMAME => Topic started by: tiben on November 12, 2016, 01:51:19 pm
-
Hi,
I'm on Ubuntu Linux, with Groovymame versions compiled myself using official Mame source + groovymame patchs.
I noticed a bug with two systems when they switch the resolution during the runtime since GM 0.178 and remains on 0.179
First is with Genesis driver:
$ groovymame genesis contra
After the display of the Konami logo, the display seems to switch then the screen become white and the emulation seems to freeze internally (GM remains launched)
Second is with Playstation driver:
$ groovymame psj -cdrom <any-psx-game>.iso
The Playstation logo appears then GM crash with a segfault.
Theses behaviors do not occur with official Mame.
More generaly it seems to concern systems with dynamic resolution switching.
-
Its seem a false positive.
I think i forgot to remove old cfg and nvram files which messed up my setup.
It works as expected now.
Sorry for the inconvenience.
-
Its seem a false positive.
I think i forgot to remove old cfg and nvram files which messed up my setup.
It works as expected now.
Sorry for the inconvenience.
Hi tiben,
Thank you for reporting this. Indeed, resolution switching issue under Linux should be fixed.
Is it still feasible for you to diff the old and current mame.ini files to identify the option causing misbehaviour?
-
Sure:
$ diff mame.ini.broken mame.ini.good
92,97c92,97
< artwork_crop 1
< use_backdrops 0
< use_overlays 0
< use_bezels 0
< use_cpanels 0
< use_marquees 0
---
> artwork_crop 0
> use_backdrops 1
> use_overlays 1
> use_bezels 1
> use_cpanels 1
> use_marquees 1
128c128
< mouse 0
---
> mouse 1
215c215
< frame_delay 1
---
> frame_delay 0
306c306
< switchres 1
---
> switchres 0
311,312c311,312
< filter 0
< prescale 1
---
> filter 1
> prescale 2
348c348
< audio_latency 2.0
---
> audio_latency 2
353c353
< bgfx_path bgfx
---
> bgfx_path /usr/local/share/mame/bgfx
426a427
After some tests the issue seems to come from the "switchres" option which i mistakenly sat to 1.
Thank you for reporting this. Indeed, resolution switching issue under Linux should be fixed.
Do you mean there is another known issue with resolution switching on Linux ?
More generally, does Groovymame still supports Linux builds or is it more of a side effect because of Mame compile natively on Linux or because of GroovyArcade history ?
I ask because i see mainly Windows users on the forum!
One last question, is it normal i need to put waitvsync=1 to have perfect scrolling ? If not the scrolling is great but i have an annoying tearing line on most (if no all) systems. This line does appears at differents positions at each launch but remains stable (it does not scan the screen). Sometimes the scroll is perfect, i think that's because the tearing line is located out of the screen. It is not a big issue as i don't notice input lags but i would like to know if this points out that something is fundamentally broken with my setup. I use Nvidia/nouveau drivers.
-
Some multi resolution game like Tekken were impacted by a crash during in-game resolution change. This was prior to alpha2 release. Now it is fixed.
waitvsync is not necessary if you go for 15kHz output. I assume you do bgfx with LCD monitor which then need it to avoid tearing effect.
-
I assume you do bgfx with LCD monitor which then need it to avoid tearing effect.
No, i think you assume that because of the bgfx parameter of the diff but i mistakenly intertwined the mame.ini from a vanilla Mame install and the Groovymame one.
I do real 15khz, i use a JVC CRT TV set connected using an UMSA adapter and opengl.
Here is my complete Groovymame mame.ini:
(i set waitvsync on the command line, because setting it on mame.ini has no effect)
#
# CORE CONFIGURATION OPTIONS
#
readconfig 1
writeconfig 0
#
# CORE SEARCH PATH OPTIONS
#
rompath /usr/local/share/mame/roms
hashpath /usr/local/share/mame/hash
samplepath /usr/local/share/mame/samples
artpath /usr/local/share/mame/artwork
ctrlrpath /usr/local/share/mame/ctrlr
inipath $HOME/.15khz-mame
fontpath /usr/local/share/mame
cheatpath /usr/local/share/cheat
crosshairpath /usr/local/share/crosshair
pluginspath /usr/local/share/plugins
languagepath /usr/local/share/language
swpath /usr/local/share/software
#
# CORE OUTPUT DIRECTORY OPTIONS
#
cfg_directory $HOME/.15khz-mame/cfg
nvram_directory $HOME/.15khz-mame/nvram
input_directory $HOME/.15khz-mame/inp
state_directory $HOME/.15khz-mame/sta
snapshot_directory $HOME/.15khz-mame/snap
diff_directory $HOME/.15khz-mame/diff
comment_directory $HOME/.15khz-mame/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 0
autosync 1
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 0
use_backdrops 1
use_overlays 1
use_bezels 1
use_cpanels 1
use_marquees 1
#
# 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 keyboard
lightgun_device keyboard
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
noplugin
language English
#
# CORE SWITCHRES OPTIONS
#
modeline_generation 1
#monitor generic_15
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-15750, 49.50-65.00, 2.000, 4.700, 5.000, 0.064, 0.192, 0.600, 0, 0, 192, 288, 448, 576
crt_range1 auto
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 opengl
numscreens 1
window 0
maximize 1
waitvsync 0
monitorprovider auto
#
# 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 0
#
# OSD ACCELERATED VIDEO OPTIONS
#
filter 1
prescale 2
#
# 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 auto
audio_latency 2
#
# BGFX POST-PROCESSING OPTIONS
#
bgfx_path /usr/local/share/mame/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
-
If you're using a CRT the the -switchres option needs to be enabled.
-syncrefresh and -waitvsync are managed automatically by GM (recommended) as long as -autosync is enabled.
-autosync will remove tearing in the situations were the achieved refresh is close enough to the target refresh (-syncrefresh_tolerance). When it's too off, -autosync will disable -syncrefresh causing tearing, but keeping the correct speed.
-
Thanks Calamity for giving me deeper insights about these options.
What is the difference between the "switchres" and the "changeres" options ? i believed "switchres was relevant with vanilla Mame only.
So i followed your recommendations .
Unfortunately, i confirm the segfault problem on dynamic resolution switching systems and it doesn't fix the tearing issue.
Here is my last up-to-date mame.ini including your recommendations :
# CORE CONFIGURATION OPTIONS
#
readconfig 1
writeconfig 0
#
# CORE SEARCH PATH OPTIONS
#
rompath /usr/local/share/mame/roms
hashpath /usr/local/share/mame/hash
samplepath /usr/local/share/mame/samples
artpath /usr/local/share/mame/artwork
ctrlrpath /usr/local/share/mame/ctrlr
inipath $HOME/.15khz-mame
fontpath /usr/local/share/mame
cheatpath /usr/local/share/cheat
crosshairpath /usr/local/share/crosshair
pluginspath /usr/local/share/plugins
languagepath /usr/local/share/language
swpath /usr/local/share/software
#
# CORE OUTPUT DIRECTORY OPTIONS
#
cfg_directory $HOME/.15khz-mame/cfg
nvram_directory $HOME/.15khz-mame/nvram
input_directory $HOME/.15khz-mame/inp
state_directory $HOME/.15khz-mame/sta
snapshot_directory $HOME/.15khz-mame/snap
diff_directory $HOME/.15khz-mame/diff
comment_directory $HOME/.15khz-mame/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 0
autosync 1
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 0
use_backdrops 1
use_overlays 1
use_bezels 1
use_cpanels 1
use_marquees 1
#
# 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 keyboard
lightgun_device keyboard
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
noplugin
language English
#
# CORE SWITCHRES OPTIONS
#
modeline_generation 1
#monitor generic_15
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 4
black_frame_insertion 0
modeline auto
ps_timing auto
lcd_range auto
crt_range0 15625-15750, 49.50-65.00, 2.000, 4.700, 5.000, 0.064, 0.192, 0.600, 0, 0, 192, 288, 448, 576
crt_range1 auto
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 opengl
numscreens 1
window 0
maximize 1
waitvsync 0
monitorprovider auto
#
# 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 1
prescale 2
#
# 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 auto
audio_latency 2
#
# BGFX POST-PROCESSING OPTIONS
#
bgfx_path /usr/local/share/mame/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
Edit: I removed the '[Fixed]' prefix from the post title as it appears there is really an issue with switchres