Typescript Gameboy Emulator
https://vggonz.denibol.com/tsgbe/
- TypeScript 88.8%
- CSS 7%
- HTML 4.2%
|
|
||
|---|---|---|
| .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
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