Aloshi / EmulationStation

A flexible emulator front-end supporting keyboardless navigation and custom system themes.
MIT License
2.08k stars 904 forks source link

Allow Not-Absolute Game Paths #370

Open Enverex opened 9 years ago

Enverex commented 9 years ago

I've run into an issue where an emulator I'm using uses the UUID of games to launch them, rather than the game files themselves, unfortunately ES doesn't like this and skips the entire platform as it thinks none of the files "exist". Here's a snippet from my gamelist.xml for the platform...

<game>
<path>d692a48b-6c62-5292-9173-bd2c52dce2a3</path>
<name>1000cc Turbo</name>
<desc>Get in the saddle and ride in this great motorbike racing game! Choose from a variety of powerful bikes (including Enduro and Road Bikes) and race against some extremely tough opponents! Ride as fast as you can to the sound of stirring biking music - but ride to w$
<publisher>Impressions</publisher>
<developer>Max Design</developer>
<releasedate>19900101T000000</releasedate>
<image>/mnt/store/Emulation/Assets/Commodore_Amiga/Box/1000cc Turbo.jpg</image>
<genre>Driving, Racing, Motorcycle, Street</genre>
<rating></rating>
<players></players>
</game>

So passing "d692a48b-6c62-5292-9173-bd2c52dce2a3" to the emulator would work fine, but ES skips over this game entry because it's not an actual file that exists. There needs to be some way to avoid ES performing checks on the paths, ideally I'd like to be able to tell ES never to check them as I generate all of them outside of ES itself and know they're right, it would also cut down on delays as I can imagine it takes a while to check all these when starting up.

I'm already using the "--gamelist-only" argument which doesn't help.

sselph commented 9 years ago

This seems to be where the check takes place. You can play around with removing it to see how it works https://github.com/Aloshi/EmulationStation/blob/master/es-app/src/Gamelist.cpp#L117

A workaround might be to create the files in the gamelist folder so that it fools ES like: grep "" gamelist.xml | sed -e 's/<.>(.)<.*>/\1/' | xargs touch

Enverex commented 9 years ago

Good spot, basically we need an argument for the command line that basically lets you disable lines 117-128. Like "--trust-gamelist" or something.

Enverex commented 9 years ago

I've played about with this a bit but I have a feeling it goes deeper than I first thought as I can't find a simple way around this (all my attempts have either resulted in ES failing to start or these games still not showing up).