Project

General

Profile

Actions

Emulator Issues #12896

open

Feature request: Add achievements support with RetroAchievements

Added by TheFetishMachine over 2 years ago. Updated 8 months ago.

Status:
New
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Feature request
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

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.


Related issues 1 (0 open1 closed)

Has duplicate Emulator - Emulator Issues #13207: [Request] RetroAchievements IntegrationDuplicate

Actions
Actions #1

Updated by TheFetishMachine over 2 years ago

Support for RetroAchievements would be using the https://github.com/RetroAchievements/rcheevos library

Actions #2

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.

Actions #3

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.

Actions #4

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.

Actions #5

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

Actions #6

Updated by TheFetishMachine over 2 years ago

Actions #7

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?

Actions #8

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.

Actions #9

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.

Actions #10

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

Actions #11

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.

Actions #12

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.

Actions #13

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.

Actions #14

Updated by JMC4789 about 2 years ago

It's not about rejecting it, it's about finding someone to do the work.

Actions #15

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.

Actions #16

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).

Actions #17

Updated by AdmiralCurtiss over 1 year ago

Actions #18

Updated by Billiard26 8 months ago

  • Issue type changed from Bug to Feature request
Actions

Also available in: Atom PDF