1.63.14
SGB audio:
- GB APU output through a Hermite resampler with adaptive ratio so GB samples match host playback rate.
- BIOS-released audio mix path in CXAudio2: GB owns the voice, SPC is mixed under via MixSpcOverGB.
- GB APU gain + DC blocker tuned to eliminate DC-step impulses at the source.
- Closed-loop SPC chip-clock DRC (S9xSpcAdjustRate + spc::drc_scale applied inside S9xAPUGetClock). Slows the SPC chip
toward wall-native rate based on resampler fill, so SPC tempo + pitch stay correct independent of emulator pace.
S9xSpcResetDrc restores neutral state when leaving SGB mode.
Audio Waveform viewer:
- new menu sub-item: Sound > Show Audio Waveform:
- Three-panel viewer (SPC / GB / MIX) with mint-green filled waveform on black, gray grid, right-side Y-axis
(-30000…+30000, smpl header), hollow bordered panel labels, shared bottom X-axis (ms) on the MIX panel. - Live readouts: GB output rate / emu fps, SPC effective Hz + resampler r_step, current UI refresh.
- Right-click refresh-rate menu — 2 / 5 / 10 / 20 / 30 / 60 Hz. Only affects the UI repaint timer; emulator thread is
untouched. - Double-buffered painting (memory DC + BitBlt) and WM_ERASEBKGND suppression — flicker-free at any refresh rate.
SGB VRAM / handoff
- Hide GB boot-ROM Nintendo logo until the game writes VRAM.
- Latch row/bank for $6000 to fix vertical-stripe artifacts (Pokémon Red, Animaniacs, etc.).
- Zero BG1 tilemap + OAM at handoff, then re-zero each frame for the first 30 frames post-handoff (kills Tetris Plus
stripes). - Zero BG1 + BG3 tilemaps during the BIOS fade-out window, plus pattern-detected BG3 char cleanup for the Tetris
fade-in. - Removed the post-handoff $7800 write gate so CHR_TRN / PCT_TRN packets reach the BIOS.
SGB multi-player:
- Enabled MLT_REQ joypad rotation for SGB-flagged carts; auto-drop forced 2-player MLT after the detection window for
single-player games miscategorised by the cart header.
UI:
- Video > Show Frame Number toggle.