Skip to content

SNES: Fixed HDMA stealing CPU cycles on every scanline even after all active HDMA channels are done for the frame#183

Merged
Fiskbit merged 1 commit into
masterfrom
SourSnesHdmaTimingFix
Jun 21, 2026
Merged

SNES: Fixed HDMA stealing CPU cycles on every scanline even after all active HDMA channels are done for the frame#183
Fiskbit merged 1 commit into
masterfrom
SourSnesHdmaTimingFix

Conversation

@SourMesen

Copy link
Copy Markdown
Collaborator

Super Bonk triggers an HDMA at the top of the screen on scanline 0 and then the HDMA channel stops. This caused the logic to call SyncStartDma & SyncEndDma on every scanline until vblank, even though no HDMA channel is active for the rest of the frame. The lost CPU time caused Super Bonk's demo to desync even earlier than hardware.

…ctive HDMA channels are done for the frame

Super Bonk triggers an HDMA at the top of the screen on scanline 0 and then the HDMA channel stops. This caused the logic to call SyncStartDma & SyncEndDma on every scanline until vblank, even though no HDMA channel is active for the rest of the frame. The lost CPU time caused Super Bonk's demo to desync even earlier than hardware.
@Fiskbit Fiskbit merged commit 819d959 into master Jun 21, 2026
23 checks passed
@SourMesen SourMesen deleted the SourSnesHdmaTimingFix branch June 21, 2026 12:56
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.

2 participants