DOOM on Neo Geo AES: the impossible port that finally works

For years, the phrase DOOM runs on everything has had one awkward exception. The Neo Geo AES, SNK’s luxury home console and arcade twin, was never an obvious home for id Software’s landmark shooter. It had power, but not the kind of power DOOM expects. The machine was designed to throw huge animated sprites around the screen with arcade precision, not to redraw a full first-person world one pixel at a time. That is what makes DoomGeo-AES so interesting. This is not a straight PC-to-console conversion and it is not a nostalgic reskin. It is a homebrew research prototype that asks a sharper question: can the Neo Geo display a DOOM-like world if the engine stops fighting the hardware and starts using it on its own terms? The answer, at this stage, is surprisingly close to yes. The current build shows a recognisable first-person shooter with walls, weapons, enemies, pickups, keys, doors, a status bar, a minimap and working combat systems. It is unfinished, but it proves the central idea: a machine once considered fundamentally wrong for DOOM can produce something that reads as DOOM in motion.

Why the Neo Geo was such a bad fit for DOOM

The Neo Geo AES was extraordinary in 1990, but its strengths were specific. Its main CPU is a Motorola 68000 running at 12 MHz, supported by a Z80 for sound duties and SNK’s custom video hardware. In the games that made the system famous, that arrangement was ideal. Fighters, run-and-gun titles and lavish 2D arcade games could rely on the console’s ability to display and scale large numbers of sprites.

DOOM asks for almost the opposite. On PC, the engine draws into a framebuffer. In simple terms, it calculates what the player should see, then writes pixels into memory to form the next frame. That suits hardware where the CPU can freely address a bitmap-style display. The Neo Geo does not work like that. Its display system is built around sprites, sprite control data, graphics stored in ROM, palettes and a fixed text layer.

That mismatch is the heart of the problem. A normal DOOM port wants to paint columns of wall texture, floors, ceilings and objects into a screen buffer. The Neo Geo wants to be told which sprites to show, where to place them and how to scale them. A conventional port would spend too much time and memory trying to simulate a display the system never meant to offer.

The Neo Geo has generous cartridge space by early 1990s standards, but only a small amount of working RAM for live game logic and data. DOOM depends on map data, texture data, actor state, collision checks and renderer calculations all happening at speed. DoomGeo-AES therefore leans on offline conversion. Data is prepared in advance, reduced into Neo Geo-friendly forms and pushed through a compact runtime.

The Neo Geo AES was extraordinary in 1990, but its strengths were specific. Its main CPU is a Motorola 68000 running at 12 MHz, supported by a Z80 for sound duties and SNK’s custom video hardware. In the games that made the system famous, that arrangement was ideal. Fighters, run-and-gun titles and lavish 2D arcade games could rely on the console’s ability to display and scale large numbers of sprites.

DOOM asks for almost the opposite. On PC, the engine draws into a framebuffer. In simple terms, it calculates what the player should see, then writes pixels into memory to form the next frame. That suits hardware where the CPU can freely address a bitmap-style display. The Neo Geo does not work like that. Its display system is built around sprites, sprite control data, graphics stored in ROM, palettes and a fixed text layer.

The clever trick: sprite strips instead of a framebuffer

DoomGeo-AES takes the idea of a first-person raycaster and translates it into the language of the Neo Geo. Rather than drawing a full bitmap image, the renderer uses vertical sprite strips. Each column of the 3D view is represented by a strip, with the hardware scaling that strip vertically to match the calculated wall height.

The approach is effective because it gives the expensive work to the part of the machine built for it. The 68000 still has to cast rays through the map, calculate distances and update control information, but it is not manually painting every visible pixel. Instead, it adjusts sprite control blocks. The graphics chip handles the scaling and display of prepared wall and object graphics.

In the current default build, the renderer uses an 80-column view based on an earlier Neo Geo raycasting path. That is enough to create a convincing first-person scene while staying within practical limits. It is not PC DOOM, and it does not pretend to be. The point is not accuracy at any cost. The point is playability on a very different architecture.

What already works in DoomGeo-AES

The most striking thing about DoomGeo-AES is that it has moved beyond a bare technical demo. The current playable setup boots into a block-letter intro and menu, then loads a compact handmade 16 by 16 showcase map. That map is smaller and more controlled than a full converted E1M1 run, because it better suits the sprite-strip constraints of the Neo Geo hardware.

Once inside, the fundamentals are present. Movement, turning, strafing, firing, doors, keys, pickups, exits and secrets are implemented. The HUD includes the familiar status bar structure, face frames, key indicators, weapon indicators, ammo, health and armour counters. Weapons include runtime paths for the fist, pistol, shotgun, chaingun, rocket launcher, plasma rifle, BFG and chainsaw, depending on which compatible asset set is supplied.

Enemies are not static decorations. Monsters use baked rotation frames, projectiles are present, barrels can explode and corpses and dropped items are handled. The movement model includes DOOM-like step and height checks, so small changes in floor height can be crossed while taller ledges block the player. This is the kind of detail that makes the project feel like a real game system rather than a screen effect.

The hand-authored showcase map is the stable route today, while full map conversion remains experimental. The tools can process DOOM-format data such as map geometry, doors, exits, secrets, damaging sectors, sector heights and runtime things, but the full conversion path is still being refined. That puts DoomGeo-AES in a useful middle ground: advanced enough to play with, but still clearly in development.

The missing piece: sound

The largest obvious absence is audio. Neo Geo sound is its own subsystem, driven by the Z80 and Yamaha YM2610, and DoomGeo-AES does not yet implement sound effects or music conversion. For a DOOM-style experience, that is not a small detail. Weapons, doors, enemy alerts and ambient pressure are all part of how the original game communicates danger and rhythm.

Still, the lack of sound does not weaken the technical achievement. It marks the next major engineering problem. Rendering a first-person world on a sprite-first console is one challenge. Making the sound hardware behave like a DOOM machine is another, with its own data formats, memory limits and timing concerns.

The largest obvious absence is audio. Neo Geo sound is its own subsystem, driven by the Z80 and Yamaha YM2610, and DoomGeo-AES does not yet implement sound effects or music conversion. For a DOOM-style experience, that is not a small detail. Weapons, doors, enemy alerts and ambient pressure are all part of how the original game communicates danger and rhythm.

Still, the lack of sound does not weaken the technical achievement. It marks the next major engineering problem. Rendering a first-person world on a sprite-first console is one challenge. Making the sound hardware behave like a DOOM machine is another, with its own data formats, memory limits and timing concerns.

Why the DOOM Neo Geo port matters

The homebrew scene is full of ports, but DoomGeo-AES is more valuable than a simple proof that an old machine can run a famous game. It demonstrates a practical method for adapting a software idea to a hostile architecture. The project does not brute-force the Neo Geo into acting like a PC. It changes the job so the hardware can participate.

That is why the technique is worth attention from programmers as well as retro players. It shows how constraints can lead to a different rendering model, not just lower resolution or fewer features. The Neo Geo’s sprite scaling becomes the backbone of a first-person view. The fixed text layer becomes useful for menus and minimap display. Cartridge-era assumptions about pre-baked graphics become part of the pipeline.

Not PC DOOM, and better for it

The most important thing is to judge DoomGeo-AES by the right standard. It is not trying to replace the PC original. It is not a commercial-quality 1990s release suddenly unearthed. It is a homebrew engineering project with visible compromises, open questions and a roadmap still in motion.

That makes it more interesting. The 80-column renderer, the compact map, the reliance on converted assets and the absence of audio are not failures. They are evidence of an honest negotiation with the machine. The project is strongest when viewed as a Neo Geo answer to DOOM rather than a miniature copy of the PC game.

What comes next

The path forward is clear. Better map conversion, stronger performance tuning, more robust rendering experiments and a real audio pipeline would push DoomGeo-AES from impressive prototype towards a more complete homebrew release. A browser-playable package lowers the barrier for curious players, while local builds remain aimed at developers and enthusiasts comfortable with toolchains, BIOS requirements and WAD handling.

DoomGeo-AES may never become a perfect DOOM port, and that is fine. Its value lies in the engineering argument it has already made. The Neo Geo cannot offer DOOM the framebuffer it wants, so the project gives it something else: a way to build a first-person scene from scaled sprites, compact data and careful compromises.

For a platform famous for 2D excess, that is a notable shift. DOOM on Neo Geo AES is no longer just a contradiction. It is now a working technical conversation between two very different design philosophies, and one of the most intriguing homebrew developments in retro computing this year.

Spread the love
error: