Emulator Issues #12896
openFeature request: Add achievements support with RetroAchievements
0%
Description
The RetroAchievements website has let people earn achievements with emulators since 2012, and I believe it'd be nice if it could also be integrated with Dolphin for use with GameCube and Wii games. This would require collaborating with the RA web team, exposing memory (since that is what is used to ascertain whether an achievement's conditions have been met) and more.
Updated by TheFetishMachine over 2 years ago
Support for RetroAchievements would be using the https://github.com/RetroAchievements/rcheevos library
Updated by Zopolis4 over 2 years ago
Wouldnt this be more suitable for the retroarch version of Dolphin? I'd prefer to keep retroarch related things in the retroarch version, what with the bountiful GPL violations and all.
Updated by TheFetishMachine over 2 years ago
The retroarch version of Dolphin is very much behind the standalone as far as I know; Retroachievements isn't bound to libretro cores and using the standalone feels like the better option imo.
Updated by flagrama over 2 years ago
It appears to me it pretty much has to be a libretro/retroarch core.
https://docs.retroachievements.org/System-X-wen/#requirements
While the first requirement implies some leniency, the third one strips that and requires it to be a libretro core.
Updated by TheFetishMachine over 2 years ago
@flagrama: You're right, that page would suggest that, but I can assure you that page isn't up to date. There's already a bunch of standalone emulators that support RA and right now PCSX2 has a WIP build that supports achievements: https://github.com/PCSX2/pcsx2/pull/5915
Updated by TheFetishMachine over 2 years ago
Also forgot to link this github: https://github.com/RetroAchievements/RAIntegration
Updated by flagrama over 2 years ago
Aren't most of the standalone emulators by RetroAchievements themselves? Also, that integration looks like it's Windows only? So no macOS/Linux/Android support?
Updated by Memequester over 2 years ago
Aren't most of the standalone emulators by RetroAchievements themselves?
Most of the standalone emulators are by RetroAchievements, but that's irrelevant. standalone DuckStation has working RetroAchievements support, not based on RetroAchievements' emulators or libretro's cores.
Also, that integration looks like it's Windows only? So no macOS/Linux/Android support?
RAIntegration is windows-only, yes, but there are workarounds and alternatives. Again, Duckstation's RetroAchievements implementation works on Android and other platforms.
Updated by TheFetishMachine over 2 years ago
Also, from what I understand, RAIntegration only applies to devs making achievement sets; users that just wanna earn pre existing achievements can use Win/Mac/Linux and Android without issue.
Updated by dan_el about 2 years ago
I would like to support this petition. Gamecube is the only console from the sixth generation that doesn't have support for retroachievements. Hope Devs of Dolphin can see this request
Updated by CasualPokePlayer about 2 years ago
To clear some confusion here:
The RetroAchievements and RetroArch teams are separate. The servers are managed by the RetroAchievements web team, the RetroArch folks don't manage it. RetroAchievements' role in RetroArch is more or less just RetroArch adding support and RetroAchievements' devs occasionally PR'ing updates with the API and such.
rcheevos (linked above) is a simple library for RetroAchievements runtime support. It handles achievement logic, hashing, constructing URLs for API requests, and parsing server responses. HTTP GET/POST is to be handled by the client using the library. A peek callback is to be handed to the library for running achievement logic. The library doesn't handle any UI, that is to be handled by the client. As this library is written in C89 and only depends on the CRT, it is extremely portable and thus can run on anything practically anything (certainly anything Dolphin runs with). The library itself is licenced MIT (as again RetroAchievements is not RetroArch), so there should be no licencing issues.
RAIntegration (linked above) is a more complex library. It itself uses rcheevos, but also handles more things, doing HTTP GET/POST, constructing UI for interacting with RetroAchievements, and various debug elements intended for people making the achievements themselves. It relies on WinAPI functions to do this, so it is limited to Windows. It's best to support optionally but not as the main show (as it's not cross platform and it's more intended for people making achievements rather than people who just want to play games and earn achievements). This library is also MIT licenced, so no licencing issues with supporting it.
Of course as mentioned, the documents that imply a libretro core is required are outdated. Really, I assume the intent there is that achievements should have an emulator available to develop them. If you only have an emulator with runtime support and no way to create achievements on it, you end up with a fairly pointless implementation as you can't earn non-existent achievements. Of course, simply supporting RAIntegration optionally fixes that issue.
Updated by winglessshikami about 2 years ago
That's correct, not to mention-recently PS2 has also had RA support added, would be nice to see Dolphin follow suit.
Updated by Kinglink about 2 years ago
Just as a minor point to help clarify. It was PCSX2 that natively added RA support. The PCSX2 standalone emulator is what is used as official Retroachievement emulator, and there has been no issues with that. Hopefully Dolphin will at least consider linking against the library if that's preferable as it seems like that's the primary concern, or at least have a little more discussion to consider the viability of this.
Updated by JMC4789 about 2 years ago
It's not about rejecting it, it's about finding someone to do the work.
Updated by ayeseeb8 about 2 years ago
I am guessing this is more of a major milestone rather than a simple feature, but I can say from a value perspective it is a game changer. PCSX2 has gained many points in my mind due to its ability to manage RetroAchievements…
RAs give users a reason to come back to older favorite games and explore areas they might have missed… Whoever takes this on will make many people happy, more so that many other features in the queue, I believe.
Updated by winglessshikami almost 2 years ago
One possibility is examining Stenzek's RA implementation for PCSX2 and converting it over to Dolphin. He has already given his approval so long as the copyright is kept intact (was mentioned in the PCSX2 discord).
Updated by AdmiralCurtiss over 1 year ago
- Has duplicate Emulator Issues #13207: [Request] RetroAchievements Integration added
Updated by Billiard26 8 months ago
- Issue type changed from Bug to Feature request