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

Scan line decoupling #2

Open
dnotq opened this issue Aug 29, 2019 · 0 comments
Open

Scan line decoupling #2

dnotq opened this issue Aug 29, 2019 · 0 comments
Assignees

Comments

@dnotq
Copy link
Owner

dnotq commented Aug 29, 2019

The scan line generation is currently tied to the pixel scan-out rate (pixel clock) and needs to be separated. This is to decouple the scan line pixel generation from the output video resolution. This is required for the MK2. To fix this:

  1. Change pixel scan line generation to a single line buffer that is shared between the tile layer and sprites. They are currently sequential processes (sprites are triggered once the tiles are done) using their own line buffers. This is wasting a 2K BRAM as well, which could be freed for additional VRAM.

  2. Change all internal pixel scan line generation to run at the main fast (typically 100MHz) clock. It currently has dependency on the 25MHz clock.

  3. Create the single line buffer as a dual-clock RAM to allow the scan-out to have its own pixel clock.

Note that the overall frame-rate of the F18A must remain at 59.94Hz to avoid problems with existing software. 59.973Hz was proven to be enough of a deviation to cause software on multiple platforms to crash!

So, even though the scan-out can have its own pixel clock, the overall scan line time cannot deviate from 31.778us and the vertical rate must remain at 59.9390Hz (59.40Hz).

@dnotq dnotq self-assigned this Aug 29, 2019
@dnotq dnotq changed the title Pixel scanout Scan line decoupling Aug 29, 2019
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

No branches or pull requests

1 participant