Log in with to leave a comment.

(1 edit)

I keep coming back to this! It actually reminds me a lot of N64 FPS where a lot of the fun is in understanding the limitations. 

I wish it were slightly easier to discern where the enemies were and I usually give up on finding the last 7 or so. There are also little gaps in the level where enemies can shoot from where I can't see them that are kind of annoying.

Is there any chance of it being multiplayer? My son and I love playing against each other in my NES games and I think this would be great.  Strike that! I just thought about what I was asking for... split-screen 3d multiplayer on NES ^,^! I think that's a little unreasonable but still....would be a lot of fun!

It's a great game honestly! I can't believe it didn't rank higher in the Compo.  Congratulations still and thank you for pulling this off!


Ha ha, yeah, splitscreen multiplayer would be ridiculous.

So anyway the splitscreen multiplayer is jump-in co-op with friendly fire. Press Start on controller 2. 

Originally this response was going to be within a day of your comment, because this project is so ass-backwards, I figured it would take about three hours to implement side-by-side splitscreen. I was wrong. It took five. Literally one night is all I needed to have two independent viewports, because all column-pairs are independently raycast. Even the FOV is maintained... so I guess this NES game is set for anamorphic 16:9. What I've been doing for the last two weeks, instead of delivering that 'ha ha so anyway' punchline, is finding ways the game breaks if it tries counting to two. If you picture Sideshow Bob in that field of rakes, it's basically that, with more swearing.

I spent an entire day reverse-engineering my own view-weapon code so that removing bits from a byte would make bullets disappear when they hit something. Rendering the other player took literally fifteen minutes. There's a reason all programmers are Like That. 

Though if you're playing on PC you'll probably want Mesen to add scanlines after NMI. Single-player performance has been significantly improved. Splitscreen performance needs work. 

I can't believe you did it!!

Ever since the multiplayer update we've had so much fun! It run so much better in single player too.  The power ups are awesome. I figured out the smoke was from where the bullets landed so I try to use those to find the remaining enemies. Enemies can only shoot at you when you're facing them which is neat since you can only turn around so fast. 

At some point we went into edit mode and somehow froze all the enemies and were able to look at them up close and shoot them. Pressing select brought up the code which kind of acted like a map which was interesting. We had some classic fun with hide-and-seek, screen peeking, and betrayal <3

  If you wanted to increase performance you could probably cut out the entrails and I'd personally be fine. Sometimes it's useful to see where an enemy just died but there's already a lot going onscreen.

A cartridge release I think would be great. I already want a full color manual with backstory on the enemy characters. Like who are the big bazooka guys? Or the pink slimes? Do they behave differently? Are they from Mars?

So it actually is possible to make Doom on NES.

It's incredibly impressive!

I've seen other attempts at 3d fps games on a variety of 8-bit systems, but none of them even attempted elevated floors.

The graphics could probably be improved by making it less blocky, but it would take a huge drop in framerate, because of the processing power needed to generate new tiles on the fly.

Anyways, it's an amazing tech demo.


NES games tend to have tiles in ROM, so for better or for worse, combining tiles isn't a speed issue, because it's not an option. The character bank in this release honestly has abundant free space. I just haven't committed to diagonals, or marching squares, or approximate 2x2 mini-tiles or whatever. Consoles like this deserve one and handhelds would absolutely require one. 

Incidentally the Sega Master System would be fantastic for this. Flippable 16-color tiles, horizontal blanking interrupts, much more RAM. Expect cleaner and faster C code when the judging is over.

I think a Master System version with these improvements would be awesome.

Someone made a Wolfenstein 3D clone for Master System, using its hardware advantages for smooth graphics.

I would love to see something similar, but with elevated floors and full 3d movement.

Ooh, very nice. Tyrannosaurus Tex on GBC did a similar thing with the precomputed diagonals, and honestly still looked kinda... lumpy. Oof. This one looks better in screenshots than in motion. Especially on Game Boy. I was already gonna make an SMS Power account to thank whoever mentioned Slaughter in the "off-topic inspiring technical stuff" thread, but I might do some thread necromancy first to nudge Under4MHz toward choosing tiles directly. Axis-aligned walls have predictable diagonals onscreen. (And every wall in Castle Wolfenstein is aligned with the Axis.)

Kind of interesting how this very quickly went from "I can't tell what's going on at all" to "wait, I'm suddenly seeing how the shapes work and how I'm interacting with everything and this is really cool, actually"

It's really neat that you were able to create something like this!


Interesting stuff! Looking forward to see what this evolves into!

Really interesting game concept and execution! Incidentally, how did you set it up to get the NES ROM to play in the itchio browser window? I assume there's a hidden "play in browser only" zip file with the ROM and an index.html that calls a HTML5 NES emulator, right?


Yep, NinjaPad in a ZIP. Several stumbling blocks: you have to set "kind of project" to HTML, or Itch won't show the "this file will be played in the browser" option for ZIP files. The index.html file genuinely has to be in the root of the ZIP file, not in a folder inside the zip file. And just to make things interesting, NinjaPad may not run locally, because of browser security rules... so my test environment was uploading stuff and hoping that it worked. 

Should I be worried how often the least convenient part of retro development is modern websites? GBDK is powerful, cc65 is fast, Open Watcom is flexible, and it once took me three days to send an executable over GMail. I had to rename it because that's not suspicious.


Not much of a game as now (works but gameplay is a bit rough) but impressive on such a low-specced machine. Good luck developing this!