Fungus-inspired Linux hack gives Amiga a Doom-only brain
- Reference: 1754466309
- News link: https://www.theregister.co.uk/2025/08/06/cordoomceps/
- Source link:
"There's a lovely device called a PiStorm, an adapter board that glues a Raspberry Pi GPIO [General-Purpose Input/Output] bus to a Motorola 68000 bus," Garrett explained in a write-up of the project. "The intended use case is that you plug it into a 68000 device and then run an emulator that reads instructions from hardware (ROM or RAM) and emulates them. You're still limited by the ~7 MHz bus that the hardware is running at, but you can run the instructions as fast as you want."
Designed by classic computing enthusiast Claude Schwarz, the PiStorm uses an Altera MAX II complex programmable logic device (CPLD) to serve as the glue on a board that takes a Raspberry Pi single-board computer on one side and adapts it to the dual in-line pinout of a Motorola 68000 on the other. Inserted into the motherboard of a Commodore Amiga, the family of multimedia-focused personal computers launched in 1985 with the Amiga 1000, it allows software running on the Raspberry Pi to pretend it's a Motorola processor.
[1]
Traditionally, that functionality is used to provide a big boost in speed to the creaky old host machine as well as adding extra memory and missing peripherals – but Garrett decided to take a different approach.
[2]
[3]
"We can run whatever we want on the Pi and then access Amiga hardware," he noted. "And, obviously, the thing we want to run is Doom, because that's what everyone runs in fucked-up hardware situations."
Released in 1993, id Software's Doom was so popular its multiplayer functionality brought campus and business networks to a crawl. The company's decision to release the game engine under an open source licence as it developed newer replacements helped prevent its popularity from waning, and makes it a key target for porting to increasingly unlikely devices – from vintage computers to coffee makers and GPS trackers.
[4]
In Garrett's case, the porting target is the Amiga – not to run Doom as an application, something an unaccelerated Amiga struggles to do without a faster processor and/or add-in graphics card, but to replace its "brain" entirely with the Raspberry Pi running the game atop a Linux-based operating system. The inspiration is cordyceps, a parasitic fungus that takes over ants' brains – hence the project's codename, Cordoomceps.
[5]Flock storage: Audio boffin encodes data in a starling
[6]The Doom-in-a-PDF dev is back – this time with Linux
[7]They've only gone and made Doom run in a PDF file
[8]CAPTCHAs now run Doom – on nightmare mode
Building atop ADoom, a discontinued Amiga port of Doom first released in 1997, and the popular Chocolate Doom, Garrett was able to get the PiStorm board to boot into the game without first loading Amiga OS – but only if the machine's Kickstart firmware, loaded from floppy on the original Amiga 1000 but stored in read-only memory chips in later models, was allowed to run under Motorola 68000 emulation first. "If I tried accessing the hardware without doing that," Garrett found, "things were in a weird state. We can't write anything to RAM until we're executing code, and we can't execute code until we tell the CPU where the code is, which seems like a problem."
The solution turned out to be enabling a somewhat hidden feature for overlaying ROM contents onto the zeroth address – "poorly documented," Garrett surmises, "because it's not something you need to care about if you execute Kickstart which every actual Amiga does and I'm only in this position because I've made poor life choices" – followed by pulsing the reset line to unlock the Amiga's RAM.
"So, I now have a slightly graphically glitchy copy of Doom running without any sound," Garrett concluded, "displaying on an Amiga whose brain has been replaced with a parasitic Linux. Further updates will likely make things even worse."
Garrett's full write-up is available [9]on his website , with project source code available [10]on GitLab under the GNU General Public License 2. ®
Get our [11]Tech Resources
[1] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_offbeat/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2aJMnp0QhL9a1kkOpVVYHFAAAABE&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[2] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_offbeat/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aJMnp0QhL9a1kkOpVVYHFAAAABE&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_offbeat/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33aJMnp0QhL9a1kkOpVVYHFAAAABE&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_offbeat/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aJMnp0QhL9a1kkOpVVYHFAAAABE&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[5] https://www.theregister.com/2025/07/30/encoded_audio_starling_song/
[6] https://www.theregister.com/2025/02/16/dev_linux_pdf/
[7] https://www.theregister.com/2025/01/14/doom_delivered_in_a_pdf/
[8] https://www.theregister.com/2025/01/03/captcha_doom_nightmare/
[9] https://mjg59.dreamwidth.org/73001.html
[10] https://gitlab.com/mjg59/cordoomceps
[11] https://whitepapers.theregister.com/
OMG
This article is all my favourite things combined!!
I'm the (admittedly underperforming) maintainer of Gentoo Linux on m68k with the Amiga being my focus. I also love classic Doom. I have run ADoom on my Amiga, and I made a rather fancy level of my previous office. I have a PiStorm too, although I've sadly never found the time to actually try it. I've even crossed paths with Matthew Garrett, who previously did a little work on Flatcar Linux, my current day job.
This does seem bonkers, and I therefore love it.
"enabling a somewhat hidden feature for overlaying ROM contents onto the zeroth address – "poorly documented," Garrett surmises"
only poorly documented if you don't read the documentation.
It's not like virtually every 68k based system has to do this.... oh wait!
still a cool project tho.