RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Enhanced performance of MAMEdev MAME in X11?!?!

    Scheduled Pinned Locked Moved Ideas and Development
    mamex11open glperformancegpu
    29 Posts 6 Posters 5.5k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      George
      last edited by

      Just did a fresh install with the latest RetroPie 4.7.1. I ran the basic install in RetroPie Setup and did a system update through that as well. Then, after running Install Pixel Desktop, I checked for xserver-xorg-video-fbturbo and it was installed.

      pi@retropie:~ $ dpkg -l | grep -i fbt
      ii  xserver-xorg-video-fbturbo           1.20190107~114053                   armhf        X.Org X server -- fbturbo display driver
      

      I found that it is in fact being installed when installing the Pixel desktop as evident from the logs.

      Setting up lxde (10) ...^M
      Processing triggers for libc-bin (2.28-10+rpi1) ...^M
      Processing triggers for dbus (1.12.20-0+deb10u1) ...^M
      Processing triggers for systemd (241-7~deb10u4+rpi1) ...^M
      Reading package lists...
      Building dependency tree...
      Reading state information...
      The following additional packages will be installed:
      ...
      xdg-dbus-proxy xdg-utils xserver-xorg-video-fbturbo zenity zenity-common
      ...
      Get:72 http://archive.raspberrypi.org/debian buster/main armhf xserver-xorg-video-fbturbo armhf 1.20190107~114053 [23.2 kB]
      ...
      Selecting previously unselected package xserver-xorg-video-fbturbo.
      Preparing to unpack .../134-xserver-xorg-video-fbturbo_1.20190107~114053_armhf.deb ...
      Unpacking xserver-xorg-video-fbturbo (1.20190107~114053) ...
      ...
      Setting up xserver-xorg-video-fbturbo (1.20190107~114053) ...
      

      I can remove it very easily with apt remove -Y xserver-xorg-video-fbturbo and I can add that to a script, but it can get installed again if someone installs matchbox (when they install Steamlink). What would be the best way to ensure that it doesn't get re-installed?

      mituM 1 Reply Last reply Reply Quote 0
      • mituM
        mitu Global Moderator @George
        last edited by

        I see that xserver-xorg-video-fbturbo is recommended by raspberrypi-ui-mods, so that's why it's getting installed.

        I can remove it very easily with apt remove -Y xserver-xorg-video-fbturbo and I can add that to a script, but it can get installed again if someone installs matchbox (when they install Steamlink).

        Hm, I don't seem to be able to reproduce this. Steamlink installs matchbox-window-manager, that has not dependency on xserver-xorg-video-fbturbo.

        What would be the best way to ensure that it doesn't get re-installed?

        The package is just recommended by raspberrypi-ui-mods, I think removing it would be enough.

        1 Reply Last reply Reply Quote 0
        • G
          George
          last edited by

          Thanks @mitu,

          I'll have to retest the Steamlink setup to see if I can recreate what I was seeing. It also installs Xorg (of course), but it's also possible that I've been installing more than I remember.

          I've been doing some further testing to see where the speed increase is coming from. From within the Pixel Desktop, I can run MAME with ddp3 or outrun at full speed without having to reduce the resolution before hand. It would seem to be that MAME will draw the screen at the game's native resolution and then scale it upwards as needed. Games without a native screen resolution don't get this enhancement though (like the Coleco tabletop arcade games), and will render at the full resolution of the screen when launched. Reducing the resolution before hand and launching the game shows a marked improvement, even more than what I see when running through Emulation Station and reducing the screen resolution. That makes be believe that X11 is able to access more of the GPU than the KMSDRM driver, even though they are both using OpenGL.

          The audio seems to be the same, both using ALSA drivers, same sample rate, etc.

          That's all I have for now. I'll update when I have more.

          - George

          dankcushionsD 1 Reply Last reply Reply Quote 2
          • dankcushionsD
            dankcushions Global Moderator @George
            last edited by

            @George very curious stuff. can you try adding the -verbose arg to mame in both x11 and without? curious as to the output. certainly when we tried -video accel when testing your mame PR there was large performance increases, but i certainly wouldn't have got ddp3 full speed. see https://github.com/RetroPie/RetroPie-Setup/pull/2697#issuecomment-629698811

            hopefully a verbose log should show us the difference between the two.

            G 1 Reply Last reply Reply Quote 0
            • G
              George @dankcushions
              last edited by

              Thanks @dankcushions!

              Yes, I actually tested ddp3 because you had tested it already and I wanted to try some comparisons. It was certainly unexpected. I also tested Tekken 2 and found that it ran at 66% in X11 vs. 50% in KMSDRM. I think the big difference with Tekken 2 though is that it's 3D rendering and the hardware uses a GPU which is probably being emulated in software. So there's probably a bit of a performance increase for rendering the final pixel output, but still a lot of overhead for the 3D rendering.

              I have some verbose output from Outrun (because it loads up fast and I get a good idea of the performance pretty immediately). I'll have to run my tests again with ddp3.

              The verbose output makes my post too long, so adding to multiple posts.

              G 1 Reply Last reply Reply Quote 0
              • G
                George @George
                last edited by

                Running through EmulationStation with video set to 1680x1050 (my native resolution)

                Parameters: 
                Executing: /opt/retropie/emulators/mame/mame "outrun"
                Reading translation file English: 1 strings, original table at word offset 7, translated table at word offset 9
                Loaded 0 translations from file English
                Starting plugin hiscore...
                Starting plugin data...
                Attempting load of mame.ini
                Parsing mame.ini
                Attempting load of mame.ini
                Parsing mame.ini
                Attempting load of horizont.ini
                Attempting load of arcade.ini
                Attempting load of raster.ini
                Attempting load of source/segaorun.ini
                Attempting load of outrun.ini
                Available videodrivers: x11 KMSDRM RPI dummy 
                Current Videodriver: KMSDRM
                	Display #0
                		Renderdrivers:
                			    opengl (0x0)
                			 opengles2 (0x0)
                			  opengles (0x0)
                			  software (0x0)
                Available audio drivers: 
                	alsa                
                	sndio               
                	dsp                 
                	disk                
                	dummy               
                Build version:      0.224 (mame0224)
                Build architecure:  
                Build defines 1:    SDLMAME_UNIX=1 SDLMAME_X11=1 SDLMAME_LINUX=1 
                Build defines 1:    LSB_FIRST=1 MAME_NOASM=1 
                SDL/OpenGL defines: SDL_COMPILEDVERSION=2009 USE_OPENGL=1 
                Compiler defines A: __GNUC__=8 __GNUC_MINOR__=3 __GNUC_PATCHLEVEL__=0 __VERSION__="8.3.0" 
                Compiler defines B: __unix__=1 
                Compiler defines C: __USE_FORTIFY_LEVEL=0 
                Enter init_monitors
                Adding monitor screen0 (1680 x 1050)
                Leave init_monitors
                Enter sdlwindow_init
                Using SDL native texturing driver (SDL 2.0+)
                Loaded opengl shared library: <default>
                
                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
                Leave renderer_sdl2::create
                window: using renderer opengl
                renderer: flag SDL_RENDERER_ACCELERATED
                renderer: flag SDL_RENDERER_TARGETTEXTURE
                Audio: Start initialization
                Audio: Driver is alsa
                Audio: frequency: 44100, channels: 2, samples: 512
                sdl_create_buffers: creating stream buffer of 22528 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
                Joystick: End initialization
                Searching font Liberation Sans in -. path/s
                font Liberation Sans|Regular is not TrueType or BDF, using MAME default
                Region ':maincpu' created
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip ECD
                unzip: /home/pi/RetroPie/roms/mame/outrun.zip has no ZIP64 ECD locator
                unzip: read /home/pi/RetroPie/roms/mame/outrun.zip central directory
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                Region ':subcpu' created
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                Region ':gfx1' created
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                Region ':sprites' created
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                Region ':segaic16road' created
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                Region ':soundcpu' created
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                Region ':pcm' created
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                Optional I/O port ':ADC.7' not found
                Optional I/O port ':ADC.6' not found
                Optional I/O port ':ADC.5' not found
                Optional I/O port ':ADC.4' not found
                Optional memory region ':screen' not found
                Optional shared pointer ':rotateram' not found
                Optional memory region ':nvram' not found
                Starting Out Run (sitdown/upright, Rev B) ':'
                  (missing dependencies; rescheduling)
                Starting Motorola MC68000 ':maincpu'
                Starting Motorola MC68000 ':subcpu'
                Starting Zilog Z80 ':soundcpu'
                Starting Watchdog Timer ':watchdog'
                Starting Intel 8255 PPI ':i8255'
                Starting ADC0804 A/D Converter ':adc'
                Starting Sega 315-5195 Memory Mapper ':mapper'
                Starting gfxdecode ':gfxdecode'
                Starting palette ':palette'
                Starting Video Screen ':screen'
                Starting Sega 16-bit Video ':segaic16vid'
                Starting Sega 16-bit Road Generator ':segaic16road'
                Starting Speaker ':lspeaker'
                  (missing dependencies; rescheduling)
                Starting Speaker ':rspeaker'
                  (missing dependencies; rescheduling)
                Starting Yamaha YM2151 OPM ':ymsnd'
                Starting Sega PCM ':pcm'
                Starting Timer ':bankmotor'
                Starting Sega Custom Sprites (Out Run) ':sprites'
                Starting NVRAM ':nvram'
                Starting Out Run (sitdown/upright, Rev B) ':'
                  (missing dependencies; rescheduling)
                Starting Speaker ':lspeaker'
                Starting Speaker ':rspeaker'
                Starting Out Run (sitdown/upright, Rev B) ':'
                Attempting to parse: default.cfg
                Attempting to parse: outrun.cfg
                Starting Out Run (sitdown/upright, Rev B)
                hiscore: config found
                hiscore: found hiscore.dat entry for outrun
                Searching font Liberation Sans in -. path/s
                font Liberation Sans|Regular is not TrueType or BDF, using MAME default
                Searching font Liberation Sans in -. path/s
                font Liberation Sans|Regular is not TrueType or BDF, using MAME default
                hiscore: scores read FAIL
                Average speed: 53.18% (2 seconds)
                sdl_kill: closing audio
                Sound buffer: overflows=0 underflows=147
                Enter sdlwindow_exit
                Leave sdlwindow_exit
                
                G 1 Reply Last reply Reply Quote 0
                • G
                  George @George
                  last edited by

                  Run through EmulationStation with video set to 640x480.

                  Parameters: 
                  Executing: SDL_VIDEO_KMSDRM_CRTCID=87 SDL_VIDEO_KMSDRM_MODEID=24 /opt/retropie/emulators/mame/mame "outrun"
                  Reading translation file English: 1 strings, original table at word offset 7, translated table at word offset 9
                  Loaded 0 translations from file English
                  Starting plugin data...
                  Starting plugin hiscore...
                  Attempting load of mame.ini
                  Parsing mame.ini
                  Attempting load of mame.ini
                  Parsing mame.ini
                  Attempting load of horizont.ini
                  Attempting load of arcade.ini
                  Attempting load of raster.ini
                  Attempting load of source/segaorun.ini
                  Attempting load of outrun.ini
                  Available videodrivers: x11 KMSDRM RPI dummy 
                  Current Videodriver: KMSDRM
                  	Display #0
                  		Renderdrivers:
                  			    opengl (0x0)
                  			 opengles2 (0x0)
                  			  opengles (0x0)
                  			  software (0x0)
                  Available audio drivers: 
                  	alsa                
                  	sndio               
                  	dsp                 
                  	disk                
                  	dummy               
                  Build version:      0.224 (mame0224)
                  Build architecure:  
                  Build defines 1:    SDLMAME_UNIX=1 SDLMAME_X11=1 SDLMAME_LINUX=1 
                  Build defines 1:    LSB_FIRST=1 MAME_NOASM=1 
                  SDL/OpenGL defines: SDL_COMPILEDVERSION=2009 USE_OPENGL=1 
                  Compiler defines A: __GNUC__=8 __GNUC_MINOR__=3 __GNUC_PATCHLEVEL__=0 __VERSION__="8.3.0" 
                  Compiler defines B: __unix__=1 
                  Compiler defines C: __USE_FORTIFY_LEVEL=0 
                  Enter init_monitors
                  Adding monitor screen0 (640 x 480)
                  Leave init_monitors
                  Enter sdlwindow_init
                  Using SDL native texturing driver (SDL 2.0+)
                  Loaded opengl shared library: <default>
                  
                  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
                  Leave renderer_sdl2::create
                  window: using renderer opengl
                  renderer: flag SDL_RENDERER_ACCELERATED
                  renderer: flag SDL_RENDERER_TARGETTEXTURE
                  Audio: Start initialization
                  Audio: Driver is alsa
                  Audio: frequency: 44100, channels: 2, samples: 512
                  sdl_create_buffers: creating stream buffer of 22528 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
                  Joystick: End initialization
                  Searching font Liberation Sans in -. path/s
                  font Liberation Sans|Regular is not TrueType or BDF, using MAME default
                  Region ':maincpu' created
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip ECD
                  unzip: /home/pi/RetroPie/roms/mame/outrun.zip has no ZIP64 ECD locator
                  unzip: read /home/pi/RetroPie/roms/mame/outrun.zip central directory
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  Region ':subcpu' created
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  Region ':gfx1' created
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  Region ':sprites' created
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  Region ':segaic16road' created
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  Region ':soundcpu' created
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  Region ':pcm' created
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                  unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                  unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                  Optional I/O port ':ADC.7' not found
                  Optional I/O port ':ADC.6' not found
                  Optional I/O port ':ADC.5' not found
                  Optional I/O port ':ADC.4' not found
                  Optional memory region ':screen' not found
                  Optional shared pointer ':rotateram' not found
                  Optional memory region ':nvram' not found
                  Starting Out Run (sitdown/upright, Rev B) ':'
                    (missing dependencies; rescheduling)
                  Starting Motorola MC68000 ':maincpu'
                  Starting Motorola MC68000 ':subcpu'
                  Starting Zilog Z80 ':soundcpu'
                  Starting Watchdog Timer ':watchdog'
                  Starting Intel 8255 PPI ':i8255'
                  Starting ADC0804 A/D Converter ':adc'
                  Starting Sega 315-5195 Memory Mapper ':mapper'
                  Starting gfxdecode ':gfxdecode'
                  Starting palette ':palette'
                  Starting Video Screen ':screen'
                  Starting Sega 16-bit Video ':segaic16vid'
                  Starting Sega 16-bit Road Generator ':segaic16road'
                  Starting Speaker ':lspeaker'
                    (missing dependencies; rescheduling)
                  Starting Speaker ':rspeaker'
                    (missing dependencies; rescheduling)
                  Starting Yamaha YM2151 OPM ':ymsnd'
                  Starting Sega PCM ':pcm'
                  Starting Timer ':bankmotor'
                  Starting Sega Custom Sprites (Out Run) ':sprites'
                  Starting NVRAM ':nvram'
                  Starting Out Run (sitdown/upright, Rev B) ':'
                    (missing dependencies; rescheduling)
                  Starting Speaker ':lspeaker'
                  Starting Speaker ':rspeaker'
                  Starting Out Run (sitdown/upright, Rev B) ':'
                  Attempting to parse: default.cfg
                  Attempting to parse: outrun.cfg
                  Starting Out Run (sitdown/upright, Rev B)
                  hiscore: config found
                  hiscore: found hiscore.dat entry for outrun
                  Searching font Liberation Sans in -. path/s
                  font Liberation Sans|Regular is not TrueType or BDF, using MAME default
                  Searching font Liberation Sans in -. path/s
                  font Liberation Sans|Regular is not TrueType or BDF, using MAME default
                  hiscore: scores read FAIL
                  Average speed: 99.91% (6 seconds)
                  sdl_kill: closing audio
                  Enter sdlwindow_exit
                  Leave sdlwindow_exit
                  
                  G 1 Reply Last reply Reply Quote 0
                  • G
                    George @George
                    last edited by

                    Running Outrun in X11 from an xterm with 1680x1050 resolution:

                    Reading translation file English: 1 strings, original table at word offset 7, translated table at word offset 9
                    Loaded 0 translations from file English
                    Starting plugin hiscore...
                    Starting plugin data...
                    Attempting load of mame.ini
                    Parsing mame.ini
                    Attempting load of mame.ini
                    Parsing mame.ini
                    Attempting load of horizont.ini
                    Attempting load of arcade.ini
                    Attempting load of raster.ini
                    Attempting load of source/segaorun.ini
                    Attempting load of outrun.ini
                    Available videodrivers: x11 KMSDRM RPI dummy 
                    Current Videodriver: x11
                    	Display #0
                    		Renderdrivers:
                    			    opengl (0x0)
                    			 opengles2 (0x0)
                    			  opengles (0x0)
                    			  software (0x0)
                    Available audio drivers: 
                    	alsa                
                    	sndio               
                    	dsp                 
                    	disk                
                    	dummy               
                    Build version:      0.224 (mame0224)
                    Build architecure:  
                    Build defines 1:    SDLMAME_UNIX=1 SDLMAME_X11=1 SDLMAME_LINUX=1 
                    Build defines 1:    LSB_FIRST=1 MAME_NOASM=1 
                    SDL/OpenGL defines: SDL_COMPILEDVERSION=2009 USE_OPENGL=1 
                    Compiler defines A: __GNUC__=8 __GNUC_MINOR__=3 __GNUC_PATCHLEVEL__=0 __VERSION__="8.3.0" 
                    Compiler defines B: __unix__=1 
                    Compiler defines C: __USE_FORTIFY_LEVEL=0 
                    Enter init_monitors
                    Adding monitor screen0 (1680 x 1050)
                    Leave init_monitors
                    Enter sdlwindow_init
                    Using SDL native texturing driver (SDL 2.0+)
                    Loaded opengl shared library: <default>
                    
                    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
                    Leave renderer_sdl2::create
                    window: using renderer opengl
                    renderer: flag SDL_RENDERER_ACCELERATED
                    renderer: flag SDL_RENDERER_TARGETTEXTURE
                    Audio: Start initialization
                    Audio: Driver is alsa
                    Audio: frequency: 44100, channels: 2, samples: 512
                    sdl_create_buffers: creating stream buffer of 22528 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
                    Lightgun: Begin initialization
                    Lightgun: End initialization
                    Joystick: Start initialization
                    Joystick: End initialization
                    Searching font Liberation Sans in -. path/s
                    font Liberation Sans|Regular is not TrueType or BDF, using MAME default
                    Region ':maincpu' created
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip ECD
                    unzip: /home/pi/RetroPie/roms/mame/outrun.zip has no ZIP64 ECD locator
                    unzip: read /home/pi/RetroPie/roms/mame/outrun.zip central directory
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    Region ':subcpu' created
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    Region ':gfx1' created
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    Region ':sprites' created
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    Region ':segaic16road' created
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    Region ':soundcpu' created
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    Region ':pcm' created
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    unzip: found /home/pi/RetroPie/roms/mame/outrun.zip in cache
                    unzip: opened archive file /home/pi/RetroPie/roms/mame/outrun.zip
                    unzip: closing archive file /home/pi/RetroPie/roms/mame/outrun.zip and sending to cache
                    Optional I/O port ':ADC.7' not found
                    Optional I/O port ':ADC.6' not found
                    Optional I/O port ':ADC.5' not found
                    Optional I/O port ':ADC.4' not found
                    Optional memory region ':screen' not found
                    Optional shared pointer ':rotateram' not found
                    Optional memory region ':nvram' not found
                    Starting Out Run (sitdown/upright, Rev B) ':'
                      (missing dependencies; rescheduling)
                    Starting Motorola MC68000 ':maincpu'
                    Starting Motorola MC68000 ':subcpu'
                    Starting Zilog Z80 ':soundcpu'
                    Starting Watchdog Timer ':watchdog'
                    Starting Intel 8255 PPI ':i8255'
                    Starting ADC0804 A/D Converter ':adc'
                    Starting Sega 315-5195 Memory Mapper ':mapper'
                    Starting gfxdecode ':gfxdecode'
                    Starting palette ':palette'
                    Starting Video Screen ':screen'
                    Starting Sega 16-bit Video ':segaic16vid'
                    Starting Sega 16-bit Road Generator ':segaic16road'
                    Starting Speaker ':lspeaker'
                      (missing dependencies; rescheduling)
                    Starting Speaker ':rspeaker'
                      (missing dependencies; rescheduling)
                    Starting Yamaha YM2151 OPM ':ymsnd'
                    Starting Sega PCM ':pcm'
                    Starting Timer ':bankmotor'
                    Starting Sega Custom Sprites (Out Run) ':sprites'
                    Starting NVRAM ':nvram'
                    Starting Out Run (sitdown/upright, Rev B) ':'
                      (missing dependencies; rescheduling)
                    Starting Speaker ':lspeaker'
                    Starting Speaker ':rspeaker'
                    Starting Out Run (sitdown/upright, Rev B) ':'
                    Attempting to parse: default.cfg
                    Attempting to parse: outrun.cfg
                    Starting Out Run (sitdown/upright, Rev B)
                    hiscore: config found
                    hiscore: found hiscore.dat entry for outrun
                    Searching font Liberation Sans in -. path/s
                    font Liberation Sans|Regular is not TrueType or BDF, using MAME default
                    Searching font Liberation Sans in -. path/s
                    font Liberation Sans|Regular is not TrueType or BDF, using MAME default
                    hiscore: scores read FAIL
                    Average speed: 100.00% (11 seconds)
                    sdl_kill: closing audio
                    Enter sdlwindow_exit
                    Leave sdlwindow_exit
                    

                    The environment variable setting (SDL_VIDEO_KMSDRM_CRTCID=87 SDL_VIDEO_KMSDRM_MODEID=24) in the second case is interesting. Maybe it is not MAME, but perhaps there is something going on with SDL when using KMSDRM vs. X11.

                    Will run ddp3 in verbose mode and post up results later.

                    - George

                    G 1 Reply Last reply Reply Quote 0
                    • G
                      George @George
                      last edited by George

                      I did a bit more testing, this time by SSHing into the machine and using tvservice -s. I found out some more interesting tidbits.

                      When running Outrun from EmulationStation with my monitor's native resolution (1680x1050). Performance is poor and tvservice -s shows:

                      state 0xa [HDMI CUSTOM RGB full unknown AR], 1680x1050 @ 60.00Hz, progressive
                      

                      When I run it from EmulationStation with 640x480 resolution selected. Performance is great and tvservice -s shows:

                      state 0xa [HDMI CUSTOM RGB full 4:3], 640x480 @ 60.00Hz, progressive
                      

                      Everything seems straightforward, until I then get into the Pixel Desktop, which is running at 1680x1050, and without changing the resolution, I run Outrun in MAME. Performance is great and tvservice -s unexpectedly shows:

                      state 0xa [HDMI CUSTOM RGB full unknown AR], 1680x1050 @ 60.00Hz, progressive
                      

                      This seems to support my idea that when X11 is used, the pixel data is being rendered at the original machine's native resolution and then being scaled up by the GPU. Contrarily, when KMSDRM is being used, I believe something else is going on.

                      I'll have to take a look at the MAME and SDL source code to see if. anything pops up. Any other ideas are welcome!

                      - George

                      dankcushionsD 2 Replies Last reply Reply Quote 1
                      • dankcushionsD
                        dankcushions Global Moderator @George
                        last edited by

                        This post is deleted!
                        1 Reply Last reply Reply Quote 0
                        • dankcushionsD
                          dankcushions Global Moderator @George
                          last edited by

                          @george thanks for this. i guess the difference is

                          Current Videodriver: x11
                          

                          (fast)

                          vs

                          Current Videodriver: KMSDRM
                          

                          (slow)

                          out of interest, in /boot/config.txt are you running

                          dtoverlay=vc4-fkms-v3d
                          

                          (default, "fake" kms) or

                          dtoverlay=vc4-kms-v3d
                          

                          (pure kms)

                          i wonder if the latter makes a difference?

                          G 1 Reply Last reply Reply Quote 0
                          • G
                            George @dankcushions
                            last edited by

                            @dankcushions yeah, the video driver does seem to be the difference, but I'm unable to determine how.

                            My config.txt shows the following:

                            [pi4]
                            # Enable DRM VC4 V3D driver on top of the dispmanx display stack
                            dtoverlay=vc4-fkms-v3d
                            max_framebuffers=2
                            

                            I can check if pure KMS makes any difference.

                            • George
                            G 1 Reply Last reply Reply Quote 0
                            • G
                              George @George
                              last edited by

                              Well that didn't take long. I switched to kms and MAME won't even run correctly from within EmulationStation. The screen blanks out and I can't get out of MAME. SSHing in and looking at the runcommand.log makes it appear that the game is loaded. From within X11, I can run the game, but when I exit out, the screen blanks out and doesn't come back. Interestingly, there is also no sound when running MAME on X11. Switching back to fkms and everything is back to normal.

                              While looking at the source for SDL and MAME, I noticed that the MAME repository also includes source for SDL. I also noticed that RetroPie has its own repository for SDL. Though I can't find in either any references to SDL_VIDEO_KMSDRM_CRTCID or SDL_VIDEO_KMSDRM_MODEID. Could there be a conflict? Am I not looking in the correct place?

                              Thanks!

                              - George

                              BuZzB mituM 2 Replies Last reply Reply Quote 0
                              • BuZzB
                                BuZz administrators @George
                                last edited by

                                @george our SDL code is on a retropie-2.0.10 branch.

                                To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                1 Reply Last reply Reply Quote 0
                                • mituM
                                  mitu Global Moderator @George
                                  last edited by mitu

                                  @george said in Enhanced performance of MAMEdev MAME in X11?!?!:

                                  Well that didn't take long. I switched to kms and MAME won't even run correctly from within EmulationStation. The screen blanks out and I can't get out of MAME. SSHing in and looking at the runcommand.log makes it appear that the game is loaded. From within X11, I can run the game, but when I exit out, the screen blanks out and doesn't come back. Interestingly, there is also no sound when running MAME on X11. Switching back to fkms and everything is back to normal.

                                  The KMS driver for the current stable kernel (5.4) in Raspbian has issues. If you wish to switch to the (pure) KMS driver, you should also switch to the next LTS Rapbian kernel (5.9, soon to be 5.10), where the KMS driver should be working much better. See https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=288234.

                                  While looking at the source for SDL and MAME, I noticed that the MAME repository also includes source for SDL. I also noticed that RetroPie has its own repository for SDL. Though I can't find in either any references to SDL_VIDEO_KMSDRM_CRTCID or SDL_VIDEO_KMSDRM_MODEID. Could there be a conflict? Am I not looking in the correct place?

                                  Those env vars are set by runcommand, to set the video resolution. It's a RetroPie local patch to be able to switch video modes with SDL2 based applications, since there was (at the time) no method to do so - the KMSDRM driver would report only the (fullscreen) current resolution to the application and mode switching would no be possible otherwise. Instead, based on those vars, SDL2 switches resolution on video initialization and reports the (new) resolution to the applications.

                                  This kind of ties up with what you noticed.One of the important differences between the x11 and kms SDL2 video drivers is that x11 is able to switch to any resolution supported by the display - on the fly - while kms does not. Having said that, the KMS SDL2 driver has been radically changed in newer SDL2 version (since 2.0.10, the version that RetroPie includes and patched), but unfortunately those changes are not without issues so they haven't been included in RetroPie.

                                  RionR 1 Reply Last reply Reply Quote 0
                                  • RionR
                                    Rion @mitu
                                    last edited by

                                    @mitu Sorry to hijack this thread but is this not one of the main reasons that people can't use on the fly resolution switching with vga666 and a crt?

                                    FBNeo rom filtering
                                    Mame2003 Arcade Bezels
                                    Fba Arcade Bezels
                                    Fba NeoGeo Bezels

                                    mituM 1 Reply Last reply Reply Quote 0
                                    • mituM
                                      mitu Global Moderator @Rion
                                      last edited by

                                      @rion said in Enhanced performance of MAMEdev MAME in X11?!?!:

                                      @mitu Sorry to hijack this thread but

                                      No, it's not related.

                                      1 Reply Last reply Reply Quote 1
                                      • G
                                        George
                                        last edited by

                                        Thanks @buzz and @mitu!

                                        This info gives me some good pointers to test. I can try the base versions of SDL (2.0.10 and the latest) vs. what comes with RetroPie (i.e. retropie-2.0.10) to see if there are any performance differences at all. I also noticed that there is some debug messages in the code, so perhaps I can enable debug logging to possibly get additional information.

                                        Post that, I'll see if there's anything to be gleaned in how MAME handles (or doesn't handle) resolution changes.

                                        Side note: I see some changes in the retropie-2.0.10 branch with SDL_sysjoystick.c that seem to be related in some way to a bug I reported to SDL. I'll have to check that out as well.

                                        Thanks again!

                                        - George

                                        G 1 Reply Last reply Reply Quote 0
                                        • G
                                          George @George
                                          last edited by

                                          Looks like I've hit a couple of snags while trying to compile. I modified the RetroPi sdl2.sh scriptmodule to pull from a different source/branch. I tried release-2.0.10 and release-2.0.12. I get the error message:

                                          /home/pi/RetroPie-Setup/tmp/build/sdl210/2.0.12+5rpi/src/video/SDL_egl.c:289:53: error: 'F_OK' undeclared (first use in this function)
                                               SDL_bool vc4 = (0 == access("/sys/module/vc4/", F_OK));
                                          

                                          And if I fix that by adding #include <unistd.h> I get the following error message:

                                          /usr/include/GLES/gl.h:63:25: error: conflicting types for 'GLsizeiptr'
                                           typedef khronos_ssize_t GLsizeiptr;
                                          

                                          But when I compile the retropie-2.0.10branch it compiles fine. Perhaps there are some hints in that branch that I can port over. Continuing to work on it, but any pointers would be helpful.

                                          Thanks!

                                          - George

                                          G 1 Reply Last reply Reply Quote 1
                                          • G
                                            George @George
                                            last edited by

                                            Quick note as I continue to work on this. I've found on the RPi4 that even if Pixel Desktop and XOrg is installed, the following check:

                                            if isPlatform "x11"; then
                                            

                                            Will return false. This seems to matter when SDL is being compiled because libpulse-dev is a dependency that is not automatically installed with the latest version of RetroPie. So if you try to compile SDL yourself using the supplementary script module sdl2.sh. The script will check x11 and then install libpulse-dev libwayland-dev during the depends phase.

                                            Interestingly, libpulse-dev isn't needed for SDL on RPi 4 when installed via binary.

                                            If this is of interest to anyone, I can file a ticket.

                                            - George

                                            dankcushionsD 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.