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

  • This is addressed to @pjft (who seems to be the guy who implemented the favorite flag in gameDecls), @BuZz (the big boss) and other ES hackers ( @Hex , @jdrassa , @Zigurana , @fieldofcows , etc).

    I believe it's an edge case for a little niche of users, but, you know I'm a retroachievements enthusiast and asking doesn't hurt, right? :)

    What about providing a cheevos flag in gamelist.xml (just like the favorite)?

    The intention is NOT creating a "cheevos system" like favorites or last played, but filtering the games with cheevos. Something similar to what we can do by filtering genre/publisher/developer, but instead of text, it would be a boolean flag.

    One question that may come: How the <cheevos> field would be filled?

    The first answer is: manually. I can think in some ways to automatically fill this via shell script, retrieving that info from retroachievements.org, but it would be outside the ES. Then, from an ES point-of-view, it would be manually. (UPDATE: I've created the hascheevos tool to populate the gamelist.xml files with this metadata. Check how to use it here: https://github.com/meleu/hascheevos)

    What do you guys think?

    EDIT
    To avoid any confusion, in this post I explain the exact expected result of my request.


  • In concept, I don't oppose to adding a field to metadata as long as it is useful and benefits a wide audience. The question is, if everyone needs to add it manually, how much adoption will it have.

    Let me start the other way around: if there is a way for users to be able to populate that field in their usual flow (be it via a scraper - is there any source that has that info, and that users could read it from - or if you'd want to create one such tool to go through users' gamelists and populate that) I'd surely be more than happy to consider it.

    Ideally, even though a script that would populate current gamelists and reading from the retroachievements' site as a source would be quite good, I feel that the best way to get it would be via one of the standard scrapers for new users. But lacking that, that script I mention (which is, in effect, a scraper in itself - just a separate one) that would update people's gamelists would be nice already.

    Without that, I fear it'll be something that only a handful of people will really benefit from, hence begging the question: why not just create a separate collection for that, if it's an edge case, rather than adding something that very few people will use? :)

    Let's keep this open. :)


  • @pjft I get the argument that appealing to a small audience may not be the best reason to add a feature, but perhaps adding the function may be the catalyst for wider adoption.

    As of now cheevos is part of retropie but it's extremely barebones in both the ES and Retroarch sides, making it king of inaccessible to users like me who only use features that are well integrated (thanks for favorites, btw).

    A dream cheevos system would see retropie adding some sort of script to show a ps/Xbox style graphical and themeable (possible animated) pop up during game play showing your achievement, instead of that little yellow text users looking for a console like experience like myself have turned off. The ability to sort in ES and add a themed element to the game display would just add to the user friendliness.

    I have thought about using it, but without it being sexy, I've been a hold out.

    Just my 2c

  • Global Moderator

    @capeman said in what about adding a cheevos flag in gamelist.xml ?:

    A dream cheevos system would see retropie adding some sort of script to show a ps/Xbox style graphical and themeable (possible animated) pop up during game play showing your achievement, instead of that little yellow text users looking for a console like experience like myself have turned off. The ability to sort in ES and add a themed element to the game display would just add to the user friendliness.
    I have thought about using it, but without it being sexy, I've been a hold out.
    Just my 2c

    if anyone wants to donate for this, here's the bounty!
    https://www.bountysource.com/issues/38991924-show-images-for-awarded-achievements


  • @pjft said in what about adding a cheevos flag in gamelist.xml ?:

    if there is a way for users to be able to populate that field in their usual flow (be it via a scraper ... or if you'd want to create one such tool to go through users' gamelists and populate that) I'd surely be more than happy to consider it.

    Yes. In fact I was about to write a bash script for that thinking in use genre or developer filtering to see only the games with cheevos. And then the idea for boolean flag came to my mind and I started this topic.

    The scrapers tools and resources don't have this info. The only place which have this info is the retroachievements.org server. Maybe I can bother @sselph a little so we can add this feature to his awesome scraper. It would be really cool. If ES was able to parse JSON data it could get this data itself, but I think it would be to much to ask...

    I fear it'll be something that only a handful of people will really benefit from

    I agree with @Capeman when he says "adding the function may be the catalyst for wider adoption."

    why not just create a separate collection for that, if it's an edge case, rather than adding something that very few people will use? :)

    Yeah, the inception of my idea here was that request/suggestion made by @hansolo77 . I just think that having this filtering option in each system would be neat. :-)


  • @capeman

    A dream cheevos system would see retropie adding some sort of script to show a ps/Xbox style graphical and themeable (possible animated) pop up during game play showing your achievement

    It's a RetroArch thing, not RetroPie. I mean, if somebody wants to suggest this kind of stuff, it should be addressed to RetroArch project. By the way, this is already addressed on that link posted by @dankcushions above (and I'm the one who posted the first bounty on that issue :) )

    I have thought about using it, but without it being sexy, I've been a hold out.

    You can use it without that yellow text by disabling OSD messages. Then you will only see your progress on the RetroAchievements site.


  • @meleu Would you have a way to scrape the data from retroachievements.org?

    Maybe a clumsy wget from http://retroachievements.org/gameList.php and regexping the hell out of it?

    And then having a script go through the user's gamelists and populating that tag?


  • @pjft said in what about adding a cheevos flag in gamelist.xml ?:

    @meleu Would you have a way to scrape the data from retroachievements.org?

    Yes. But it talks JSON. I'm able to easily parse JSON data in shell scripts using the very handy jq tool (btw,I use it to fill the ES repos/branches from opened PRs in my es-tests tool).

    That's how I'm planning to populate user's gamelist.xml.


  • @meleu Sounds good. Let's do it then. So you'll be putting together a small script that will go through users' gamelists and populate a "<retroachievements>true/false</retroachivements>" tag. Is that the spec?


  • @pjft said in what about adding a cheevos flag in gamelist.xml ?:

    @meleu Sounds good. Let's do it then. So you'll be putting together a small script that will go through users' gamelists and populate a "<retroachievements>true/false</retroachivements>" tag. Is that the spec?

    yep!

    I suggested "cheevos" because it's a widely used slang for "retroachievements" (btw, the RetroArch config is cheevos_enable).

    If it would be "true/false" or "0/1" depends on how ES manage boolean data. What happens with the favorite field?

    Well, I became excited after reading that "Let's do it" part! :)

    I'm going to have some free hours tomorrow. I'll try my best to write the script! If I succeed, I'll try to convince/help @sselph to add this feature to his scraper. :-)

    Cheers.


  • @meleu let's call it achievements then. It's more generic. Thinking about it, it's better if it's not tied to a source - in the future there may be others.

    Still unclear if the use case of every time filtering by achievements is really that functional as opposed to having a pre curated collection/list, though.

    Do you really see yourselves doing that use case on a day to day basis?


  • @pjft said in what about adding a cheevos flag in gamelist.xml ?:

    Do you really see yourselves doing that use case on a day to day basis?

    My answer is an emphatic yes! :-)

    When I was building my arcade cabinet I spent a lot of time curating games with cheevos for each system. It wasn't a pleasant task...

    Also, it's a dynamic info. Games that doesn't have cheevos today can have in the future. And then you have to curate games again. There are cheevos developers around that site. They are very friendly and like to develop cheevos as you like to develop ES stuff. :) (btw, I am really grateful to the guy who created cheevos for "G.I. Joe" (NES) when I requested it).

    For a cheevos hunter, it's better to leave all the ROMs he/she has, run the "cheevos scraper", and then filter the game list in ES.

    EDIT
    Tagging other guys who seems to like the retroachievements feature:
    @mediamogul @edmaul69 @Sano @grenade44 @hansolo77 @R1n0X @cabrunco @muehltime @orymer @backstander @fun4stuff @Trotts @Keysersoze77 @PokeEngineer

    Hey guys, can you please answer the @pjft 's question: Do you really see yourselves doing that use case on a day to day basis?


  • @pjft Yeah man!! This is a great enhancement for Emulation Station!!! I always use cheevos function!!


  • @r1n0x I'm specifically referring to the use case of filtering vs having a pre curated collection/system with the games that support achievements.


  • @pjft i would love to use the filtering feature!!!!


  • @meleu said in what about adding a cheevos flag in gamelist.xml ?:

    EDIT
    Tagging other guys who seems to like the retroachievements feature:
    @mediamogul @edmaul69 @Sano @grenade44 @hansolo @R1n0X @cabrunco @muehltime @orymer @backstander @fun4stuff @Trotts @Keysersoze77

    Hey @meleu, you can add me to the list too.


  • @pokeengineer done! Now how about answering that question? :-)

    You are looking at your EmulationStation, in the NES game list. If you had a chance to filter only the games that has cheevos would you use this filter frequently?


  • @meleu

    Yeah, I would.


  • Absolutely count me in!!! I would test the bejesus out of that. :) But I'm not sure I really like the idea of having to go through a custom sort to get to my cheevo games. The way I have it now, my cheevo games are copied in the system folder in a subfolder. ES displays that folder as a ROM, so I select it and it opens up a list of games I've got in that folder. I know instantly that every game in there has cheevos. If I understand you current plans, it's to add an extra field in the metadata, which can be selected as a sort option. "Sort by Publisher, Genre, Players, Date Released, Cheevos". That would just make the gamelist present itself with games containing cheevos at the top, and the others at the bottom. BUT maybe I don't want to necessarily play a cheevo game. I'd hate to have the sort be to cheevos then have to go back in and change the sort to alphabetical. What I'd like to see is a metadata field (boolean meaning true or false right?) that allows me to create a collection like "Favorites" or "Last Played" so I can instantly select it from the main system menu without being limited to a sort, or even having to enter a system.

    As for the scraping, this is a great idea. Up till now, I've had to manually go through my rom folders with a copy of the website up in a separate window looking at what's been added recently (once a week I check) and copy roms from one folder to the subfolder. It's long and tedious but gets the job done. If a method to scrape from the website lists automatically, and just add that "true" to the metadata can be made.. HELL YEA. :)

    And yes, I would use this daily (when I'm not hacking around adding new features!). When I learned about RetroAchievements, that's pretty much guaranteed the 99% of the games I will play. I love trying to play for them. It is exposing me to a lot of games I wouldn't have even tried before. It's just more fun. And if we can make the RetroPie project include support in ES for this on the front lines, I can almost promise you more and more people will looking to use it. It's like before we had videos, people were happy with the way it was. Then video screens became a possibility, and now EVERYBODY is hopping on board. It really is the next best thing.

    And @meleu is right. The RA team is developing cheevos on a daily basis. You literally can go there everyday and find a list of new cheevos and games that support them. Hell, I bet you could create a script as part of the ES boot up (if you have internet established) to check and see if any new games are supported and have it update your lists then and there. Although it would probably be better if it was an optional feature.

    Keep me updated. I'd love to test out whatever you guys come up with!


  • This is a great idea. What would be cool if the flag changed colour to say if you have completed the game as well. But I know that would be hard to code.

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.