Typescript Gameboy Emulator
https://vggonz.denibol.com/tsgbe/
- TypeScript 85.1%
- CSS 9.1%
- HTML 5.8%
|
All checks were successful
publish / deploy (push) Successful in 43s
cpu registers and flags, ram and vram viewer and gameboy-doctor compatible logs |
||
|---|---|---|
| .forgejo/workflows | ||
| src | ||
| .editorconfig | ||
| .gitignore | ||
| index.html | ||
| index.ts | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
| styles.css | ||
| tsconfig.json | ||
TSGBE
Installing
Run npm install to install all dependencies
Development server
Run npm start for a dev server. Navigate to http://localhost:1234/. The app will automatically reload if you change any of the source files.
Build
Run npm run build to generate the distributable version. The compiled files will be located at the dist directory.
Demo
Live demo with latest build available at https://vggonz.denibol.com/tsgbe/
Features
- Compatibility: Support for both classic GameBoy (DMG) and GameBoy Color (GBC)
- Audio Support: APU implementation for sound and music playback
- Input System: Support for virtual keys on mobile, custom key mapping on desktop, and gamepad support (DualShock, Xbox, generic controllers)
- Save Manager: Save and restore game progress and emulation states in browser storage
- Display Customization: Selectable color palettes (DMG, Pocket, Light) and optional LCD pixel grid overlay
- Multilanguage UI: Automatic language detection with manual selector; currently supports English and Spanish
- Web-Based: Runs entirely in the browser with no external dependencies required
- Debug Panel (desktop only): Step-by-step execution controls (pause, step 1, step N), live CPU register and flag viewer, memory hex-dump browser, and VRAM/tileset viewer. Execution logs can be exported as plain-text traces compatible with Gameboy Doctor for automated correctness verification.
Compatibility
- Passes the full Blargg cpu_instrs test ROM. Other Blargg test suites are yet to be confirmed.
- Passes dmg-acid2 (DMG rendering accuracy test).
- Passes cgb-acid2 (CGB rendering accuracy test).
Wishlist / TODO
- Improve compatibility and fix emulation bugs
- Optimization