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

Поделиться
HTML-код
  • Опубликовано: 22 окт 2024

Комментарии • 80

  • @WhitePointerGaming
    @WhitePointerGaming  2 года назад +27

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

    • @miamimagicians
      @miamimagicians 11 месяцев назад +2

      SEGA Genesis had Zero Tolerance which you could online multiplayer

    • @fcxs
      @fcxs 8 месяцев назад +3

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

    • @WhitePointerGaming
      @WhitePointerGaming  7 месяцев назад +3

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

    • @BusyMEOW
      @BusyMEOW 7 месяцев назад +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 2 месяца назад

      ​@@miamimagiciansReally? It has multiplayer?

  • @melficexd
    @melficexd 7 месяцев назад +27

    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 2 месяца назад +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 года назад +33

    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.

  • @johnellis3383
    @johnellis3383 10 месяцев назад +16

    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 Год назад +10

    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!

  • @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 9 месяцев назад

      Doom is the best fps on snes hands down.

  • @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 ;)

  • @Stratelier
    @Stratelier 7 месяцев назад +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 17 дней назад +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.

  • @Sinn0100
    @Sinn0100 Месяц назад +2

    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.

  • @MrSamPhoenix
    @MrSamPhoenix 8 месяцев назад +2

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

  • @MisterMister12Mister
    @MisterMister12Mister 16 дней назад +1

    finally a video where the host doesn't have to plaster their face over the screen ! well done !

  • @moot6794
    @moot6794 23 дня назад

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

  • @Quakecon-s9r
    @Quakecon-s9r 9 месяцев назад

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

  • @darkfalzx
    @darkfalzx 11 месяцев назад +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 11 месяцев назад +1

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

    • @johneygd
      @johneygd 11 месяцев назад

      @@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 11 месяцев назад +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 7 месяцев назад

      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)

  • @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.

  • @loganjorgensen
    @loganjorgensen 2 месяца назад

    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.🙂

  • @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.

  • @BusyMEOW
    @BusyMEOW 7 месяцев назад +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

  • @-TheGameBoys
    @-TheGameBoys 2 года назад +1

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

  • @johnsensebe3153
    @johnsensebe3153 23 дня назад

    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.

  • @adesignersperspective
    @adesignersperspective 8 месяцев назад

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

  • @Tigrou7777
    @Tigrou7777 5 месяцев назад

    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.

  • @jarredkrum9894
    @jarredkrum9894 10 месяцев назад

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

  • @axilmar254
    @axilmar254 6 дней назад

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

  • @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.

  • @Sinn0100
    @Sinn0100 4 месяца назад

    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.

  • @xeridea
    @xeridea 17 дней назад

    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  17 дней назад

      I actually talk about that quite a bit in this video: ruclips.net/video/vZmrZCpBJhc/видео.html

  • @CAPTAINCAPSLOCK111
    @CAPTAINCAPSLOCK111 11 дней назад

    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,

  • @Harmony_FM
    @Harmony_FM 2 года назад +1

    Intriguing!

  • @SuperXzm
    @SuperXzm День назад

    Imagine Zero Tolerance but full screen

  • @peterrichards2762
    @peterrichards2762 2 года назад

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

  • @johneygd
    @johneygd 11 месяцев назад

    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  11 месяцев назад +1

      It wouldn't really be possible with how the SuperFX games work, because they all use multiple layers, check out my video here: ruclips.net/video/vZmrZCpBJhc/видео.html for an explanation on how they work.

    • @johneygd
      @johneygd 11 месяцев назад

      @@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.

  • @lakojake4215
    @lakojake4215 9 месяцев назад

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

    • @WhitePointerGaming
      @WhitePointerGaming  9 месяцев назад

      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 9 месяцев назад

      @@WhitePointerGaming Awesome. Thanks for the list.

  • @Jolly-Green-Steve
    @Jolly-Green-Steve 14 дней назад

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

    • @WhitePointerGaming
      @WhitePointerGaming  13 дней назад

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

    • @Jolly-Green-Steve
      @Jolly-Green-Steve 13 дней назад

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

    • @WhitePointerGaming
      @WhitePointerGaming  13 дней назад

      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 13 дней назад

      @@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  13 дней назад

      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: ruclips.net/video/Lh77KKss4Hk/видео.html ). I talk more about what mode 7 does and doesn't do in these videos: ruclips.net/video/vZmrZCpBJhc/видео.html and ruclips.net/video/EBLze4PXX2U/видео.html and also cover what the other modes did as part of this video: ruclips.net/video/K1DSUHFDmkA/видео.html

  • @arnauddemarais9104
    @arnauddemarais9104 Год назад

    GREAT GREAT GREAT video. Thanks !

  • @volkte37
    @volkte37 11 месяцев назад

    Really great video

  • @johneymute
    @johneymute 11 месяцев назад

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

    • @johnsensebe3153
      @johnsensebe3153 23 дня назад

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

  • @gumpyflyale2542
    @gumpyflyale2542 2 месяца назад

    The genesis homebrew is top tier

  • @SunSailor
    @SunSailor 2 месяца назад

    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.

  • @selami32
    @selami32 11 месяцев назад

    great explanation sub & like

  • @saltysumo7991
    @saltysumo7991 6 месяцев назад

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

  • @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.

  • @maltewolfcastle4306
    @maltewolfcastle4306 Месяц назад

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

  • @AntiJewluminatiDwarf
    @AntiJewluminatiDwarf 9 месяцев назад

    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 28 дней назад

    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 5 месяцев назад +2

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

    • @Michael-im5mq
      @Michael-im5mq Месяц назад

      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!