Why a Neo Geo port of Doom is functionally impossible

I just saw this one yesterday! Fascinating! I know someone's going to pick up that gauntlet, but in the mean time... It DOES run Tetris! Neotris, they call it. I suspect a port of Doom would probably require a custom coded engine from scratch, and sacrificing a number of graphical features to just get the level design, monsters, and game mechanics working to best approximation. I'd love to see it, and I'm sure it'd be called "NeoDoom".
 
Upvote
15 (15 / 0)

jandrese

Ars Legatus Legionis
13,994
Subscriptor++
I'm guessing they designed the system that way so there would never be bus contention for the sprite data, but it does make the system maybe overspecialized. I'm guessing that chip must have required a lot of development effort which kind of explains the high price point, although it doesn't explain how Sega made the Genesis affordable even though it has the same CPUs and roughly the same amount of memory and came out a year earlier.
 
Last edited:
Upvote
10 (10 / 0)

Resistance

Wise, Aged Ars Veteran
641
I just saw this one yesterday! Fascinating! I know someone's going to pick up that gauntlet, but in the mean time... It DOES run Tetris! Neotris, they call it. I suspect a port of Doom would probably require a custom coded engine from scratch, and sacrificing a number of graphical features to just get the level design, monsters, and game mechanics working to best approximation. I'd love to see it, and I'm sure it'd be called "NeoDoom".
Dimitris knew exactly what he was doing when he made that video. The bait will surely be taken by multiple people. Will those people succeed? Only time will tell.
 
Upvote
17 (17 / 0)

Person_Man

Ars Tribunus Militum
1,536
Subscriptor
Quite interesting considering at the time it seemed to be the closest to arcade graphics for a home console and had the insane price take.
That said, I'm going to say it "It's impossible to make a Doom port on the NeoGeo"
There, now someone will do to prove me wrong. I'm looking forward to it.
 
Upvote
9 (9 / 0)

Stern

Ars Praefectus
4,059
Subscriptor++
It was something of a revelation reading Fabien Sanglard's The Book of CP-System, which covers Capcom's CPS-1 arcade board, and realizing it had nothing like the VRAM used for sprites and background tiles found in home consoles of the day (the CPS-1 and NeoGeo are very similar in this regard). It helped explain both how these machines could sling around such massive amounts of pixels with relatively weak hardware, and why some graphical effects were implemented the way they were.

Even something as simple as black-and-white wireframe 3D graphics would be very challenging to implement, because all graphics have to be pre-drawn and stored in the ROM chips. I think there's some NeoGeo demo that uses 4x4 chunky "pixel" tiles to simulate a bitmap, but that's not feasible at full resolution.
 
Upvote
20 (20 / 0)
I saw this video go by yesterday. I suppose it's an interesting technical exploration of the hardware, but it also struck me as not particularly surprising that hardware from the era of sprite-based graphics might not be able to run DOOM.

If anything, it's more surprising to me how much hardware from the era has received working ports. DOOM goes pretty well beyond the scope of what any hardware from that era was necessarily designed to run.

Perhaps more surprising if you're only used to modern graphics hardware where everything is rendered to a CPU-accessible framebuffer and then sent to the display?
 
Upvote
4 (4 / 0)

marsilies

Ars Legatus Legionis
24,523
Subscriptor++
I'm guessing they designed the system that way so there would never be bus contention for the sprite data, but it does make the system maybe overspecialized. I'm guessing that chip must have required a lot of development effort which kind of explains the high price point, although it doesn't explain how Sega made the Genesis affordable even though it has the same CPU and roughly the same amount of memory and came out a year earlier.
The Neo Geo was basically SNK's arcade system board (Multi Video System; MVS) packed into a home console shell. The star feature wasn't the CPU or the RAM, but the custom video chipset that allows the system to draw sprites in vertical strips of tiles (blocks of 16x16 pixels) that can be 32 tiles tall (total of 512 pixels); it can draw up to 380 sprites on the screen at a time, with the limitation of 96 sprites per scanline. Each tile can be assigned a palette, which defines 15 colors (+ transparency). Allowing up to 256 palettes at the same time, the system can display 3840 colors simultaneously.

Compare that to the Mega Drive Genesis, which could display 80 sprites on screen, 20 sprites per scanline, 16 colors per sprite.

So the Neo Geo was a 2D gaming sprite behemoth, literally on par with what was in arcades at the time, but that specialization means it's crap at doing anything but 2D sprite-based gaming.

https://en.wikipedia.org/wiki/Neo_Geo
https://segaretro.org/Sega_Mega_Drive/Technical_specifications#Graphics
 
Upvote
54 (54 / 0)

ddean

Wise, Aged Ars Veteran
134
I just saw this one yesterday! Fascinating! I know someone's going to pick up that gauntlet, but in the mean time... It DOES run Tetris! Neotris, they call it. I suspect a port of Doom would probably require a custom coded engine from scratch, and sacrificing a number of graphical features to just get the level design, monsters, and game mechanics working to best approximation. I'd love to see it, and I'm sure it'd be called "NeoDoom".
Same! I just watched this MVG video last night. Very interesting breakdown on why a Doom port is so challenging, though I have a feeling that with enough determination someone will get a version working.
 
Upvote
1 (1 / 0)

Aelix

Ars Scholae Palatinae
1,018
Subscriptor
Someone will get this running. You could use an approach like video-to-ascii generators, instead of writing to a bitmap you find a tile in the sprite map that closest resembles the area of the screen you want to render if you squint hard enough and assign the right palette. You would need an enormous sprite map, and it won't look great, and it would be dog slow. The enemies and items could be rendered as the sprites they already are. For an existing example see the Bad Apple demo which is black/white.
 
Last edited:
Upvote
0 (0 / 0)
Unfortunately for potential Doom porters, the Neo Geo also lacks the kind of bitmap graphics mode that helps get around these sprite-based limitations. The system doesn’t have any frame buffers or Amiga-style bitplanes that would allow for unrestricted drawing of pixels to any part of the screen. That means even an entirely software-based Doom renderer on the Neo Geo would have no direct way to draw its results to the screen.

Haven't watched the video so I don't know how much of this is taken directly from it or just Kyle's interpretation, but that's not entirely correct. To perform a software rendering of a 3D game on 2D hardware, you don't necessarily need direct access to a frame buffer. You can also "cheat" by filling the screen with unique tiles, then modifiy the VRAM data of those individual tiles. I know the SNES version of Wolfenstein 3D did this, and I assume many other console ports of id games also did.

The deal breaker with the Neo-Geo is that its tiles don't exist in VRAM, they are read directly from a dedicated ROM bank of tile data. This is how arcade hardware typically works. The Neo-Geo actually has five different banks of RAM: the main CPU program, the sound CPU program, two distinct sets of graphics data (sprite and fix layer), and the digital sound samples. Neo-Geo carts are massive with two lines of PCB contacts because there's so many addressing lanes to connect the five ROM banks to their corresponding internal hardware.

OTOH, consoles typically have only a single ROM bank mapped to the CPU, and it is the CPU's job to then fill the VRAM with tile data.

A notable exception to that console rule above is the Famicom/NES hardware, which actually has a dedicated ROM bank of tile data wired directly to the PPU (most NES "ROMs" are actually two ROMs, as in there are two isolated ROM chips in the cart). With that said, some games actually replace that ROM with a RAM chip, and therefore put the onus on the CPU to fill up that memory via a direct communication with the PPU, just like most other consoles would. Note that this still wouldn't be possible on a theoretical Neo-Geo cartridge that replaces its graphics ROM with RAM, because its CPU and PPU are completely isolated from each other.
 
Last edited:
Upvote
14 (14 / 0)

gommer

Ars Scholae Palatinae
1,184
There is no minimum frame rate requirement for playing Doom on something. Which means that renderer should solve the problem if they can past the hang up that it has to run at more then 1 FPS.
Yes, in order for anyone to say "Hey I made the NEO GEO run Doom!" everyone will say "show me" and...well. They want to see something playable.
 
Upvote
0 (1 / -1)

randomuser42

Ars Tribunus Militum
1,864
Subscriptor++
There is no minimum frame rate requirement for playing Doom on something. Which means that renderer should solve the problem if they can past the hang up that it has to run at more then 1 FPS.
Given that the cells aren't actually executing game code I'd say any clunky neo geo attempt is even more legitimate than that!
 
Upvote
4 (4 / 0)

LesMilpool____

Ars Scholae Palatinae
889
Subscriptor++
Some time ago, I looked into how certain Neo-Geo games did rendering, and I found the whole thing surprising. Metal Slug in particular doesn't seem to render sprites in a way you expect - with layers upon layers, like the SNES does. Basically speaking, everything is a vertical strip and just a cursory examination made me wonder how the brilliant minds that brought the world MS didn't rip their hair out by the roots.

It reminded me of how the MSX dealt with 16x16 sprites (you'd define them as an 8x32 sprite), just on a much more massive level.
 
Upvote
2 (2 / 0)

Topevoli

Ars Scholae Palatinae
673
First rule of having a Doom gauntlet. You MUST throw it down and create a new Doom clone.

I also thought the headline said "Why a Nat Geo port of Doom is functionally impossible " and my first thought was. "Huh, they got it running within other streaming apps?", which still feels like its not a totally outrageous thought.
 
Upvote
8 (8 / 0)
First rule of having a Doom gauntlet. You MUST throw it down and create a new Doom clone.

I also thought the headline said "Why a Nat Geo port of Doom is functionally impossible " and my first thought was. "Huh, they got it running within other streaming apps?", which still feels like its not a totally outrageous thought.
That'd be Disney+. A Nat Geo port of doom would be a magazine with each page being a holograph, and depending on where you stick your finger down the side as you flip through, you take different routes.
 
Upvote
0 (0 / 0)

marsilies

Ars Legatus Legionis
24,523
Subscriptor++
First rule of having a Doom gauntlet. You MUST throw it down and create a new Doom clone.

I also thought the headline said "Why a Nat Geo port of Doom is functionally impossible " and my first thought was. "Huh, they got it running within other streaming apps?", which still feels like its not a totally outrageous thought.
Someone got it running on Discord via a GIF:


View: https://www.youtube.com/watch?v=ZFV76-qJhM4


https://hackaday.com/2025/09/28/playing-doom-in-discord-with-a-special-image-url/
 
Upvote
2 (2 / 0)

marsilies

Ars Legatus Legionis
24,523
Subscriptor++
Am I the only one imagining Doom reimagined for the Neo Geo? Like Doom: King of Fighters?

You navigate through a Wolf3D-style map, and every time you stumble upon a mob, perspective shifts to a vs fighter, complete with FINISH HIM! and unique finishing moves?
There's ISOWulf, which reimagines Wolfenstein 3D as an isometric game:


View: https://www.youtube.com/watch?v=S59w7Qeu9D4


https://www.moddb.com/mods/isowulf

There's also a fan "demake" called 2Doom that reimagines Doom as a 2D platformer:
https://2doom.itch.io/game
 
Upvote
4 (4 / 0)

j00ce

Ars Scholae Palatinae
1,075
Someone will get this running. You could use an approach like video-to-ascii generators, instead of writing to a bitmap you find a tile in the sprite map that closest resembles the area of the screen you want to render if you squint hard enough and assign the right palette. You would need an enormous sprite map, and it won't look great, and it would be dog slow. The enemies and items could be rendered as the sprites they already are. For an existing example see the Bad Apple demo which is black/white.
There's a series on YT about how various tricks were pulled off on retro-gaming hardware, and these touch on "3D" games such as Phantasy Star 1 on the Master System.

View: https://youtu.be/Fa7q1JlQjNk?t=283&si=HPLKS3I5rh6LH-OT


The answer is that the games aren't actually 3d; they're just using "animated" tiles which are being swapped out as needed to create the illusion.

As you've noted, this is a relatively slow process, and it doesn't scale particularly well with increasing detail levels, or for things like open spaces. And there's also the issue of how to handle actual 3d elements, such as partially obscured sprites, etc.

The only feasible solution I can see for "realtime" Doom would be to shoehorn something like a RPi into a Neo Geo game case, and to have that first rendering the frame, and then to breaking it down into tiles which can be passed to the video chip in realtime.

Or somesuch ;)
 
Upvote
0 (0 / 0)
This kind of architecture wasn't uncommon for the day. Even the NES was built entirely around tile rendering, and didn't have anything like a framebuffer, making it achingly hard to display full-screen bitmaps. (The background layer only had 8 bits for the tile ID, so you could only have 256 different tiles, but wasn't enough to cover the entire screen without duplication. So the only way to do it was to rewrite the tile data pointer to point at a different tileset on-the-fly at specific scanlines on the screen, but AFAICT the stock hardware doesn't have any efficient way to do this. Why yes, that is a problem I am currently struggling with.)
 
Upvote
1 (1 / 0)
Someone will get this running. You could use an approach like video-to-ascii generators, instead of writing to a bitmap you find a tile in the sprite map that closest resembles the area of the screen you want to render if you squint hard enough and assign the right palette. You would need an enormous sprite map, and it won't look great, and it would be dog slow. The enemies and items could be rendered as the sprites they already are. For an existing example see the Bad Apple demo which is black/white.
Those Japanese fans make some of the weirdest and most wonderful things. A styled music video like that must have taken a LOT of work to make all for a "proof of concept" Neo Geo demo, not that I have the slightest clue what they're saying.
 
Upvote
0 (0 / 0)
There's a series on YT about how various tricks were pulled off on retro-gaming hardware, and these touch on "3D" games such as Phantasy Star 1 on the Master System.

View: https://youtu.be/Fa7q1JlQjNk?t=283&si=HPLKS3I5rh6LH-OT


The answer is that the games aren't actually 3d; they're just using "animated" tiles which are being swapped out as needed to create the illusion.

As you've noted, this is a relatively slow process, and it doesn't scale particularly well with increasing detail levels, or for things like open spaces. And there's also the issue of how to handle actual 3d elements, such as partially obscured sprites, etc.

The only feasible solution I can see for "realtime" Doom would be to shoehorn something like a RPi into a Neo Geo game case, and to have that first rendering the frame, and then to breaking it down into tiles which can be passed to the video chip in realtime.

Or somesuch ;)

Watch the video and you'll see why that won't work. Simply put, on the Neo Geo, cartridges have no direct access to the frame buffer.
 
Upvote
1 (1 / 0)
Upvote
3 (3 / 0)

ferdnyc

Smack-Fu Master, in training
81
I just saw this one yesterday! Fascinating! I know someone's going to pick up that gauntlet, but in the mean time... It DOES run Tetris! Neotris, they call it.
Tetris would be CRAZY easy to implement in their sprite-based architecture, though. There are only 6 sprites and they never even change size, just rotate. It's ideally suited to Tetris in exactly the way it isn't, to Doom. (Something like an isometric-perspective pinball game would also be a bear, whereas a top-down pinball would be child's play.)
 
Upvote
3 (3 / 0)
If an A500* can be persuaded to do this...


View: https://www.youtube.com/watch?v=kRFaX3HJtHk

... then I'm sure a NeoGeo also can, somehow, it's just a case of finding the right people to do it (I'm sure that's what MVG's video was really about).

* Not running a stock CPU but it might as well be, it's running a 7MHz 68010 instead of 7MHz 68000. The performance increase is negligible.
 
Upvote
0 (0 / 0)
I'm guessing they designed the system that way so there would never be bus contention for the sprite data, but it does make the system maybe overspecialized. I'm guessing that chip must have required a lot of development effort which kind of explains the high price point, although it doesn't explain how Sega made the Genesis affordable even though it has the same CPUs and roughly the same amount of memory and came out a year earlier.
The Neo Geo was meant to be a general use and very powerful (for it's time) arcade machine. The home console was unique at the time because it was literally the arcade hardware with no compromises. The plus is every single Neo Geo arcade game was basically instantly available on the home console, with only minor changes since there's not exactly an insert coin function. The memory card feature even let you just share high scores and such between home and arcade versions.

It was THE 2D powerhouse. Incredibly expensive, but easily far more capable than any of it's competition (Turbografx, Jaguar, SNES, and Genesis). PCs were just surpassing home consoles in gaming specific hardware capability, but even then at the time the Neo Geo came out, the thing was even giving contemporary PCs a run for their money. But, it was built for 2D to such exclusion that... well if you saw the video you'd see. This is unlike the Saturn, where that project started as a 2D powerhouse, before realizing they REALLY needed the 3D edge or the console wasn't going to compete, and it ends up being a bit of an overengineered device with specialized chips for different styles of game.

I wouldn't call the Neo Geo overspecialized. I mean, it literally is in one sense, but considering when it came out, 3D just wasn't a major concern. For what it was made to do, it did it exceedingly well.

But, I can't say I'm the biggest fan of it's handheld controller. It's joystick is great, but the handheld one tries to have it both ways with a kind of "joystick" control in place of a d-pad. Of course, Nintendo still held the patent on d-pads at the time, so if they were going to come up with something else, this made the most sense, but all the same I know my preference if it's not going to be analog.
 
Upvote
3 (3 / 0)
Tetris would be CRAZY easy to implement in their sprite-based architecture, though. There are only 6 sprites and they never even change size, just rotate. It's ideally suited to Tetris in exactly the way it isn't, to Doom. (Something like an isometric-perspective pinball game would also be a bear, whereas a top-down pinball would be child's play.)
Not "would be", "was"! They already did that port, and of course you're completely right! Doom ports on old hardware like this are generally more impressive than Tetris ports because of the added difficulty. For something comparable, there's running Tetris on a building's lighting system, turning windows effectively into "blocks" without the need for a display.

The way these things usually go on the older hardware is someone cranks out a Tetris port, and then, others raise the stakes, eventually leading to Doom. Well, I mean in the case of the Atari 2600, even Tetris was incredibly technically challenging. I think there's ONE project, that's been very slow going, to bring some SEMBLANCE of Doom onto the thing. I wish them luck, because ANY form of that would be incredible. I will confess I consider stuffing a raspberri Pi onto a cart and just running the game off that and sending the output to frame buffer... isn't all that impressive to me. One can quibble about how systems like the NES were using expansion chips all they like and it still isn't impressive. It's like watching a magic trick on TV only to find out they literally just used typical movie magic tricks to do it instead of actual slight of hand.
 
Upvote
1 (1 / 0)

Stern

Ars Praefectus
4,059
Subscriptor++
Those Japanese fans make some of the weirdest and most wonderful things. A styled music video like that must have taken a LOT of work to make all for a "proof of concept" Neo Geo demo, not that I have the slightest clue what they're saying.
On a high level, that is easy. Divide each video frame into tiles. Add every unique tile to a global tilemap, and store the tile layout for that frame. The difficulty is in selecting the best shapes and locations for the tiles, as naively dividing each frame into e.g. 8x8- or 16x16-pixel blocks would probably exceed your ROM budget pretty quickly.
 
Upvote
0 (0 / 0)