The legendary Sound Blaster, released in 1989 by Creative Labs, was an industry-changer as it paved the way for powerhouse FM-synthesis-on-board cards dominance up until the mid-late 90s. So many clones SB appeared on the market during that time period, mimicking the functionalities of the original hardware, with varying degrees of success.
Almost 30 years later, in 2018, Eric Schlaepfer aka TubeTime, was able to replicate the Sound Blaster down to the last detail and he gracefully open-sourced the project so anyone with the right skill set can build his/her own sound card from scratch. The Snark Barker, as he calls it, is a one-to-one clone of the original Sound Blaster and it’s fully compatible with Creative Labs‘s official firmware.
Just recently, Eric was able to accomplish a substantial feat, that is: completely reverse engineer the Sound Blaster’s firmware. In order to achieve such a task he had to go through two separate tasks:
- Extraction of the firmware: by figuring out the location of each of the 8 ROM data bit lines and then placing a probe directly over the exposed IC die for accurate readings.
- Disassembly of the obtained code (turning it into assembly language): by using a D52 disassembler and then sorting out the variable and label names.
For additional help, Eric accompanied the assembly code with detailed comments, showcasing the logic behind the firmware and pinpointing bugs, hidden and partially implemented features along the way.
Note that the firmware in question here was extracted from a Sound Blaster 2.0 (a later revision of the original SB, not a follow-up) and can still be flashed into the Snark Barker.
Just like with consoles and arcade boards, the process of reverse-engineering, be it on a hardware or software level, hugely assists FPGA or software emulation developers in achieving an accurate recreation of the original hardware.
- The .asm file and additional information are available on Tube Time‘s github page: https://github.com/schlae/sb-firmware
- More information about the Snark Barker: https://github.com/schlae/snark-barker
ever wonder what the assembly code looks like for a 30-year old sound card (the Sound Blaster 1.0)? wonder no more–i've reverse engineered it, disassembled it, and have added detailed code comments to it!https://t.co/8CcJGBOJLg
— Tube Time (@TubeTimeUS) November 14, 2020