I'm not only amazed by your skill-set and the awesomeness of this project, but also of how humble and polite you are. Such a rare combo these days! These and the previous part's demos are unbelievable!
Two dimensional palette cycling. Very nice! It's a lot of fun to watch someone who has an interest in hardware as well as software (demo effects at that). It probably seems obvious that if you are going to build your own hardware you are going to write your own software, but quite a few people don't make it that far or have the skills themselves I'd say.
James, thanks for sharing the problems you run into. It makes the whole process more interesting. Also I could watch the LEDs on your computer flash for hours. They have a wonderful visual quality to them as they show what is going on at each level. It's a great visual design. Congrats on the patreon threshold. I plan to join myself, soon.
While I don't fully understand all the technical aspects of all this I find it absolutely amazing that you're creating all this from scratch. And your explanations are easy to understand. Wonderful videos!
Very impressive! When I thought about multiple palettes earlier I managed not to think of fade effects somehow, one of those 'obvious in hindsight' things :)
I've had a busy two weeks and it's been a treat to see a new video of the series on the way back. And one of the most visual ones. I hope you are as proud of the results as you deserve to be. For me it's amazing to see such visual effects on hardware like this. Thanks as always for the great content.
I know that I and others mentioned multiple pages of palettes in the comments previously, but I have to say that I am gobsmacked with what you were able to do with it. Obviously your knowledge of coding for graphics and animation is way way above anything that I would have dreamt up. Well done! And catching that error in the timing generator and the fix for it was pretty cool too - a testament to the flexibility of your design methodology.
The horizontal-cylinder effect is really nice, and keeps getting better! Am I the only one who thinks it'd make a great foundation for a rolling-pin simulator?
@weirdboyjim Prob a legit possibility. Demos are all about doing the seemingly impossible, kinda like a (stage) magic trick. I wouldn't worry about it, tho! Do what you want, and if some will learn an important lesson about expectations then all the better ;)
Holy shit, this is so cool. I cannot even believe how knowledgeable and humble you are. As an EE student, I can't imagine all the hard work that went into this. Fantastic job, truly inspirational.
Spectacular results. I started programming in 1982 so I've always been a fan of creating visual effects by combining simpler code to create them. Probably why programming for the Atari 8-bit computers was so much fun for me: Very nice display effects could be created by simply changing the display list used by the ANTIC chip. Nice work getting that fade/shadow effect done in hardware. Allows for significantly more complex code to run in a game engine.
Great to see the project progress (I'm always in awe). Really enjoyed the image fade, it helps bring the graphics to life - I can see the potential already :)
of course changing the pallet between scan lines is how the megadrive did the under water sections in sonic. There was a separate under water palette for the level so the could change the water level to be what ever they wanted dynamically without redrawing sprites or tiles. (actually they did add sprites to the waters surface to simulate foam)
Yeah, there are endless effects you can do with this kind of functionality. I really like the reflection demo's people used to do with a pallet switch and redrawing of the upper half of the screen in reverse.
Thank you so much for this awesome series. I learned a lot and plan on rewatching many times to increase my understanding. I am subscribed and looking forward to more content from you.
Sheer wizardry, if you ask me. Software is complicated enough to design/figure out and debug. TO add hardware to the mix looks mor elike witchcraft, except it isn't. Never boring to watch this, even if some of it is cryptic. Very, very satisfying.
Glad you like it thanks! I must admit I trust the circuit much more these days, I used to be paranoid about errors in the circuit when I was debugging code.
That thing does better fractal clouds than the laptop I had years ago :D I love it! I'm interested how you're gonna expand this in the future. Have you considered building a sort of "back plane" PCB with address and data lines broken out to card edge connectors that boards can slot into? I'd love to see something like that :D Maybe in a custom enclosure with guide rails that custom standardised cards can slide into, complete with edge lit LEDs
@@weirdboyjim I assumed it was a simple software bug. I bet you could offload palette cycling to the 8k palette memory. I am unsure what that would accomplish but I think it could be done.
This reminds me of some classic Jon Burton/Traveller's Tales tricks on the MegaDrive / Super Famicom / Amiga, right down to the authentic English accent! (Minus the spectacular hardware on the bench, though. ;-) )
I was keen to target this build towards classic hardware standards, I have plans for future builds which will definitely use widescreen standards for simplicity.
Kewl stuffz! Very timely, I just binged all your other videos, left me hungry for more :-) Amazed I hadn't discovered you long ago. You are Eater++ Level! :-)
This is really impressive progress and I can't wait to see a game making full use of the new hardware! Now that single-cycle palette changes are possible I guess you can create (32*256) colour images, though limited to only changing palette every X pixels horizontally with some carefully timed code. I've been working on something similar on some retro ZX Spectrum code (similar to the Nirvana engine). I think some of the old Sega megadrive games used palette changes on scanlines for things like water effects if I remember rightly. So that everything was tinged blue under the water level etc. Can't wait to see what you come up with!
The problem is that 256 colour images are actually really good already, it's general better to use this kind of functionality for more interesting effect. I already have a plan for some water demos :-)
It can't configure a horizontal blanking interrupt, but you poll the horizontal blanking status in the same way as I do here. At least you could on early dos based pc's where you didn't have an operating system in the way.
Amazing build. I like ability to switch pallets very quickly. There is a small issue with the RAMDAC and VGA driving. Lack of gamma / sRGB. You can see this on the intensity demo, where the bright colors do not fade at the same rate as darker colors. Not sure if this actually need to be applied to electric signal, or just the pallet entries need to be made non-linear to properly use sRGB.
Non linearity in these kinds of circuit is extremely difficult. In modern hardware gamma is often done with a lookup table ahead of the dac or even shader instructions.
Absolutely Brilliant ! Sounds like it will be a spririted demo at some point ;) Ok, less cryptic: I've the feeling at some point we will have sprites ;)
What would be a good comparison for the capabilites and performance of this hardware? Somewhere around GBC? I'd love to see a game running on this. Also, thank you very much for the interesting video. This project is amazing!
Now create a time machine, bring this back to 1980 and allow game developers go nuts on this. I would love to see what kind of great games would come out of this.
Would be neat if the spare memory could do a screen sized lookup texture over the display. You could do 'free' frosted glass/water caustics/heat shimmer with the tile graphics. Maybe even the feedback and offset effects that muic app were doing in the 2000's
Ideally for that you would want to sample the image, then add the current x,y. That kind of effect is better suited to more recent hardware but you could do a 1.5d effect along those lines with beam racing.
@@weirdboyjim Yeah, probably too much of a ram requirement. One thing that might work is a normal map with a palettes for a range of direction to do dynamic lighting effects.
Hi James, superb series, I gained an interest by originally following Ben Eaters series, I built and modified his breadboard computer. I'm now currently part way through building the pipeline cpu from your board schematics on EasyAda, I would lik to get a copy of your assembler and coding for the Roms. Is this posible? thanks
Replied to another of your comments that there is file share on the discord. You should remember that the build is not yet complete so nothing is guaranteed to be set in stone until I'm "done".
Awesome work mate - as usual! Maybe consider not using red->green for showing texture examples in the future (though I know you are limited) - I'm not colour blind, but I think 1 in 5 males are, and red and green are the killers!!!!
Any particular bit that was a problem? I try and think about that in UX but not so much with this kind of imagery. Was something especially bad in the plasma fractal?
Could you hide the visual noise of preloading the palette data, by loading them only during the vertical blank? After loading the first one of course, and displaying a static image with it.
Indeed you could. My simple code was uploading each value as it was done, to hide it you would be better of calculating each palette in a temporary buffer and then uploading it.
Having just binged the VGA from Scratch series in a few days and having it all in my head, I managed to figure out what your bug was before you did in this video! That was fun. Fantastic demos here! Playlist maintenance note: this video's not in the VGA playlist yet. And, another playlist thought-the hundred videos of the main CPU playlist is a bit intimidating! Do you think there are any contained sub-playlists that would make sense there, to help ease people into it? Or is it not self-contained enough like the later playlists?
Glad you have enjoyed it. I had a pretty solid idea on what the problem was probably going to be as soon as I saw it not working, but I always try to check carefully rather than jump strait to a solution, you can sometimes cause big problems that way.
@@weirdboyjim more address bits for large RAMDAC you have, could be taken from pixels' addresses lines, in this case video card could have different palettes for different pixel lines. And so letting to display more colors per one frame, even every pixel still having only 8bits/pixel.
@@weirdboyjim no, idea is simple. Now you have large RAMDAC which can store more than 256 colors. 8 bits are used from framebuffer RAM, and few bits are spare. Instead of adding addressable register for these 'spare' bits to switch palette per frame. You could just take these bits from let's say lowest scan line address and have different palettes for different scanlines. No need to extend framebuffer memory or add additional registers, but you could use more colors in picture than just 256.
Outstanding! I notice that your schematic symbols are simple outlines of each physical chip, rather than symbols of functional gates. I guess for someone used to breadboarding this is fairly natural, but with complex logic, a symbol based schematic is far easier to read. Does EasyEDA support gate symbol schematics like other CAD packages do?
I don't think EasyEDA supports symbols like that. I'd be interested to see how that works out with assigning the gates to actual chips when I give some other software a try.
The rom is used for the sync generation, it will very rarely change. What James fixed was a missing directive, and that should have been there. So it was a bug fix rather than a feature/enhancement. I think the code in that rom is more or less fixed.
Pretty much what Oscar said. I have a zif socket in main memory where I planned to swap rom's lots but the sync and the pipelines it would have been a pain to have the bigger socket on the board.
with this new hardware you could display even more colors on the screen by cycling through different pallets per each line. In theory you could do 8,192 colors at once.
Well with the shaded cylinder (and the banded demo) I AM displaying close to that, There is probably some colour replication. If you mean as a static image then yes, but at 80x60 it won't look much different that something with an optimized pallet.
@@weirdboyjim >80x60 We gotta bump those numbers up! Maybe in addition an 80 or 132 col text mode in color with some other fancy features such as smooth scrolling, blinking text, color inversion, text over graphics, graphics over text, etc.
This is really awesome! If only there was a faster way to copy data from ram or rom to the palette. I know that some old consoles did it with a special purpose DMA controller. DMA is still even used today in modern processors.
I'm only really limited by the total memory bandwidth. In the startup of the new demos I'm doing a full multiply for each byte I write to the pallet which is the real time consuming bit.
So you basically have 32 palettes of 255 colors each. That seems unheard of for an 8-bit micro computer, but surprisingly in spirit. The technology of the time was limited by what the developers could get their hands on, so they made sure to use everything of what ended up in the system. You simply used what was available for the palette RAM, and then applied "waste not; want not." How much color depth was in the original parrot image? If it originally used more than 256 colors, could you have it so that it uses a different palette every few lines to display even more colors on screen at once? Alternatively, what about sprites? Sprites often used separate palettes from tiles, so the larger palette sélection could let some be reserved for sprites rather than tiles. That said, they might need to be accessed stimulant with the tile palettes like why you used separate RAMs for each color channel. If you end up with another 32 palettes for the sprites, that would just be even more insane.
Good work man, thanks Can you explain an intel arc a380? it's a bit of a mysterious gpu It's harware seems to be ok but its not performing well, and this is too weird
Join us on Discord: discord.gg/jmf6M3z7XS
Follow me on Twitter: twitter.com/WeirdBoyJim
Support the channel on Patreon: www.patreon.com/JamesSharman
How about to make the resolution of the video 720 to better fit all the power of wide TV
This channel is so absurdly underrated. Great content, THANK YOU!
Thanks Greg!
I'm not only amazed by your skill-set and the awesomeness of this project, but also of how humble and polite you are. Such a rare combo these days! These and the previous part's demos are unbelievable!
My thoughts exactly!
Very kind words! Glad you are finding the build interesting!
Two dimensional palette cycling. Very nice! It's a lot of fun to watch someone who has an interest in hardware as well as software (demo effects at that). It probably seems obvious that if you are going to build your own hardware you are going to write your own software, but quite a few people don't make it that far or have the skills themselves I'd say.
Yeah, but this project was very much "learn the bits I don't know" at the start.
James, thanks for sharing the problems you run into. It makes the whole process more interesting. Also I could watch the LEDs on your computer flash for hours. They have a wonderful visual quality to them as they show what is going on at each level. It's a great visual design. Congrats on the patreon threshold. I plan to join myself, soon.
Glad you like it! There are times when I get distracted and stare at the build running for far too long!
While I don't fully understand all the technical aspects of all this I find it absolutely amazing that you're creating all this from scratch. And your explanations are easy to understand. Wonderful videos!
Good to hear you are finding it interesting!
Very impressive! When I thought about multiple palettes earlier I managed not to think of fade effects somehow, one of those 'obvious in hindsight' things :)
Thanks Frank! There are so many things you can do with this!
I've had a busy two weeks and it's been a treat to see a new video of the series on the way back. And one of the most visual ones.
I hope you are as proud of the results as you deserve to be. For me it's amazing to see such visual effects on hardware like this.
Thanks as always for the great content.
Very kind words thanks! Glad to hear you are enjoying the series!
I know that I and others mentioned multiple pages of palettes in the comments previously, but I have to say that I am gobsmacked with what you were able to do with it. Obviously your knowledge of coding for graphics and animation is way way above anything that I would have dreamt up. Well done! And catching that error in the timing generator and the fix for it was pretty cool too - a testament to the flexibility of your design methodology.
Thanks! I kicked myself when I realized that was the problem.
The horizontal-cylinder effect is really nice, and keeps getting better! Am I the only one who thinks it'd make a great foundation for a rolling-pin simulator?
Thanks! But I do worry some of the demo coder effects like this create unrealistic expectations for later programs.
@weirdboyjim Prob a legit possibility. Demos are all about doing the seemingly impossible, kinda like a (stage) magic trick. I wouldn't worry about it, tho! Do what you want, and if some will learn an important lesson about expectations then all the better ;)
Holy shit, this is so cool. I cannot even believe how knowledgeable and humble you are. As an EE student, I can't imagine all the hard work that went into this. Fantastic job, truly inspirational.
Kind words thanks! Glad you are enjoying!
Yeah, exactly like that. I hadn't expect my random thought on the last video would turn out to be exactly right.
Indeed! I read your other comment last night and wondered how you would react to this video.
Lovely to see you building up the layers of functionality.
Pleased you are finding it interesting!
Spectacular results. I started programming in 1982 so I've always been a fan of creating visual effects by combining simpler code to create them. Probably why programming for the Atari 8-bit computers was so much fun for me: Very nice display effects could be created by simply changing the display list used by the ANTIC chip. Nice work getting that fade/shadow effect done in hardware. Allows for significantly more complex code to run in a game engine.
Thanks Dave! Glad you are enjoying!
Great to see the project progress (I'm always in awe). Really enjoyed the image fade, it helps bring the graphics to life - I can see the potential already :)
Thanks! I shall enjoy playing with this stuff more in future!
Fabulous stuff. Can't wait til we get to the full-on demoscene multiscroller stuff with sick late 80s-early 90s acid techno :)
Thanks Bob! will you forgive me if I skip the techno?
of course changing the pallet between scan lines is how the megadrive did the under water sections in sonic. There was a separate under water palette for the level so the could change the water level to be what ever they wanted dynamically without redrawing sprites or tiles. (actually they did add sprites to the waters surface to simulate foam)
Yeah, there are endless effects you can do with this kind of functionality. I really like the reflection demo's people used to do with a pallet switch and redrawing of the upper half of the screen in reverse.
I love this stuff! I appreciate you taking the time to demonstrate this stuff, so thank you!
Glad you enjoy it!
Thank you so much for this awesome series. I learned a lot and plan on rewatching many times to increase my understanding. I am subscribed and looking forward to more content from you.
I'm happy to hear that you're finding it interesting! You're welcome!
I was missing these videos, they are so cool. Thank you James
Thanks Leonardo!
Always exciting to see how functionality grows.
Glad you like it!
Love it. Such a cool effect with the shaded cylinder 😍
Thanks! Very satisfactory!
Sheer wizardry, if you ask me. Software is complicated enough to design/figure out and debug. TO add hardware to the mix looks mor elike witchcraft, except it isn't. Never boring to watch this, even if some of it is cryptic. Very, very satisfying.
Glad you like it thanks! I must admit I trust the circuit much more these days, I used to be paranoid about errors in the circuit when I was debugging code.
That thing does better fractal clouds than the laptop I had years ago :D I love it!
I'm interested how you're gonna expand this in the future. Have you considered building a sort of "back plane" PCB with address and data lines broken out to card edge connectors that boards can slot into? I'd love to see something like that :D Maybe in a custom enclosure with guide rails that custom standardised cards can slide into, complete with edge lit LEDs
I do have some slightly refined plans for the "final form" that I'll hopefully be explaining soon.
The 1U CPU.
And you found a use for that fourth bit! I notice a bit of unshaded lines at the very extremes of the cylinder travel.
That was a mistake, the original cylinder demo had a 64 pixel high image, but the new parrot demos used a 60 pixel high image.
@@weirdboyjim I assumed it was a simple software bug. I bet you could offload palette cycling to the 8k palette memory. I am unsure what that would accomplish but I think it could be done.
This reminds me of some classic Jon Burton/Traveller's Tales tricks on the MegaDrive / Super Famicom / Amiga, right down to the authentic English accent! (Minus the spectacular hardware on the bench, though. ;-) )
Shoulders of giants and all that! ;-)
These videos are one of best in TH-cam to look at.
How about to make the resolution of the video 720 to better fit all the power of wide TV.
I was keen to target this build towards classic hardware standards, I have plans for future builds which will definitely use widescreen standards for simplicity.
Kewl stuffz!
Very timely, I just binged all your other videos, left me hungry for more :-)
Amazed I hadn't discovered you long ago.
You are Eater++ Level! :-)
That's high praise thanks Roger! Apologies for my slow rate of production now you are at the coal face!
@@weirdboyjim No worries, your efforts and pedagogical style are highly appreciated and worth waiting a bit for :-)
This is really impressive progress and I can't wait to see a game making full use of the new hardware! Now that single-cycle palette changes are possible I guess you can create (32*256) colour images, though limited to only changing palette every X pixels horizontally with some carefully timed code. I've been working on something similar on some retro ZX Spectrum code (similar to the Nirvana engine). I think some of the old Sega megadrive games used palette changes on scanlines for things like water effects if I remember rightly. So that everything was tinged blue under the water level etc. Can't wait to see what you come up with!
The problem is that 256 colour images are actually really good already, it's general better to use this kind of functionality for more interesting effect. I already have a plan for some water demos :-)
Why can't IBM PC VGA have horizontal blank interrupts to play with ☹ *looks at **12:51* 😮
It can't configure a horizontal blanking interrupt, but you poll the horizontal blanking status in the same way as I do here. At least you could on early dos based pc's where you didn't have an operating system in the way.
Amazing build. I like ability to switch pallets very quickly.
There is a small issue with the RAMDAC and VGA driving. Lack of gamma / sRGB. You can see this on the intensity demo, where the bright colors do not fade at the same rate as darker colors. Not sure if this actually need to be applied to electric signal, or just the pallet entries need to be made non-linear to properly use sRGB.
Non linearity in these kinds of circuit is extremely difficult. In modern hardware gamma is often done with a lookup table ahead of the dac or even shader instructions.
Absolutely Brilliant !
Sounds like it will be a spririted demo at some point ;) Ok, less cryptic: I've the feeling at some point we will have sprites ;)
Thanks! Sprite hardware is indeed in the plan!
What would be a good comparison for the capabilites and performance of this hardware? Somewhere around GBC? I'd love to see a game running on this. Also, thank you very much for the interesting video. This project is amazing!
It's quite hard to place like that, my cpu can outperform the GBC cpu by quite a bit now but some of it's display/sound hardware was better.
James, could you do a video on/point me to how you've got C compilers working?
I haven’t, what you see in the debugging section is the pc code that generates the sync rom. Sorry to disappoint.
@@weirdboyjim Of course! Sorry, brainfart! 😁 Would be amazing!
Now create a time machine, bring this back to 1980 and allow game developers go nuts on this. I would love to see what kind of great games would come out of this.
“Time travel from scratch” video series coming right up 🤣
Excellent, James! Bloody awesome!
Thanks George!
Would be neat if the spare memory could do a screen sized lookup texture over the display. You could do 'free' frosted glass/water caustics/heat shimmer with the tile graphics. Maybe even the feedback and offset effects that muic app were doing in the 2000's
Ideally for that you would want to sample the image, then add the current x,y. That kind of effect is better suited to more recent hardware but you could do a 1.5d effect along those lines with beam racing.
@@weirdboyjim Yeah, probably too much of a ram requirement. One thing that might work is a normal map with a palettes for a range of direction to do dynamic lighting effects.
The into the screen chase in mickey mania was done using palette swaps
Indeed, there is a massive array of effects that can be done with this.
Looking great James. Is it time to move it to an FPGA yet? :)
Thanks Mike! I'm starting to firm up plans for a future cpu which will be easier to convert to fpga.
@@weirdboyjim Cool, I look forward to watching that video series!
Enjoyed the video, Thanks for sharing...
Glad you enjoyed!
8:48 I enjoyed "rægester data"
Thanks for making me cringe at that again! 😝
Totally fascinating.
Glad you like it!
Hi James, superb series, I gained an interest by originally following Ben Eaters series, I built and modified his breadboard computer. I'm now currently part way through building the pipeline cpu from your board schematics on EasyAda, I would lik to get a copy of your assembler and coding for the Roms. Is this posible? thanks
Replied to another of your comments that there is file share on the discord. You should remember that the build is not yet complete so nothing is guaranteed to be set in stone until I'm "done".
Awesome work mate - as usual! Maybe consider not using red->green for showing texture examples in the future (though I know you are limited) - I'm not colour blind, but I think 1 in 5 males are, and red and green are the killers!!!!
Any particular bit that was a problem? I try and think about that in UX but not so much with this kind of imagery. Was something especially bad in the plasma fractal?
Could you hide the visual noise of preloading the palette data, by loading them only during the vertical blank? After loading the first one of course, and displaying a static image with it.
Indeed you could. My simple code was uploading each value as it was done, to hide it you would be better of calculating each palette in a temporary buffer and then uploading it.
You’ve mentioned a simulator a couple of times now, but I don’t remember a video talking about it. Did I miss a video somewhere?
No but I probably should at some point, I'm distributing it on the discord at the moment.
Having just binged the VGA from Scratch series in a few days and having it all in my head, I managed to figure out what your bug was before you did in this video! That was fun. Fantastic demos here!
Playlist maintenance note: this video's not in the VGA playlist yet.
And, another playlist thought-the hundred videos of the main CPU playlist is a bit intimidating! Do you think there are any contained sub-playlists that would make sense there, to help ease people into it? Or is it not self-contained enough like the later playlists?
Glad you have enjoyed it. I had a pretty solid idea on what the problem was probably going to be as soon as I saw it not working, but I always try to check carefully rather than jump strait to a solution, you can sometimes cause big problems that way.
Re Playlist maintenance: I don't add videos directly to the playlist on launch, youtube seems to react badly to it.
@@weirdboyjim interesting, thanks for the reply.
I think additional palette bits could be connected to address lines so more colors image can be achieved.
Not 100% sure what you mean by that? You mean having more bits coming out of the frame buffer? That would only work with more memory down stream.
@@weirdboyjim more address bits for large RAMDAC you have, could be taken from pixels' addresses lines, in this case video card could have different palettes for different pixel lines. And so letting to display more colors per one frame, even every pixel still having only 8bits/pixel.
@@weirdboyjim no, idea is simple. Now you have large RAMDAC which can store more than 256 colors. 8 bits are used from framebuffer RAM, and few bits are spare. Instead of adding addressable register for these 'spare' bits to switch palette per frame. You could just take these bits from let's say lowest scan line address and have different palettes for different scanlines. No need to extend framebuffer memory or add additional registers, but you could use more colors in picture than just 256.
Outstanding!
I notice that your schematic symbols are simple outlines of each physical chip, rather than symbols of functional gates. I guess for someone used to breadboarding this is fairly natural, but with complex logic, a symbol based schematic is far easier to read. Does EasyEDA support gate symbol schematics like other CAD packages do?
I don't think EasyEDA supports symbols like that. I'd be interested to see how that works out with assigning the gates to actual chips when I give some other software a try.
Really good work.... perhaps you should exchange that ROM socket with a ZIF socket to make it easier?
The rom is used for the sync generation, it will very rarely change. What James fixed was a missing directive, and that should have been there. So it was a bug fix rather than a feature/enhancement. I think the code in that rom is more or less fixed.
Pretty much what Oscar said. I have a zif socket in main memory where I planned to swap rom's lots but the sync and the pipelines it would have been a pain to have the bigger socket on the board.
with this new hardware you could display even more colors on the screen by cycling through different pallets per each line. In theory you could do 8,192 colors at once.
Well with the shaded cylinder (and the banded demo) I AM displaying close to that, There is probably some colour replication. If you mean as a static image then yes, but at 80x60 it won't look much different that something with an optimized pallet.
@@weirdboyjim >80x60
We gotta bump those numbers up! Maybe in addition an 80 or 132 col text mode in color with some other fancy features such as smooth scrolling, blinking text, color inversion, text over graphics, graphics over text, etc.
Thanks
Thanks Garth! I appreciate the support!
This is really awesome! If only there was a faster way to copy data from ram or rom to the palette. I know that some old consoles did it with a special purpose DMA controller. DMA is still even used today in modern processors.
I'm only really limited by the total memory bandwidth. In the startup of the new demos I'm doing a full multiply for each byte I write to the pallet which is the real time consuming bit.
I hope that someday this VGA system is converted into a final VGA Graphics card.
I do plan on converting all the breadboard to pcb.
@@weirdboyjim That would be interesting. Making the VGA generation its own module/car that can be interfaced to anything!
Fantastic.
Thanks!
So you basically have 32 palettes of 255 colors each. That seems unheard of for an 8-bit micro computer, but surprisingly in spirit. The technology of the time was limited by what the developers could get their hands on, so they made sure to use everything of what ended up in the system. You simply used what was available for the palette RAM, and then applied "waste not; want not."
How much color depth was in the original parrot image? If it originally used more than 256 colors, could you have it so that it uses a different palette every few lines to display even more colors on screen at once?
Alternatively, what about sprites? Sprites often used separate palettes from tiles, so the larger palette sélection could let some be reserved for sprites rather than tiles. That said, they might need to be accessed stimulant with the tile palettes like why you used separate RAMs for each color channel. If you end up with another 32 palettes for the sprites, that would just be even more insane.
The biggest difference between designing this build and what someone would have done in the 70's is the cost and availability of memory chips!
Can you remind us what clock rate you are running at currently?
VGA circuit is clocked at 25.175mhz, the cpu is currently 4mhz
@@weirdboyjim Very impressive for 4MHz
Read about NBA Jam's use of palettes: 512 colors, 16 bits of color, per sprite.
Alright. 32 palettes!
Bravo! No hair pulled.
It's all about making best use of what you have!
@@weirdboyjim Good advice in a time of chip shortages.
Does your simulator include sound emulation?
It does, but some of the discord regulars will not forgive me if I don't add I don't add a volume control soon.
do you have the files for the simulator, i dont have the money to make my own
You can get the simulator from the #toolchain channel on the discord. I'll be updating it in a few days with support for the latest vga update.
How often do you need new EEPROMs?
What do you mean? I've not had any fail on me so I'm mostly reusing the some ones repeatedly.
@@weirdboyjim Oh I just figured that reprogramming EEPROMs often would wear them out quite quickly. - at least if I were using them xD
YAY VIDEO
@@lolguy91wastakenbyanidiot YAY RESPONSE!
Yay feedback!
@@weirdboyjim YAY Highlighted reply
NICE.
Thanks!
Good work man, thanks
Can you explain an intel arc a380? it's a bit of a mysterious gpu
It's harware seems to be ok but its not performing well, and this is too weird
Thanks!
Goal achieved: 100K/(2 * pi) subs? :-)
I was quite pleased to pass 2 to the power of 14 subs!
Thumbs up if you want the resolution of the video 720 to better fit all the power of wide TV.
Widescreen isn't difficult but 4:3 displays are far more appropriate for exploring the 8-bit era.