Since RetroArch doesn't support filtering by games that have achievements, I decided to make this! Huzzah!
Warning
Do not make a version of this public without refining it! Only because since this exposes your RetroAchievement Web API key. Please keep this in mind before publishing it.
Important
This only works if you have a playlist of arcade games already created locally. This does not work with other systems.
This was written using node v18.17.1
and should work with versions v18.x.x
.
- Pull this to your local machine through your own normal git methods. You do you, boo!
- Run
npm i
- Make a copy of
.env.example
and rename it to.env
then place your RetroAchievement username inVITE_APP_RA_USERNAME
, and the web API key inVITE_APP_RA_KEY
. See https://api-docs.retroachievements.org/getting-started.html for further details on how to get your Web Key. - Run
npm run dev
and open http://localhost:5173/ locally. - On load, it will reach out to the RetroAchievement Web API and get all currently supported arcade games into memory. It will say "true" in the header once it has successfully loaded the data.
- Select your already created Arcade Playlist in the file select box. See https://docs.libretro.com/guides/roms-playlists-thumbnails/ for details on how to create a playlist.
- Click the download link that now appears, and save it to the folder you have your RetroArch playlists. Feel free to name it whatever you want.
- Open RetroArch and enjoy!
The playlist does not automatically update; you will need to run this whenever new arcade games get achievements and overwrite the custom playlist.
As mentioned above, this code is not set up to be published online, as it exposes an API key. Having it done on a server level would make this much more secure, but hey, considering how niche this is, how much demand could there possibly be (knock on wood)