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 4.9k 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

      Hello all,

      I've been doing some performance testing of MAMEdev MAME on the Raspberry Pi 4 and have found out some things that might be of interest to some here. This may especially be the case if you're interested in playing some arcade games that are only available in more recent versions of MAME. In short, I've seen that using MAMEdev MAME in X11 can be faster than using it from within RetroPie.

      One of my main interests in using MAMEdev MAME is because of the work to emulate old handheld tabletop games (like those that came from Coleco, Tomy, Entex, and others). These are only available in more recent versions of MAME, after the merge with MESS. On older RPi's this seems to work really well, so I was surprised to find out that on the Raspberry Pi 4, it didn't work as well. Even with tricks such as reducing the screen resolution and audio sample rate, the sound was still choppy and gameplay slow. I was additionally surprised when games like Outrun (arcade version) seemed to run at 100% with little to no issues (using the same screen resolution reduction trick). I tested Raspberry Pi 4 vs. Rasperry Pi 3b+ with clean installs. I found that MAME's video driver on the Pi 4 was "KMSDRM" vs. the video driver on Pi 3b+ was "RPI".

      As Mesa recently started adding Vulkan drivers for the Broadcom chip in the Raspberry Pi 4, I decided to see if I could get things working with Vulkan and BGFX in MAMEdev MAME. So far I've only been able to get it to work in X11 (Pixel Desktop), and I didn't see much difference than what I saw on the console. When I did a test on X11 using the regular parameters (which includes -video accel, which uses OpenGL on the RPi 4) I suddenly saw some unexpectedly good performance. As an example, DoDonPachi 3 (ddp3) runs at about 50% in MAMEdev MAME when running it from RetroPie, but when I run MAMEdev MAME in the Pixel Desktop (X11), it runs at 100%!

      The one custom thing I did that improved the performance of MAME in X11 was removing the xserver-xorg-video-fbturbo package. This was actually a suggestion I found in a post from 2017 at https://www.raspberrypi.org/forums/viewtopic.php?t=196423, where someone was having OpenGL performance issues on an older Pi.

      With a default setup, running glxinfo -B (from sudo apt install mesa-utils) on the RPi 4 in the Pixel Desktop, I see the following output:

      name of display: :0.0
      display: :0  screen: 0
      direct rendering: Yes
      Extended renderer info (GLX_MESA_query_renderer):
          Vendor: VMware, Inc. (0xffffffff)
          Device: llvmpipe (LLVM 9.0.1, 128 bits) (0xffffffff)
          Version: 19.3.2
          Accelerated: no
          Video memory: 3827MB
          Unified memory: no
          Preferred profile: core (0x1)
          Max core profile version: 3.3
          Max compat profile version: 3.1
          Max GLES1 profile version: 1.1
          Max GLES[23] profile version: 3.1
      OpenGL vendor string: VMware, Inc.
      OpenGL renderer string: llvmpipe (LLVM 9.0.1, 128 bits)
      OpenGL core profile version string: 3.3 (Core Profile) Mesa 19.3.2
      OpenGL core profile shading language version string: 3.30
      OpenGL core profile context flags: (none)
      OpenGL core profile profile mask: core profile
      
      OpenGL version string: 3.1 Mesa 19.3.2
      OpenGL shading language version string: 1.40
      OpenGL context flags: (none)
      
      OpenGL ES profile version string: OpenGL ES 3.1 Mesa 19.3.2
      OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
      

      But when I exit X11 and run sudo apt remove xserver-xorg-video-fbturbo, get back into X11 and run glxinfo -B again, I see:

      name of display: :0.0
      display: :0  screen: 0
      direct rendering: Yes
      Extended renderer info (GLX_MESA_query_renderer):
          Vendor: Broadcom (0x14e4)
          Device: V3D 4.2 (0xffffffff)
          Version: 19.3.2
          Accelerated: yes
          Video memory: 3827MB
          Unified memory: yes
          Preferred profile: compat (0x2)
          Max core profile version: 0.0
          Max compat profile version: 2.1
          Max GLES1 profile version: 1.1
          Max GLES[23] profile version: 3.1
      OpenGL vendor string: Broadcom
      OpenGL renderer string: V3D 4.2
      OpenGL version string: 2.1 Mesa 19.3.2
      OpenGL shading language version string: 1.20
      
      OpenGL ES profile version string: OpenGL ES 3.1 Mesa 19.3.2
      OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
      

      So it seems by default the Raspberry Pi 4 and Raspbian isn't accessing the Broadcom GPU by default, and instead doing a lot of software rendering, or perhaps using VMWare's LLVMpipe to pipe OpenGL instructions to the GPU, but with some significant overhead.

      Unfortunately for the handheld games, I didn't get the performance boost again. One reason is because the handheld games do not have a pixel based default screen resolution, so MAMEdev MAME doesn't swithres to a resolution automatically. But even if I reduce the screen resolution in X11 using a tool like gvidm (which only gives you options if you remove xserver-xorg-video-fbturbo), the performance still isn't good enough. Additional research is needed.

      So some questions/requests for feedback I leave to the group:

      • Is there a way to enable RPI as the video driver for MAMEdev MAME from use within RetroPie (vs. KMSDRM). If I try running MAME with -videodriver RPI it says OpenGL not supported on this driver: Could not initialize EGL
      • Is xserver-xorg-video-fbturbo needed for anything specifically? It gets installed by default when installing X11 / Pixel Desktop. Or is there a way it can be disabled so that X11 can access the Broadcom GPU directly?
      • Does it make sense to add an option to the MAMEdev MAME script module to run MAME through X11 or even a separate script module?

      Thanks all!

      - George

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

        Is there a way to enable RPI as the video driver for MAMEdev MAME from use within RetroPie (vs. KMSDRM). If I try running MAME with -videodriver RPI it says OpenGL not supported on this driver: Could not initialize EGL

        That's because dispmanx (on which the RPI SDL2 driver is based) doesn't work with the MESA drivers and the legacy GLES BRCM drivers are not compatible with the PI4. So, you can't run it if you want to have accelerated video, but you can try using the SDL2 SW renderer with the RPI video driver.

        Is xserver-xorg-video-fbturbo needed for anything specifically? It gets installed by default when installing X11 / Pixel Desktop. Or is there a way it can be disabled so that X11 can access the Broadcom GPU directly?

        Not sure how you got that installed, but it's not needed. Installing the desktop via RetroPie-Setup doesn't install it automatically.

        Does it make sense to add an option to the MAMEdev MAME script module to run MAME through X11 or even a separate script module?

        Not sure - is it just the video drivers that impact performance or something else (sound/input) ? Would be useful for lightgun devices, which I think MAME only supports under X11 (-lightgunprovider).

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

          Thanks @mitu ,

          That's because dispmanx (on which the RPI SDL2 driver is based) doesn't work with the MESA drivers and the legacy GLES BRCM drivers are not compatible with the PI4. So, you can't run it if you want to have accelerated video, but you can try using the SDL2 SW renderer with the RPI video driver.

          Makes sense. I can try the SDL SW renderer, but I don't have much hope that they will work very well.

          Not sure how you got that installed, but it's not needed. Installing the desktop via RetroPie-Setup doesn't install it automatically.

          It seemed to install automatically when I installed the Pixel desktop through RetroPie >> Configuration / Tools >> Raspbiantools >> Install Pixel Desktop Environment. Even when I just installed XOrg / Matchbox on a clean image the FBTurbo driver got installed. It even creates /usr/share/X11/xorg.conf.d/99-fbturbo.conf. Good to know it is not needed. I wonder what package has it as a dependency.

          is it just the video drivers that impact performance or something else (sound/input) ? Would be useful for lightgun devices, which I think MAME only supports under X11 (-lightgunprovider).

          I'm pretty confident that it's just the video drivers (and screen resolution), but I will be doing some testing on audio as well. I'll post the results here when I can. Good point about the light gun games. Those are driven from XInput and there was a bug a while back that I fixed in MAME. I'll have to test that out as well.

          One other question. On my other RPi devices (3b+, etc), when I launch a game from RetroPie and then go into the configuration, I have the ability to set the screen resolution and the frame buffer size. The frame buffer option is not available on the RPi 4, and the screen resolution options look like they are different too. Is this due to dispmanx not being on the RPi 4?

          Thanks!

          - George

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

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

            One other question. On my other RPi devices (3b+, etc), when I launch a game from RetroPie and then go into the configuration, I have the ability to set the screen resolution and the frame buffer size. The frame buffer option is not available on the RPi 4, and the screen resolution options look like they are different too. Is this due to dispmanx not being on the RPi 4?

            Kind of, the video driver (KMSDRM) has its own resolution handling (kernel modesettings) that doesn't allow setting arbitrary resolution; the list is read from the EDID info reported by the display and it's not possible to scale the viewport arbitrarily to a resolution (hence no framebuffer resolution configuration).

            1 Reply Last reply Reply Quote 0
            • 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
                                            • 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.