People complaining that there aren't enough LEDs on the VGA panel... they are correct, of course. Never blinkin' lights. The project looks amazing, that last pan out was a great overview of its' magnificence. Bring on the sprites!
What UA-cam has taught me is that it's just a matter of time until someone wire-wraps this machine entirely and strangely enough I'm looking forward to it!
Cheer for the flawless win! And I absolutely loved the "chip review" while assembling it "This ist a 74xyz it's turbo encabulator, we use it to re-calibrate the sensor phalanx" it really helped to answer some open questions in my head an enhance the understanding. (And this is the internet, so I will emphasize: that this was not sarcastic, I actually liked it very much ;-) )
You could add a circuit to select the palette bank "automatically" by using the first byte of a line in the frame buffer. Each line could have one out of 32 palettes. All palettes could be on screen at the same time without any CPU overhead. The Apple IIgs used this trick to get more out of the very limited 16 out of 4046 color space. The image conversion process is a bit more elaborate, though. The automatic palette-swap was heavily used to have a defined palette for the menu-bar in 640-mode (4 colors out of 4096) while the rest of the screen could have any other colors. The IIgs had some other neat modes like flood fill mode (color-index followed by 0 will continue to draw that color) and alternating palettes for even and odd pixel-columns in 640-mode (switch the least sig. bit of the palette banks by the pixel-clock). You could also add an auto-cycle circuit to switch through the 32 palettes on the h-sync (every frame, every 2nd frame ...). This would add limited animation capabilities without CPU-overhead.
Interesting idea. I thought about a few things that could be done. One I liked was taking the pallet bank of the top 5 bits of the tile index. That would be far more manageable. Changing the index by frame or line is something you could do in software under the current model. I would have rather just had 256 byte srams, this solution was the simplest thing that let me use that ram without messing with the circuits elsewhere.
@@weirdboyjim I find your idea to drive the pallet banks from a tile/sprite engine very interesting. That would result in a lot more versatility compared to a by-pixel/by-line or by-frame approach. Having separate palettes for background, sprites and tiles makes a lot of sense.
@@john_aceattribute color was actually patented by Sinclair for the spectrum. C64 has a separate palette for the sprites as does the Amiga. Well technically, I think that the Amiga inventors thought they games would use 8+8 colors for the playfields. ST port use 16 colors. So the top 16 were for the 8 sprites. Ah find the error. Why not 24 colors for sprites?
the last 10% normally always take 90% of the time. we normally chose to do the easy traces first hoping that the last ones will still be routable. if you have a tight project time line, then it's always best to have a 2 week holiday just after the deadline. knowing that is when the fan gets hit 🙂
@@weirdboyjim I just think it's the normal flow of things. The easy bugs you can just run through without much effort, but the last few expose deeper problems or issues in the code or requirements.
I've ordered a couple of AHC components (such as 74AHC138 and 74AHC574) to get the speed of AC but the convenience of HC. If I understand it correctly they have gentler rise times than AC and therefore a bit easier to work with but they are still faster than their HC counterparts.
FWIW there is AHCT as well in case you need TTL-compatible inputs (I noticed you used LS-parts in some places) I mistakenly bought a 25.175 MHz oscillator which didn't have CMOS compatible outputs but I hope a 74AHCT will save the day to give me a CMOS compatible 12.6 MHz signal :)
Is this still the same computer that you started building +-3 years ago? When do you think you'll finish it? I'm looking forward to seeing the final state of the computer. 😁
It is indeed. The core cpu has been finished for quite some time though (but I will make a new backplane at the end to tidy it up). I'm just building all the other bits now to make it a full system.
Good PCB software will support gate swapping, bank swapping, bus reordering, etc., as the ICs support, and it's trivial to use. EasyEDA is super basic. 🙂
I appreciate I should look at some other options but there is obviously learning curve resistance to that. I want to stick with amateur accessible software though (free preferably).
@@weirdboyjim I've got great experience with Kicad. Only thing I tried to do so far that failed catastrophically was renumbering the components after layouting the PCB. Not sure if it would help with what @m1geo suggests, but I'm happy with it. Seems superficially similar to EasyEDA though.
I've used three different and non-mutually compatible PCB CAD suites over the years (late 1980s to present). Each has their quirks and advantages and disadvantages. I'm with James on this - it's better to be expert in one and know how to work around it's limitations than spend more time learning another only to hit another set of issues further down the road.
I'm in the process of changing from Eagle to KiCAD .. man I feel like a noob again and the easiest Tasks feel annoyingly hard. Switching EDA tools is hard.
How did you get JLCPCB to ship you a normal sized stencil? They keep offering me a huge one with equally huge shipping costs. Is it just the custom size bit?
You can specify a custom size for the stencil when you are ordering it. I usually make mine 10cm bigger than the PCB in both dimensions so that there is a good amount of overlap (5cm on each edge) for working with solder paste, but it isn't ridiculously oversized.
Yes, as Tom said, it's the specify size option. I suspect they just make the large one and trim it. Does make the shipping easier, I make mine all 150x100 if I can.
EasyEDA appears to have a superior UI compared to KiCAD, which I find very unpleasant to use. Connecting components in KiCAD are very fidgety and buggy. Its design checker would be laughable, if it weren't so frustratingly useless. It merely drops arrow pointing at the problem which are often bugs in how it detects connection points. I suspect its fanfare is primarily based on it being free and open source rather than its quality. It's a real shame as it is recommended as being the most capable tool.
Join us on Discord: discord.gg/jmf6M3z7XS
Follow me on Twitter: twitter.com/WeirdBoyJim
Support the channel on Patreon: www.patreon.com/JamesSharman
"I can swap those around" are famous last words, at least for me. This "autorouter" called James is way ahead of my routing skills ...
I haven't forgotten the vga output circuit when "just swapping these" around caused me to spend significant time in investigation!
People complaining that there aren't enough LEDs on the VGA panel... they are correct, of course. Never blinkin' lights.
The project looks amazing, that last pan out was a great overview of its' magnificence.
Bring on the sprites!
Lots more cool demos in the works!
Thanks for adding the on-screen comments, I bet it saved a lot screaming at the screen :D
Thanks! Saved me lots of comment replies as well 😅
What UA-cam has taught me is that it's just a matter of time until someone wire-wraps this machine entirely and strangely enough I'm looking forward to it!
As you long as you are not demanding I do it! 😅
I'm shocked but pleased that worked first time for you! There were a lot of changes and I figured you were tempting fate. Great job!
Thanks for the confidence! 😆 I've had more work first time than not!
@@weirdboyjim Heh. Sorry. The unintended backhanded complement stems from extensive personal experience.
So good - can't wait for the sprites! Lovely reflow money shot this time as well. The whole thing is looking really impressive.
I was really pleased with that bit of reflow! I did upload a copy in 4k if you want to take a look! ua-cam.com/video/-Ft7fpfQwvw/v-deo.html
@@weirdboyjim Very nice - even looks good on my crappy 1080 monitor!
Good job getting it done first time.
Don't forget to add Blast Processing(TM).
Thanks! Might have to limit myself to regular processing. I don't have a silly enough Marketing department to add Blast Processing(TM)
Cheer for the flawless win! And I absolutely loved the "chip review" while assembling it "This ist a 74xyz it's turbo encabulator, we use it to re-calibrate the sensor phalanx" it really helped to answer some open questions in my head an enhance the understanding.
(And this is the internet, so I will emphasize: that this was not sarcastic, I actually liked it very much ;-) )
Glad you enjoyed it! But this is just regular encabulation, I'll turbo it in a later videos 😆
@@weirdboyjim ahh I seen the turbo encabulators only come in BGA Packages which are hardly usable for simple Hobbyists with a soldering iron
@@weirdboyjim I'd hope so! After all, regular encabulators are very prone to side fumble! 😁
Nicely done. It's always good when things just work first time.
You got that right!
Great result! I'm really looking forward to seeing how you implement the sprite hardware.
That's the last significant bit of functionality due to be added!
You could add a circuit to select the palette bank "automatically" by using the first byte of a line in the frame buffer. Each line could have one out of 32 palettes. All palettes could be on screen at the same time without any CPU overhead. The Apple IIgs used this trick to get more out of the very limited 16 out of 4046 color space. The image conversion process is a bit more elaborate, though. The automatic palette-swap was heavily used to have a defined palette for the menu-bar in 640-mode (4 colors out of 4096) while the rest of the screen could have any other colors. The IIgs had some other neat modes like flood fill mode (color-index followed by 0 will continue to draw that color) and alternating palettes for even and odd pixel-columns in 640-mode (switch the least sig. bit of the palette banks by the pixel-clock). You could also add an auto-cycle circuit to switch through the 32 palettes on the h-sync (every frame, every 2nd frame ...). This would add limited animation capabilities without CPU-overhead.
Interesting idea. I thought about a few things that could be done. One I liked was taking the pallet bank of the top 5 bits of the tile index. That would be far more manageable. Changing the index by frame or line is something you could do in software under the current model. I would have rather just had 256 byte srams, this solution was the simplest thing that let me use that ram without messing with the circuits elsewhere.
@@weirdboyjim I find your idea to drive the pallet banks from a tile/sprite engine very interesting. That would result in a lot more versatility compared to a by-pixel/by-line or by-frame approach. Having separate palettes for background, sprites and tiles makes a lot of sense.
@@john_aceattribute color was actually patented by Sinclair for the spectrum. C64 has a separate palette for the sprites as does the Amiga. Well technically, I think that the Amiga inventors thought they games would use 8+8 colors for the playfields. ST port use 16 colors. So the top 16 were for the 8 sprites. Ah find the error. Why not 24 colors for sprites?
Amazing that it worked first time! Impressive!
Indeed thanks! I'm well about 50% for getting it to work first time, but this was a complex board.
Goody ! sprites, awesome work James....cheers.
Thanks Andymouse!
I very much enjoy your videos. Congrats on your success with this board first time out. Thanks so much for making them. Cheers
Thank you very much!
This is fantastic! Thank you so much!
You're very welcome!
the last 10% normally always take 90% of the time. we normally chose to do the easy traces first hoping that the last ones will still be routable.
if you have a tight project time line, then it's always best to have a 2 week holiday just after the deadline. knowing that is when the fan gets hit 🙂
We often talk about "the first 90%" and "the second 90%" of certain bits of work.
@@weirdboyjim I just think it's the normal flow of things. The easy bugs you can just run through without much effort, but the last few expose deeper problems or issues in the code or requirements.
congrats matey - great work
Thanks!
The jam-1, aka "Sharmatronic Awesome Computer" (SAC? XDDDD) is looking better with each iteration. Cheers!
Glad you are enjoying!
Not enough LEDs on the VGA board? The entire thing's purpose is to drive millions of little coloured dots!
A good point, but in you could argue an "era appropriate" display would be crt and not oled!
I've ordered a couple of AHC components (such as 74AHC138 and 74AHC574) to get the speed of AC but the convenience of HC. If I understand it correctly they have gentler rise times than AC and therefore a bit easier to work with but they are still faster than their HC counterparts.
Interesting, I'll take a look at that logic family.
FWIW there is AHCT as well in case you need TTL-compatible inputs (I noticed you used LS-parts in some places)
I mistakenly bought a 25.175 MHz oscillator which didn't have CMOS compatible outputs but I hope a 74AHCT will save the day to give me a CMOS compatible 12.6 MHz signal :)
Is this still the same computer that you started building +-3 years ago? When do you think you'll finish it? I'm looking forward to seeing the final state of the computer. 😁
It is indeed. The core cpu has been finished for quite some time though (but I will make a new backplane at the end to tidy it up). I'm just building all the other bits now to make it a full system.
That looks remarkably breadboardless!
The sprite hardware will be quite a few breadboards but the build is definitely on the downward trend for breadboards now!
@@weirdboyjim Ooh looking forward for this
Good PCB software will support gate swapping, bank swapping, bus reordering, etc., as the ICs support, and it's trivial to use. EasyEDA is super basic. 🙂
I appreciate I should look at some other options but there is obviously learning curve resistance to that. I want to stick with amateur accessible software though (free preferably).
@@weirdboyjim I've got great experience with Kicad. Only thing I tried to do so far that failed catastrophically was renumbering the components after layouting the PCB. Not sure if it would help with what @m1geo suggests, but I'm happy with it. Seems superficially similar to EasyEDA though.
I've used three different and non-mutually compatible PCB CAD suites over the years (late 1980s to present). Each has their quirks and advantages and disadvantages. I'm with James on this - it's better to be expert in one and know how to work around it's limitations than spend more time learning another only to hit another set of issues further down the road.
Yup, if you know how to achieve stuff and you aren't collaborating with others then any tool that you know how to use is just fine.
I'm in the process of changing from Eagle to KiCAD .. man I feel like a noob again and the easiest Tasks feel annoyingly hard. Switching EDA tools is hard.
How did you get JLCPCB to ship you a normal sized stencil? They keep offering me a huge one with equally huge shipping costs. Is it just the custom size bit?
You can specify a custom size for the stencil when you are ordering it. I usually make mine 10cm bigger than the PCB in both dimensions so that there is a good amount of overlap (5cm on each edge) for working with solder paste, but it isn't ridiculously oversized.
Yes, as Tom said, it's the specify size option. I suspect they just make the large one and trim it. Does make the shipping easier, I make mine all 150x100 if I can.
Great work ... (yeah 103 is not 101 HEHE!!)
My Resistor kit lied to me!
well speed and power required go hand in hand i find. faster electrons keen a bigger kick up the rear. 🙂
How do you tell which side of an electron is the rear? 😆
@@weirdboyjim you have to watch to see which end gets wiped 😃
EasyEDA appears to have a superior UI compared to KiCAD, which I find very unpleasant to use. Connecting components in KiCAD are very fidgety and buggy. Its design checker would be laughable, if it weren't so frustratingly useless. It merely drops arrow pointing at the problem which are often bugs in how it detects connection points. I suspect its fanfare is primarily based on it being free and open source rather than its quality. It's a real shame as it is recommended as being the most capable tool.
People keep telling me to learn KiCad but I have a certain level of investment in learning the EastEDA interface it's tough to walk away from.