pakoito/agent-desmume — explained in plain English
Analysis updated 2026-05-18
Automate testing of fan-translated Nintendo DS ROMs by scripting menu navigation and screenshot checks.
Give an LLM agent a programmatic way to boot a DS ROM, read memory, and take screenshots without a window manager.
Set memory watchpoints and code breakpoints to reverse engineer how a DS game behaves at runtime.
Record and replay deterministic frame-perfect test runs for regression testing a ROM.
| pakoito/agent-desmume | 0xhassaan/nn-from-scratch | 3ks/embedoc | |
|---|---|---|---|
| Stars | 0 | 0 | — |
| Language | Python | Python | Python |
| Last pushed | — | — | 2023-06-08 |
| Maintenance | — | — | Dormant |
| Setup difficulty | hard | moderate | hard |
| Complexity | 4/5 | 4/5 | 1/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
First install takes about 9 minutes because it compiles DeSmuME from source, several system build dependencies must be installed first.
agent-desmume is a command-line tool and background daemon that lets scripts or AI agents control a Nintendo DS emulator without a graphical display. It is built for automated testing, such as checking fan translations of games or navigating game menus automatically, and for giving large language model agents a programmatic way to interact with DS ROM files. The tool wraps DeSmuME, a Nintendo DS emulator, through a Python binding layer. A persistent daemon starts in the background and keeps the emulator running across multiple commands. The CLI sends instructions to the daemon over a Unix socket: boot a ROM, step a specific number of frames, take a screenshot of either or both screens, press buttons, tap the touchscreen, save or load game states, import battery saves, and read or write any memory address. Commands return JSON output when requested, making them easy to parse from automation scripts or AI tool calls. The tool supports frame-perfect deterministic stepping rather than real-time playback, which is suited for testing and repeatability. It also supports ARM processor register access, code breakpoints, memory watchpoints, and GPU layer toggling for isolating text in screenshots. Multiple parallel sessions are supported via named session identifiers. It integrates optionally with Claude Code as a skill, so AI agents can discover and use its commands automatically. The tech stack is Python with Cython bindings through a fork of py-desmume. The underlying DeSmuME C library is compiled from source during installation. The license is GPL-3.0+, inherited from DeSmuME and py-desmume.
A headless command-line daemon that lets scripts or AI agents boot, step, and control a Nintendo DS emulator over a Unix socket for automated testing.
Mainly Python. The stack also includes Python, Cython, DeSmuME.
GPL-3.0-or-later means you can use and modify the code freely, but any distributed derivative work must also be open source under the same license.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.