Hackaday Podcast Ep24: Mashing Smartphone Buttons, Sound Blastering, Trash Printing, And A Ludicrous Loom

Hackaday Editors Elliot Williams and Mike Szczys wade through the fun hacks of the week. Looks like Google got caught ripping off song lyrics (how they got caught is the hack) and electric cars are getting artificially noisier. We look at 3D Printing directly from used plastic, and building a loom with many hundreds of 3D printed parts. The Sound Blaster 1.0 lives again thanks to some (well-explained) reverse engineered circuitry. Your smartphone is about to get a lot more buttons that work without any extra electronics, and we’ll finish things up with brass etching and downloadable nuclear reactor plans.

Take a look at the links below if you want to follow along, and as always tell us what you think about this episode in the comments!

Direct download (59 MB)

Places to follow Hackaday podcasts:

Continue reading “Hackaday Podcast Ep24: Mashing Smartphone Buttons, Sound Blastering, Trash Printing, And A Ludicrous Loom”

Reverse Engineering The Sound Blaster

The first sound card to output PCM audio — the kind you need for audio samples — wasn’t the Sound Blaster. The AdLib Music Synthesizer Card could output PCM audio over software. The AdLib card also cost $200 at the time of its release. This was too much for some, and in time the Creative Labs Sound Blaster was released for the rock-bottom price of $125. This was a more capable card, and in the years since prices on the used market have gone through the roof. In 1990, you could buy a Sound Blaster for a Benjamin and a half, in 2019, prices on eBay are reaching and exceeding $400.

With the prices of used cards so high, we start to get into the territory where it starts to make sense to reverse engineer and re-manufacture the entire card. This hasn’t been done before, but that’s no matter for [Eric Schlaepfer], or [@TubeTimeUS]; he’s done crazier projects before, and this one is no different.

In reverse-engineering the Sound Blaster, there are a few necessary components. The Sound Blaster had an OPL2 chip for sound synthesis, which you can get through various vendors. The trick, though, is the microcontroller. This is really just an 8051 with a custom mask ROM.

The goal of this project is actually just to dump the ROM on the Intel 8051-alike microcontroller. This is something that’s relatively commonly done in high-tech labs, and luckily the Bay Area has [John McMaster], the guy who will take you into his lab and strip a die from its epoxy. Looking at the chip under the microscope, it was discovered the mask ROM on this chip was an implant ROM, with the ones and zeros represented by invisible ions in the substrate itself. There was no hope of reverse-engineering this chip from a purely visual inspection, but there was a sense amplifier on one of the data lines. By probing this sense amplifier while running through the address space, [Eric] was able to dump all the bytes of the ROM one bit at a time.

However, and there’s always a however, there are clone Sound Blasters out there, usually from China, and you can dump these chips if you’re lucky enough to get your hands on one. [Eric] reached out to the community and found these clone microcontrollers didn’t have the code protect bit set; dumping these was easy. This ROM was compared to the work [Eric] did with the sense amplifier, and after figuring out the order of the bits, it was found the code matched. The code was successfully cloned, and now new Sound Blasters can be made. Don’t tell eBay that, because someone is trying to sell one of [Eric]’s clone cards for $180.

All the code, files, materials, and everything needed to clone a Sound Blaster can be found in [Eric]’s GitHub, although there are a few open questions as to what’s going on in the Sound Blaster’s microcontroller. There’s a ‘secret’ 512-byte ROM on the die, and no one outside of an Intel NDA knows what it does. This could be used for a manufacturing test, but who knows. Other than that, there are a few features in the code that weren’t used, like previously unknown DSP commands, an ADPCM lookup table, and a routine that plays from SRAM without using DMA. It’s a deep dive into the inner workings of the most popular sound card of all time, and it’s quite simply amazing.

The Smallest Wave Blaster Card

In the early 90s, the Creative Sound Blaster was the soundcard. It wasn’t the absolute best sounding card on the market, but it quickly became the defacto standard and delivered good sound at the right price. It relied primarily on the Yamaha OPL-3 FM synthesis chip, but if you were feeling spendy, you could pimp it out with a Wave Blaster add-on card, which essentially bolted a sample synthesis engine onto the card. This gave the card a broad palette of sampled instruments with which to play MIDI tunes all the sweeter, so you could impress your grade school chums who came over to play DOOM.

It’s now 2017, if you hadn’t checked the calendar, and Sound Blasters from yesteryear are only going to go further upward in price. It goes without saying that add-on daughterboards and accessories are even rarer and are going to be priced accordingly. So, if you’re building a vintage gaming rig and are desperate for that sample-synth goodness, [Serdashop] are here to help with their latest offering, the Dreamblaster S2.

It’s reportedly the smallest Wave Blaster add-on board available, which is awesome. If you’re sticking it on top of your Sound Blaster 16, yes, it’s pointless – you’re not exactly short on room. But if you want to integrate this with a compact microcontroller project? Size matters. Yes, you can feed this thing MIDI signals and it’ll sing for you. A hot tip for the uninitiated: MIDI speaks serial, just like everything and everyone else. Your grandma learned to speak it in the war, you know.

Your options for hooking this up are either slotting it into a Wave Blaster compatible card, or buying the carrier board that allows you to use it with a Game Port, in addition to custom-wiring it to your own hardware. We’d love to see this as a HAT for the Raspberry Pi Zero. Do it, send it in and we’ll write it up.

We’ve seen [Serdashop]’s hardware here before – namely, the earlier Dreamblaster X2. Video below the break.

Continue reading “The Smallest Wave Blaster Card”

(Better) Full Motion Video On The First PC

Ladies

Ten years ago, [Trixter] created 8088 Corruption, a demo for the original PC, the IBM 5150, that displayed full motion video using a CGA card and a SoundBlaster. It was hailed as a marvel of the demoscene at the time, garnered tons of hits when it was eventually uploaded to Google Video, and was even picked up by the nascent Hackaday.Now, ten years later, and seven years after [Trixter] said full motion video using the graphics mode of a CGA adapter was impossible, he’s improved on his earlier work. Now, it’s possible to display video at 640×200 resolution at 30 frames per second on a 30-year-old computer.

[Trixter]’s earlier work used the text mode of the CGA adapter, only because the 40×25 character, 16 color mode was the only graphics mode that could be entirely updated every single frame. It’s still one of the high points of the PC demoscene, but from the original video, it’s easy to see the limitations.

A while back, [Trixter] said displaying video using his computer’s graphics mode was impossible. He’s had years to think about this statement, and eventually realized he was wrong. Like the developers of modern video codecs, [Trixter] realized you don’t need to change every pixel for every frame: you only need to change the pixels that are different from frame to frame. Obvious, if you think about it, and all [Trixter] needed to do was encode the video in a format that would only change dissimilar pixels from frame to frame, and manage the disk and memory bandwidth.

After reencoding the 10-year-old demo for graphics mode, [Trixter] turned toward his most ambitious demo to date: playing the ‘Bad Apple’ animation on an 8088. As you can see in the video below, it was a complete success.

Continue reading “(Better) Full Motion Video On The First PC”