Thanks for the help so far.

I do still draw the window when WindowX is 0, so that part at least is not the issue. Actually the game never writes to WindowX or WindowY anyway.

(The LY=LYC interrupt happens on 104 not 114 like I wrote in the OP, my mistake.)

Here are all the writes to the PPU regs that happen in a frame:

**Code:**

SL, Reg, (ID), value written

144 FF43 (SCX) 0x00

144 FF42 (SCY) 0x00

144 FF46 (DMA) 0xC0

146 FF40 (LCDC) 0xD3

104 FF40 (LCDC) 0xEB

104 FF42 (SCY) 0x00

104 FF43 (SCX) 0x00

So, it definitely turns off the window in vblank and doesn't turn it back on until LY=LYC interrupt. Maybe the writes to SCY and SCX at the interrupt are supposed to be writes to the window instead of scroll, but the whole interrupt routing is just this:

**Code:**

====IRQ====

0048: F3 DI A:00 F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1FD Cy:91196112 LY:104 zNHCie

0049: CD AE 02 CALL #02AEh A:00 F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1FD Cy:91196116 LY:104 zNHCie

02AE: F5 PUSH AF A:00 F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1FB Cy:91196140 LY:104 zNHCie

02AF: C5 PUSH BC A:00 F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1F9 Cy:91196156 LY:104 zNHCie

02B0: D5 PUSH DE A:00 F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1F7 Cy:91196172 LY:104 zNHCie

02B1: E5 PUSH HL A:00 F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1F5 Cy:91196188 LY:104 zNHCie

02B2: 3E EB LD A,#EBh A:00 F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1F3 Cy:91196204 LY:104 zNHCie

02B4: E0 40 LDH (#FF40h),A A:EB F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1F3 Cy:91196212 LY:104 zNHCie

02B6: FA 03 C2 LD A,(#C203h) A:EB F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1F3 Cy:91196224 LY:104 zNHCie

02B9: E0 42 LDH (#FF42h),A A:00 F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1F3 Cy:91196240 LY:104 zNHCie

02BB: 3E 00 LD A,#00h A:00 F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1F3 Cy:91196252 LY:104 zNHCie

02BD: E0 43 LDH (#FF43h),A A:00 F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1F3 Cy:91196260 LY:104 zNHCie

02BF: E1 POP HL A:00 F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1F3 Cy:91196272 LY:104 zNHCie

02C0: D1 POP DE A:00 F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1F5 Cy:91196284 LY:104 zNHCie

02C1: C1 POP BC A:00 F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1F7 Cy:91196296 LY:104 zNHCie

02C2: F1 POP AF A:00 F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1F9 Cy:91196308 LY:104 zNHCie

02C3: C9 RET A:00 F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1FB Cy:91196320 LY:104 zNHCie

004C: FB EI A:00 F:70 B:00 C:10 D:C0 E:A0 H:CF L:10 SP:C1FD Cy:91196336 LY:104 zNHCie

004D: D9 RETI

So yeah, seems like it shouldn't really be drawn. Any ideas?

EDIT: Also, If i don't draw the window at all the status bar displays just fine since it's also available in the BG. So, maybe it's really not drawing the window somehow afterall?

EDIT2: Does CGB boot up with WX and WY as 0xFF instead of 0x00? GB seems to boot to (0,0) according to Gekkio's tests, meaning the window would hide the status bar, but if CGB boots to (0xFF,0xFF) it would be really disabled and the the BG version of it would show through. Plausible?