This is a feature-rich CHIP-8 emulator built with Wails (Go backend) and Svelte (frontend) with Tailwind CSS v4 for styling.
You can download the latest releases for your operating system from the releases page.
To run the emulator, follow these steps:
Navigate to the project directory:
cd chip8
Run in development mode:
wails dev
This will compile the Go backend, install frontend dependencies, and start the development server. The emulator UI should open in a new window.
.ch8
file onto the emulator window.app.go
: Wails application binding, main emulator loop, and backend logic for settings, file operations, etc.main.go
: Entry point for the Wails application, Wails configuration, and application menu definition.wails.json
: Wails project configuration, including application metadata (version, URL).chip8/
: Contains the core CHIP-8 CPU emulator logic (chip8.go
) and unit tests (chip8_test.go
).frontend/
: Svelte frontend application.src/App.svelte
: Main UI component, orchestrating other Svelte components.src/lib/
: Contains reusable Svelte components (e.g., SettingsModal.svelte
, EmulatorView.svelte
, DebugPanel.svelte
, stores.js
).src/stores.js
: Svelte stores for managing global application state like settings and notifications.src/app.css
: Tailwind CSS imports.src/main.js
: Frontend entry point.tailwind.config.js
: Tailwind CSS configuration.postcss.config.js
: PostCSS configuration.wailsjs/
: Auto-generated Wails bindings for Go backend communication.To run Go tests for the CHIP-8 core:
cd chip8
go test -v ./chip8
To install frontend dependencies:
cd frontend
bun install
To build the frontend separately:
cd frontend
bun run build
The project is licensed under the MIT License.