Load NON-PC rom with a script?
-
@mitu Code tags? First I'm hearing of that. That's probably the thing I'm missing.
My
*.sh
file contains literally only the exact commands you quoted above. I know nothing about writing*.sh
files aside from what I've discussed with you in this thread.— CB
-
@clockwork42 said in Load NON-PC rom with a script?:
@mitu Code tags? First I'm hearing of that. That's probably the thing I'm missing.
No, it's not. I was referring to the
```
you put in forum posts to make code blocks stand out, not to the actual script content. -
@mitu said in Load NON-PC rom with a script?:
@clockwork42 said in Load NON-PC rom with a script?:
@mitu Code tags? First I'm hearing of that. That's probably the thing I'm missing.
No, it's not. I was referring to the
```
you put in forum posts to make code blocks stand out, not to the actual script content.Oh, sorry. My misunderstanding. At any rate, my
*.sh
file reads exactly the following:/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/Chrono Trigger/chrono_msu1.sfc"
I triple-checked the path to be sure it's correct. To be clear, this is the code that seems to crash the loading process (where it's stuck on the gray box and I can't do anything).
Sorry again for the hassle. I appreciate your continued willingness to help.
— CB
-
@clockwork42 I know this thread is a few months old but figured out how to do exactly what I believe you are trying to do and I wanted to post it in case you or anyone else is still looking like I was up until recently.
I separated MSU-1 into a distinct system from the rest of SNES called "snesmsu1". Here is what my "/roms/snesmsu1" folder looks like:
For this setup you would also need to make a folder called "snesmsu1" at "/opt/retropie/configs/snesmsu1". You could copy the "snes" folder from "configs" as a starting point. I removed all emulators from "emulators.cfg" except for lr-snes9x and replaced the reference to "snes" with "snesmsu1" so that it looks like this:
lr-snes9x = "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-snes9x/snes9x_libretro.so --config /opt/retropie/configs/snesmsu1/retroarch.cfg %ROM%" default = "lr-snes9x"
I also edit "retroarch.cfg" replacing the reference to "snes" with "snesmsu1" so that it looks like this:
# Settings made here will only override settings in the global retroarch.cfg if placed above the #include line input_remapping_directory = "/opt/retropie/configs/snesmsu1/" #include "/opt/retropie/configs/all/retroarch.cfg"
The crucial part that will make runcommand execute your 'rom.sh' files as scripts instead of trying to open them with the default emulator is the command node in your "es_systems.cfg" file. Here is what my system node for "snesmsu1" looks like, including the command:
<system> <name>snesmsu1</name> <fullname>Super Nintendo MSU1</fullname> <path>/home/pi/RetroPie/roms/snesmsu1</path> <extension>.sh .SH</extension> <command>bash %ROM%</command> <platform>snes</platform> <theme>snesmsu1</theme> </system>
With the above in your "es_systems.cfg" and a folder named snesmsu1 in your "roms" folder, you will have a separate section in EmulationStation for SNES MSU-1. You will also have to use a theme that has an "snesmsu1" section. Otherwise, you will have a blank, unthemed section for "snesmsu1".
Only '.sh' files in your "snesmsu1" folder will be displayed in this section in EmulationStation. Notice in my screenshot that the names of all the folders that contain the actual game files begin with a dot which makes them hidden in Linux so they aren't displayed in EmulationStaion. Your "gamelist.xml" file points to one of the '.sh' files in the "path" node for each game and then you can have all your metadata and media set up as well and everything will look pretty in EmulationStation.
Other than that, here is an example of what my 'Chrono Trigger (MSU-1).sh' looks like for launching the game:
#!/bin/bash "/opt/retropie/supplementary/runcommand/runcommand.sh" 0 _SYS_ "snesmsu1" "/home/pi/RetroPie/roms/snesmsu1/.Chrono Trigger (MSU-1)/Chrono Trigger (MSU-1).sfc"
Because of the different commands in "es_systems.cfg" for launching regular SNES ROMs vs. running shell scripts, you really do need to separate MSU-1 into a different system from regular SNES. Actually, you could combine them, but if you want to keep things organized as described then you would have to create a similar shell script for each regular SNES ROM as well. I prefer to have them separated for aesthetics, organization and ease of use.
With everything configured as I described, EmulationStation looks nice and tidy and so does my "/roms/snesmsu1" folder. I hope this helps.
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.