top | item 23123782

The DooM-chip: no CPU, no opcodes, no instruction counter

320 points| MrBuddyCasino | 5 years ago |twitter.com | reply

101 comments

order
[+] AnotherGoodName|5 years ago|reply
There's an old saying when judging a new architecture. Can it run Doom?

This question arises since pretty much anything can these days. https://www.vice.com/en_us/article/qkjv9x/a-catalogue-of-all...

Now we have a new answer: IT CAN ONLY RUN DOOM

[+] willis936|5 years ago|reply
If only mankind was capable of making a machine that can run crysis.
[+] dorgo|5 years ago|reply
Is it doom complete?
[+] nabla9|5 years ago|reply
I bet 2000 years from now Doom is belongs to canon like Iliad. It's of the timeless classical epics among the oldest extant works from the early silicon era. Doomguy is mentioned with Gilgamesh and Odysseus.
[+] kick|5 years ago|reply
Why? DOOM was a technical achievement, sure, but it has little in the way of story; it didn't even attempt the whole "trying to tell a story without words" thing common in video games of today. It's certainly not an epic.

If they wouldn't have released source code for it in 1997, who would actually be thinking of DOOM today in terms of anything but "Wow, that had pretty cool tech!"?

I could kind of understand the story appreciation for DOOM 3, because it at least had a story, but DOOM?

[+] phendrenad2|5 years ago|reply
I think you're onto something, but I think Doom is closer to a Mona Lisa than a Illiad. It's a work of art that has proven it's ability to attract people to it.

Not sure what the Illiad of games is. Maybe there isn't one. Maybe Doomguy and Mario are closer to mythos like Hercules and other demigods.

[+] c3534l|5 years ago|reply
The Iliad was the crowning achievement of a literary society with hundreds of years of tradition. Doom was a simple and early innovator. At best, it will be remembered in the way that some fairy tales are: the beginning of a trope, or right of passage. Even that I'm doubtful of. I suspect it will be remembered like checkers and and the game of Ur: historical curiosities of early games. But not a cultural achievement. I'm not sure what it says about us that we think Doom has the same level of literary merit as the Iliad. It's a fun game, but it has neither the depth of chess or go, nor the narrative achievement of even a sitcom or cheap dimestore novel.
[+] hiccuphippo|5 years ago|reply
Funny, I thought the same of Xena back in the 90's. What about Kratos or Spiderman?
[+] tyingq|5 years ago|reply
Interesting, so it's somewhat like the original pong chip or the AY-3-8500. No OS, just inputs drive video output.

http://www.pong-story.com/gi.htm

http://www.pong-story.com/gi8500.htm

[+] amelius|5 years ago|reply
Next: analog implementation of Doom?
[+] tenebrisalietum|5 years ago|reply
This contributes to the timelessness of Doom.

Doom pretty much has been ported to everything with a CPU, like Linux. Heck, you can even search for JSDoom and get a few results. There's even a RISC-V port (RISC-V emulator included: https://github.com/lcq2/risc-666)

It will be interesting if it progresses past simply drawing the level, e.g. if you can actually play it.

Then Doom won't even need a CPU to exist.

[+] anthk|5 years ago|reply
Meh. I can play Minizork and Curses (version 3) on a:

- Monochrome GameBoy and compatibles.

- PDAs, nearly all of them.

- That intelligent pen which parsed everything you wrote.

- KA10 with Tops20 with dfrotz.

- GBA/NDS/PSP/Android/ioS... anything portable.

- Everything SIMH emulates, or nearly everything.

- All of the 8/16/32 bit minicomputers.

- Any OS with a gopher client. Even Nethack/Telnet may work with a dumb wrapper.

- A PostScript printer with a crafted input.

- Over telnet/ssh/irc... name a text protocol and you will be able to play it.

[+] k__|5 years ago|reply
How much more efficient is this than running it in software?

I'm asking, because if this thing can render magnitudes bigger/more detailed worlds than a PC and it's basically copy protected because it's "in hardware" this should be the wet dream of the industry.

[+] floppy123|5 years ago|reply
Much more efficient (some 0.x watts) and faster - but not very easy to develop and even harder to deploy :)

and you will get in trouble with the amount of code(needed gates) for porting nowerdays doom

[+] Chirono|5 years ago|reply
Further down the author says it runs at 60fps, without much headroom. So quite some way behind modern GPUs - the latest doom game can run at 200+ FPS and is vastly more complicated.

That, combined with the cost of the hardware in comparison to a digital copy makes me think this is unlikely to be particularly useful to the games industry. It's incredibly impressive though!

[+] monocasa|5 years ago|reply
That's way more expensive than the margins they're used to for distribution.

And the xbone not getting hacked in it's lifetime proved that they can have their cake and eat it too.

[+] aortega|5 years ago|reply
Nice work. However, a state machine "state" could be seen as an instruction counter.
[+] sylefeb|5 years ago|reply
Author here - Thanks! You are absolutely correct there are several state machines (vga, sdram controler, framebuffer, texturing, divider, renderer, etc) and each with an active state index. The renderer is the biggest one with 69 states.

I agree the state index can be seen as an instruction counter, albeit into very specialized instructions: there are no two same instructions in a given module, each is uniquely implementing a precise subpart of the algorithm. Also the states decide the flow and select the next state, there is no list of instructions you could program or re-arrange. So I wanted to capture this idea that the algorithm is completely embedded into the circuit itself, which is not capable of doing anything else.

There is definitely a very interesting trade-off between a general instruction set and an extremely specialized state machine like here - combining both seems promising?

[+] causality0|5 years ago|reply
Until it takes control input it's more of an electronic sculpture resembling Doom.
[+] sylefeb|5 years ago|reply
True - I only (partially) re-implemented the render loop, and this is far from the complete game. A game is always much more that its core technical components.

Adding a keyboard/joystick input is high on my todo. In terms of moving around this really should be just a question of wiring it to the board: the renderer takes a generic x,y,z + angle viewpoint as did the original engine. However, this also means checking for collisions with the BSP scene which is fun to implement (a nice trick in a BSP is to shift the line equations and check with a point as opposed to checking with a disc of some radius).

Side note: I instrumented chocolate-doom (fantastic port) to output the path shown in the video. Initially I was loading a demo lump, but I realized that these are only the inputs and could not easily reproduce the exact way the game answers them (for example, progressive acceleration and of course collisions).

Next up on my list are correct blinking lights, working doors/lifts and sprites (things + enemies). But I also want to optimize it, and to release the language I used to make this. So quite a huge todo; we'll see how it goes. In any case all of that will be made available so everyone can join the fun!

[+] artiscode|5 years ago|reply
Amazing project! Next step: custom silicon ASIC, the Doom arcade machine
[+] Vekz|5 years ago|reply
This is the future of hardware. Specialized chips baked for a focused application.
[+] WatchDog|5 years ago|reply
The future sure sounds a lot like the past, given that everything, even toasters have CPU's in them these days.
[+] castratikron|5 years ago|reply
There are Super Nintendo games like Star Fox that had a second accelerator chip on board. But it would still be cool for the game to be the computer and exist in custom silicon. Development would be super slow of course but the result would literally be the best it could be.

Wonder if the advantage would be worth it. Is anyone trying?

[+] mhh__|5 years ago|reply
Future? Most high end T&M gear will have an ASIC in it.

FPGAs are already very very prevalent. They aren't too common for hobbyists because although the transistor density in an FPGA has increased the pricing hasn't really followed suit a la regular CPUs - that and the tooling is often comically 1990s

[+] Koshkin|5 years ago|reply
This feels like a breath of fresh air: too many FPGA applications today resort to implementing a simple CPUs (a.k.a. PSM - “programmable state machine”), and the required logic is implemented in its “machine code.”
[+] monocasa|5 years ago|reply
I think you'd be surprised how many classic hardware designs take that approach as well. There's nothing wrong with that approach.
[+] vmception|5 years ago|reply
even with OpenCL I find FPGA's extremely complicated to program on

it doesn't help that Intel is charging $5,000 licenses to compile on them, for some things

[+] anthk|5 years ago|reply
So, like the old 'Brick Game' ensembling a Tetris machine.

BTW, on portability, the Z-Machine has been ported even to "intelligent" pens. There is even a GameBoy, Amiga, Atari and C64 port.

Sorry Doom lovers, but your knowledge on portability is really low. The Z-Machine and the zillion of Infocom games/ homebrew can be run nearly everywhere. No display? Hook up a printer/serial device.

Have a wifi/internet client? Write a dumb gopher client, set up a dumb server on a VPS/Rpi. You could set a Z-machine playing bot to even be able to play it via IRC.

Also, with a custom dfrotz and a FIFO file you may be able even play it over morse with some software which decodes the morse input from radio and sends the commands to the interpreter, sending the game output back.