This account of running DOOM on a PCB business card isn’t really about serving the “Will it DOOM?” meme of getting the classic game to run on improbable hardware. Rather, this project has more to do with getting it done right and leveraging work that’s already been done.
We’ll explain. You may recall [rsheldiii]’s previous DOOM keycap build, which was quite an accomplishment for someone who doesn’t fancy himself a hardware hacker. But he made a fair number of compromises to pull that build off, and rather than letting those mistakes propagate, he decided to build a more general platform to serve as a jumping-off point for the DOOM building community. The card is centered on the RP2040, which keeps things pretty simple. The card has a tiny LCD screen along with USB jacks for power and a keyboard, so you can actually play the game. It also has GPIO lines brought out to pads on the edge of the board, in case you want to do something other than play the game, which is shown in the brief video below.
Pretty standard stuff, right? Perhaps, but where this project stands out for us is that it stresses the importance of relying on reference circuits. We’ve all seen projects that have been derided for pulling the example circuit from the datasheet, but as [rsheldiii] points out, that seems a little wrongheaded. Component manufacturers put a lot of effort into those circuits, and they don’t do it out of the goodness of their hearts. Yes, they want to make it easier for engineers to choose their parts, but in doing so they’ve done a lot of the work for you. Capitalizing on that work wherever possible only makes sense, and in this case the results were perfect for the task at hand.
Do Crysis next. I don’t think anyone has gotten Crysis working on a business card yet.
Last I checked Crisis isn’t open source.
Doom is? At least the wads are not
Doom is indeed open source, and has been for many years at this point. While the WADs are not, most projects – and I’d imagine this one is included – use the WADs from the shareware demo.
You definitely can’t say the same for Crisis – shareware demo or open source engine. ;)
I think it is interesting. In the good old skillfull times it was possible that someone wrote a so complicate software like Doom in a way that anybody can port it to any hardware in the world.
Now if someone write anything that is more complicate than “Hello World” it is so complicated with hidden librarys, awkward build systems, different incompatible version of all software parts that it is absolute impossible to port it to a different system for anybody with skills lower than guru-level.
Proper software engineering is a real skill which goes beyond fleeting knowledge of OOPs or having agile or whatever. Its a hard job to arrange the code so that its maintainable and performant when the scope changes way beyond what anyone could have imagined when starting.
Me? I personally struggle to manage code when it grows beyond 5 files.
Me? After 13 years I moved on from software engineering to farming.
It’s an actual, meaningful work and I don’t have to deal with schizophrenics acting like little Hitlers while calling themselves “project managers”, “scrum masters”, “team leaders”, “agile keepers” or whatever is currently being hyped up to be the next big thing in corporate madhouse.
The last time I met a realy lucky software developer was when he show me a place for my tent and told that he quit his developer job and opend a camp site. :-D
Olaf