EmuStudio
Universal emulation platform and framework.
Install / Use
/learn @emustudio/EmuStudioREADME
emuStudio
emuStudio is a modular desktop application for emulating historic and teaching-oriented computers and for writing, loading, and debugging programs for them ("compile, load, emulate" workflow). It is built around a plugin model, so compilers, CPUs, memories, and devices can be combined into complete virtual computers.
emuStudio is used both as a learning tool, but also as a base for emulator development, providing well-documented and rich SDK. Emulated computers are called "virtual computers". Often they are full system, feature-rich and cycle-accurate emulators, capable of running original games or software.
emuStudio is very appropriate for use at schools as teaching tool. For example, emuStudio is used at the Technical University of Košice since 2007.
What is included
- Desktop application with computer schema editor, source code editor and emulation debugger
- CLI entry point for launching configured virtual computers and running automation
- Official compiler, CPU, memory, and device plugins
- Bundled computer configurations and example files shipped with the distribution
Bundled virtual computers
- MITS Altair 8800
- Manchester SSEM
- Random Access Machine (RAM)
- Random Access Stored Program (RASP)
- BrainDuck, a Brainfuck-oriented teaching machine
- ZX Spectrum 48K (in development, not included in releases yet)
Bundled configuration files live in application/src/main/files/config.
Getting started
At first, download a packaged release from https://www.emustudio.net/download/.
Prerequisite is to have:
- Java 11 or newer
- Linux, Windows or Mac
After unpacking the release package, start emuStudio with:
- Linux, Mac:
./emuStudio - Windows:
emuStudio.bat
Useful CLI entry points:
./emuStudio --help
./emuStudio --computers-list
./emuStudio automation --help
Building and contributing
Build the full project:
./gradlew build
Create a distributable archive:
./gradlew :application:distZip
./gradlew :application:distTar
Distribution archives are written to application/build/distributions/.
Related projects
There are several related projects used by emuStudio that contributors should be familiar with:
- emuLib, shared runtime library (defines plugins API, common data structures, and utilities)
- Edigen, instruction decoder and disassembler generator (used for CPU plugins)
- Edigen Gradle plugin
- CPU testing suite, framework for writing and running CPU instruction tests
- emuStudio website, source for the project website and user/developer documentation
Documentation
- User documentation: https://www.emustudio.net/documentation/user/introduction/
- Contributing guide:
CONTRIBUTING.md - Developer documentation: https://emustudio.github.io/documentation/developer/getting_started/contributing
- Release notes:
RELEASES.md - Plugin-specific notes: README files inside individual plugin directories
Acknowledgements
emuStudio builds on documentation, research, and emulator work from projects and communities such as:
- simh
- MAME
- David Sharp's SSEM site
- Esolang's Brainfuck site
- DeRamp Altair
- Altair Clone
- Study of techniques for emulation programming
- Intel 8080 instruction table
- ZX-Poly emulator
- Patrik Rak's z80 test suite
- ZXSpectrum Next tests
...and many more! Thanks to all the emulator developers, documenters, and researchers who have shared their work and made projects like emuStudio possible.
Related Skills
next
A beautifully designed, floating Pomodoro timer that respects your workspace.
product-manager-skills
47PM skill for Claude Code, Codex, Cursor, and Windsurf: diagnose SaaS metrics, critique PRDs, plan roadmaps, run discovery, and coach PM career transitions.
devplan-mcp-server
3MCP server for generating development plans, project roadmaps, and task breakdowns for Claude Code. Turn project ideas into paint-by-numbers implementation plans.
