Closed gteachey closed 1 year ago
It looks to be an issue with loading the game's data found in fuel.json
. Unfortunately I don't have that game to try to recreate the error. Please could you go to the game's directory and show what the fuel.json
file looks like? It appears to not be valid JSON from the error message.
Edit:
I managed to recreate what I believe to be the same error Indiana Jones and the Last Crusade
, with fuel.json
looking like this:
{
"SchemaVersion": "2",
"PostInstall": [ ],
"Main": {
"Command": "Common\\ScummVM\\scummvm.exe",
"DesktopShortcutIconFile": "Common\\ScummVM\\Indy3.ico",
"Args": ['-c', 'last-crusade.ini', 'last-crusade']
}
}
It turns out that the Args
field is using single quotes for strings, which isn't valid JSON. If instead of loading with json.loads()
we load the data with ast.literal_eval()
(which is less strict on exact syntax) then this fixes the issue. However, this has then brought to my attention 2 other issues:
bottles-cli: error: unrecognized arguments: -a -c
)Edit 2: For the Bottles issue, it turns out that:
fuel.json
's extra arguments specifying filepaths e.g. last-crusade.ini
assume that the executable has been run with the root game folder as the working directory, so is unable to find the fileYes that was the problem. The fuel.json had an extra comma in it
{
"SchemaVersion": "2",
"PostInstall": [
{
"Command": "dependencies\\oalinst.exe",
"Args": ["/quiet", "/norestart"],
"ValidReturns": [ 0, 5100 ]
}, <<-- BAD COMMA HERE
],
"Main": {
"Command": "Baldur.exe",
"Args": []
}
}
Once I deleted it the game was able to run. Much appreciated!
Closing my issue now
This is some weird kind of JSON though. I'll try to fix the parsing
EDIT: This should be resolved with https://github.com/imLinguin/nile/commit/783327911389972822c85bfc5de59e65c485fdbc
NOTE: there is a new json5 dependency
I'm able to install Amazon Games, but trying to launch it with nile keeps giving me a JSON error
How do I get games to launch with this app?