Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

EmuLnk

The DS experience, for every emulator.
Show live game data on your second screen, or on top of the game.

Release   Android 13+   Kotlin   Downloads Discord

Get it on Obtainium


What It Does

EmuLnk connects to emulators over UDP, reads game memory in real time, and renders it as themed HTML pages. It supports three modes: full-screen dashboards on a second screen, floating overlay widgets on top of the game, or both at once (bundle). Themes are HTML/CSS/JS WebViews driven by live data from JSON profiles. Themes can also write back to game memory, run macros, play sounds, and trigger haptic feedback.

Screenshots coming soon

Supported Emulators

EmulatorSystemsFork
RetroArchSNES, Genesis, NES, GB, GBC, GBA, PS1, N64retroarch-lnk
DolphinGameCube, Wiidolphin-lnk
PPSSPPPSPppsspp-lnk
melonDSNDS, DSimelonds-lnk
Azahar3DSazahar-lnk

[!NOTE] Each emulator fork adds the EmuLnk binary UDP protocol. Install the fork alongside EmuLnk to use it.

How It Works

flowchart TB
    subgraph S1["Screen 1"]
        EMU["Emulator + Overlay Widgets"]
    end

    subgraph BG[" "]
        APP["EmuLnk App"]
    end

    subgraph S2["Screen 2"]
        THEME["Theme Dashboard"]
    end

    EMU -- "identity · UDP" --> APP
    APP -- "memory read · UDP" --> EMU
    APP -- "live data · JS Bridge" --> THEME

    style S1 fill:#1a1730,stroke:#B47CFF,color:#B47CFF
    style S2 fill:#1a1730,stroke:#00E5FF,color:#00E5FF
    style BG fill:none,stroke:none
    style EMU fill:#252142,stroke:#B47CFF,color:#e0e0e0
    style APP fill:#252142,stroke:#B47CFF,color:#e0e0e0
    style THEME fill:#252142,stroke:#00E5FF,color:#e0e0e0
  1. Detect: Sends an EMLKV2 handshake over UDP; emulator responds with JSON containing game_id, game_hash, and platform
  2. Match: Hash resolves to an exact profile, or serial falls back to a compatible one
  3. Poll: Data points are read from emulator memory at a configurable rate (default 5 Hz)
  4. Render: Live data is pushed to the theme WebView (full-screen dashboard or floating overlay widgets) via JavaScript bridge

Installation

Download the latest APK from Releases or import the full EmuLnk suite into Obtainium:

[!TIP] obtainium.json: Includes EmuLnk app + all emulator forks + repo tracking, grouped under one category. If you imported EmuLnk before the package IDs were corrected, delete the affected RetroArch, Dolphin, or PPSSPP entries from Obtainium and re-import this file.

Building from Source

git clone https://github.com/EmuLnk/emulnk.git
cd emulnk
./gradlew assembleDebug

Requires Android SDK 35 and JDK 11.

Creating Themes

Themes are self-contained folders with HTML, CSS, JS, and a theme.json manifest. See the full documentation:

ResourceDescription
Getting StartedFirst theme walkthrough
Theme FormatManifest and file structure
Theme APIData contract and updateData()
Bridge MethodsJavaScript bridge reference (emulink.*)
Profile FormatData point definitions
Platform QuirksSystem-specific memory notes

Browse community themes and profiles in emulnk-repo.

Project Repos

RepoDescription
emulnkAndroid companion app
emulnk-repoThemes, profiles, and system configs
retroarch-lnkRetroArch fork with UDP protocol
dolphin-lnkDolphin fork with UDP protocol
ppsspp-lnkPPSSPP fork with UDP protocol
melonds-lnkmelonDS fork with UDP protocol
azahar-lnkAzahar fork with UDP protocol

License

PolyForm Noncommercial License 1.0.0

关于 About

Emulator companion app that turns your second screen into a themed dashboard, built for dual-display handhelds

语言 Languages

Kotlin100.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
51
Total Commits
峰值: 11次/周
Less
More

核心贡献者 Contributors