Discussion about software development for the old-school Gameboys, ranging from the "Gray brick" to Gameboy Color
(Launched in 2008)
You are not logged in.
Hi all,
I'm trying to display the window at both, the top and bottom of the screen. The LYC_REG interrupt is set to disable and reenable the window at lines 8 and 130.
The problem is, that the window is flickering. Sometimes the background is displayed shortly. Also the window content at the bottom is not displayed.
Could this be an issue of my code or of the BGB emulator? Displaying the window at either the top or the bottom works fine.
Here is my gbdk code, maybe you can tell me what's wrong. Thanks
#include <gb/gb.h> enum { TOP_LCY_INTERRUPT = 8, BOTTOM_LCY_INTERRUPT = 130 }; void WindowUpdate() { if (LYC_REG == (UINT8) TOP_LCY_INTERRUPT) { // should be line 8, so disable the window HIDE_WIN; // next trigger at line 136 LYC_REG = (UINT8) BOTTOM_LCY_INTERRUPT; } else { // should be line 136, so enable the window SHOW_WIN; // next trigger at line 8 will be set at VBL interrupt LYC_REG = (UINT8) TOP_LCY_INTERRUPT; } } void main() { disable_interrupts(); add_VBL(...); add_TIM(...); TMA_REG = ...; TAC_REG = ...; add_LCD(WindowUpdate); STAT_REG = 0x40U; // http://bgb.bircd.org/pandocs.htm#lcdstatusregister SHOW_WIN; LYC_REG = (UINT8) TOP_LCY_INTERRUPT; set_interrupts(VBL_IFLAG | TIM_IFLAG | LCD_IFLAG); enable_interrupts(); while (1) { ... } }
Offline
Not sure about the flickering, I haven't checked the code, but the window is a bit weird when it comes to the LY. If you hide the window at one line and then show it in another one, it will start drawing from the last line that was drawn, not from the one that the scroll in WY would make you think.
Maybe it's worth using the background for both things. Just change the bg map and tiles (and scroll) instead of hiding/showing the window.
Offline
AntonioND wrote:
[...], but the window is a bit weird when it comes to the LY. If you hide the window at one line and then show it in another one, it will start drawing from the last line that was drawn, not from the one that the scroll in WY would make you think.
That's true, I just tested it and now the bottom line will be drawn with content. The flickering is still there, however.
I will try using the background instead of the window, thanks for this idea.
Offline