Hello everybody,
I have a little problem with mame (worries that does not seem related to the mame version) and my gamepad.
I'm using linux (gentoo) and I use mame with a CRT television to launch my games in their original resolution.
To achieve this, I use 2 techniques :
1) change the resolution of the current session
2) start a new xorg session, change its resolution, and start the game in this new session
My problem is that in case 1, my gamepad is functional while in case 2, it does not work.
Here is how I launch my 2 cases
1)
/home/globule/bin/15khz "$MODELINE" /home/globule/mame/mame0180/mame64 -v -inipath /home/globule/mame/data $GAME
2)
xinit /home/globule/bin/15khz "$MODELINE" /home/globule/mame/mame0180/mame64 -v -inipath /home/globule/mame/data $GAME -- :1 -nocursor -nolisten tcp -br
(15khz is just a small shell script that activates the modeline MODELINE on the current display and then launches my mame command)
The outputs of my 2 tests are identical :
INFO: Computed modeline 6.545453 344 352 384 416 240 245 248 262 -HSync -VSync
INFO: Applied modeline
Available videodrivers: x11 dummy
Current Videodriver: x11
Display #0
Renderdrivers:
opengl (0x0)
software (0x0)
Available audio drivers:
alsa
disk
dummy
Build version: 0.180 (unknown)
Build architecure:
Build defines 1: SDLMAME_UNIX=1 SDLMAME_X11=1 SDLMAME_LINUX=1
Build defines 1: LSB_FIRST=1 PTR64=1
SDL/OpenGL defines: SDL_COMPILEDVERSION=2004 USE_OPENGL=1
Compiler defines A: __GNUC__=5 __GNUC_MINOR__=4 __GNUC_PATCHLEVEL__=0 __VERSION__="5.4.0"
Compiler defines B: __amd64__=1 __x86_64__=1 __unix__=1
Compiler defines C: __USE_FORTIFY_LEVEL=0
Enter init_monitors
Adding monitor screen0 (344 x 240)
Leave init_monitors
Enter sdlwindow_init
Using SDL multi-window OpenGL driver (SDL 2.0+)
Hints:
SDL_FRAMEBUFFER_ACCELERATION (null)
SDL_RENDER_DRIVER (null)
SDL_RENDER_OPENGL_SHADERS (null)
SDL_RENDER_SCALE_QUALITY (null)
SDL_RENDER_VSYNC (null)
SDL_VIDEO_X11_XVIDMODE (null)
SDL_VIDEO_X11_XINERAMA (null)
SDL_VIDEO_X11_XRANDR (null)
SDL_GRAB_KEYBOARD (null)
SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS (null)
SDL_IOS_IDLE_TIMER_DISABLED (null)
SDL_IOS_ORIENTATIONS (null)
SDL_XINPUT_ENABLED (null)
SDL_GAMECONTROLLERCONFIG (null)
SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS (null)
SDL_ALLOW_TOPMOST (null)
SDL_TIMER_RESOLUTION (null)
SDL_RENDER_DIRECT3D_THREADSAFE (null)
SDL_VIDEO_ALLOW_SCREENSAVER (null)
SDL_ACCELEROMETER_AS_JOYSTICK (null)
SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK (null)
SDL_VIDEO_WIN_D3DCOMPILER (null)
SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT (null)
SDL_VIDEO_MAC_FULLSCREEN_SPACES (null)
SDL_MOUSE_RELATIVE_MODE_WARP (null)
SDL_RENDER_DIRECT3D11_DEBUG (null)
SDL_VIDEO_HIGHDPI_DISABLED (null)
SDL_WINRT_PRIVACY_POLICY_URL (null)
SDL_WINRT_PRIVACY_POLICY_LABEL (null)
SDL_WINRT_HANDLE_BACK_BUTTON (null)
Leave sdlwindow_init
Enter sdl_info::create
OpenGL: nouveau
OpenGL: Gallium 0.4 on NVA8
OpenGL: 3.0 Mesa 12.0.1
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
Leave renderer_ogl::create
Audio: Start initialization
Audio: Driver is alsa
Audio: frequency: 48000, channels: 2, samples: 1024
sdl_create_buffers: creating stream buffer of 25600 bytes
Audio: End initialization
Keyboard: Start initialization
Input: Adding keyboard #0: System keyboard (device id: System keyboard)
Keyboard: Registered System keyboard
Keyboard: End initialization
Mouse: Start initialization
Input: Adding mouse #0: System mouse (device id: System mouse)
Mouse: Registered System mouse
Mouse: End initialization
Joystick: Start initialization
Input: Adding joystick #0: USB,2-axis8-buttongamepad (device id: USB,2-axis8-buttongamepad)
Joystick: USB,2-axis 8-button gamepad
Joystick: ... 2 axes, 8 buttons 0 hats 0 balls
Joystick: ... Physical id 0 mapped to logical id 1
Joystick: End initialization
Searching font Liberation Sans in -/home/globule/mame/data path/s
font Liberation Sans|Regular is not TrueType or BDF, using MAME default
OpenGL: VBO supported
OpenGL: PBO supported
OpenGL: FBO supported
OpenGL: using vid filter: 0
Region ':cslot1:maincpu' created
unzip: opened archive file /home/globule/mame/roms_mame/mslug.zip
We can see the joystick detection :
Input: Adding joystick #0: USB,2-axis8-buttongamepad (device id: USB,2-axis8-buttongamepad)
Joystick: USB,2-axis 8-button gamepad
Joystick: ... 2 axes, 8 buttons 0 hats 0 balls
Joystick: ... Physical id 0 mapped to logical id 1
Joystick: End initialization
And the diff between both cases :
--- trace_15khz 2016-12-06 09:11:43.614052726 +0100
+++ trace_15khz_xinit 2016-12-06 09:12:23.414049210 +0100
@@ -225,7 +225,7 @@
scale 1x1, border 0, pitch 384,320/8192], bytes/pix 4
GL texture: copy 0, shader 0, dynamic 0, 320x224 320x224 [RGB32, Equal: 1, Palette: 0,
scale 1x1, border 0, pitch 384,320/8192], bytes/pix 4
-Average speed: 101.46% (6 seconds)
+Average speed: 101.46% (7 seconds)
sdl_kill: closing audio
Sound buffer: overflows=5 underflows=0
Enter sdlwindow_exit
Do you have any idea why my gamepad is not functional in case 2 ?
Thank you very much !
PS : I use the second technique (new xorg session) with other emulators without any worries of gamepad.