hneemann / Digital

A digital logic designer and circuit simulator.
GNU General Public License v3.0
4.13k stars 416 forks source link

VGA modes for custom hardware, like the gigatron #1285

Closed fetchingcat closed 3 weeks ago

fetchingcat commented 2 months ago

Hello. First time visitor here.

First, I LOVE your project! It's amazing and very useful.
For a project I am working on I am using Digital to model the gigatron TTL computer (https://gigatron.io/?page_id=482) I made a working schematic recreation using Digital, but hit a snag trying to use the very cool VGA renderer.

It would seem the gigatron video single is close enough to work, but not 100% correct. I was able to modify Digital by adding the following mode which allows the gigatron simulation to render correctly. I am hoping to not have to "fix" the gigatron ROMs (not even sure if that is possible) but rather to allow the slightly off spec values its generating.

vm(new VideoMode(60, 25, 640, 16, 96, 48, 480, 10, 8, 23, true, true)); // gigatron

As far as I can tell, there is no way to configure these values currently without modifying the code. Would you consider allowing this line to be added? If you wish you see this working real time... I published the initial implementation here... https://github.com/fetchingcat/gigatron-rom/tree/master/Contrib/fetchingcat/simulation

While it works for me locally, I would love it if anyone could use this simulation without modifying your cool project! The simulation is helpful for understanding how it works as well as could be used to trouble shoot real hardware. I am using it as a guide to get gigatron in FPGA which I am also hoping will be easy now that I have it in this form.

Thanks for the consideration!

fetchingcat commented 1 week ago

Thank you!