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:
http://www.youtube.com/watch?v=QsH-XqqrUYs
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.
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.
Quote:
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.
Impressive I say.
There's also the GBC Wolfenstein cartridge, which is cool, but (a good) kind of a cheating
Teaching old dogs new tricks.
Don't miss out KK/Altair's forthcoming Doom clone for the Amiga 16 bit line. :)
https://youtube.com/c/KKAltair
https://youtube.com/c/KKAltair
Oh yeah, I've been looking forward to that for years :)
Thanks dvibe for the link! I've been bingewatching all episodes today
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.
Quote:
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.
This.
True. Perhaps he'll make a video more in-depth later. Maybe he's an account here btw. :)
Strange grammar I used there, but you'll get the idea :P
https://twitter.com/KK_DMA/status/1168259655358980096
Dread Ep. 8 video is up. Watch Ep 1-7 first if you haven't already. :)
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.
I think I said it in another thread on some forum, but Dread is some kind of dark magic. Need exorcist for debug!
Not 16-bit but related content:
App:
https://www.naalaa.com/index.html
Tutorial:
https://www.youtube.com/watch?v=i5UgH_eB2jE
--other tutorials--
https://www.youtube.com/watch?v=eOCQfxRQ2pY
https://www.youtube.com/watch?v=xW8skO7MFYw
https://www.youtube.com/watch?v=Vij_obgv9h4
Plenty more on youtube.
https://www.youtube.com/results?search_query=Ray+Casting+Tutorial
App:
https://www.naalaa.com/index.html
Tutorial:
https://www.youtube.com/watch?v=i5UgH_eB2jE
--other tutorials--
https://www.youtube.com/watch?v=eOCQfxRQ2pY
https://www.youtube.com/watch?v=xW8skO7MFYw
https://www.youtube.com/watch?v=Vij_obgv9h4
Plenty more on youtube.
https://www.youtube.com/results?search_query=Ray+Casting+Tutorial
There's a new port of Wolfenstein 3D for Amiga's with at least 68020, some fastram and AGA chipset.
https://www.indieretronews.com/2022/02/wolfenstein-3d-classic-ms-dos-fps-as.html?fbclid=IwAR0Ml__-Ntj8BsHsfL_8i6yVrAQE-WHocZTc8sNs3NY5lWKxtuOtxMZQvk8#more
I made a little test with my 68030/50mhz which is very smooth. Faster processor would probably be overkill.
A little demo I made (I'm a lousy gamer though):
https://www.youtube.com/watch?v=Y9r8pI5hetc
https://www.indieretronews.com/2022/02/wolfenstein-3d-classic-ms-dos-fps-as.html?fbclid=IwAR0Ml__-Ntj8BsHsfL_8i6yVrAQE-WHocZTc8sNs3NY5lWKxtuOtxMZQvk8#more
I made a little test with my 68030/50mhz which is very smooth. Faster processor would probably be overkill.
A little demo I made (I'm a lousy gamer though):
https://www.youtube.com/watch?v=Y9r8pI5hetc
Sorry, better link to the news page:
https://www.indieretronews.com/2022/02/wolfenstein-3d-classic-ms-dos-fps-as.html
https://www.indieretronews.com/2022/02/wolfenstein-3d-classic-ms-dos-fps-as.html
Lets not forget the amazing Dread on the Amiga OCS + Atari ST by KK/Altair <3
Quote:
Lets not forget the amazing Dread on the Amiga OCS + Atari ST by KK/Altair <3
Don't worry. It's not forgotten :)