All Projects → abhaynayar → n2t-wasm

abhaynayar / n2t-wasm

Licence: MIT license
Emulator for the Hack CPU.

Programming Languages

rust
11053 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to n2t-wasm

Riscv Rust
RISC-V processor emulator written in Rust+WASM
Stars: ✭ 253 (+517.07%)
Mutual labels:  emulator, wasm
vrcpu
Code, documentation, schematics, notes for my Ben Eater inspired breadboard computer and emulator
Stars: ✭ 98 (+139.02%)
Mutual labels:  emulator, wasm
SkyEmu
Game Boy, Game Boy Color, and Game Boy Advanced Emulator
Stars: ✭ 59 (+43.9%)
Mutual labels:  emulator, wasm
V86
x86 virtualization in your browser, recompiling x86 to wasm on the fly
Stars: ✭ 12,765 (+31034.15%)
Mutual labels:  emulator, wasm
Wasmboy
Game Boy / Game Boy Color Emulator Library, 🎮written for WebAssembly using AssemblyScript. 🚀Demos built with Preact and Svelte. ⚛️
Stars: ✭ 963 (+2248.78%)
Mutual labels:  emulator, wasm
Rustynes
👾 An NES emulator by Rust and WebAssembly
Stars: ✭ 399 (+873.17%)
Mutual labels:  emulator, wasm
SaltyNES
A NES emulator in WebAssembly
Stars: ✭ 69 (+68.29%)
Mutual labels:  emulator, wasm
Gameboy
🎮 Game Boy emulator written in Rust
Stars: ✭ 17 (-58.54%)
Mutual labels:  emulator, wasm
Gbemu
WebAssembly based Gameboy Emulator
Stars: ✭ 120 (+192.68%)
Mutual labels:  emulator, wasm
Nes Rust
NES emulator written in Rust + WASM
Stars: ✭ 141 (+243.9%)
Mutual labels:  emulator, wasm
gcp-storage-emulator
Local emulator for Google Cloud Storage
Stars: ✭ 43 (+4.88%)
Mutual labels:  emulator
AetherSX2
No description or website provided.
Stars: ✭ 65 (+58.54%)
Mutual labels:  emulator
AheuiJIT
Aheui JIT compiler for PC and web
Stars: ✭ 27 (-34.15%)
Mutual labels:  wasm
nand2tetris
The Elements of Computing Systems
Stars: ✭ 45 (+9.76%)
Mutual labels:  nand2tetris
jupiter
Wasm smart contract networks powered by Substrate FRAME Contracts pallet in Polkadot ecosystem.
Stars: ✭ 49 (+19.51%)
Mutual labels:  wasm
pcsx2-rr
PCSX2-rr - The Playstation 2 Emulator with TAS Tools (Now Merged into PCSX2 Core!)
Stars: ✭ 26 (-36.59%)
Mutual labels:  emulator
epick
Color picker for creating harmonic color palettes that works on Linux, Windows, macOS and web.
Stars: ✭ 89 (+117.07%)
Mutual labels:  wasm
merry8
📺 Chip-8 emulator for web.
Stars: ✭ 47 (+14.63%)
Mutual labels:  emulator
rabin-wasm
Rabin fingerprinting implemented in WASM
Stars: ✭ 26 (-36.59%)
Mutual labels:  wasm
wasm.cljc
Spec compliant WebAssembly compiler, decompiler, and generator
Stars: ✭ 178 (+334.15%)
Mutual labels:  wasm

n2t-wasm

Emulator for the nand2tetris computer.

Demo

https://abhaynayar.com/n2t-wasm/

Build Instructions

Tested on Ubuntu 20.04 LTS.

Tools setup:

  • Install rust: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Install wasm-pack: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
  • Install node through nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
nvm install node

Clone this repository:

$ git clone https://github.com/abhaynayar/n2t-wasm

Build the emulator:

  • Run wasm-pack build in the root directory. This will create a new pkg/ directory for the wasm modules.
  • Run npm init wasm-app www in the root directory. This will generate a web page in a new www/ directory.
  • Run npm install in www directory to install the node modules.
  • Run npm run start in the www directory to start a local testing instance.
  • Run npm run build in the www directory to publish the results to dist.

Backlog

  • Feature: Add keyboard support.
  • Bug: Fix the render loop in wasm.
  • Bug: Sanitize RAM and ROM inputs in wasm.
  • Feature: Transfer words instead of pixels from wasm to js.
  • Feature: Show sample ROMs and a file picker on the web page.
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].