In a remarkable demonstration of reverse engineering prowess and software optimization, the acclaimed coding wizard known as FrenkelS has successfully ported his custom Doom64KB engine to the venerable Neo Geo console, showcasing two fully operational levels within an emulator environment. This significant technical achievement includes the iconic E1M1 (Hangar) and E1M8 (Phobos Anomaly) from the original Doom, complete with texture-mapped walls and the verticality intrinsic to id Software’s groundbreaking engine. The development not only pushes the perceived technical boundaries of SNK’s 2D powerhouse but also reignites discussions within the retro-gaming community regarding the true capabilities of classic hardware when subjected to innovative software design.

The Neo Geo’s Technical Landscape: A 2D Powerhouse

To fully appreciate the magnitude of FrenkelS’s accomplishment, it is crucial to understand the technical specifications and design philosophy of the Neo Geo. Launched by SNK in 1990, the Neo Geo Multi Video System (MVS) and Advanced Entertainment System (AES) were revolutionary for their time, essentially bringing arcade-perfect gaming experiences into homes. At its core, the Neo Geo was built around a Motorola 68000 CPU running at 12 MHz, supplemented by a Zilog Z80 at 4 MHz for sound processing. Its true strength, however, lay in its custom graphics chips, designed for sprite manipulation and parallax scrolling, capable of displaying hundreds of colors on screen simultaneously with large, detailed sprites. The system boasted impressive capabilities for 2D graphics, allowing for fluid animation and intricate backgrounds, which became the hallmark of its celebrated library of fighting games like Fatal Fury and King of Fighters, and run ‘n’ guns such as Metal Slug.

However, the Neo Geo was emphatically not designed for 3D graphics. It lacked dedicated hardware for polygon rendering, texture mapping, or Z-buffering, features that would become standard in the next generation of consoles like the PlayStation and Nintendo 64. Any 3D effects would have to be painstakingly rendered in software by the 68000 CPU, a task it was not optimized for and which would place immense strain on its limited processing power. Memory was also a constraint, with 64 KB of main RAM, 68 KB of video RAM, and 2 KB of Z80 RAM. These limitations contributed to the widespread belief that complex 3D titles like Doom, with its pseudo-3D engine and textured environments, were simply beyond the Neo Geo’s capabilities.

Doom’s Revolutionary Engine and Its Demands

Released by id Software in 1993, Doom redefined the first-person shooter genre and set new benchmarks for graphical immersion. Its engine, known as id Tech 1, created a convincing illusion of a 3D environment using a combination of techniques. Levels were constructed from 2D sectors and lines, which were then projected onto a 3D plane. Key to its realism were textured walls, animated sprites for enemies and items, and crucially, the introduction of verticality—varying floor and ceiling heights, stairs, and platforms—which added a new dimension to level design beyond the flat planes of its predecessor, Wolfenstein 3D.

The id Tech 1 engine relied heavily on binary space partitioning (BSP) trees for efficient rendering, allowing the game to quickly determine which parts of the level were visible to the player. While not true 3D polygon rendering in the modern sense, the engine’s ability to handle complex level geometry, dynamically scale sprites, and apply textures required significant processing power and memory for its time. Porting such an engine to hardware like the Neo Geo, which lacked native texture mapping capabilities and had a relatively slower CPU compared to the PCs Doom was designed for, presented an "impossible" challenge in the eyes of many. Every pixel of every texture, every wall segment, and every enemy sprite would need to be calculated and drawn by the CPU, potentially overwhelming the system’s resources and leading to unplayable frame rates.

Doom64KB Ported to Neo Geo with Two Working Levels - RetroRGB

The "Impossible Port" Debate: MVG’s Influence

The long-standing debate over whether the Neo Geo could "run Doom" gained significant traction following a detailed analysis by Modern Vintage Gamer (MVG), a prominent figure in the retro-gaming and technical analysis community. In a widely viewed video, MVG meticulously broke down the technical reasons why a faithful port of Doom to the Neo Geo would be exceedingly difficult, if not impossible, given the console’s hardware architecture. His arguments centered on the lack of hardware texture mapping, the limited CPU performance for software rendering the complex Doom environments, and the constrained memory available for storing level data and graphical assets.

MVG’s analysis, while grounded in factual technical limitations, inadvertently served as a catalyst for renewed interest and challenge within the homebrew and retro-modding communities. It underscored the conventional wisdom that the Neo Geo’s strengths lay squarely in 2D, and that attempting to force a true Doom experience onto it would result in severe compromises, such as heavily simplified graphics, low resolutions, or an unacceptably low frame rate. Following MVG’s video, several "raycast based" versions of Doom-like engines emerged for the Neo Geo, demonstrating that a pseudo-3D effect was indeed possible. However, these often deviated significantly from the original Doom experience, typically lacking true texture mapping, complex level geometry, or verticality, instead relying on simpler rendering techniques reminiscent of earlier 3D experiments. It is against this backdrop that FrenkelS’s achievement stands out.

FrenkelS and the Ingenuity of Doom64KB

FrenkelS, renowned in the retro-computing circles for his meticulous work on optimizing and porting classic titles like Doom and Wolfenstein 3D to various platforms, has carved out a reputation as a true coding wizard. His deep understanding of these engines and his ability to squeeze performance out of constrained hardware environments are well-documented. The Doom64KB engine itself is a testament to this expertise. Unlike a direct port of id Tech 1, Doom64KB is a highly optimized, custom-built engine designed specifically to run the Doom experience on systems with extremely limited resources, often targeting systems with as little as 64KB of memory, hence its name. This lean design philosophy makes it an ideal candidate for pushing the boundaries of retro consoles.

What distinguishes FrenkelS’s port is its fidelity to the original Doom. As the project’s demonstration shows, it correctly interprets Doom maps and assets, rather than simply creating a similar-looking game. Crucially, it incorporates the verticality that was a hallmark of the Doom engine, allowing for varying floor and ceiling heights, stairs, and multi-level environments—a feature often absent or heavily simplified in other pseudo-3D implementations on underpowered hardware. The texture-mapped walls are another significant triumph, directly addressing one of the primary hardware limitations of the Neo Geo. This suggests that FrenkelS has devised highly efficient software rendering routines that can simulate texture mapping using the Neo Geo’s existing sprite and palette capabilities, or through extremely optimized pixel-by-pixel rendering, without relying on non-existent hardware acceleration.

Overcoming Hardware Hurdles: The Technical Breakdown

Doom64KB Ported to Neo Geo with Two Working Levels - RetroRGB

The successful implementation of texture-mapped walls and verticality on the Neo Geo by FrenkelS represents a significant technical hurdle overcome. While the exact methods employed are detailed in the project’s GitHub repository, several likely techniques contribute to this feat:

  1. Software Rendering Optimization: The 68000 CPU, despite its limitations for 3D, is a capable processor. FrenkelS likely employs highly optimized assembly language routines for rendering, minimizing CPU cycles per pixel. This could involve pre-calculating as much as possible, using lookup tables, and implementing highly efficient drawing algorithms that leverage the 68000’s architecture.
  2. Palette Management and Color Reduction: Doom’s original palette was 256 colors. The Neo Geo also has a rich color palette, but managing how textures are represented within the Neo Geo’s VRAM and palette limitations would be critical. Clever dithering or color quantization might be used to maintain visual fidelity while adhering to the hardware’s constraints.
  3. Resolution and Frame Rate Compromises: To achieve acceptable performance, the game likely runs at a lower internal resolution than the Neo Geo’s maximum output, possibly scaling it up or running it in a windowed mode. The frame rate, while playable, might not match modern standards, but the mere presence of a recognizable Doom engine with these features at a discernible frame rate is the achievement.
  4. Optimized Asset Loading: The Doom64KB engine itself is designed to be lightweight, meaning assets (textures, sprites, map data) are likely highly compressed or optimized for quick loading and access from the limited RAM.
  5. BSP Tree Implementation: The efficient traversal of Doom’s Binary Space Partitioning (BSP) trees for rendering visibility is crucial. FrenkelS’s engine must have a highly optimized BSP renderer that can quickly cull unseen geometry, reducing the amount of data the CPU needs to process for each frame.

The fact that the port is currently demonstrated on an emulator is also noteworthy. While emulators generally provide an accurate representation of hardware, they often run on significantly more powerful host machines. The true test of optimization would be to see the engine run at a comparable performance on actual Neo Geo hardware. Nevertheless, running effectively within an emulator, which strictly adheres to the Neo Geo’s instruction set and timing, is still a profound indicator of the code’s efficiency and correctness.

A Glimpse into the Nether: E1M1 and E1M8

The choice of E1M1 (Hangar) and E1M8 (Phobos Anomaly) for the initial demonstration is strategic. E1M1 is the quintessential introductory Doom level, instantly recognizable and featuring a variety of textures, corridors, and open spaces, making it an excellent benchmark for core rendering capabilities. E1M8, the final level of the first episode, is typically more complex, often featuring larger areas, more intricate architecture, and a climactic boss encounter (though the demonstration focuses on the environment). By successfully rendering these two levels with texture-mapped walls and verticality, FrenkelS has effectively showcased the engine’s ability to handle fundamental Doom level structures and visual elements. These levels demonstrate not just the engine’s ability to draw static environments but also its potential to handle the dynamic interactions expected in a Doom game, even if enemy sprites and gameplay elements are still being integrated or optimized.

The Open-Source Ethos: Availability and Community

In line with the collaborative spirit of the retro-gaming and homebrew communities, FrenkelS has made the Doom64KB project, including the Neo Geo build script, publicly available on GitHub. This open-source approach is vital for several reasons. Firstly, it allows other developers and enthusiasts to inspect the code, understand the techniques used, and potentially contribute to further optimizations or feature additions. Secondly, it provides a tangible resource for anyone interested in learning about low-level programming, reverse engineering, and pushing the boundaries of classic hardware. This accessibility fosters a culture of sharing knowledge and collective advancement, which is a hallmark of the retro-modding scene. The community’s ability to learn from and build upon such projects is a significant part of their long-term impact.

A Legacy of Ports: Doom’s Ubiquity

Doom64KB Ported to Neo Geo with Two Working Levels - RetroRGB

The saga of Doom ports is almost as famous as the game itself. Since its initial release, Doom has been ported to an astonishing array of platforms, becoming a de facto benchmark for system capability. From early console adaptations on the Super Nintendo (notorious for its compromises), Sega 32X, PlayStation, Atari Jaguar, and Nintendo 64, to modern iterations running on everything from smartwatches, calculators, and digital cameras to smart refrigerators and even pregnancy tests, Doom’s ubiquity is unmatched. Each new port, especially to an unexpected or technically challenging platform, represents a triumph of engineering and a testament to the enduring appeal and robustness of id Tech 1’s design. FrenkelS’s Neo Geo port fits perfectly into this rich history, adding another unlikely feather to Doom’s already crowded cap of compatible systems. It highlights the continued fascination with pushing boundaries and the passion of a community dedicated to celebrating and extending the life of classic games and hardware.

Implications for Retro-Gaming and Hardware Enthusiasts

FrenkelS’s successful port of Doom64KB to the Neo Geo carries several significant implications for the retro-gaming and hardware enthusiast communities. Firstly, it challenges preconceived notions about the limitations of vintage hardware. While the Neo Geo was never designed for 3D, this project demonstrates that with sufficient ingenuity, deep technical understanding, and highly optimized code, even seemingly "impossible" tasks can become reality. This could inspire other developers to revisit similar "unfeasible" projects for the Neo Geo or other classic consoles, potentially unlocking new experiences for these systems.

Secondly, it reinforces the value of community-driven development. Projects like Doom64KB on Neo Geo are often born out of passion, curiosity, and a desire to see what’s possible, rather than commercial motivation. The open-source nature further fuels this ecosystem, allowing for collaborative learning and shared progress. This ethos is crucial for preserving and extending the legacy of retro gaming, ensuring that these classic systems continue to be explored and enjoyed in new ways.

Finally, this achievement serves as a potent reminder of the ingenuity inherent in the retro-tech scene. It’s not just about playing old games; it’s about understanding the underlying technology, mastering its nuances, and creatively overcoming its constraints. As the retro-gaming community continues to grow, such technical feats not only entertain but also educate, providing invaluable insights into computer science, game development history, and the art of optimization. While a full, commercially viable Doom port with all enemies, sounds, and full levels might still face substantial challenges in terms of memory, CPU cycles for AI, and sound processing, FrenkelS’s current work firmly establishes the foundational possibility, proving that the Neo Geo, against all odds, can indeed run Doom in a recognizable and respectable fashion.