Can it run DOOM: A 30th Anniversary

Thirty years ago on December 10, 1993 the video game Doom was released by id Software.  Perhaps like me, this is just another way you realize you’re getting old. Nevertheless, getting Doom up and running on any and all possible hardware is a tradition in the computer engineering world, and at PHYTEC our software engineers were not going to pass up that opportunity. Wanna hear how we got Doom running on our phyCORE-AM62x dev kit? But first, some history…

While the early 1990s saw advancements across all aspects of PCs, the realm of gaming truly captivated enthusiasts. First-person shooters (FPS) were in their infancy with games like Catacomb 3D, Hovertank 3D, and Wolfenstein 3D paving the way for the iconic titles like Doom, as well as other graphically demanding games such as (my personal favs) Civilization and Warcraft: Orcs & Humans (launch-point for WOW). The gaming industry was pushing the boundaries of what early PCs could achieve and becoming one of the most profitable and relentless markets of our modern economy.
By the time Doom was released in late 1993, 486-based systems were all the rage, however most i486 PC motherboards had only single or dual memory banks, with a system limit between 16-32 MB. So how did those giant clunky machines handle the demands of groundbreaking games like Doom, and what upgrade options were available for aspiring digital warriors?

Pioneering PC Gamers

The Intel 80386DX and Motorola 68040 were the workhorses of early PC gaming, offering significant performance leaps over their predecessors with clock speeds ranging from 25 MHz to 40 MHz. They provided enough power for popular software applications and most of the basic games available, but not enough for demanding tasks such as video editing or high-graphics gaming.
Early Gaming Hardware:
  • Graphics Cards: While integrated graphics were available, dedicated cards like the ATI VGA Wonder and Tseng Labs ET4000 ruled the roost. These cards offered limited 3D capabilities, allowing for basic polygonal graphics and texture mapping.
  • Memory: 4MB to 8MB of RAM was the standard, but demanding games like Doom benefited greatly from upgrades. Installing additional RAM modules could significantly improve frame rates and gameplay smoothness.
  • Storage: Hard drives were becoming more common, offering faster loading times and larger storage capacities compared to floppy disks. HDDs ranging from 100MB to 500MB were popular choices among gamers.

Popular Upgrades:

  • Overclocking: Pushing the CPU and RAM beyond their stock clock speeds was a popular way to squeeze out additional performance. However, this often resulted in overheating and stability issues, requiring careful monitoring and cooling solutions.
  • Memory Upgrades: Adding more RAM was a straightforward and effective way to improve gaming performance. Jumping from 4MB to 16MB could significantly impact frame rates and overall system responsiveness.
  • Sound Cards: While many motherboards offered basic onboard audio, dedicated cards like the Sound Blaster Pro and Creative Labs GameBlaster provided richer audio experiences, immersing players further into the game world – essential for a full gaming experience blowing through blood-spattered dungeons to the knock-off riffs of bands like Metallica, Pantera, and ACDC found in the first release of Doom.
  • Accelerator Cards: These specialized add-ons aimed to offload graphics processing from the CPU, improving performance in 3D games. Examples included the 3dfx Voodoo Graphics card and Orchid Righteous 3D, offering a significant edge for serious gamers.

Beyond the Hardware:

  • Software Optimizations: Memory managers and disk caches could be fine-tuned to improve performance, squeezing every bit of power out of existing hardware.
  • Game Patches: Developers often released patches that optimized their games for specific hardware configurations, improving compatibility and frame rates.
  • Creative Solutions: Sharing resources and configuration tips within the early gaming community was commonplace, as enthusiasts sought innovative ways to maximize their gaming experience.

Despite the limited hardware capabilities, developers and gamers alike pushed the boundaries for the immersive and powerful gaming experiences we enjoy today. It was a period of immense creativity and resourcefulness and the spirit of innovation and experimentation during this era continues to inspire gamers and developers alike, reminding us that the journey towards the future of gaming starts with a single, pixelated step.

PHYTEC Doom Stories

Craig Day, Director of Engineering

Craig started out with a Tandy 1000 as his first PC and remembers being so into Doom that he was playing night after night into the wee hours of morning. By 1994, running Doom on his 386-based system was not cutting it and he soon upgraded to the 486. With a sparkle in his eye he recalls setting up LAN parties, and for anyone too young to know what a LAN party is – it’s literally hauling 50-100lbs of equipment (Giant monitor, heavy tower, keyboard, mouse, joystick etc.) to a central location and connecting all your PCs via 10 Mb coaxial network cables. Don’t forget to terminate those ends or it wont work!

Hoan Nguyen, Mechanical & Test Engineer

Hoan prompts us to picture this: It’s 1994, and you, the ultimate video game nerd, are perched in front of your cutting-edge Pentium (i586) PC, which boasts a staggering 2 Megabytes of RAM – basically a technological marvel of its time. Armed with your trusty keyboard and mouse, you plunge headfirst into the pixelated chaos navigating the labyrinth corridors of Hell with the finesse of a caffeinated ninja. Your Pentium processor is working harder than a chef at an all-you-can-eat buffet, bravely churning out graphics that were mind-blowing in the ’90s. Yup, that was me as a fifth year student in college, ignoring my studies and embarking on an epic journey into the digital abyss known as Doom. Who needs sleep when you’ve just single-handedly saved the world from pixelated doom?

“Kill them all and let God sort them out!”

Christian Waidner, Product Manager

Christian recalls:

I started my gaming “career” on a Commodore C16 my dad bought us (yes, I’m that old).
Afterwards of course an Amiga, playing every game available from Gianna Sisters to Wing Commander.

We met for a lot of networking sessions, carrying loads of equipment, but it was fun!

I remember Doom being one of the first games to support 3D acceleration and as a student I drove miles for a used voodoo graphics accelerator card, just to play that game.

 

Can it Run Doom?

Nerd Traditions

It’s well known on the internets, a running gag/measure of engineering prowess to see if you can get Doom running on a myriad of questionably appropriate devices. Check out canitrundoom.org if you don’t believe me, or even if you do, it’s worth a look for the LOLs. Just be careful… you might end up down a NSFW rabbit hole full of F-bombs and splattered blood. But then again, if you’re into Doom you’ll probably feel right at home!

PCM-001 – PCM-071
Embedded Systems Comparison: 70 SOMs ago…

Early PHYTEC miniMODULs were populated with Philips 8051-compatible (P80C552, P8xC592) microcontrollers. In 1994 one of PHYTEC’s early ventures into Embedded Processing was with the 16-bit Infineon (Siemens) C167CR processor, running at 20 MHz with a 144-pinout. Our first System On Module (SOM), the PCM-001 was based on the Motorola/Freescale MPC555 processor and had the following specs:

  • 20 MHz,
  • 256 KB external Burst-SRAM,
  • no external Flash,
  • 448 KB on-chip Flash
  • 4 KB external EEPROM

70 SOMs later we speak in GHz instead of MHz and Gigabytes rather than Kilobytes. The phyCORE-AM62x (PCM-071) has a Quad-core Arm Cortex-A53, up to 4GB DDR4, up to 128GB eMMC, Gigabit Ethernet. It can definitely run Doom.

“Fixed”
The phyCORE-AM62x Runs Doom

To get Doom running on the phyCORE-AM62x, PHYTEC Software engineer Garrett Giordano created a meta-layer for our Yocto build system. He wrote a recipe to cross compile the Chocolate-Doom engine from source for our AM62x’s architecture and had it deploy the engine inside an AM62x BSP, alongside an open source version of Doom called Freedoom. Once the engine was compiled and deployed, the last step was to launch the game to a display. Conveniently our BSP is set up to run XWayland as the desktop system. This made it much easier to get it running, as he was able to launch Doom in X11 mode and simply direct it to the LVDS display.

Luckily, Chocolate-Doom’s setup utility recognized the USB Game Pad by default and that was it! You can check out Garrett’s meta-layer here.

 

Modern Gaming Requirements

According to Intel.com, the minimum spec requirements to play Cyberpunk 77 are as follows:

OS: Windows 10
CPU: Intel® Core™ i7-4790 or better
RAM: 12GB of system memory
Graphics card: NVIDIA GeForce GTX 1060, NVIDIA GeForce GTX 1660 Super, or AMD Radeon RX 590
Storage: At least 70GB of available space; SSD recommended

So next time you’re casually playing games like Halo, Warhammer, Call of Duty, Destiny, or Cyberpunk 77 and complaining about lag, remember what all of us old gamers went through to get you there.

Tell us your Doom story

I started this blog with the intent of gathering a plethora of nerdy stories about upgrading DOS systems and gathering around with friends to blast gorey monsters and shoot powerful weapons, you know, the way we used to hang out back in the day – a LAN party or around a gaming console, until someone got hit in the head with a controller or dropped an F-bomb and the motherfigure sent us all outside to play in the rain. Maybe it never rained where you grew up, maybe you were more into Chutes and Ladders, but either way – if you have a story to share about upgrading your system to play some special game – we want to hear about it!

What cool thing have you gotten running on an embedded device? Whether it is a Raspberry Pi, Arduino, or even a PHYTEC device, let us know on social media.

Ready to get started?

Let’s go! Learn more about PHYTEC SOMs