DOOM/Wolfenstein for 8-bit/16-bit comps?

category: offtopic [glöplog]
Not quite raycasting, but I remember this from my very very early computer days (should have been 1982 or 1983). Minotaur, on the Acorn Atom:

BB Image

BB Image
added on the 2013-04-26 08:46:08 by Jcl Jcl
added on the 2013-04-26 16:33:08 by skarab skarab
Seems nobody mentioned this, so I'll add a bit more info on the Genesis and SNES raycasters. One major limitation of these platform, besides limited CPU power, is VRAM accessibility. It could be only accessed during the vblank, and it is possible to send only about 5-6K of data per frame into the VRAM. So no matter what, these games can't run faster than this. To solve both problems, with CPU and VRAM throughput, the games utilized various tricks.

An obvious one is in the Zero Tolerance, which simply has very small window. It also has half resolution by X, i.e. pixels are 2x1, but as it pulls out some kind of dithering, simulating brightness levels (fog) in just 16 colors layer, it isn't very noticeable. Also, it updates the video memory by halves, left/right parts of the window in turns. Other interesting features of the game is 45 degree walls (as seen from above), and weird doors rendering, they aren't match the perspective when seen close.

Toy Story and Bloodshot both use the same trick with mirroring top part of the window to bottom. I.e. only half of the screen is actually rendered, the other is the same thing, but mirrored in hardware (flipped tiles). Bloodshot uses different palettes for two parts, adding subtle differences to mask of the all-mirrored wall graphics (the skull on the door at the start, as example). It is probably the most high-res 16-bit console 3D action, it has full pixel resolution, other than mirroring. Sure it is slow. Interestingly, it renders sprites using hardware sprites, they construct another rendering layer that is not mirrored. So it has 32 colors rather than 16 as Zero Tolerance does. Another interesting thing to mention is that it also has 45 degree walls, and the doors has thinkness, so it may use kind of limited sector engine rather than just squares as Wolf3D did.

Wolfentstein 3D and Super Noah's Arc on the SNES use the exact same engine. It renders in 256 colors on plain SNES CPU at 15 FPS, using no extra chips, but the actual resolution is 112x80, it is zoomed using Mode7 hardware scaling. Doom on the SNES uses extra powerful CPU (SuperFX), but also uses low resolution rendering, lacks floor/ceiling textures, and still runs really slow.

There is another raycaster for NES that wasn't mentioned in this thread - http://membler-industries.com/tokumaru/tokumaru_raycaster_01.nes http://www.youtube.com/watch?v=po69zgqyFWM. It has 1-bit textures and lacks sprites. Runs pretty fast, but horizontal resolution is just 32 pixels. NES has more serious hardware limitations that 16 bit consoles, it is possible to send only a few hundred bytes into the VRAM per frame there. So this is quite an achievement, although it does not look as good as many other 8-bit raycasters.
added on the 2013-04-26 17:45:12 by Shiru Shiru
There is another raycaster for NES that wasn't mentioned in this thread

Two if you count the one I wrote a few years earlier ;)
Although mine suffered from fish-eye and didn't have textures, so tokumaru's is much better.
added on the 2013-04-26 18:41:05 by mic mic

Delsgolf, my Doom Clone for the Ti-89.
added on the 2021-07-03 23:07:50 by rwill rwill
Impressive I say.
added on the 2021-07-05 09:36:44 by Emod Emod
There's also the GBC Wolfenstein cartridge, which is cool, but (a good) kind of a cheating
added on the 2021-07-06 19:25:40 by raer raer
Teaching old dogs new tricks.
added on the 2021-07-07 09:46:31 by El Topo El Topo
Don't miss out KK/Altair's forthcoming Doom clone for the Amiga 16 bit line. :)
added on the 2021-07-14 22:01:49 by d vibe d vibe
Oh yeah, I've been looking forward to that for years :)
added on the 2021-07-15 12:10:21 by El Topo El Topo
Thanks dvibe for the link! I've been bingewatching all episodes today
added on the 2021-07-15 16:35:03 by v3nom v3nom
Too bad he doesn't have an episode dealing with the more technical internals of his engine, it would be interesting to hear about how he goes about drawing the textured spans/c2p techniques etc.
added on the 2021-07-16 12:52:05 by Sdw Sdw
Too bad he doesn't have an episode dealing with the more technical internals of his engine, it would be interesting to hear about how he goes about drawing the textured spans/c2p techniques etc.

added on the 2021-07-16 19:42:17 by raer raer
True. Perhaps he'll make a video more in-depth later. Maybe he's an account here btw. :)
added on the 2021-07-16 22:38:31 by d vibe d vibe
Strange grammar I used there, but you'll get the idea :P
added on the 2021-07-16 22:39:19 by d vibe d vibe
added on the 2021-07-17 16:36:50 by DanLemon DanLemon
Dread Ep. 8 video is up. Watch Ep 1-7 first if you haven't already. :)
added on the 2021-07-24 04:43:06 by phoenix phoenix
By the way, for some of the Sega Megadrive games that were mentionned earlier in this thread, the developer has a youtube channel named "coding secrets" where they give some details about how things are done
Dread Ep. 9 video is up. Some big news items in this one! And you'll get to see it running on both a real Amiga 500 and 1200.
added on the 2021-09-05 20:03:02 by phoenix phoenix
I think I said it in another thread on some forum, but Dread is some kind of dark magic. Need exorcist for debug!
added on the 2021-09-06 13:41:57 by rloaderro rloaderro