Quake in 276 KB of RAM

Quake in 276 KB of RAM

Porting the original DOOM game to various pieces of esoteric hardware is a rite of passage in some software circles. But in the modern world, we can get better performance than the 386 processor required to run DOOM for the cost of a dinner at a nice restaurant, with plenty of other embedded systems blowing these original minimum system requirements out of the water. For a much tougher challenge, a group from Silicon Labs decided to port DOOM’s successor, Quake, to the Arduino Nano Matter Board platform instead even though this platform has some pretty significant limitations for a game as advanced as Quake.


To begin work on the memory problem, the group began with a port of Quake originally designed for Windows, allowing them to use a modern Windows machine to whittle down the memory usage before moving over to hardware. They do have a flash memory module available as well, but there’s a speed penalty with this type of memory. To improve speed they did what any true gamer would do with their system: overclock the processor. Their overclock got them to around 10 frames per second, which is playable but not particularly enjoyable. The further optimizations to improve the fps required a much deeper dive which included generating lookup tables instead of relying on computation, optimizing some of the original C programming, coding some functions in assembly, and only refreshing certain sections of the screen when needed.


As a game, Quake was a dramatic improvement over DOOM allowing for things like real-time 3D rendering, polygonal models instead of sprites, and advancement to 3D allowing for much more intricate level design. As a result, port ..

Support the originator by clicking the read the rest link below.