Remix.run Logo
Doom has been ported to an earbud(doombuds.com)
228 points by arin-s 7 hours ago | 74 comments
nehalem 4 hours ago | parent | next [-]

Whenever I see another supposedly menial device including enough general purpose hardware to run Doom, I wonder whether I should think of that as a triumph of software over hardware or an economic failure to build cheaper purpose-built hardware for things like sending audio over a radio.

Aurornis 22 minutes ago | parent | next [-]

> Whenever I see another supposedly menial device including enough general purpose hardware

The PineBuds are designed and sold as an open firmware platform to allow software experimentation, so there’s nothing bad nor any economic failures going on here. Having a powerful general purpose microcontroller to experiment with is a design goal of the product.

That said, ANC Bluetooth earbuds are not menial products. Doing ANC properly is very complicated. It’s much harder than taking the input from a microphone, inverting the signal, and feeding it into the output. There’s a lot of computation that needs to be done continuously.

Using a powerful microcontroller isn’t a failure, it’s a benefit of having advanced semiconductor processes. Basically anything small and power efficient on a modern process will have no problem running at tens of MHz speeds. You want modern processes for the battery efficiency and you get speed as a bonus.

The speed isn’t wasted, either. Higher clock speeds means lower latency. In a battery powered device having an MCU running at 48MHz may seem excessive until you realize that the faster it finishes every unit of work the sooner it can go to sleep. It’s not always about raw power.

Modern earbuds are complicated. Having a general purpose MCU to allow software updates is much better than trying to get the entire wireless stack, noise cancellation, and everything else completely perfect before spinning out a custom ASIC.

We’re very fortunate to have all of this at our disposal. The groveling about putting powerful microcontrollers into small things ignores the reality of how hard it is to make a bug-free custom ASIC and break even on it relative to spending $0.10 per unit on a proven microcontroller manufacturer at scale.

rogerrogerr 4 hours ago | parent | prev | next [-]

Or a third option - an economic success that economies of scale have made massively capable hardware the cheapest option for many applications, despite being overkill.

AlecSchueler an hour ago | parent | next [-]

Or the fourth option, an environmental disaster all around

dubbie99 24 minutes ago | parent | next [-]

The materials that go into a chip are nothing. The process of making the chip is roughly the same no matter the power of it. So having one chip that can satisfy a large range of customers needs is so much better than wasting development time making a custom just good enough chip for each.

AlecSchueler 16 minutes ago | parent [-]

> The materials that go into a chip are nothing.

They really aren't. Every material that goes into every chip needs to be sourced from various mines around the world, shipped to factories to be assembled, then the end goods need to be shipped again around the world to be sold or directly dumped.

High power, low power, it all has negative environmental impact.

direwolf20 10 minutes ago | parent [-]

Which materials are they and how would you suggest doing it with fewer materials?

Aurornis 18 minutes ago | parent | prev [-]

It’s the opposite. Using an off the shelf MCU is much more efficient than trying to spin your own ASIC.

Doing the work in software allows for updates and bug fixes, which are more likely to prevent piles of hardware from going into the landfill (in some cases before they even reach customers’ hands).

cyberrock 3 hours ago | parent | prev [-]

Also see: USB 3+ e-marker chips. I'm still waiting for a Doom port on those.

tt24 2 hours ago | parent | prev | next [-]

Incredible to see people try to spin the wild successes of market based economies as an economic failure.

Hardware is cheap and small enough that we can run doom on an earbud, and I’m supposed to think this is a bad thing?

hashmap 2 hours ago | parent [-]

I can sort of see one angle for it, and the parent story kind of supports it. Bad software is a forcing function for good hardware - the worse that software has gotten in the past few decades the better hardware has had to get to support it. Such that if you actually tried like OP did, you can do some pretty crazy things on tiny hardware these days. Imagine what we could do on computers if they weren't so bottlenecked doing things they don't need to do.

Waterluvian 30 minutes ago | parent | prev | next [-]

I imagine it’s far more economical to have one foundry that can make a general purpose chip that’s overpowered for 95% of uses than to try to make a ton of different chips. It speaks to how a lot of the actual cost is the manufacturing and R&D.

sdenton4 14 minutes ago | parent [-]

The only real problem I could see is if the general purpose microcontroller is significantly more power-hungry than a specialized chip, impacting the battery life of the earbuds.

On every other axis, though, it's likely a very clear win: reusable chips means cheaper units, which often translates into real resource savings (in the extreme case, it may save an entire additional factory for the custom chips, saving untold energy and effort.)

danielbln 4 hours ago | parent | prev | next [-]

It's already very cheap to build though. We are able to pack a ton of processing into a tiny form factor for little money (comparatively, ignoring end-consumer margins etc.).

An earbud that does ANC, supports multiple different audio standard including low battery standby, is somewhat resistant to interference, can send and receive over many meters. That's awesome for the the price. That it has enough processing to run a 33 year old game.. well, that's just technological progression.

A single modern smartphone has more compute than all global conpute of 1980 combined.

ck2 35 minutes ago | parent [-]

I need that in lunar-lander exponents

(imagine the lunar lander computer being an earbud ha)

danielbln 9 minutes ago | parent [-]

Well, current smartphone would be about 10^8 times faster/more than the lunar lander.

A single Airpod would be about 10^4 times as powerful as the entire lunar lander guidance system.

Or to put another way: a single Airpod would outcompute the entire Soviet Union's space program.

tobinc 30 minutes ago | parent | prev | next [-]

I think it's just indicative of the fact that general purpose hardware has more applications, and can thus be mass produced for cheaper at a greater scale and used for more applications.

varjag 4 hours ago | parent | prev | next [-]

Earbuds often have features like mic beam forming and noise cancellation which require a substantial degree of processing power. It's hardly unjustified compared to your Teams instance making fans spin or Home Assistant bringing down an RPi to its knees.

nehalem 3 hours ago | parent [-]

No doubt, maybe should I have emphasised the "general" part of "general purpose" more. Not a hardware person myself, I wonder whether there would be purpose-built hardware that could do the same more cheaply – think F(P)GA.

Aurornis 15 minutes ago | parent [-]

> I wonder whether there would be purpose-built hardware that could do the same more cheaply – think F(P)GA.

FPGAs are not cost efficient at all for something like this.

MCUs are so cheap that you’d never get to a cheaper solution by building out a team to iterate on custom hardware until it was bug free and ready to scale. You’d basically be reinventing the MCU that can be bought for $0.10, but with tens of millions of dollars of engineering and without economies of scale that the MCU companies have.

TrainedMonkey 4 hours ago | parent | prev | next [-]

> CPU: Dual-core 300MHz ARM Cortex-M4F

It's absolute bonkers amount of hardware scaling that happened since Doom was released. Yes, this is a tremendous overkill here, but the crazy part here is that this fits into an earpiece.

Telemakhos 3 hours ago | parent | next [-]

I remember playing Doom on a single-core 25MHz 486 laptop. It was, at the time, an amazing machine, hundreds of times more powerful than the flight computer that ran the Apollo space capsule, and now it is outclassed by an earbud.

iberator 2 hours ago | parent | next [-]

Can we finally end this Apollo computer comparison forever? It was a real time computer NOT designed for speed but real time operations.1

Why don't you compare it to let's say pdp11, vax780/11 or Cray 1 supercomputer?

NASA used a lot of supercomputers here on earth pior to mission start.

mlyle an hour ago | parent [-]

> It was a real time computer NOT designed for speed but real time operations.

More than anything, it was designed to be small and use little power.

But these little ARM Cortex M4F that we're comparing to are also designed for embedded, possibly hard-real-time operations. And dominant factors in experience on playback through earbuds are response time and jitter.

If the AGC could get a capsule to the moon doing hard real-time tasks (and spilling low priority tasks as necessary), a single STM32F405 with a Cortex M4F could do it better.

Actually, my team is going to fly a STM32F030 for minimal power management tasks-- but still hard real-time-- on a small satellite. Cortex-M0. It fits in 25 milliwatts vs 55W. We're clocked slow, but still exceed the throughput of the AGC by ~200-300x. Funnily enough, the amount of RAM is about the same as the AGC :D It's 70 cents in quantity, but we have to pay three whole dollars at quantity 1.

> NASA used a lot of supercomputers here on earth pior to mission start.

Fine, let's compare to the CDC 6600, the fastest computer of the late 60's. M4F @ 300MHz is a couple hundred single precision megaflops; CDC6600 was like 3 not-quite-double-precision megaflops. The hacky "double single precision" techniques have comparable precision-- figure that is probably about 10x slower on average, so each M4F could do about 20 CDC-6600 equivalent megaflops or is roughly 5-10x faster. The amount of RAM is about the same on this earbud.

His 486-25 -- if a DX model with the FPU -- was probably roughly twice as fast as the 6600 and probably had 4x the RAM, and used 2 orders of magnitude less power and massed 3 orders of magnitude less.

Control flow, integer math, etc, being much faster than that.

Just a few more pennies gets you a microcontroller with a double precision FPU, like a Cortex-M7F with the FPv4-SP-D16, which at 300MHz is good for maybe 60 double precision megaflops-- compared to the 6600, 20x faster and more precision.

tadfisher an hour ago | parent | prev [-]

And perhaps more fittingly, that PC couldn't decode and play an MP3 in real time.

mlyle an hour ago | parent | prev [-]

This is the "little part" of what fits into an earpiece. Each of those cores is maybe 0.04 square millimeters of die on e.g. 28nm process. RAM takes some area, but that's dwarfed by the analog and power components and packaging. The marginal cost of the gates making up the processors is effectively zero.

gpm 2 hours ago | parent | prev | next [-]

Neither - it's a triumph of our ability to do increasing complex things in both software and hardware. An earbud should be able to make good use of the extra computing capacity, whether it is to run more sophisticated compression saving bandwidth, or for features like more sophisticated noise cancelling/microphone isolation algorithms. There are really very few devices that shouldn't be able to be better given more (free) compute.

It's also a triumph of the previous generation of programmers to be able to make interesting games that took so little compute.

buildbot 2 hours ago | parent | next [-]

Plus there’s actually less waste, I would imagine, by using a generic, very efficiently mass produced, but way overkill part. vs. a one off or very specific, rare but perfectly matched part.

echelon 2 hours ago | parent | prev [-]

There are enough atoms in that earbud to replace all of the world's computers.

We've got a long way to go.

__MatrixMan__ 4 hours ago | parent | prev | next [-]

If it can run Doom it can run malware.

mlyle an hour ago | parent | prev | next [-]

Marginal cost of a small microprocessor in an ASIC is nothing.

The RAM costs a little bit, but if you want to firmware update in a friendly way, etc, you need some RAM to stage the updates.

notarobot123 an hour ago | parent | prev | next [-]

It's intuitive to think of wasted compute capacity as correlating with a waste of material resources. Is this really the case though?

mathgeek 43 minutes ago | parent [-]

Waste is subjective or, at best, hard to define. It's the classic "get rid of all the humans and nothing would be wasted" aphorism.

daft_pink an hour ago | parent | prev [-]

If you look at the bottom of the page, it’s an advertisement for someone looking for a job to show off his technical skill.

ornornor 42 minutes ago | parent [-]

Okay? Is that good or bad or what?

arin-s 7 hours ago | parent | prev | next [-]

Hi, I ported DOOM to the Pinebuds Pro earbuds. It's accessible over the internet, so you can join the queue and play DOOM on my earbuds from your PC! More info as well as links to the github repos can be found on the site.

RandomTeaParty 25 minutes ago | parent [-]

What compression ratio does your jpeg encoding achieve?

shevy-java 3 hours ago | parent | prev | next [-]

I am a bit said that it is always Doom.

Now ... I played the game when I was young. It was addictive. I don't think it was a good game but it was addictive. And somewhat simple.

So what is the problem then? Well ... games have gotten a lot bigger, often more complicated. Trying to port that to small platforms is close to impossible. This makes me sad. I think the industry, excluding indie tech/startups, totally lost the focus here. The games that are now en vogue, do not interest me at all. Sometimes they have interesting ideas - I liked little nightmares here - but they are huge and very different from the older games. And often much more boring too.

One of my favourite DOS games was master of orion 1 for instance. I could, despite its numerous flaws, play that again and again and again. Master of Orion 2 was not bad either, but it was nowhere near as addictive and the gameplay was also more convoluted and slower.

(Sometimes semi-new games are also ok such as Warcraft 3. I am not saying ALL new games are bad, but it seems as if games were kind of dumbed down to be more like a video to watch, with semi-few interactive elements as you watch it. That's IMO not really a game. And just XP grinding for the big bad wolf to scale to the next level, deal out more damage, as your HP grows ... that's not really playing either. That's just wasting your time.)

RadiozRadioz 3 hours ago | parent | next [-]

It's Doom in part because it's a significantly popular game, that was open sourced, with low resource requirements (but not too low to be trivial), with an innovative custom engine that people find interesting, originally created by a person who many respect or admired growing up, and the game itself is cool. And now there is enough inertia to keep choosing it.

m-p-3 3 hours ago | parent [-]

I wish there were more ports of Duke Nukem 3D :(

Guvante 3 hours ago | parent | prev | next [-]

Most people don't realize that games were small back then because they had to be.

The value of being small for most users almost doesn't exist. If you have bandwidth limits then yeah download size is important but most don't.

So the only meaningful change optimizations make is "will it run well enough" and "does it fit on my disk".

Put more plainly "if it works at all it doesn't matter" is how most consumers (probably correctly) treat performance optimizations/installation size.

The sacrifices you talk about were made at explicit request of consumers. Games have to be "long enough" and the difference between enough game loop and grinding is a taste thing. Games have to be "pretty" and for better or worse stylized takes effort and is a taste thing (see Wind Waker) while fancy high res lighting engines are generally recognized as good.

I will say though while being made by indies means they are optimized terribly the number of stylized short games is phenomenally high it can just be hard to find them.

Especially since it is difficult for an hour or two game to be as impactful as a similar length movie so they tend to not be brought up as frequently.

bitmasher9 an hour ago | parent [-]

Storage space is at a premium. The PS5 has about 650gb of usable space. At ~100gb/game which is not uncommon you can store 6 games on the console without needing to free up hard drive space.

Filesize matters, especially to people with limited bandwidth and data caps. The increasing cost of SSDs only makes this situation more hardware constrained.

dclowd9901 3 hours ago | parent | prev [-]

Im with you. I want to play Freespace 2 on earbuds.

7777777phil 5 hours ago | parent | prev | next [-]

List of Doom ports: https://en.wikipedia.org/wiki/List_of_Doom_ports

omoikane 23 minutes ago | parent [-]

Subreddit of Doom ports: https://www.reddit.com/r/itrunsdoom/

npsomaratna 4 hours ago | parent | prev | next [-]

On a tangent: I remember reading John Carmak saying that as game engines became more complex, he had to relinquish the idea of writing all the (engine) code himself, and start to rely on other folks contributions as well (this was in an interview after the release of Doom 3).

I wonder what his feelings are in this age of AI.

Insanity 4 hours ago | parent | next [-]

John is now on a mission to make AGI a reality. I’d say given his own investment there, he’s probably positive about it.

Just speculation on my part of course.

Also, “masters of doom” is such a good book. Recommend it for anyone who wants to peek behind the scenes of how Carmack, Romero, and iD software built Doom (and Wolf3D etc).

nortlov 3 hours ago | parent | prev [-]

Carmak made extensive use of AI during Doom development: Approximate Interpolation.

WXLCKNO 2 hours ago | parent | prev | next [-]

A few more years and some more ram on these earbuds and we'll be able to run some nice local earbud kubernetes clusters

catlifeonmars an hour ago | parent | prev | next [-]

As an aside, I really like the style of the page. I wish it was available as a classless css dropin stylesheet.

KellyCriterion 4 hours ago | parent | prev | next [-]

Im waiting for the post "Doom ported to disposable Vape chip" :-D

primitivesuave 3 hours ago | parent | next [-]

The Puya PY32 series MCUs found in most vapes have 3kb of RAM and 24kb of ROM, whereas Doom requires at least 4MB of RAM. Assuming Moore's law also applies to the computing power inside a disposable vape, we should be seeing that post in around a decade :)

DJBunnies 4 hours ago | parent | prev [-]

https://www.youtube.com/watch?v=rVsvtEj9iqE

KellyCriterion 4 hours ago | parent [-]

Good catch! Though it misses my primary condition: "disposable" - ha! :-D (this one is a refillable one, and it looks like he is streaming the content from his PC?)

But a very cool link, thanks for sharing! :)

branon 5 hours ago | parent | prev | next [-]

How are the PineBuds Pro, anyone have them? The Pine64 IRC network doesn't have a channel for PineBuds discussion so I haven't had an easy opportunity to ask.

arin-s 5 hours ago | parent | next [-]

To be honest, I've never actually used them for their intended purpose. No idea what the comfort or audio quality is like. There's a Pinebuds channel on the Pine64 discord, you can ask questions there :)

utopiah 5 hours ago | parent | prev | next [-]

Was using them just this morning. I've been using them since they are out. Great device but battery is quite limited, ~2hrs top with ANC on.

TheCraiggers 5 hours ago | parent | prev [-]

I'm also curious. I used to be a big supporter of Pine64 but the e-ink tablet and phone debacles have kinda soured me on them.

arin-s 4 hours ago | parent | prev | next [-]

The standalone viewer (connected directly to the earbuds) also works on mobile: https://files.catbox.moe/pdvphj.mp4

No touch controls though, it just plays the intro loop

neurostimulant 3 hours ago | parent | prev | next [-]

> Earbuds don't have displays, so the only way to transfer data to/from them is either via bluetooth, or the UART contact pads. Bluetooth is pretty slow, you'd be lucky to get a consistent 1mbps connection, UART is easily the better option.

Does this means you can run a doom instance on each bud? Is it viable to make a distributed app to use the computing power of both buds at once?

arin-s 3 hours ago | parent [-]

This was a stretch goal, multiplayer. One earbuds versus the other. It's not that hard to implement but I've got a few other things to clear away first.

Using them for distributed computation though? interesting use of free will xD

RandomTeaParty 20 minutes ago | parent | next [-]

Compute one half of the screen on each

Left ear for the right eye and vice versa

jentulman 20 minutes ago | parent | prev [-]

Single player, but stereoscopic? One display from each bud.

"VR Doom has been ported to an earbud(s)" ;)

j1elo 14 minutes ago | parent | prev | next [-]

Next up idea: ThunderDoom

https://news.ycombinator.com/item?id=46750419

automatic6131 5 hours ago | parent | prev | next [-]

Do we have Doom on a USB-C plug microcontroller yet?

KellyCriterion 4 hours ago | parent [-]

Disposable Vape CPU!

TheCraiggers 5 hours ago | parent | prev | next [-]

At first I thought you found a way to control/view the game acoustically and I was very curious how that worked.

But, this probably makes more sense.

moktonar 3 hours ago | parent | prev | next [-]

We should definitely send a playable copy of doom to aliens on a golden record on the next Voyager mission

listeria 2 hours ago | parent [-]

and risk having them interpret it as a declaration of war?

anthk an hour ago | parent | prev | next [-]

It's possible to run Zork I-III Frotz under a pen, some FPGA and even interpreting a PostScript file. Even the Game Boy, the C64, MSX... So, Doom is not the most ported game ever.

jurakis 7 hours ago | parent | prev | next [-]

This is awesome! the amount of devices doom has not been run on shrinks by the day haha

epenn 2 hours ago | parent | prev | next [-]

In light of this I propose "Doom's Law" as the ultimate expression of late stage capitalism:

- Society continues to produce more and more powerful devices.

- More and more of these devices begin running Doom.

- When this reaches the saturation point, society becomes Doom.

optimalsolver 3 hours ago | parent | prev | next [-]

Relevant SMBC, "Computer scientist vs computer engineer": https://www.smbc-comics.com/comic/2011-02-17

lombasihir 4 hours ago | parent | prev [-]

can we run doom on water pump?