Tile Data - VGA from Scratch - Part 13

  Переглядів 15,287

James Sharman

James Sharman

День тому

In this video I build one of the remaining modules for the vga. Tile data let’s us increase the effective resolution from 80x60 to 640x480 at the cost of a little flexibility. This build was not without it’s problems, I ran into a few issues mostly surrounding the difficulties of making a stable 25mhz circuit on a breadboard.
0:00 Introduction
0:48 Discussion
6:51 Build Explore and Check
12:01 Empty Breadboards
15:48 Wiring the ram chip
20:16 Tile Index Timing
21:55 Read address Inputs
26:20 Output Multiplexer
30:10 Write address Inputs
34:22 Stand Alone Testing
38:32 Integration
39:37 Adding an Output Latch
40:59 Turn it on!
45:35 Swap the Latches
46:05 Text Mode
49:18 Nibble Address Error
50:40 Demo: Fibonacci
51:27 Demo: Vga Terminal and Logo
52:25 Demo: Maze
53:48 Demo: Graphical Tile set
54:26 Demo: Monitor extensions for tiledata
55:15 Demo: Kodak Parrots
57:39 Extra Decoupling
58:32 Demo: Parallax Maze
59:42 Outro
Fixing the last Palette glitches - • Fixing the last Palett...

КОМЕНТАРІ: 168
@weirdboyjim
@weirdboyjim Рік тому
Join us on Discord: discord.gg/jmf6M3z7XS Follow me on Twitter: twitter.com/WeirdBoyJim Support the channel on Patreon: www.patreon.com/JamesSharman
@damianvila
@damianvila Рік тому
Oh! No Mastodon account... :(
@Teckman8
@Teckman8 Рік тому
Feels like we are getting to the point where the VGA output is more complex than the rest of the system. Great job adding yet more features!
@weirdboyjim
@weirdboyjim Рік тому
Only one main module to go, won’t be as complex as the cpu but it’s not a surprise that it’s up there.
@FrankGevaerts
@FrankGevaerts Рік тому
That last demo is *very* impressive! I think I expected the text mode and the new parrot version, so those didn't surprise me, but the parallax effect is on another level!
@weirdboyjim
@weirdboyjim Рік тому
Thanks Frank! Glad you like it, there are still a couple of surprises to come :-)
@andycoates7171
@andycoates7171 Рік тому
Amazing how many old 8bit coders go into electronics, including me. I've learnt so much from you, Ben Eater, George Foot, and the guy that did the Vulcan 74 build. This is very inspiring - you are a very good teacher!
@weirdboyjim
@weirdboyjim Рік тому
Great to hear! I bumped into George a while back, nice guy.
@Joorin4711
@Joorin4711 Рік тому
Excellent progress! And the added bonus of you knowing the tips and tricks from the game and demo world is the spice that really ties things together.
@weirdboyjim
@weirdboyjim Рік тому
Thanks Peter! Actually I’m starting to look forwards to doing more game dev stuff soon!
@bassguitarbill
@bassguitarbill Рік тому
I'm so glad the algorithm recommended this video to me, I'm tremendously excited to see how this build proceeds!
@weirdboyjim
@weirdboyjim Рік тому
Welcome! Hope you enjoy the rest of it.
@SerBallister
@SerBallister Рік тому
This is seriously cool. It reminds me of the arcade boards coming mainly out of Japan from the 80s with all their fancy tiling hardware that was far more powerful than the home computers we had at the time.
@weirdboyjim
@weirdboyjim Рік тому
Yeah, many of those boards were not as price sensitive as home computers.
@iamdarkyoshi
@iamdarkyoshi Рік тому
Really enjoying watching this project develop. It's a classic 8 bit computer from the ground up, but without the bean counters or unobtainable deadlines being shoved in the engineer's face, so you've got so much more freedom :)
@weirdboyjim
@weirdboyjim Рік тому
Exactly! Have to keep myself constrained a little to make it feasible though.
@peter.stimpel
@peter.stimpel Рік тому
What have I learned? "Wrongness" is measured in miles: And whenever you think you have seen the most packed breadboard, a James Sharman is around ... Congrats, good progress.
@weirdboyjim
@weirdboyjim Рік тому
Some of those alu breadboards were packed!
@Vintaronica
@Vintaronica Рік тому
Perfect, now completely up to date and can’t wait to watch this tonight!
@OscarSommerbo
@OscarSommerbo Рік тому
A whole hour of JAM Goodness, this is a soothing balm after battling with doctors for 6 hours straight.
@weirdboyjim
@weirdboyjim Рік тому
Glad to be of service!
@tiemenfiat1321
@tiemenfiat1321 Рік тому
Awesome! Didn't expect such smooth output from a breadboard at that resolution.
@weirdboyjim
@weirdboyjim Рік тому
Thanks! I was always expecting to get smooth motion but I'm pleased we didn't get more issues from the breadboard.
@electronash
@electronash Рік тому
Tile graphics look great already. Nice. I wrote a tile-based OSD in Verilog years ago, and it was good fun, but it's not as neat as actually building it out of TTL chips. hehe
@weirdboyjim
@weirdboyjim Рік тому
Groovy! 🤣
@damianvila
@damianvila Рік тому
I particularly like the VGA videos, since I love watching things come to life on screen. The Sharmatronic... sorry, the JAM-1 is coming along! :D
@weirdboyjim
@weirdboyjim Рік тому
Yeah, visual results make for good feedback!
@HeadCodeMonkey82
@HeadCodeMonkey82 Рік тому
These videos are always worth the wait, and such a great reference. I find myself coming back to your videos repeatedly, and always picking up a bit more each time. When the system is "complete", or you are looking for the next topic, I hope you manage to spend some time on how to develop in such a constrained environment.
@weirdboyjim
@weirdboyjim Рік тому
Kind words! When the hardware is finished I’ll spend some time developing software. I expect I’ll discuss that a bit more during the process.
@AJB2K3
@AJB2K3 Рік тому
I always find your breadboard layouts a work of art.
@weirdboyjim
@weirdboyjim Рік тому
Thanks! I do need to find a better way of showing the breadboard build sections.
@TroySchrapel
@TroySchrapel Рік тому
Absolutely awesome, James. Well done! 👏
@weirdboyjim
@weirdboyjim Рік тому
Thanks Troy!
@cskilbeck
@cskilbeck Рік тому
Outstanding, so good - and the old parallax tile trick to get another playfield, very nice. Once the sprites are in you're basically there, can't wait to see a playable game on this thing
@weirdboyjim
@weirdboyjim Рік тому
Thinking of porting my “snek” game to the vga soon.
@ArneChristianRosenfeldt
@ArneChristianRosenfeldt 7 місяців тому
Sprites overlap. So you would need to duplicate the same circuit for each sprite. C64 had 8, pcEngine 16. What about 4 tiles per tile? The background and 4 shifted ones. So you could only overlap 3. On breadboard memory is cheap. Or basically, on breadboard rather use a framebuffer and a single blitter. Or a genesis linebuffer which is filled in the side borders? Sprites could be 1 bit for transparency. Each sprites sets a different bit so that we can detect all collision combinations. Then in a second pass fill in the winning color?
@gregvandenberg2859
@gregvandenberg2859 Рік тому
Still one of my favorite channels. Amazing, thank you so much for posting!
@weirdboyjim
@weirdboyjim Рік тому
Thanks Greg! Glad you are still enjoying!
@alexmarch2024
@alexmarch2024 Рік тому
I love what You are doing. Waiting every next video. Don't stop and good luck!
@weirdboyjim
@weirdboyjim Рік тому
Thank you so much! I appreciate the support!
@TheGunnarRoxen
@TheGunnarRoxen Рік тому
Wow! Definitely pushing the boundaries of what breadboards can handle there! JAM-1 is looking great.
@weirdboyjim
@weirdboyjim Рік тому
Thanks! I do need to get these ones converted to pcb, if only to give me space!
@DavidLatham-productiondave
@DavidLatham-productiondave Рік тому
I can see how proud you are in your outro. You look chuffed to bits. 🎉 Well done!!
@weirdboyjim
@weirdboyjim Рік тому
Thanks David! Although I suspect a bit of relief is there too! 🤣
@BrainSlugs83
@BrainSlugs83 3 місяці тому
I know this project is long over, but you hit the nail on the head when you said "I swear it would be faster to just make a PCB for this", the amount of times I've seen you hook up a bunch of multiplexers to just pair all of the address or data lines together and bind all of the inputs together... I feel like you could just make one reusable multplexer DIP style PCB, that just took in two sets of 8 inputs, one set of 8 outputs, a single select line, pwr & gnd, with built in decoupling caps... You could put it in a wide DIP 28, and just reuse them over and over and save 60% of your wiring each video... 🙃
@weirdboyjim
@weirdboyjim 3 місяці тому
The project is not over! There are still a few parts of it left to go, only one more section that has memory in it though. There are some benefits to making some modules to use along the way, but the significant difference between the circuits is still going to be the differences in the inputs. You'll still have to see me add all those lines even if they terminate in a neat row rather than spread around the multiplexers.
@TheRealBobHickman
@TheRealBobHickman Рік тому
Great stuff. I'm really looking forward to the hardware sprites.
@weirdboyjim
@weirdboyjim Рік тому
Yeah, that’s the last big module for the vga side.
@datamoon
@datamoon Рік тому
Great stuff James, keep it up!
@weirdboyjim
@weirdboyjim Рік тому
Thanks!
@rinner2801
@rinner2801 11 місяців тому
Such impressive work, I wish I could see it in person!
@weirdboyjim
@weirdboyjim 11 місяців тому
Thanks!
@genxtech5584
@genxtech5584 Рік тому
Wonderfull!! Great progress. Really enjoyed this one.
@weirdboyjim
@weirdboyjim Рік тому
Glad you enjoyed it!
@petesapwell
@petesapwell Рік тому
Hi James, great to watch the update and fab results!! Best get the 74ACT out and more decoupling caps for the sprites, that’s really going to push the breadboard.
@weirdboyjim
@weirdboyjim Рік тому
Fundamentally the sprites are not making any demands beyond what I’ve already done. Not looking forwards to the circuit replication though
@DukeofEarl1961
@DukeofEarl1961 Рік тому
Excellent James. Another demo idea - I remember using this tile changing and placing method to create a hi-res oscilloscope demo on my very low res VIC20 in the early 80's. The tiles made the waveform shape in low res with the hi res tile definition giving the waveform shape required. With most of an oscilloscope screen blank it was perfect when there weren't enough unique tiles to fill the screen. Perhaps a step further would be an A-D converter and you have a scope that could look at itself or the JAM1 !
@weirdboyjim
@weirdboyjim Рік тому
Interesting idea, making an AD convertor in logic is something I’ve thought about.
@rauljvila
@rauljvila Рік тому
What a treat of a video! It has everything. The fact that a bug can be easier to solve in hardware that in software still blows my mind :D [49:18] The more you add, the more I'm eager for you to the next things (ahem, keyboard, ahem). Thanks for the great videos!
@weirdboyjim
@weirdboyjim Рік тому
Thanks! I’ve been thinking about keyboard actually. Be nice to run completely stand alone.
@kirknelson156
@kirknelson156 Рік тому
as always very impressive, I don't know how you are keeping everything straight in your mind, with the timing and the all the lines that need to be held high or low. I don't know if you got weeks of research and schematics but you seem to be planning this out on the fly and that's like 3 times as impressive.
@weirdboyjim
@weirdboyjim Рік тому
HaHa! I have occasionally had to go and watch my own videos as a reminder!
@lasersimonjohnson
@lasersimonjohnson Рік тому
Great work James ! I always go straight to PCB now for complex prototypes myself as JLC are cheap and quick !
@weirdboyjim
@weirdboyjim Рік тому
I had an idea that I should have done a pcb for the core memory circuit here as I could have used it for multiple circuits as I converted the previous bit to pcb
@ZeroStatic
@ZeroStatic Рік тому
Great work as always James, it’s interesting to see your thinking as you develop the various parts of the system. I have built a number of z80 systems for various purposes over the years and understand the entire fundamentals of computing. Would love to have the spare time to do something similar to what you’ve achieved there. Almost all microcontrollers now, it’s simple and quick, gets the job done, but not much fun. Thanks for the video series 😊
@weirdboyjim
@weirdboyjim Рік тому
You are very welcome! It’s fun to play in ways that just wouldn’t be possible if someone else were setting deadlines.
@khatharrmalkavian3306
@khatharrmalkavian3306 Рік тому
It's incredible to watch this and to think about what it must have been like when devices like the NES PPU were made.
@weirdboyjim
@weirdboyjim Рік тому
I’m really enjoying reminiscing about old techniques!
@oscill8ocelot
@oscill8ocelot Рік тому
Did I hear you say 24mhz? On a breadboard?! And you're getting such clear output! Those must be some quality breadboards! Amazing work - thank you for sharing this with us all!
@weirdboyjim
@weirdboyjim Рік тому
Indeed, we’ll it’s 25.175mhz, the benefit of course is that as long as the sync and blanking are working issues just show as visual glitches rather than a crashed cpu you are trying to debug.
@garyliddon
@garyliddon Рік тому
Great episode James :)
@weirdboyjim
@weirdboyjim Рік тому
Thanks Gaz! Some this stuff takes me bake to early game dev!
@garyliddon
@garyliddon Рік тому
@@weirdboyjim It does :) it was getting near the end and I thought “he could do a parallax layer by redefining characters on the fly” and you did :D Are you going to let each character choose a palette?
@KitsuneAlex
@KitsuneAlex Рік тому
I am a simple man; i see a new James Sharman video, i hit like. Great video, as always a delight to watch :)
@weirdboyjim
@weirdboyjim Рік тому
I appreciate that!
@GodmanchesterGoblin
@GodmanchesterGoblin Рік тому
I have just re-watched this whole VGA mini-series while resting up nursing a bout of Covid... Clearly the planning that has gone into this has been very thorough and well thought out. Well done! Personally, I would have loved to see a larger full-resolution buffer (obviously paged into a smaller space), but for your stated needs I can see that the creation of additional layers of screen data manipulation by having both the tile and palette mechanisms available offers so much more flexibility as well as processing efficiency. I am intrigued by the possibility of how you might get back to 8 bits per pixel to fully utilise the palettes, albeit at a lower resolution.
@weirdboyjim
@weirdboyjim Рік тому
One thing to understand is that I was prepared for the cpu to max out at a lower clock rate so the vga had some design elements to enable me to make some fun games with less computation than I have. I do have plans for future cpu+video builds that will both have flat frame buffer and the power to fill it at a decent rate.
@GodmanchesterGoblin
@GodmanchesterGoblin Рік тому
@James Sharman Splendid! I look forward to all future updates. And yes, designing for a potentially more restricted processing power makes good sense. While watching, I was also revisiting the two computer video hardware designs that I did in the 80s, one was just character based with a 6845 controller, the second used the amazingly capable 82716, but which was quickly overtaken by PCs going down the EGA and VGA path.
@lescitrons
@lescitrons Рік тому
just brilliant.
@weirdboyjim
@weirdboyjim Рік тому
Thanks!
@adamp9553
@adamp9553 Рік тому
Amazing work. :)
@weirdboyjim
@weirdboyjim Рік тому
Thanks for the visit
@ray30k
@ray30k Рік тому
34:20 Oh hey, it's my Factorio base: A big pile of spaghetti!
@weirdboyjim
@weirdboyjim Рік тому
It could be a lot worse!
@mikehibbett3301
@mikehibbett3301 Рік тому
You must be so excited doing keyboard entry to the machine directly :)
@weirdboyjim
@weirdboyjim Рік тому
Would be nice to do some useful computing with nothing else attached!
@davepost7675
@davepost7675 Рік тому
Beautiful.
@weirdboyjim
@weirdboyjim Рік тому
Thanks Dave!
@-lolus-
@-lolus- Рік тому
that is very impressive. very nice :D
@weirdboyjim
@weirdboyjim Рік тому
Thanks! Nice to know people are finding it interesting.
@Octojen
@Octojen Рік тому
Really cool! Maybe i just have bad eyes, but would have liked some close-ups or video capture. I didn't realise the text was corrupted until you said - and after you fixed it, it still took a bit of imagination to read it. Maybe on your extras channel you could show your demos again, but zoomed into the screen?
@weirdboyjim
@weirdboyjim Рік тому
I’ll look into that, need to work out how to do a crisp zoom
@mikehibbett3301
@mikehibbett3301 Рік тому
Great video, thanks James. I watched this while working on my own PCBs for work :) What are your plans for the future of this design?
@weirdboyjim
@weirdboyjim Рік тому
All of these bits should come together into a fairly coherent computing device and then I’ll develop a few games and demos for it. I’ve got some rough plans for a sequel build which will introduce some new concepts when this is all done.
@vanhetgoor
@vanhetgoor Рік тому
It is becoming an impressive VGA, it is now even better then what I remember from the times of the IBM PC. The PCB's are getting big, almost a table full. By the time you have added 4K rotation and scaling you need two tables and some bookshelves.
@weirdboyjim
@weirdboyjim Рік тому
Desk space is a key metric in deciding project scope!
@kilianhekhuis
@kilianhekhuis Рік тому
I might've missed it, but adding an additional memory lookup would create a 1 cycle delay, which must be compensated for (as the sync pulses still use the same timing), resulting in slightly shifted pixels? How do you compemnsate for that?
@weirdboyjim
@weirdboyjim Рік тому
Yes it does, I’ll be talking about that more in a future video, I hinted a little about that in this one.
@andymouse
@andymouse Рік тому
Awesome !....cheers.
@weirdboyjim
@weirdboyjim Рік тому
Thanks Andymouse!
@twobob
@twobob Рік тому
Amazoid. Looks so good now. Parrot algo was already pretty dope.
@weirdboyjim
@weirdboyjim Рік тому
Thanks twobob! Should be able to get it a little better though!
@DevEncryptionNull
@DevEncryptionNull Рік тому
Great video! Was wonder if you might revisit the CPU or do you consider it done at this point? Would like to see more advance math functionality added. Like multiplication and division. An easy route would be to implement LUT in ROM. Multiply and Divide would each require 64k. This can be reduced if you remove duplications.
@weirdboyjim
@weirdboyjim Рік тому
The cpu may get some tweaks but the core is there. I do have plans forming up for a new cpu build that will advance a few concepts, trying to evolve this in place is not the best way to do it.
@Schwuuuuup
@Schwuuuuup Рік тому
Hi, great work. So as I understand you select the Tile, select the Pixel from within the Tile, get the Color data from a particular pixel look it up in the pallet and output its RGB to VGA... would the versatility be massively improved by having a pallet index .. well ... basically per tile. So the tile data could define reoccurring shapes without having the colors locked? Or is having a pallet lookup table too much out of reach?
@weirdboyjim
@weirdboyjim Рік тому
You could do that, but I’d need somewhere to store the data. Another idea I had was to use a few bits from tile index to offset the pallet look up, so you would have 16 different 16 colour pallets each used by exactly 16 tiles. But then I came up with a cooler idea you’ll have to wait to see.
@Schwuuuuup
@Schwuuuuup Рік тому
@@weirdboyjim Ooohh... you tease you ... ;-) If I may some additional feedback. I Liked the overlays of the ICs but had wished for description not just numbers "multiplexer" or "ram" would have been sufficient. Also when we are talking about 640x480 graphics a closeup or two of the screen would be lovely ... at this size youtube compression lets only guess what is a glitch and what is a compression artifact
@BinaryCounter
@BinaryCounter Рік тому
That's awesome! How much headroom is there? Could you run the pixel fetching circuit at higher speeds? If so, you could potentially use the same circuit to generate multiple values for each pixel sequentially and latch and mix them together to create multiple background layers, without replicating the entire circuit.
@weirdboyjim
@weirdboyjim Рік тому
Unfortunately I don’t have enough bandwidth for that. In theory I’m only using half the bandwidth for tile-data as I get 2 pixels with each read but the logic to make that work would be extensive
@johnnycernato4068
@johnnycernato4068 Рік тому
Looks awefully close to running Commander Keen on this thing, wow!
@weirdboyjim
@weirdboyjim Рік тому
Ahh commander keen! I wonder if they ever released the source code to that.
@cannotbeleftblank6027
@cannotbeleftblank6027 Рік тому
Just to get an indication of how long it took to wire these breadbords: what's the speed-up when you're not talking and explaing stuff? 5 times, 10 times as fast?
@weirdboyjim
@weirdboyjim Рік тому
My go to speed up is 9x, I tend to do things in multiples of 3. But I also cut chunks out when Nothing is moving on camera, lots of wire stripping etc.
@weirdboyjim
@weirdboyjim Рік тому
If I remember correctly the build videos were about 3-4 hours before I started editing.
@renaissanceman5847
@renaissanceman5847 Рік тому
Astounding work James. Why do I get the feeling 2 years from now that you'll be programming EPROMs with a custom 8 Bit style video Games then putting them onto PCBs that then plug into the JAM-1?
@weirdboyjim
@weirdboyjim Рік тому
Nah, 2 years from now I’ll have finished this and be working on a sequel project. I hope!
@gregvandenberg2859
@gregvandenberg2859 Рік тому
​@@weirdboyjim do you have a sequal in mind?? Can't wait to see what awesomeness could be next!
@Aruneh
@Aruneh Рік тому
Really neat. :)
@weirdboyjim
@weirdboyjim Рік тому
Thanks!
@moki123g
@moki123g Рік тому
I love this project. So are you going to squash it in to an FPGA once you get it figured out?
@weirdboyjim
@weirdboyjim Рік тому
There are a few other people trying to get my designs up and running on an fpga but it's not in my plans at the moment.
@angeldude101
@angeldude101 Рік тому
Something I noticed: the tile data indexes directly into the global palette? I know on Nintendo's tile-based systems, the tile data generally indexes into a small portion of the full palette, and the portion is selected independently for the tile from its pattern. Regarding the parallax, while it wasn't the 8-bit system, the Super NES, as well as a few other Nintendo systems, had multiple background layers that could be scrolled independently for things like parallax. Speaking of the SNES, are there any plans for affine transformations (the famous "Mode 7" graphics)? Even if for nothing else, it would enable zooming in to that kind of tiled level to actually get a better look at the individual tiles. :P More seriously, it can also be used isometric games where each tile displays as a rhombus rather than a square, and of course changing the transformation on each scanline gives the classic 3D projection capability. (I guess I should mention that I didn't grow up with 8-bit systems and instead grew up with the GBA, so naturally I'm a bit more fond of the more complex, but still low-resolution, tile-based graphics that it has, and largely shares with the SNES, compared to the graphics of the NES.)
@weirdboyjim
@weirdboyjim Рік тому
I'm more trying to demonstrate different principles than reproduce some specific functionality. Mode 7 was an interesting feature that could be described as stepping stone between planar graphics and primitive 3d hardware.
@NuttySwiss
@NuttySwiss Рік тому
I’m trying to follow (now that I’m home from work😂) exactly how this looks in memory. I’m guessing there is a 80x60 (8 bits each) region, call it the frame or cell buffer (so 4800 bytes). These 8 bits index into a tile map, each tile is 32 bytes in size (8x8 pixels x4 bbp = 32 bytes). The full tile map is then 256x32, or 8k in size. The resulting 4 bits per pixel are then used to output a colour directly? Or are they an index into a 16 entry table (of say 8x3 bits each) to give the final rgb output to the display?
@weirdboyjim
@weirdboyjim Рік тому
The tile map is actually 128x64 of which 80x60 is shown, the visible section selected by the scroll registers.
@orsoelectrons
@orsoelectrons Рік тому
Nice sir
@weirdboyjim
@weirdboyjim Рік тому
Thanks!
@TheDefpom
@TheDefpom Рік тому
Your breadboards are always so tidy, mine look like someone dropped a bowl of spaghetti on the floor.
@weirdboyjim
@weirdboyjim Рік тому
Thanks Scott! It's enlightened self interest, I need to put the effort into to make them maintainable and debugable! There are far better examples from other people though!
@IcySon55
@IcySon55 Рік тому
It seems like you could potentially add more actual background tile layers once the tile system is made into a PCB if perhaps you allow the PCBs to stack with a way to set their tile data (tiles and palette) address? If there's enough address space!
@weirdboyjim
@weirdboyjim Рік тому
Sure I could, but I’m trying to avoid adding features beyond the earlier design now.
@thetaleteller4692
@thetaleteller4692 Рік тому
I like your solution. a full resolution frame buffer would overwhelm the bus, no way to drive fast graphics that way. It would feel like the C64 in graphics mode. This looks more like a NES/Gameboy solution. It would not have survived Nintendo cost cut back then, due to all the SRAM required ;-) I guess you will need even more ram to drive the sprites because I doubt you can reuse the tile ram due to timing issues. Coming up next a PS2 keyboard interface?
@weirdboyjim
@weirdboyjim Рік тому
It would good to get some kind of keyboard interface in there!
@NuttySwiss
@NuttySwiss Рік тому
Doing an optimization to a set of Floyd-Steinberg tiles to display images would be awesome. 😅
@weirdboyjim
@weirdboyjim Рік тому
Generating a good set of optimised tiles would probably make a mini series on it’s own.
@NuttySwiss
@NuttySwiss Рік тому
@@weirdboyjim easily. Especially if one gets into the eye/brain interface along with colour/vision and so on. From a pure optimization perspective, it's an interesting problem (if we ignore some of the human vision aspects) on its own as well. 😄
@sdjhgfkshfswdfhskljh3360
@sdjhgfkshfswdfhskljh3360 Рік тому
@@NuttySwiss I think PSNR (MSE) may be enough to decide which result is better.
@NuttySwiss
@NuttySwiss Рік тому
@@sdjhgfkshfswdfhskljh3360 it will get close, but would likely not help with various aspects related to vision and patterns.
@sdjhgfkshfswdfhskljh3360
@sdjhgfkshfswdfhskljh3360 Рік тому
​@@NuttySwiss do you know about any method better that PSNR, which describe image quality as single number? I tried to find one and failed. Single numbers are needed because they are trivial to compare. Saying "this image looks better" will not help, because every person have his own feeling of "better".
@stupossibleify
@stupossibleify Рік тому
Given that a lot of what you rely on is 74L series glue logic, what is the major differentiation responsible for the amazing capability you demonstrate with your project Vs the typical capabilities of cards in the 80s? Why didn't we see more in he 80s of what you demonstrate today?
@weirdboyjim
@weirdboyjim Рік тому
There are are a few factors there, I have the benefit of hindsight but don’t underestimate the advantage I have in low priced memory chips. I can buy SRAM easily but designers back then would have been fighting DRAM to stop the cost being prohibitive.
@randomelectronicsanddispla1765
@randomelectronicsanddispla1765 Рік тому
Have you considered paged memory? You could easily have a whole 32kB for tile data
@weirdboyjim
@weirdboyjim Рік тому
I’m trying to work within some constraints, trying to solve problems can make things more interesting. My next build will have a wider native address bus.
@randomelectronicsanddispla1765
@randomelectronicsanddispla1765 Рік тому
@@weirdboyjim fair enough. Constraint drive inventiveness
@graealex
@graealex Рік тому
8-Bit Guy should have commissioned you for the graphics interface on the Commander X16 - that way it wouldn't have ended up as an overblown FPGA-solution that has zero chances of ever ending up as discrete chips.
@weirdboyjim
@weirdboyjim Рік тому
Nice sentiment! Not sure it would have helped him keep the pcb size down!
@Schwuuuuup
@Schwuuuuup Рік тому
@@weirdboyjim No, but I see a Planet-X port in the future ;-)
@graealex
@graealex Рік тому
@@weirdboyjim I think what you are building could still be optimized, especially with some simple programmable logic arrays, which I feel is fair game still. However, the VERA module of the X16 has become its own computer entirely, which seems ridiculous for a computer built around an 6502.
@Octojen
@Octojen Рік тому
I wonder how hard it would be to rig up a PS2 keyboard - i'd think it wouldn't be too hard. Maybe serial is preferable, but I think there would be cool factor on being able to use screen & keyboard, with no laptop attached. (You'd have to preload the roms of course). Maybe you could port an assembler or some interpreted language like basic or forth - I like like the idea of being able to use it like the old 8 bits of the day. Maybe your for focused on the console idea . . . but still.
@weirdboyjim
@weirdboyjim Рік тому
Ps2 is actually a little easier than serial but a similar thing.
@Fox-Tech
@Fox-Tech Рік тому
Time to add a keyboard? Not a ps/2 keyboard of course (because where's the fun in that), but doing your own scanning hardware? Maybe with a custom keyboard PCB, or possibly using an existing one (if you can find one that doesn't have a built in controller).
@weirdboyjim
@weirdboyjim Рік тому
Hmm, that’s an interesting idea. I was looking at key switches the other day.
@ExtremeMetal
@ExtremeMetal Рік тому
@@weirdboyjim I can say from experience that the cheap AliExpress Outemu switches feel really nice, no need to spend a fortune on other higher end branded switches.
@gammongaming9081
@gammongaming9081 Рік тому
do you reuse old wires or not?
@weirdboyjim
@weirdboyjim Рік тому
I reuse some? The little black and red ones for power/gnd are easy to reuse but many of the shaped ones are tougher.
@sdjhgfkshfswdfhskljh3360
@sdjhgfkshfswdfhskljh3360 Рік тому
I wonder what is the limit of improving parrot quality with new version of hardware. Maybe adding of dithering can help with limited amount of colors?
@weirdboyjim
@weirdboyjim Рік тому
It would be really easy to just add enough ram to have a full resolution frame buffer but I’m trying to explore the techniques, the parrots will improve though!
@Schwuuuuup
@Schwuuuuup Рік тому
Taking the input Image and creating versatile tiles that can be reused within the image might be the real problem. Dithering would have to be done within the tile data, and I guess that's the real bottleneck
@sdjhgfkshfswdfhskljh3360
@sdjhgfkshfswdfhskljh3360 Рік тому
​@@Schwuuuuup I think that some areas of image may benefit more from dithering and some areas - more from added detalisation. Also it may be interesting to try changing palette and tile data on the fly.
@maskloy
@maskloy Рік тому
10
@weirdboyjim
@weirdboyjim Рік тому
Thanks.
@CodeBallast
@CodeBallast Рік тому
Too many commercials, James.
@weirdboyjim
@weirdboyjim Рік тому
I don’t get much control over that sorry.
@CodeBallast
@CodeBallast Рік тому
It was 20 - 40 seconds every 5 minutes. I hope not that this is the new standard of youtube :0(
@weirdboyjim
@weirdboyjim Рік тому
@@CodeBallast I get an on/off option in a few categories but I know they have been pushing it up lots. Maybe your fitting into a particular demographic being targeted lots at the moment.
@seandtrue
@seandtrue Рік тому
Love to see the layers of progress. As systems like this evolve, the rate and quality of the changes reflect the original architecture. This one is clearly a winner. Pity that it’s hard to make a lovely 8x8 font, but that’s a very small nit,
Tile Data PCB - VGA from Scratch - Part 14
29:38
James Sharman
Переглядів 8 тис.
Adding GPIO - IO from Scratch - Part 1
20:11
James Sharman
Переглядів 13 тис.
Glow Stick Secret 😱 #shorts
00:37
Mr DegrEE
Переглядів 64 млн
😨Новая Война в GTA 5 Online #shorts
00:40
King Dm
Переглядів 1,6 млн
Voloshyn - ЗУСИЛЛЯ (прем'єра треку 2024)
06:17
VOLOSHYN
Переглядів 612 тис.
Introduction to CPU Pipelining
10:29
Merlin Wellington
Переглядів 32 тис.
VGA from an EPROM, is it possible.
15:04
DrMattRegan
Переглядів 52 тис.
SPI (Bit Banging)- IO from Scratch - Part 4
30:04
James Sharman
Переглядів 9 тис.
Analogue In - IO from Scratch - Part 2
19:47
James Sharman
Переглядів 8 тис.
The History of the FPGA: The Ultimate Flex
18:08
Asianometry
Переглядів 332 тис.
Disaster struck while working on this odd-ball 386SX VLB motherboard
29:36
Adrian's Digital Basement ][
Переглядів 54 тис.
Вы поможете украсть ваш iPhone
0:56
Romancev768
Переглядів 135 тис.
Такого вы точно не видели #SonyEricsson #MPF10 #K700
0:19
BenJi Mobile Channel
Переглядів 3,2 млн
How Neuralink Works 🧠
0:28
Zack D. Films
Переглядів 25 млн
Распаковал Xiaomi SU7
0:59
Wylsacom
Переглядів 1,1 млн