Introduction - VGA from Scratch - Part 1

Ғылым және технология

The start of a new side project to build a VGA display interface for my homebrew cpu. This will probably be the largest side project so I start with a discussion on my goals for the build and then go on to get the most basic possible version working to get things going.
0:00 Introduction
1:58 Project Goals
6:16 VGA signal
8:37 Build Process
10:47 Circuit build
14:36 Initial Programming (H-Sync)
17:39 H-sync Test
18:53 Video Code tour
20:54 Test

Пікірлер: 211

  • @weirdboyjim
    @weirdboyjim3 жыл бұрын

    Going to try out the Premier feature to see what it's like. I know some people have been looking forward to this module, I hope the series doesn't disappoint. Join us to discuss this and the other videos on discord: discord.gg/jmf6M3z7XS Support the channel on Patreon: www.patreon.com/JamesSharman

  • @LeoBerardino

    @LeoBerardino

    3 жыл бұрын

    I'm very excited to see this new module. Thank you for these amazing videos.

  • @-lolus-

    @-lolus-

    3 жыл бұрын

    I'am soooo exited for this one. are u going to remake snake for vga?

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    @@-lolus- There might be a "Snek 2.0" by the end. But only so I can keep Snek around for posterity. I have higher goals.

  • @StephenHermer

    @StephenHermer

    3 жыл бұрын

    Was driving, missed it!

  • @marcelhh2101

    @marcelhh2101

    3 жыл бұрын

    Please no Premiers! It’s annoying to have video listed in you queue which are not yet playable. When you release the video it will pop up soon enough! I unsubscribed all channels that do this stupid premier stuff. The serie will be very welcome! Always like your videos very much.

  • @largepimping
    @largepimping3 жыл бұрын

    Between you and Ben Eater, I don't even know what to do with myself!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Well hopefully order yourself some breadboards ;-)

  • @oyewumivictor103

    @oyewumivictor103

    3 жыл бұрын

    Actually 😄😄

  • @Dhruv.Wadhwa
    @Dhruv.Wadhwa3 жыл бұрын

    I was born in 2001 never got to see and use retro computers. But people like ben eater, slu4 and you have made me love those retro and homebrew computers. So a few days back i designed my own 6502 based computer (just a logisim simulation right now) and working on 320×240 res. 256 color graphics card. I have the exact same goals as you for my own video card with Sprite and scrolling features. Just the resolution is half of 640x480 becoz then i can use the same 12.58Mhz clock for the 6502 as well. Looking forward for ur series 😀.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Glad you are finding it interesting! Good luck with your build!

  • @phookadude

    @phookadude

    Жыл бұрын

    There were a few games in 320x240 256, even tho it wasn't a "standard" VGA resolution. Memory limitations and square pixels made it attractive.

  • @kltr007
    @kltr0073 жыл бұрын

    I am amazed by the simplicity of the ciruit. Well done!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    It will get more complicated before I'm done!

  • @AKsevenFOUR
    @AKsevenFOUR3 жыл бұрын

    Now this scratches the itch!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Pleased I finally got this video uploaded!

  • @UsagiElectric
    @UsagiElectric3 жыл бұрын

    I am 1000% on-board for this project! Also, I love that you nonchalantly mentioned that you got the processor running stably at 3MHz, which is something I'd have been running around and jumping up and down about, haha.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thanks! I was pleased with the 3.14mhz, but I'd had it running at 2.5mhz before and I'm quietly confident it can go a little faster.

  • @UnexpectedMaker
    @UnexpectedMaker3 жыл бұрын

    Really great work James - I think this video series is going to be super popular!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thanks Seon. While in many ways this series will be a natural continuation of the cpu build the visuals will give far better progress feedback than I was able to demonstrate during parts of the main build.

  • @rauljvila
    @rauljvila2 жыл бұрын

    Feature Goals: ALL! Build Process: Lots of Videos! First Video: already displaying an image! I'm in! This looks very promising.

  • @weirdboyjim

    @weirdboyjim

    2 жыл бұрын

    Thanks Crul! I have lofty goals for that series, and lots of wires to make for the next video..

  • @naveenchavali8488
    @naveenchavali84883 жыл бұрын

    Hey James, AMAZING VIDEO! I was looking forward to this from a long long time. I am extremely looking forward to the whole build. Great stuff :)

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thanks! Glad you found it interesting.

  • @AKsevenFOUR
    @AKsevenFOUR3 жыл бұрын

    This is going to be super interesting and fun to watch. Great work!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thanks Adam! Hope it doesn't disappoint!

  • @cedAuz
    @cedAuz3 жыл бұрын

    Hi James. Really enjoyed the new video structure where you explained so clearly the goals. Looking forward to the whole series. Great result already. Congrats.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thanks Ced! Hope the rest lives up to expectation!

  • @matthewpeterson5159
    @matthewpeterson51593 жыл бұрын

    Awesome work as always! Makes my day to see a video from you :) Keep it up!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thanks Scitoshi, it's going to be an interesting Journey.

  • @marcorademan8433
    @marcorademan84333 жыл бұрын

    Lovely! I've never liked digital circuit design very much but it is a pleasure watching you do it

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thank you very much! Glad you found it interesting.

  • @lawrencemanning
    @lawrencemanning3 жыл бұрын

    Tease. It took my brain an extra few milliseconds to spot the premier mark. Argh. :) Now you're really setting expectations high!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Now your making me feel bad.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    But you can see in the picture the extreme complexity of the first step, and it's massive chip count.

  • @lawrencemanning

    @lawrencemanning

    3 жыл бұрын

    @@weirdboyjim don't feel bad. Your content is amazing. I'm just glad I don't have to wait until tomorrow. Yup I'm intrigued by this chip count. I just hope that's not an MCU. ;)

  • @lawrencemanning

    @lawrencemanning

    3 жыл бұрын

    @@weirdboyjim totally unexpected and awsome! Welcome to the club of bitbanging VGA using your own processor! Cant be many folks who have done that. And no, it did not disappoint. :)

  • @detlevmustinger6328
    @detlevmustinger63283 жыл бұрын

    Great, great, great, thanks James for building a VGA card for your 8-bit CPU, very, very excited for the next videos

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thanks Detlev. I've been looking forwards to this bit for a long time.

  • @detlevmustinger6328

    @detlevmustinger6328

    3 жыл бұрын

    @@weirdboyjim Could you please share the test code and updated code for generating the pipe roms? would be great, thanks!

  • @BryanChance
    @BryanChance11 ай бұрын

    This is way beyond my knowledge but so very interesting! Thank you.

  • @weirdboyjim

    @weirdboyjim

    9 ай бұрын

    Glad you found it interesting!

  • @DIYPlace_Create_your_World
    @DIYPlace_Create_your_World3 жыл бұрын

    WOW Thats a cool project. I like that you are seeking for a simple way to create the VGA output. Great work!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thanks! But it will get a lot more complicated over the coming weeks!

  • @GodmanchesterGoblin
    @GodmanchesterGoblin3 жыл бұрын

    I love the approach to this - build it largely in software, then migrate sections over to hardware incrementally. I am curious to see how you manage some of the features that you outlined, especially the sprite implementation, but very happy to wait and watch the story unfold. I suspect I will learn something new and very clever here, despite the amount of video display hardware that I worked on in the past. Roll on part 2...

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    That! I spent a while knowing roughly where I was going with the vga circuit but not seeing the best steps to get there in terms of videos until I hit on that idea.

  • @brandonmack111
    @brandonmack1113 жыл бұрын

    Yuss! I'm definitely looking forward to it :)

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Hope it lives upto expectations!

  • @brandonmack111

    @brandonmack111

    3 жыл бұрын

    @@weirdboyjim definitely worth it 🙂 it's a great start for what I expect will be a very interesting series of videos.

  • @andrewwatts1997
    @andrewwatts19973 жыл бұрын

    What a journy, very much looking forward to the many additions to this 'video card' ;p

  • @m1geo
    @m1geo3 жыл бұрын

    Yay! I return from a short staycation to find that VGA has finally started! :D

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Hope it lives upto expectations George!

  • @m1geo

    @m1geo

    3 жыл бұрын

    @@weirdboyjim it seems like you have a serious plan for this VGA stage! Nice! Hardware sprites are gonna be interesting!

  • @weirdboyjim
    @weirdboyjim2 жыл бұрын

    Join us to discuss this and the other videos on discord: discord.gg/jmf6M3z7XS Support the channel on Patreon: www.patreon.com/JamesSharman

  • @TroySchrapel
    @TroySchrapel3 жыл бұрын

    That's a solid flex indeed. Looking forward to this, James. 640x480x24@60fps is very ambitious with discrete logic, but I have no doubt you'll pull it off.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Always worth aiming high! I'll be clear though, to say 640x480x24 implies a true color frame buffer. That would be nearly a megabyte of video memory, I'll be pulling trickery to fill the resolution like old style consoles/micros.

  • @TroySchrapel

    @TroySchrapel

    3 жыл бұрын

    @@weirdboyjim Yeah. I understand. You'll generate the image on the fly from tiles, sprites, etc. Similar to the TMS9918, but with scrolling and better output specs.

  • @causeitis
    @causeitis3 жыл бұрын

    Oooh exciting, looking forward to this!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Hope you enjoy!

  • @IvanEngler
    @IvanEngler3 жыл бұрын

    can't wait to see how this progresses! very interesting!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thanks, hope it meets expectations.

  • @iulianvalentin85
    @iulianvalentin853 жыл бұрын

    This kind of project requires a certain level of masochism which is to be appreciated and respected :).

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    I like to user words like "Perseverance" and "Determinism" rather than "Masochism" ;-)

  • @henrikfisch
    @henrikfisch Жыл бұрын

    Loving this video so much. I am coming from the good old age, when computers started to push into the home market and when »Commodore PET«, »TI 99/4«, »Atari 800« and at bit later the »C64«, the »ZX Spectrum« and the »Amstrad CPC« arrived (»Schneider CPC« here in Germany). Actually I am a Atari-800-geek (up until today). The moment you were designing your program to make a picture appear on the screen made me think: »This guy is programming the way like programmers of video games for the Atari VCS 2600 were doing!« Great to see those forgotten pearls re-appear! Thank you so much for this video. ♥

  • @weirdboyjim

    @weirdboyjim

    Жыл бұрын

    Glad you like it Henrik! Yeah, I very much going for the spirit of the early micro and game development era with my projects.

  • @henrikfisch

    @henrikfisch

    Жыл бұрын

    @@weirdboyjim Again: Loving it and you very much "owned" a new follower! 😀

  • @m.p.jallan2172
    @m.p.jallan21722 жыл бұрын

    Amazing, i cant wait to see the awesome power of this machine once its completed. A high point for me was the old Final Fight Capcom arcade board. Fascinating to see the development on this project. Ive only done tiny (5k range) 8bit hobby programs.

  • @weirdboyjim

    @weirdboyjim

    2 жыл бұрын

    Thanks! Glad you are finding it interesting.

  • @NuttySwiss
    @NuttySwiss3 жыл бұрын

    Can’t wait to see a Mandelbrot fractal being computed and displayed. 😎👍

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Hmm, that wouldn't be too difficult but on an 8-bit cpu it would take a while.

  • @NuttySwiss

    @NuttySwiss

    3 жыл бұрын

    @@weirdboyjim it could make for a couple episodes where an application specific unit that does fixed point arithmetic (multiply and addition) might be added to speed it up. It did take some time on the C64, but was 😍 to see.

  • @nickwallette6201

    @nickwallette6201

    3 жыл бұрын

    When I think of fractal demos, I think of my old family 386. It took a while then, too. :-)

  • @alexa.davronov1537
    @alexa.davronov15372 жыл бұрын

    Wow that's beautiful things. Thanks for sharing.

  • @weirdboyjim

    @weirdboyjim

    2 жыл бұрын

    Thanks! Glad you found it interesting!

  • @Mark_Lawler
    @Mark_Lawler3 жыл бұрын

    Very eager to see how handle sprites! One of my favorite things from my ol' Commodore 64 days!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Them spectrum didn't have them, I didn't actually do much programming with sprites until the game boy color.

  • @EvilSandwich

    @EvilSandwich

    3 жыл бұрын

    When I first started learning how to make hardware sprite capabilities, I was shocked at just how less complicated than I was expecting it actually was. It's pretty much just shift registers pushing data onto scanlines. That's about it. Who would have figured?

  • @JyrkiKoivisto
    @JyrkiKoivisto2 жыл бұрын

    Amiga mentioned, instant thumbs up!

  • @weirdboyjim

    @weirdboyjim

    2 жыл бұрын

    It was an impressive bit of kit.

  • @soutrikband
    @soutrikband3 жыл бұрын

    Excellent video mate ! You earned a new subscriber !

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thanks! Glad you enjoyed it!

  • @garbagescowcaptain
    @garbagescowcaptain3 жыл бұрын

    Fantastic work, James - keep it up! Been following this for a while, and looking forward to see how this progresses. A quick question - why is it 25.175 MHz, where 800 x 525 x 60 = 25.2 MHz?

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Well spotted, that's an interesting question with a long and mundane answer. In truth it's not 60hz, it's 59.94hz! That's the standard for NTSC refresh despite everyone saying 60, in truth until recently almost everywhere refresh rates were described as 60 it was actually 59.94, this is legacy compatibility with NTSC that was deliberately out of sync with the US mains 60hz rate to prevent static artifacts in the color.

  • @ajinkyamahajan102
    @ajinkyamahajan1023 жыл бұрын

    With the D latch, it is clearly CPU driven display like Zx spectrum. With this approach I doubt dynamic sprits manipulation is possible.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    I think you missed some of my comments. The Latch is only a temporary measure to get a simple circuit working. Later videos will add a framebuffer, the sprites will be hardware as well.

  • @iain_grant
    @iain_grant3 жыл бұрын

    That parrot is amazing!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Actually I made a better one while waiting for the premier to start. Same hardware/software but it a little bit of dithering on the image made it look much better. Something for the next one anyway.

  • @Big_Computer
    @Big_Computer3 жыл бұрын

    I absolutely love this, even though I don't understand most of it this is amazing and super interesting to watch. I realize how much of a nerd I am :)

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Glad you liked it. I try and explain things as clearly as I can but I obviously can't cover all the basics in every video.

  • @Big_Computer

    @Big_Computer

    3 жыл бұрын

    @@weirdboyjim I have of course some electronic knowledge (basics) but mostly on the hardware side, programing is not my domain but seeing hardware and software collide to make something really cool is just fantastic to watch :) I am definitely learning things

  • @0xABADCAFE
    @0xABADCAFE2 жыл бұрын

    That is really putting the M in MVP!

  • @weirdboyjim

    @weirdboyjim

    2 жыл бұрын

    I know right! :-D

  • @djc1402
    @djc14023 жыл бұрын

    Awesome video. Thinking about what you might do for VGA, I thought about your audio output videos and knew you wouldn't do something simple but you would create an 8-bit GPU, and I wasn't wrong. It is however more ambitious than I suspected. I've always gone down the 'keep it a simple as possible' route with my designs. I love playing with VGA and seeing the results of the changes immediately. I recon that you will have a lot of fun in the coming months with this part of the project. P.S. please do a video on the incremental sieve.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thanks David. One of my ideas for a future build is to try and make an ultra simple (But practical) 8-bit cpu that it would be much easier for people to replicate. But this build is far more in the "overly ambitious" side of things.

  • @stigtheghost
    @stigtheghost Жыл бұрын

    Yes! This is what I want to do thanks great video..

  • @weirdboyjim

    @weirdboyjim

    Жыл бұрын

    Glad you like it!

  • @TheEmbeddedHobbyist
    @TheEmbeddedHobbyist3 жыл бұрын

    If I remember correctly, we had two video buffers one being displayed and the second you could write to and you would swap buffers during the hoz blanking period. been a long time since i played with video on a CGA card. At work our 8086 boards were designed in house and there was no displays, lots of latched i/0 and DAC's controlling audio routing and volume. Fun days looking forward to next video.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    On the older pc cards double buffering was always a horrible compromise due to limited memory. Even with a true vga card there you couldn't do 320x200x256 colour mode with double buffering by standard. There was a way of doing it but putting the memory into a different mode but the addressing became weird. I'll not be doing double buffering for this build, I want 60fps update so it's better to spend the address space efficiently creating the tools to do that.

  • @therealchonk
    @therealchonk3 жыл бұрын

    Great video!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thanks Benni.

  • @theowinters6314
    @theowinters63142 жыл бұрын

    That's some old school racing the beam.

  • @weirdboyjim

    @weirdboyjim

    2 жыл бұрын

    You ain’t seen nothing yet! ;-)

  • @daskasspatzle2396
    @daskasspatzle23963 жыл бұрын

    Awesome :-) Looking forward ;-)

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thanks Das!

  • @olavl8827
    @olavl88273 жыл бұрын

    This is going to be legendary, I can already tell. Your goals for this are crazy ambitious! I would only suggest adding a character generator for text. But I suppose you've already thought of that. Good luck and I will be following along religiously.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thanks Olavl! The plan does include something that could be used to display character data, but it will be a few videos before I talk about that in any depth.

  • @olavl8827

    @olavl8827

    3 жыл бұрын

    @@weirdboyjim I know there are several solutions for that particular problem and I'm extremely curious how you are going to address it. I'll wait patiently for that, just hurry up will you ;-) (j/k) Another question if I may: is it at all possible to port existing games/software to your 8-bit computer provided you have the source? Or is the CPU too different from other architectures that this would be impossible?

  • @pvc988
    @pvc9883 жыл бұрын

    I like the idea of hardware sprites. I think sprites are going to be very interesting part of the project. Oh. And it looks like this video didn't make it to Odysee.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Sprites definitely help getting some interesting motion at high update rate. And they represent an interesting challenge if there is any kind of transparency (which there will be)

  • @RetroMarkyRM
    @RetroMarkyRM3 жыл бұрын

    mind blowing!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thanks Retro Marky, pleased you found it interesting.

  • @lugaidster
    @lugaidster3 жыл бұрын

    Duuuude you're a beast!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thanks! Hope you enjoy the rest of it!

  • @wChris_
    @wChris_3 жыл бұрын

    The functionality reminds me of the NES PPU or SNES PPU for that matter. But somewhat limited with like sprites, but then again better in terms of color. With some up coming features like MMIO the thought of looking into Banking might be useful, especially with double buffering of the Display, while one screen is being displayed, the other can be updated. Memory Banking is not that Hard, for example you use One CPU Port (or multiple for different sections) as a select switch for different Memory or Rom Banks. The value is then demultiplexed and fed into the chip enable line of the selected Bank. The rest like output enable is already done. And lastly if you already have a 'copy functionality' built in the memory unit, it may be interesting to activate it on purpose with different source and destinations, some sort of crude DMA circuitry.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    I've talked about banking before. I'm not planning on doing any in this series, I'm more interested in fitting it all into a small amount of memory as a challenge at the moment.

  • @StefanNoack

    @StefanNoack

    3 жыл бұрын

    This setup is much more akin to how the Atari 2600 does video than the NES PPU, isn't it? The CPU is basically bitbanging the signal directly.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    @@StefanNoack I think Chris is refering more to the project goals than the first circuit in this video. The 2600 was much more than bit banged video, it had basic sprites.

  • @daviddawkins
    @daviddawkins3 жыл бұрын

    Brilliant, and with a chip speed of π MHz. I also grew up with ZX Spectrum, so it’s nice to hear those references.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Lots of people have nostalgia for the old Specy. The π MHz thing was not deliberate and it breaks down if you work out additional digits, it's just the vga pixel clock divided by 8!

  • @daviddawkins

    @daviddawkins

    3 жыл бұрын

    @@weirdboyjim Yeah I got that. .You quoted 3.14 the first time, then 3.146 later, but let me have my math nerd dreams OK :-) Looking forward to starting this series from Episode 1.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    @@daviddawkins if you used 25.175/8 to calculate the surface area of the earth you would over estimate by roughly enough for an extra Greenland. ;-)

  • @daviddawkins

    @daviddawkins

    3 жыл бұрын

    @@weirdboyjim don't worry, I always use 22/7

  • @AiOinc1
    @AiOinc12 жыл бұрын

    Would love to see a video on the Sieve, it would be neat to have it running on my own system. Also, the Amiga didn't reach release until 1985! The bouncing ball was shown during the January 1984 CES show and was written in one night.

  • @weirdboyjim

    @weirdboyjim

    2 жыл бұрын

    I may get around to the Sieve video quite soon actually.

  • @wizardnotknown
    @wizardnotknown3 жыл бұрын

    OH YEAAAHHH!!!!!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Glad you liked it Mr Wizzard!

  • @jesset2550
    @jesset25503 жыл бұрын

    alot of mcus have a RGB LCD interface which is just VGA but not anolog, the way I did a VGA DAC for it was with a r2r latter with a resistor on the output the lower the output to 0-.7v then put it through an opamp because current capibilities. I'm shure u can get a low value r2r latter and add a resistor on the output and use the internal 75 ohm resistor in the display to pull it down to the right voltage

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Oddly enough I've been looking at that kind of interface from the other side. A lot of VGA display modules have that interface, and a board for converting from a regular vga input. When I design my output circuit I'll include the dac and vga connector but I'll look into adding the digital output header as well. Might save me some space if I use one of those modules.

  • @jryde421
    @jryde4212 жыл бұрын

    You and Ben eater collaboration would be amazing.

  • @weirdboyjim

    @weirdboyjim

    2 жыл бұрын

    It would be cool to work with him,

  • @jaythomas3180
    @jaythomas31803 жыл бұрын

    Can't wait to see how you use the core memory for the video ram. ;)

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    About that high resolution goal...

  • @gregorymccoy6797
    @gregorymccoy679725 күн бұрын

    Oh that's nice.

  • @weirdboyjim

    @weirdboyjim

    25 күн бұрын

    Glad you like it!

  • @edgeeffect
    @edgeeffect3 жыл бұрын

    We had a program for the BBC Micro that displayed a reasonable clone of The Bouncing Ball Demo whilst playing "Sweet Dreams Are Made of This".

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Yeah, people made attempts to reproducing the demo on every computer around. The BBC one was very hacky.

  • @edgeeffect

    @edgeeffect

    3 жыл бұрын

    @@weirdboyjim it was... you could get back to the BASIC prompt and the screen would keep bouncing.

  • @SteveRaynerMakes
    @SteveRaynerMakes3 жыл бұрын

    Do you think it would be possible to use these concepts with a Z80 CPU, or is that just going to be too underpowered?

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    I don't think it's practical. My pixel output loop (that gives me rubbish horizontal resolution) is unrolled at 3 cycles per pixel. The best I can do on z80 is 21 cycles so you would need greater than 20mhz to match this. In a few videos I'll have a frame buffer that will be much more suited to interfacing to something like that.

  • @Scrogan
    @Scrogan3 жыл бұрын

    What kind of logic series will handle the ~24MHz? Also hand-made R2Rs aren’t going to be particularly accurate, and without a massive array of trimpots (I’ve seen it before) you’ll get some nonlinearity. So I’d at least look for a monolithic parallel input 8-bit DAC that suits your project. Unless, you want to make discrete delta-sigma modulator circuits? Would be a very in-depth process, but it could be fun. Not sure how responsive they are, but at least you wouldn’t have the 7F > 80 mega-glitch that R2Rs have. I’ve been meaning to do the math behind a Gray code DAC ladder, though I don’t think it would be easy.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    The common basic logic series (LS/HC/HCT) are all fast enough, but only just. What they are not is fast enough to make sloppy design ok, in my cpu and other cpu designs I've seen on youtube there tend to be chains of logic that are required to settle within a cycle so the maximum clock rate is reduced, to make the vga work at the target rate it will be necessary to carefully track this. You are right that a simple ladder would definitely be a problem, a well made R2R ladder can be made to work but of care with resistor selection etc.. will be necessary "next closest value" and "10% tolerance" are not going to cut it. I'll get there in a couple of vids and you can judge my success or post your "I told you so" ;-)

  • @davidrosset4457
    @davidrosset44572 ай бұрын

    Kind of irrelevant question but how did you glue the Papers marked PIPE 1A to the ROM’s? There are those printers that come with glue yes? Can I print them different sizes with glue too?

  • @weirdboyjim

    @weirdboyjim

    2 ай бұрын

    Those are printed with a "Dynamo Letratag", really useful little thing. I label lots of my storage boxes, chips etc.. with it.

  • @davidrosset4457

    @davidrosset4457

    2 ай бұрын

    @@weirdboyjim Nice, I ended up just using sticky paper and my regular printer, I figure it works fine too. Less spending! I like when I figure out cheaper solutions like this.

  • @monsiw
    @monsiw2 жыл бұрын

    What is doing that bigger part of construction where you plugged your circuit? (the blue one)

  • @weirdboyjim

    @weirdboyjim

    2 жыл бұрын

    That's my homebrew pipelined cpu. This vga project is one of a number of smaller series making add on modules for it. kzread.info/head/PLFhc0MFC8MiCDOh3cGFji3qQfXziB9yOw

  • @Decco6306
    @Decco63063 жыл бұрын

    Rad

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Thanks Kipper!

  • @davidverbeek4849
    @davidverbeek4849 Жыл бұрын

    you are selling this short, 640/480/60/16,777,216 is not VGA spec but the spec of a later SVGA card. VGA maxes out at 640/480/60/16 with those 16 colors being able to be selected from any one of 262,144 colors from an 18 bit dac

  • @weirdboyjim

    @weirdboyjim

    Жыл бұрын

    My feature set is actually pretty tough to compare to the vga card sequence, but when I say VGA I was more referring to the output video/monitor standard.

  • @snehashishkarmakar3376
    @snehashishkarmakar33763 жыл бұрын

    Can you make a detailed course playlist on making such electronics projects....I personally am interested in it and would love to learn from you😄....anyways awesome work and you earned a sub😇

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    I have nearly 100 videos in the playlist for the main cpu build. Is that what you are after? kzread.info/dash/bejne/ZZ18w8ltm5ffdco.html

  • @snehashishkarmakar3376

    @snehashishkarmakar3376

    3 жыл бұрын

    @@weirdboyjimYep thanks dude you are great

  • @alexany4619
    @alexany46192 жыл бұрын

    Very interesting! Regular VGA-Cards don´t support hardware scrolling and hardware sprites, right?

  • @weirdboyjim

    @weirdboyjim

    2 жыл бұрын

    Actually many vga cards do have support for both of those but the need was very much reduced for it when CPU’s and clock rates got so fast it became easy to redraw everting.

  • @alexany4619

    @alexany4619

    2 жыл бұрын

    @@weirdboyjim Ah, do you have an example for a vga card supporting pixelwise hardware scrolling and more than one sprite?

  • @weirdboyjim

    @weirdboyjim

    2 жыл бұрын

    @@alexany4619 simple hardware scrolling just requires the ability to set the display base address and I think they can all do that. Sprite(s) are usually just exposed for the mouse cursor these days so maybe not plural in the common case.

  • @alexany4619

    @alexany4619

    3 ай бұрын

    Did it even exist one single VGA-card which supported more than one sprite? Was hoping to find a card with the Yamaha V9990 which should fill this gap but it seems, this VDP didn´t make its way into PCs.

  • @dubbynelson
    @dubbynelson3 жыл бұрын

    10/10, doesn’t eat Bens.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    The 10/10 at the start makes me think this is a complement, so thanks!

  • @dubbynelson

    @dubbynelson

    3 жыл бұрын

    @@weirdboyjim it is, don't worry, heheheh! I'm just messing around, this is great stuff. I always like to see people making these kinds of things. Makes me wonder what I could do if I had the knowledge. This alone seems like a wonderful learning experience.

  • @akkudakkupl
    @akkudakkupl3 жыл бұрын

    Frame buffer would be nice, you could work directly on video memory without 2 port ram without waiting for blanking

  • @akkudakkupl

    @akkudakkupl

    3 жыл бұрын

    As in having 2 ram chips that are switched between video and CPU access

  • @akkudakkupl

    @akkudakkupl

    3 жыл бұрын

    Probably would need cloning to happen at vblank through some blitter

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    See what you think of the system I implement in the next vga video.

  • @theforthdoctor7872
    @theforthdoctor78723 жыл бұрын

    Having a FORTH running on your amazing CPU, would make all hardware development much easier.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    I haven't touched FORTH since university but the kind of implementation you would put on an 8-bit cpu would not be suited to the kind of cycle precise programming I need to do here for the early VGA implementation.

  • @theforthdoctor7872

    @theforthdoctor7872

    3 жыл бұрын

    @@weirdboyjim good point, I was thinking more of general hardware development. Just the ability to interact with a live system is extremely useful. The code, burn a ROM and test cycle gets old very quickly. Having said that, you hardware is outstanding.

  • @AB-ub9nd
    @AB-ub9nd3 жыл бұрын

    So how long before you reach 8k 35 teraflop performance

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    35 teraflops? Just as soon as I can get the observer down the gravity well of a nearby blackhole.

  • @wizardofboz76
    @wizardofboz763 жыл бұрын

    Well hello there.. and hello fellow nerds.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    My breadboards bring all the nerds to the yard!

  • @nickwallette6201

    @nickwallette6201

    3 жыл бұрын

    Hallo! :-D

  • @Alex-rv8gw
    @Alex-rv8gw9 ай бұрын

    hi sir may i know where can i get the schematics of your VGA Project

  • @weirdboyjim

    @weirdboyjim

    9 ай бұрын

    I've been releasing bits of schematic as I make the pcb's, you can see a number of them on by easyeda profile (link in the about section of the channel).

  • @Sparkette
    @Sparkette3 жыл бұрын

    Certainly not the world's worst video card!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    You know how to give a compliment flarn!

  • @Sparkette

    @Sparkette

    3 жыл бұрын

    @@weirdboyjim Actually I was referencing Ben Eater's series, but a compliment is certainly deserved!

  • @thevideoman12
    @thevideoman123 жыл бұрын

    Whats the RVN Hashrate on this?

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    You joke, but I have thought of writing hashing routines for the cpu as a demo of how they work.

  • @twobob
    @twobob2 жыл бұрын

    1 chip. done ;)

  • @weirdboyjim

    @weirdboyjim

    2 жыл бұрын

    It’s more complex now 🤣

  • @asmi06
    @asmi063 жыл бұрын

    Why VGA and not DVI? It's the same protocol, but SERDES instead of DACs.

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    It's not as easy as it sounds, the protocol maybe simple but the clock rates involved are much higher (As it's a serial protocol, for 24bpp it will be at least 24x higher) and that puts you in a frequency range where it's just not possible on a breadboard.

  • @asmi06

    @asmi06

    3 жыл бұрын

    @@weirdboyjim It's not 24x higher, but only 10 (DVI and HDMI have 3 separate data lanes for R, G and B). It's 10x and not 8x due to 8b/10b encoding. But there are transceiver chips like TI's TFP410, which handle all of it internally, accepting a simple parallel in at pixel rate (25 MHz in your case for 480p) and sync signals. 25 MHz is probably a tad too fast for a breadboard anyway (especially for 24 bit parallel bus), but it's about as slow as it gets for full-blown 480p and it's a single-chip solution. You can build a breadboardable adapter for that chip if you insist on a breadboard (even though your final solution seem to involve a custom PCB, so such frequency is not a problem). And data lane speed (250 Mbps) for DVI/HDMI is not very high so you don't have to worry about exact trace impedance match either. I've seen 1080p transmitted over loose jump wires with my own eyes! :) Anyways, thanks for the great videos! You have a new sub!

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    @@asmi06 Ahh fair, I hadn't looked close enough at the spec to see the 3x lines. But a specialist encoder chip would put me off it as I'm trying to keep the BOM short and simple.

  • @asmi06

    @asmi06

    3 жыл бұрын

    @@weirdboyjim Of course it's your call, but I don't see how else you can achieve full 480p in true color, which you stated as the end goal. Unless you resort to FPGA like Artix-7, which can do TMDS natively, but using it will kind of make the rest of your CPU redundant, as you can stuff it inside the very same FPGA :) And it will likely run a lot faster too. BTW - have you considered going for something like Risc-v ISA, which seems to be all the rage currently in the hipster community?

  • @janpomianowski4208
    @janpomianowski4208 Жыл бұрын

    Can it display TempleOS, as God intended?

  • @weirdboyjim

    @weirdboyjim

    Жыл бұрын

    Lol, Wikipedia says that is designed for 64bit machines. Might be a little out of scope.

  • @pareshmhatre4019
    @pareshmhatre40193 жыл бұрын

    James, ben, Kevin , bitluni have most complicated mind😊

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Not sure who you mean by Kevin but Ben and Luni are great creators! Honored to be named alongside them.

  • @damianc1174
    @damianc11743 жыл бұрын

    Video Graphics Array - simples

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    It won't be very simple by the time I'm done ;-)

  • @KonuralpBalcik
    @KonuralpBalcik3 жыл бұрын

    America Where?

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    Not sure what you mean. Are you asking where in America I am? The answer to that is that I'm not, I live in England.

  • @skilz8098
    @skilz80982 жыл бұрын

    Next up how to build the next gen NVidia GeForce RTX 4090 TI Series... 24,000 cuda cores, 128GB GDDR7X Ram clocked at 2.1GHz lol...

  • @weirdboyjim

    @weirdboyjim

    2 жыл бұрын

    Lets walk before we run, like maybe try for more than 26 pixels across the screen first before we set too lofty a goal ;-)

  • @skilz8098

    @skilz8098

    2 жыл бұрын

    @@weirdboyjim I was being rhetorical. I'm self taught in C++ for 3D Graphics and Game Engine Design, to Hardware Emulation, to Circuit Design to CPU and ISA Design. I was being sarcastic and dramatic about it. I have a very good idea the amount of complexity that goes into making the top of the line modern GPUs. They are far more complex than a multi-core CPU!

  • @platin2148
    @platin21483 жыл бұрын

    Too much VGA where is hdmi.. 🤣

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    I actually just bought a vga to hdmi convertor so hopefully I can capture the output to add in as an overlay. Actually generating hdmi from a breadboard I don't think could work, it's a serial protocol so the clock rate would be far higher than is practical on a breadboard, at least in my understanding.

  • @MrDoboz
    @MrDoboz3 жыл бұрын

    isn't that parrot kind of a ripoff of Ben Eater? It's strange that you haven't even mentioned him...

  • @weirdboyjim

    @weirdboyjim

    3 жыл бұрын

    The parrots are cropped from "Kodac Image 23" from the Kodak image set, a group of images that have been widely used for display and image processing tests for since the early 90's. I think I first used this particular parrot about 25 years ago for a university project on palate mapping and dithering. I have a lot of respect for Ben's work, I've mentioned it several times in my videos but I have more than 100 videos out now and it wouldn't be practical to mention it in every video. My CPU project probably wouldn't have happened without Ben's but the design is very different. The VGA project here was roughed out before Ben's first video on the subject (There are passing references in my earlier videos) but my progress has been slow.

  • @MrDoboz

    @MrDoboz

    3 жыл бұрын

    @@weirdboyjim Oh that makes sense. Thank you for the answer, and sorry for the accusation. I didn't know that you have mentioned him before, as I just found this video, and it seemed pretty interesting. Actually, as it turns out, it is interesting, and I really like the EEPROM for decoding the sync counter, that would have been my choice too, if I had money and time to make such a project. I'm very interested in the progress, especially the RAMs and how the CPU is gonna handle it. So keep up the good work!