aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* speed control: frame skipping to decouple terminal draw from emulationgbc dev2026-07-043-13/+94
| | | | | | | Emulation always runs at native rate (correct game speed); --frameskip N draws only 1 of every N+1 frames so a slow terminal no longer bottlenecks the loop. Adds --fps cap, --uncapped/--turbo, live [ ] and f keys, HUD readout, and an exit summary of emulated-vs-drawn fps. Replaces the confusing --render-fps.
* input: external control channel via FIFOgbc dev2026-07-043-23/+129
| | | | | | | Adds --fifo [path] opening a named pipe that accepts button commands from any process. Supports momentary taps (a, start, name:N), deterministic hold/release (+name / -name), and 'release'. Merges with keyboard input; held state carries true key-up semantics the terminal can't provide. GBC_INPUT_DEBUG traces state.
* renderer: inter-frame diffing to minimize terminal outputgbc dev2026-07-042-9/+52
| | | | | | | Only cells that changed since the previous frame are redrawn, using cursor positioning to skip unchanged runs. Static screens write nothing after the first frame (~108x reduction on acid2). SIGWINCH forces a full repaint. Verified pixel-exact against the framebuffer (11520/11520 cells, 0 mismatch).
* add status line HUD, README with architecture and test statusgbc dev2026-07-041-0/+3
|
* terminal renderer (truecolor half-block), input, screenshot modegbc dev2026-07-043-3/+185
|
* core emulator: SM83 CPU, MMU, timer, PPU, CGB supportgbc dev2026-07-048-0/+1158
| | | | Passes blargg cpu_instrs (all 11), instr_timing, mem_timing.
* scaffolding: build system, cartridge loader with MBC1/2/3/5, core typesgbc dev2026-07-044-0/+449