SOLVED: lr-mame2003 pause screen is black
-
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?
-
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...
-
@dankcushions said in lr-mame2003 pause screen is black:
mame might have it's own key that does whatever...
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.
-
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.
-
@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.
-
@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! :)
-
@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.
-
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.
-
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 :)
-
@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.
-
@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 addinput_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).
-
@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.
-
@Rok I have my hot key disabled. Functions like EXIT work fine mapped to a single key.
-
@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 -
- Disable (or remap) the standard mame pause key
- Remap my I-PAC2 controller so that the pause button is something other than "P" and hook that into libretro
- 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?
-
@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?
-
@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!
-
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.
-
@dsstrainer only don't use "O" as that is already used for player 3 SW 4.
-
@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
-
@caver01 Yea i only have a 2 player setup atm but you got the gist.
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.