playing-coffee/playing-coffee - Copy/roms/oam_bug/source/6-timing_no_bug.s

58 lines
926 B
ArmAsm

; Verifies no corruption when done at "safe" times
.include "oam_bug.inc"
main:
call disable_lcd
call fill_oam
call test
call disable_lcd
call cp_oam
call print_oam
check_crc $7BB4F198
jp tests_passed
test:
ld de,$FE00
wreg LCDC,$81
; Have first INC DE at scanline 0 beginning
delay 70224 - 7
; Run for several frames
ld h,10
@loop:
; Try to trigger just before and just after
; window where corruption occurs, for every
; scanline
ld b,144
- inc de
delay 18
dec de
delay 114-22-4
dec b
jr nz,-
; Try to trigger constantly during vblank
ld b,10
jr +
-- delay 13
+ ld c,12
- inc de
dec c
dec de
jr nz,-
dec b
jr nz,--
delay 4
dec h
jr nz,@loop
ret