Repository navigation
Track Android host-override integrations across emulators #33
Description
Track the upstream status of Android host-override support across emulator integrations used by RAOfflineProxy.
Why:
- RAOfflineProxy works best when emulators expose a clean Android-side host-override mechanism instead of requiring direct config patching
- Several emulator integrations are now in flight or already merged upstream
- Tracking them in one place makes follow-up easier as upstream PRs evolve and ship
Tracked upstream PRs:
Merged:
- ARMSX2: Android: Add RetroAchievements host override receiver ARMSX2/ARMSX2#164
- ARMSX2 Refresh: Android: add RetroAchievements host override receiver ARMSX2/ARMSX2#209 — merged into refresh-experimental and released in tag 2.3.4
- PPSSPP: Android: add achievements host override receiver hrydgard/ppsspp#21760
- Flycast: Android: Add RetroAchievements host override receiver flyinghead/flycast#2371
- android: allow cleartext HTTP to 127.0.0.1 for local proxy image loading flyinghead/flycast#2379 — allow cleartext HTTP to 127.0.0.1 so badge/icon images load from the proxy
- achievements: retry login when host override is set and login previously failed flyinghead/flycast#2380 — retry login automatically when host override is set after a failed login attempt
- mupen64plus-ae: Add RetroAchievements host-override broadcast receiver JoeysRetroHandhelds/mupen64plus-ae-retroachievements#1 — merged into the RetroAchievements fork; will carry over to the official mupen64plus-ae when the fork's RA work is upstreamed
- ARMSX2 hardcore: Android: turn hardcore off while a RetroAchievements host override is active ARMSX2/ARMSX2#617 — forces hardcore off while a host override is active, restores it on clear; a manual toggle during an override wins. Cherry-picked into master as 6ab36245ae, PR closed. Verified on device. ARMSX1 needs no equivalent, it is softcore-only by construction.
- NetherSX2: Add RetroAchievements host-override broadcast receiver Trixarian/NetherSX2-patch#343: merged, waiting for the release
Closed:
- melonDS: Android: add RetroAchievements host override receiver rafaelvcaetano/melonDS-android#1633: declined upstream; covered by the WatermelonDS fork (formerly melonDualDS) instead
Open:
- Dolphin: Android: Add RetroAchievements host override receiver dolphin-emu/dolphin#14671
- RetroArch: Android: add RetroAchievements host override receiver libretro/RetroArch#19093
Other:
- WatermelonDS (formerly melonDualDS): Add suport por melonDualDS #38: RAOfflineProxy support implemented, fully supported
Linux / ROCKNIX
- ROCKNIX/distribution: Add custom RetroAchievements host support to standalone Dolphin ROCKNIX/distribution#3038 — merged into
nexton 2026-08-02. AddsHostUrlsupport to Dolphin'scheevos_dolphin.sh, which currently wipes any custom host on every launch. Verified working end-to-end on hardware via a local test rig. Not yet in a published ROCKNIX release (the 20260801 release predates the merge) — waiting on a release built fromnextthat includes it. - RAOfflineProxy Dolphin support: Add Dolphin support for ROCKNIX #50 — merged into main. Inert on-device until a ROCKNIX release ships with the PR above.
- RAOfflineProxy PPSSPP support (ROCKNIX): merged (main), works today.
Smart Cache (recently-played detection)
Emulators expose their recently-played list over a content provider, which smart caching reads. Android/data is unreadable across apps, so a file drop is not an option and IPC is.
- ARMSX2: provider merged (Expose recently played games over a content provider for companion apps ARMSX2/ARMSX2#566), shipped in 2.6.6.8. RAOfflineProxy side merged (Add ARMSX1/ARMSX2 smart cache support #118). Live.
- ARMSX1: provider open, Expose recently played games over a content provider for companion apps ARMSX2/ARMSX1#10. Same code path as ARMSX2 on our side, so no separate RAOfflineProxy work.
- WatermelonDS: proposed as an issue, PRs are disabled on that repo, Feature proposal: expose ROM library over a content provider for companion apps (PRs disabled, branch ready for review) SapphireRhodonite/WatermelonDS#168. RAOfflineProxy side merged (Add WatermelonDS smart cache support #87). Inert until it ships.
Consent follow-up
Sharing shipped opt-in behind a global settings toggle nobody finds, so smart caching silently does nothing. The follow-up makes the grant per-caller and asks in context instead:
- ARMSX2: Let a companion app request recent-games access per caller ARMSX2/ARMSX2#616 — merged, cherry-picked into master as d0a6bfb1b3 and shipped in 2.6.7. PR closed.
- ARMSX1: folded into Expose recently played games over a content provider for companion apps ARMSX2/ARMSX1#10 — open
- RAOfflineProxy: Request companion library consent before smart caching #119 — merged into main (8959062).
#616 landed unmodified, so the shape #119 targets is the shape that shipped: the action name .action.REQUEST_RECENT_GAMES_ACCESS and the cursor extras RECENT_GAMES_ACCESS_DENIED / RECENT_GAMES_CONSENT_DECLINED all match. Older ARMSX2 builds without the consent activity are handled — the launch is wrapped and falls through to the next emulator instead of stalling the run.
Verification: ARMSX2 verified end-to-end on hardware (prompt before caching, allow/deny/re-ask, revoke). ARMSX1 is compile-checked only — third_party/fsui-lib is private, so that repo cannot be built here.
Activity
misantronic commentedon Aug 3, 2026
RAOfflineProxy Dolphin support (#50) has been merged into main.
Still inert on-device until ROCKNIX ships a release built from
nextcontaining ROCKNIX/distribution#3038 (merged 2026-08-02, not included in the 20260801 release). Will follow up here once that's confirmed shipped and re-verify without the local test rig.