github shanytc/snes9x 1.63.14

3 hours ago

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.

Don't miss a new snes9x release

NewReleases is sending notifications on new releases.