All Projects β†’ jsdf β†’ Pce

jsdf / Pce

Licence: gpl-2.0
Emulates Mac Plus, PC, & Atari ST in the browser using WebAssembly

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Pce

Rustynes
πŸ‘Ύ An NES emulator by Rust and WebAssembly
Stars: ✭ 399 (-39.45%)
Mutual labels:  emscripten, emulator
Jsemu
A list of emulators written in the JavaScript programming language
Stars: ✭ 1,342 (+103.64%)
Mutual labels:  emscripten, emulator
Xqemu
Open-source emulator to play original Xbox games on Windows, macOS, and Linux
Stars: ✭ 518 (-21.4%)
Mutual labels:  emulator
Cemu
Third-party TI-84 Plus CE / TI-83 Premium CE emulator, focused on developer features
Stars: ✭ 593 (-10.02%)
Mutual labels:  emulator
Mooneye Gb
A Game Boy research project and emulator written in Rust
Stars: ✭ 557 (-15.48%)
Mutual labels:  emulator
Xenia
Xbox 360 Emulator Research Project
Stars: ✭ 5,404 (+720.03%)
Mutual labels:  emulator
Jsnes
A JavaScript NES emulator.
Stars: ✭ 5,354 (+712.44%)
Mutual labels:  emulator
Imgui Js
JavaScript bindings for Dear ImGui using Emscripten and TypeScript
Stars: ✭ 510 (-22.61%)
Mutual labels:  emscripten
Lc3 Vm
Write your own virtual machine for the LC-3 computer!
Stars: ✭ 631 (-4.25%)
Mutual labels:  emulator
Pcsx2
PCSX2 - The Playstation 2 Emulator
Stars: ✭ 5,830 (+784.67%)
Mutual labels:  emulator
Glchaos.p
3D GPUs Strange Attractors and Hypercomplex Fractals explorer - up to 256 Million particles in RealTime
Stars: ✭ 590 (-10.47%)
Mutual labels:  emscripten
Bddisasm
bddisasm is a fast, lightweight, x86/x64 instruction decoder. The project also features a fast, basic, x86/x64 instruction emulator, designed specifically to detect shellcode-like behavior.
Stars: ✭ 540 (-18.06%)
Mutual labels:  emulator
Bsnes
bsnes is a Super Nintendo (SNES) emulator focused on performance, features, and ease of use.
Stars: ✭ 526 (-20.18%)
Mutual labels:  emulator
Diyhue
Philips Hue emulator that is able to control multiple types of lights
Stars: ✭ 586 (-11.08%)
Mutual labels:  emulator
Binaryen
Compiler infrastructure and toolchain library for WebAssembly
Stars: ✭ 5,294 (+703.34%)
Mutual labels:  emscripten
Ouzel
C++ game engine for Windows, macOS, Linux, iOS, tvOS, Android, and web browsers
Stars: ✭ 607 (-7.89%)
Mutual labels:  emscripten
Humblenet
a cross-platform networking library that works in the browser
Stars: ✭ 515 (-21.85%)
Mutual labels:  emscripten
Ipasim
iOS emulator for Windows
Stars: ✭ 536 (-18.66%)
Mutual labels:  emulator
Quadplay
The quadplay✜ fantasy console
Stars: ✭ 563 (-14.57%)
Mutual labels:  emulator
Ryujinx
Experimental Nintendo Switch Emulator written in C#
Stars: ✭ 10,983 (+1566.62%)
Mutual labels:  emulator

PCE.js

PCE.js runs classic computers in the browser. It's a port of Hampa Hug's excellent PCE emulator, put together by James Friend.

PCE.js currently emulates Mac Plus, IBM PC/XT and Atari ST functionally in recent versions of Chrome and Firefox.

More info:

PCE.js Mac Plus

How to run PCE.js on your own website

See this CodePen example.

I recommend installing the native version of PCE on your computer to create your own disk images. Alternatively, you could use Mini vMac.

Installing from npm

PCE.js is available from npm as a set of browserify compatible node packages, which also include UMD bundles.

There is one for each emulator build:

See each of the above links for install and usage instructions

How to build PCE.js from source

Note: I recommend instead just using the npm packages listed above, unless you want to hack on the C source of the emulators themselves (which is not necessary if you just want to get them running on a page).

Make sure you've installed node.js

These instructions assume you're working with my fork of PCE on the pcejs branch. Presumably that's where you're reading this right now.

Run npm install in this directory (the source root). This should install the required node.js tools to build the commonjs modules and run the examples.

Install the Emscripten SDK.

Install and activate version 1.38.48 of the SDK

cd ../path/to/emsdk/
./emsdk install 1.38.48
./emsdk activate 1.38.48
source ./emsdk_env.sh

Check that running emcc -v successfully returns current Emscripten version. Detailed installation instructions are on the Emscripten SDK page.

In the same terminal, return to the pcejs repository. Run ./pcejs_build env once which will create a pcejs_build_conf.sh file if it doesn't already exist.

Most of the build process involves running the ./pcejs_build bash script in the root of the repo. Commands should be run like ./pcejs_build [command] or pcejs_build [command] [arg]

Run ./pcejs_build build [target] to build the emulator, where [target] is macplus, ibmpc or atarist. This will output a pce-[target].js file to dist/.

After the output file for the target you're interested in has been built, you can:

  • run the examples in the example/ directory with ./pcejs_build example [target] or example/run_example.sh [target]
  • build the npm packages in the commonjs/[target]/ directories by running npm run prepublish in the respective directory.

Commands you might be interested in:

  • build [target]: Configure, build and compile emulator to JS. [target] is either one of macplus, ibmpc, atarist or native. Specifiying an emulator arch builds the in-browser emulator JS file for that architecture. native builds all PCE executables normally. If you don't specify a [target] then all JS targets will be built.
  • rebuild: Build last again (eg. after modifying C source)
  • clean: Clean source tree
  • [nothing]: Build all emulator JS targets and (commonjs modules for each)

Other commands (used internally by build scripts)

  • env: Print build environment variables
  • configure: Configure emulator build
  • make: Compile emulator source to LLVM bitcode (used by 'build')
  • remake: Recompile only changed files of emulator source to LLVM bitcode
  • afterbuild: Convert LLVM bitcode to JS
  • module: Build commonjs module (used by commonjs module prepublish scripts)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].