Coffee GB 2.0.1 improves desktop audio resilience, emulator performance, native distribution, and release reliability.
Highlights
- Eliminates Windows UI audio gaps and adds adaptive frame skipping under audio pressure.
- Restores Harry Potter intro performance while reducing steady-state work across PPU/GPU/STAT timing, input, DMA/HDMA, Game Genie lookup, rendering, and audio mixing.
- Publishes a verified single-file Windows portable EXE that launches Coffee GB directly.
- Adds a reproducible emulation performance harness and streamlines the user-facing README.
- Aligns the reviewed third-party component inventory with the runtime SBOM so release packaging passes its exact legal-inventory gate.
Native package verification
All four native targets were built, inspected, unpacked, and launch-smoke-tested on their target architectures. These packages are unsigned:
linux-x86-64:unsignedwindows-x86-64:unsignedmacos-x86-64:unsignedmacos-aarch64:unsigned
On macOS, game controllers require a compatible system SDL2 installation; keyboard input and emulation remain usable without it.
Merged pull requests
- #465 — Streamline emulator tests, internals, and documentation
- #481 — Publish Windows portable EXE
- #482 — Optimize GPU method-call hot paths
- #483 — Reduce subsystem method-call overhead
- #485 — Cache GPU timing mode during emulation ticks
- #486 — Cache PixelTransfer speed mode during ticks
- #487 — Reuse CPU state across Gameboy tick checks
- #488 — Cache STAT console hardware mode
- #489 — Gate steady-state emulator work
- #490 — Consume DIV reset once per tick
- #491 — Refresh GPU timing mode only when dirty
- #492 — Fast-path PixelTransfer WY sampling
- #493 — Batch PPU interrupt bookkeeping
- #494 — Cache STAT GPU timing snapshot
- #495 — Share production STAT CPU phase snapshot
- #496 — Pack CPU phase queries for STAT and HDMA
- #497 — Reduce settled joypad tick method calls
- #498 — Fuse pixel output and machine tick
- #499 — Optimize PPU timing and audio hot paths
- #500 — Optimize sparse STAT event evaluation
- #501 — Lazily resolve CPU STAT read phase
- #502 — Add adaptive frame skipping under audio pressure
- #503 — Cache stable stereo mixer output
- #504 — Optimize steady-state emulator tick paths
- #505 — Restore Harry Potter intro performance
- #506 — Eliminate Windows UI audio gaps
- #507 — Update release legal component versions
Direct commits
Fixed issues
None.
Thanks to @trekawek for all changes in this release.