github shanytc/snes9x 1.63.12

14 hours ago

1.63.12

  • Added Per-pixel PPU + per-dot CPU/PPU interleaving
  • Fixes mid-LY SCX/BGP/LCDC/WX changes (e.g Animaniacs cloud strip, Balloon Kid title parallax)
  • Fixes HBlank-IRQ SCX streaks (e.g Wario Land 2, Balloon Fight)
  • STAT IRQs service before PPU advances
  • Removed cycle_debt accumulator
  • RunFrame runs to vblank past cycle budget so BlitScreen reads complete framebuffers;
  • Stopped running a 2nd frame on each CHR/PCT_TRN packet (DK title was at half fps);
  • Removed empirical sample-count cap that produced gibberish on some hosts;
  • StateLoad no longer wipes sample_head/tail (was discarding runahead audio);
  • Skip blit/present during runahead
  • Per-opcode SNES→GB sync — added then reverted; aimed at BIOS-mode border corruption at default timing
  • Slice-rotation defenses — added then dropped; clamp/phantom-rotation/freeze-capture layers for the 18-slice protocol
  • Switched to 4-bank ICD2 protocol — replaced 18-slice;
  • Fixed W6001-wobble frame jumps;
  • $6000 returns (sgb_row & 0xF8) | (sgb_bank & 0x03);
  • $7800 inline planar decode;
  • sgb_bank persists across frames;
  • Dropped full_frame, full_frame_planar, read_slice, slice_index, r7800_snapshot, freeze_capture defense
  • Incompatible with 4-bank (caused stale lcd_ring reads → black flash);
  • 4-bank doesn't need it since sgb_bank tracks actual GB scanline position
  • Skip auto-mode throttle so SoundSync can pace SGB without underruns
  • In auto frame-skip, WinThrottleFramerate locked to QPC 60.0988 fps;
  • SoundSync can only slow the emulator, never speed it up, so QPC vs. host-audio-crystal
  • drift drained the GB ring → S9xMixSamples zero-padded → crackling/slowdown;
  • when SGB owns audio and SoundSync is on, fall through to no-throttle and let SoundSync pace

Don't miss a new snes9x release

NewReleases is sending notifications on new releases.