gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

Coding > DMA HBlank

#3477 - Drago - Tue Feb 25, 2003 6:06 pm

Hello,

I've been playing around with DMA HBlank transfers, and I've found the following issues:

GBATEK info says, under 'LCD Dimensions and Timings' section:
Note that no H-Blank interrupts are generated within V-Blank period.

Also from GBATEK, in the section explaining the DMA repeat bit:
The transfer will be repeated forever, until it gets stopped by software.

VisualBoy (v1.4) behaviour is:
H-Blank interrupts are generated within V-Blank period.
The DMA HBlank transfer is stopped at VBlank.

And my tests on the hardware tell me that:
H-Blank interrupts ARE generated within V-Blank period (agrees VBoy).
The DMA HBlank transfer is NOT stopped at VBlank (agrees GBATEK).

Can anybody confirm the hardware behaviour?

Thanks.

#3508 - dukope - Wed Feb 26, 2003 9:48 am

hdma occurs only on the visible portion of the screen (0 -160) on both the hardware and, as far as i know, vba.

to verify, you can test the increment behaviour of the hdma register during a vblank. you'll find that the value of the source address remains unchanged from line 160, through the vblank, and back to line 0.

edit:
note that this says nothing about the actual transfer, only the interrupt generation.