RetroBat-Official / retrobat-setup

Configure and build the RetroBat Setup
https://www.retrobat.org
Other
122 stars 17 forks source link

gamelist_only:rom does not exit #29

Closed bigmouse0001 closed 11 months ago

bigmouse0001 commented 11 months ago

in oder to load my custom images and roms,I try to make gamelist_only available on Emulationstation,then run the game,however it remind me of command line mistakes,the emulatorLauncher.log as follow:

[Startup] "E:\Retrobat\emulationstation\emulatorLauncher.exe" -gameinfo "C:\Users\Administrator\AppData\Local\Temp\emulationstation.tmp\game.xml" -p1index 1 -p1guid 030000005e0400008e02000000007200 -p1path "USB\VID_045E&PID_028E&IG_00\6&27DAFCDB&0&00" -p1name "Xbox 360 Controller" -p1nbbuttons 11 -p1nbhats 1 -p1nbaxes 6 -p2index 0 -p2guid 030000005e0400008e02000000007200 -p2path "USB\VID_045E&PID_028E&IG_03\6&11748C15&0&03" -p2name "Xbox 360 Controller" -p2nbbuttons 11 -p2nbhats 1 -p2nbaxes 6 -system switch -emulator yuzu -core -rom "E:\Retrobat\roms\switch\switch520(3)\怪物远征\AZ5EA.nsp"

[Error] rom does not exist

paragraphs of gamelist.xml: image

then I try to find the way or tool GitHub and reddit to fix this problem,I found it seems the bug of emulationstation itself,the specific information at Aloshi/EmulationStation issue 401,and issue 370

Tartifless commented 11 months ago

Hi, Can you show your "E:\RetroBat\roms\switch\switch520(3)\怪物远征\AZ5EA.nsp" folder ? (screenshot where we see the path)

bigmouse0001 commented 11 months ago

嗨,你能显示你的“E:\RetroBat\roms\switch\switch520(3)\怪物远征\AZ5EA.nsp”文件夹吗?(我们看到路径的屏幕截图)

the problem maybe not the mistake of file_path,but the emulationstation itself。

Here is the yuzu-boot command documented in the es_systems.cfg file:

"%<command>HOME%emulatorLauncher.exe" -gameinfo %GAMEINFOXML% %CONTROLLERSCONFIG% -system %SYSTEM% -emulator %EMULATOR% -core %CORE% -rom %ROM%.</command>

To put it simply, there are two model to start the ES:gamelist-only or ignore gamelist(scan all the rom).

ignore gamelist mode, the ES front-end will automatically scan the ROM in the selected folder when it starts, and save the file path of each ROM, so that after you enter the ES front-end and select the specified game, the emulator will start the game normally, because it can successfully call the corresponding ROM path of the game (-rom %ROM%).

gamelist-only mode, everything is the opposite, since the ES front-end does not automatically scan and store the ROM file path in the temporary system file in this mode, even if the selected game path in the ES front-end exists, it cannot be called (-rom %ROM%), resulting in the above failure and the game cannot be launched.

possible way to fix:

If gamelist-only, can you change the Command-line above, -rom %ROM% 👉 - rom %path%(rom_path in gamelist.xml,when you select the specific game in ES frontend)

fabricecaruso commented 11 months ago

Unless you have a really good reason to use the " gamelist-only mode ", I won't do support for this as it's a developer option. There's a warning in the UI on this option not to check this !!!

In this mode, the gamelists can reference paths that don't exist, so you're simply trying to lauch a game stored in a folder that does not exist. ( see the folder name, there's some space at end in the gamelist ). When you delete/move a file, the old entries are kept in the gamelist. So you're just probably trying to launch a game that was moved.

Also, " gamelist-only " option is generally slower.

bigmouse0001 commented 11 months ago

One reason is that there are many ways to get metadata from outside the emulationstation without always having to rely on the ES frontend to scan ROM paths and scrape metadata - if I can do this nicely outside of ES One task.

For example, I have 1,000 switch games stored locally, then I went to the gametdb.com website to download all the required metadata and cover images, and I used sqlite or mysql to assemble the gamelist.xml required by ES myself. In this case, why do I still need the es frontend to automatically scan the rom path?

The emulationstation's own functions of scraping metadata and modifying file names are not convenient and efficient. It is a wiser choice to solve this problem outside of ES. The player is responsible for providing the rom path and metadata, and es is responsible for starting the game based on the path provided by gamelist.xml.

Tartifless commented 11 months ago

You are mixing 2 things: metadata and rom/path information.

You can scrape metadata, images, etc. with an external tool without any issue, ES will not erase it simply by launching.

I do not at all understand the reason to use gamelist-only motivated by the scraping of metadata and images...

Tartifless commented 11 months ago

Additionnaly, the option gamelist-only is running the roms fine with our testing, provided the game rom did not move it will launch the game just fine.

bigmouse0001 commented 11 months ago

Additionnaly, the option gamelist-only is running the roms fine with our testing, provided the game rom did not move it will launch the game just fine.

no, you made a mistake. although the gamelist.path is correct and =rom_path, the game will launch failed with ES frotend. it's a bug by years~

bigmouse0001 commented 11 months ago

You are mixing 2 things: metadata and rom/path information.

You can scrape metadata, images, etc. with an external tool without any issue, ES will not erase it simply by launching.

I do not at all understand the reason to use gamelist-only motivated by the scraping of metadata and images...

after you scraping all the metadata and ROMS itself, then you should prepare the gamelist.xml for ES so that all the items could be displayed in ES.

however, if then, you want to launch a game by emulationstationlauncher.exe, then you need the REAL ROMS PATH(but it's stored by automatically scan, and only available with ignore-gamelist.xml). I think you can have a try for what I say.

but in that case, the efforts of collecting all the metadata and roms are failed. And that's the point.

as you know, I need to

but, there is a bug in the third step.

though the rom_path is correct in my own gamelist.xml, the ES launch command can't to identify it, because it only works with the ROM scanned by automatically.

Tartifless commented 11 months ago

Additionnaly, the option gamelist-only is running the roms fine with our testing, provided the game rom did not move it will launch the game just fine.

no, you made a mistake. although the gamelist.path is correct and =rom_path, the game will launch failed with ES frotend. it's a bug by years~

I just did try and it worked.

Tartifless commented 11 months ago

ignore-gamelist.xml). I think you can have a try for what I say.

but in that case, the efforts of collecting all the metadata and roms are failed. And that's the point.

as you know, I need to

* scrape metadata with external tools,

* import the gamelist.xml to ES,

* request ES yo launch the game.

There is no bug if you run ES without the ignore gamelist option, and all the metadata will not be lost

Tartifless commented 11 months ago

Are we talking about the same option: image

bigmouse0001 commented 11 months ago

Are we talking about the same option: image

yes it's. but you need to open prase gamelist only, then prepare some new metadata and relatively ROMS for tests

fabricecaruso commented 11 months ago

What happens with this option unchecked ? "in that case, the efforts of collecting all the metadata and roms are failed. And that's the point."

Well, if your medias are missing & games launch, that means that the external tool you use is writing bad paths in the xml file. Probably related to bad UTF8 encodings.

Use another tool to fix the xml file.

Anyway, it looks like we're currently making support for something that is not really related to retrobat, but to the way you want to edit your own xm files....

bigmouse0001 commented 11 months ago

What happens with this option unchecked ? If your medias are missing & games launch, that means that the external tool you use if wrong and is writing bad paths in the xml file.

let me tell you again,

with the same rom_path, in my custome gamelist.xml,

you know, a same rom_path but three different result, so I am sure my xml is organized well, the problem is about ESlauncher...

you know, years ago there were people issue this question in the github-rep emulationstation, but didn't fix it at now

fabricecaruso commented 11 months ago

Don't use --gamelist-only Don't use --ignore-gamelist Set the PARSE GAMELISTS ONLY to unchecked. -> Let EmulationStation work the way it should.

Now : What happens ? ( you never really answered it ) Games launch and you medias are missing ?

If that's the case the XML you produced (on your own) is badly encoded.

bigmouse0001 commented 11 months ago

Don't use --gamelist-only Don't use --ignore-gamelist Set the PARSE GAMELISTS ONLY to unchecked. -> Let EmulationStation work the way it should.

Now : What happens ? ( you never really answered it ) Games launch and you medias are missing ?

If that's the case the XML you produced is badly encoded.

launch game failed and ES reminds me:command is mistake.

my medias are exiting still, by the way, my xml code are UTF-8, is that problem?

I am sure the rom_path in my xml are correct, but I don't know why it launch failed. mayb the code is wrong, or maybe it's a bug with ESlauncher

fabricecaruso commented 11 months ago

So : launching games fails in every case ?

bigmouse0001 commented 11 months ago

So : launching games fails in every case ?

yes, if you open parse gamelist only, although all the rom_path in my xml are correct, you can't launch any game, any it always remind you:command is mistake

but if close the prase gamelist only option, and try to renew the gamelist, then aftet the automatically scaning finished——with the same game and rom_path, launch game are successful.....

fabricecaruso commented 11 months ago

then just don't use "parse gamelist only" lol

Tartifless commented 11 months ago

Can you share the 2 gamelist files :

fabricecaruso commented 11 months ago

Anyway it's a developer option. Not meant to be used by anyone. I should probably definitively remove these options & command line arguments.

bigmouse0001 commented 11 months ago

Anyway it's a developer option. Not meant to be used by anyone. I should probably definitively remove these options & command line arguments.

aha, I have found a way to fix it~only need a simple script when game start