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

Noise on gba-niccc #141

Closed
GValiente opened this issue Feb 6, 2021 · 3 comments · Fixed by #276
Closed

Noise on gba-niccc #141

GValiente opened this issue Feb 6, 2021 · 3 comments · Fixed by #276

Comments

@GValiente
Copy link

GValiente commented Feb 6, 2021

NanoBoyAdvance 1.3 shows some noise on gba-niccc demo:

NBA

It is difficult to catch it on a screenshot, running the demo shows it better.

It didn't happen with 1.2 release.

@fleroviux
Copy link
Member

Regression from this commit: 92779c8

Ugh, will have to do some more investigation how this is supposed to work.

@fleroviux
Copy link
Member

Seems like HDMA runs long enough to overlap with the H-draw period of the next scanline.
Because NBA currently renders the whole scanline at the start of H-draw, it uses old settings for all OAMs that haven't been updated at the start of H-draw yet.

Probably works on hardware because OAM rendering isn't instantaneous and the higher entries in OAM are rendered later.

One fix might be to render OAM at the end of H-draw, but neither way it is really accurate. I guess this means I should finally implement a (sort of) cycle-accurate PPU for real.

@GValiente
Copy link
Author

GValiente commented Jun 10, 2022

Don't know if it helps, but Varooom 3D (https://gvaliente.itch.io/varooom-3d) shows similar issues with much less sprites rendered with HDMA (23 vs 38):
varooom_3d

@fleroviux fleroviux linked a pull request Feb 20, 2023 that will close this issue
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants