aboutsummaryrefslogtreecommitdiffstats
path: root/README.md (unfollow)
Commit message (Collapse)AuthorFilesLines
4 daysdocs: document the SL0PBOY boot-logo patcher (tools/mk_sl0pboy_bios.py)HEADmastergbc dev1-0/+29
Add a BIOS subsection covering usage (Pillow dep, SL0P_TEXT/SL0P_FONT knobs, the preview PNG), how the in-place $0607 blob patch works, and why the forked binary stays out of git while the generator ships.
4 dayshooks: clang-format pre-commit (changed lines only) + .clang-formatgbc dev1-0/+1
git-clang-format scopes formatting to the lines each commit touches - a full-file reformat would destroy the deliberately dense hand formatting (opcode tables, multi-statement helpers). The hook re-adds formatted files (git-clang-format --staged fixes the worktree, not the index) and refuses partially-staged C files rather than mixing staged and unstaged changes. Enable once: git config core.hooksPath hooks
4 daysREADME: fix source paths in Architecture table (src/ prefix)gbc dev1-11/+11
The Architecture table listed the core sources as bare filenames (types.h, cart.c, ...), but they live under src/. Prefix them with src/ so the paths actually point at the files.
6 daysreadme: mention sixel in the intro, drop the diffing braggbc dev1-7/+7
6 daysreadme: trim the fluff, loosen the tonegbc dev1-192/+166
6 daysrebrand: gbc -> sl0pboy (binary, README, tooling)gbc dev1-39/+39
6 daysmain: options-first CLI with --help, and wire up display/boot flagsgbc dev1-18/+80
- Rewrite argument handling: the ROM is now the final argument and options precede it (parsed in argv[1..argc-2] so optional-value flags never swallow the ROM). Add grouped --help/-h, unknown-option errors, and clear 'missing value'/'no ROM' diagnostics. - Add --chrome, --palette/--green, and --bios flags; set the display/capture options before the --shot and recording paths so screenshots and recordings honor them. Make --shot dump the composited capture frame. - gbctl: pass the ROM last when spawning the emulator. - gitignore the (copyrighted) bios/ directory; document all new flags.
7 daysserial: headless mode tying serial port to stdio for OS debugginggbc dev1-1/+27
- --headless: no rendering/TUI; serial TX -> stdout, RX <- stdin (nonblocking) - generalize serial: serial_out_fd/serial_in_fd on the GB; internal-clock transfer now shifts in a real RX byte (from stdin) instead of always 0xFF - paced to native speed by default, --uncapped for turbo; pipes/scripts cleanly - README: document headless serial console
7 dayscontrol: video frame capture + deterministic input-movie replaygbc dev1-0/+48
Two socket features for building reproducible showcase clips: - record start <path> [everyN] / record stop: append the RGB888 framebuffer of each produced frame to a flat 'GBCV' capture file (downsample with everyN). tools/gbgif.py turns it into a GIF (or PNG frames). Capture is decoupled from wall-clock/turbo/frameskip, so timing is always correct. - input play <path> [reset] / input stop: drive the joypad from a synthesized TAS-style movie (text: '<frames> [buttons...]' per line), frame-locked so replay is deterministic. 'reset' does an exact power-on (preserve cart ROM+SRAM, zero all other state) so a movie replays byte-identically -- verified by hashing two runs. tools/gbmovie.py is a Python builder for movies.
8 dayscontrol: socket-based debug channel + gbctl CLI drivergbc dev1-1/+112
Replace the input-only FIFO's limitations with a Unix-domain socket control channel (--sock) that is a superset of the button vocabulary plus emulator introspection: read/write bus memory, get/set CPU context, single-step, PC breakpoints, value-change watchpoints, run/pause. Being a socket it replies to each command and broadcasts async 'event stop ...' lines; a stored last-stop record (stopinfo) lets per-request clients recover a missed event. Add gbctl: a stdlib-python CLI that spawns a tmux pane running the emulator on a ROM, auto-resolves the socket, and drives it with terse verbs (cpu/read/write/ reg/step/break/watch/continue/pause/press/hold/screen/stop). The FIFO stays as legacy input-only.
2026-07-04speed control: frame skipping to decouple terminal draw from emulationgbc dev1-0/+26
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.
2026-07-04input: external control channel via FIFOgbc dev1-0/+30
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.
2026-07-04renderer: inter-frame diffing to minimize terminal outputgbc dev1-0/+7
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).
2026-07-04docs: note mem_timing-2 passinggbc dev1-1/+1
2026-07-04add status line HUD, README with architecture and test statusgbc dev1-0/+72