I Hacked Diablo II To Use Modern Graphics

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 พ.ย. 2024

ความคิดเห็น • 780

  • @nathanbaggs
    @nathanbaggs  2 หลายเดือนก่อน +37

    Want early access to new videos and some behind the scenes content? Consider becoming a channel member th-cam.com/channels/QvW_89l7f-hCMP1pzGm4xw.htmljoin
    Other videos you might enjoy:
    th-cam.com/video/KdUu65GLo50/w-d-xo.html
    th-cam.com/video/ILY7tYdIS2Y/w-d-xo.html
    th-cam.com/video/JyWeSVG8hVw/w-d-xo.html

    • @RetroNorth
      @RetroNorth 2 หลายเดือนก่อน +2

      Next project: Vulcan to Glide3 😄

    • @Bitterman5868
      @Bitterman5868 2 หลายเดือนก่อน +2

      If anything, i suggest you try your skills with the old WinG32.dll games like shadow of the horned rat, would be interesting to see how GDI to Vulkan would work since the original HOMM1 and 2 patch did the same with GDI to direct 3d if i remember well

    • @shadowarez1337
      @shadowarez1337 หลายเดือนก่อน

      Isnt it a thing step 1.4090 step 2.use RTX Remix
      3. Profit
      Remix old games with Ray tracing change out okd twxtures.

    • @David-rj1ru
      @David-rj1ru 12 วันที่ผ่านมา

      yoou said you hacked d2 to use modern graphics but we don't see d2 using modern graphics. makes me skeptical of claim.

    • @realghoststories1210
      @realghoststories1210 6 วันที่ผ่านมา

      Now if you could only fix Dragon Age Origin for modern PC's. I bought it of steam as EA had a special on all 3. To my disappointment the game kept crashing every 5 minutes.

  • @RedlineRob
    @RedlineRob 2 หลายเดือนก่อน +745

    I can’t die peacefully until this has a part 2 with it actually working.

    • @Dawnarow
      @Dawnarow 2 หลายเดือนก่อน

      Cosmic brain is what is required for this... I wonder if blizzard could ever offer what the players always wanted for the current d2r game... that is potentially incredibly easy to accomplish:::::: Sell stash tabs. The game is "loot-oriented" and revolves around being able to trade. I'd keep el and elds to use a recipe nearly no-one uses if they were to do this and I'm sure they'd realize POE had the best structure for games... just offer what your clients want. Heck, if you don't want people to cheat, you can even offer them a "fake" 1-time purchase way to slap textures on your character's items via a "viewer" and just download images for your characters to display new graphics assigned to x-y items. Not selling "skins" but actually offering a way for players to create their own. Do you think you could make this, @nathanbaggs ? That'd be incredibly cool.

    • @ScandalistRick
      @ScandalistRick 2 หลายเดือนก่อน +21

      For real, this coupled with some lossless scaling could result in a true gem of an experience.

    • @gabydewilde
      @gabydewilde 2 หลายเดือนก่อน +33

      yes, mission failed is not an acceptable outcome. He should create a new character and start over.

    • @gamecast4432
      @gamecast4432 2 หลายเดือนก่อน +10

      Me too, Diablo II it's one of my favorite games

    • @LarixusSnydes
      @LarixusSnydes 2 หลายเดือนก่อน +14

      This would also mean that this would also run great under Linux, provided that the other used dll-libraries are implemented correctly in Wine . Vulkan is cross-platform after all.

  • @EricChamberlain
    @EricChamberlain 2 หลายเดือนก่อน +89

    Dude… Please finish this! This is by far the most interesting programming video I’ve seen.
    I love the format.

    • @457Deniz457
      @457Deniz457 23 วันที่ผ่านมา

      I mean basically we already can play the solution. What else do you think did Blizzard?
      Nothing else, thats how they made Diablo 2 Resurrected

    • @olpizl
      @olpizl 10 วันที่ผ่านมา +2

      @@457Deniz457Your comment has basically nothing to do with what OP wanted.
      Dont care about the game, wanna see the process.

    • @imsoflyrn
      @imsoflyrn 8 วันที่ผ่านมา

      Please!

  • @beefviper
    @beefviper 2 หลายเดือนก่อน +559

    Making your own DLL with a bunch of functions stubs and slowly filling them in... really cool to see.

    • @nathanbaggs
      @nathanbaggs  2 หลายเดือนก่อน +99

      Thanks! Planning on doing a livestream at some point where we can deep dive into the code a bit more

    • @maxrinehart4177
      @maxrinehart4177 2 หลายเดือนก่อน +17

      ​@@nathanbaggs oh, man, please do, will absolutely watch even a 10 hour stream of you.

    • @Wishbone1977
      @Wishbone1977 2 หลายเดือนก่อน +8

      This reminds me of how KeeperFX was made originally.

    • @nathanbaggs
      @nathanbaggs  2 หลายเดือนก่อน +13

      Make sure you all subscribe then (:

    • @sparklesparklesparkle6318
      @sparklesparklesparkle6318 2 หลายเดือนก่อน +1

      @@nathanbaggs You look like SerpentZA's brother.

  • @cryohellinc
    @cryohellinc 2 หลายเดือนก่อน +797

    Thank you. After watching your video, I feel that I am stupid.

    • @ksk31337
      @ksk31337 2 หลายเดือนก่อน +27

      small(est) relief, that it took him weeks :D

    • @rogercruz1547
      @rogercruz1547 2 หลายเดือนก่อน

      @@ksk31337 smallLodLog2(est) relief*

    • @jblps
      @jblps 2 หลายเดือนก่อน +16

      I is dumb too 😞

    • @Stinktierchen
      @Stinktierchen 2 หลายเดือนก่อน +11

      Gladly I knew I am, even before watching this video, so I dont actually feel any worse now.... he he he

    • @nathanbaggs
      @nathanbaggs  2 หลายเดือนก่อน +333

      All you need to remember is that smallLodLog2 is the logarithmic base 2 of the largest dimension of the smallest mipmap

  • @TrygveRasmussen
    @TrygveRasmussen 2 หลายเดือนก่อน +704

    So anyway, smallLodLog2 is the logarithm base 2 of the largest dimension of the lowest resolution mipmap... thats crazy

    • @nathanbaggs
      @nathanbaggs  2 หลายเดือนก่อน +106

      Makes sense now

    • @imqqmi
      @imqqmi 2 หลายเดือนก่อน +11

      pfff easy! lol!

    • @teh_hippo
      @teh_hippo 2 หลายเดือนก่อน +19

      Ahhhh now you put it that way. Totally.

    • @raelik777
      @raelik777 2 หลายเดือนก่อน +54

      It actually DOES make sense, but it's both a perfectly accurate way to say what it is AAAAAAND probably the most confusing way to say it. Logarithm base 2 is basically (but not really) just telling you how many binary digits there are in that number (it's actually calculating what power of 2 would give you that number, but that's an even more confusing statement). If you get rid of the decimal portion, it tells you the exponent (i.e. position) of the highest bit. For example, log base2 of 255 is 7.99435343686. That means that bit 7 (starting from 0) is the highest bit that's set. My guess as to why they chose to return the information like that instead of just giving you the actual number is probably some fiddly optimization.

    • @jeinnerabdel
      @jeinnerabdel 2 หลายเดือนก่อน +23

      ​@@raelik777Dafuq did I just read?

  • @adamleblanc5896
    @adamleblanc5896 2 หลายเดือนก่อน +116

    Finally! You have no idea how long I've been waiting for a video which brings crystal clarity to smallLodLog2 being the logarithmic base 2 of the largest dimension of the lowest resolution mipmap.

    • @nathanbaggs
      @nathanbaggs  2 หลายเดือนก่อน +45

      I’m just giving the people want they want

    • @diras2010
      @diras2010 2 หลายเดือนก่อน +3

      it's how big the smallest resolution can be, in logarithm base 2, it just took me like 10 rewinds to understand it

    • @ladislavseps4801
      @ladislavseps4801 2 หลายเดือนก่อน +2

      Easy. Textures are in power of two sizes, why would anyone sane send the whole integer if its binary contains single 1 padded by 0 on both sides. (Now with just 1 byte you can have texture sizes upto 115 quattuorvigintillion pixels). Then you just send the biggest and smallest of all widths and heigths of the smallest resolution textures. And the texture layout is in different call..

    • @adamleblanc5896
      @adamleblanc5896 2 หลายเดือนก่อน

      @@ladislavseps4801 XD

    • @edgardsimon983
      @edgardsimon983 29 วันที่ผ่านมา

      @@nathanbaggs if u said want they what would have been funny sir

  • @StizzedOut
    @StizzedOut 2 หลายเดือนก่อน +22

    Brilliant. I took an alternate career path, I'm no coder, your videos are easily followed, and not dumbed down.. but just enough technicals for viewers to dig deeper. Thank you

  • @MSThalamus-gj9oi
    @MSThalamus-gj9oi 2 หลายเดือนก่อน +117

    Yep, Diablo II definitely changes screen resolution a bunch at startup. This is much easier to see on a CRT, because it takes noticeable time to switch between modes. Yet another reason to keep a CRT handy! :)

    • @dutchdykefinger
      @dutchdykefinger 2 หลายเดือนก่อน

      yeah and switching resolution for cutscenes was pretty much the norm then :D

    • @Gramini
      @Gramini 2 หลายเดือนก่อน +1

      On my Win 10 system with my monitor, it takes around a minute (not kidding) before I can see the game menu. Luckily, I found some windowing wrapper that intercepts those resolution changes and does not _really_ change the resolution of the entire system. So much better.

  • @ricardovilla4072
    @ricardovilla4072 2 หลายเดือนก่อน +99

    I know LOD stands for "Level of Detail", but for my brain it stands for "Lord of Destruction"

    • @simdimdim
      @simdimdim หลายเดือนก่อน

      because you're using the wrong ctx?

    • @markvickroy6725
      @markvickroy6725 หลายเดือนก่อน

      Lords of Destruction - hacker crew from NYC late 80s
      Hella

    • @markvickroy6725
      @markvickroy6725 หลายเดือนก่อน

      ​@@simdimdimbc LoD the og hacker crew

    • @simdimdim
      @simdimdim หลายเดือนก่อน

      @@markvickroy6725 Did you perhaps mean Legion of Doom? In either case tho, I'm not old enough, (nor anywhere close enough), to have learned that little bit of Internet trivia :) (thanks for pointing out the reference)

    • @joshuaadkins9820
      @joshuaadkins9820 หลายเดือนก่อน

      i thought it stood for load on demand.

  • @morgan0
    @morgan0 2 หลายเดือนก่อน +93

    "a lot of graphics debugging is trying to figure out why a screen is blank when you would 100% like it to not be"
    yep, me the past several days. got a working simple example, got my library to a point where i could replicate it, all the calls look the same, nothing works. classic opengl experience

  • @ViniciusNegrao_
    @ViniciusNegrao_ 2 หลายเดือนก่อน +109

    I loved the bit of smallLodLog2 lol, gotta love old documentation. But hey, at least it exists...

    • @nathanbaggs
      @nathanbaggs  2 หลายเดือนก่อน +30

      At least we now know what smallLodLog2 means…

    • @Resursator
      @Resursator 2 หลายเดือนก่อน +10

      It's the logarithm base 2 of the largest dimension of the lowest resolution mipmap.

    • @Victorpollack
      @Victorpollack 2 หลายเดือนก่อน +3

      @@Resursator Is it the logarithm base 2 of the largest dimension of the lowest resolution mipmap?

    • @wobblysauce
      @wobblysauce 2 หลายเดือนก่อน +2

      Just rolls off the tongue.

    • @defeqel6537
      @defeqel6537 2 หลายเดือนก่อน +2

      the first read-through did sound like gibberish, but reading the sentence backwards makes it make sense

  • @supermroz
    @supermroz 2 หลายเดือนก่อน +12

    6:51 I've never seen the "emotion" of reading documentation captured so realistically on video, great stuff! 😂

  • @dave7244
    @dave7244 2 หลายเดือนก่อน +44

    One thing I would say about Glide is that even when it was way past it sale by date, it looked better than OpenGL and DirectX at the time it was just "smoother". No idea why.

    • @AROAH
      @AROAH 2 หลายเดือนก่อน +20

      Probably because it was created explicitly for Voodoo cards, so it could be perfectly optimized to work on that hardware.

    • @dave7244
      @dave7244 2 หลายเดือนก่อน +9

      @@AROAH I had a ATi 9800Pro and my friend had an older computer with a Voodoo 3 or 4 (one of the last Voodoo cards) and the same game had smoother animations on his machine compared to mine, even though my system was more highly spec'd.

    • @SmallSpoonBrigade
      @SmallSpoonBrigade 2 หลายเดือนก่อน +2

      @@AROAH Yep, games back then were typically optimized for one chip or another. 3DFX got kind of lucky because the cost of memory chips took a nosedive after they did their designs and announced their initial cards. I think the only serious contender they had during those first couple years was PowerVR, but then they got entangled with Sega doing the chips for the Dreamcast and never got back to making cards for PCs.

    • @Vatharian
      @Vatharian 2 หลายเดือนก่อน +1

      @@SmallSpoonBrigade Actually... they did! For a short while, at least. PowerVR was bought by Imagination Technologies, and was part of many ARM designs, but also... Intel's SOCs. For tablets. Remember that cheap tablet craze during Windows 8 era? These were PowerVR GPUs inside Atom SoCs. Thare was even short run of these SGX GPU chips on PCI-Express, but they were mostly development kits, and had exactly 0 public interest. Barely anything worked on it, since original GPU design hanged off of host chip's memory access, while ImT's design used very buggy and inefficient memory controller that could be paired with very, very narrow selection of memory chips, that went out of production at the same time the design hit the tapeout phase.

    • @i64fanatic
      @i64fanatic 2 หลายเดือนก่อน +1

      Glide had a tilt-shift graphical effect missing in the other render API in Diablo 2. Using nGlide and restored EAX hardware audio (there's a few methods on modern Windows now) is *chef's kiss.*

  • @RRCesconeto
    @RRCesconeto 2 หลายเดือนก่อน +230

    It's called Vulkan, but the errors sound like Klingon...

    • @WarkWarbly
      @WarkWarbly 2 หลายเดือนก่อน +14

      Makplah to that 😂😂😂

    • @atomicskull6405
      @atomicskull6405 2 หลายเดือนก่อน +14

      Klingon would be an awesome name for a Vulkan wrappper.

    • @teknastyk
      @teknastyk 2 หลายเดือนก่อน +1

      not exactly into star trek besides watching few shows as a kid... but this.. was hella funny.

    • @primeral
      @primeral 2 หลายเดือนก่อน +6

      Today is a good day to API

    • @joshua7426
      @joshua7426 2 หลายเดือนก่อน

      That was a dumb joke

  • @Amakratacjan
    @Amakratacjan 2 หลายเดือนก่อน +5

    As a beginner in reverse engineering etc., you are the only person making me feel like I've not even started, yet I feel like saying thank you, bcs your videos are hidden gems of youtube. Great work, good luck and keep it up
    !

  • @ILostMyOreos
    @ILostMyOreos 2 หลายเดือนก่อน +10

    Holy moly, this was so cool. It feels so satisfying to see someone work through really low level stuff but in a way you can keep up if you know the basics. Good stuff.

  • @RossWasTaken
    @RossWasTaken 2 หลายเดือนก่อน +27

    Interesting as always, iirc Diablo 2 also uses storm.dll just like in the Starcraft video (someone will find that interesting).
    I still play D2 every day on Project Diablo 2, it's a mod that's not been ported to the remaster (and isn't going to be), that Glide wrapper is a total game changer. We'd all probably be stuck on 4:3 25fps if not for it. I've gained a new appreciation for it after watching this.

    • @asdf12337
      @asdf12337 2 หลายเดือนก่อน +3

      The 60 fps change was not programmed by PD2's team though. Still awesome they managed to add it (the original authors were hard to find I heard)! the 25 fps were giving me a headache over the last 2 decades whenever I came back to my all-time favorite game...

    • @Ubeogesh
      @Ubeogesh 2 หลายเดือนก่อน +4

      I thought it's the ddraw.dll wrapper that made all the changes in PD2, not glide wrapper

    • @RossWasTaken
      @RossWasTaken 2 หลายเดือนก่อน +5

      @@asdf12337 Yeah sorry I should have been more clear, I meant that the entire PD2 community benefits massively from it, not that it was developed by the PD2 team.

  • @dave_s_vids
    @dave_s_vids 2 หลายเดือนก่อน +57

    You can tell you were 16 hours deep into reading graphics library documentation at the point you recorded this video XD. Great video, thank you for the humour and fascinating info!

  • @Fewnity
    @Fewnity 2 หลายเดือนก่อน +43

    This was soo cool, sad that you did not finished it!

    • @nathanbaggs
      @nathanbaggs  2 หลายเดือนก่อน +41

      Yeah might pick it up again in the future, it took so long just to get that far

    • @Fewnity
      @Fewnity 2 หลายเดือนก่อน +5

      @@nathanbaggs yeah I understand but it's already very cool and interesting!

    • @SAK_-
      @SAK_- 2 หลายเดือนก่อน +9

      @@nathanbaggs When you would finish it with a "Donate me a coffee" at the end, you are set for life.
      The Modding comminity on diablo2 is so unbelivable strong and would suck up everything that makes graphics better

    • @malbeth8700
      @malbeth8700 2 หลายเดือนก่อน +1

      @@nathanbaggs If you don't continue, I hope you'll at least shared what you've done so far so others can finish it!

  • @ShR33k
    @ShR33k 2 หลายเดือนก่อน +11

    I need to see Diablo 2 using Vulkan !!!! We need a part 2 👍 This is cleaver mind-boggling stuff !

    • @JimmyZeng
      @JimmyZeng 17 วันที่ผ่านมา

      You kinda could do this now by using dgvoodoo2 AND DXVK...

  • @LukeAvedon
    @LukeAvedon 2 หลายเดือนก่อน +139

    This video is making me insecure about my programming skillz.

    • @nathanbaggs
      @nathanbaggs  2 หลายเดือนก่อน +78

      If you saw the actual code I wrote for this you'd think otherwise...

    • @reahreic7698
      @reahreic7698 2 หลายเดือนก่อน +7

      @@nathanbaggs I just want a tutorial video on the tools you used to debug the render pipeline.

    • @jmvr
      @jmvr 2 หลายเดือนก่อน +17

      ​@@nathanbaggs see, you're able to create a viable product with garbage code, whereas someone like me has both garbage code and no viable product lol

    • @xormak3935
      @xormak3935 2 หลายเดือนก่อน

      @@reahreic7698 The software is called RenderDoc, rendering test graphics into the game and copious amounts of console print statements lol.

    • @NoThanks-b4u
      @NoThanks-b4u 2 หลายเดือนก่อน +2

      @@nathanbaggs will you release it?

  • @StatueSounds
    @StatueSounds 2 หลายเดือนก่อน +34

    This was fantastic, i would love to see you continue this project and winh you all the best!!!🎉

    • @oyeahisbest123
      @oyeahisbest123 2 หลายเดือนก่อน

      or you could just play gog version who already did this

    • @beardedchimp
      @beardedchimp 2 หลายเดือนก่อน

      @@oyeahisbest123 oh, does playing the gog version open with a video on how they ported the original graphics api? They even used vulkan instead of opengl? Awesome, why did this guy even bother creating this video in the first place then.

  • @Shimmen
    @Shimmen 2 หลายเดือนก่อน +6

    Fun video, thank you! Just an FYI, making an arbitrarily large array of texture samplers like you did and then dynamically picking one in the fragment shader is exactly what “bindless textures” is. So good job on making it bindless 😅

    • @nathanbaggs
      @nathanbaggs  2 หลายเดือนก่อน +3

      There’s a specific bindless extension for Vulkan which gives you more flexibility, I feel like I cheated by just declaring a large array (:

    • @Shimmen
      @Shimmen 2 หลายเดือนก่อน +1

      @@nathanbaggsthere’s one extension for allowing the large array to be partially bound and another for allowing dynamic indexing into the array in the shader (possibly more, can’t remember atm). However, in practice, enabling layers is more of a formality and while you’ll likely get validation errors the way you’re doing it now you’re still effectively using at least dynamic indexing even though it’s “illegal” :) so I’d say it counts, if a bit unorthodox

  • @knauz21
    @knauz21 2 หลายเดือนก่อน +9

    1:27 appropriate reaction to implementing anything in vulkan

  • @zerocks88
    @zerocks88 2 หลายเดือนก่อน +10

    desperately looking forward to the follow up for this project!!

  • @MarkusK_
    @MarkusK_ 2 หลายเดือนก่อน +20

    25 years you say? Damn I feel old now 😅 This game had been a LAN party evergreen.
    I gotta say I really enjoy this series where you tinker with games from that era 👍

    • @nathanbaggs
      @nathanbaggs  2 หลายเดือนก่อน +4

      I am enjoying tinkering with them (:

    • @rnts08
      @rnts08 2 หลายเดือนก่อน +2

      Feeling old? Yes my little brother played d2 at LANs after I already started working. 😅

  • @Mireneye
    @Mireneye 2 หลายเดือนก่อน +4

    Super appreciate the small added bits of humor. It makes it light and fun to follow, but it never overstays it's welcome!
    I feel that that's new or something you've become more accustomed to, regardless I dig it!

  • @PeterBrockie
    @PeterBrockie 2 หลายเดือนก่อน +9

    It's funny, but D2R is one of the best remasters I've ever used. Especially after the disaster of Warcraft III.

    • @SmallSpoonBrigade
      @SmallSpoonBrigade 2 หลายเดือนก่อน

      For a post WoW Blizzard game, WCIII wasn't so bad.

    • @phomjachana
      @phomjachana 2 หลายเดือนก่อน +2

      No it was trash compared to the original pre wow

    • @lizardizzle
      @lizardizzle 2 หลายเดือนก่อน

      For sure. The team did and is continuing to do an incredible job. Blizzard had a rare win with their choosing of a third party team. Thank God it wasn't in-house. I do lament some of the art styles of the character models, but post release, the game spoke for itself and we were lucky that it could be ignored.

  • @AlanW
    @AlanW 2 หลายเดือนก่อน +2

    This was fun! A couple of things that may or may not be interesting
    When I was at Borland, we pronounced `_stdcall` "standard call"
    We also called it "name mangling" instead of "decorating" when it added the `_` to the exported function names. This term also applies to C++ symbols that get all the fun extra stuff tacked on as well.

    • @nathanbaggs
      @nathanbaggs  2 หลายเดือนก่อน +2

      I’ve always pronounced it “stood” same for the c++ standard library. Also yes I would use the phrase name mangling specifically for the process of differentiating overloads in C++ - but ultimately they’re all kind of the same process

  • @quicksilver_x
    @quicksilver_x 2 หลายเดือนก่อน +2

    I love how adequate the pacing and pauses are in your script. It gives me time to absorb what you said.

  • @marcuskobel6562
    @marcuskobel6562 2 หลายเดือนก่อน +1

    Yes, please make more of these videos. It's fascinating to see someone doing this kinds of hacking in old games. It's like magic to me being created and explained how it works.

  • @napsage
    @napsage 2 หลายเดือนก่อน +3

    Alternate title: Man tortures himself to death for views.
    I used to be a full stack dev. I have very basic knowledge of game dev. This video basically broke my mind. You are a very skilled and patient man, great work!

    • @SmallSpoonBrigade
      @SmallSpoonBrigade 2 หลายเดือนก่อน +1

      Especially, given that there's already nGlide that allows you to use Vulkan for glide games.

  • @anhi399
    @anhi399 หลายเดือนก่อน

    Incredibly funny, super interesting, clear and fast presentation--a very easy sub! Can't wait for the part 2

  • @armsofundertow98
    @armsofundertow98 2 หลายเดือนก่อน

    This was awesome to watch. I really hope theres a part two where you get everything working

  • @PrimeRetroGamer
    @PrimeRetroGamer 2 หลายเดือนก่อน +4

    I ain’t no programmer, but my takeaway from this video is that reading stuff, explains stuff. 😁

    • @nathanbaggs
      @nathanbaggs  2 หลายเดือนก่อน +4

      Always read the docs

    • @beardedchimp
      @beardedchimp 2 หลายเดือนก่อน

      @@nathanbaggs I saw what "smallLodLog2 is the logarithm base 2 of the largest dimension of the lowest resolution mipmap" did to your mental health and in this case I think it is best advised to never read the docs under any circumstance, unless you openly welcome psychosis.

  • @saidmouhoun1557
    @saidmouhoun1557 2 หลายเดือนก่อน

    We need more content like this in youtube.
    I like the rythm and how you follow your though step by step.
    Even the thing that you try and than work "kind of"
    Really great content. You deserve all the success in the world.

  • @SapphireSpire
    @SapphireSpire 8 วันที่ผ่านมา +1

    Is this guy from another world, how does one man have so much talent? Brilliant content.

  • @theRemyLuna
    @theRemyLuna หลายเดือนก่อน

    I love so much how you are sharing this music with those that might never otherwise even thought to listen. Thank you for taking time to share your love of great music.

  • @em00k
    @em00k 22 วันที่ผ่านมา

    This is the second video I have watched of yours where I feel you don’t exactly deliver on the title :) I totally get the Herculean size of these projects, one where is seems you are the only person ever in tackle the problem! Great videos.

  • @BurnBabylon1990
    @BurnBabylon1990 2 หลายเดือนก่อน +1

    I still play it to this day for 24 years straight. I love Project Diablo 2 it's really cool made to even refresh that good old looting experience. I am hardcore loot addict but only 2 games can give that. Torchlight 2 and Diablo 2 Lord of Destruction. Best games ever.

  • @Kirillow
    @Kirillow 2 หลายเดือนก่อน +1

    God damn I like this channel. I have very little idea about what you are doing or what your are talking about but its like an ASMR kind experience. I just enjoy watching people who know their stuff doing things.

  • @splitpierre
    @splitpierre วันที่ผ่านมา

    This is awesome! not much material around covering Vulkan, not for the faint of heart.
    Part 2, yes please! Keep it up, this one got me subbed, lez goo!

  • @thantul
    @thantul 2 หลายเดือนก่อน

    great video! very appreciate the work you've put into this and takes me back to my C++ graphics classes

  • @butterparty
    @butterparty 2 หลายเดือนก่อน

    It's super satisfying coming along for the ride with you to fix all these problems without the 4 weeks of debugging and hair pulling! A nice change from the day job, thanks! 😁

  • @LuizCarlos3D
    @LuizCarlos3D 2 หลายเดือนก่อน

    What great content! There's so much more to it than "just" the port. Congratulations for the content showing the, probably, most useful engineering skills: read the docs, debug, logic... First time watching your video and I've already subscribed! Will definitely make my paternity leave better 😂

  • @danielmorgan2759
    @danielmorgan2759 หลายเดือนก่อน

    I work in COBOL, and it's amazing to see someone - ANYONE - working at this low-level of development as well. Looking forward to seeing part 2!

  • @malbeth8700
    @malbeth8700 2 หลายเดือนก่อน

    Wow! Great work so far! Can't wait to see more progress into this! Don't give up!

  • @AJenbo
    @AJenbo 2 หลายเดือนก่อน +6

    Any chance you would be interested in doing this on Diablo 1 in the DevilutionX project? We would really like to add hardware rendering as an option, but no one on the team really has experience with rendering APIs...

  • @naetyo
    @naetyo หลายเดือนก่อน

    Thanks for taking us on the journey, It felt like I was watching a doctor strange lecture about performing heart surgery at the subatomic level using 3 layers of the multiverse as an interface

  • @amigo8872
    @amigo8872 14 วันที่ผ่านมา

    Hello I'm Brazilian I speak little English, It's people like you who make the world a cool place to live, what a cool idea, your love for the game, keep it up please. with your ideas.

    • @amigo8872
      @amigo8872 14 วันที่ผ่านมา

      espero que voce termine o projeto

  • @felipecaetano15
    @felipecaetano15 2 หลายเดือนก่อน

    Your videos are amazing. The technical content is solid, and you present it in such a fun and engaging way. Really enjoyed it!

    • @nathanbaggs
      @nathanbaggs  2 หลายเดือนก่อน

      Thanks! It’s been a lot of work and practice

  • @rompeldipp8488
    @rompeldipp8488 2 หลายเดือนก่อน

    You sir, despite not finishing the project yet, deserve a cake. God damn that was satisfying thank you 🎉

  • @ericneuman9130
    @ericneuman9130 2 หลายเดือนก่อน

    This is great - can’t wait for part 2! Please keep up the great work! We are all cheering you on 😊

  • @benjaminaburns
    @benjaminaburns 2 หลายเดือนก่อน

    Ok this is fantastic content. You got so much accomplished in only 4 weeks. Having access to documentation and modern tools like ghidra makes all the difference.

  • @cianmoriarty7345
    @cianmoriarty7345 2 หลายเดือนก่อน +1

    6:13 creating different windows with different resolutions for different parts of the game is absolutely what it does.
    Back in the day you used to hear a definite click from your CRT monitor when it would change resolution as it went into different parts of the game such as the splash screen, the cinematics, the game itself.
    Probably because back then it was probably_much_ easier to change resolution than to rescale a (for the time) high bandwidth prerendered video.

  • @LightTheMars
    @LightTheMars 2 หลายเดือนก่อน +1

    Now do this for Sacred Underworld! There are older patches for it but none of them work great on modern-modern hardware either.
    Fantastic work with this video.

  • @MaylorTaylor
    @MaylorTaylor 2 หลายเดือนก่อน

    as a full time web dev but never touched game dev..this was fascinating to watch - keep it up!

  • @FirstnameLastname-sw1ry
    @FirstnameLastname-sw1ry 2 หลายเดือนก่อน

    Woah!!! Look at that character selection screen. That has to be the oldest of the old. How cool is that? I love it!

  • @ChrisR3tro
    @ChrisR3tro 2 หลายเดือนก่อน

    Thanks for this video, so interesting! I love the deep dive into old game code. Keep up the great work :)

  • @king_james_official
    @king_james_official 2 หลายเดือนก่อน

    this has got to be the most awesome computer related project i've seen in a while!!!! great work man, hope to see more things like this

  • @BananaWorld2000
    @BananaWorld2000 2 หลายเดือนก่อน

    I have been searching last night for old aprg graphics rework and than this video pop up for me, amazing algorithm u deserve my sub!

  • @orestes_io
    @orestes_io 2 หลายเดือนก่อน

    This is such an interesting video. Love the debugging skills, the research, the ingenuity. good stuff!

  • @kidman2505
    @kidman2505 หลายเดือนก่อน

    I'm not a coder but I've had to use plenty of technical documents/guides, and it's always like this. Once you figure what's trying to be said, the reaction that occurs 100% of the time is, "OHHHHH, why didn't they just say ______?" lol Great Video!

  • @sunfos
    @sunfos 2 หลายเดือนก่อน

    Insane video presentation. Love the synopsis of the work process.

  • @JoeBurnett
    @JoeBurnett 2 หลายเดือนก่อน

    This was great! Thank you for attempting this and sharing your journey!

  • @williamokano
    @williamokano 2 หลายเดือนก่อน +9

    TBH I was expecting to see the Diablo II running in Vulkan in your video. It's a nice intro video and an awesome way to show the concepts, but I find it misleading.

  • @mckrack
    @mckrack 2 หลายเดือนก่อน +3

    Your content is pure joy to watch.

  • @warriordx5520
    @warriordx5520 2 หลายเดือนก่อน +2

    Please contact the devs and look at the engineering of D2 Annihilus: Souls of the Rift mod (best looking d2 mod out there by far).
    It's absolutely amazing how far this mod have come.

  • @DraconianEssence
    @DraconianEssence หลายเดือนก่อน

    Every time I think about getting into programming, I see videos like this and I just go "you absolutely have to be a bloody insane. Kudos to you man. I enjoyed the video.

    • @nathanbaggs
      @nathanbaggs  หลายเดือนก่อน

      This work represents quite a niche area of programming, it’s definitely not something you’d be doing as a beginner. If you want to learn then don’t let this stop you (:

  • @Socrates21stCentury
    @Socrates21stCentury 2 หลายเดือนก่อน +1

    Dude, that was amazing ... please finish and show the working game !!!

  • @DUBSkyLinEx3
    @DUBSkyLinEx3 2 หลายเดือนก่อน

    The video got me hooked the whole time, really like how you explain things and show the steps how you got there

  • @dn275
    @dn275 2 หลายเดือนก่อน

    This is super cool stuff and really fun. I love these videos and am diving into graphics programming myself. I want to eventually get to the point where I can get into debugging some old games!

  • @Sorain1
    @Sorain1 2 หลายเดือนก่อน +1

    As someone with basically zero programming knowledge, this is exactly the level of authoritative I want to sound as a DM when the NPC wizard explains what is wrong with their ritual and thus they need the PC's to do a thing.

  • @hollenwanderer
    @hollenwanderer หลายเดือนก่อน

    Very cool, as a graphics programmer my approach to decoding the textures would have been to do it on the fly in a fragment shader as they are sampled - sampling textures and looking up their values in a LUT is exactly the sort of thing programmable shaders were made for :D

  • @ulior28
    @ulior28 2 หลายเดือนก่อน

    Came for the coding stayed for the "VUK" error out of date "kahar" and "wuz" popup, keep it up bro!!!

  • @TyPoProteus
    @TyPoProteus หลายเดือนก่อน

    I remember the interviews about Diablo 2 Resurrected where they explained how hard it was to "Over render" the new 3d engine based graphics on top of the legacy game which is running underneath.. but I absolutely love D2R and the fact it runs flawlessly on the steam deck is just amazing, when I started playing D2 when it was released I never in a million years could have imagined playing it on a portable device.

  • @baciucatalin2199
    @baciucatalin2199 2 หลายเดือนก่อน

    I don't understand most of what you are saying but I understand enough to find this quite entertaining and fun. Keep it up!

  • @brandonfrancey5592
    @brandonfrancey5592 2 หลายเดือนก่อน

    I did a Computer science course, mostly creating and editing databases, which in a sense most games are, but never got into graphics or hardware. It's been years since I've programmed anything and I'm completely out of my depth with current software, but watching this I could feel some of it coming back. The enjoyment of even just editing a text file and seeing it appear in the running game. I may have to create something some day soon.

  • @empireempire3545
    @empireempire3545 2 หลายเดือนก่อน

    I love this : O
    I hope you will eventually manage to complete this project : O

  • @bublybublybubly
    @bublybublybubly 2 หลายเดือนก่อน

    Please more content on Diablo 2!
    It's what I started with for my deep dive into reverse engineering. My plan was to figure out if I can repair my broken PlugY stashes and bring PlugY to the latest version, but I lacked the required level of obsession to complete such a task XD

  • @naxxtor
    @naxxtor 2 หลายเดือนก่อน

    Having recently spent at least a day trying to render a single triangle with Vulkan, i appreciate this video.

  • @MindCaged
    @MindCaged 2 หลายเดือนก่อน

    Every time I start to think myself something of a computer expert I see videos like this and am left in awe of how much stuff goes /straight/ over my head. To be fair I doubt there's anybody in the world who can possibly know /everything/ about every aspect of computing, it's just too broad a subject for the human mind to completely hold. I've often wished I could and could learn about all the computer topics I've ever wondered about, or been able to figure out how to fix any niche things I want to mess with but just lack the time and memory space in my wetware to hold that knowledge.

    • @lemagreengreen
      @lemagreengreen 2 หลายเดือนก่อน

      Graphics programming is and always has been a particular witchcraft even by programming standards. It was complex enough back in the Glide and OpenGL days, these days... who knows. Also why there is just a small handful of engines powering most games these days, it has become incredibly specialised. They used to give a crash course in OpenGL back in my day but I think this is near enough impossible for modern APIs like Vulkan.

  • @RaisinsO
    @RaisinsO หลายเดือนก่อน

    Even though I did not understand anything, it was fun to watch and listen to the explanation. Thanks!

  • @MandatoryHashTags
    @MandatoryHashTags 2 หลายเดือนก่อน

    I have been in software since 2014. I work mainly in Web Development, and application development. This was immensely fun to watch; on multiple levels. You explain things very well, I realized some of my problems are in contrast very simple, and also that I would have enjoyed doing C++ development had I taken that road. I learned Basic, and then just skipped ahead to PHP, Javascript for Web Development and eventually Python and Go to do Application development. What little C++ I learned was for a little course I took in 2017 on game engines. Seems like no matter the language or skill level of the developer everyone always runs into those silly off by one errors.

  • @AlexandroTrevisan
    @AlexandroTrevisan หลายเดือนก่อน

    That was amazing! Waiting for the part 2!

  • @yah3136
    @yah3136 2 หลายเดือนก่อน

    Nice video, lot of memories (3DFX/GLIDE and Diablo). Hope you will continue this serie, I would love to see the final result. Thank you

  • @ViktorSarge
    @ViktorSarge 9 วันที่ผ่านมา

    Very interesting and awesome to see you get so far with it.

  • @ArneSchoberUS
    @ArneSchoberUS 2 หลายเดือนก่อน

    Please continue this is nice! It's a well sized pet project. And the glide API seem not to be too large. The Pow2 stuff is probably cannot handle non-pow2 textures and the engineer who designed that API struggled a bit how to formalize this in C. Maybe you could record all the commands into a data-buffer and then once per frame when you flip you process that "recording" so you have more context, can batch more, process the buffer in multiple passes and synchronization should become also easier.

  • @8manifest143
    @8manifest143 2 หลายเดือนก่อน

    Really interesting video. Not a good programmer, but conceptualizing things in the particular way you bring them to light, is thought provoking. Thanks for sharing!

  • @gustavaggeboe7014
    @gustavaggeboe7014 หลายเดือนก่อน

    This is one of my favorite projects of yours. Insanely cool idea, and you are the perfect person to do it. I feel like there's a huge Diablo 2 community that would be very greatful for this, if it gets developed further. Any plans on making it open source for people to continue the project?

  • @D4rkS7der
    @D4rkS7der 2 หลายเดือนก่อน

    Really cool! I enjoyed this video quit a bit! Will you please make second part of this?
    Btw.: are there gonna be t-shirts with smallLodLog2? :D

  • @AluminumHaste
    @AluminumHaste 2 หลายเดือนก่อน

    I hope you continue this, this is really cool!

  • @thevortexATM
    @thevortexATM 2 หลายเดือนก่อน

    your stuff is always top-shelf, love it!

  • @vsolyomi
    @vsolyomi หลายเดือนก่อน

    "I'm slowly descending into madness with this" - is underappreciated!

  • @amortalbeing
    @amortalbeing 2 หลายเดือนก่อน

    I really enjoyed this and learned a lot as well. thanks a lot and keep up the great work

  • @trulsosmundsen515
    @trulsosmundsen515 2 หลายเดือนก่อน +2

    This noncense with loglod's made me laugh out loud! Thnax for the video, keep it up!

  • @sylvainfrancoeur5905
    @sylvainfrancoeur5905 2 หลายเดือนก่อน

    Very interesting topic. Thanks for sharing! Remind me when i was reverse ingeneering protocols to communicate with old devices that was left unsupported and making them compatible with present protocol. And GL with synching if you ever do, that really doesn't sounds fun with at all :D

  • @Beansswtf
    @Beansswtf หลายเดือนก่อน

    This was really interesting. Part 2 would be amazing!

  • @slipperynickels
    @slipperynickels 2 หลายเดือนก่อน +10

    that lego voodoo kit is great, cool to see someone tried to make it happen
    e: lmao “vulkan … 😳”