emuStudio is a desktop application used for computer emulation and writing programs for emulated computers. It extensible; it encourages developers to write their own computer emulators.
The main goal of emuStudio is to support the "compile-load-emulate" workflow, aiming at students or anyone to help to learn about older but important computers or even abstract machines.
emuStudio is very appropriate for use at schools, e.g. when students are doing first steps in assembler, or when they are taught about computer history. For example, emuStudio is used at the Technical University of Košice since 2007.
emuStudio was written based on existing emulators, sites and existing documentation of real hardware. For example:
Projects:
- simh project, which was the main inspiration for Altair8800 computer
- MAME project, which helped with resolving a lot of bugs in a correct implementation of some 8080 and Z80 CPU instructions
Sites:
- David Sharp's SSEM site, main inspiration for SSEM implementation
- Esolang's BrainFuck site, main inspiration for Brainfuck implementation
- DeRamp Altair, more inspiration for Altair8800
- Altair Clone, more inspiration for Altair8800
- Study of techniques for emulation programming, emulation techniques classic
- 8080 instruction table
Discord:
At first, either compile or download emuStudio. The prerequisite is to have installed Java, at least version 11 (download here).
Then, unzip the tar/zip file (emuStudio-xxx.zip
) and run it using command:
- On Linux / Mac
> ./emuStudio
- On Windows:
> emuStudio.bat
NOTE: Currently supported are Linux and Windows. Mac is NOT supported, but it might work to some extent.
For more information, please read user documentation.
Anyone can contribute. Before start, please read developer documentation, which includes information like:
- Which tools to use and how to set up the environment
- How to compile emuStudio and prepare local releases
- Which git branch to use
- Code architecture, naming conventions, best practices
There exist some additional projects, which are used by emuStudio, useful for contributors:
- emuLib - a shared runtime library
- Edigen - instruction decoder and disassembler generator
- Edigen Gradle plugin - Edigen Gradle plugin
- CPU testing suite - a JUnit-based test suite for comfortable testing of CPU plugins
- emuStudio website - emuStudio website