A spectrum with a VGA display is pretty sweet. As an aside I love the VGA display standard. It's probably the most home brew electronics friendly video format.
Weirdly I was wondering if you had a new video up with this project today as it has been a while since I checked - and here it is! Thanks for the update Dr Regan!
Thanks, i've wanted to use through hole technology. The only place i cheat a little is by using larger memories than were available at the time, but i don't want to spend forever wiring up memory boards.
In the Spectrum commercial from Micro Men they state CPU frequency to be 3.54Mhz, which is true for 128K and later models, but the original Speccy ran at 3.5Mhz 😁
Seems like this would break any speccy software that relies on specific contention timing to do things like multicolour or check what model its running on
Correct, it will act like an NTSC spectrum sold in the USA. I can drop it down to PAL, with out the colour if necessary, or i may end up encoding a full colour PAL signal.
@@DrMattReganI saw a comment on a previous video where you mentioned the idea of slowing down the CPU when needed to match the speed of the original Spectrum with its memory contention, that could make the timing seem identical to the software. If any software relies on the exact time when pixels and attributes are output that could be tricky though, it wouldn't be expecting each row to be scanned twice.
Are you quite sure its a "Jet Set Willy" screenshot at the end of the video? Its looks more like "Manic Miner" to me. Nevertheless, a very interesting video on a modern touch to the ZX Spectrum hardware. Not to mention a amazing wiring and soldering skill. Thank you.
@@DrMattRegan Correct. Just checked it, also compared the screenshots for both games. The games are quite similar and it seems like they used the same sprites for the little man. Also I was confusing "Jet Set Willy" with "Jet Pac". Regards.
Welcome, glad you liked it. No, i'll probably just stick with the native colours of the spectrum. I'll also probably stick with the native resolution of the spectrum. The main idea is to get away from a composite PAL signal.
I’m a little confused. VGA is 640 x 480 (visible) NON interlaced. Unless you are buffering a whole line before sending it to the VGA circuit (twice) you are sending an interlaced signal, so your monitor is actually displaying a 480i image (which is a US TV standard, but not part of the official VGA standard). If you have a monitor that supports 480i then chances are it will also support 576i, which is the equivalent 50Hz PAL standard and thus more compatible with Spectrum software.
VGA is 640x480 visible, but 800x525 total at 60Hz. I'm essentially generating 454x525 at 60 Hz total, due to the lower clock rate (14.318MHz vs 25.175MHz) of which 256x384 is visible. I'm still using VGA syncs of 31.5KHz and 60Hz progressive. Interlaced video (PAL) still uses 15.625KHz for Hsync . I'm not buffering a line per-se, i'm just scanning out the same memory twice on two scan lines.
@@DrMattRegan ah, it’s the fact that you are displaying the same raster line twice in succession that I was missing. It’s a progressive frame that you are generating, but using analog video scaling to make horizontal image 640 pixels wide. If your monitor supports it then 576p gives you better compatibility at 50Hz from a 13.5MHz clock, or very slightly faster gets you 800x600 SVGA @ 50Hz.
Probably not terribly hard if you have a real soundblaster card. After all, ISA (16-bit) is just the IBM PC/AT bus (Intel 80286 cpu) and the 8-bit equivalent is the IBM PC bus (Intel 8088 cpu). The Zilog Z-80 is a souped up version of the Intel 8080 whereas the Intel 8085, which preceded the Intel 8086, is software compatible with the 8080 on the binary executable level. So strapping an early Sound Blaster (8-bit) to a Z-80 based system shouldn't be that hard.
Is that an option in premiere pro? I’m using the standard voice enhance ai in premiere pro. ------------------------------ Actually, it looks like there is a de-esser feature, i'll look into it, thanks!
I tried the de-esser and it does sound better! I'll use that in the future, thanks for that. Any other audio tips? I have the standard denoise filter (default -40dB), a hard limiter (-6dB limit with a gain of 10dB) and i use the speech enhancer in premiere pro, anything else i should try?
Nice, very nice. I am not sure of your goals, this idea may ruin the purity. Maybe you could share the address/data bus with an RP2040, use that to generate the VGA output and also use that as a USB interface and flash storage for the Z80 images to load/save. I've seen the RP2040 used to emulate ROM, I am not sure if the timing would be good enough for your project though.
Thanks, but I'm not so sure how 5V tolerant the RP2040 is. The pin header is already configured for an ArduinoMEGA 2560, and it has the address bus and data bus wired up to it. I'll probably use BUSREQ and BUSACK to halt the Z80 and turn off video (zx80 style) when i do the upload.
Yep, it's a different world. I remember when neural nets would have a couple of hundred/ low thousand parameters, now we have 175B and ChatGPT emerges.
No FPGA? Why not? Because you don't know how to use them? The original Spectrum contained an ULA which is the masked programmed equivalent of an FPGA. So using an FPGA is actually closer to the original Spectrum. There are no points awarded for making a design more complicated. I would personally give points for someone that does use an FPGA as it demonstrates they can design the circuit for it. It demonstrates they have more knowledge and skill than just using discrete logic.
Interesting that you jump straight to that. The purpose of the video/series is to demonstrate finite state machines (for what's next to come). It turns out, I have indeed been using FPGAs to make video controllers for quite some time, see - dl.acm.org/doi/pdf/10.1145/311535.311569 I was also part of the GPU architecture team at NVidia previously and i worked on the display controller there, so I'm familiar with going directly to silicon as well. I personally find watching videos of a screen shot of someone programming FPGAs a bit boring, but that's just me. If you like that, here is a good series - www.youtube.com/@CompuSAR
I'm glad to see you are still going with this project! Thank you for sharing, it's very interesting to watch.
Thanks for watching!
A spectrum with a VGA display is pretty sweet. As an aside I love the VGA display standard. It's probably the most home brew electronics friendly video format.
Yep, standard VGA is pretty straightforward, much easier than composite!
EGA accepts TTL levels and needs slightly lower frequency.
really cool! I certainly like the FSM on an eeprom solution that takes over the whole thing while the cpu clock is not active
Thanks, it actually makes for a pretty simple circuit in the end. Just need a largish EPROM (by 1980s standards).
That's pretty cool. Output is really nice.
I used to do all my experiments with point to point.
Very cool, i couldn't really afford wire wrap sockets when i was younger and got use to wiring this way.
@@DrMattRegan Same here. Veroboard and thin wires soldered to pins.
Weirdly I was wondering if you had a new video up with this project today as it has been a while since I checked - and here it is! Thanks for the update Dr Regan!
Excellent, hope you enjoyed it!
Nice, I've wondered about using an apron to do video, nice to see a working implementation.
Cool, thanks
really good
Thank you! Cheers!
Brilliant! Subbed!
Welcome aboard!
Gracias por compartir, muy buen trabajo!!
Hope you enjoy it.
This is incredible. thans
Thanks for the feedback, enjoy!
I like the fact that you don't use any FPGA's for this retro hardware. To me an FPGA is missing the entire point of period appropriate technology.
Thanks, i've wanted to use through hole technology. The only place i cheat a little is by using larger memories than were available at the time, but i don't want to spend forever wiring up memory boards.
Brilliant!
Thanks for the feedback!
Great stuff! Will you be releasing your design once it's finished so that others can build it?
Yes I will if there's enough interest.
спасибо, хорошая работа.
Glad you like it!
In the Spectrum commercial from Micro Men they state CPU frequency to be 3.54Mhz, which is true for 128K and later models, but the original Speccy ran at 3.5Mhz 😁
Seems like this would break any speccy software that relies on specific contention timing to do things like multicolour or check what model its running on
Correct, it will act like an NTSC spectrum sold in the USA. I can drop it down to PAL, with out the colour if necessary, or i may end up encoding a full colour PAL signal.
@@DrMattReganI saw a comment on a previous video where you mentioned the idea of slowing down the CPU when needed to match the speed of the original Spectrum with its memory contention, that could make the timing seem identical to the software. If any software relies on the exact time when pixels and attributes are output that could be tricky though, it wouldn't be expecting each row to be scanned twice.
nice project
Thank you! Cheers!
Are you quite sure its a "Jet Set Willy" screenshot at the end of the video?
Its looks more like "Manic Miner" to me.
Nevertheless, a very interesting video on a modern touch to the ZX Spectrum hardware. Not to mention a amazing wiring and soldering skill.
Thank you.
Enjoy. Ha, ha, i did actually check that, it's room 33 of JSW.
skoolkid.github.io/jetsetwilly/dec/tables/rooms.html
@@DrMattRegan Correct.
Just checked it, also compared the screenshots for both games. The games are quite similar and it seems like they used the same sprites for the little man.
Also I was confusing "Jet Set Willy" with "Jet Pac".
Regards.
Things are tough and getting harder by the minute, so you're just staying ahead of the curve. You've got this!
Thanks for the feedback, appreciated!
Impressive work. Is this going to be 640x480 with 256 colors which is the spec for a vga signal?
Thank you cant wait until next video!
Welcome, glad you liked it. No, i'll probably just stick with the native colours of the spectrum. I'll also probably stick with the native resolution of the spectrum. The main idea is to get away from a composite PAL signal.
@@DrMattRegan So what is the resolution and how many colors? I'm not familiar with PAL
I’m a little confused. VGA is 640 x 480 (visible) NON interlaced. Unless you are buffering a whole line before sending it to the VGA circuit (twice) you are sending an interlaced signal, so your monitor is actually displaying a 480i image (which is a US TV standard, but not part of the official VGA standard). If you have a monitor that supports 480i then chances are it will also support 576i, which is the equivalent 50Hz PAL standard and thus more compatible with Spectrum software.
VGA is 640x480 visible, but 800x525 total at 60Hz. I'm essentially generating 454x525 at 60 Hz total, due to the lower clock rate (14.318MHz vs 25.175MHz) of which 256x384 is visible. I'm still using VGA syncs of 31.5KHz and 60Hz progressive.
Interlaced video (PAL) still uses 15.625KHz for Hsync . I'm not buffering a line per-se, i'm just scanning out the same memory twice on two scan lines.
@@DrMattRegan ah, it’s the fact that you are displaying the same raster line twice in succession that I was missing. It’s a progressive frame that you are generating, but using analog video scaling to make horizontal image 640 pixels wide. If your monitor supports it then 576p gives you better compatibility at 50Hz from a 13.5MHz clock, or very slightly faster gets you 800x600 SVGA @ 50Hz.
Ula+ ulax spectra vdac2?
wow.. so cool... btw, exactly the same way i make prototype pcb's
Thanks, yeah, this sort of construction is become a bit of a lost art I fear.
Now add soundblaster support, LOL 😂!
Probably not terribly hard if you have a real soundblaster card.
After all, ISA (16-bit) is just the IBM PC/AT bus (Intel 80286 cpu) and the 8-bit equivalent is the IBM PC bus (Intel 8088 cpu).
The Zilog Z-80 is a souped up version of the Intel 8080 whereas the Intel 8085, which preceded the Intel 8086, is software compatible with the 8080 on the binary executable level.
So strapping an early Sound Blaster (8-bit) to a Z-80 based system shouldn't be that hard.
Built my ZX81 from a kit as I couldn't afford a pre built one
Great, have you had a look at the zx80/81 series.
Please, please, please use a de-esser on your audio!
Is that an option in premiere pro? I’m using the standard voice enhance ai in premiere pro.
------------------------------
Actually, it looks like there is a de-esser feature, i'll look into it, thanks!
Thank you! Now I can’t unnotice it… LOL
I tried the de-esser and it does sound better! I'll use that in the future, thanks for that.
Any other audio tips? I have the standard denoise filter (default -40dB), a hard limiter (-6dB limit with a gain of 10dB) and i use the speech enhancer in premiere pro, anything else i should try?
Audio is either a synth or really really compressed somewhere in the chain. Hard to listen to.
It is my voice, but it uses premiere pro's voice enhancement to remove noise etc. It actually sounds better at 1.25 or 1.5x speed.
Nice, very nice. I am not sure of your goals, this idea may ruin the purity. Maybe you could share the address/data bus with an RP2040, use that to generate the VGA output and also use that as a USB interface and flash storage for the Z80 images to load/save. I've seen the RP2040 used to emulate ROM, I am not sure if the timing would be good enough for your project though.
Thanks, but I'm not so sure how 5V tolerant the RP2040 is. The pin header is already configured for an ArduinoMEGA 2560, and it has the address bus and data bus wired up to it. I'll probably use BUSREQ and BUSACK to halt the Z80 and turn off video (zx80 style) when i do the upload.
@@DrMattRegan Good point, I look forward to seeing it, this has been a fantastic series, thanks for sharing it with us.
Make more videos
On their way!
Massive 48k of RAM. Current computers can have 48GB of RAM. Wow how things have changed.
Yep, it's a different world. I remember when neural nets would have a couple of hundred/ low thousand parameters, now we have 175B and ChatGPT emerges.
No FPGA?
Why not? Because you don't know how to use them?
The original Spectrum contained an ULA which is the masked programmed equivalent of an FPGA. So using an FPGA is actually closer to the original Spectrum.
There are no points awarded for making a design more complicated.
I would personally give points for someone that does use an FPGA as it demonstrates they can design the circuit for it. It demonstrates they have more knowledge and skill than just using discrete logic.
Interesting that you jump straight to that. The purpose of the video/series is to demonstrate finite state machines (for what's next to come).
It turns out, I have indeed been using FPGAs to make video controllers for quite some time, see - dl.acm.org/doi/pdf/10.1145/311535.311569
I was also part of the GPU architecture team at NVidia previously and i worked on the display controller there, so I'm familiar with going directly to silicon as well.
I personally find watching videos of a screen shot of someone programming FPGAs a bit boring, but that's just me. If you like that, here is a good series - www.youtube.com/@CompuSAR