Introduction - VGA from Scratch - Part 1

Sdílet
Vložit
  • čas přidán 31. 05. 2024
  • 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
  • Věda a technologie

Komentáře • 211

  • @weirdboyjim
    @weirdboyjim  Před 3 lety +29

    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 Před 3 lety +1

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

    • @-lolus-
      @-lolus- Před 3 lety +1

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

    • @weirdboyjim
      @weirdboyjim  Před 3 lety +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 Před 3 lety

      Was driving, missed it!

    • @marcelhh2101
      @marcelhh2101 Před 3 lety +6

      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
    @largepimping Před 3 lety +117

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

  • @Dhruv.Wadhwa
    @Dhruv.Wadhwa Před 3 lety +42

    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  Před 3 lety +6

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

    • @phookadude
      @phookadude Před rokem +1

      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
    @kltr007 Před 3 lety +20

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

    • @weirdboyjim
      @weirdboyjim  Před 3 lety +3

      It will get more complicated before I'm done!

  • @AKsevenFOUR
    @AKsevenFOUR Před 3 lety +18

    Now this scratches the itch!

    • @weirdboyjim
      @weirdboyjim  Před 3 lety

      Pleased I finally got this video uploaded!

  • @TroySchrapel
    @TroySchrapel Před 3 lety +4

    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  Před 3 lety +2

      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 Před 3 lety +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.

  • @lawrencemanning
    @lawrencemanning Před 3 lety +3

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

    • @weirdboyjim
      @weirdboyjim  Před 3 lety

      Now your making me feel bad.

    • @weirdboyjim
      @weirdboyjim  Před 3 lety

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

    • @lawrencemanning
      @lawrencemanning Před 3 lety

      @@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 Před 3 lety

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

  • @rauljvila
    @rauljvila Před 2 lety

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

    • @weirdboyjim
      @weirdboyjim  Před 2 lety

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

  • @cedAuz
    @cedAuz Před 3 lety +1

    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  Před 3 lety

      Thanks Ced! Hope the rest lives up to expectation!

  • @UnexpectedMaker
    @UnexpectedMaker Před 3 lety +1

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

    • @weirdboyjim
      @weirdboyjim  Před 3 lety +1

      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.

  • @andrewwatts1997
    @andrewwatts1997 Před 3 lety +2

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

  • @naveenchavali8488
    @naveenchavali8488 Před 3 lety

    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  Před 3 lety

      Thanks! Glad you found it interesting.

  • @NuttySwiss
    @NuttySwiss Před 3 lety +3

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

    • @weirdboyjim
      @weirdboyjim  Před 3 lety +1

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

    • @NuttySwiss
      @NuttySwiss Před 3 lety

      @@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 Před 3 lety

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

  • @AKsevenFOUR
    @AKsevenFOUR Před 3 lety +2

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

    • @weirdboyjim
      @weirdboyjim  Před 3 lety

      Thanks Adam! Hope it doesn't disappoint!

  • @UsagiElectric
    @UsagiElectric Před 3 lety +2

    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  Před 3 lety +1

      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.

  • @ajinkyamahajan102
    @ajinkyamahajan102 Před 3 lety +3

    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  Před 3 lety +6

      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.

  • @matthewpeterson5159
    @matthewpeterson5159 Před 3 lety +3

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

    • @weirdboyjim
      @weirdboyjim  Před 3 lety

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

  • @DIYPlace_Create_your_World

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

    • @weirdboyjim
      @weirdboyjim  Před 3 lety +1

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

  • @marcorademan8433
    @marcorademan8433 Před 3 lety +1

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

    • @weirdboyjim
      @weirdboyjim  Před 3 lety

      Thank you very much! Glad you found it interesting.

  • @m1geo
    @m1geo Před 3 lety +1

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

    • @weirdboyjim
      @weirdboyjim  Před 3 lety +1

      Hope it lives upto expectations George!

    • @m1geo
      @m1geo Před 3 lety

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

  • @Mark_Lawler
    @Mark_Lawler Před 3 lety +3

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

    • @weirdboyjim
      @weirdboyjim  Před 3 lety

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

    • @EvilSandwich
      @EvilSandwich Před 3 lety +1

      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?

  • @henrikfisch
    @henrikfisch Před rokem

    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  Před rokem

      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 Před rokem

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

  • @GodmanchesterGoblin
    @GodmanchesterGoblin Před 3 lety +1

    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  Před 3 lety +1

      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.

  • @detlevmustinger6328
    @detlevmustinger6328 Před 3 lety +1

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

    • @weirdboyjim
      @weirdboyjim  Před 3 lety

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

    • @detlevmustinger6328
      @detlevmustinger6328 Před 2 lety

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

  • @brandonmack111
    @brandonmack111 Před 3 lety +5

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

    • @weirdboyjim
      @weirdboyjim  Před 3 lety +1

      Hope it lives upto expectations!

    • @brandonmack111
      @brandonmack111 Před 3 lety

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

  • @m.p.jallan2172
    @m.p.jallan2172 Před 2 lety +2

    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  Před 2 lety

      Thanks! Glad you are finding it interesting.

  • @iulianvalentin85
    @iulianvalentin85 Před 3 lety +1

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

    • @weirdboyjim
      @weirdboyjim  Před 3 lety +2

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

  • @alexa.davronov1537
    @alexa.davronov1537 Před 2 lety

    Wow that's beautiful things. Thanks for sharing.

    • @weirdboyjim
      @weirdboyjim  Před 2 lety

      Thanks! Glad you found it interesting!

  • @causeitis
    @causeitis Před 3 lety +2

    Oooh exciting, looking forward to this!

  • @BryanChance
    @BryanChance Před 10 měsíci

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

  • @IvanEngler
    @IvanEngler Před 3 lety

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

  • @wChris_
    @wChris_ Před 3 lety +4

    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  Před 3 lety

      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 Před 3 lety

      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  Před 3 lety

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

  • @JyrkiKoivisto
    @JyrkiKoivisto Před 2 lety

    Amiga mentioned, instant thumbs up!

  • @garbagescowcaptain
    @garbagescowcaptain Před 3 lety +2

    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  Před 3 lety +6

      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.

  • @soutrikband
    @soutrikband Před 3 lety

    Excellent video mate ! You earned a new subscriber !

  • @djc1402
    @djc1402 Před 3 lety

    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  Před 3 lety

      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.

  • @TheEmbeddedHobbyist
    @TheEmbeddedHobbyist Před 3 lety +1

    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  Před 3 lety

      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.

  • @iain_grant
    @iain_grant Před 3 lety +1

    That parrot is amazing!

    • @weirdboyjim
      @weirdboyjim  Před 3 lety

      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.

  • @stigtheghost
    @stigtheghost Před rokem

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

  • @Big_Computer
    @Big_Computer Před 2 lety

    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  Před 2 lety +1

      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 Před 2 lety

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

  • @jesset2550
    @jesset2550 Před 3 lety +1

    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  Před 3 lety

      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.

  • @0xABADCAFE
    @0xABADCAFE Před 2 lety

    That is really putting the M in MVP!

  • @bennitec5280
    @bennitec5280 Před 3 lety

    Great video!

  • @daskasspatzle2396
    @daskasspatzle2396 Před 3 lety +1

    Awesome :-)
    Looking forward ;-)

  • @olavl8827
    @olavl8827 Před 3 lety +1

    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  Před 3 lety +1

      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 Před 3 lety

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

  • @AiOinc1
    @AiOinc1 Před 2 lety

    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  Před 2 lety +1

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

  • @daviddawkins
    @daviddawkins Před 3 lety

    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  Před 3 lety

      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 Před 3 lety

      @@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  Před 3 lety

      @@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 Před 3 lety

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

  • @RetroMarkyRM
    @RetroMarkyRM Před 3 lety

    mind blowing!

    • @weirdboyjim
      @weirdboyjim  Před 3 lety

      Thanks Retro Marky, pleased you found it interesting.

  • @pvc988
    @pvc988 Před 3 lety +2

    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  Před 3 lety +1

      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)

  • @theowinters6314
    @theowinters6314 Před 2 lety

    That's some old school racing the beam.

  • @edgeeffect
    @edgeeffect Před 3 lety

    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  Před 3 lety +1

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

    • @edgeeffect
      @edgeeffect Před 3 lety

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

  • @lugaidster
    @lugaidster Před 3 lety

    Duuuude you're a beast!

    • @weirdboyjim
      @weirdboyjim  Před 3 lety

      Thanks! Hope you enjoy the rest of it!

  • @davidrosset4457
    @davidrosset4457 Před měsícem +1

    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  Před měsícem +1

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

    • @davidrosset4457
      @davidrosset4457 Před měsícem

      @@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
    @monsiw Před 2 lety

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

    • @weirdboyjim
      @weirdboyjim  Před 2 lety

      That's my homebrew pipelined cpu. This vga project is one of a number of smaller series making add on modules for it. czcams.com/play/PLFhc0MFC8MiCDOh3cGFji3qQfXziB9yOw.html

  • @Scrogan
    @Scrogan Před 3 lety

    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  Před 3 lety +1

      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" ;-)

  • @jaythomas3180
    @jaythomas3180 Před 3 lety

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

  • @jryde421
    @jryde421 Před 2 lety

    You and Ben eater collaboration would be amazing.

  • @gregorymccoy6797
    @gregorymccoy6797 Před 17 dny

    Oh that's nice.

  • @weirdboyjim
    @weirdboyjim  Před rokem

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

  • @SteveRaynerMakes
    @SteveRaynerMakes Před 3 lety

    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  Před 3 lety

      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.

  • @snehashishkarmakar3376

    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  Před 3 lety

      I have nearly 100 videos in the playlist for the main cpu build. Is that what you are after? czcams.com/video/3iHag4k4yEg/video.html

    • @snehashishkarmakar3376
      @snehashishkarmakar3376 Před 3 lety

      @@weirdboyjimYep thanks dude you are great

  • @wizardnotknown
    @wizardnotknown Před 3 lety

    OH YEAAAHHH!!!!!

  • @alexany4619
    @alexany4619 Před 2 lety

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

    • @weirdboyjim
      @weirdboyjim  Před 2 lety

      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 Před 2 lety

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

    • @weirdboyjim
      @weirdboyjim  Před 2 lety

      @@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 Před 2 měsíci

      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.

  • @davidverbeek4849
    @davidverbeek4849 Před rokem

    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  Před rokem

      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.

  • @akkudakkupl
    @akkudakkupl Před 3 lety

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

    • @akkudakkupl
      @akkudakkupl Před 3 lety

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

    • @akkudakkupl
      @akkudakkupl Před 3 lety

      Probably would need cloning to happen at vblank through some blitter

    • @weirdboyjim
      @weirdboyjim  Před 2 lety

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

  • @Decco6306
    @Decco6306 Před 2 lety +1

    Rad

  • @dubbynelson
    @dubbynelson Před 2 lety

    10/10, doesn’t eat Bens.

    • @weirdboyjim
      @weirdboyjim  Před 2 lety +1

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

    • @dubbynelson
      @dubbynelson Před 2 lety

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

  • @Alex-rv8gw
    @Alex-rv8gw Před 9 měsíci

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

    • @weirdboyjim
      @weirdboyjim  Před 9 měsíci

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

  • @AB-ub9nd
    @AB-ub9nd Před 2 lety

    So how long before you reach 8k 35 teraflop performance

    • @weirdboyjim
      @weirdboyjim  Před 2 lety

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

  • @wizardofboz76
    @wizardofboz76 Před 3 lety +1

    Well hello there.. and hello fellow nerds.

  • @thevideoman12
    @thevideoman12 Před 3 lety

    Whats the RVN Hashrate on this?

    • @weirdboyjim
      @weirdboyjim  Před 3 lety

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

  • @theforthdoctor7872
    @theforthdoctor7872 Před 3 lety

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

    • @weirdboyjim
      @weirdboyjim  Před 3 lety +1

      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 Před 3 lety

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

  • @Sparkette
    @Sparkette Před 3 lety

    Certainly not the world's worst video card!

    • @weirdboyjim
      @weirdboyjim  Před 3 lety

      You know how to give a compliment flarn!

    • @Sparkette
      @Sparkette Před 3 lety

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

  • @twobob
    @twobob Před 2 lety

    1 chip. done ;)

  • @asmi06
    @asmi06 Před 2 lety

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

    • @weirdboyjim
      @weirdboyjim  Před 2 lety

      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 Před 2 lety

      @@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  Před 2 lety

      @@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 Před 2 lety

      @@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 Před rokem +1

    Can it display TempleOS, as God intended?

    • @weirdboyjim
      @weirdboyjim  Před rokem

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

  • @pareshmhatre4019
    @pareshmhatre4019 Před 3 lety

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

    • @weirdboyjim
      @weirdboyjim  Před 3 lety

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

  • @damianc1174
    @damianc1174 Před 3 lety +1

    Video Graphics Array - simples

    • @weirdboyjim
      @weirdboyjim  Před 3 lety

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

  • @KonuralpBalcik
    @KonuralpBalcik Před 3 lety

    America Where?

    • @weirdboyjim
      @weirdboyjim  Před 3 lety +1

      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
    @skilz8098 Před 2 lety

    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  Před 2 lety

      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 Před 2 lety

      @@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
    @platin2148 Před 3 lety +1

    Too much VGA where is hdmi.. 🤣

    • @weirdboyjim
      @weirdboyjim  Před 3 lety +1

      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
    @MrDoboz Před 2 lety

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

    • @weirdboyjim
      @weirdboyjim  Před 2 lety +1

      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 Před 2 lety

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