
Snark Barker: A 100% compatible replica of the famed SB 1.0 soundcard - segfaultbuserr
https://github.com/schlae/snark-barker
======
EvanAnderson
I had absolutely no idea that the original SoundBlaster had embedded firmware
running on an 8051. It never occurred to me that our PCs were loosely-coupled
piles of microcomputers all the way back then. (Now I'm off to go learn what
that firmware was doing...)

Some background I dug up quickly:

Snark Barker creator's blog: [http://tubetime.us/index.php/2019/01/19/sound-
blaster-1-0-pr...](http://tubetime.us/index.php/2019/01/19/sound-
blaster-1-0-principles-of-operation/)

[http://www.os2museum.com/wp/sound-blaster-the-french-
connect...](http://www.os2museum.com/wp/sound-blaster-the-french-connection/)

~~~
classichasclass
Not new at all. Remember that Commodore disk drives had their own 6502s in
them, for example (some of the big PET drives had two). A joke at CBM was that
the 1541 was the best computer they ever made.

~~~
segfaultbuserr
Ironically, in the early 80s, we did it mainly because of the shortage of
computing power, so we needed lots of co-processors. And now we are still
doing it, but mainly due to our excessive computing power. Want to blink an
LED? Let's put Linux, Apache and Ethernet in the circuit. ;-)

Well, on the other hand, it's unfair to say it's an abuse of computing power,
since if you do have the power, making autonomous devices does make a system
much more elegant and manageable, and not even talking about the advantages of
general processor over specialized chips.

Take another look, it also tells us something about early home computer
designs - the actual CPUs were usually irrelevant, there were no technical
difficulties on the CPUs themselves and you could easily put TWO CPUs in a
hard drive. And unlike modern computers, it was not even the most expensive
part and the choice was limited, a cheap "trainer" computer with only
hexadecimal keyboard, and an expensive home computer with a color CRT often
shared a single CPU. The vast majority of the cost and troubles was _system
design_ , or putting these parts into a usable computer, with your own
solution of input, storage, interface, graphics, software, or a chassis. The
standardized IBM PC hasn't came yet, and one needed to create a solution of
every subsystem. Every computer was a unique design, often with custom-made
ASIC chips for peripherals.

~~~
pjmlp
To be fair something like an ESP32 runs circles around the PCW1512, which we
had on the school computer club, where we spent countless hours playing
Defender of the Crown.

So we don't have to necessarily constrain ourselves to Assembly and C on those
tiny devices.

Naturally it depends on the use case.

~~~
segfaultbuserr
> _So we don 't have to necessarily constrain ourselves to Assembly and C on
> those tiny devices._

Good point.

> _something like an ESP32 runs circles around the PCW1512, which we had on
> the school computer club_

I think as long as people are having fun with them, the hardware already
served a good purpose. Even if the LED blinking is implemented by running
Linux.

But in my opinion, people who are interested in these popular embedded boards
should also learn about the basis of electronics, or just be aware of its
existence, and understand the things one could do without buying a premade
"board", and that it's possible to blink an LED with a few transistors. Well,
I think most will find out by themselves, it's just a matter of time and
guidance.

~~~
AnIdiotOnTheNet
My problem with using things like the RPi for such simple LED blinking
projects is that it contributes to the cult of overengineering that plagues
the industry. People seem to grow up thinking they _need_ innumerable layers
of abstraction to do things, when often they have actually made their solution
not only inefficient, but actually less stable and more difficult to develop.

~~~
segfaultbuserr
+1. Another criticism is consumerism - the hype that some of these devices
created was more about purchasing and plugging boards and calling a library,
without actually help hobbyists to learn something.

Or as John Carmack has said, _low-level programming is good for the programmer
's soul_, it's hard to imagine that programmers do have souls if they has
never been exposed to low-level programming. Unfortunately, in the modern
computing world, the chances are becoming fewer and fewer, most systems are
far beyond a complete understanding for most people. I think I'll never
completely understand the x86_64 instruction set (w/ SSE, SSE2, FMA, AVX), or
the signal path of the PCI-E interface on my motherbard.

Recently, I think some popular microcontroller projects may be the solution
for a bare-metal programming experience.

But we can also looking it from another perspective - the proliferation of
mobile devices changed everything, nowadays, even using a general purpose
computer is not an experience that many members of the new generation may have
(there was a Hacker News article about it). Some don't understand a
hierarchical filesystem of files and directories anymore, and others have
problem typing on a physical keyboard. In this sense, to blink an LED on
Raspberry Pi is already a big step forward, and it was exactly the motivation
behind Raspberry Pi.

~~~
AnIdiotOnTheNet
Yes, it is unfortunate that in the pursuit of both compatibility and
performance we now live in a world where even the CPU is so maddeningly
complex that it is basically impossible to reason about how it will perform on
any given piece of code. Even writing assembly leaves you a few layers of
abstraction above where it would have 30 years ago.

I like to think that it is possible we'll one day develop a CPU architecture
that is both simple enough to reason about and also highly performant.

~~~
segfaultbuserr
Yes, and it's also the my reason of mentioning microcontroller projects. For
example, some find the AVR instruction set is clear and powerful, optimized
for both ASM programming and C compilers, and can be used as a good
introduction to both hardware and assembly.

------
deckarep
Oh good I’ve been needing to talk to my psychologist again. His name is Dr.
Sbaitso...

[https://books.google.com/books?id=fpQP3e54P-gC&pg=PT80&dq=sb...](https://books.google.com/books?id=fpQP3e54P-gC&pg=PT80&dq=sbaitso+1991&hl=en&sa=X&ved=0ahUKEwj3hpD96ZjRAhWm8YMKHUxrA4EQ6AEILDAE#v=onepage&q=sbaitso%201991&f=false)

~~~
schoen
I still remember the kind of weird intonation and prosody on "Doctor Sbaitso,
by Creative Labs, please enter your name".

~~~
myself248
Hello Schoen, my name is Doctor Sbaitso. I am here to help you.

Say whatever is in your mind freely, our conversation will be kept in strict
confidence. Memory contents will be wiped off after you leave.

So, tell me about your problems.

~~~
schoen
After doing some work on computer forensics, I remember wondering whether the
"memory contents will be wiped off after you leave" message from Dr. Sbaitso
was actually true or not.

------
kalleboo
They also have a reproduction AdLib card
[https://github.com/schlae/adlib](https://github.com/schlae/adlib)
[http://tubetime.us/index.php/2016/07/22/a-reproduction-
adlib...](http://tubetime.us/index.php/2016/07/22/a-reproduction-adlib-sound-
card/)

~~~
codetrotter
Speaking of AdLib, a couple of years ago an AdLib Gold 1000 ISA card sold for
US $3,400 on eBay. The starting ask price was 99 cents and the first bid was
US $50.

[https://www.ebay.com/itm/Ad-Lib-Gold-1000-ISA-Sound-
Card-/27...](https://www.ebay.com/itm/Ad-Lib-Gold-1000-ISA-Sound-
Card-/272163544820) via
[https://twitter.com/lazygamereviews/status/70847562292704460...](https://twitter.com/lazygamereviews/status/708475622927044609)

Also, speaking of sound cards, here is another thread from a few months ago
about old sound cards:
[https://news.ycombinator.com/item?id=17779741](https://news.ycombinator.com/item?id=17779741)

In that thread a user named rahimnathwani said:

> Did any of you, back in the 90s, build a parallel port DAC to use with
> Linux's PC Speaker driver?

And someone else, dharma1, replied:

> My friend's dad built one for him, for DOS/windows though. Must have been
> around -89 when we were 12.

> I think Scream Tracker had the schematic bundled with it as an ASCII
> drawing. We were taught how to solder in primary school, but I remember the
> schematics being way too advanced for us. Looking at it now it's just a
> simple resistor ladder tree

> I think it was roughly the same as Covox, someone had written a sound
> blaster emulator for it, and it worked pretty well on games, scream
> tracker/fast tracker and demoscene demos - for the price of a parallel port
> connector and a few resistors, pretty cool.

If that person (dharma1) sees this thread, I have a question for them: Could
you take a picture of that schematic and post it?

~~~
sbarre
Geez, I have a Gravis Ultrasound card somewhere in a box, I should probably
put it on eBay I guess?

~~~
blt
Yes, I think that card is desirable. The LGR review shows that it sounds much
better than a Sound Blaster.
[https://www.youtube.com/watch?v=92olhbB3KKM](https://www.youtube.com/watch?v=92olhbB3KKM)

------
JohnBooty
This is insane, and I love it.

It seems almost entirely pointless: the SB 1.0 has a big place in history but
that's due more to market share than technical excellence or uniqueness
compared to, say, the C64's SID chip, or even a true contemporary like the
Gravis Ultrasound.

And unless I'm mistaken vintage Sound Blaster boards are not exactly in short
supply... though I'm not entirely sure about that; it's tough to search for
them thanks to the countless scads of products bearing the "Sound Blaster"
moniker.

And yet, this is cool. This is a complex piece of work, a very nice piece of
engineering by the look of it!

Preservation of computing and gaming history is important, and ensuring we can
make more physical copies of things if needed/desired is crucial when it comes
to keeping that history alive.

~~~
segfaultbuserr
> _the SB 1.0 has a big place in history but that 's due more to market share
> than technical excellence or uniqueness compared to, say, the C64's SID
> chip, or even a true contemporary like the Gravis Ultrasound._

Cultural value is as important as technical advancement, at least _in the long
run_. I think you could agree with me.

A notable cliche is still VHS. In the 80s, it was a far-from-optimal video
system, but recently it has became a symbol of the 80s. Another example is the
proliferation of home computers in the 80s, while many were groundbreaking, we
also had some that were closer to a market bubble than a technical
accomplishment, and were known as "Trash 80s" but now it's still something
different.

And thanks for your additional commentary on soundchips.

~~~
escherplex
_Cultural value is as important as technical advancement, at least in the long
run. I think you could agree with me._

True but, EG, resurrecting the old 360KB 5.25-inch floppies tech used on the
'80s era IBM PCs is probably not worth revisiting.

~~~
segfaultbuserr
> _resurrecting the old 360KB 5.25-inch floppies tech_

Sure, practicability is important as well. The primary reason that nobody is
resurrecting 5.25-inch floppies, is simply due to its impracticability. I
think many people in the retrocomputing community would like to make a
retrocomputer with these crunching floppies, but the supply chain has already
vanished, it's also extremely difficult (if not impossible) to make a
5.25-inch floppy drive independently, as it involves custom mechanical moving
parts. It's better to use the time to, let's say, a homemade video game
cartridge.

Many retrocomputing hobbyists make a liberal use of modern peripherals such as
CF cards.

~~~
userbinator
_it 's also extremely difficult (if not impossible) to make a 5.25-inch floppy
drive independently, as it involves custom mechanical moving parts_

The tolerances are not that high and the physical specifications are available
from ECMA; most of the mechanical parts would not be difficult for a
machinist, it's the heads which are the most difficult. The intersection of
machinists and retrocomputing hobbyists is probably not that large, and 5.25"
drives are still not really rare enough to attempt remanufacturing.

------
tubetime
alternative names i considered: SNOOD BLOOBER, SOUND BLUSTER, EAR BUSTER,
SNART FARTER, SNUD BLUFFER, SNARD BLARGER, SNEED BLEEPER, SNORP BLORPER, SNOT
BLOTTER, and SNOOT BOOPER.

~~~
Sendotsh
> SNOOD BLOOBER

I love the name you chose, but this is definitely tied as my favourite purely
due to it sounding like something from Hitchhikers Guide!

------
tyfon
For real DIY audio on PC, try the covox. It's a resistor based "dac" for the
paralell port that we used to build as kids too before we could afford a
proper sound card.

You could also buy a commercial version if you didn't want to solder [1]

[1]
[https://en.wikipedia.org/wiki/Covox_Speech_Thing](https://en.wikipedia.org/wiki/Covox_Speech_Thing)

~~~
ak1394
Now, where these days would you get a parallel port to plug it into?

~~~
robin_reala
$23 on newegg:
[https://www.newegg.com/Product/Product.aspx?Item=N82E1681515...](https://www.newegg.com/Product/Product.aspx?Item=N82E16815158148)

~~~
afandian
I seem to recall that the USB ones don't work for this kind of thing. From my
teenage memories, you could bit-twiddle by writing to a memory address. I
presume the USB ones use a UART that doesn't allow direct memory access, or
precise timing, or something.

The one linked in the parent is a PCI card, so this might not apply.

------
Vaslo
Did anyone notice the “Made in Anger” label on the card? Lots of detail!

~~~
EvanAnderson
That silkscreen had me giggling. The juxtaposition of the text in the
requisite serious typeface and the fact that typically only "SERIOUS
ELECTRONICS MESSAGES" are communicated in that way, I guess, was the source of
The Funny.

I am reminded of the names of B-52's songs on Amiga motherboards. (I had an
Intel server board that had the Marmaduke cartoon character screened on it,
under the "Slot 2" retainer. Alas, I got rid of the machine and never
photographed it.)

------
iheartpotatoes
I'm most impressed that it uses ZERO surface mount devices. My surface mount
rework skills have been getting worse over the past 10 years. (Fuck arthritis,
man. Too young for this shit.)

------
Neil44
Will it still need a SET BLASTER= environment variable?

------
pmorici
What's the motivation or use for this?

~~~
tubetime
i did it for fun, and also because real sound blaster 1.0 cards are going for
a lot of money on ebay. i don't actually own an original card, this was
reverse engineered entirely from photos.

~~~
tomcam
As a software guy I’m... astounded. That’s incredible to me. Hats off to you,
brother. And thanks for sharing your experience.

------
kazinator
That's awesome; but where are you going to plug this in? And if you can find
_that_ hardware, you can probably scavenge an original SB 1.0 too.

You know, just the other day last week, I was thinking about how good it would
be to have real hardware FM synthesis for those vintage sounds.

~~~
itomato
USB to ISA bridge

~~~
kazinator
Turns out this is not actually a joke. Yikes!

------
myWindoonn
Wasn't this card one of several that could damage the motherboards that they
were installed into? I wonder whether they've reimplemented those details;
given that, just like the original, this version has idiosyncratic power
management, I wouldn't be surprised.

~~~
Geee
We burned our 486 motherboard with Sound Blaster 2.0. The computer wouldn't
boot when the card was installed, so the next logical step was to first start
the computer and then install the card. Didn't quite work out, and dad wasn't
happy.

------
Tempest1981
Would love to hear more about the reverse engineering journey.

------
kyberias
Got me thinking... Is there a open-source design of some PC motherboard
somewhere?

~~~
tubetime
yes: [http://www.malinov.com/Home/sergeys-
projects/xi-8088](http://www.malinov.com/Home/sergeys-projects/xi-8088)
although it's a CPU card that plugs into a backplane. lots of other good
designs of his here: [http://www.malinov.com/Home/sergeys-
projects](http://www.malinov.com/Home/sergeys-projects)

