How mawsfr/chip8 works
This repository is a browser-based CHIP-8 emulator with a Vue interface. The user loads a ROM, then runs, pauses, restarts, or steps the emulation; the interface displays the screen and machine state and maps keyboard events to CHIP-8 input. The graph separates the UI, emulator/core, and low-level operations. The emulator implementation and most instruction handlers were not sampled, so their internal call wiring is intentionally omitted.
Main entry points: Emulator.vue Emulator view · useChip8Emulator.ts Emulator setup · cpu.ts CPU · App.vue App shell
Components 19
Vue interface
- App entry
app/src/main.ts - App shell
app/src/App.vue - Emulator view
app/src/components/Emulator.vue - Emulator setup
packages/use-chip8-emulator/src/useChip8Emulator.ts
Emulation core
- Emulator runtime
packages/chip8/src/emulator.ts - CPU
packages/chip8/src/cpu.ts - Instruction set
packages/chip8/src/instructions - Instruction loader
packages/chip8/src/instructions/instruction-loader.ts - Opcode
packages/chip8/src/opcode.ts - Graphics
packages/chip8/src/graphics.ts - Keyboard input
packages/chip8/src/input.ts - Memory
packages/chip8/src/memory.ts - Registers
packages/chip8/src/registers.ts - Stack
packages/chip8/src/stack.ts - Timers
packages/chip8/src/timers.ts
Core operations
- Binary operations
packages/binary-operations/src/binary-operations.ts - Math operations
packages/math-operations/src/math-operations.ts
Other components
- User
- CHIP-8 ROM
Connections 24
- User → Emulator view: controls
- CHIP-8 ROM → Emulator view: loads
- App entry → App shell: mounts
- App shell → Emulator view: renders
- Emulator view → Emulator setup: creates
- Emulator setup → Emulator runtime: constructs
- Emulator setup → CPU: constructs
- Emulator setup → Graphics: constructs
- Emulator setup → Keyboard input: constructs
- Emulator setup → Memory: constructs
- Emulator setup → Registers: constructs
- Emulator setup → Stack: constructs
- Emulator setup → Timers: constructs
- Emulator view → Emulator runtime: loads, runs, steps
- Emulator view → Graphics: reads screen
- Emulator view → Keyboard input: sets key state
- Emulator view → Memory: reads memory
- Emulator view → CPU: reads address
- Emulator view → Registers: reads registers
- Emulator view → Stack: reads stack
- Emulator view → Timers: reads timers
- CPU → Instruction loader: loads instructions
- CPU → Instruction set: dispatches execution
- CPU → Binary operations: uses bitwise operations