Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace Electron graphics generation with FPGA transcription. #1399

Merged
merged 13 commits into from
Sep 9, 2024

Conversation

TomHarte
Copy link
Owner

@TomHarte TomHarte commented Sep 7, 2024

This pull request attempts to transcribe the video generation portion of @hoglet67 's https://github.com/hoglet67/ElectronFpga (as filtered through @moogway82 's https://github.com/moogway82/JamSoftElectronULA which removes from that support for VGA, etc, making it easier to parse to my non-VHDL-aware mind) into C++, in order to benefit from all current knowledge about video generation within the Electron FPGA.

It's a very basic translation at present, with little in the way of software-style optimisation.

@TomHarte
Copy link
Owner Author

TomHarte commented Sep 7, 2024

Immediate successes or near-successes relate to the works of @0xC0DE6502 :

Basketball#1
(though note that the left edge of the raster bars implies palette changes at least one column too late)

grid

... but Firetrack is frustratingly now slightly broken — at least usually. Possibly some invalidly-initialised state? Work to do.

When broken:
Firetrack

@0xC0DE6502
Copy link

Looking good, Thomas! 👍

@moogway82
Copy link

moogway82 commented Sep 7, 2024

Have you tried pressing '1' on Firetrack? I think that might be working actually and it shows a screen like that when the fields are out of sync. I thought my ULA was broken for a while until I was told this 'press 1' trick - it's in the manual for the game too I believe.

(this is very cool btw, and I'd glad that my paring back of hoglets lovely code was helpful here)

@TomHarte
Copy link
Owner Author

TomHarte commented Sep 9, 2024

Fair enough; hitting "1" does indeed resolve the Firetrack issue, and likely I found it to be intermittent due to uninitialised internal state somewhere. So an issue still exists, probably in either my manual transcription of the VHDL into sequential code or exactly how I've adapted the mechanism for splitting time but if I can't figure it out relatively quickly then I'll merge as is, still definitely being a big improvement, and fix in a subsequent effort to avoid the inbox noise for everyone I've @'ed above.

@TomHarte TomHarte merged commit 7eee3f9 into master Sep 9, 2024
7 checks passed
@TomHarte TomHarte deleted the ElectronULARedux branch September 9, 2024 01:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants