Need help with emularity?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

db48x
473 Stars 74 Forks GNU General Public License v3.0 294 Commits 36 Opened issues

Description

easily embed emulators

Services available

!
?

Need anything else?

Contributors list

# 143,129
Common ...
Emacs
emacs-l...
emacs-t...
220 commits
# 159,484
HTML
Shell
C
22 commits
# 376,720
HTML
Shell
CSS
augment...
12 commits
# 229,454
HTML
CSS
10 commits
# 206,775
C++
C
Shell
2 commits
# 254,735
canvas2...
Firefox
Electro...
html5
2 commits
# 9,914
Lua
MATLAB
dcgan
image-t...
2 commits
# 110,047
HTML
sendmai...
pypi
bittorr...
1 commit
# 436,421
HTML
Shell
PHP
1 commit
# 331,749
Shell
TeX
python3
home-au...
1 commit

Welcome to the Emularity

Emularity

Beta Warning

The Emularity should be considered in beta. We welcome feedback and suggestions as we finish 1.0.

Synopsis

Emularity (also called "The Emularity") is a loader designed to be used with a family of in-browser emulation systems. It is meant to ease the use of in-browser-based javascript emulation by handling housekeeping functions, making it easy to embed emulators in your website, blogs, intranet or local filesystem. The components of each aspect of the software being emulated (including the .js emulator, the program files, and operating system) can be pulled from local filesystems or through URLs.

Emularity downloads the files you specify (with a progress screen that shows both emulator logos and what is being loaded), arranges them to form a filesystem, constructs the necessary arguments for the emulator, and handles transitions to and from full-screen mode.

The Emularity system has been used by millions of users at the Internet Archive.

The Emulators

Currently works with three emulators:

MAME

MAME is a port of the Multiple Arcade Machine Emulator (MAME) projects to Javascript. MAME supports over a thousand different machines including game consoles, arcade machines and computer platforms.

EM-DOSBox

EM-DOSBox is a port of DosBox to Javascript. DOSBox emulates an IBM PC compatible running DOS. There are two versions of this emulator, dosbox.js (Standard EM-DOSBOX) and dosbox-sync.js (EM-DOSBOX with considerations for in-program execution of other programs).

Scripted Amiga Emulator

SAE is a Javascript port of WinUAE by naTmeg. It emulates most of the Amiga models that were released.

Credits and Components

Primary work on Emularity is by Daniel Brooks, with contributions of code or concepts from John Vilk, Andre D, Justin Kerk, Vitorio Miliano, and Jason Scott. Some of these contributions predate the Emularity git repository, unfortunately.

Emularity makes use of BrowserFS by John Vilk, an in-browser filesystem that emulates the Node JS filesystem API and supports storing and retrieving files from various backends.

It also utilizes ES6-Promise, a polyfill of the ES6 Promise API. Both are implemented and included without modification; consult these original repositories for information or verification.

Some Open Issues

  • Documentation can be improved
  • Splash Screen occasionally overflows canvas
  • Progress bars can stand to be improved
  • Should add browser-specific detections for unusual behaviors and volume/full-screen actions
  • Handling of aspect ratios, and their interaction with full-screen mode
  • Finish API for volume/mute/full-screen requests

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.