Introduction - VGA from Scratch - Part 1

  Рет қаралды 62,664

James Sharman

James Sharman

Күн бұрын

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

Пікірлер: 212
@weirdboyjim
@weirdboyjim 3 жыл бұрын
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
@largepimping 3 жыл бұрын
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.Wadhwa 3 жыл бұрын
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
@kltr007 3 жыл бұрын
I am amazed by the simplicity of the ciruit. Well done!
@weirdboyjim
@weirdboyjim 3 жыл бұрын
It will get more complicated before I'm done!
@naveenchavali8488
@naveenchavali8488 3 жыл бұрын
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
@AKsevenFOUR 3 жыл бұрын
Now this scratches the itch!
@weirdboyjim
@weirdboyjim 3 жыл бұрын
Pleased I finally got this video uploaded!
@AKsevenFOUR
@AKsevenFOUR 3 жыл бұрын
This is going to be super interesting and fun to watch. Great work!
@weirdboyjim
@weirdboyjim 3 жыл бұрын
Thanks Adam! Hope it doesn't disappoint!
@matthewpeterson5159
@matthewpeterson5159 3 жыл бұрын
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.
@andrewwatts1997
@andrewwatts1997 3 жыл бұрын
What a journy, very much looking forward to the many additions to this 'video card' ;p
@cedAuz
@cedAuz 3 жыл бұрын
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!
@DIYPlace_Create_your_World
@DIYPlace_Create_your_World 3 жыл бұрын
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!
@marcorademan8433
@marcorademan8433 3 жыл бұрын
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.
@UnexpectedMaker
@UnexpectedMaker 3 жыл бұрын
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.
@IvanEngler
@IvanEngler 3 жыл бұрын
can't wait to see how this progresses! very interesting!
@weirdboyjim
@weirdboyjim 3 жыл бұрын
Thanks, hope it meets expectations.
@GodmanchesterGoblin
@GodmanchesterGoblin 3 жыл бұрын
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.
@UsagiElectric
@UsagiElectric 3 жыл бұрын
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.
@detlevmustinger6328
@detlevmustinger6328 3 жыл бұрын
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!
@causeitis
@causeitis 3 жыл бұрын
Oooh exciting, looking forward to this!
@weirdboyjim
@weirdboyjim 3 жыл бұрын
Hope you enjoy!
@lawrencemanning
@lawrencemanning 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 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. :)
@TroySchrapel
@TroySchrapel 3 жыл бұрын
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.
@BryanChance
@BryanChance Жыл бұрын
This is way beyond my knowledge but so very interesting! Thank you.
@weirdboyjim
@weirdboyjim 11 ай бұрын
Glad you found it interesting!
@soutrikband
@soutrikband 3 жыл бұрын
Excellent video mate ! You earned a new subscriber !
@weirdboyjim
@weirdboyjim 3 жыл бұрын
Thanks! Glad you enjoyed it!
@m.p.jallan2172
@m.p.jallan2172 3 жыл бұрын
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 3 жыл бұрын
Thanks! Glad you are finding it interesting.
@alexa.davronov1537
@alexa.davronov1537 3 жыл бұрын
Wow that's beautiful things. Thanks for sharing.
@weirdboyjim
@weirdboyjim 3 жыл бұрын
Thanks! Glad you found it interesting!
@brandonmack111
@brandonmack111 3 жыл бұрын
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.
@rauljvila
@rauljvila 3 жыл бұрын
Feature Goals: ALL! Build Process: Lots of Videos! First Video: already displaying an image! I'm in! This looks very promising.
@weirdboyjim
@weirdboyjim 3 жыл бұрын
Thanks Crul! I have lofty goals for that series, and lots of wires to make for the next video..
@JyrkiKoivisto
@JyrkiKoivisto 3 жыл бұрын
Amiga mentioned, instant thumbs up!
@weirdboyjim
@weirdboyjim 3 жыл бұрын
It was an impressive bit of kit.
@m1geo
@m1geo 3 жыл бұрын
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!
@Big_Computer
@Big_Computer 3 жыл бұрын
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
@Mark_Lawler
@Mark_Lawler 3 жыл бұрын
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?
@henrikfisch
@henrikfisch 2 жыл бұрын
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 2 жыл бұрын
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 2 жыл бұрын
@@weirdboyjim Again: Loving it and you very much "owned" a new follower! 😀
@NuttySwiss
@NuttySwiss 3 жыл бұрын
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. :-)
@ajinkyamahajan102
@ajinkyamahajan102 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 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_grant 3 жыл бұрын
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.
@iulianvalentin85
@iulianvalentin85 3 жыл бұрын
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" ;-)
@therealchonk
@therealchonk 3 жыл бұрын
Great video!
@weirdboyjim
@weirdboyjim 3 жыл бұрын
Thanks Benni.
@stigtheghost
@stigtheghost Жыл бұрын
Yes! This is what I want to do thanks great video..
@weirdboyjim
@weirdboyjim Жыл бұрын
Glad you like it!
@djc1402
@djc1402 3 жыл бұрын
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.
@0xABADCAFE
@0xABADCAFE 2 жыл бұрын
That is really putting the M in MVP!
@weirdboyjim
@weirdboyjim 2 жыл бұрын
I know right! :-D
@RetroMarkyRM
@RetroMarkyRM 3 жыл бұрын
mind blowing!
@weirdboyjim
@weirdboyjim 3 жыл бұрын
Thanks Retro Marky, pleased you found it interesting.
@daviddawkins
@daviddawkins 3 жыл бұрын
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
@TheEmbeddedHobbyist
@TheEmbeddedHobbyist 3 жыл бұрын
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.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
Join us to discuss this and the other videos on discord: discord.gg/jmf6M3z7XS Support the channel on Patreon: www.patreon.com/JamesSharman
@olavl8827
@olavl8827 3 жыл бұрын
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?
@daskasspatzle2396
@daskasspatzle2396 3 жыл бұрын
Awesome :-) Looking forward ;-)
@weirdboyjim
@weirdboyjim 3 жыл бұрын
Thanks Das!
@lugaidster
@lugaidster 3 жыл бұрын
Duuuude you're a beast!
@weirdboyjim
@weirdboyjim 3 жыл бұрын
Thanks! Hope you enjoy the rest of it!
@garbagescowcaptain
@garbagescowcaptain 3 жыл бұрын
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.
@pvc988
@pvc988 3 жыл бұрын
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)
@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.
@jaythomas3180
@jaythomas3180 3 жыл бұрын
Can't wait to see how you use the core memory for the video ram. ;)
@weirdboyjim
@weirdboyjim 3 жыл бұрын
About that high resolution goal...
@jesset2550
@jesset2550 3 жыл бұрын
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.
@AiOinc1
@AiOinc1 2 жыл бұрын
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.
@theowinters6314
@theowinters6314 3 жыл бұрын
That's some old school racing the beam.
@weirdboyjim
@weirdboyjim 3 жыл бұрын
You ain’t seen nothing yet! ;-)
@wizardnotknown
@wizardnotknown 3 жыл бұрын
OH YEAAAHHH!!!!!
@weirdboyjim
@weirdboyjim 3 жыл бұрын
Glad you liked it Mr Wizzard!
@edgeeffect
@edgeeffect 3 жыл бұрын
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.
@gregorymccoy6797
@gregorymccoy6797 2 ай бұрын
Oh that's nice.
@weirdboyjim
@weirdboyjim 2 ай бұрын
Glad you like it!
@jryde421
@jryde421 2 жыл бұрын
You and Ben eater collaboration would be amazing.
@weirdboyjim
@weirdboyjim 2 жыл бұрын
It would be cool to work with him,
@monsiw
@monsiw 3 жыл бұрын
What is doing that bigger part of construction where you plugged your circuit? (the blue one)
@weirdboyjim
@weirdboyjim 3 жыл бұрын
That's my homebrew pipelined cpu. This vga project is one of a number of smaller series making add on modules for it. kzfaq.info/sun/PLFhc0MFC8MiCDOh3cGFji3qQfXziB9yOw
@snehashishkarmakar3376
@snehashishkarmakar3376 3 жыл бұрын
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? kzfaq.info/get/bejne/ac94lMpl0JrddZs.html
@snehashishkarmakar3376
@snehashishkarmakar3376 3 жыл бұрын
@@weirdboyjimYep thanks dude you are great
@Scrogan
@Scrogan 3 жыл бұрын
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" ;-)
@SteveRaynerMakes
@SteveRaynerMakes 3 жыл бұрын
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.
@davidrosset4457
@davidrosset4457 4 ай бұрын
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 4 ай бұрын
Those are printed with a "Dynamo Letratag", really useful little thing. I label lots of my storage boxes, chips etc.. with it.
@davidrosset4457
@davidrosset4457 4 ай бұрын
@@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.
@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.
@dubbynelson
@dubbynelson 3 жыл бұрын
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
@akkudakkupl 3 жыл бұрын
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.
@Alex-rv8gw
@Alex-rv8gw 11 ай бұрын
hi sir may i know where can i get the schematics of your VGA Project
@weirdboyjim
@weirdboyjim 11 ай бұрын
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 3 жыл бұрын
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.
@alexany4619
@alexany4619 2 жыл бұрын
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 5 ай бұрын
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.
@thevideoman12
@thevideoman12 3 жыл бұрын
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.
@Decco6306
@Decco6306 3 жыл бұрын
Rad
@weirdboyjim
@weirdboyjim 3 жыл бұрын
Thanks Kipper!
@theforthdoctor7872
@theforthdoctor7872 3 жыл бұрын
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.
@wizardofboz76
@wizardofboz76 3 жыл бұрын
Well hello there.. and hello fellow nerds.
@weirdboyjim
@weirdboyjim 3 жыл бұрын
My breadboards bring all the nerds to the yard!
@nickwallette6201
@nickwallette6201 3 жыл бұрын
Hallo! :-D
@twobob
@twobob 2 жыл бұрын
1 chip. done ;)
@weirdboyjim
@weirdboyjim 2 жыл бұрын
It’s more complex now 🤣
@asmi06
@asmi06 3 жыл бұрын
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?
@Sparkette
@Sparkette 3 жыл бұрын
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!
@KonuralpBalcik
@KonuralpBalcik 3 жыл бұрын
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.
@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.
@damianc1174
@damianc1174 3 жыл бұрын
Video Graphics Array - simples
@weirdboyjim
@weirdboyjim 3 жыл бұрын
It won't be very simple by the time I'm done ;-)
@pareshmhatre4019
@pareshmhatre4019 3 жыл бұрын
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.
@skilz8098
@skilz8098 3 жыл бұрын
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 3 жыл бұрын
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 3 жыл бұрын
@@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 3 жыл бұрын
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
@MrDoboz 3 жыл бұрын
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!
@HUEHUEUHEPony
@HUEHUEUHEPony 5 күн бұрын
buy an fpga old man
Sync - VGA from Scratch - Part 2
31:44
James Sharman
Рет қаралды 22 М.
I made a VGA card that blew my mind
15:44
bitluni
Рет қаралды 424 М.
Викторина от МАМЫ 🆘 | WICSUR #shorts
00:58
Бискас
Рет қаралды 5 МЛН
Они так быстро убрались!
01:00
Аришнев
Рет қаралды 2,4 МЛН
Lehanga 🤣 #comedy #funny
00:31
Micky Makeover
Рет қаралды 18 МЛН
Porting Bad Apple to the Homebrew CPU!
30:56
James Sharman
Рет қаралды 10 М.
I designed my own 8-bit computer just to play PONG
17:19
VGA from an EPROM, is it possible.
15:04
DrMattRegan
Рет қаралды 53 М.
Framebuffer - VGA from Scratch - Part 3
46:36
James Sharman
Рет қаралды 22 М.
I built my own graphics card
15:34
jdh
Рет қаралды 1,4 МЛН
Вывод информации на монитор по VGA
19:53
The world's worst video card?
32:47
Ben Eater
Рет қаралды 6 МЛН
Hacking a weird TV censoring device
20:59
Ben Eater
Рет қаралды 3 МЛН
Beam Racing - VGA from Scratch - Part 5
16:49
James Sharman
Рет қаралды 13 М.
Nokia 3310 top
0:20
YT 𝒯𝒾𝓂𝓉𝒾𝓀
Рет қаралды 4,6 МЛН
$1 vs $100,000 Slow Motion Camera!
0:44
Hafu Go
Рет қаралды 29 МЛН
Что делать если в телефон попала вода?
0:17
Лена Тропоцел
Рет қаралды 3,6 МЛН
تجربة أغرب توصيلة شحن ضد القطع تماما
0:56
صدام العزي
Рет қаралды 64 МЛН