Build Your Own Arcade Controls Forum
Software Support => GroovyMAME => Topic started by: eldiau on April 04, 2014, 04:38:57 pm
-
Hi all,
I have a Samsung Syncmaster 214T LCD monitor that supports a vertical refresh range from 56 to 75 Hz, I'm trying to use this monitor with linux and groovymame 0152ex1 .015 to get the right refresh to play games at the right speed.
To my understanding I should use "monitor lcd" and "lcd_range 56.00-75.00" options but I can't get groovymame to switch refresh rate.
I launch groovymame with this command line:
rm -f .groovymame/cfg/*; ./bin/groovymame64_0152ex1.015 -inipath .groovymame -verbose rtype
with this mame.ini:
Parsing mame.ini
Parsing mame.ini
Parsing mame.ini
Parsing mame.ini
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'dac' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'dac' not found
Optional device 'mcu' not found
Optional device 'dac' not found
Optional device 'mcu' not found
Optional device 'dac' not found
Optional device 'mcu' not found
Optional device 'dac' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
SwitchRes: LCD vfreq range set by user as 56.000000-75.000000
SwitchRes: Monitor: lcd Orientation: horizontal Modeline generation: enabled
SwitchRes: Found output connector 'VGA1'
SwitchRes: Creating automatic specs for LCD based on VESA GTF
SwitchRes: Monitor range 69552.00-93150.00,56.00-75.00,0.696,1.044,1.740,0.013,0.040,0.510,0,1,1200,1200,0,0
SwitchRes: -resolution was set at command line or in .ini file as 1600x1200@60
SwitchRes: Setting option -nochangeres
SwitchRes: Entering switchres_modeline_setup
SwitchRes: v0.015:[rtype] Calculating best video mode for 384x256@55.017605 orientation: normal
SwitchRes: [1600]x[1200]_(60=0.0000Hz)
rng(0): 1600 x1200_56.000p 69.552 [fract] scale(4, 4, 1) diff(0.00, 14.17, 0.9824) ratio(4.167, 4.688)
SwitchRes: [rtype] (1) horizontal (384x256@55.02)->(1600x1200@56.00)
rng(0): 1600 x1200_56.000p 69.552 [fract] scale(4, 4, 1) diff(0.00, 14.17, 0.9824) ratio(4.167, 4.688)
SwitchRes: Modeline "1600x1200_60 69.55KHz 56.00Hz" 146.89 1600 1704 1856 2112 1200 1202 1205 1242 -hsync +vsync
SwitchRes: Running 'xrandr --newmode "1600x1200_56.00" 146.89 1600 1704 1856 2112 1200 1202 1205 1242 -hsync +vsync'
SwitchRes: Running 'xrandr --addmode VGA1 "1600x1200_56.00"'
SwitchRes: Setting option -rotate
SwitchRes: Setting option -noror
SwitchRes: Setting option -autoror
SwitchRes: Setting option -norol
SwitchRes: Setting option -noautorol
SwitchRes: Setting option -noblack_frame_insertion
SwitchRes: Setting option -multithreading
SwitchRes: Setting option -syncrefresh
SwitchRes: Setting option -waitvsync
SwitchRes: Setting option -keepaspect
SwitchRes: Setting option -unevenstretch
SwitchRes: Setting option -filter
SwitchRes: Setting option -prescale 4
Invalid prescale option, reverting to '1'
Build version: 0.152ex1 (Jan 15 2014)
Build architecure: SDLMAME_ARCH=
Build defines 1: SDLMAME_UNIX=1 SDLMAME_X11=1 SDLMAME_LINUX=1
Build defines 1: LSB_FIRST=1 PTR64=1 DISTRO=generic SYNC_IMPLEMENTATION=tc
SDL/OpenGL defines: SDL_COMPILEDVERSION=1215 USE_OPENGL=1 USE_DISPATCH_GL=1
Compiler defines A: __GNUC__=4 __GNUC_MINOR__=8 __GNUC_PATCHLEVEL__=2 __VERSION__="4.8.2 20131219 (prerelease)"
Compiler defines B: __amd64__=1 __x86_64__=1 __unix__=1
Compiler defines C: __USE_FORTIFY_LEVEL=0
Invalid prescale option, reverting to '1'
SDL Device Driver : x11
SDL Monitor Dimensions: 1600 x 1200
Enter sdlwindow_init
Using SDL single-window OpenGL driver (SDL 1.2)
Leave sdlwindow_init
Loaded opengl shared library: <default>
OpenGL: Intel Open Source Technology Center
OpenGL: Mesa DRI Intel(R) Q45/Q43
OpenGL: 2.1 Mesa 10.1.0
OpenGL: texture rectangle supported
OpenGL: non-power-of-2 textures supported (new method)
OpenGL: vertex buffer supported
OpenGL: pixel buffers supported
OpenGL: framebuffer object supported
OpenGL: GLSL supported, but disabled
OpenGL: max texture size 8192 x 8192
Keyboard: Start initialization
Input: Adding Kbd #0: System keyboard
Keyboard: Registered System keyboard
Keyboard: End initialization
Mouse: Start initialization
Input: Adding Mouse #0: System mouse
Mouse: Registered System mouse
Mouse: End initialization
Joystick: Start initialization
Joystick: End initialization
Audio: Start initialization
Audio: Driver is pulse
Audio: frequency: 48000, channels: 2, samples: 256
sdl_create_buffers: creating stream buffer of 76800 bytes
Audio: End initialization
output: unable to open output notifier file /tmp/sdlmame_out
Region ':maincpu' created
Region ':gfx1' created
Region ':gfx2' created
Region ':gfx3' created
Searching font Liberation Sans in -fontpath
Matching font: /usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf
Starting R-Type (World) ':'
Optional device 'dac' not found
Optional device 'mcu' not found
Optional shared pointer 'spriteram2' not found
Optional shared pointer 'majtitle_rowscr' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
(missing dependencies; rescheduling)
Starting V30 ':maincpu'
Starting Z80 ':soundcpu'
Starting Video Screen ':screen'
Starting Speaker ':lspeaker'
(missing dependencies; rescheduling)
Starting Speaker ':rspeaker'
(missing dependencies; rescheduling)
Starting M72 Custom ':m72'
Starting YM2151 ':ymsnd'
Starting R-Type (World) ':'
Optional device 'dac' not found
Optional device 'mcu' not found
Optional shared pointer 'spriteram2' not found
Optional shared pointer 'majtitle_rowscr' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
(missing dependencies; rescheduling)
Starting Speaker ':lspeaker'
Starting Speaker ':rspeaker'
Starting R-Type (World) ':'
Optional device 'dac' not found
Optional device 'mcu' not found
Optional shared pointer 'spriteram2' not found
Optional shared pointer 'majtitle_rowscr' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
OpenGL: VBO supported
OpenGL: PBO supported
OpenGL: FBO supported
OpenGL: using vid filter: 1
GL texture: copy 1, shader 0, dynamic 1, 384x256 384x256 [PALETTE16, Equal: 0, Palette: 1,
scale 1x1, border 0, pitch 512,384/8192], colors: 512, bytes/pix 4
GL texture: copy 1, shader 0, dynamic 1, 384x256 384x256 [PALETTE16, Equal: 0, Palette: 1,
scale 1x1, border 0, pitch 512,384/8192], colors: 512, bytes/pix 4
Average speed: 109.06% (7 seconds)
sdl_kill: closing audio
Joystick: Start deinitialization
Joystick: End deinitialization
Enter sdlwindow_exit
Leave sdlwindow_exit
SwitchRes: Restoring desktop resolution: 1600x1200
SwitchRes: Running 'xrandr --output VGA1 --mode 1600x1200'
SwitchRes: Running 'xrandr --delmode VGA1 "1600x1200_56.00"'
SwitchRes: Running 'xrandr --rmmode "1600x1200_56.00"'
and I get this output:
#
# CORE CONFIGURATION OPTIONS
#
readconfig 1
writeconfig 0
#
# CORE SEARCH PATH OPTIONS
#
rompath $HOME/emulators/mame/roms
hashpath /usr/share/games/mame/hash
samplepath $HOME/emulators/mame/samples
artpath $HOME/emulators/mame/artwork;$HOME/.mame/artwork
ctrlrpath $HOME/.mame/ctrlr
inipath $HOME/.groovymame
fontpath /tmp
cheatpath $HOME/.mame/cheat
crosshairpath $HOME/.mame/crosshair;/usr/local/share/games/mame/crosshair
#
# CORE OUTPUT DIRECTORY OPTIONS
#
cfg_directory $HOME/.groovymame/cfg
nvram_directory $HOME/.groovymame/nvram
memcard_directory $HOME/.groovymame/memcard
input_directory $HOME/.groovymame/inp
state_directory $HOME/.groovymame/sta
snapshot_directory $HOME/.groovymame/snap
diff_directory $HOME/.groovymame/diff
comment_directory $HOME/.groovymame/comments
#
# CORE OUTPUT DIRECTORY OPTIONS
#
hiscore_directory $HOME/.groovymame/hi
#
# CORE STATE/PLAYBACK OPTIONS
#
state
autosave 0
playback
record
mngwrite
aviwrite
wavwrite
snapname %g/%i
snapsize auto
snapview internal
statename %g
burnin 0
#
# CORE PERFORMANCE OPTIONS
#
autoframeskip 0
frameskip 0
seconds_to_run 0
throttle 1
syncrefresh 0
sleep 1
speed 1.0
refreshspeed 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
effect aperturescan1280.png
#
# CORE VECTOR OPTIONS
#
antialias 1
beam 1.0
flicker 0
#
# CORE SOUND OPTIONS
#
sound 1
samplerate 48000
samples 1
volume 0
#
# CORE INPUT OPTIONS
#
coin_lockout 1
ctrlr
mouse 0
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
#
log 0
verbose 0
update_in_pause 0
debug 0
debugscript
debug_internal 0
#
# CORE MISC OPTIONS
#
drc 1
drc_use_c 0
bios
cheat 0
skip_gameinfo 1
uifont default
ramsize
confirm_quit 0
ui_mouse 0
autoboot_command
autoboot_delay 2
autoboot_script
http 0
http_port 8080
http_path web
#
# CORE MKChamp OPTIONS
#
disable_hiscore_patch 1
disable_nagscreen_patch 0
disable_loading_patch 0
#
# CORE SWITCHRES OPTIONS
#
modeline_generation 1
monitor lcd
#monitor custom
orientation horizontal
connector auto
interlace 1
doublescan 1
cleanstretch 0
changeres 1
powerstrip 0
lock_system_modes 0
lock_unsupported_modes 1
refresh_dont_care 1
dotclock_min 0
sync_refresh_tolerance 2.0
frame_delay 0
black_frame_insertion 0
modeline auto
ps_timing auto
# Samsung:
lcd_range 56.00-75.00
crt_range0 30000.00-81000.00,56.00-75.00,0.696,1.044,1.740,0.013,0.040,0.510,0,1,200,1200,0,0
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
#
# DEBUGGING OPTIONS
#
oslog 0
watchdog 0
#
# PERFORMANCE OPTIONS
#
multithreading 1
numprocessors auto
sdlvideofps 0
bench 0
#
# VIDEO OPTIONS
#
video opengl
numscreens 1
window 0
maximize 1
keepaspect 0
unevenstretch 0
centerh 1
centerv 1
waitvsync 1
scalemode none
#
# OpenGL-SPECIFIC OPTIONS
#
filter 0
prescale 1
gl_forcepow2texture 0
gl_notexturerect 0
gl_vbo 1
gl_pbo 1
gl_glsl 0
#gl_glsl 1
gl_glsl_filter 1
glsl_shader_mame0 none
glsl_shader_mame1 none
#glsl_shader_mame0 /home/arcade/.mame/CRT/shader/glsl_plain
#glsl_shader_mame1 /home/arcade/.mame/CRT/CRT-geom
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
gl_glsl_vid_attr 1
#
# 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
#
# FULL SCREEN OPTIONS
#
switchres 1
useallheads 0
#
# SOUND OPTIONS
#
audio_latency 2
#
# SDL KEYBOARD MAPPING
#
keymap 0
keymap_file keymap.dat
uimodekey SCRLOCK
#
# 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 LOWLEVEL DRIVER OPTIONS
#
videodriver auto
audiodriver auto
gl_lib auto
I am sure my graphic card supports the requested resolution and I can set it on the desktop using:
emu@arcade:~$ xrandr --newmode "1600x1200_56.00" 146.89 1600 1704 1856 2112 1200 1202 1205 1242 -hsync +vsync
emu@arcade:~$ xrandr --addmode VGA1 "1600x1200_56.00"
emu@arcade:~$ xrandr --output VGA1 --mode "1600x1200_56.00"
Any suggestions?
-
Hi eldiau,
Your setup looks right. However the question is what video card you're using. In my experience, and in the Linux context, an ATI card would output our custom modeline/refresh regardless what the monitor EDID dictates. Intel cards on the other hand seem to ignore custom refresh rates for LCD screens.
-
Hi Calamity,
thanks for you answer
And an Intel card I have!
You probably nailed the problem... I'll try with an ATI card and report back...
-
No luck :banghead:
With a PCI-E ATI Radeon HD5450 I get the exact same problem (no sync switching) and exact same log:
Parsing mame.ini
Parsing mame.ini
Parsing mame.ini
Parsing mame.ini
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'dac' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'dac' not found
Optional device 'mcu' not found
Optional device 'dac' not found
Optional device 'mcu' not found
Optional device 'dac' not found
Optional device 'mcu' not found
Optional device 'dac' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
Optional device 'mcu' not found
SwitchRes: LCD vfreq range set by user as 56.000000-75.000000
SwitchRes: Monitor: lcd Orientation: horizontal Modeline generation: enabled
SwitchRes: Found output connector 'VGA-0'
SwitchRes: Creating automatic specs for LCD based on VESA GTF
SwitchRes: Monitor range 69552.00-93150.00,56.00-75.00,0.696,1.044,1.740,0.013,0.040,0.510,0,1,1200,1200,0,0
SwitchRes: -resolution was set at command line or in .ini file as 1600x1200@60
SwitchRes: Setting option -nochangeres
SwitchRes: Entering switchres_modeline_setup
SwitchRes: v0.015:[rtype] Calculating best video mode for 384x256@55.017605 orientation: normal
SwitchRes: [1600]x[1200]_(60=0.0000Hz)
rng(0): 1600 x1200_56.000p 69.552 [fract] scale(4, 4, 1) diff(0.00, 14.17, 0.9824) ratio(4.167, 4.688)
SwitchRes: [rtype] (1) horizontal (384x256@55.02)->(1600x1200@56.00)
rng(0): 1600 x1200_56.000p 69.552 [fract] scale(4, 4, 1) diff(0.00, 14.17, 0.9824) ratio(4.167, 4.688)
SwitchRes: Modeline "1600x1200_60 69.55KHz 56.00Hz" 146.89 1600 1704 1856 2112 1200 1202 1205 1242 -hsync +vsync
SwitchRes: Running 'xrandr --newmode "1600x1200_56.00" 146.89 1600 1704 1856 2112 1200 1202 1205 1242 -hsync +vsync'
SwitchRes: Running 'xrandr --addmode VGA-0 "1600x1200_56.00"'
SwitchRes: Setting option -rotate
SwitchRes: Setting option -noror
SwitchRes: Setting option -autoror
SwitchRes: Setting option -norol
SwitchRes: Setting option -noautorol
SwitchRes: Setting option -noblack_frame_insertion
SwitchRes: Setting option -multithreading
SwitchRes: Setting option -syncrefresh
SwitchRes: Setting option -waitvsync
SwitchRes: Setting option -keepaspect
SwitchRes: Setting option -unevenstretch
SwitchRes: Setting option -filter
SwitchRes: Setting option -prescale 4
Invalid prescale option, reverting to '1'
Build version: 0.152ex1 (Jan 15 2014)
Build architecure: SDLMAME_ARCH=
Build defines 1: SDLMAME_UNIX=1 SDLMAME_X11=1 SDLMAME_LINUX=1
Build defines 1: LSB_FIRST=1 PTR64=1 DISTRO=generic SYNC_IMPLEMENTATION=tc
SDL/OpenGL defines: SDL_COMPILEDVERSION=1215 USE_OPENGL=1 USE_DISPATCH_GL=1
Compiler defines A: __GNUC__=4 __GNUC_MINOR__=8 __GNUC_PATCHLEVEL__=2 __VERSION__="4.8.2 20131219 (prerelease)"
Compiler defines B: __amd64__=1 __x86_64__=1 __unix__=1
Compiler defines C: __USE_FORTIFY_LEVEL=0
Invalid prescale option, reverting to '1'
SDL Device Driver : x11
SDL Monitor Dimensions: 1600 x 1200
Enter sdlwindow_init
Using SDL single-window OpenGL driver (SDL 1.2)
Leave sdlwindow_init
Loaded opengl shared library: <default>
OpenGL: X.Org
OpenGL: Gallium 0.4 on AMD CEDAR
OpenGL: 3.0 Mesa 10.1.0
OpenGL: texture rectangle supported
OpenGL: non-power-of-2 textures supported (new method)
OpenGL: vertex buffer supported
OpenGL: pixel buffers supported
OpenGL: framebuffer object supported
OpenGL: GLSL supported, but disabled
OpenGL: max texture size 16384 x 16384
Keyboard: Start initialization
Input: Adding Kbd #0: System keyboard
Keyboard: Registered System keyboard
Keyboard: End initialization
Mouse: Start initialization
Input: Adding Mouse #0: System mouse
Mouse: Registered System mouse
Mouse: End initialization
Joystick: Start initialization
Joystick: End initialization
Audio: Start initialization
Audio: Driver is pulse
Audio: frequency: 48000, channels: 2, samples: 256
sdl_create_buffers: creating stream buffer of 76800 bytes
Audio: End initialization
output: unable to open output notifier file /tmp/sdlmame_out
Region ':maincpu' created
Region ':gfx1' created
Region ':gfx2' created
Region ':gfx3' created
Searching font Liberation Sans in -fontpath
Matching font: /usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf
Starting R-Type (World) ':'
Optional device 'dac' not found
Optional device 'mcu' not found
Optional shared pointer 'spriteram2' not found
Optional shared pointer 'majtitle_rowscr' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
(missing dependencies; rescheduling)
Starting V30 ':maincpu'
Starting Z80 ':soundcpu'
Starting Video Screen ':screen'
Starting Speaker ':lspeaker'
(missing dependencies; rescheduling)
Starting Speaker ':rspeaker'
(missing dependencies; rescheduling)
Starting M72 Custom ':m72'
Starting YM2151 ':ymsnd'
Starting R-Type (World) ':'
Optional device 'dac' not found
Optional device 'mcu' not found
Optional shared pointer 'spriteram2' not found
Optional shared pointer 'majtitle_rowscr' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
(missing dependencies; rescheduling)
Starting Speaker ':lspeaker'
Starting Speaker ':rspeaker'
Starting R-Type (World) ':'
Optional device 'dac' not found
Optional device 'mcu' not found
Optional shared pointer 'spriteram2' not found
Optional shared pointer 'majtitle_rowscr' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
OpenGL: VBO supported
OpenGL: PBO supported
OpenGL: FBO supported
OpenGL: using vid filter: 1
GL texture: copy 1, shader 0, dynamic 1, 384x256 384x256 [PALETTE16, Equal: 0, Palette: 1,
scale 1x1, border 0, pitch 512,384/16384], colors: 512, bytes/pix 4
GL texture: copy 1, shader 0, dynamic 1, 384x256 384x256 [PALETTE16, Equal: 0, Palette: 1,
scale 1x1, border 0, pitch 512,384/16384], colors: 512, bytes/pix 4
Average speed: 109.12% (12 seconds)
sdl_kill: closing audio
Sound buffer: overflows=1 underflows=0
Joystick: Start deinitialization
Joystick: End deinitialization
Enter sdlwindow_exit
Leave sdlwindow_exit
SwitchRes: Restoring desktop resolution: 1600x1200
SwitchRes: Running 'xrandr --output VGA-0 --mode 1600x1200'
SwitchRes: Running 'xrandr --delmode VGA-0 "1600x1200_56.00"'
SwitchRes: Running 'xrandr --rmmode "1600x1200_56.00"'
Checked de EDID info with "sudo get-edid | parse-edid" and I get this:
Section "Monitor"
Identifier "SyncMaster"
ModelName "SyncMaster"
VendorName "SAM"
# Monitor Manufactured week 46 of 2006
# EDID version 1.3
# Analog Display
Option "SyncOnGreen" "true"
DisplaySize 430 320
Gamma 2.20
Option "DPMS" "true"
Horizsync 30-81
VertRefresh 56-75
# Maximum pixel clock is 170MHz
#Not giving standard mode: 1600x1200, 60Hz
#Not giving standard mode: 1280x1024, 60Hz
#Not giving standard mode: 1280x960, 60Hz
#Not giving standard mode: 1152x864, 75Hz
Modeline "Mode 0" 162.00 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
EndSection
Should I try to connect the monitor with the DVI port (I'm using VGA now)?
The verbose outputs says "SwitchRes: -resolution was set at command line or in .ini file as 1600x1200@60" is this normal?
Checking the grovymame .diff at line 2654 I see:
if (!strcmp(cs->monitor, "lcd"))
than, inside the IF:
current.refresh = 60;
and
sprintf(resolution, "%dx%d@%d", current.width, current.height, current.refresh);
Is this supposed to lock the resolution for the info screens only?
-
No, that doesn't lock the refresh rate, that's only to make sure we get the most likely current resolution for the desktop.
As you see, the commands GM is running are these:
SwitchRes: Running 'xrandr --newmode "1600x1200_56.00" 146.89 1600 1704 1856 2112 1200 1202 1205 1242 -hsync +vsync'
SwitchRes: Running 'xrandr --addmode VGA-0 "1600x1200_56.00"'
You may try those commands by yourself to see if the driver is actually accepting that mode or it is conflicting with its EDID preset.
Also, try using any of the "vesa" presets in GroovyMAME. I know those are not what you want, but they may help figuring out things. For instance, try "vesa_1024".
-
I'm sure the modes get added by groovymame, I can list them via ssh while GM is running and it deletes them after exiting.
I did try launching:
emu@arcade:~$ xrandr --newmode "1600x1200_56.00" 146.89 1600 1704 1856 2112 1200 1202 1205 1242 -hsync +vsync
emu@arcade:~$ xrandr --addmode VGA1 "1600x1200_56.00"
emu@arcade:~$ xrandr --output VGA1 --mode "1600x1200_56.00"
on both the Intel and ATI gfx boards ad I get the correct refresh rate so I'm sure they work.
If I manualy set the resolution and after that I launch GM it keeps the resolution, here it's the switchres log after launching xrand by hand and than GM:
SwitchRes: LCD vfreq range set by user as 56.000000-75.000000
SwitchRes: Monitor: lcd Orientation: horizontal Modeline generation: enabled
SwitchRes: Found output connector 'VGA-0'
SwitchRes: Creating automatic specs for LCD based on VESA GTF
SwitchRes: Monitor range 69552.00-93150.00,56.00-75.00,0.696,1.044,1.740,0.013,0.040,0.510,0,1,1200,1200,0,0
SwitchRes: -resolution was set at command line or in .ini file as 1600x1200@60
SwitchRes: Setting option -nochangeres
SwitchRes: Entering switchres_modeline_setup
SwitchRes: v0.015:[rtype] Calculating best video mode for 384x256@55.017605 orientation: normal
SwitchRes: [1600]x[1200]_(60=0.0000Hz)
rng(0): 1600 x1200_56.000p 69.552 [fract] scale(4, 4, 1) diff(0.00, 14.17, 0.9824) ratio(4.167, 4.688)
SwitchRes: [rtype] (1) horizontal (384x256@55.02)->(1600x1200@56.00)
rng(0): 1600 x1200_56.000p 69.552 [fract] scale(4, 4, 1) diff(0.00, 14.17, 0.9824) ratio(4.167, 4.688)
SwitchRes: Modeline "1600x1200_60 69.55KHz 56.00Hz" 146.89 1600 1704 1856 2112 1200 1202 1205 1242 -hsync +vsync
SwitchRes: Running 'xrandr --newmode "1600x1200_56.00" 146.89 1600 1704 1856 2112 1200 1202 1205 1242 -hsync +vsync'
X Error of failed request: BadName (named color or font does not exist)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 16 (RRCreateMode)
Serial number of failed request: 33
Current serial number in output stream: 33
SwitchRes: Running 'xrandr --addmode VGA-0 "1600x1200_56.00"'
SwitchRes: Setting option -rotate
SwitchRes: Setting option -noror
SwitchRes: Setting option -autoror
SwitchRes: Setting option -norol
SwitchRes: Setting option -noautorol
SwitchRes: Setting option -noblack_frame_insertion
SwitchRes: Setting option -multithreading
SwitchRes: Setting option -syncrefresh
SwitchRes: Setting option -waitvsync
SwitchRes: Setting option -keepaspect
SwitchRes: Setting option -unevenstretch
SwitchRes: Setting option -filter
SwitchRes: Setting option -prescale 4
I obviusly get an error when GN tryis to re-add the already existing mode, but the the game rauns at the right speed:
Average speed: 101.73% (32 seconds)
versus:
Average speed: 109.12% (12 seconds)
when running at 60Hz
Using the "vesa_1024" presets does change the resolution I get a 1152x825@75Hz and the game (rtype) runs at 136% with this verbose log:
SwitchRes: Monitor range 29320.00-30320.00,50.00-65.00,0.671,2.683,3.353,0.034,0.101,0.436,0,1,384,480,0,0
SwitchRes: Monitor range 36820.00-37820.00,50.00-65.00,0.837,2.093,2.931,0.027,0.080,0.482,0,1,480,600,0,0
SwitchRes: Monitor range 47200.00-48200.00,50.00-65.00,0.874,1.622,2.496,0.021,0.063,0.482,0,1,600,768,0,0
SwitchRes: Monitor range 63100.00-64100.00,50.00-65.00,0.759,1.241,2.000,0.016,0.047,0.503,0,1,768,1024,0,0
SwitchRes: Monitor: vesa_1024 Orientation: horizontal Modeline generation: enabled
SwitchRes: Found output connector 'VGA-0'
SwitchRes: Entering switchres_modeline_setup
SwitchRes: v0.015:[rtype] Calculating best video mode for 384x256@55.017605 orientation: normal
SwitchRes: ( 1)x( 1)_(60=0.0000Hz)
rng(0): 640 x 480_55.018p 29.324 [fract] scale(1, 1, 1) diff(0.00, 0.00, 0.0000) ratio(1.667, 1.875)
rng(1): 800 x 600_55.018p 36.862 [fract] scale(2, 2, 1) diff(0.00, 33.43, 0.0000) ratio(2.083, 2.344)
rng(2): 1152 x 768_55.018p 47.205 [integ] scale(3, 3, 1) diff(0.00, 0.00, 0.0000) ratio(3.000, 3.000)
rng(3): 1152 x 768_55.018p 63.105 [integ] scale(3, 3, 1) diff(0.00, 0.00, 0.0000) ratio(3.000, 3.000)
SwitchRes: [rtype] (1) horizontal (384x256@55.02)->(1152x768@55.02)
rng(2): 1152 x 768_55.018p 47.205 [integ] scale(3, 3, 1) diff(0.00, 0.00, 0.0000) ratio(3.000, 3.000)
SwitchRes: Modeline "1152x768_60 47.21KHz 55.02Hz" 71.00 1152 1216 1328 1504 768 801 804 858 -hsync +vsync
SwitchRes: Running 'xrandr --newmode "1152x768_55.02" 71.00 1152 1216 1328 1504 768 801 804 858 -hsync +vsync'
SwitchRes: Running 'xrandr --addmode VGA-0 "1152x768_55.02"'
SwitchRes: Setting option -rotate
SwitchRes: Setting option -noror
SwitchRes: Setting option -autoror
SwitchRes: Setting option -norol
SwitchRes: Setting option -noautorol
SwitchRes: Setting option -noblack_frame_insertion
SwitchRes: Setting option -multithreading
SwitchRes: Setting option -syncrefresh
SwitchRes: Setting option -waitvsync
SwitchRes: Setting option -keepaspect
SwitchRes: Setting option -nounevenstretch
SwitchRes: Setting option -nofilter
SwitchRes: Setting option -prescale 3
Build version: 0.152ex1 (Jan 15 2014)
Build architecure: SDLMAME_ARCH=
Build defines 1: SDLMAME_UNIX=1 SDLMAME_X11=1 SDLMAME_LINUX=1
Build defines 1: LSB_FIRST=1 PTR64=1 DISTRO=generic SYNC_IMPLEMENTATION=tc
SDL/OpenGL defines: SDL_COMPILEDVERSION=1215 USE_OPENGL=1 USE_DISPATCH_GL=1
Compiler defines A: __GNUC__=4 __GNUC_MINOR__=8 __GNUC_PATCHLEVEL__=2 __VERSION__="4.8.2 20131219 (prerelease)"
Compiler defines B: __amd64__=1 __x86_64__=1 __unix__=1
Compiler defines C: __USE_FORTIFY_LEVEL=0
SDL Device Driver : x11
SDL Monitor Dimensions: 1600 x 1200
Enter sdlwindow_init
Using SDL single-window OpenGL driver (SDL 1.2)
Leave sdlwindow_init
Loaded opengl shared library: <default>
OpenGL: X.Org
OpenGL: Gallium 0.4 on AMD CEDAR
OpenGL: 3.0 Mesa 10.1.0
OpenGL: texture rectangle supported
OpenGL: non-power-of-2 textures supported (new method)
OpenGL: vertex buffer supported
OpenGL: pixel buffers supported
OpenGL: framebuffer object supported
OpenGL: GLSL supported, but disabled
OpenGL: max texture size 16384 x 16384
Keyboard: Start initialization
Input: Adding Kbd #0: System keyboard
Keyboard: Registered System keyboard
Keyboard: End initialization
Mouse: Start initialization
Input: Adding Mouse #0: System mouse
Mouse: Registered System mouse
Mouse: End initialization
Joystick: Start initialization
Joystick: End initialization
Audio: Start initialization
Audio: Driver is pulse
Audio: frequency: 48000, channels: 2, samples: 256
sdl_create_buffers: creating stream buffer of 76800 bytes
Audio: End initialization
output: unable to open output notifier file /tmp/sdlmame_out
Region ':maincpu' created
Region ':gfx1' created
Region ':gfx2' created
Region ':gfx3' created
Searching font Liberation Sans in -fontpath
Matching font: /usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf
Starting R-Type (World) ':'
Optional device 'dac' not found
Optional device 'mcu' not found
Optional shared pointer 'spriteram2' not found
Optional shared pointer 'majtitle_rowscr' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
(missing dependencies; rescheduling)
Starting V30 ':maincpu'
Starting Z80 ':soundcpu'
Starting Video Screen ':screen'
Starting Speaker ':lspeaker'
(missing dependencies; rescheduling)
Starting Speaker ':rspeaker'
(missing dependencies; rescheduling)
Starting M72 Custom ':m72'
Starting YM2151 ':ymsnd'
Starting R-Type (World) ':'
Optional device 'dac' not found
Optional device 'mcu' not found
Optional shared pointer 'spriteram2' not found
Optional shared pointer 'majtitle_rowscr' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
(missing dependencies; rescheduling)
Starting Speaker ':lspeaker'
Starting Speaker ':rspeaker'
Starting R-Type (World) ':'
Optional device 'dac' not found
Optional device 'mcu' not found
Optional shared pointer 'spriteram2' not found
Optional shared pointer 'majtitle_rowscr' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
OpenGL: VBO supported
OpenGL: PBO supported
OpenGL: FBO supported
OpenGL: using vid filter: 0
GL texture: copy 1, shader 0, dynamic 1, 1152x768 1152x768 [PALETTE16, Equal: 0, Palette: 1,
scale 3x3, border 0, pitch 512,1152/16384], colors: 512, bytes/pix 4
GL texture: copy 1, shader 0, dynamic 1, 1152x768 1152x768 [PALETTE16, Equal: 0, Palette: 1,
scale 3x3, border 0, pitch 512,1152/16384], colors: 512, bytes/pix 4
Average speed: 136.32% (7 seconds)
sdl_kill: closing audio
Joystick: Start deinitialization
Joystick: End deinitialization
Enter sdlwindow_exit
Leave sdlwindow_exit
SwitchRes: Restoring desktop resolution: 1600x1200
SwitchRes: Running 'xrandr --output VGA-0 --mode 1600x1200'
SwitchRes: Running 'xrandr --delmode VGA-0 "1152x768_55.02"'
SwitchRes: Running 'xrandr --rmmode "1152x768_55.02"'
mame.ini is always this one:
#
# CORE CONFIGURATION OPTIONS
#
readconfig 1
writeconfig 0
#
# CORE SEARCH PATH OPTIONS
#
rompath $HOME/emulators/mame/roms
hashpath /usr/share/games/mame/hash
samplepath $HOME/emulators/mame/samples
artpath $HOME/emulators/mame/artwork;$HOME/.mame/artwork;$HOME/.mame.ora/artwork
ctrlrpath $HOME/.mame/ctrlr
inipath $HOME/.groovymame
fontpath /tmp
cheatpath $HOME/.mame/cheat
crosshairpath $HOME/.mame/crosshair;/usr/local/share/games/mame/crosshair
#
# CORE OUTPUT DIRECTORY OPTIONS
#
cfg_directory $HOME/.groovymame/cfg
nvram_directory $HOME/.groovymame/nvram
memcard_directory $HOME/.groovymame/memcard
input_directory $HOME/.groovymame/inp
state_directory $HOME/.groovymame/sta
snapshot_directory $HOME/.groovymame/snap
diff_directory $HOME/.groovymame/diff
comment_directory $HOME/.groovymame/comments
#
# CORE OUTPUT DIRECTORY OPTIONS
#
hiscore_directory $HOME/.groovymame/hi
#
# CORE STATE/PLAYBACK OPTIONS
#
state
autosave 0
playback
record
mngwrite
aviwrite
wavwrite
snapname %g/%i
snapsize auto
snapview internal
statename %g
burnin 0
#
# CORE PERFORMANCE OPTIONS
#
autoframeskip 0
frameskip 0
seconds_to_run 0
throttle 1
syncrefresh 0
sleep 1
speed 1.0
refreshspeed 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
effect aperturescan1280.png
#
# CORE VECTOR OPTIONS
#
antialias 1
beam 1.0
flicker 0
#
# CORE SOUND OPTIONS
#
sound 1
samplerate 48000
samples 1
volume 0
#
# CORE INPUT OPTIONS
#
coin_lockout 1
ctrlr
mouse 0
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
#
log 0
verbose 0
update_in_pause 0
debug 0
debugscript
debug_internal 0
#
# CORE MISC OPTIONS
#
drc 1
drc_use_c 0
bios
cheat 0
skip_gameinfo 1
uifont default
ramsize
confirm_quit 0
ui_mouse 0
autoboot_command
autoboot_delay 2
autoboot_script
http 0
http_port 8080
http_path web
#
# CORE MKChamp OPTIONS
#
disable_hiscore_patch 1
disable_nagscreen_patch 0
disable_loading_patch 0
#
# CORE SWITCHRES OPTIONS
#
modeline_generation 1
monitor vesa_1024
#monitor lcd
#monitor custom
orientation horizontal
connector auto
interlace 1
doublescan 1
cleanstretch 0
changeres 1
powerstrip 0
lock_system_modes 0
lock_unsupported_modes 1
refresh_dont_care 0
dotclock_min 0
sync_refresh_tolerance 2.0
frame_delay 0
black_frame_insertion 0
modeline auto
ps_timing auto
# Samsung:
lcd_range 56.00-75.00
crt_range0 30000.00-81000.00,56.00-75.00,0.696,1.044,1.740,0.013,0.040,0.510,0,1,200,1200,0,0
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
#
# DEBUGGING OPTIONS
#
oslog 0
watchdog 0
#
# PERFORMANCE OPTIONS
#
multithreading 1
numprocessors auto
sdlvideofps 0
bench 0
#
# VIDEO OPTIONS
#
video opengl
numscreens 1
window 0
maximize 1
keepaspect 0
unevenstretch 0
centerh 1
centerv 1
waitvsync 1
scalemode none
#
# OpenGL-SPECIFIC OPTIONS
#
filter 0
prescale 1
gl_forcepow2texture 0
gl_notexturerect 0
gl_vbo 1
gl_pbo 1
gl_glsl 0
#gl_glsl 1
gl_glsl_filter 1
glsl_shader_mame0 none
glsl_shader_mame1 none
#glsl_shader_mame0 /home/arcade/.mame/CRT/shader/glsl_plain
#glsl_shader_mame1 /home/arcade/.mame/CRT/CRT-geom
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
gl_glsl_vid_attr 1
#
# 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
#
# FULL SCREEN OPTIONS
#
switchres 1
useallheads 0
#
# SOUND OPTIONS
#
audio_latency 2
#
# SDL KEYBOARD MAPPING
#
keymap 0
keymap_file keymap.dat
uimodekey SCRLOCK
#
# 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 LOWLEVEL DRIVER OPTIONS
#
videodriver auto
audiodriver auto
gl_lib auto
I tryed using "monitor custom" and adding the modeline it makes up when using the lcd preset in "crt_range0 30000.00-81000.00,56.00-75.00,0.696,1.044,1.740,0.013,0.040,0.510,0,1,200,1200,0,0" but I get a 640x480@75Hz with this output:
SwitchRes: Monitor range 30000.00-81000.00,56.00-75.00,0.696,1.044,1.740,0.013,0.040,0.510,0,1,200,1200,0,0
SwitchRes: Monitor: custom Orientation: horizontal Modeline generation: enabled
SwitchRes: Found output connector 'VGA-0'
SwitchRes: Entering switchres_modeline_setup
SwitchRes: v0.015:[rtype] Calculating best video mode for 384x256@55.017605 orientation: normal
SwitchRes: ( 1)x( 1)_(60=0.0000Hz)
rng(0): 384 x 256_56.000p 30.016 [integ] scale(1, 1, 1) diff(0.00, 0.00, 0.9824) ratio(1.000, 1.000)
SwitchRes: [rtype] (1) horizontal (384x256@55.02)->(384x256@56.00)
rng(0): 384 x 256_56.000p 30.016 [integ] scale(1, 1, 1) diff(0.00, 0.00, 0.9824) ratio(1.000, 1.000)
SwitchRes: Modeline "384x256_60 30.02KHz 56.00Hz" 13.21 384 400 416 440 256 388 389 536 -hsync +vsync
SwitchRes: Running 'xrandr --newmode "384x256_56.00" 13.21 384 400 416 440 256 388 389 536 -hsync +vsync'
SwitchRes: Running 'xrandr --addmode VGA-0 "384x256_56.00"'
SwitchRes: Setting option -rotate
SwitchRes: Setting option -noror
SwitchRes: Setting option -autoror
SwitchRes: Setting option -norol
SwitchRes: Setting option -noautorol
SwitchRes: Setting option -noblack_frame_insertion
SwitchRes: Setting option -multithreading
SwitchRes: Setting option -syncrefresh
SwitchRes: Setting option -waitvsync
SwitchRes: Setting option -keepaspect
SwitchRes: Setting option -nounevenstretch
SwitchRes: Setting option -nofilter
SwitchRes: Setting option -prescale 1
Build version: 0.152ex1 (Jan 15 2014)
Build architecure: SDLMAME_ARCH=
Build defines 1: SDLMAME_UNIX=1 SDLMAME_X11=1 SDLMAME_LINUX=1
Build defines 1: LSB_FIRST=1 PTR64=1 DISTRO=generic SYNC_IMPLEMENTATION=tc
SDL/OpenGL defines: SDL_COMPILEDVERSION=1215 USE_OPENGL=1 USE_DISPATCH_GL=1
Compiler defines A: __GNUC__=4 __GNUC_MINOR__=8 __GNUC_PATCHLEVEL__=2 __VERSION__="4.8.2 20131219 (prerelease)"
Compiler defines B: __amd64__=1 __x86_64__=1 __unix__=1
Compiler defines C: __USE_FORTIFY_LEVEL=0
SDL Device Driver : x11
SDL Monitor Dimensions: 1600 x 1200
Enter sdlwindow_init
Using SDL single-window OpenGL driver (SDL 1.2)
Leave sdlwindow_init
Loaded opengl shared library: <default>
OpenGL: X.Org
OpenGL: Gallium 0.4 on AMD CEDAR
OpenGL: 3.0 Mesa 10.1.0
OpenGL: texture rectangle supported
OpenGL: non-power-of-2 textures supported (new method)
OpenGL: vertex buffer supported
OpenGL: pixel buffers supported
OpenGL: framebuffer object supported
OpenGL: GLSL supported, but disabled
OpenGL: max texture size 16384 x 16384
Keyboard: Start initialization
Input: Adding Kbd #0: System keyboard
Keyboard: Registered System keyboard
Keyboard: End initialization
Mouse: Start initialization
Input: Adding Mouse #0: System mouse
Mouse: Registered System mouse
Mouse: End initialization
Joystick: Start initialization
Joystick: End initialization
Audio: Start initialization
Audio: Driver is pulse
Audio: frequency: 48000, channels: 2, samples: 256
sdl_create_buffers: creating stream buffer of 76800 bytes
Audio: End initialization
output: unable to open output notifier file /tmp/sdlmame_out
Region ':maincpu' created
Region ':gfx1' created
Region ':gfx2' created
Region ':gfx3' created
Searching font Liberation Sans in -fontpath
Matching font: /usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf
Starting R-Type (World) ':'
Optional device 'dac' not found
Optional device 'mcu' not found
Optional shared pointer 'spriteram2' not found
Optional shared pointer 'majtitle_rowscr' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
(missing dependencies; rescheduling)
Starting V30 ':maincpu'
Starting Z80 ':soundcpu'
Starting Video Screen ':screen'
Starting Speaker ':lspeaker'
(missing dependencies; rescheduling)
Starting Speaker ':rspeaker'
(missing dependencies; rescheduling)
Starting M72 Custom ':m72'
Starting YM2151 ':ymsnd'
Starting R-Type (World) ':'
Optional device 'dac' not found
Optional device 'mcu' not found
Optional shared pointer 'spriteram2' not found
Optional shared pointer 'majtitle_rowscr' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
(missing dependencies; rescheduling)
Starting Speaker ':lspeaker'
Starting Speaker ':rspeaker'
Starting R-Type (World) ':'
Optional device 'dac' not found
Optional device 'mcu' not found
Optional shared pointer 'spriteram2' not found
Optional shared pointer 'majtitle_rowscr' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
Optional shared pointer 'paletteram2' not found
Optional shared pointer 'paletteram' not found
OpenGL: VBO supported
OpenGL: PBO supported
OpenGL: FBO supported
OpenGL: using vid filter: 0
GL texture: copy 1, shader 0, dynamic 1, 384x256 384x256 [PALETTE16, Equal: 0, Palette: 1,
scale 1x1, border 0, pitch 512,384/16384], colors: 512, bytes/pix 4
GL texture: copy 1, shader 0, dynamic 1, 384x256 384x256 [PALETTE16, Equal: 0, Palette: 1,
scale 1x1, border 0, pitch 512,384/16384], colors: 512, bytes/pix 4
Average speed: 136.33% (43 seconds)
sdl_kill: closing audio
Joystick: Start deinitialization
Joystick: End deinitialization
Enter sdlwindow_exit
Leave sdlwindow_exit
SwitchRes: Restoring desktop resolution: 1600x1200
SwitchRes: Running 'xrandr --output VGA-0 --mode 1600x1200'
SwitchRes: Running 'xrandr --delmode VGA-0 "384x256_56.00"'
SwitchRes: Running 'xrandr --rmmode "384x256_56.00"'
-
Just to add more informations, GM does add the mode to the list but it simply doesn't switch to it.
Here is the output of xrandr launched while GM is running rtype:
emu@cab:~$ xrandr
Screen 0: minimum 320 x 200, current 1600 x 1200, maximum 8192 x 8192
HDMI-0 disconnected (normal left inverted right x axis y axis)
DVI-0 connected 1600x1200+0+0 (normal left inverted right x axis y axis) 432mm x 324mm
1600x1200 60.0*+
1280x1024 75.0 60.0
1280x960 60.0
1152x864 75.0
1024x768 75.1 70.1 60.0
832x624 74.6
800x600 72.2 75.0 60.3 56.2
640x480 75.0 72.8 66.7 60.0
720x400 70.1
1600x1200_56.00 56.0
VGA-0 disconnected (normal left inverted right x axis y axis)
1600x1200_56.00 is in the list but non activated
For now I "solved" :dunno the problem writing a quick a dirty wrapper script, it basically run GM for 1 second, capture the xrandr commands, parse them, and use them with the addition of the "--output" command to really switch resolution before running GM again with the correct resolution already switched:
#!/bin/bash
# Get xrandr commands running groovymame for one second
echo $HOME/bin/groovymame64_0152ex1.015 -verbose -seconds_to_run 1 $*
XRANDR=`$HOME/bin/groovymame64_0152ex1.015 -inipath .groovymame -verbose -seconds_to_run 1 $* | grep "xrandr"`
# Parse xrandr commands
XRANDR_NEWMODE=`echo $XRANDR | sed "s/^.*'\(.*\)'.*'\(.*\)'.*'\(.*\)'.*'\(.*\)'.*'\(.*\)'.*$/\1/" | sed 's/"//g'`
XRANDR_ADDMODE=`echo $XRANDR | sed "s/^.*'\(.*\)'.*'\(.*\)'.*'\(.*\)'.*'\(.*\)'.*'\(.*\)'.*$/\2/" | sed 's/"//g'`
NEWMODE_NAME=`echo $XRANDR_ADDMODE | awk '{ print $4}'`
OUTPUT_PORT=`echo $XRANDR_ADDMODE | awk '{ print $3}'`
XRANDR_OUTPUT="xrandr --output $OUTPUT_PORT --mode $NEWMODE_NAME"
XRANDR_RESET_OUTPUT=`echo $XRANDR | sed "s/^.*'\(.*\)'.*'\(.*\)'.*'\(.*\)'.*'\(.*\)'.*'\(.*\)'.*$/\3/" | sed 's/"//g'`
XRANDR_DELMODE=`echo $XRANDR | sed "s/^.*'\(.*\)'.*'\(.*\)'.*'\(.*\)'.*'\(.*\)'.*'\(.*\)'.*$/\4/" | sed 's/"//g'`
XRANDR_RMMODE=`echo $XRANDR | sed "s/^.*'\(.*\)'.*'\(.*\)'.*'\(.*\)'.*'\(.*\)'.*'\(.*\)'.*$/\5/" | sed 's/"//g'`
# Create new mode
$XRANDR_NEWMODE
# Add created mode to current output port
$XRANDR_ADDMODE
# Switch to new to mode
$XRANDR_OUTPUT
$HOME/bin/groovymame64_0152ex1.015 $*
# Restore normal output mode
$XRANDR_RESET_OUTPUT
# Delete mode from output list
$XRANDR_DELMODE
# Delete mode
$XRANDR_RMMODE
-
For now I "solved" :dunno the problem writing a quick a dirty wrapper script, it basically run GM for 1 second, capture the xrandr commands, parse them, and use them with the addition of the "--output" command to really switch resolution before running GM again with the correct resolution already switched:
Although you call it quick and dirty I think it is a very clever solution you came up with. :)
Thanks to this I think I now know what's going on. GM switches resolutions by using the SDL "resize" function IIRC. So first it calculates the modeline, adds it through xrandr, then switches to it with the "resize" function. Unlike in Windows, where we destroy the full D3D interface and recreate it, this is not necessary in Linux because SDL internally switches resolutions when asked for a resize while in full screen mode. The problem is, as you may have guessed, that when dealing with LCD monitors, this "resize" is not an actual resize! We're just changing the refresh rate. So probably the mode switch is not triggered. In the CRT realm it's much more unusual to see this case where we only need to switch the refresh rate. Maybe the solution is to force switching to the new mode via xrandr inside the code.
-
Thanks for looking into it Calamity!
I added the appropriate xrandr call to add_custom_video_mode() recompiled GM.. .and it works ;D, I couldn't add it to switchres_resolution_change() because I miss a couple of variables in there and I'm not into GM code enough. I didn't test it on a 15khz monitor (I'm recapping mine just now) nor on windows (I don't have a windows machine at home)...
The diff is attached to this message...
-
Hi eldiau,
This is great! I'll add your fix to the new release. And that is the exact place to put the xrandr call because switchres_resolution_change() indirectly ends in add_custom_video_mode() too.
BTW is video really smooth at 56 Hz? I mean is actually the Samsung outputting 56 Hz?
-
Cool workaround, reminds me of having to telnet in to grab FBdev details from AdvanceCFG :D
-
I merged the changes into latest groovymame patch.
Here (http://forum.arcadecontrols.com/index.php/topic,135823.msg1432794.html#msg1432794) you will find more information.
-
BTW is video really smooth at 56 Hz? I mean is actually the Samsung outputting 56 Hz?
At first I was optimistic, I mean, the name of the monitor is syncMASTER after all! I did my testing with rtype (horizontal scrolling), donpachi (for vertical scrolling) a btime (for older games) and despite some tearing they seemed ok, the monitor OSD said the refresh rate was the right one for the game.
But after trying with wboy I realized the monitor is really working at 60Hz and using doing an internal frame rate conversion bringing up really ugly motion artifacts :badmood:
-
I merged the changes into latest groovymame patch.
Here (http://forum.arcadecontrols.com/index.php/topic,135823.msg1432794.html#msg1432794) you will find more information.
Thanks Ansa! :cheers:
-
BTW is video really smooth at 56 Hz? I mean is actually the Samsung outputting 56 Hz?
At first I was optimistic, I mean, the name of the monitor is syncMASTER after all! I did my testing with rtype (horizontal scrolling), donpachi (for vertical scrolling) a btime (for older games) and despite some tearing they seemed ok, the monitor OSD said the refresh rate was the right one for the game.
But after trying with wboy I realized the monitor is really working at 60Hz and using doing an internal frame rate conversion bringing up really ugly motion artifacts :badmood:
I also run variable refresh rate on my LCD system but with a fixed resolution.
One LCD monitor displays correct (No ugly tears etc), The other (A HP monitor) does not.
-
Hi eldiau,
This is great! I'll add your fix to the new release. And that is the exact place to put the xrandr call because switchres_resolution_change() indirectly ends in add_custom_video_mode() too.
BTW is video really smooth at 56 Hz? I mean is actually the Samsung outputting 56 Hz?
When I was experimenting with GroovyMame/Arcade I could never get it to switch refresh rates with a fixed resolution.
I take it this fixes that problem, But just for curiosities sake - Can you explain what was it doing before and what this fix now does?
-
Before the modeline was generated, then added, but not switched to (it was mame itself to pick the best modeline from those available in the system).
This leaded to wrong behavior when the new modeline has the same resolution as the modeline in use, but different frequency: in this particular case mame didn't change modeline, keeping the one with wrong frequency.
Now the modeline is generated, then added and immediately switched to.
-
OK, Got it. Thanks Ansa.
For fixed resolution operation,
My first attempt at getting dynamic refresh rate was in a similar fashion - And failed just the same :-)
ie. I created/added a new mode then called Mame with -resolution options hoping switchres would select my
new mode based on the -resolution passed. But as it was already at the same res, It didn't change the mode.
Now I create/add/activate the new mode and disable switchres when I run Mame (No resolution options passed).
-
Before the modeline was generated, then added, but not switched to (it was mame itself to pick the best modeline from those available in the system).
This leaded to wrong behavior when the new modeline has the same resolution as the modeline in use, but different frequency: in this particular case mame didn't change modeline, keeping the one with wrong frequency.
Now the modeline is generated, then added and immediately switched to.
Just a heads up!!!
I thought I'd do some quick tests on my uptodate Arch system.....
Seems something has changed. I can now create and switch resolutions freely while in X.
Possibly some sort of function like the SDL patch has been incorporated in the video system.
Perhaps the SDL patch is no longer required.
I'm going to noodle around with it today, I'll post any extra info to this thread.
-
More info uncovered!
My min resolution reported by xrandr is now 8x8 where previously is was 320x240 for the OS intel video drivers.
So perhaps also the video driver patch is no longer required...
-
The possibilities of this could be:
1. The xorg.conf file is not needed at all, The default desktop (menu) mode can be created from .xinitrc
2. GroovyMame can be run from custom/personal Arch Linux installs without any patches (for operation).
3. You don't have to patch the OS, So it's easier to make newer uptodate builds of GroovyArcade.
It's been awhile since I looked at GroovyArcade, So I'm not sure GA (with sdl patch) needed xorg.conf anyway.
-
Some other observations:
On my system, occasionally there is some sort of bootup initialization issue which effects:
1. X takes about 30 seconds to start up instead of the usual 2~3 seconds.
2. The system hangs when you try to shut it down or reboot it.
I'm not sure if it's a quirk with my rig or Arch Linux that is causing the occasional fault.
Just something to be aware of.
-
Nice. Not needing to patch things makes life a heck of a lot easier. Wonder who commuted those changes.
-
Hi ozfalcon,
1. The xorg.conf file is not needed at all, The default desktop (menu) mode can be created from .xinitrc
I gather that you still need to place it somewhere, anyway it's good to know.
2. GroovyMame can be run from custom/personal Arch Linux installs without any patches (for operation).
3. You don't have to patch the OS, So it's easier to make newer uptodate builds of GroovyArcade.
Yes, it can run fine for the most part but that's not entirely true.
The need to path SDL comes from the fact that some games switch resolutions several times. SDL caches the mode table on its initialization so it can't switch to a mode that's been created after the start a MAME session. A typical test case is ga2. If you use an LCD you may not notice this.
Then you have the video drivers, without specific patches they usually won't go any lower than 320x240. But there's also an issue related to DPMS in current ATI drivers that prevents v-sync from working during a few seconds after a mode change.
Regarding the kernel itself, paching is required if you want 15 kHz outside X. I think you can achieve this by different means but this one is rather effort-less.
You need to patch the kernel too if you want to use an AVGA 3000, it won't work properly otherwise. It seems this is no longer required with the AVGA 5000.
-
Though still, The situation has changed/improved.
Previously standard Mame would not run correctly in sync mode if the res was created after X was started. And now it does.
The video drivers now report a min res of 8x8 - But they still may not go below 320x240 as you mention.
That's a shame about games like ga2 and the other issues.
The kernel patch is still required for bootup 15k, But it's more an option than a requirement - which is good.