Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

Gamelist Addon - an assist tool to manually add new game entries

  • Global Moderator

    @thelostsoul said in Gamelist Addon - an assist tool to manually add new game entries:

    Can I assume the "path" of a game is an unique id that can be found only once in a gamelist? Because that principle is the backbone of this application.

    Generally, yes - that would be a correct assumption. Does your program check the file-path, to see if it exists ?


  • @mitu No. Checking if files exist is not the job of the program. It is only for adding new game entries to an xml file and the comparison is made to make sure the game with same filename does not exist in it already (or when merging xml files). The user have to make sure to copy (or delete) all connected files. It is not meant to be a full rom manager.


  • @thelostsoul said in Gamelist Addon - an assist tool to manually add new game entries:

    1. I am almost finished with a merge option to ignore, replace or update entries. But I am not sure if such an update feature is useful at all.

    I see at least one practical application: I tend to use Simple Arcade Multifilter to sort the roms into genre subdirectories to see which games belong to a certain genre ā€“ and which may be tagged with the wrong genre in the dat file. After I've sifted through the games, your tool may be useful to merge the several gameslist files into one.

    Okay, that may be also possible with a simple for f in */; do cat "${f}gamelist.xml" >> gamelist.xml; done which does append every subdir's gamelist file to a new one in the current directory, but that wouldn't exclude doubles.


  • @Clyde Your use case is exactly what I do, just combining both (or multiple) xml files into one. The default behavior is to lookout for "doubles", so it does not add the same entry again. This is what the merge functionality is designed for. I call this "ignore", just adding new unknown games.

    My above question is leaning towards "update" functionalities, where individual tags like lastplayed or image would be updated individually. Because I do not see any benefit from such update functionality in a real world scenario. I probably give up on this (also can't make it work right).


  • Given that I understand you correctly, I'm actually looking for a tool that could merge tags like lastplayed from an old gamelist to a newly scraped one, since I often rebuild the gamelist via Skyscraper, losing every change that Emulation Station made to the old gamelist.

    Trying to write a bash script that does this is on my much too long to-do list for Retropie. šŸ˜‰


  • Version 0.2 is released. I hope the Update function works as you expect it would.

    Update mode
    Overall my attention mostly goes to the new update feature in the merge mode. When switched to the update mode via radio button, then in the following merge operation every single tag from both files are compared. The one from add content is then used, if its available. Otherwise it defaults to base content.

    I catched a lot of bugs, but won't recommend it to use on production yet.


  • Version 0.3 is released.

    • new dedicated settings for Merge Update mode, limit updates to selected Tags only
    • few missing Tags support added, previously they were ignored, namely sortname, thumbnail, favorite, hidden and kidgame
    • layout of main Add Game view redesigned, to reflect the new additions

    The GUI does not look as simple and clean as before, but the changes was necessary. There was a few Tags missing, which are now supported. A new page for limiting the updates on individual Tags when using the Update Mode in Merge Gamelists is added. One use case scenario for this feature could be in example to transfer the lastplayed and playcount from one file to another. This could be needed when the main gamelist was rescaped for example.

    gamelistaddon-tags-settings.png


  • @thelostsoul That's exactly what I need, thank you so much! šŸ˜ƒ

    That said, a command line mode would be even better to automate things, like transferring lastplayed etc. after each new scraping. But that's a purely luxury wish, resp. a feature request for future times when you may get bored. šŸ˜‰

    The tool is already awesome as it is now.


  • @Clyde I know what you mean, because it's exactly what I need too. :D

    About the automation, yes I want that implemented in the main app too someday. Just in case you did miss it, there is a quick and dirty commandline version of merge functionality since the beginning: merge .py. Its located in the same folder as the main app (off course not included in the compiled version).

    This is exactly for the case of automation, try ./merge.py --help. Using it without an output file will not modify anything. It uses the same backend for merging as the main app (modular design šŸ¤—), but the custom tags functionality is not implemented yet, sorry bout that. And its error handling is poor too. When an error happens, it stops working and writes ERROR to terminal. That's all.

    I also want to make the whole program better testable, but that requires a bit of internal reworking. I need testing more, although it seems to be solid right now. So before making more tests, I don't recommend using it in productive environment.


  • @thelostsoul said in Gamelist Addon - an assist tool to manually add new game entries:

    About the automation, yes I want that implemented in the main app too someday. Just in case you did miss it,

    I actually did miss it. Thanks for the directions.

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.