Wolfenstein 3D's clever use of Mode 7 on SNES | White_Pointer Gaming

Поділитися
Вставка
  • Опубліковано 25 лис 2024

КОМЕНТАРІ • 83

  • @WhitePointerGaming
    @WhitePointerGaming  2 роки тому +29

    What do you think of the fact that this port turned out to be instrumental in fast tracking the development of Doom?

    • @miamimagicians
      @miamimagicians Рік тому +2

      SEGA Genesis had Zero Tolerance which you could online multiplayer

    • @fcxs
      @fcxs 9 місяців тому +3

      I was glad to learn this. I should add this information to my Game Engine Black Book.

    • @WhitePointerGaming
      @WhitePointerGaming  8 місяців тому +3

      @@fcxs Your book is fantastic, I hope my shoutout sends a few sales your way :)

    • @BusyMEOW
      @BusyMEOW 8 місяців тому +5

      Pretty cool that limitations of the Snes helped Carmack optimise the PC DOOM engine with it's crazy advanced priority draw segments.
      The Snes port of DOOM was the only console port to have accurate map geography, even if didn't have floor and ceiling textures. It also supported netplay that was never implemented for the Snes outside of Japan.

    • @TS-yz3ud
      @TS-yz3ud 3 місяці тому

      ​@@miamimagiciansReally? It has multiplayer?

  • @melficexd
    @melficexd 8 місяців тому +30

    This trick was also used on the first Jurassic Park game on the 3D sections. The thing is SNES only draws tiles, and this requires raster. The mode7 background has 128x128 tiles available, but if you cover each tile with a single color, you can have "raster" rendering by changing the content of the tiles programatically, something SNES does with ease, so there you have it, 128x128 raster on a tile renderer, then the mode 7 background was scaled to fill the screen and that was it. I think Jurassic Park did a sort of double buffering because it showed an extremely low resolution on the 3D sections, so while one part was displayed, the other could be filled, but in W3D the single buffer is a necessity if you want larger res.

    • @TS-yz3ud
      @TS-yz3ud 3 місяці тому +1

      Wow. That's interesting info. Also, what's ironic is that even with the lower resolution, the framerate is still worse in Jurassic Park. I wonder if it's because of a more advanced rendering style, or worse optimisation.

  • @jeffthecoder
    @jeffthecoder 2 роки тому +36

    I first played Wolf 3D on an IBM 286 I had back when I was a teen. I had to shrink the screen down nearly to it's smallest size to get a playable framerate, and remember specifically thinking "I wish there were an option to simply scale the screen up. Chunky pixels would be better than sitting with my nose nearly touching the screen"..and that's basically what they did with the SNES version haha!
    Now knowing that BSP was used on the SNES version, I also wish there would've been a "BSP update" for the PC version back in the day as it would've really boosted the framerate for the lower end systems of that time.
    Thanks for uploading this, I had searched previously for a video describing the SNES version of Wolf 3d a number of times but never found one until this one.
    "Super Offroad The Baja" and "Speed Racer" are 2 SNES games that used an interesting Mode 7 technique that allowed for hills on the track, and recently a Doom clone called "Dread" was released for the Atari ST and Amiga computers (even lower end than my old 286) that looks great.

    • @WhitePointerGaming
      @WhitePointerGaming  2 роки тому +5

      Interesting insights. I think because the team were already working on Doom at that point, they probably figured it was a better use of their time and resources to implement BSP trees for Doom rather than retool the PC version of Wolfenstein.

    • @renakunisaki
      @renakunisaki 8 днів тому

      I think the PC didn't have any such hardware-accelerated scaling, so scaling up the pixels would still have made it slow. Though, it might have been possible to adjust the monitor to zoom in a bit.

  • @johnellis3383
    @johnellis3383 11 місяців тому +19

    A dev studio tasked with porting Wolf 3d to the Snes gives up and Carmack steps in to do it in 3 weeks. What a legend!

  • @storerestore
    @storerestore Рік тому +11

    Interesting video! I was expecting they'd use mode 7 to scale wall columns or something to that effect, but just scaling up a small frame buffer is a bit of a more mundane use IMO. I guess that's what you get for three weeks at Id software!

  • @Nihilistic-Mystic
    @Nihilistic-Mystic 2 роки тому +10

    Great video! And only 444 subscribers? Wow! Very underrated.

    • @WhitePointerGaming
      @WhitePointerGaming  2 роки тому +5

      Thank you, I appreciate the comment and I'm glad you liked it. Spread the word ;)

  • @Sinn0100
    @Sinn0100 3 місяці тому +3

    I remember being so ticked this didn't get a Genesis release like it was supposed to. For years I would speculate what it would have looked and played like. Thankfully, my prayers were answered when a homebrew version was finally made and man, was it incredible. Not only is the censorship gone but it looks and runs better than the Snes port. I would love to see you cover it and Zero Tolerance for the Genesis.

    • @michaelmartin9022
      @michaelmartin9022 4 дні тому

      I played the crap out of Zero Tolerance! The "rare" Euro version, too. It did some stuff even Doom couldn't, like slopes and enemies that run on the walls and ceilings, even "destructible" walls and "enemies" like fires that are only "killed" by one weapon, namely the fire extinguisher.
      All for the mere cost of a tiny resolution!
      There was another full(er) screen FPS on the Megadrive right near the end of it's life. I remember wanting it, but it was also rare (most shops were selling new games only for the new systems) and we were broke. Then my brother won a Playstation, so we just got Doom.

  • @maxwelseven
    @maxwelseven 2 роки тому +10

    I imagine how better it would be if they used the Jurassic Park technique of using Mode 7 tiles as pixels. Sure it would be smoother. But I still think that Wolf3D is the best 3D shooter on the SNES in terms of framerate, it's close to 15 fps most of the time.
    The smoothest is the Toy Story 3D level, as it runs at 30 fps (which is smoother than the original Genesis version, running at 20 fps, but the levels are larger there). But it's not quite fair to compare it to Wolfenstein 3D, as Toy Story uses mirroring to fill half the screen and there are no enemies.
    Cool video!!!
    Didn't know about the space partitioning thing. This was certainly not used in Jurassic Park, as large levels, even separated by doors, slow down a lot. lol

    • @WhitePointerGaming
      @WhitePointerGaming  2 роки тому +4

      The interiors of Jurassic Park are interesting as they are also using mode 7 but in a different way. It's also drawing everything in the main viewport to the background layer like Wolf3D does. You're right that it doesn't use any space partitioning though... I believe it uses texture mapping and some form of raycasting, which might explain why it runs so poorly and needs to be shrunk into such a small window. The guys at id clearly weren't going to consider that kind of performance acceptable for Wolf3D.

    • @tabsntoot
      @tabsntoot 10 місяців тому

      Doom is the best fps on snes hands down.

  • @MrSamPhoenix
    @MrSamPhoenix 9 місяців тому +3

    This is incredible info on the SNES. I’d love for you to do a video on how the original PlayStation generated 2D games.

    • @michaelmartin9022
      @michaelmartin9022 4 дні тому +1

      I only found out after moving to Japan that the Playstation had a TON of 2D games. In the west 3D was the new thing, and anything 2D would be written off with "BUHH BAD GRAFFIX", so hardly any of them were released.

    • @MrSamPhoenix
      @MrSamPhoenix 4 дні тому

      @ I feel you, and when I was a kid I loved 2D PS1 games. Everything from “The Adventures of Lomax” to the “Street Fighter Alpha” series was pure gold. As a matter of fact, I think the guys who made the “Metal Slug” series got their start with a PlayStation game called “In The Hunt.” 32-Bit 2D games looked incredible back then and still hold up today.

  • @moot6794
    @moot6794 Місяць тому

    Such a smart implementation. Really enjoy your videos, thanks so much!

  • @Quakecon-s9r
    @Quakecon-s9r 10 місяців тому

    What I love about this port are the upgraded looking sprites for the guns and BJs hands, They look much more detailed

  • @Stratelier
    @Stratelier 8 місяців тому +7

    Honestly, "raycasting" can be thought of as a super simplified version of raytracing: it projects one dimension (screen columns) into a logical 2D space almost the same as ray-tracing projects two dimensions (screen pixels) into a logical 3D space.

    • @xeridea
      @xeridea Місяць тому +3

      Raytracing is also calculating multiple light bounces, colors, transparencies, and diffusion. Technically at the core it is a similar idea, but for completely different reasons.

  • @BusyMEOW
    @BusyMEOW 8 місяців тому +4

    It's fun to think that raycasting scanned from left to right in the background all the time to display the player's Point of view, and most old CRT tv's drew lines from top left to right then went down a line to eventually display an image.
    All this stuff was happening in the background and we had no idea

  • @darkfalzx
    @darkfalzx Рік тому +2

    After seeing the amazing modern port of Wolf3D to Sega Megadrive, I now wonder if SNES port could've been any better.

    • @rasmadrak
      @rasmadrak Рік тому +1

      Of course, considering the SNES port was really made in just three weeks, including learning the hardware etc.

    • @johneygd
      @johneygd Рік тому

      @@rasmadrakno waaay,if somebody could learn and do things within 3 weeks (including rebuilding everything from scratch ) ,such person must be a super human.

    • @rasmadrak
      @rasmadrak Рік тому +2

      @@johneygd have you heard about John Carmack? 🤣
      Edit: I stand corrected - I was thinking about Wolfenstein, which was indeed ported to SNES in three weeks. :)

    • @melficexd
      @melficexd 8 місяців тому

      I'm not sure. Wolf3D on megadrive relies on tile rendering, meaning that the game is rendered into tiles, those tiles compose a background tilemap and that background is then displayed directly, maybe with interleaved scanlines, thus saving memory. In this case, the faster system bus and CPU play a decisive role in rendering. Probably for SNES would have been a difficult task such approach without a supporting hardware such as the SFX2 chip, keeping in mind that in Megadrive is more than quad the resolution (320x224 vs 112x96 of the Mode7 tilemap maximum of 128x128)

  • @johnsensebe3153
    @johnsensebe3153 Місяць тому +1

    It's still using raycasting. The difference is the map representation it's raycasting into. And BSP trees are how Doom maps have *always* been represented.

  • @rapappathepepper3996
    @rapappathepepper3996 Рік тому

    Woah, i never thought it used Mode 7, i knew it was chunky and some kind of scaling was going on, but, specifically Mode 7's background scaling i, yeah, that, is, pretty clever.

  • @-TheGameBoys
    @-TheGameBoys 2 роки тому +1

    My tiny brain is learning too much. Great video mate.

  • @adesignersperspective
    @adesignersperspective 9 місяців тому

    this is absolutely fascinating. you've got a new subscriber!

  • @loganjorgensen
    @loganjorgensen 3 місяці тому

    I've had my issues with John Carmack history Eg. SS Doom: and the Bagley Shutdown lol, but some very impressive lateral thinking on the part of Carmack there. It always was apparent to me that 16-bit consoles struggled with FPS games but I never would have guessed that is why SNES Wolf3D was so chunky. Personally I do kind of prefer big pixels over tiny windows.🙂

  • @Sinn0100
    @Sinn0100 6 місяців тому

    This is great! It really is an incredibly well thought out and made video. So, you did Wolfenstein 3D on the Snes... now, let's see how it's possible on a bone stock Genesis! ;)
    Addendum- I recently watched a video of a guy teaching people how to make their own Doom clone. That in itself is cool but do you want to hear the insane part? He builds his levels so that they move around the player. Basically the player doesn't move at all and it looks fantastic. I'm trying to remember what his channel was called but he shows it in all manner of development and the final build all while teaching you how to do it.

  • @jarredkrum9894
    @jarredkrum9894 11 місяців тому

    I still need this for my snes i got doom still. Love me some wolfenstein

  • @DrWakey
    @DrWakey Рік тому +2

    Who knows what John Carmack would have been able to pull if he would have had more time.
    A highres mode? Even some more advantages over the pc version?
    Maybe we will see the romhack scene revisit those ideas.

  • @jasonblalock4429
    @jasonblalock4429 2 роки тому +1

    Hey, just stumbled onto your channel and I like the tone. As a suggestion, if you want another obscure SNES port from PC that's surprisingly advanced, how about the SNES version of Wing Commander? I'm still not sure how they did that, since it seems to be an engine port.
    (If you never played it, it's a lot like SNES Wolf3D: Not a particularly good version, but impressive for even being playable at all.)

    • @WhitePointerGaming
      @WhitePointerGaming  2 роки тому +1

      Thanks for the comment! The SNES definitely had a few games its library that are technical marvels that left you wondering how the heck they did it.

  • @harmony_fm
    @harmony_fm 2 роки тому +1

    Intriguing!

  • @Tigrou7777
    @Tigrou7777 6 місяців тому

    It would be interesting to update the actual Wolf3D game to use BSPs and see how much it helps with performance. Would the game run on even lower specs ? Super Noah's Ark 3D source code is available so it (with code about how to split levels into a BSP tree) shouldn't be a too big task.

  • @volkte37
    @volkte37 Рік тому

    Really great video

  • @axilmar254
    @axilmar254 Місяць тому

    The blocky graphics are not so blocky on a CRT, so this is actually a quite nice version of the game.

  • @johneygd
    @johneygd Рік тому

    Woow so basically everything is done trough software via the cpu including enemies,then rendered output is to a background and then stretched to a bigger size trough mode 7,wooow i didn’t knew this was possible,i tout that nintendo cancled that capability to stream live graphics to mode 7 and then stretch it on the fly,well with that in mind,i wonder if this could be done with fx games,let’s say that if we want to play starfox or doom at full screen,that we just tell the game to send it’s rendered graphics to the mode 7 background and then tell the snes to stretch it up to a bigger size,because that would be really cool😁

    • @WhitePointerGaming
      @WhitePointerGaming  Рік тому +1

      It wouldn't really be possible with how the SuperFX games work, because they all use multiple layers, check out my video here: ua-cam.com/video/vZmrZCpBJhc/v-deo.html for an explanation on how they work.

    • @johneygd
      @johneygd Рік тому

      @@WhitePointerGaming yes it’s true that super fx games does use many background layers so in such case stretching the image indeed wouldn’t work,however,for some reason snes doom does everything on it’s own for some reason,those backgrounds are also generated by the super fx chip and not by the snes for some reason,
      So that game might be stretchible to a bigger size,but am not sure,mmm.

  • @xeridea
    @xeridea Місяць тому

    Not all rotation was done with mode 7. Scaling and rotation was also something that could be done on the SuperFX chip. SMW2 Yoshi's Island used this extensively.

    • @WhitePointerGaming
      @WhitePointerGaming  Місяць тому

      I actually talk about that quite a bit in this video: ua-cam.com/video/vZmrZCpBJhc/v-deo.html

  • @Trickydickie86
    @Trickydickie86 Рік тому

    Liked and subbed dude

    • @WhitePointerGaming
      @WhitePointerGaming  Рік тому +1

      Thanks for the sub and I'm glad you liked it! :)

    • @Trickydickie86
      @Trickydickie86 Рік тому

      @WhitePointerGaming nice to an old game running. If not pixilated. Probably mods to cure that.

  • @lakojake4215
    @lakojake4215 10 місяців тому

    What later ray casting games were there? Pretty much everyone switched to the Doom method of calculating, rather than casting.

    • @WhitePointerGaming
      @WhitePointerGaming  10 місяців тому

      Quite a few, actually. Blake Stone, ShadowCaster, Rise of the Triad, Zero Tolerance, Operation Body Count, Corridor 7 - these all used raycasting, in fact many of them used a modified Wolf3D engine.

    • @lakojake4215
      @lakojake4215 10 місяців тому

      @@WhitePointerGaming Awesome. Thanks for the list.

  • @peterrichards2762
    @peterrichards2762 2 роки тому

    So this is the one of the first versions of scaling to increase frame rates, like DLSS and FSR :)

  • @selami32
    @selami32 Рік тому

    great explanation sub & like

  • @CAPTAINCAPSLOCK111
    @CAPTAINCAPSLOCK111 Місяць тому

    The real reason for 7 is not because of scaling, it's because the SNES being tile based has no proper non-tile based pixel mode (except M7) like VGA´s chunky pixel framebuffer where each pixel can be modified in any arbitrary fashion.. The game is rendered in true chunky fashion to a buffer then to the M7 screen, zoomed in and then displayed,

  • @SuperXzm
    @SuperXzm Місяць тому

    Imagine Zero Tolerance but full screen

  • @Jolly-Green-Steve
    @Jolly-Green-Steve Місяць тому

    So if the enemies are part of the Mode 7 background how are they moving independently in the background?

    • @WhitePointerGaming
      @WhitePointerGaming  Місяць тому

      Backgrounds can be animated, so they are just animated as part of the background.

    • @Jolly-Green-Steve
      @Jolly-Green-Steve Місяць тому

      @@WhitePointerGaming Then they would be locked to the background but they are moving independently from the background which doesn't make sense.

    • @WhitePointerGaming
      @WhitePointerGaming  Місяць тому

      Different parts of the background can be animated independently. It's not a case of animating everything or nothing. The enemies are just a different part of the background.

    • @Jolly-Green-Steve
      @Jolly-Green-Steve Місяць тому

      @@WhitePointerGaming Oh I thought Mode 7 was just one giant background sprite/graphic. So basically SNES is capable of scaling and rotation but only in one background layer not in multiple layers which is weird. I mean with how the layering/priority works why not just have everything in Mode 7 and layer sprites to create full scenes that have scaling and rotation? Then you would basically have low end Neo Geo level visuals. Is it because layered/animated sprites on top can't have independent scaling and rotation? it has to be all one background layer/composited grid?

    • @WhitePointerGaming
      @WhitePointerGaming  Місяць тому

      Mode 7 can't rotate or scale sprites, it only works on a single background layer. You also generally can't make an entire background layer out of just sprites like the Neo Geo does because there's a limit to how many can be displayed on screen at once and also a limit to how many can be displayed per scan line (the Neo Geo's entire graphics are made up of sprites, explained in this video: ua-cam.com/video/Lh77KKss4Hk/v-deo.html ). I talk more about what mode 7 does and doesn't do in these videos: ua-cam.com/video/vZmrZCpBJhc/v-deo.html and ua-cam.com/video/EBLze4PXX2U/v-deo.html and also cover what the other modes did as part of this video: ua-cam.com/video/K1DSUHFDmkA/v-deo.html

  • @johneymute
    @johneymute Рік тому

    Does the snes version of wolf3D also uses sprite scaling trough software???

    • @johnsensebe3153
      @johnsensebe3153 Місяць тому

      No. The enemies are rendered the to the background. They aren't sprites.

  • @gumpyflyale2542
    @gumpyflyale2542 4 місяці тому

    The genesis homebrew is top tier

  • @arnauddemarais9104
    @arnauddemarais9104 Рік тому

    GREAT GREAT GREAT video. Thanks !

  • @SunSailor
    @SunSailor 3 місяці тому

    Actually, Ray-Casting is closer to Ray-Tracing than Wolfenstein 3D to 3D graphics. Your ray is simply layed out on a single line and not pixel by pixel, but the "ray from the observer to the object" principle remains.

  • @maltewolfcastle4306
    @maltewolfcastle4306 3 місяці тому

    I think Carmac was already well aware of BSP Trees because as you said, he was working on Doom at that time

  • @saltysumo7991
    @saltysumo7991 7 місяців тому

    "Wasn't very good" is the understatement of the century... it's fucking embarrassing.

  • @AntiJewluminatiDwarf
    @AntiJewluminatiDwarf 10 місяців тому

    This was pretty good and your comment section is t littered with the same canned/bought comments like "production quality is crazy" "the effort you put into this is amazing!" etc. Stay strong, don't sell out lol

  • @jpjokela1
    @jpjokela1 2 місяці тому

    I wouldn't call that "clever", maybe "something that doesn't come to mind first"
    You omit the #1 reason to use Mode7; Unlike other modes (which use planar graphics), Mode7 uses chunky mode for tile pixels. That means that every single byte in tile data corresponds to the color of a single pixel (0-255). With planar graphics, the same value is split to separate bits in (up to) 8 different bytes, so changing the color of a single pixel is WAY more complex process with planar graphics (obviously the other bits in the same bytes correspond to colors of other pixels in the same way).

  • @kangarht
    @kangarht 6 місяців тому +2

    not real 3d just made it look like 3d ? you can say this about ANYTHING 3d, jesus

    • @Michael-im5mq
      @Michael-im5mq 2 місяці тому

      Exactly. Oh it's not real 3D because it's not stereoscopic 3D!!!111oneone. People say Doom wasn't 3D. Yes it was, flying Monsters were programmed to move in true 3D with z,y,x, axis. Also all the scenes in Doom can be rendered on a discrete GPU exactly 1 to 1. It's true that the software renderer in Doom had limitations due to hardware of the time and took shortcuts that prevented rooms over rooms and bridges and of course enemies were flat sprites, but what it could do was actually a proper 3D representation albeit with limits on certain scenes. System Shock wasn't 3D because the sprites were flat even though the rest of the world used 3D geometry!