But, Can It Run Doom?

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

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

  • @bigmistqke
    @bigmistqke 2 ปีที่แล้ว +335

    Love how 'But, Can It Run Doom' has become such a landmark moment in a project's existence. Is like when a computer language gets to become self-hosted, a sign of maturity.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +16

      Me, too! Self-hosting would be fun, too.

    • @flavourously
      @flavourously 2 ปีที่แล้ว +5

      It's the programming/gaming equivalent to "But can he beat Goku though?"

    • @NikoKyunKyun
      @NikoKyunKyun 2 ปีที่แล้ว +11

      @@flavourously nah, that one gotta be "can it run crysis?"

    • @goobertnelius
      @goobertnelius 2 ปีที่แล้ว +7

      But can it display bad apple? Yes it can if it has some way of interaction and 2 colors at minimum it can.

    • @mikejones-vd3fg
      @mikejones-vd3fg 2 ปีที่แล้ว +3

      John Carmack made doom run on my 486 25mhz , that was impressive, makng it run on a 160mhz state of the art instruction set processor? meh i guess thats impressive(i couldnt do that). But a terrible benchmark for any aspiring programmmer. Make doom run at 30fps on my 486 25mhz machine and ill be impressed, John couldnt do that.

  • @markustopfer1605
    @markustopfer1605 2 ปีที่แล้ว +263

    Im so glad to see new videos from you. Im a 19 year old student from germany and Im into embedded programming and electronics. Often when i think that something is just to complicated to learn or to program, i come back to your older videos to realize that with enough efford I may be able to achieve exactly what i want or even more. What you've created is incredible...

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +86

      The only thing that makes things complicated is people who don't really understand what they're doing. If you just start digging and using and growing, eventually your sense of what is intuitive will begin to mirror the world we live in. Don't accept something being "complicated" as an answer. Dig. Because if something is _actually_ is complicated, it means the people who made it didn't understand what they were doing. And you can do better.

    • @romancharak3675
      @romancharak3675 2 ปีที่แล้ว +4

      @@CNLohr I needed to hear this, about needing to DIG if I don't understand something. Or think it is too complicated. Thank you.

    • @مقاطعمترجمة-ش8ث
      @مقاطعمترجمة-ش8ث 2 ปีที่แล้ว +3

      @@CNLohr In most of my drawback in programming is I don't read (or memories) the datasheet(reference) for the language/library/device I wanted to work on, it the most reason why I don't program in C/C++

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +10

      @@مقاطعمترجمة-ش8ث If you read the datasheets, they start helping you "think" like the designers/authors thought. It is hard to read/process, I know, but that's because it's breaking your brain from the natural way you think, to think in the way that the other engineers think. And it's incredibly valuable to change the way you think.

    • @sopchek1
      @sopchek1 2 ปีที่แล้ว

      @@CNLohr amen bro

  • @mitrashailendra3817
    @mitrashailendra3817 2 ปีที่แล้ว +33

    One day, scientists will learn how to program reality, and some nutcase will try to run DOOM.

  • @ingilizadam
    @ingilizadam 2 ปีที่แล้ว +78

    I'm trying to design a CPU that works with RISC-V instruction set with a small engineering undergrads team and you came back with RISC-V content. What a coincidence!

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +9

      You should look at my project. It should give you a pretty good idea of what you really need to make one.

    • @ingilizadam
      @ingilizadam 2 ปีที่แล้ว +4

      @@CNLohr I will, thanks!

    • @alexender_-oj2eb
      @alexender_-oj2eb 2 ปีที่แล้ว +3

      i am literally working on the same project

    • @viviansusername
      @viviansusername ปีที่แล้ว +1

      Clearly your new goal for this CPU is going to have to be to make it run doom, now

    • @ingilizadam
      @ingilizadam ปีที่แล้ว +4

      @@viviansusername Thats what we all have in mind...

  • @SadlyItsBradley
    @SadlyItsBradley 2 ปีที่แล้ว +6

    Oh my god

    • @minecrafter0505
      @minecrafter0505 2 ปีที่แล้ว +2

      Oh hi Bradley!

    • @BOLL7708
      @BOLL7708 2 ปีที่แล้ว +1

      Deckard sees you...

  • @thepenguin9
    @thepenguin9 2 ปีที่แล้ว +18

    RISC-V is so fast and efficient that you're always going forwards, at speeds never known!
    *that's* why pressing player back makes you faceplant the wall

  • @veaxvoid
    @veaxvoid 2 ปีที่แล้ว +29

    This is incredible, looks like magic to me. You emulate processor on a processor to run a video game on it. Just mind beaker.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +10

      IKR? It just feels magical when things "come to life" when they become turing complete.

  • @minecrafter0505
    @minecrafter0505 2 ปีที่แล้ว +97

    Sometimes I'm very happy to be just an app dev. Most of this just seems like magic to me... xD

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +41

      Dig deeper, what you learn will always have applicability!

    • @coffee-is-power
      @coffee-is-power 2 ปีที่แล้ว +2

      Crocodiles with big mouths, long legs and short arms will be cut down in no time, maybe it will pay off if you start expanding what you know instead of getting stuck.

    • @Kniffel101
      @Kniffel101 2 ปีที่แล้ว +5

      What @@CNLohr said. If you love programming, you'll LOVE low-level development once you get it. It's often much simpler than high-level frameworks and that stuff.

    • @georgeallen7487
      @georgeallen7487 2 ปีที่แล้ว +2

      @@Kniffel101 A lot of low level stuff is just about being obsessed with documentation.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +5

      @@0ri3z3r0 I wouldn't say convoluted. But maybe not-obvious, and you're DEF right that there's a huge lack of learning resources. Everyone wants to make a video about some new javascript framework, but no one's excited to explain really deep principles from 1994.

  • @CharlesVanNoland
    @CharlesVanNoland 2 ปีที่แล้ว +69

    You could achieve a sort of temporal antialiasing by instead of skipping entire swaths of pixels - cycle through which one you're actually using for the ASCII output, to get a sort of temporal dithering. Bayer matrix could spread out the order that pixels are sampled each frame to create the fore/back ground colors for each ASCII, rather than just cycling through them in X and Y. What would be even cooler is if each Doom frame was rendered by a handful of these temporal dither frames - if the ASCII output can be faster than the Doom render, by several frames.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +48

      Do I smell an incoming pull request? I don't fully understand what you are suggesting, but the code is available and simple!

    • @roboterson
      @roboterson 2 ปีที่แล้ว +8

      This sounds like it would be super flickery, and I don't think there is enough time to anything like stacking frames or doing much in the way of effects.

    • @iXenox
      @iXenox 2 ปีที่แล้ว +8

      @@CNLohr I think they are suggesting to write to the terminal so fast that the ASCII characters blend in with each other.
      (Imagine reduced opacity on multiple overlayed text characters where lower layers show through)
      And all that sorting stuff is probably to get the best combination of characters to layer.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +7

      @@iXenox Oh, that makes sense. That would be neat to see.

    • @CharlesVanNoland
      @CharlesVanNoland 2 ปีที่แล้ว +3

      @@CNLohr Instead of cycling through the input pixels to an ASCII character you could just average all of the pixels' RGB values that contribute to an ASCII character. That would be more stable. There's also room for employing the various box drawing ASCII characters and effectively treating each ASCII character more like two pixels instead of one. Figuring out the optimal way to represent a set of pixels with an ASCII character could be a whole project unto itself! I definitely think averaging the pixels into the output ASCII character is the way to go though. Outright discarding pixels just feels wrong!

  • @YourPalTaika
    @YourPalTaika 2 ปีที่แล้ว +10

    I can't even write the most basic of code. This is straight up magic to me.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +5

      you can learn

    • @c0smo709
      @c0smo709 ปีที่แล้ว

      @@CNLohr you can learrn to type ;)

    • @CNLohr
      @CNLohr  ปีที่แล้ว +2

      @@c0smo709 thx fixed.

  • @kargaroc386
    @kargaroc386 ปีที่แล้ว +1

    I mean I could argue that SDL, if you just want to push pixels to a window, is so easy that a braindead monkey could do it, and you'd have to be just as lazy as one to be scared by it.

  • @bbqgiraffe3766
    @bbqgiraffe3766 2 ปีที่แล้ว +11

    Doom on 512k is very interesting, I was planning on getting Doom or a Doom clone to work on my 65c02 board at some point but I'd have to design a 512k bank switching system and make the memory manager work with bank switching, which sounds like a nightmare, maybe in the future though

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +5

      hurrfff that would be really hard. And it would be really slow.

  • @treschlet
    @treschlet 2 ปีที่แล้ว +9

    ASCII VR renderer next?

    • @Dood_
      @Dood_ 2 ปีที่แล้ว +1

      With non euclidean graphics

    • @BOLL7708
      @BOLL7708 2 ปีที่แล้ว

      😱

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      I really don't think it would work well :-/ your eyes would fix on the false-stereo-fusion.

  • @sumitmamoria
    @sumitmamoria 2 ปีที่แล้ว +24

    Very impressive. Just out of curiosity - What do you do for a living and how do you get time to do all this amazing stuff?

  • @stanchannelu
    @stanchannelu 2 ปีที่แล้ว +5

    Impressive debugging, great stuff

  • @franzflasch8181
    @franzflasch8181 2 ปีที่แล้ว +1

    Your YT channel is pure gold!👌

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      Thank you!

  • @user-dh8oi2mk4f
    @user-dh8oi2mk4f 2 ปีที่แล้ว +2

    "Mom, I want a beautiful 3d render"
    "We already have a beautiful 3d render at home"
    Beautiful 3d render at home: 8:17

  • @Clownacy
    @Clownacy ปีที่แล้ว +2

    Rocketing forward when pressing back sounds like that one issue with the 'ticcmd_t' struct, which has member variables that are defined as 'char' without an explicit signedness: on platforms where char is unsigned by default, you'll experience that bug. Making the chars explicitly signed fixes the issue.

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      INTERESTING. I will have to investigate this!!

  • @lamprospitsillou6325
    @lamprospitsillou6325 2 ปีที่แล้ว +1

    This video is going to blow up for sure! Great video!

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      Thanks. I hope! Though it looks like it's already starting to cool down. Didn't really go very far outside youtube.

    • @lamprospitsillou6325
      @lamprospitsillou6325 2 ปีที่แล้ว

      @@CNLohr try posting on Reddit !
      (Also i wanted to recomment changing the thumbnail but you already did, looks better now 😁)

  • @notapplicable7292
    @notapplicable7292 2 ปีที่แล้ว +1

    This is exactly my cup of tea!

  • @jan_harald
    @jan_harald 2 ปีที่แล้ว +5

    protip: basically all terminals support 16-color, not only 8 color, even heckin' linux TTY does!
    also, you could probably make an optional 256-color mode, which would look a *LOT* better, visually

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +1

      It would be a lot more text to pipe through the oddball spigot.

    • @jan_harald
      @jan_harald 2 ปีที่แล้ว +1

      @@CNLohr fair at that, although terminal emulators can usually be set to allow pretty fast speeds...also, I've seen people use the half-block characters (one half background color, one half foreground color), is the current way getting more detail, or is that also excess data transmission? it'd need slightly more computation I suppose, but effectively give a canvas of pixels, twice the height and same width as you'd fit with normal characters (with square pixels!)

  • @gazehound
    @gazehound 2 ปีที่แล้ว +3

    My favorite tools, valgrinned and lie basan. Seriously though, very cool

  • @richardwatkins6725
    @richardwatkins6725 2 ปีที่แล้ว +1

    this is awesome Teletext Gaming

  • @JourneysADRIFT
    @JourneysADRIFT 2 ปีที่แล้ว +1

    Thanks for the content. Keep it up.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      We'll see how long I can keep the momentum going.

  • @SplitScreamOFFICIAL
    @SplitScreamOFFICIAL 2 ปีที่แล้ว +2

    You actually did it, absolute Madman

    • @SplitScreamOFFICIAL
      @SplitScreamOFFICIAL 2 ปีที่แล้ว +1

      I want to Rephrase it from "can it run doom" to "how long till it runs doom"

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      Your comment did make the video!

  • @BastetFurry
    @BastetFurry 2 ปีที่แล้ว +1

    Now i am intrigued what performance would be if we used an RP2040 with some external serial RAM and VT100 emulation video output on VGA.
    Would the system still be usable as a tiny cheap Linux PC or not?
    EDIT: Defining usable, snappy enough that some editor like Tilde and tools like Midnight are not laggy to use, my benchmark would be some XT class machine running MSDOS with the QuickIDE and Norton Commander. Stuff takes some time to load but when up is snappy to use.

    • @neozeed8139
      @neozeed8139 2 ปีที่แล้ว

      there is esp32 ports... so I dont see why not

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      I agree, it should work.

  • @ristomatti
    @ristomatti 2 ปีที่แล้ว +8

    I'd be curious to know what drives you into creating mind blowing side projects like this. Taking on a challenge, flexing, pure curiosity, excuse for not working on some even more complex project, just a way to relax or something else? Regardless of the motivator, so much fun even if 97% goes over my head.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +9

      I love to teach and inspire and see what people do as they get tools in their hands that they never knew existed.

    • @ristomatti
      @ristomatti 2 ปีที่แล้ว

      Best answer!

    • @Alacritous
      @Alacritous 2 ปีที่แล้ว +2

      It's where the brain goes when it's trying to avoid doing real work.

  • @SockyNoob
    @SockyNoob ปีที่แล้ว

    Doom Guy's eyes had me laughing. Look so hilarious in a terminal.

  • @Littlefighter1911
    @Littlefighter1911 2 ปีที่แล้ว +1

    I know a colleague at uni, that ported DOOM to RISC-V for a demo of our RISC-V CPU.
    I now feel stupid, for not asking him in time to upload the code to the uni repos.
    Your version in the terminal runs much faster btw.
    But our code was also largely unoptimized (I suggested making use of our extensions, as we were using an FPGA with a bunch of custom peripherals, but he was like: "Nah, this is more or less the original DOOM. Using our PPU for the color palette and our extensions would be cheating").
    But yeah, our 50MHz RISC-V CPU running on an FPGA runs DOOM in a playable manner, as well.
    Always funny to see other people doing the same stuff.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +1

      My emulated CPU is only around 200MHz on my laptop, so it shouldn't be _that_ much faster.

  • @lower_case_t
    @lower_case_t 2 ปีที่แล้ว +3

    Could that problem you describe at the end be a similar issue with signed/unsigned integers? Like, changing the position by x when moving forward, and x times -1 when moving backwards?

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +3

      That is possible. Though I have not debugged it yet.

  • @mattsadventureswithart5764
    @mattsadventureswithart5764 2 ปีที่แล้ว +3

    What's the font we see when you're looking at the makefile at 6:40? It looks so much better than what I'm using at the moment.
    Yes, I realise the video is about your work on doom for your emulator, and it's amazing what you've achieved, but that font looks fab.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +3

      audiolink.dev/

  • @GrayCrownRBLX
    @GrayCrownRBLX 2 ปีที่แล้ว

    i have a feeling that soon doom is gonna run on ANYTHING WITH A SCREEN

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +1

      Or without.

  • @TheMLover
    @TheMLover 2 ปีที่แล้ว +1

    Good video man!!!

  • @Rouverius
    @Rouverius 2 ปีที่แล้ว +2

    Great to see you back and apparently doing well.
    Hey, congrats on getting Doom to work,

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +3

      Thanks!

  • @gvl610
    @gvl610 2 ปีที่แล้ว +1

    Really smooth

  • @johanngambolputty5351
    @johanngambolputty5351 2 ปีที่แล้ว

    My god this channel is a treasure trove

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      I tryyy

  • @caittastic
    @caittastic 2 ปีที่แล้ว +7

    i want a doom deep dive!! doom code is always great to hear about

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +1

      I am not sure if I'd want to focus more on doom or the work I've done to be able to cram it into mini cupcake of an executable.

    • @caittastic
      @caittastic 2 ปีที่แล้ว +1

      @@CNLohr why not both!

    • @JamesChurchill
      @JamesChurchill 2 ปีที่แล้ว +1

      If you really want a DOOM deep dive, check out Fabrice Sanglard's Game Engine Black Book for it.

  • @fabillo522
    @fabillo522 ปีที่แล้ว +2

    I had the same bug launching the player forward on pressing backwards on a Raspberry Pi with my doom port! It's simply to do with Doom assuming a char is signed in the ticcmd_t struct in d_ticcmd.h. I fixed it by explicitly changing "char" to "signed char" haha

  • @TheosTechTime
    @TheosTechTime ปีที่แล้ว +1

    Yes, yes it can

  • @avejst
    @avejst 2 ปีที่แล้ว +3

    Impressive

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +1

      Thank you. But the real magic is in the Carmack Code.

  • @user-jp1qt8ut3s
    @user-jp1qt8ut3s 2 ปีที่แล้ว +2

    Cool! ❤️

  • @guest7329
    @guest7329 2 ปีที่แล้ว

    You can emulate A extension if code runs in Machine mode and interrupts are disabled. In lower privilege modes atomicity can't be guarantied because of M mode interrupts

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      Interesting point. I hadn't considered that. Are you pointing out that the atomicity of the load/store semantics will cause an issue if I am not properly emulating the memory slot? Do you mind opening a new github issue for this and explaining?

    • @guest7329
      @guest7329 2 ปีที่แล้ว

      ​@@CNLohr not quite, i send you PR

  • @Anon.G
    @Anon.G 2 ปีที่แล้ว +1

    This is so cool

  • @bearwolffish
    @bearwolffish 2 ปีที่แล้ว +1

    Very cool 👏🏽👏🏽

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      thanks

  • @yasha8951
    @yasha8951 2 ปีที่แล้ว +1

    I missed your videos!!, what font are you using on your console and editor?

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +1

      audiolink.dev/

  • @innocentsmith6091
    @innocentsmith6091 2 ปีที่แล้ว

    Turing completeness fan vs can-it-run-Doom-ness enjoyer

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      I think they are one in the same.

  • @golarac6433
    @golarac6433 2 ปีที่แล้ว +3

    There's a whole library dedicated to generaring optimal ASCII patterns out of pixel graphics, its called aalib. You should try using it. There's also a very cool demo using it called BB

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +3

      I have thought about using it, but it's all so much more complicated than the naive approach.

    • @golarac6433
      @golarac6433 2 ปีที่แล้ว

      @@CNLohr I never used it but I was under the impression that it just takes a pointer to a framebuffer and outputs the characters so it would be perfect for this. In fact you can already run doom on aalib in a way, because SDL supports it as a video driver, so chocolate doom using SDL can run in a terminal using aalib. Great channel btw, ive watched a bunch of your videos recently :)

  • @creatorbot0056
    @creatorbot0056 2 ปีที่แล้ว

    Im waiting for people to run doom on a breadboard at this point

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +1

      I feel like Ben Eater might have just been zapped in the back of his head.

  • @MostlyPennyCat
    @MostlyPennyCat 2 ปีที่แล้ว +1

    Needs a Teletext version for Prestel terminals.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      Sounds like a PR you should make!

    • @MostlyPennyCat
      @MostlyPennyCat 2 ปีที่แล้ว

      @@CNLohr
      This also reminds me of the world cup ASCII telnet server from 2006.
      I don't know the Doom source code, which file contains your code for choosing the characters and letters for a given block of pixels?

  • @maze7_7
    @maze7_7 2 ปีที่แล้ว +1

    dude, you rule

  • @magolor44
    @magolor44 2 ปีที่แล้ว +1

    Completely off topic, but which font are you using for your terminal emulator?

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      AudioLink Console audiolink.dev

  • @ExtemTheHedgehogLol
    @ExtemTheHedgehogLol ปีที่แล้ว

    "Okay, but can it run RISC-V?"

  • @ernststravoblofeld
    @ernststravoblofeld 2 ปีที่แล้ว

    Now I need an executable for my soldering iron.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      I still haven't done anything to support other screen sizes

    • @ernststravoblofeld
      @ernststravoblofeld 2 ปีที่แล้ว

      @@CNLohr I was joking. But it would be better than Tetris.

  • @rklein
    @rklein ปีที่แล้ว

    Has anyone found a way to run Doom on one of those digital fireplaces? Just think of all the romantic nights everyone will have!

    • @CNLohr
      @CNLohr  ปีที่แล้ว +1

      Are any of them controlled with individually addressable LEDs?

  • @Biggestsonicfan
    @Biggestsonicfan 2 ปีที่แล้ว

    Someday, I will put Doom on the Model2 arcade board. Intel 80960 Doom just sounds fun!

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +1

      And quirky.

  • @Bp1033
    @Bp1033 2 ปีที่แล้ว

    most terminals support sixel as a graphics mode, libsixel might be a good method to get a 320x200 postage stamp.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      If you're interested, you could totes make a PR.

    • @Bp1033
      @Bp1033 2 ปีที่แล้ว

      where should I start looking to find where it makes graphics into ascii?

  • @ClannerJake
    @ClannerJake ปีที่แล้ว +1

    i don't speak Q-Bit, but. i enjoyed the doom interpretive art. i wonder now, how detailed can you make dwarf fortress, doom fotress, i mean asci doom.

  • @AlsGeekLab
    @AlsGeekLab ปีที่แล้ว

    So, now that you have it running in text mode, and without MMU, would it be possible to make this DooM run on a pre MMU capable x86 such as the i80286 or even 8086? I think the entire retro community has been waiting for that for a long time! Please say yes!

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      It would just be uncomfortably unplayable. That and DOOM isn't exactly the smallest footprint, memory wise.

  • @YonatanAvhar
    @YonatanAvhar 2 ปีที่แล้ว +1

    I noticed that you added your font to the description, but Google didn't turn up any links relevant to it, do you have a link for where I find it?

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +1

      audiolink.dev/

    • @YonatanAvhar
      @YonatanAvhar 2 ปีที่แล้ว +1

      @@CNLohr thanks!

  • @BeHappyTo
    @BeHappyTo 2 ปีที่แล้ว

    Is there anyway to get AudioLink Mono Heavy font without installing AudioLink software?

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      audiolink.dev/

  • @thiagofalencar
    @thiagofalencar 2 ปีที่แล้ว

    I searched for the font family "AudioLink Mono Heavy" on the internet, but I didn't found. Someone can help me to find this amazing terminal font?

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      audiolink.dev

    • @thiagofalencar
      @thiagofalencar 2 ปีที่แล้ว

      ​@@CNLohr Thank you so much! I really liked these fonts! ❤

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      @@thiagofalencar llealloo is the author, not me!!

  • @bitelaserkhalif
    @bitelaserkhalif ปีที่แล้ว

    Next: RISC-y Apple

  • @sorin.n
    @sorin.n 2 ปีที่แล้ว

    You're a god!

  • @juniorsilvabroadcast
    @juniorsilvabroadcast 2 ปีที่แล้ว

    RISC-V can work with digital audio processing ?

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      It can. Though that matters more about the specific silicon surrounding the core.

  • @justanormalperson
    @justanormalperson 2 ปีที่แล้ว +2

    nice :)

  • @slavsquatsuperstar
    @slavsquatsuperstar 2 ปีที่แล้ว

    Next: Running Doom inside Doom

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      🤤

  • @DankyMankey
    @DankyMankey 2 ปีที่แล้ว +1

    Or you can get the 8BitGuy to do Pescii Robots on it

  • @jaciroscar
    @jaciroscar 2 ปีที่แล้ว

    What font is this? Beautiful

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      audiolink.dev/

  • @Cneq
    @Cneq 2 ปีที่แล้ว

    You should make a video on how to learn shaders in VRChat. I'm a computer science student and I really want to experiment with shaders [already been building with avatars/worlds] but I can't find any good resources on how to get started with shaders. I'm sure a lot of people would appreciate this from someone with your level of experience.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      I have thought about this a lot. And talked to others in the community. But I haven't had the "hook" to make it happen. It's a lot of work to make videos, and unless I'm relatively confident they'll get a lot of views it's hard to make them.

  • @viti95
    @viti95 2 ปีที่แล้ว +1

    If you want to make it look much better, use any 16 color wad as Doom palette is too oscure, and avoid using any text characters, half block characters are way better

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +2

      Someone's already added support for 256-color terminals.

  • @guest7329
    @guest7329 2 ปีที่แล้ว

    Im doing my big boy riscv64gc mmu emulator for 2 years. Right now putting jit into it. It's very cool that you can boot linux without mmu

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      I am curious what kind of performance factor you see.

    • @guest7329
      @guest7329 2 ปีที่แล้ว

      @@CNLohr it's interpreter, but with basic block caching (so I didn't parse instruction every time) and mmu caching(tlb's), so performance varies a lot when linux starts to flush caches.
      Best case is softpipe rendering glgears 100 million instructions per second, but it drops to 20mips on systemd startup.
      Also, I my rootfs is nfs, for ease of development

    • @guest7329
      @guest7329 2 ปีที่แล้ว

      @@CNLohr also, it depends on how close to so spec you wanted to be.
      For example: every target of branch instructions should be 4 bytes aligned (2 bytes if C-ext supported)

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

    awesome!!!

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

      Or maybe a class C amp. Never got a chance to try it though.

  • @Mkananoja
    @Mkananoja ปีที่แล้ว +1

    it now runs doom, but will it run skyrim?
    or crysis?

  • @unarei
    @unarei 2 ปีที่แล้ว

    7:34 oh god that's the worst. I immediately thought "oh, a different language would catch that" but would it? u32s can always be implicitly cast to i64s because an i64 can hold every possible u32 value-so no, it wouldn't. I guess one thing that could prevent that from being an issue is storing registers as as a union{u32, i32} instead, that way you have to select one each time. especially since so many riscv instructions are signed only or support signed ints. not sure though.

  • @Pacca64
    @Pacca64 2 ปีที่แล้ว

    Porting doom to TF2 would be pretty funny x3

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +1

      It may or may not happen. Not sure.

  • @bobthecannibal1
    @bobthecannibal1 2 ปีที่แล้ว +1

    But can it run Crysis?

  • @japroz
    @japroz 2 ปีที่แล้ว

    Your content is soooo good. Please please make a tutorial on how to write a RISCV emulator in C. Surprisingly, there's no good video tutorial on it

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      I put a link to the source code so you can look yourself. I tried to make it basic and document it.

  • @chronosVR.2763
    @chronosVR.2763 2 ปีที่แล้ว

    2:27 this works with python on windows too

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      yes it does

  • @kayakMike1000
    @kayakMike1000 ปีที่แล้ว

    Tons of errors in that compile, man... Did you lint that code?

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      I play it fast and loose.

  • @hezuikn
    @hezuikn 2 ปีที่แล้ว +1

    its a feature

  • @jgfjfgjfhjf
    @jgfjfgjfhjf 2 ปีที่แล้ว

    I understood some of the words you said

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      google is your friend. My goal in my videos is to send you down rabbit holes and to get you to start learning!

  • @JamesTDG
    @JamesTDG ปีที่แล้ว

    This is just 1337doom with extra steps, lol

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      I suppose so.

  • @proxy1035
    @proxy1035 2 ปีที่แล้ว

    oooh, emDOOM looks really interesting. but the 5MB WAD file seems like a major bottleneck for most if not all Microcontrollers (what low to mid tier MCUs have >5MB of flash?) and Von Neumann based DIY systems (68k, 65c816, Z80-ish, etc) where Program and Data share the same memory.
    i wonder how small the WAD would be if you cut everything except the first episode, or even just everything except E1M1 and all required graphics for it.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      It would likely be a lot better sized, and if you shrunk down things like the boot screen, etc. I think it would help.

    • @proxy1035
      @proxy1035 2 ปีที่แล้ว

      @@CNLohr i grabbed the full Ultimate DOOM IWAD and used SLADE to remove all music and sound effects, all levels except for episode 1, and all unused graphics. the total file size is down from 11MB to 7MB. (where did you get 5MB mentioned in the github from?)
      the main bulk are the graphics (~6.1MB). reducing all of them from 256 to 2 colors would cut the size down a huge amount...
      but then the game would be completely monochrome.
      so maybe halfing the resolution and going from 256 colors to 16 would be a better idea. in theory it should have the same decrease in file size as going monochrome.
      or maybe some basic file IO would be better to not have to load all levels and graphics into RAM at the same time

  • @Jkauppa
    @Jkauppa 2 ปีที่แล้ว

    try plane-ray intersection culling with sphere entity volumes (another type of bsp tree, more general hierarchical volumes tree) instead of normal doom render method

    • @Jkauppa
      @Jkauppa 2 ปีที่แล้ว

      its real 3d, not 2.5d, even if rendering vertical lines (the plane-ray of a vertical line of the monitor), more like quake but feels like doom/duke3d, its a specific case of a ray-caster

    • @Jkauppa
      @Jkauppa 2 ปีที่แล้ว

      manipulate the fonts on the fly per frame, to print the correct character pixels

    • @Jkauppa
      @Jkauppa 2 ปีที่แล้ว

      ie dynamic font bitmapping

    • @Jkauppa
      @Jkauppa 2 ปีที่แล้ว

      meh its a text mode pixel manipulation, only limit is how many character fonts you can have at one time, or just draw one text box at a time, then draw it, draw next, if you cannot access pixels directly

    • @Jkauppa
      @Jkauppa 2 ปีที่แล้ว

      fonts are pixels, bitmaps, ready to be blitted, right

  • @SAckTheGoof
    @SAckTheGoof 2 ปีที่แล้ว

    everything can run doom

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      google charles babbage's difference engine

    • @SAckTheGoof
      @SAckTheGoof 2 ปีที่แล้ว

      @@CNLohr what

  • @ForgottenSage
    @ForgottenSage ปีที่แล้ว

    Man can it run Bad Apple!!

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      Maybe sometime.

  • @AJB2K3
    @AJB2K3 2 ปีที่แล้ว

    Cool!

  • @EnriqueMcQuade
    @EnriqueMcQuade ปีที่แล้ว

    Is that a port of Doom for RISC-V?

    • @CNLohr
      @CNLohr  ปีที่แล้ว

      yes

  • @InfoSecDojo
    @InfoSecDojo 2 ปีที่แล้ว +1

    for how long you've been coding tho? i mean your XP 🤔🤔

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      Almost 30 years.

  • @emilyy-dev
    @emilyy-dev 2 ปีที่แล้ว

    Next up: but can it run Crysis?

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      Make it open source.

  • @Blackerer
    @Blackerer 2 ปีที่แล้ว

    Heh, this reminds me, when I used to draw graphics in Pascals by writing to B800:0000 (or what was the magic number) with ascii. Easy to do Tetris, Sokoban, or Snake. Really nice job with the emulator and bughunting.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      Depends on the video mode. 0xA000:0000 or somewhere in the B's.

    • @T3sl4
      @T3sl4 2 ปีที่แล้ว

      Yup! Or, I grew up with an 8086 with built-in 128k EGA. You can write to all of 0xA000:0 to 0xB000:FFFF, 640x350 at 16 colors, two pages. What luxury!
      Or should I say &HA000 because I was mostly poking around in QBASIC at the time (yuck!). Oh but it was so weird, with the bitplanes. Took me a while to find out you need to talk to the graphics registers too, to draw any colors.

    • @Blackerer
      @Blackerer 2 ปีที่แล้ว

      @@CNLohr yeh, I think it was the 80x?? mode? I remember having to switch. Ive just checked B800 is really the magic memory address in pascal. Im probably just remembering 16bit version. So just B800.

  • @adissentingopinion848
    @adissentingopinion848 2 ปีที่แล้ว

    3:02 Ah, back to BASICs. Screw OpenGL, we're poking now.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      bingo :figerguns:

  • @joedoe3688
    @joedoe3688 2 ปีที่แล้ว +1

    wow

  • @KaziiTheAvali_inactive
    @KaziiTheAvali_inactive 2 ปีที่แล้ว +1

    cannon player XD

  • @Mainyehc
    @Mainyehc 2 ปีที่แล้ว +1

    But can it run Crysis? 🤔

  • @CatzRuleGaming
    @CatzRuleGaming ปีที่แล้ว +1

    Unless it can run Doom, it's a bad system

  • @nulcow
    @nulcow 2 ปีที่แล้ว +1

    Why is everyone so interested in RISC-V lately? I've barely even heard of it until recently, and I figured that ARM was the superior RISC architecture anyway. What's so special about RISC-V?

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +2

      It's that the ISA, spec, toolchains are all open source. So if you want to work on a RISC-V you don't have to learn absurdly specific and proprietary stuff just to use the base CPU.

  • @slash213
    @slash213 2 ปีที่แล้ว

    Is this some kind of dyslexia-friendly font? If it's just a stylistic choice, it certainly is unusual.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว +1

      It's just AudioLink Console audiolink.dev

    • @slash213
      @slash213 ปีที่แล้ว

      ​@@CNLohr don't take this the wrong way, but I would shoot myself if this was the only terminal font available. Or switch jobs I guess
      The font is obviously no barrier to you, I was just curious if it's a necessity

  • @kanjdostuff
    @kanjdostuff 2 ปีที่แล้ว

    but can it run bad apple?

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      Maybe some day.

  • @onedeadsaint
    @onedeadsaint 2 ปีที่แล้ว +1

    I know some of these words.

    • @CNLohr
      @CNLohr  2 ปีที่แล้ว

      Google is your friend! My goal in my videos is to send you down rabbit holes and to get you to start learning!