mirror of
https://github.com/afska/emudevz.git
synced 2026-06-13 16:08:20 +02:00
🕹️ A game about building emulators!
https://afska.github.io/emudevz/
- JavaScript 84.3%
- Scheme 14.3%
- CSS 1.2%
| .github | ||
| docs | ||
| editables | ||
| electron | ||
| public | ||
| scripts | ||
| src | ||
| .editorconfig | ||
| .gitignore | ||
| .nvmrc | ||
| .prettierignore | ||
| .prettierrc.json | ||
| index.html | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| pre-licenses.txt | ||
| README.md | ||
| vite.config.mjs | ||
| workspace.code-workspace | ||
EmuDevz
🕹️ A game about building emulators! Check it out!
Created by [r]labs.
Key features
- Full 🕹️ NEEES emulation guide from scratch
- Interactive 🔨 6502 Assembly tutorial
- Implement 🧠 CPU, 🖥️ PPU, and 🔊 APU in any order
- Play 👾 homebrew games to unlock ROMs
- 🧪 Unit tests, video tests, and audio tests are provided
- 💻 Unix-style shell and code editor
- 🎶 Original retro-synthwave soundtrack
- 📃 Included documentation and in-game dictionary
- 🗣️ Fully localized into English and Spanish
- 🐞 Powerful debugger with:
- 🐏 Memory viewer
- 🔢 Instruction log
- 🏞️ Name tables, CHR, Sprites, Palettes
- ♒ Individual APU channel views
- 🎮 Controllers
- 🗃️ Emulator logging
- 🔭 Free mode to use the IDE to develop emulators for other systems!
Where's the save file?
- Portable:
.devzfiles (import/export from Settings menu) - Web: IndexedDB and LocalStorage
- Steam/Windows:
%USERPROFILE%/AppData/Roaming/EmuDevz - Steam/Linux:
$XDG_CONFIG_HOME/EmuDevz - Steam/macOS:
~/Library/Application Support/EmuDevz
Development
Install and run
# [0: install nvm & node]
# - install nvm
# - install the node version listed in `.nvmrc`
# [1: install dependencies]
npm install
# [2: package levels]
npm run package
# [3: add music files (optional)]
# - grab the `music` directory from the `gh-pages` branch
# - put it in `public/music`
# [4: start the dev server]
npm start
Scripts
- Package levels:
npm run package - Sort locales:
node scripts/sort-locales.js - Sort dictionary entries:
node scripts/sort-dictionary.js - Build:
npm run build - Deploy to GitHub Pages:
npm run deploy <GH_USERNAME> <GH_TOKEN>
Generate licenses
cp pre-licenses.txt public/licenses.txt
yarn licenses generate-disclaimer --prod >> public/licenses.txt
Known issues
These are notes from the January 2026 release on Steam. I hope these issues can be resolved in the future.
Windows
- On Windows 11, when using a full-screen Electron app with the Steam overlay, ghost Alt-Tab windows are created. As a workaround, fullscreen mode is disabled on Windows.
macOS
- The Steam overlay doesn't seem to work.
Linux
- The app doesn't boot in sandbox mode when launched via Steam. As a workaround, Steam launches the app with
--no-sandbox. - The app doesn't boot on Arch Linux with the latest Electron when using the Steam Linux Runtime 3.0. As a workaround, Electron 36.9.5 was used and forced to launch using X11 with
--enable-features=UseOzonePlatform --ozone-platform=x11.