Will it Run Doom? - Making an 8 Bit pipelined CPU

  Рет қаралды 114,887

James Sharman

James Sharman

Күн бұрын

Пікірлер: 935
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Join us on Discord: discord.gg/jmf6M3z7XS Support the channel on Patreon: www.patreon.com/JamesSharman Watch the companion video “Programming Doomed” on my Extras channel: kzbin.info/www/bejne/qXSWeqapnZqWhrM
@DRAWKCABLLA
@DRAWKCABLLA 2 жыл бұрын
holy moly m8. please pick up unreal engine, these game companies need dudes like you.
@UsagiElectric
@UsagiElectric 2 жыл бұрын
That is ridiculous levels of impressive! Getting 3D raytracing done in an 8-bit is a level of difficulty that I can't even begin to wrap my head around. Very, very well done!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Usagi! This wasn't raycasting though, it's more of a portal renderer which eneded up being a bit more efficient on a low end cpu with a low register count. I have a programming video which explains a bit more about some of the challenges.
@primus711
@primus711 2 жыл бұрын
Now the centurion lol
@primus711
@primus711 2 жыл бұрын
@@weirdboyjim have you seen AMIGA DREAD Doom clone running on stock A500
@galier2
@galier2 2 жыл бұрын
Doom engine is not raytracing but raycasting, something completely different.
@bzuidgeest
@bzuidgeest 2 жыл бұрын
Now you have to one up him and port ASCII doom to the centurion.
@lawrencemanning
@lawrencemanning 2 жыл бұрын
That is breathtaking. And like you said, it’s yours: from the logic gates to Wolfenstein Lite. This is how Seymour Crey must have felt when he toggled in his boot loader for the first time. Absolutely amazing. But yes, it needs gameplay. :)
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Lawrence! I'll see what I can do about the gameplay later.
@草-t8i
@草-t8i 2 жыл бұрын
Is it really wolfenstein lite, when it supports angled textured walls?
@brandonmack111
@brandonmack111 2 жыл бұрын
Seriously impressive demo, and very cool. It reminded me a bit of the old windows maze screensaver, before you mentioned Wolfenstein. Probably just that I have more experience with the one than the other.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Brandon! I remember that screen saver!
@Schwuuuuup
@Schwuuuuup 2 жыл бұрын
This is absolutely amazing! Never could have hoped that you get this level of performance out of some ICs... Although I understood logic gates and programmed my C64 in Basic since I was 10 or so, the connection between those levels of detail always seemed like Magic to me. That's why I love this series!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks! I got a real kick out of doing it!
@emmanuelmeyer4737
@emmanuelmeyer4737 2 жыл бұрын
E3 ce r=³
@schrodingerscat1863
@schrodingerscat1863 2 жыл бұрын
Have to admit, getting a ray caster working on an 8 bit CPU with texturing and angled walls is extremely impressive. Especially as it looks like a decent frame rate too, must have been a hell of a lot of effort optimising to achieve this.
@bzuidgeest
@bzuidgeest 2 жыл бұрын
He actually said the exact frame rate. 19fps. I have played games slower then that, but not by much.
@schrodingerscat1863
@schrodingerscat1863 2 жыл бұрын
@@bzuidgeest I know, a ray caster with 19fps for a home brew computer with home brew CPU, it's incredibly impressive.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Have you watched the programming video yet? It's not actually a raycaster but something a little more suited to this particular cpu.
@schrodingerscat1863
@schrodingerscat1863 2 жыл бұрын
@@weirdboyjim I haven't watched that yet, I just thought ray caster as it looks very like Wolfenstein. Will have to check out how you managed to do this as it looks very fast for an 8 bit system.
@Ehal256
@Ehal256 2 жыл бұрын
@@schrodingerscat1863 Generally (but not always), walls not being aligned to a grid means it's not a raycaster :)
@olik136
@olik136 2 жыл бұрын
very impressive- I was expecting something like the doom version that runs on a Ti-83 calculator- but this turned out way better
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Oli! Glad you liked it!
@peter.stimpel
@peter.stimpel 2 жыл бұрын
Whooohooo rickrolled by a homebrew 8bit CPU - LOVE IT! Nice achievement of putting the demo together.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Peter! I wasn't going to let you down!
@peter.stimpel
@peter.stimpel 2 жыл бұрын
@@weirdboyjim This triggered me to become Patron of yours, finally. Should have done this some time ago, so sorry for my laziness
@HAGSLAB
@HAGSLAB 2 жыл бұрын
Haha, I knew that would be a Rickroll 😆 I've done something very similar on one of my C64 videos funnily enough. You might enjoy that video, it's called "C65 mazes, randomness...", should be easy to find on my channel page :)
@GuyWithASolderingIron
@GuyWithASolderingIron 2 жыл бұрын
i got too
@ecosta
@ecosta 2 жыл бұрын
Honestly, I'm way more amazed on how you code the demo than if it actually run Doom. Really cool stuff!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
That's good. Coding this was probably much more effort that porting doom to a more capable processor that already had a c++ compiler available.
@jerril42
@jerril42 2 жыл бұрын
That is fantastic. I thought of Wolfenstein right off. Yes, it was very well time spent. Thanks James. Take care.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks jerril42! Glad you found it interesting!
@bradywb98
@bradywb98 2 жыл бұрын
This is actually amazing! Great job, this far exceeded my expectations.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Brady! Good to hear I can still surprise! ;-)
@Dave5281968
@Dave5281968 2 жыл бұрын
You have VERY good reason to be extremely proud of this build. And in the process you have created a series that will help young people discover that they may want to follow a career designing and developing digital hardware. This is, of course, in addition to the many hours of fun to be had in watching this series. (Probably unique in its' content on KZbin for many years to come!) PS: Surprisingly excellent frame rate in the maze demo!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Dave! I'm just happy that people are interested in what I'm doing!
@DonLuca27
@DonLuca27 2 жыл бұрын
Wow, the framerate in the demo is incredible, you must have done some some insane optimization to have it run that well. I'm seriously impressed.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Glad you liked it!
@Argiflex
@Argiflex 2 жыл бұрын
This is incredible work, especially for one person. Not just the task you did but the presentation and video and audio is all great!! Your channel needs more eyes on it so I'm gonna share it around and hope to get at least 2 more eyes on it cuz hot darn this is really cool!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks for the kind words, glad you found it interesting!
@___aZa___
@___aZa___ 2 жыл бұрын
Good sir, this is INSANE You made your own fricking CPU, GPU and now programmed a 3D(ish) game in Assembly for that!!!! Well done!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thank you! Glad people are Enjoying it!
@TrollingAround
@TrollingAround 2 жыл бұрын
Love this, having written a few ray casting engines myself I appreciate the update speed you've achieve on this (your) hardware. Love your vids, they lift my spirit whenever I see there's a new one to watch. Thank you.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks for the high praise! Check the programming video though, this isn't actually a ray-casting engine. I used a different technique more suited to this cpu.
@SuperAnthony1982
@SuperAnthony1982 2 жыл бұрын
Mindblowing! 👏 I've done some 3d stuff on z80 and 6502 cpus so can understand what your homemade system is having to deal with and to do it with this performance... just wow!.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks SuperAnthony!
@phirenz
@phirenz 2 жыл бұрын
That's awesome and about what I expected. With pipelining and a well-designed graphics system, your 8 bit cpu is probably closer to many 16 bit era computers/consoles than the 8 bit era. And there were a non-zero number of "Wolfenstein-ish" demos/games on those. Including Wolfenstein. Would be interesting if you could push it a bit further to the point where you have different height floors/walls.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
One of the biggest challenges was the register count, I have to use 2 registers to store a 16bit value which makes things very tight. I was forced into architectural decisions that would have been different on a 16bit cpu.
@phirenz
@phirenz 2 жыл бұрын
Looking forwards to watching the technical details video (which I see you gave already released)
@TheDoctorhuw
@TheDoctorhuw 2 жыл бұрын
Fantastic achievement, Well done James. looking forward to the next instalment. Thank you.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Many thanks!
@FrankGevaerts
@FrankGevaerts 2 жыл бұрын
This looks great! Looking forward to the explanation video. I like the attention to detail, even on the asides, that bluescreen really does get everything right! :)
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Frank. I didn't want to let you down!
@FrankGevaerts
@FrankGevaerts 2 жыл бұрын
@@weirdboyjim Well played!
@kterstal
@kterstal Жыл бұрын
Thanks
@weirdboyjim
@weirdboyjim Жыл бұрын
Very Generous thank you!
@perry4808
@perry4808 2 жыл бұрын
Absolutely damn amazing. Deserves so much more recognition. Good work.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Perry!
@AlsGeekLab
@AlsGeekLab 2 жыл бұрын
Very impressive indeed! Can't wait to see what you do with that demo, hopefully you and/or the community turn it into something playable!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
My plan is to leave it for a little bit and update it for a later version of my 3d hardware.
@damouze
@damouze 2 жыл бұрын
Another amazing video! It really says a lot about the staying power of a title such as doom that it is still used as a sort of benchmark for gaming today. I remember back in the day that I was really impressed with the game, but also that I was never very good at it, lol. With regards to memory. From what I recall in earlier videos your memory interface is generic enough that you would be able to replace it with a memory module that has some sort of banking mechanism on-board. Have you ever considered doing that, or are you considering doing that now?
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Damouze. I could add some banking in the same way it was done on earlier 8-bit cpu's but I don't have any specific plans for that. Those techniques were done to expand the capabilities of fixed cpu's but if I really wanted more ram I could always try to expand the address space of the cpu itself. Might make for an interesting example if there was call for it though.
@DigicoolThings
@DigicoolThings 2 жыл бұрын
Absolutely brilliant! Surely nothing would beat the level of personal satisfaction achieved, from developing a demo like this for your own unique hardware design. Also, it definitely reiterates your level of passion for this project, given that all of your coding effort has a target market of just (currently) one machine! Glad you mentioned Wolfenstein, as my first thought was that the Doom prequel Wolfenstein 3D would have been a more logical “Can it run ….” question. ;)
@weirdboyjim
@weirdboyjim 2 жыл бұрын
I agree, feature wise it's a couple of steps away from Wolf towards doom but still closer to Wolf.
@alabamacajun7791
@alabamacajun7791 2 жыл бұрын
Awesome job on some amazing kit. Seeing a 3D engine running hit this one out of the park. I guess running Life, Pacman or other games is yesterdays news after the video. 5 star project.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Alabama! That's some high praise.
@aretheytheahole
@aretheytheahole 2 жыл бұрын
Great job. We are all proud of you :)
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks! Glad you liked it!
@CeDoMain
@CeDoMain 2 жыл бұрын
Im very impressed, specially after watching the explanation Video. James I like your work and intelligence to develop this! 😎
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Ce Do!
@jamesbutler2202
@jamesbutler2202 2 жыл бұрын
This is amazing well done mate. loving all the videos keep up the great work :)
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks James! Glad you found it interesting!
@sonic2000gr
@sonic2000gr 2 жыл бұрын
This demo is amazing!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Manolis! Glad you enjoyed it.
@Masamune_Shadow
@Masamune_Shadow 2 жыл бұрын
I was blown-away at how fast that demo runs. And so smoothly! Please keep up the fantastic work!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks! Glad you enjoyed it!
@thebaconbreadful
@thebaconbreadful 2 жыл бұрын
this is my first video I've seen from you and color me impressed. You really did great and the best part of the video for me was you saying that you are pleased with the result.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Glad you found my channel!
@nicwilson89
@nicwilson89 2 жыл бұрын
5k lines of assembly...that's some dedication there haha :D This is incredibly impressive!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks! Only way to develop for this thing at the moment.
@justincarter7954
@justincarter7954 2 жыл бұрын
@@weirdboyjim I'm sure its on your backlog, but it'd be amazing to see support for C stdlib, I'm sure it shouldn't be too hard to set up a compiler using llvm
@Friedslick6
@Friedslick6 2 жыл бұрын
Your demo ran extremely well! Thanks for the in-depth video.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Glad you found it interesting!
@vincei4252
@vincei4252 2 жыл бұрын
Will it run Crysis ?
@weirdboyjim
@weirdboyjim 2 жыл бұрын
[PicardFacepalm.gif]
@vincei4252
@vincei4252 2 жыл бұрын
@@weirdboyjim 😁 You knew this one was coming :)
@hammyCoder
@hammyCoder 2 жыл бұрын
What a project. I admire the tenacity to stick with a two year personal project. Usually after a few cycles of not showering enough I'm on to the next shiny thing.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Trust me, it’s the video editing that adds up!
@OscarSommerbo
@OscarSommerbo 2 жыл бұрын
Woo!! Happy birthday to me, I got not one but two James videos as a present!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Happy Birthday Oscar!
@vke6077
@vke6077 2 жыл бұрын
Well done James, I found your channel through this video, you have some great content. Thanks and keep it up
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Welcome! Hope you enjoy the rest of it!
@KeithZim
@KeithZim 2 жыл бұрын
Amazing work!! I once learned to write simple programs for the Z80 in machine code to run stepper motors and ladder logic control systems. That was a serous workout for my brain so I really mean it when I say: Respect!!!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Keith, respect to anyone who gets down to machine code / assembly language.
@TheDefpom
@TheDefpom 2 жыл бұрын
Very impressive, as is all of your project!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thank you very much! Always good to hear from you Scott!
@Quxxy
@Quxxy 2 жыл бұрын
That's an amazing bit of work. Looking at that got me thinking about playing the original Wolf3D on our 386 and how this looks to be running smoother than that did. Of course, this is running a much lower resolution, but *still*. Will definitely be watching the companion video when I have the chance.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Quxxy! glad you liked it.
@billylavender1185
@billylavender1185 2 жыл бұрын
Wow, this is incredible! As a final project in university, we worked on a similar 3D POV sim concept with an FPGA. Such was already a challenging task, but to do it with an 8-bit CPU.....I commend you deeply sir. Cheers from Michigan 🥂
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Nice, how much did you do on the fpga?
@wootks
@wootks 2 жыл бұрын
Great work! This is an awesome achievement for a homebrew computer project. Amazing stuff.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks! Pleased you found it interesting!
@Lampe2020
@Lampe2020 2 жыл бұрын
When you said "pushing the boundaries of what a system can do" one game came to my mind: Teardown. If you do nothing it will run fine even on not-so-great hardware but if you load a world with lots of moving voxels on high graphics and destroy lots of voxels you will be able to bring down even the biggest monster of a computer...
@weirdboyjim
@weirdboyjim 2 жыл бұрын
I'll look out for it.
@EvilTim1911
@EvilTim1911 2 жыл бұрын
Incredible work, I'm floored you got that demo coded up and running considering the limitations
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks! I was very pleased with it.
@ChiEKKUsama
@ChiEKKUsama 2 жыл бұрын
This is why the 90s were magical to me; you could do so much with 8 or 16 bit systems. Nowadays everything is so rote and bloated, it feels like we're going backwards.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
When we gained hardware triangle drawing it seemed to take a lot of the variation out of engines but shader hardware has made things more flexible again.
@edgeeffect
@edgeeffect 2 жыл бұрын
Looking good! My idea of 3D maze games from the 8-bit era is 3D Monster Maze on the ZX81... so you've blown my expectations out of the water. ;) I love your phrasing "THE question". :D :D :D Love the "Doom loading screen" wind-up demo too!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Glad you liked it edgeeffect!
@sundhaug92
@sundhaug92 2 жыл бұрын
1:39 how many colors does it use though? Might be able to squeeze that down with "just" a palette
@weirdboyjim
@weirdboyjim 2 жыл бұрын
It’s 256 colours in a rgb332 fixed palette. A lut palette addition tot the vga circuit will come in a future build video.
@sundhaug92
@sundhaug92 2 жыл бұрын
@@weirdboyjim Yeah I was thinking maybe they don't use all 256 color or something
@natewaddoups6708
@natewaddoups6708 2 жыл бұрын
This is phenomenal. Bravo!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Nate!
@electronash
@electronash 2 жыл бұрын
This is great, James. I'm very impressed at how fast it can render things already.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Ash! Slowly getting there.
@MaxintRD
@MaxintRD 2 жыл бұрын
Absolutely impressed on what you've achieved. I also got that Wolfenstein feeling from the get-go. Well done! As for gameplay; it also reminded me of that ZX81 game called Maze, in which a very rudimentary Godzilla monster was chasing me through a line-drawn 3D maze.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Marcel! You could make an argument that 3D Monster Maze was a precursor to modern first person gaming.
@bleepbloopblahp
@bleepbloopblahp 2 жыл бұрын
Just brilliant. I'm thoroughly impressed. Subscribed!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Welcome Danny!
@PCRetroTech
@PCRetroTech 2 жыл бұрын
That's extremely impressive work. Congratulations. Whilst the reward of creating the demo is seeing it run, I'm sure it is also cool to see the reactions people have to it. And you certainly deserve that. Much kudos!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thank you very much! It has been rewarding!
@SpazeDJ
@SpazeDJ 2 жыл бұрын
so fkn nice thumbnail, love the colors
@SpazeDJ
@SpazeDJ 2 жыл бұрын
if u glitch it u may have an artwork
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks, been trying to develop my thumbnail game.
@DavidWatts
@DavidWatts 2 жыл бұрын
Wonderful, loved this video mate.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks David! Glad you liked it. Hope the renovations are going well!
@kasparroosalu
@kasparroosalu 2 жыл бұрын
That error screen got me and I'm not even mad. Impressive work with the demo!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks! There is a story behind that. I pulled up a picture of a current windows blue screen as I wanted to try and make it reminiscent of that. It had the big sideways emoji, some text and a QR code. And I just so happened to already have a qr code in my scratch images folder...
@javimania111
@javimania111 2 жыл бұрын
KZbin recommended this video to me and thank goodness it did! I subscribe without hesitation! A "3D" demo on a homemade 8-bit processor, it's awesome!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Welcome! Glad you found it
@SyphistPrime
@SyphistPrime 2 жыл бұрын
This is seriously super cool. I'm impressed that this is all custom built by you. Do you have any plans to document how to build a replica of it or make an emulator? I think both would be cool to eventually have so you can share your work in a more interactive way.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
The videos are sort of documentation right? Most of the pcb schematics are on my easy eda profile linked on the channels about page. There is a simulator that you can get from the toolchain channel on the discord.
@SyphistPrime
@SyphistPrime 2 жыл бұрын
@@weirdboyjim yeah, of course the videos are documentation. And the schematics being available and a simulator is great too! Thanks for letting me know.
@canonsonico3752
@canonsonico3752 2 жыл бұрын
Im living in a world MADE by people like this man. Thank you so much
@weirdboyjim
@weirdboyjim 2 жыл бұрын
This is not the birth of modern micro computing, this is just a tribute. 😉
@MonsterJuiced
@MonsterJuiced 2 жыл бұрын
This is phenomenal! Beautiful work I'm so impressed
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks! Glad you liked it!
@mr_noodler
@mr_noodler 2 жыл бұрын
That is so incredibly amazing! Well done! I remember the original Doom running on x386 & x486 computers, I believe they were 32 bit processors. So I think I’m the end Doom might not run on your computer
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Indeed
@McTroyd
@McTroyd 2 жыл бұрын
Very nice demo for an 8-bit micro! I remember trying to run Doom and Wolfenstein on the school computers "back in the day," and the low-spec 486s didn't even run THAT smoothly. 👍 May I ask what sort of games you work on professionally?
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Glad you liked it Ted! Start with a look at the game boxes in my youtube banner ;-)
@tylerstarkey9141
@tylerstarkey9141 2 жыл бұрын
Thank God for the algorithm lol! Very cool project and a new sub to the channel. Best of luck on your project sir, Bravo!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thank you! I’m pleased you found it interesting!
@DavidDrury90
@DavidDrury90 2 жыл бұрын
Doom brought me here, but you earned my sub. I wouldn't of found you most likely had I not seen the article! The 8 bit ray caster is awesome!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Glad you liked it! You should check out the programming video though, this isn’t a ray caster.
@DavidDrury90
@DavidDrury90 2 жыл бұрын
@@weirdboyjim now I'm intrigued
@CollinBaillie
@CollinBaillie 2 жыл бұрын
The use of the doom sounds for The Question grabs was perfect. And, are you using Minecraft textures in the demo?
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Was fiddly getting the gunshots synced up with the images.
@bknesheim
@bknesheim 2 жыл бұрын
Have you thought of adding a integer co-processor for 16-bits numbers? Multiplication and division should not need that many circuits, but could add a nice speed up to game graphics. I at least think it would be a very interesting add-on to the project ( but I am not the one that have to do the work 🙂)
@helmutzollner5496
@helmutzollner5496 2 жыл бұрын
Yes, a multiply and divider circuit would be quite interesting to see. Did a multilier circuit in DigiSim a while ago using the 'Russian Peasant Multiplication' method. It is essentially just the conditional addition and right shifting. But I guess it will take a lot of TTL circuits, because you need loads of adders. However I managed to do it in a three stage pipeline. Would be interesting to see how James approached that. Also he would need a double width result register.
@bknesheim
@bknesheim 2 жыл бұрын
@@helmutzollner5496 Most admit that I have not a clue for the actual amount of logic gates needed. The closest have have done is helping with the programming of a limited instruction set soft CPU. We had to make all the Op-code logic for the instruction set, but not the actual hardware. It included integer math function, but what that add up to in gates someone else have to figure out.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
I did a video on my optimized multiply code a while back. kzbin.info/www/bejne/Z5PGkHeVq7B3n6s
@weirdboyjim
@weirdboyjim 2 жыл бұрын
The biggest "bang for buck" would be to add a hardware 8x8 multiply, having a co-processor for 16bit numbers would be a big chunk for the effort to create a 16bit cpu.
@bknesheim
@bknesheim 2 жыл бұрын
@@weirdboyjim Was sort of afraid of that that could be the case, but 8x8 would be nice. 👍
@Peter_S_
@Peter_S_ 2 жыл бұрын
From one CPU designer to another, my hat is off to you, Sir! Brilliant! Absolutely brilliant!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Peter! Glad you liked it!
@igotes
@igotes 2 жыл бұрын
Wow. Pretty fast frame rate too. Great work!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks igotes!
@klaasbernd
@klaasbernd 2 жыл бұрын
extremely impressive. Breathtaking. That is super incredible.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks! Glad you like it!
@guaposneeze
@guaposneeze 2 жыл бұрын
Absolutely bonkers how impressive that demo is. With the angled walls, it is way ahead of a ton of real attempts at "doom clones" from the early 90's that needed a 486.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks! Glad you liked it!
@ncot_tech
@ncot_tech 2 жыл бұрын
I am happy the QR code went to where I expected it to go.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Never gonna to let you down!
@dimitrioskalfakis
@dimitrioskalfakis 2 жыл бұрын
impressive work. keep it up!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks! I will.
@0xABADCAFE
@0xABADCAFE 2 жыл бұрын
That demo is superb! Bravo!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks! Glad you liked it.
@francoisdastardly4405
@francoisdastardly4405 2 жыл бұрын
VERY IMPRESSIVE !!!! Man ! You are amazing.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks! Glad you found it interesting!
@chopper3lw
@chopper3lw 2 жыл бұрын
Nicely done!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks for the visit
@wChris_
@wChris_ 2 жыл бұрын
will you write a C compiler for this CPU? I think it would be very interesting (to also pick up where bisqwit just stopped). Or maybe add this architecture to an already existing Compiler like LLVM or SDCC which is actually made for these architectures.
@bzuidgeest
@bzuidgeest 2 жыл бұрын
Creating a compiler is a lot of work and only makes sense if multiple people are going to work on it. And for now despite being as very impressive project i doubt that.
@angeldude101
@angeldude101 2 жыл бұрын
One of the reasons Risc-V is a decently popular target for homebrew is the fact that our already had compilers available.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
It would have to something more like "small c", LLVM is very much targeted towards 32 bit cpu's. The problem with targeting a compiler is you have to put large amounts of effort into make them generate good code.
@bzuidgeest
@bzuidgeest 2 жыл бұрын
@@weirdboyjim I am not sure that's completely accurate. LLVM should be able to deal with any size target. If your architecture is 16 or 8 bit you just have more work to do to convert 32bit virtual instructions to 8 bit in your hardware specific backend. The front-end language doesn't care. However if you don't inform the programmer to account for the backend limitations your will not get very performant code out. And your absolutely right it's a massive amount of work.
@wChris_
@wChris_ 2 жыл бұрын
@@weirdboyjim well avr is 8 bit and its one of the targets of llvm but it seems like llvm needs a lot of registers to produce good code. And next to small C there is all so tiny C. My thought by using llvm is that it may be a more educational experience for when someone else wants to write their own backend for llvm.
@danre23
@danre23 2 жыл бұрын
that was amazing! i just suscribe expecting more of this
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks. I hope I don’t disappoint!
@gregorymccoy6797
@gregorymccoy6797 2 жыл бұрын
That is very impressive. Well done, Sir.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thank you kindly!
@rauljvila
@rauljvila 2 жыл бұрын
WOW!!!! That was trully impressive! Congratulations. No to the Extras channel to enjoy the deep dive :D. Thanks for the great content!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Glad you enjoyed it!
@qbasic16
@qbasic16 2 жыл бұрын
Awesome work, James! 😎
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks! Glad you liked it!
@HyperMario64
@HyperMario64 2 жыл бұрын
Sick! Achieving this is the dream of a lot of enthusiasts :o Any plans to get to a tighter level of integration? Perhaps a custom minimalist SoC on a multi-project wafer using a reasonable process. Integrated circuit design is still a niche and I think it may interest quite a lot of people here.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Glad you liked it! I won’t take this build much further but it would be cool to progress a future one along those lines
@thePatrickMartens
@thePatrickMartens 2 жыл бұрын
That's seriously a very impressive skillset! great vid
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Glad you liked it!
@RandallStephens397
@RandallStephens397 2 жыл бұрын
On a whim, I scanned that qr code... Was not disappointed.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
I'm never gong to let you down! 😉
@magrathean0
@magrathean0 2 жыл бұрын
Unbelievable! - subscribed.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Welcome!
@1life530
@1life530 Жыл бұрын
Thank you for existing!
@weirdboyjim
@weirdboyjim Жыл бұрын
My pleasure!
@pipsqueak2009
@pipsqueak2009 2 жыл бұрын
Amazing!! Well done Sir!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks! Glad you liked it!
@HAGSLAB
@HAGSLAB 2 жыл бұрын
That is a GREAT demo! Well worth the time and effort. Love your 8-bit machine too :)
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks! Glad you found it interesting!
@cabletie
@cabletie 2 жыл бұрын
Thanks for the RR James Sharman!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
I’m never going to let you down
@AW-hi9hj
@AW-hi9hj 2 жыл бұрын
I’ve been making a reduced instruction set computer for one of my classes. I’ll need to look into pipelining it!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Hope it goes well!
@ivanscottw
@ivanscottw 2 жыл бұрын
This is an amazing project ! I've seen all the vids, I keep on waiting for more progress. As stated before, I only barely grasp the complexity of the whole build, but this is amazing ! I've known CPU pipelining for a while (I come from the IBM mainframe world, but not the hardware part - just the systems part), so I understand the concept of pipelining, but seeing you actually do it with (somewhat) discreet components (ok, I still believe using ROM chips is cheating - but let's not delve on that) ! Well done James !
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Ivan. You do know most cpu's have some internal rom like structures for decode right? Including the classics like z80 and 6502.
@ivanscottw
@ivanscottw 2 жыл бұрын
@@weirdboyjim I always thought that instruction decode were done through some sort of sieve made out of logic gates ;).. The instruction coding of the 6502 was fairly easy to interpret based on the bit pattern of the opcodes - even leading to discovering "hidden" instructions that just were not documented (but worked on the original 6502) - They were probably not documented because there was really no actual use for them - or were just plain silly - but still they worked as expected.
@SarahWattCA
@SarahWattCA 2 жыл бұрын
I'm curious how you handled the angled walls. I wrote a raycaster a while ago and the algorithm is a lot easier and faster if the geometry conforms to a grid because it greatly reduces the number of possible points of intersection along a given ray. So it's amazing to me that you got it working so fast, especially on this computer. edit: Oh there's a video on your extras channel about this, cool
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Yeah, it’s not a ray caster although you could do that with angled walls with different tricks.
@gasparbarraza9154
@gasparbarraza9154 2 жыл бұрын
you are a genius my man, nicely done!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Glad you liked it!
@andymouse
@andymouse 2 жыл бұрын
Nice one James !.....cheers.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks andymouse!
@acresir
@acresir 2 жыл бұрын
Best thoughts for the future of the project! Some have made extremely bare bone versions for calculators, microwaves and so on...
@weirdboyjim
@weirdboyjim 2 жыл бұрын
I could use the engine I’ve built to make that kind of game, but I wouldn’t consider that to be doom.
@HypnoGenX
@HypnoGenX 2 жыл бұрын
Downright inspiring.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks! Glad you found it interesting!
@willynebula6193
@willynebula6193 2 жыл бұрын
James, how you don't have over 100k subs is just unacceptable imo. Just step back and have a real look at what you have made. Impressive is an understatement! More people need to see this awesome project.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Nice of you to say! Subscriber counts are a weird thing. I'm stunned by the number of people who are interested, I suspect I lack the charisma to get big numbers in a niche like this.
@paulwratt
@paulwratt 2 жыл бұрын
The "almost" killer app ... :) ( I think the Doom midi theme song is bigger that _all_ the machines memory, then again, maybe not - it'd be cool if this "demo" was finished over time, and at 5k lines of assembly, there is certainly room for more bugs, I mean features, even multiplayer possibly .. maybe .. sorta .. hell if you can run Elite on a BBC Micro, its more than possible - "But can it run Elite" - actually if you can add Z height to the map, "it could run Crysis" :) ) Welcome to DoomStien!!!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
I actually had a crack at getting the music going but my midi code doesn't support different instruments and the percussion broke it. I'll have to take a longer look at it some time.
@NANDOFFDataRecovery
@NANDOFFDataRecovery 2 жыл бұрын
Excellent work!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Mark!
@ColinTimmins
@ColinTimmins 2 жыл бұрын
That was really impressive. Sub earned for sure and I’m interested in looking at your work. =]
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Colin, glad you liked it, hope the other vids live up to expectations.
@bengelman2600
@bengelman2600 2 жыл бұрын
That's really nice!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Thanks Brandon, glad you enjoyed it!
How Many Potatoes Does It Take To Run DOOM?
16:59
Equalo
Рет қаралды 3 МЛН
小丑教训坏蛋 #小丑 #天使 #shorts
00:49
好人小丑
Рет қаралды 52 МЛН
Quando A Diferença De Altura É Muito Grande 😲😂
00:12
Mari Maria
Рет қаралды 44 МЛН
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 699 М.
Doom The Way it Was Meant to Be Played - v1.1 Multi-monitor
37:43
Tech Tangents
Рет қаралды 857 М.
Programming Doomed
26:24
James Sharman Extras
Рет қаралды 13 М.
Design Retrospective - Making an 8 Bit pipelined CPU
1:15:32
James Sharman
Рет қаралды 19 М.
The 6502 CPU Powered a Whole Generation!
25:17
The 8-Bit Guy
Рет қаралды 532 М.
Why Doom is Awesome: Binary Space Partitioning
26:25
ShreddedNerd
Рет қаралды 1,1 МЛН
The world's worst video card?
32:47
Ben Eater
Рет қаралды 6 МЛН
I designed my own 8-bit computer just to play PONG
17:19
Growing Living Rat Neurons To Play... DOOM? | Part 1
27:10
The Thought Emporium
Рет қаралды 3,8 МЛН
Palette PCB - VGA from Scratch - Part 19
30:01
James Sharman
Рет қаралды 8 М.
I built my own 16-Bit CPU in Excel
15:45
Inkbox
Рет қаралды 1,6 МЛН
小丑教训坏蛋 #小丑 #天使 #shorts
00:49
好人小丑
Рет қаралды 52 МЛН