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

    My modified ROM loading process (launch images, bezel overlays, pause)

    Scheduled Pinned Locked Moved Ideas and Development
    launch imagespauserpix86
    21 Posts 7 Posters 3.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.
    • johnodonJ
      johnodon
      last edited by johnodon

      This project is still evolving and I am sure things can be done better. All input is welcome. :)

      This is really designed for a kiosk-type arcade system where you don't want to have access to RGUI or the MAME menu. If you access the RGUI via a hotkey, the pause/overlay sequence gets out of whack. If you need access to anything in those menus, it is best to launch RGUI via the Retropie menu.

      This is what I wanted to accomplish...

      • Display the launch image until the game starts (not wait for the launch image to close before starting the game)
      • Start the game paused and muted (some games don't pause fast enough and they make noise in the background (i.e. Defender))
      • Display a bezel overlay that shows controls on first start while the game is paused/muted
      • Allow the user to continue by pressing a key/button after they have reviewed the controls
        • At that point, the game is unpaused, unmuted and the bezel overlay switches to a transparent one
        • The user can press the pause button/key at any point again to pause the game and see the the controls (the overlay bezel is switched back to the controls one)

      Here is a quick video to show you the final product.

      Requirements:

      • Disable the runcommand menu (currently non-functional with this solution)
        • /opt/retropie/configs/all/runcommand.cfg
        • disable_menu = "1"
      • Enable advanced menu settings in Retroarch:
        • menu_show_advanced_settings = "true"
      • Enable logging in Retroarch:
        • log_to_file = "true"
        • log_to_file_timestamp = "false"
        • log_verbosity = "true"
        • libretro_log_level = "1"
        • frontend_log_level = "1"
      • Enable network commands in Retroarch:
        • network_cmd_enable = "true"
        • network_cmd_port = "55355" <-- or whatever port you want to use
      • As @Clyde has stated in another thread, launch images need to be in a separate folder (i.e ~/Retropie/roms/arcade/images/launching/mslug-launching.png)
        • If they are in one of the two default locations where ES looks for launch images, this solution will not work
        • Is there a way to completely disable the launch image function in RP so we can store the images with the rest?

      Optional:

      • Mute Retroarch:
        • audio_mute_enable = "true"
      • Disable Retroarch notifications and widgets:
        • video_font_enable = "false"
        • menu_enable_widgets = "false"

      There are 2 scripts that are required:

      /opt/retropie/configs/all/runcommand-onstart.sh

      #! /bin/bash
      ARCH=$(uname -m)
      SYSTEM="$1"
      RACORE="$2"
      ROMPATH="$3"
      ROM_BN_EXT="${ROMPATH##*/}"
      ROM_BN="${ROM_BN_EXT%.*}"
      LAUNCHIMAGE="/home/pi/RetroPie/roms/$1/images/launching/$ROM_BN-launching.png"
      case $ARCH in
        armv7l)
          fbi -1 -t 0 -noverbose -a "$LAUNCHIMAGE" </dev/tty &>/dev/null &
          IMAGEVIEWER="fbi"
          ;;
        i386 | i686 | x86_64)
          feh -F -N -Z -Y -q "$LAUNCHIMAGE" & &>/dev/null &
          IMAGEVIEWER="feh"
          ;;
        *)
          ;;
      esac
      export RACORE
      export IMAGEVIEWER
      ( /opt/retropie/configs/all/pause.sh ) &
      

      For now, you will need to comment/uncomment the appropriate lines to support launch images based on your platform (feh for x86 or fbi for RPI). I'll add code later to do this intelligently. The script above will run either feh or fbi to display the launch images based on your architecture. We capture a few variables to use for the launch image code and then we then write the value of the $2 variable and export it for use in the 2nd script which is called by the last line.

      /opt/retropie/configs/all/pause.sh

      #!/bin/bash
      case $RACORE in
       lr-flycast)
         searchstring="NAOMI GAME ID"
         ;;
       lr-fbneo)
         searchstring="successfully started"
         ;;
       lr-mame2003-plus)
         searchstring="Succesfully loaded ROMs"
         ;;
       lr-snes9x | lr-prosystem)
         searchstring="Loaded 1 program"
         ;;
       *)
         ;;
      esac
      timeout 5 tail -f /opt/retropie/configs/all/retroarch/logs/retroarch.log | while read LOGLINE
      do
         [[ "${LOGLINE}" == *$searchstring* ]] && pkill -P $$ tail
      done
      killall "$IMAGEVIEWER"
      sleep 1
      echo -n "PAUSE_TOGGLE" | nc -u -w1 127.0.0.1 55355 | echo -n "MUTE" | nc -u -w1 127.0.0.1 55355
      

      Basically what the above script does is tail the Retroarch logfile and look for the string that indicates that the ROM has completely loaded. It is different for different cores so that is why you see the case statement. New statements can be added to accommodate other cores. My immediate need was for only the Arcade cores. Once tail finds the correct string, the script kills it and the launch image viewer (feh). The last line sends pause and mute (unmute in this case) network commands to Retroarch.

      I should also mention that both scripts need to have execute perms for user pi. One of my other routines is to also run dos2unix against both scripts as modifying them in Notepad (or even Notepad++) can cause ill effects and prevent them from running.

      dos2unix can be installed like any otehr app:

      sudo apt install dos2unix
      

      You will also need to have your bezel overlays and corresponding config files in order:

      /opt/retropie/configs/all/retroarch/config/$system/ (accessible via Samba share \IP\configs\all\retroarch\config\$System). Below is an example for 19xx using FBNeo:

      /opt/retropie/configs/all/retroarch/config/FinalBurn Neo/19xx.cfg

      overlay_directory = "/opt/retropie/configs/all/retroarch/overlay/ArcadeBezels/"
      input_overlay_enable = true
      input_overlay_hide_in_menu = true
      input_overlay = "/opt/retropie/configs/all/retroarch/overlay/ArcadeBezels/19xx.cfg"
      input_overlay_opacity = 1.0
      input_overlay_scale = 1.0
      input_overlay_next = "p"
      

      input_overlay_next is mapped to the same key/button as pause (p in this case).

      /opt/retropie/configs/all/retroarch/overlay/ (accessible via Samba share \IP\configs\all\retroarch\overlay). Below is an example for 19xx using FBNeo (I'm using The Bezel Project bezels):

      /opt/retropie/configs/all/retroarch/overlay/ArcadeBezels/19xx.cfg

      overlays = 2
      
      overlay0_overlay = 19xx-controls.png
      overlay1_overlay = 19xx.png
      overlay1_name = "19xx"
      
      overlay0_full_screen = true
      overlay1_full_screen = true
      
      overlay0_descs = 1
      overlay0_desc0 = "overlay_next,400,460,rect,40,20"
      overlay0_desc0_next_target = "19xx"
      
      overlay1_descs = 0
      

      If you did this right (or as long as I didn't forget a step), you should now have Retroarch running, the ROM fully loaded, the game paused and unmuted, and, displaying your controls bezel overlay. Pressing the pause key/button will unpause the game and switch to the normal bezel overlay that shows gameplay.

      Adding additional cores to the case statement

      Let's say that I want to add SNES to this workflow. The first thing I need to know is what key string in the retroarch.log indicates that the ROM has been loaded. In order to get this, I launch an SNES ROM, let it load and then exit. I then look in the /opt/configs/all/retroarch/logs/retroarch.log for my my candidate for the key string:

      [INFO] RetroArch 1.8.8 (Git 9552f87)
      [INFO] Redirecting save file to "/home/pi/RetroPie/roms/snes/Aaahh!!! Real Monsters (USA).srm".
      [INFO] Redirecting save state to "/home/pi/RetroPie/roms/snes/Aaahh!!! Real Monsters (USA).state".
      [INFO] === Build =======================================
      [INFO] CPU Model Name: Intel(R) Core(TM) i7-4785T CPU @ 2.20GHz
      [INFO] Capabilities:  MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE4.2 AES AVX
      [INFO] Built: Jul  2 2020
      [INFO] Version: 1.8.8
      [INFO] Git: 9552f87
      [INFO] =================================================
      [INFO] Loading dynamic libretro core from: "/opt/retropie/libretrocores/lr-snes9x/snes9x_libretro.so"
      [INFO] [Overrides] no core-specific overrides found at /home/pi/.config/retroarch/config/Snes9x/Snes9x.cfg.
      [INFO] [Overrides] no content-dir-specific overrides found at /home/pi/.config/retroarch/config/Snes9x/snes.cfg.
      [INFO] [Overrides] no game-specific overrides found at /home/pi/.config/retroarch/config/Snes9x/Aaahh!!! Real Monsters (USA).cfg.
      [INFO] [Environ]: GET_LANGUAGE: "0".
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_INTL.
      [INFO] [Environ]: SET_CONTROLLER_INFO.
      [INFO] [Remaps]: remap directory: /opt/retropie/configs/snes/
      [INFO] Redirecting save file to "/home/pi/RetroPie/roms/snes/Aaahh!!! Real Monsters (USA).srm".
      [INFO] Redirecting save state to "/home/pi/RetroPie/roms/snes/Aaahh!!! Real Monsters (USA).state".
      [INFO] [Environ]: GET_LOG_INTERFACE.
      [INFO] [Environ]: SYSTEM_DIRECTORY: "/home/pi/RetroPie/BIOS".
      [INFO] [Environ]: SET_SUPPORT_ACHIEVEMENTS: yes.
      [INFO] [Environ]: PERFORMANCE_LEVEL: 12.
      [INFO] Loading content file: /tmp/retroarch/Aaahh!!! Real Monsters (USA).sfc.
      [INFO] Did not find a valid content patch.
      [INFO] [Environ]: SET_INPUT_DESCRIPTORS:
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
      [libretro INFO] "REAL MONSTERS" [checksum ok] LoROM, 16Mbits, ROM, NTSC, SRAM:0Kbits, ID:ANNE, CRC32:27FF5BA1
      [INFO] [Environ]: SET_PIXEL_FORMAT: RGB565.
      [INFO] Skipping SRAM load..
      [INFO] Version of libretro API: 1
      [INFO] Compiled against API: 1
      [INFO] [Cheats]: Load game-specific cheatfile: /home/pi/.config/retroarch/cheats/Snes9x/Aaahh!!! Real Monsters (USA).cht
      [INFO] [Audio]: Set audio input rate to: 31987.32 Hz.
      [INFO] [Video]: Video @ 1920x1080
      [ERROR] [Wayland]: Failed to connect to Wayland server.
      [INFO] [GL]: Found GL context: x
      [INFO] [GL]: Detecting screen resolution 1920x1080.
      [INFO] [GLX]: Window manager is Openbox.
      [INFO] [XINERAMA]: Xinerama version: 1.1.
      [INFO] [XINERAMA]: Xinerama screens: 1.
      [INFO] [GLX]: Using Xinerama on screen #0.
      [INFO] [GLX]: X = 0, Y = 0, W = 1920, H = 1080.
      [INFO] [GLX]: Using windowed fullscreen.
      [INFO] [GLX]: Found swap function: glXSwapIntervalEXT.
      [INFO] [GLX]: glXSwapInterval(1)
      [INFO] [GL]: Vendor: Intel Open Source Technology Center, Renderer: Mesa DRI Intel(R) Haswell Desktop .
      [INFO] [GL]: Version: 3.0 Mesa 19.2.8.
      [INFO] [GL]: Using resolution 1920x1080
      [INFO] [GL]: Default shader backend found: glsl.
      [INFO] [Shaders]: preset directory: /home/pi/.config/retroarch/config
      [INFO] [Shaders]: preset directory: /opt/retropie/configs/snes/
      [INFO] [Shaders]: preset directory: /home/pi/.config/retroarch/shaders/presets
      [INFO] [Shader driver]: Using GLSL shader backend.
      [INFO] [GLSL]: Checking GLSL shader support ...
      [WARN] [GL]: Stock GLSL shaders will be used.
      [INFO] [GLSL]: Found GLSL vertex shader.
      [INFO] [GLSL]: Found GLSL fragment shader.
      [INFO] [GLSL]: Linking GLSL program.
      [INFO] [GLSL]: Found GLSL vertex shader.
      [INFO] [GLSL]: Found GLSL fragment shader.
      [INFO] [GLSL]: Linking GLSL program.
      [INFO] [GLSL]: Found GLSL vertex shader.
      [INFO] [GLSL]: Found GLSL fragment shader.
      [INFO] [GLSL]: Linking GLSL program.
      [INFO] [GL]: Using 4 textures.
      [INFO] [GL]: Loaded 1 program(s).
      [INFO] [GL]: Using GL_RGB565 for texture uploads.
      [INFO] [Joypad]: Found joypad driver: "udev".
      [INFO] [Font]: Using font rendering backend: stb-unicode.
      [INFO] [X11]: Suspending screensaver (X11, xdg-screensaver).
      [INFO] [Video]: Found display server: x11
      [INFO] Found shader "/home/pi/.config/retroarch/shaders/bilinear.cgp"
      [INFO] Found shader "/home/pi/.config/retroarch/shaders/bilinear.glslp"
      [INFO] Found shader "/home/pi/.config/retroarch/shaders/nearest.cgp"
      [INFO] Found shader "/home/pi/.config/retroarch/shaders/nearest.glslp"
      [INFO] Found shader "/home/pi/.config/retroarch/shaders/old-stock.cg"
      [INFO] Found shader "/home/pi/.config/retroarch/shaders/slang-conversion-template.glsl"
      [INFO] Found shader "/home/pi/.config/retroarch/shaders/stock.cg"
      [INFO] Found shader "/home/pi/.config/retroarch/shaders/stock.glsl"
      [INFO] [PulseAudio]: Requested 24576 bytes buffer, got 18432.
      [INFO] [Menu]: Found menu display driver: "gl".
      [INFO] [Environ]: SET_SUBSYSTEM_INFO.
      [INFO] [LED]: LED driver = 'null' 0x560486560260
      [INFO] [MIDI]: Initializing ...
      [INFO] [MIDI]: Input disabled.
      [INFO] [MIDI]: Output disabled.
      [INFO] [MIDI]: Initialized "alsa" driver.
      [INFO] bringing_up_command_interface_at_port 55355.
      [INFO] Loading history file: [/opt/retropie/configs/all/content_history.lpl].
      [INFO] Loading history file: [/opt/retropie/configs/all/content_music_history.lpl].
      [INFO] Loading history file: [/opt/retropie/configs/all/content_video_history.lpl].
      [INFO] Loading history file: [/opt/retropie/configs/all/content_image_history.lpl].
      [INFO] Loading favorites file: [/opt/retropie/configs/all/content_favorites.lpl].
      [INFO] [GL]: VSync => on
      [INFO] [GLX]: glXSwapInterval(1)
      [INFO] Written to playlist file: /opt/retropie/configs/all/content_history.lpl
      [INFO] [Environ]: SET_GEOMETRY.
      [INFO] [Cheats]: Save game-specific cheatfile: /home/pi/.config/retroarch/cheats/Snes9x/Aaahh!!! Real Monsters (USA).cht
      [INFO] Content ran for a total of: 00 hours, 00 minutes, 07 seconds.
      [INFO] Unloading game..
      [INFO] [PulseAudio]: Pausing.
      [INFO] Unloading core..
      [INFO] Unloading core symbols..
      [INFO] [Core Options]: Saved core options file to "/opt/retropie/configs/all/retroarch-core-options.cfg"
      [INFO] [XINERAMA]: Xinerama version: 1.1.
      [INFO] [XINERAMA]: Xinerama screens: 1.
      [INFO] [XINERAMA]: Saved monitor #0.
      [INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
      [INFO] Removing temporary content file: /tmp/retroarch/Aaahh!!! Real Monsters (USA).sfc.
      [INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
      

      This is now trial and error. The first string I will try is...

      [libretro INFO] "REAL MONSTERS" [checksum ok] LoROM, 16Mbits, ROM, NTSC, SRAM:0Kbits, ID:ANNE, CRC32:27FF5BA1
      

      So I will add [checksum ok] to my case statement in pause.sh and see if it works.

      case $RACORE in
       lr-flycast)
         searchstring="NAOMI GAME ID"
         ;;
       lr-fbneo)
         searchstring="successfully started"
         ;;
       lr-mame2003-plus)
         searchstring="Succesfully loaded ROMs"
         ;;
       lr-snes9x)
         searchstring="[checksum ok]"
         ;;
       *)
         ;;
      

      That string didn't work since the game never paused. I move down the retroarch.log until I find one that does. I finally landed on Loaded 1 program

      case $RACORE in
       lr-flycast)
         searchstring="NAOMI GAME ID"
         ;;
       lr-fbneo)
         searchstring="successfully started"
         ;;
       lr-mame2003-plus)
         searchstring="Succesfully loaded ROMs"
         ;;
       lr-snes9x)
         searchstring="Loaded 1 program"
         ;;
       *)
         ;;
      

      I now test with a few different SNES ROMs just to make sure the results are consistent and they were.

      Just remember...whenever you modify the pause.sh file, you may need to chmod +x it and dos2unix it. After each attempt, you may need to ps -aux to see if tail is still running. If so, kill it.

      Game is paused and muted behind this overlay. :)

      snes.png

      Unpaused. :)

      snes3.png

      I welcome all feedback. Please be sure to point out any errors above as I typed this mostly from memory.

      John

      1 Reply Last reply Reply Quote 7
      • johnodonJ
        johnodon
        last edited by johnodon

        UPDATES

        05JUL20:

        • Added a timeout to the tail command to prevent it from running infinitely if a case is not found. The timeout value can be adjusted to suit your needs.
        • Fixed launch image code.
        • Added support for RPI launch images (previously x86 only)
        • Use case to determine architecture and run either feh or fbi. Also write it to an exported variable to kill the proper process.
        1 Reply Last reply Reply Quote 1
        • johnodonJ
          johnodon
          last edited by johnodon

          RESERVED

          1 Reply Last reply Reply Quote 1
          • johnodonJ
            johnodon
            last edited by johnodon

            Naomi (lr-flycast) - Marvel vs. Capcom 2 - New Age of Heroes

            1 Reply Last reply Reply Quote 1
            • johnodonJ
              johnodon
              last edited by johnodon

              Does anyone know if RA has different runtime levels (if any at all)?

              I'd love to trap a runtime rather than have to use tail to determine when a ROM is fully loaded.

              1 Reply Last reply Reply Quote 1
              • johnodonJ
                johnodon
                last edited by

                Looks like the code to show the launch image is not handling files with spaces very well. This is what is written to the runcommand logfile when I try to launch Aero Fighters (USA).zip

                pi@elitedesk:~$ cat /dev/shm/runcommand.log
                basename: extra operand ‘(USA).zip’
                Try 'basename --help' for more information.
                feh: No loadable images specified.
                See 'man feh' for detailed usage information
                Parameters:
                Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-snes9x/snes9x_libretro.so --config /opt/retropie/configs/snes/retroarch.cfg "/home/pi/RetroPie/roms/snes/Aero Fighters (USA).zip" --appendconfig /dev/shm/retroarch.cfg
                tail: /opt/retropie/configs/all/retroarch/logs/retroarch.log: file truncated
                feh: no process found
                

                I'll see if I can sort this out.

                1 Reply Last reply Reply Quote 1
                • johnodonJ
                  johnodon
                  last edited by

                  OK...now it is a complete mystery to me how this code even launches the images.

                  launchpic="$(dirname ${3})/images/launching/$(basename $3 .zip)-launching.png"
                  feh -F -N -Z -Y -q "$launchpic" & &>/dev/null &
                  

                  When I echo "$launchpic", this is the response I get...

                  pi@elitedesk:/opt/retropie/configs/all$ echo "$launchpic"
                  /images/launching/.zip-launching.png
                  

                  How in the world is feh even getting the correct path to show the image??? I even went as far as to manually set launchpic="0" and ran the script again. The value didn't change (still 0 as shown with a set command) but feh still displayed the image.

                  Soooooo confused!

                  1 Reply Last reply Reply Quote 1
                  • johnodonJ
                    johnodon
                    last edited by

                    Fixed the launch image code with this...

                    #! /bin/bash
                    SYSTEM="$1"
                    RACORE="$2"
                    ROMPATH="$3"
                    ROM_BN_EXT="${ROMPATH##*/}"
                    ROM_BN="${ROM_BN_EXT%.*}"
                    LAUNCHIMAGE="/home/pi/RetroPie/roms/$1/images/launching/$ROM_BN-launching.png"
                    feh -F -N -Z -Y -q "$LAUNCHIMAGE" & &>/dev/null &
                    ( /opt/retropie/configs/all/pause.sh ) &
                    

                    OP has been updated.

                    1 Reply Last reply Reply Quote 1
                    • johnodonJ
                      johnodon
                      last edited by

                      Since I run RP on top of Ubuntu, I haven't been fully testing the RPI side of this. Right now the launch image code is foobar. Working on it.

                      johnodonJ 1 Reply Last reply Reply Quote 0
                      • johnodonJ
                        johnodon @johnodon
                        last edited by

                        @johnodon said in My modified ROM loading process (launch images, bezel overlays, pause):

                        Since I run RP on top of Ubuntu, I haven't been fully testing the RPI side of this. Right now the launch image code is foobar. Working on it.

                        This is now fixed. OP has been updated.

                        1 Reply Last reply Reply Quote 1
                        • S
                          svera
                          last edited by

                          @johnodon said in My modified ROM loading process (launch images, bezel overlays, pause):

                          /opt/retropie/configs/all/runcommand-onstart.sh

                          Hi @johnodon, great job! Unfortunately, I did find an issue when using your script, it seems that while using it we're unable to use retropie launch game menu (the one that shows when pressing a key just before game loads). It shows but I'm unable to control it. I'm using a Rpi 3b+ FYI.

                          johnodonJ 1 Reply Last reply Reply Quote 0
                          • johnodonJ
                            johnodon @svera
                            last edited by

                            @svera said in My modified ROM loading process (launch images, bezel overlays, pause):

                            Hi @johnodon, great job! Unfortunately, I did find an issue when using your script, it seems that while using it we're unable to use retropie launch game menu (the one that shows when pressing a key just before game loads). It shows but I'm unable to control it. I'm using a Rpi 3b+ FYI.

                            I'll look into that but personally I turn off the runcommand menu as I have no use for it. I define per-game emulators in /opt/retropie/configs/all/emulators.cfg.

                            John

                            1 Reply Last reply Reply Quote 1
                            • WeirdHW
                              WeirdH
                              last edited by

                              This is an awesome project! Makes a cab so much slicker. Great job, @johnodon.

                              johnodonJ 1 Reply Last reply Reply Quote 0
                              • johnodonJ
                                johnodon @WeirdH
                                last edited by johnodon

                                @WeirdH said in My modified ROM loading process (launch images, bezel overlays, pause):

                                This is an awesome project! Makes a cab so much slicker. Great job, @johnodon.

                                Glad you like it.

                                I have been hand selecting each and every ROM and building my overlays accordingly. I have been using BezelProject bezels but there are a LOT of issues with them if you have OCD like I do. I have been cleaning them up one-by-one. It's painstaking but I'm currently at 186 games completed. I'd like to land in the 400 - 500 range eventually.

                                John

                                1 Reply Last reply Reply Quote 1
                                • KrakatoaK
                                  Krakatoa
                                  last edited by Krakatoa

                                  How can I make the images launch using these as the image path?

                                  LAUNCHIMAGE="/home/pi/RetroPie/roms/$1/downloaded_images/$ROM_BN_screenscraper_boxart_arrm.png"
                                  

                                  it works if I do this.

                                  LAUNCHIMAGE="/home/pi/RetroPie/roms/$1/downloaded_images/$ROM_BN-screenscraper-boxart-arrm.png"
                                  

                                  I need to figure out to swap - for _

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    meangreene13
                                    last edited by

                                    @johnodon, have you used RetroX for Android? It has a similar function to show a launch image during loading and pause the game prior to launch to show controls, which I really like. I was looking for a way to add that to my Retropie build and came across your project. It looks great, awesome job! Not sure I'd have the patience to add this to my games one by one though; maybe on a future, specialized arcade build.

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      pillbug22
                                      last edited by

                                      @johnodon Awesome work! Have been looking for ways to up the game on a new cabinet and this looks amazing. Will work on it and report back with any issues.

                                      What theme is that in the first video you posted? Looks like it's from Hursty, but I haven't found a good way to visually scroll throughall the 1000's he has to find a specific one, lol

                                      johnodonJ 1 Reply Last reply Reply Quote 0
                                      • johnodonJ
                                        johnodon @pillbug22
                                        last edited by

                                        @pillbug22 said in My modified ROM loading process (launch images, bezel overlays, pause):

                                        @johnodon Awesome work! Have been looking for ways to up the game on a new cabinet and this looks amazing. Will work on it and report back with any issues.

                                        What theme is that in the first video you posted? Looks like it's from Hursty, but I haven't found a good way to visually scroll throughall the 1000's he has to find a specific one, lol

                                        Theme is from here (see the link at top of first post) but it is not a full theme and I adapted it for my needs: https://retropie.org.uk/forum/topic/10806/neo-geo-x-build

                                        John

                                        P 1 Reply Last reply Reply Quote 1
                                        • P
                                          pillbug22 @johnodon
                                          last edited by

                                          @johnodon perfect - thank you much!

                                          johnodonJ 1 Reply Last reply Reply Quote 0
                                          • johnodonJ
                                            johnodon @pillbug22
                                            last edited by johnodon

                                            @pillbug22 said in My modified ROM loading process (launch images, bezel overlays, pause):

                                            @johnodon perfect - thank you much!

                                            I'll go on record as saying that I have abandoned most of this approach...well...half of it. I still use the 2 different overlays but I don't pause the ROM at start. I switched around the gameplay-overlay and the control-overlay and just tell people to push the Play/Pause button at any time to pause the game and see the controls. But the ROM starts straight away as normal.

                                            John

                                            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.