RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    SOLVED: lr-mame2003 pause screen is black

    Scheduled Pinned Locked Moved Help and Support
    20 Posts 5 Posters 8.0k 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.
    • R
      Rok
      last edited by Rok

      I previously used a different flavour of Mame in my RetroPie setup and pausing the game did exactly what you'd expect. Since I've changed to using lr-mame2003 I can still successfully pause and un-pause any game but the screen goes entirely black whilst paused. Is this a known issue or have I managed to break it in some subtle way?

      1 Reply Last reply Reply Quote 0
      • dankcushionsD
        dankcushions Global Moderator
        last edited by

        how are you pausing? i know libretro has a built in pause function (hotkey + p, but you could rebind) which i would expect to work properly, but mame might have it's own key that does whatever...

        mediamogulM 1 Reply Last reply Reply Quote 0
        • mediamogulM
          mediamogul Global Moderator @dankcushions
          last edited by mediamogul

          @dankcushions said in lr-mame2003 pause screen is black:

          mame might have it's own key that does whatever...

          @Rok

          It does have it's own key that is even remappable. Pausing in that way does produce a black screen, but I just chalked it up to that older version of MAME lacking a still frame pause feature. Since the 2003 version is the newest MAME in RetroPie, other than the experimental cores, you could check MAME4all, iMAME or AdvanceMAME to see what they do. If they have a still frame pause then there might be something wrong in 2003. In any event, it's a minor annoyance at worst.

          RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

          dankcushionsD 1 Reply Last reply Reply Quote 0
          • dankcushionsD
            dankcushions Global Moderator @mediamogul
            last edited by

            @mediamogul

            It does have it's own key that is even remappable. Pausing in that way does produce a black screen, but I just chalked it up to that older version of MAME lacking a still frame pause feature. Since the 2003 version is the newest MAME in RetroPie, other than the experimental cores, you could check MAME4all, iMAME or AdvanceMAME to see what they do? If they have a still frame pause then there might be something wrong in 2003. In any event, it's surely a minor annoyance.

            yeah, i think to be honest all these features of mame that have equivalent features in the libretro API should be disabled in libretro-builds. ideally even the internal mame menu would be turned off, but currently the libretro implementation of mame2003 doesn't do everything it does (input remapping, especially).

            hotkey + input_pause_toggle_btn should work properly, but you'll probably have to rebind input_pause_toggle_btn to something sensible.

            mediamogulM 1 Reply Last reply Reply Quote 0
            • mediamogulM
              mediamogul Global Moderator @dankcushions
              last edited by mediamogul

              @dankcushions said in lr-mame2003 pause screen is black:

              ideally even the internal mame menu would be turned off

              Yikes! I certainly don't want to come off as confrontational here, but I would truly hate too see that flexibility vanish. I suppose it wouldn't be that big of a deal if there was some other way put in place to customize the control schemes of the hundreds of games that don't work well otherwise.

              Edit: Just read your edit... or maybe I just went text-blind to that last sentence.

              RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

              dankcushionsD 1 Reply Last reply Reply Quote 0
              • dankcushionsD
                dankcushions Global Moderator @mediamogul
                last edited by

                @mediamogul said in lr-mame2003 pause screen is black:

                @dankcushions said in lr-mame2003 pause screen is black:

                ideally even the internal mame menu would be turned off

                Yikes! I certainly don't want to come off as confrontational here, but I would truly hate too see that flexibility vanish. I suppose it wouldn't be that big of a deal if there was some other way put in place to customize the control schemes of the hundreds of games that don't work well otherwise.

                Edit: Just read your edit... or maybe I just went text-blind to that last sentence.

                it wasn't an edit :) weirdly can't see your edit
                unless I quote the post.

                anyway, yeah - the point of libretro is to be an api to handle all configuration, so using the mame menu is doing it's job for it - or, worse, conflicting. however, the implementation of libretro in mame2003 and others is far from complete, so the mame menu isn't going anywhere soon! :)

                mediamogulM 1 Reply Last reply Reply Quote 0
                • mediamogulM
                  mediamogul Global Moderator @dankcushions
                  last edited by mediamogul

                  @dankcushions said in lr-mame2003 pause screen is black:

                  so the mame menu isn't going anywhere soon! :)

                  That's a relief! I do look forward to the day when RetroArch's GUI is all-inclusive to the complete feature set of it's emulators. It's a tall order, but time and tide melt the snowman.

                  RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                  1 Reply Last reply Reply Quote 0
                  • caver01C
                    caver01
                    last edited by

                    I get inconsistent pausing. Sometimes it's black, sometimes it's a freeze frame. . . and it can take multiple presses to unpause. This makes a lot of sense now, as I know that I have both retroarch and MAME pause setup to use the "p" key.

                    Seems like there are two answers here. We could remap the key in MAME (I think the default is P for Pause) or remap the key in retroarch. For me, it is easier to simply set the pause key to "nul" in the retroarch.cfg for this emulator. I am away from my Pi now, but I am adding this to my to-do list.

                    My 4-player cocktail style cabinet built as a custom "roadcase"

                    1 Reply Last reply Reply Quote 0
                    • R
                      Rok
                      last edited by

                      Thanks for all of the information and advice.

                      @dankcushions : I have a button mapped to the "P" key which worked properly in a different version of Mame and works okay in lr-Mame2003 other than the screen blanking issue.

                      @mediamogul : You're right in that it's a minor annoyance but it did used to work when I used a different version of Mame (though I can't remember which one). I have everything sorted for 2003 now though and it's all working well other than the pause (and wanting to map "quit" to a single button which I haven't looked into yet).

                      @caver01 : It's my first expedition into the retroarch configuration files. I tried modifying the mame-libretro file to remap pause to "num2" (input_pause_toggle = "num2") to see what would happen. Pressing "P" still paused with a black screen but pressing "num2" did nothing. I experimented further to see if I was changing the right file and modified the up control (input_player1_up = "left"). Weirdly this made the up control move both up and to the left.

                      The upshot is that (a) I haven't had any success yet and (b) I don't seem to know what I'm doing :)

                      dankcushionsD caver01C 2 Replies Last reply Reply Quote 0
                      • dankcushionsD
                        dankcushions Global Moderator @Rok
                        last edited by

                        @Rok to get any libretro functions (print screen, quit, save state, load state, etc) working you normally need to hold your defined 'hotkey' first (usually this defaults to the designated select button). this is why you have to hold select AND start to quit, for example.

                        1 Reply Last reply Reply Quote 1
                        • caver01C
                          caver01 @Rok
                          last edited by caver01

                          @Rok As @dankcushions said, there is a hotkey which is probably keeping your remapped RetroArch pause from working (you need to press both the pause key and the hotkey at the same time). I forget now what was the hotkey default--either num1 or num5), but I disabled my hotkey functionality because it was driving me crazy. I don't use hand-held controllers--I have arcade controls--and I would be playing Metal Slug, frantically trying to drop coins and push Player 1 start, and BOOM that combo would trigger the game to exit (one key was the hotkey, the other was mapped to EXIT)! I think I did it once by accident trying to re-enter a game of Gauntlet. That can really make the 3 other players upset!

                          If you are trying to get away from overlapping keys, you might reconsider using num2, as that is already used in MAME for Player 2 start.
                          My workaround for MAME that I will use will be to edit /opt/retropie/configs/mame-libretro/retroarch.cfg like you did and add input_pause_toggle = "nul". This will effectively remove the retroarch pause since I already have the P key working inside the emulator itself.

                          Your modification with the Player 1 UP is probably now resulting in RetroArch sending UP when you push LEFT, and MAME is still interpreting LEFT as LEFT, so both happen together at the same time. It can get pretty confusing, especially if you have made input modifications in-game (which MAME saves for that game specifically).

                          My 4-player cocktail style cabinet built as a custom "roadcase"

                          1 Reply Last reply Reply Quote 1
                          • R
                            Rok
                            last edited by

                            @dankcushions : Ahhh, that's what I was missing! Pressing hotkey + P uses the libretro pause and freezes the picture perfectly.

                            @caver01 : My table also has arcade controls (I've just posted a few pictures over in the projects and themes thread if you're interested). I added buttons on the side of the table for the purpose of pausing games and returning to the menu. Using non-libretro emulation this isn't a problem but I'd like to get them working with the libretro emulators. I think I read that it's possible to disable the hotkey so that actions can be mapped to single keys. I hope that's right as it's the only way I can think to get pause and exit working on the single button presses. And if I can do that I'll have to disable them from the standard mame controls apparently. It's time for some playing around with the config files I think!

                            The black pause screen issue is sorted anyway. Thanks everyone for your input.

                            caver01C 1 Reply Last reply Reply Quote 0
                            • caver01C
                              caver01 @Rok
                              last edited by caver01

                              @Rok I have my hot key disabled. Functions like EXIT work fine mapped to a single key.

                              My 4-player cocktail style cabinet built as a custom "roadcase"

                              R 1 Reply Last reply Reply Quote 1
                              • R
                                Rok @caver01
                                last edited by

                                @caver01 : I've made progress! I've modified /opt/retropie/configs/mame-libretro/retroarch.cfg with the following -

                                input_enable_hotkey = "nul"
                                input_exit_emulator = "escape"
                                

                                This means I can exit games by simply hitting my exit button. Great! Pause is still broken however because it's performing the (desired) libretro pause as well as the (undesired) mame pause. Not only am I getting a black screen, but I have to press the pause button three times to unpause the game! I can see three ways of fixing this behaviour -

                                1. Disable (or remap) the standard mame pause key
                                2. Remap my I-PAC2 controller so that the pause button is something other than "P" and hook that into libretro
                                3. Disable the libretro pause key and stick with the standard mame pause that's blacking out the screen

                                Any idea if there's a way of disabling the standard pause key as (1) is definitely my preferred option?

                                dankcushionsD 1 Reply Last reply Reply Quote 0
                                • dankcushionsD
                                  dankcushions Global Moderator @Rok
                                  last edited by

                                  @Rok I think if you hit the tab key in-game, and look in the global input options, there should be a binding somewhere for the pause button. just bind it to something else or I think if you press delete it clears it?

                                  R 1 Reply Last reply Reply Quote 1
                                  • R
                                    Rok @dankcushions
                                    last edited by Rok

                                    @dankcushions : You're a superstar!

                                    For anyone in a similar situation, wanting to map P for pause and Esc for exit in lr-mame2003, here are my modifications to /opt/retropie/configs/mame-libretro/retroarch.cfg -

                                    # Remove the need for pressing a hotkey combination to activate pause and/or exit
                                    input_enable_hotkey = "nul"
                                    
                                    # Change the exit button
                                    input_exit_emulator = "escape"
                                    
                                    # Disable other hotkeys manually
                                    input_state_slot_increase = "nul"
                                    input_state_slot_decrease = "nul"
                                    input_reset = "nul"
                                    input_toggle_fast_forward = "nul"
                                    input_menu_toggle = "null"
                                    input_toggle_fullscreen = "nul"
                                    input_netplay_flip_players = "nul"
                                    input_frame_advance = "nul"
                                    input_rewind = "nul"
                                    
                                    # Disable Mame's default pause button by hitting tab in-game and removing the global pause key bind
                                    

                                    My table is now working exactly as I wanted it to! I may move these changes into the global retroarch file later but for now everything is great. Thanks guys!

                                    1 Reply Last reply Reply Quote 2
                                    • D
                                      dsstrainer
                                      last edited by

                                      The libretro pause is far superior since it doesn't black the screen. Change the mame2003 in-game pause to something like "o" and leave retroarch pause as is so that it is consistent with all other emulators.

                                      RetroPie v4.2 • RPi3 Model B • 5.1V 2.5A PSU • 8GB SanDisk class 10 microSD • 16GB External USB Thumb Drive
                                      Roms, images and configs stored in USB and symlinked from normal microsd location
                                      Xarcade Keyboard encoder + Zero Delay Joystick encoder

                                      caver01C R 2 Replies Last reply Reply Quote 0
                                      • caver01C
                                        caver01 @dsstrainer
                                        last edited by

                                        @dsstrainer only don't use "O" as that is already used for player 3 SW 4.

                                        My 4-player cocktail style cabinet built as a custom "roadcase"

                                        D 1 Reply Last reply Reply Quote 0
                                        • R
                                          Rok @dsstrainer
                                          last edited by

                                          @dsstrainer Thanks, but this was solved quite a while ago. I am using the LibRetro pause. The other part of the problem was getting the pause and reset functions to work on single button presses, hence the described LibRetro config modifications. Thanks for the suggestions though - much appreciated

                                          1 Reply Last reply Reply Quote 0
                                          • D
                                            dsstrainer @caver01
                                            last edited by

                                            @caver01 Yea i only have a 2 player setup atm but you got the gist.

                                            RetroPie v4.2 • RPi3 Model B • 5.1V 2.5A PSU • 8GB SanDisk class 10 microSD • 16GB External USB Thumb Drive
                                            Roms, images and configs stored in USB and symlinked from normal microsd location
                                            Xarcade Keyboard encoder + Zero Delay Joystick encoder

                                            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.