We’re looking for perfection, not action –
Bsnes needs your help to decode some three-decades-old PPU chips.
byuu –
SNES emulation has gotten so precise that I’ve even taken to splitting my emulator into two versions: (higan) , which focuses on absolute accuracy and hardware documentation; and bsnes , which focuses on performance, features, and ease of use.
Some amazing things have come out of SNES emulation recently, including:
- Low-level emulation of all SNES coprocessors (HD mode 7 support) Slowdown removal (Widescreen support (MSU1 for CD-audio and FMV) (Run-ahead for latency reduction) Dynamic rate control for perfect audio-video synchronization
- … and much more!
If you’re still intrigued, read on for a deep dive into the background of the problem and my proposed solutions. Modeling the SNES design
The key thing to take away right now is to note that the video and audio output are sent directly from the PPU and DSP specifically. That means they function like “black boxes” where we don’t have any visibility into what happens inside. This will be important later on.
Imagine you are emulating a CPU’s “multiply” instruction, which takes two registers (variables), multiplies them together, and produces a result and some flags that represent the status of the result (such as (overflow )
Preserving all of the SNES coprocessors alone was a multi-year journey full of challenges and surprises.
Processing digital signal Not to be confused with the DSP-1 cartridge coprocessor, the Sony S-DSP (digital signal processor) chip is what generated the distinctive sound from the SNES. This chip combined eight voice channels with 4-bit ADPCM encoding to produce a – bit stereo signal.
GIPHY App Key not set. Please check settings