Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Turns out, "pure" 16-bit Ports are possible

Recommended Posts

I always assumed there was no way Doom (or a port based on the linux source) could be on anything but 32-bit or higher, yet, here we are:


Doom for the Commodore SuperCPU is a direct port of the Linux Doom source code to the Commodore 64 and Commodore 128 computer systems with the SuperCPU upgrade, which consists of a 65c816 clocked at 20 MHz with an accompanying 16 MB RAM upgrade.

The 65816 should sound familiar - the CPU inside the SNES, which also had a Doom port. But this is an actual Doom port with real Doom source code. On a 16-bit CPU. 

I had no idea of this thing's existence until fairly recently, during a discussion I had on Discord about "What is there left to port Doom to", so --- How does this work? Black magic in the form of a recompiler:


This is a static MIPS-I recompiler for a SuperCPU equiped C64.

That is, it will take a MIPS-I executable and translate the MIPS opcodes into 65816 ones. The recompiler is written in ANSI-C, compiled using GCC and recompiled into 65816 code using itself.


The game runs at a virtually unplayable single-digit frame rate, though, and I can't find the source code anywhere. I may be looking in the wrong places.

The idea of Doom ported to crazy CPUs like this amuses me for some geeky reason. Yeah, you can port Doom to any ARM CPU, big whoop - but the real impressive feat is if a port could actually be "somewhat playable" on a CPU that has no damn business running Doom in the first place. 😉

Share this post

Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now