rom filename with "&" make runcommand crash.
-
I decided to upgrade my retropie PC working on ubuntu 22.04.
I took another HDD, I made a fresh install of retropie on a fresh ubuntu 23.04 > everything works ;-)
But, when I try any rom with "&" in the filename, it doesn't work! For exemple I try this file on mGBA emulator :
2 Game Pack! - Uno & Skip-Bo (Europe) (En,Fr,De,Es,It).7z
And I read this runcommand.log :
Parameters:
Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mgba/mgba_libretro.so --config /opt/retropie/configs/gba/retroarch.cfg "/home/teeace/RetroPie/roms/gba/EUR-USA/2 Game Pack! - Uno %ROM% Skip-Bo (Europe) (En,Fr,De,Es,It).7z" --appendconfig /dev/shm/retroarch.cfgSo I see that the "&" in the filename is replace by "%ROM%", filename is wrong, the rom can't be found.
I test this issue on:
ubuntu 22.04 > no issue, every games work
ubuntu 22.10 > same issue, the game don't workAny ideas? I'm a french linux beginner but i'll be happy to learn ;-)
-
Can't reproduce the issue with a similar named ROM file
Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-pcsx-rearmed/pcsx_rearmed_libretro.so --config /opt/retropie/configs/psx/retroarch.cfg "/home/pi/RetroPie/roms/psx/Bugs Bunny & Taz - Time Busters (Europe) (En,Fr,De,Es,It,Nl).chd" ...
Are you sure the "&" is not some other character that just looks similar (like Fullwidth Ampersand) ?
Run emulationstation with
emulationstation --debug
and post the log file (from$HOME/.emulationstation/es_log.txt
) on pastebin.com. Also, what's your exact RetroPie version ? -
@mitu
Thanks for the answer.
I must said that these rom files worked great on ubuntu 22.04... so yes it is a simple &.I'm very not familiar with linux command line so I'll try to launch emuationstation as you asked me...
I read the retropie setup and it seems to be a version 4.8.4 of retropie... installed today on a fresh ubuntu 22.10
-
-
-
Those are the correct log files. I see EmulationStation correctly sends the filename, but can't understand how that
%ROM%
gets toretroarch
. Using the same filename, I don't have an issueExecuting: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mgba/mgba_libretro.so --config /opt/retropie/configs/gba/retroarch.cfg "/home/pi/RetroPie/roms/gba/2 Game Pack! - Uno & Skip-Bo (Europe) (En,Fr,De,Es,It).zip" --verbose --appendconfig /dev/shm/retroarch.cfg
Can you also post your
/opt/retropie/configs/gba/emulators.cfg
file ? You can post the contents right in the topic, without pastebin.com.Is there any difference in configuration between the 2 installations (22.04 vs 22.10/23.04) ? Language, or login shell ?
-
No difference
Find the issue by installing the ubuntu 23.04 iso
So I made a test by using the ubuntu 22.04 iso and the issue was not there!
So I download ubuntu 22.10 and the issue was there too ;-)For my tests I formated HDD > installed ubuntu > installed videocard > installed retropie > installed emulator
-
I can send emulators.cfg but I must say that the issue is present on every console... (I first find the issue by testing Zelda & four swords rom ;-)
lr-mgba = "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mgba/mgba_libretro.so --config /opt/retropie/configs/gba/retroarch.cfg %ROM%"
default = "lr-mgba" -
The config file is ok - so it's not a configuration problem. The major difference may be the shell (
runcommand.sh
is just a shell script), Ubuntu 22.10 and 23.04 have an updatedbash
and that may be the culprit.
I'll have to test on a 22.10/23.04 system to see, maybe I can reproduce the issue there. -
Thanks again for your fast answers!
Yes I think that testing it on same ubuntu will reproduce it.
I want to use the last ubuntu because goverlay version 7 has issues on ubuntu 22.04... but works like a charm on ubuntu 22.10 and 23.04 (overlay version 9).
-
OK, I've reproduced the issue - it's because of the newer
bash
(5.2) and a new option added (patsub_replacement
) which replaces&
with the wrong valuex. New shell option: patsub_replacement. When enabled, a
&
in the replacement
string of the pattern substitution expansion is replaced by the portion of
the string that matched the pattern. Backslash will escape the&' and insert a literal
&'.Thanks for reporting, we'll see to get this fixed.
EDIT: update your RetroPie-Setup script and try again to see if the issue still occurs.
-
BIG THANKS !!!!!
1 > I updated retropie-setup script
2 > I removed and reinstalled RUNCOMMAND
3 > I tested different games and they worked ;-)Now I can play Zelda & 4 swords on Ubuntu 22.10 with Goverlay 9 !
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.