Unlocked: RetroAchievements Come to Dolphin

Dolphin's users are always looking for new ways to play their favorite games. And when a project called "RetroAchievements" started gaining popularity for adding achievements into retro games, users started wondering if Dolphin would ever add support for the project. Unfortunately for them, Dolphin isn't a retro game emulator. We're a modern emulator that emulates two recent Nintendo consoles! RetroAchievements wouldn't make sense-

Ah shi-

RetroAchievements Dolphin Launch Announcement!

That's right, it's finally here. RetroAchievements integration has come to Dolphin. Now you can play some of your favorite GameCube games with full achievement sets that are automatically recorded to your RetroAchievements account. Much like modern "achievements" or "trophies", RetroAchievements sets essentially amount to a list of tasks and goals that may go above and beyond simply beating the game.

For their GameCube launch day, they've gone all out, with over 100 different titles on launch. This ranges from some of the most popular GameCube games, to obscure gems, terrible games, and even a few game mods!

For a full list of games, check out the RetroAchievements GameCube Library with more on their way soon! Want to get hunting right away? RetroAchievements integration is available in Dolphin 2407-68 and newer, which can be found on our downloads page. This will give us a chance to work out some of the kinks before it reaches most of our users in the next release update.

Activating RetroAchievements

By default, RetroAchievements are disabled in Dolphin. To activate integration, you have to log into your RetroAchievements.org account in Dolphin's new "Achievements" window that's located under the "Tools" dropdown. If you don't have one, you can create a free account on their website.

Logging in, tracking, and settings are all contained within one window!

Once you're logged in and RetroAchievements Integration is enabled, the next time you load a game with RetroAchievements support, you'll get access to achievements and much more. And that's basically everything you need to know. But, if you're interested in what RetroAchievements can do and how it works, continue reading as we go into more detail.

Achievement Lifestyle

No matter how you play, RetroAchievements can fit into your style. You can passively gather achievements just by playing through the game, with every set guaranteed to have progression achievements that follow along with the main story or goals of the game. If you do beat the game, the game will be marked as beaten on your RetroAchievements account.

On the other hand, you could also take a more active style of Achievement hunting. At any time, you can visit the gamepage on retroachievements.org or through the Achievements menu in Dolphin on the Progress Tab. There you can see what achievements you have, which ones you're missing, and how to obtain any of the achievements. This can be an excellent way to find new challenges in a game you've played through many times before.

Some achievement sets might be daunting.

Note that in order to get all of the achievements in some games, you might need to start over with a fresh savefile. Some games, like Luigi's Mansion have multiple save slots so this isn't really a problem. But games like 1080 Avalanche and Super Smash Bros. Melee require starting from a fresh save for many achievements.

Don't worry, though! You can always create a new savefolder for Dolphin, backup saves, or use a new memory card file if you want to start fresh without losing savedata.

Finding the Right Challenge

Each RetroAchievement has a score assigned to it. When you collect that achievement, the score of that achievement gets added to your account. Achievements score anywhere from 1 point to 100 points. Single point achievements tend to be easy, sometimes are things that you can't skip, or they might be some kind of funny easter egg. On the other hand, 100 point achievements are some of the most daunting tasks imaginable within that game and can take serious dedication and practice to accomplish. Make sure to pay attention to how many points an Achievement is when picking one to hunt down. You might bite off more than you can chew!

The game you play also shapes the kinds of achievements you get. Games like Harvest Moon: A Wonderful Life will challenge your time management and min/maxxing skills. Meanwhile, F-Zero GX will be mostly about going fast.

F-Zero GX is home to a lot of high octane achievements, and getting them will be no easy feat.

Some achievements will actively let you know when they're available. These kinds of achievements are called "Challenge Achievements" and are often achievements that can be failed without actually losing in the game. When you've fulfilled the necessary conditions to trigger a challenge, a small challenge icon will show up in the bottom right. For more information, check the Progress tab of the Achievements window to get a full rundown on the challenge.

Active challenges jump to the top of the achievements window and show a small icon in the lower right of the game window to denote it is active.
Sometimes there might be multiple challenges going at once.

Old School Mentality

Dolphin provides a ton of convenience features that can help with getting some tricky achievements. Using savestates and slowdown can turn the greatest of challenges into a cakewalk. But what if you really wanted a grand challenge, and wanted show your friends that you beat it legitimately without any extra assistance? That's where Hardcore mode comes in.

In the RetroAchievements menu, you can enable Hardcore mode and it will lock out those features while you're hunting achievements. This gives a more console-authentic experience that can put you to the ultimate test.

You can achieve any achievement in softcore mode.
But, hardcore mode gives fancy gold borders.

Hardcore mode also enables another RetroAchievements feature: Leaderboards. Leaderboards will automatically record your best times and high scores across various games. What each game measures is up to the developer of the achievement set, but the game will let you know when a leaderboard attempt is active. If you think you're better than all of your friends at Mario Golf: Toadstool Tour, prove it! Are you a time trial demon in Mario Kart: Double Dash!!? Show it.

RetroAchievements will automatically record your times in compatible games!

There are a variety of leaderboards across the plethora of launch titles. No matter what kind of player you are, there's likely a leaderboard or two that'll fit your style. You can take a look at the game pages at retroachievements.org to see the various leaderboards.

A Cooperative Experience

With Discord presence support, RetroAchievements can also give live updates of your current position in a game directly to discord. Use this to race friends, or just to show off where you're at in your game. These live updates are context dependant. For instance, in The Legend of Zelda: Twilight Princess RetroAchievements tracks things like chests opened, heart pieces, bugs collected, etc, while in Super Mario Sunshine it keeps track of things like shine count and blue coins.

See your current progress directly in Dolphin through the RetroAchievements window.
Or, show off your progress on discord with Rich Presence support.

If you're a more private gamer or hiding from work, as per usual, the Discord Rich Presence features can be disabled.

Multi-Sets

Some achievement sets are designed to be played together! Whether the achievement set itself marks certain achievement lines as multiplayer compatible, or sometimes you'll have an entire set designed around multiplayer. In those cases, you can have multiple people on the same computer work toward the goal, or you can use Dolphin's netplay!

Netplay with GBAs and RetroAchievements? Yep! Final Fantasy Crystal Chronicles has a separate "Multi" set full of multiplayer achievements.

Multiplayer achievement sets test your ability to communicate and cooperate with friends. If you're a solo gamer worried about multiplayer achievements preventing you from getting a game's "Mastery", don't! Any achievements that require multiplayer are moved to a subset that isn't required for game mastery.

Achievement Unlocked - Marrying Two Massive Projects

Integrating RetroAchievements with Dolphin was not the smoothest of projects. Given the ancient codebases of these two projects (dating back to 2003 for Dolphin, 2013 for RetroAchievements,) there were a lot of growing pains to get everything to play together nicely. And even through it's functional at this point, there's still a lot of cleanup and maintenance that will have to be done post launch.

One of the things that helped was the PCSX2 implementation of RetroAchievements, which acted as a base for the developers who worked on the Dolphin version of the implementation. As well, their own achievement creation library had to be ported over to work with Dolphin's memory handling.

From there, it's been a massive 18 month journey implementing things to get it ready. Without pushing from those passionate about RetroAchievements support (and them also putting the work in,) this could not have happened. There were a lot of roadblocks and close calls with the implementation, and a lot of concessions in order to make things work. This generated a lot of pull requests that needed review, and there were a lot of difficult decisions to make over what to allow and what needed to be done. Code review stages actually took a significant amount of time, due to some of the difficult problems that had to be tackled with memory access and management.

During this process, a secondary build of Dolphin was being developed that worked with their integrated achievement creation system. That way, while RetroAchievements was implemented into Dolphin builds, teams of achievement creators could get to work on developing the achievement sets you see today. Developing these achievement sets was no easy task - depending on the game, an achievement set could take dozens, if not hundreds of hours of work. GameCube games can dynamically allocate memory, use pointers, swap memory between RAM and ARAM, and in some cases like Star Wars: The Clone Wars, change the Block Address Tables whenever it wants. It all makes for a difficult job that takes a lot of testing.

Your favorite game missing an achievement set? Complete the Jr. dev program for RetroAchievements and become an achievement developer!

Without these builds, developing achievements would have been nearly impossible, and even with these special additions to Dolphin, there were still a lot of headaches. One headache that they learned to avoid very quickly was of Dualcore. While it may lure you in with its promises of performance, the workload for creating achievements made it even more unstable than normal. Thankfully, this only affected the development of achievements; users will be able to utilize Dualcore mode and its speedups without additional worry.

As such, achievements don't cause much of a performance overhead. While there is always a cost to checking memory, we haven't observed any noticeable performance impacts.

The biggest limitation with RetroAchievements in Dolphin actually comes from how we display them. In order to display achievements, the notification system had to be adapted to ImGUI, which is not the ideal solution for their GUI, but it's the solution that we had. Worse yet, because Dolphin doesn't support asynchronous presentation, the framerate that in-game overlays/notifications show up at depends on the actual game's current framerate. This is normally fine in typical gameplay, but if an achievement shows up during as loading screen that has few or no rendered frames, you won't be able to see it in the game window. It's just a case of Dolphin not being designed for this use-case.

Issues like these can be addressed in the future, and we don't think of them as game breaking. As is another omission from this initial launch. Specifically, we didn't target Dolphin on Android. While Dolphin on Android is the same core emulator as its desktop counterpart, there is significant work that would be needed to adapt the RetroAchievements dialogues and settings to Android. Additionally, we ran into some networking issues on Android that are going to require specific attention, and with the desktop release already taking so much effort, we decided it'd be best to hold off. If you're an Android user looking forward to RetroAchievements, don't worry - it will happen. We just can't promise when yet.

Wait! What about Wii?

Are the teams planning to do Wii RetroAchievements? Yes, both sides are open to it, and somewhere down the line work will begin. But right now, our focus is on getting GameCube RetroAchievements working, and continuing to address various issues and limitations post launch. Eventually, efforts will shift toward Wii RetroAchievements, but it might be a while.

Congratulations - You've Mastered This Article

And that's that! We've gone over all of the major notes for using RetroAchievements in Dolphin. For more information on RetroAchievements, across all consoles, check out their site and documentation for information on supported emulators and various issues.

Starting today, there will be a GameCube launch event, and some of us within the Dolphin team will be attending. This could be your chance to compete against us on the leaderboards, while obtaining a RetroAchievements badge for completing and mastering games.

Special thanks has to go to all of the developers (from both projects!) that put up with the many headaches that came up during the lengthy development process. As well, we'd like to thank the additional volunteers in the RetroAchievements community that worked on the achievement sets for this launch. Without them, there wouldn't be any achievements to, well, achieve! But now that the launch is finished, there's only one thing left to say.

Happy hunting, everyone!

You can continue the discussion in the forum thread of this article.

Previous entry

Similar entries