Тёмный

Tile Data - VGA from Scratch - Part 13 

James Sharman
Подписаться 22 тыс.
Просмотров 16 тыс.
50% 1

Опубликовано:

 

13 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 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 :-)
@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.
@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!
@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.
@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.
@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.
@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.
@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!
@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.
@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! 🤣
@TroySchrapel
@TroySchrapel Год назад
Absolutely awesome, James. Well done! 👏
@weirdboyjim
@weirdboyjim Год назад
Thanks Troy!
@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!
@rinner2801
@rinner2801 Год назад
Such impressive work, I wish I could see it in person!
@weirdboyjim
@weirdboyjim Год назад
Thanks!
@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.
@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 11 месяцев назад
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?
@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 7 месяцев назад
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 7 месяцев назад
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.
@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!
@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!
@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.
@laser-sj
@laser-sj Год назад
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
@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!
@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!
@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.
@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!
@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.
@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.
@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!
@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!
@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.
@gregvandenberg2859
@gregvandenberg2859 Год назад
Still one of my favorite channels. Amazing, thank you so much for posting!
@weirdboyjim
@weirdboyjim Год назад
Thanks Greg! Glad you are still enjoying!
@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!
@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!
@ray30k
@ray30k Год назад
34:20 Oh hey, it's my Factorio base: A big pile of spaghetti!
@weirdboyjim
@weirdboyjim Год назад
It could be a lot worse!
@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?
@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
@lescitrons
@lescitrons Год назад
just brilliant.
@weirdboyjim
@weirdboyjim Год назад
Thanks!
@genxtech5584
@genxtech5584 Год назад
Wonderfull!! Great progress. Really enjoyed this one.
@weirdboyjim
@weirdboyjim Год назад
Glad you enjoyed it!
@adamp9553
@adamp9553 Год назад
Amazing work. :)
@weirdboyjim
@weirdboyjim Год назад
Thanks for the visit
@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!
@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.
@andymouse
@andymouse Год назад
Awesome !....cheers.
@weirdboyjim
@weirdboyjim Год назад
Thanks Andymouse!
@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.
@davepost7675
@davepost7675 Год назад
Beautiful.
@weirdboyjim
@weirdboyjim Год назад
Thanks Dave!
@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.
@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.
@-lolus-
@-lolus- Год назад
that is very impressive. very nice :D
@weirdboyjim
@weirdboyjim Год назад
Thanks! Nice to know people are finding it interesting.
@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.
@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.
@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
@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.
@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.
@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!
@orsoelectrons
@orsoelectrons Год назад
Nice sir
@weirdboyjim
@weirdboyjim Год назад
Thanks!
@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
@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.
@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.
@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!
@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!
@Aruneh
@Aruneh Год назад
Really neat. :)
@weirdboyjim
@weirdboyjim Год назад
Thanks!
@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.
@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.
@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
@@weirdboyjim fair enough. Constraint drive inventiveness
@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.
@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".
@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.
@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.
@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
Просмотров 8 тыс.
Decompress small game, have time to play it!
00:35
Просмотров 11 млн
Faites comme moi
00:14
Просмотров 1,8 млн
Interim Backplane - VGA from Scratch - Part 16
30:37
VGA from an EPROM, is it possible.
15:04
Просмотров 53 тыс.
A 32-bit Register (RISC-V Part 6)
15:05
Просмотров 800
SPI (Bit Banging)- IO from Scratch - Part 4
30:04
Просмотров 10 тыс.
Interface PCB - Audio from Scratch - Part 10
28:35
Просмотров 7 тыс.
Timing Tweak - VGA from Scratch - Part 15
17:36
Просмотров 7 тыс.
Reliable data transmission
43:54
Просмотров 1,6 млн
Palette PCB - VGA from Scratch - Part 19
30:01
Просмотров 7 тыс.
I Designed My Own 16-bit CPU
15:46
Просмотров 2 млн
Output PCB - VGA from Scratch - Part 18
1:22:14
Просмотров 10 тыс.