diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm index 6f6d2df81c..005a693457 100644 --- a/constants/hardware_constants.asm +++ b/constants/hardware_constants.asm @@ -81,8 +81,14 @@ DEF rWave_d EQU $ff3d DEF rWave_e EQU $ff3e DEF rWave_f EQU $ff3f DEF rLCDC EQU $ff40 ; LCD Control (R/W) -DEF rLCDC_ENABLE EQU 7 -DEF rLCDC_ENABLE_MASK EQU 1 << rLCDC_ENABLE +DEF rLCDC_BG_PRIORITY EQU 0 +DEF rLCDC_SPRITES_ENABLE EQU 1 +DEF rLCDC_SPRITE_SIZE EQU 2 +DEF rLCDC_BG_TILEMAP EQU 3 +DEF rLCDC_TILE_DATA EQU 4 +DEF rLCDC_WINDOW_ENABLE EQU 5 +DEF rLCDC_WINDOW_TILEMAP EQU 6 +DEF rLCDC_ENABLE EQU 7 DEF rSTAT EQU $ff41 ; LCDC Status (R/W) DEF rSCY EQU $ff42 ; Scroll Y (R/W) DEF rSCX EQU $ff43 ; Scroll X (R/W) @@ -111,3 +117,8 @@ DEF rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank DEF rPCM12 EQU $ff76 ; Channels 1 & 2 Amplitude (R) DEF rPCM34 EQU $ff77 ; Channels 3 & 4 Amplitude (R) DEF rIE EQU $ffff ; Interrupt Enable (R/W) +DEF rIE_VBLANK EQU 0 +DEF rIE_LCD EQU 1 +DEF rIE_TIMER EQU 2 +DEF rIE_SERIAL EQU 3 +DEF rIE_JOYPAD EQU 4 diff --git a/engine/movie/hall_of_fame.asm b/engine/movie/hall_of_fame.asm index a43ec5dac2..aebe65f0fe 100644 --- a/engine/movie/hall_of_fame.asm +++ b/engine/movie/hall_of_fame.asm @@ -12,7 +12,7 @@ AnimateHallOfFame: call FillMemory call EnableLCD ld hl, rLCDC - set 3, [hl] + set rLCDC_BG_TILEMAP, [hl] xor a ld hl, wHallOfFame ld bc, HOF_TEAM @@ -88,7 +88,7 @@ AnimateHallOfFame: xor a ldh [hWY], a ld hl, rLCDC - res 3, [hl] + res rLCDC_BG_TILEMAP, [hl] ret HallOfFameText: diff --git a/engine/movie/intro.asm b/engine/movie/intro.asm index f489c60b63..552b135821 100644 --- a/engine/movie/intro.asm +++ b/engine/movie/intro.asm @@ -319,8 +319,8 @@ PlayShootingStar: call LoadIntroGraphics call EnableLCD ld hl, rLCDC - res 5, [hl] - set 3, [hl] + res rLCDC_WINDOW_ENABLE, [hl] + set rLCDC_BG_TILEMAP, [hl] ld c, 64 call DelayFrames farcall AnimateShootingStar diff --git a/home/init.asm b/home/init.asm index 619a249389..ab85192d68 100644 --- a/home/init.asm +++ b/home/init.asm @@ -8,7 +8,6 @@ SoftReset:: Init:: ; Program init. -DEF rLCDC_DEFAULT EQU %11100011 ; * LCD enabled ; * Window tile map at $9C00 ; * Window display enabled @@ -17,6 +16,7 @@ DEF rLCDC_DEFAULT EQU %11100011 ; * 8x8 OBJ size ; * OBJ display enabled ; * BG display enabled +DEF rLCDC_DEFAULT EQU (1 << rLCDC_ENABLE) | (1 << rLCDC_WINDOW_TILEMAP) | (1 << rLCDC_WINDOW_ENABLE) | (1 << rLCDC_SPRITES_ENABLE) | (1 << rLCDC_BG_PRIORITY) di @@ -35,7 +35,7 @@ DEF rLCDC_DEFAULT EQU %11100011 ldh [rOBP0], a ldh [rOBP1], a - ld a, rLCDC_ENABLE_MASK + ld a, 1 << rLCDC_ENABLE ldh [rLCDC], a call DisableLCD diff --git a/home/lcd.asm b/home/lcd.asm index 5c496824ba..aef6d43fd8 100644 --- a/home/lcd.asm +++ b/home/lcd.asm @@ -3,7 +3,7 @@ DisableLCD:: ldh [rIF], a ldh a, [rIE] ld b, a - res 0, a + res rIE_VBLANK, a ldh [rIE], a .wait @@ -12,7 +12,7 @@ DisableLCD:: jr nz, .wait ldh a, [rLCDC] - and ~rLCDC_ENABLE_MASK + and ~(1 << rLCDC_ENABLE) ldh [rLCDC], a ld a, b ldh [rIE], a diff --git a/home/load_font.asm b/home/load_font.asm index 3b56d3a889..0f48e84caa 100644 --- a/home/load_font.asm +++ b/home/load_font.asm @@ -1,6 +1,6 @@ LoadFontTilePatterns:: ldh a, [rLCDC] - bit 7, a ; is the LCD enabled? + bit rLCDC_ENABLE, a jr nz, .on .off ld hl, FontGraphics @@ -16,7 +16,7 @@ LoadFontTilePatterns:: LoadTextBoxTilePatterns:: ldh a, [rLCDC] - bit 7, a ; is the LCD enabled? + bit rLCDC_ENABLE, a jr nz, .on .off ld hl, TextBoxGraphics @@ -32,7 +32,7 @@ LoadTextBoxTilePatterns:: LoadHpBarAndStatusTilePatterns:: ldh a, [rLCDC] - bit 7, a ; is the LCD enabled? + bit rLCDC_ENABLE, a jr nz, .on .off ld hl, HpBarAndStatusGraphics