-
Notifications
You must be signed in to change notification settings - Fork 15
RetroAchievements
OpenEmu-Silicon includes built-in support for RetroAchievements — a free service that adds achievements to classic games. As you play, achievements are tracked in real time and credited to your account on the RetroAchievements website.
When you unlock an achievement, an overlay banner appears at the bottom of the game window showing the achievement name and point value. It fades in, holds for a few seconds, then fades out — no interruption to gameplay.

A notification also lands in macOS Notification Center so you have a record of everything you earned in a session.

Your progress syncs to your RetroAchievements profile. You can see earned achievements, point totals, and completion percentage for every game you've played.

Sign up for free at retroachievements.org. Your username and progress are stored on their servers — achievements you earn in OpenEmu-Silicon will appear on your profile.
Open OpenEmu → Preferences → Achievements and enter your RetroAchievements username and password.
When sign-in succeeds the pane shows ✓ Signed in as <username>. Your credentials are stored securely in the macOS Keychain and restored automatically on relaunch — you only need to sign in once.
That's it. Load any supported game and achievements are tracked automatically from the moment emulation starts. No additional setup is needed per-game.
RetroAchievements is supported across 9 cores and 12 systems:
| System | Core |
|---|---|
| NES / Famicom | FCEU, Nestopia |
| Famicom Disk System | Nestopia |
| Super Nintendo | SNES9x, BSNES |
| Game Boy / Game Boy Color | Gambatte |
| Game Boy Advance | mGBA |
| Nintendo 64 | Mupen64Plus |
| Sega Genesis / Mega Drive | Genesis Plus GX |
| Sega CD | Genesis Plus GX |
| Master System | Genesis Plus GX |
| Game Gear | Genesis Plus GX |
| SG-1000 | Genesis Plus GX |
| PlayStation | Mednafen |
Rollout is continuing in phases. Track each phase in the linked issue:
| Phase | Systems |
|---|---|
| Phase 2 | PC Engine / TurboGrafx-16, PC Engine CD, Atari Lynx, Neo Geo Pocket, Sega 32X, Dreamcast, GameCube, Wii |
| Phase 3 | Sega Saturn, Virtual Boy, WonderSwan, PC-FX |
| Phase 4 | Nintendo DS, PSP, Atari 2600/5200/7800/8-bit, ColecoVision, MSX, Intellivision, 3DO, Odyssey², Vectrex, Pokémon Mini, Watara Supervision, Commodore 64 |
Known issue: On some slow-loading ROMs, achievements may not register on first launch. Closing and relaunching the game resolves it. (#425)
OpenEmu-Silicon integrates the open-source rcheevos library, which handles achievement evaluation entirely on-device. Here's the flow:
- Sign-in — When you enter your credentials, OpenEmu exchanges them for a session token via the RetroAchievements API and stores the token in the Keychain.
-
ROM load — When a game starts, the token is passed over XPC to the emulator helper process. The helper calls
rc_client_begin_login_with_tokento authenticate with the RA server and load the achievement set for that ROM. -
Per-frame evaluation — Every emulated frame, the core calls
rc_client_do_frame, which checks the game's memory against achievement trigger conditions using rcheevos's built-in logic. - Unlock event — When a condition is met, rcheevos fires an event. The helper sends it back to the main app over XPC, which shows the in-game banner and fires a system notification.
- Score submission — rcheevos submits the unlock to the RetroAchievements server in the background. Your profile updates within seconds.
Hardcore mode (earning achievements without save states or rewind) is not yet supported. Unlocks in this release are earned in standard (softcore) mode.
No achievements loading for a game
- Confirm the game has achievements on the RetroAchievements website — not all ROMs are supported.
- Make sure you're signed in (Preferences → Achievements should show your username).
- Check that you're using a clean, unmodified ROM. Patched or hacked ROMs will not match the RA hash database.
Sign-in fails
- Double-check your username and password at retroachievements.org.
- The password used here is your RetroAchievements account password, not a separate API key.
Banner doesn't appear
- Open Preferences → Library and confirm "Show notifications during gameplay" is enabled (it is by default).
- If you're on a debug build, use Preferences → Secrets → Preview achievement banner to test the overlay while a game is running.