From 3c6c80f1b24487ae4aa9d250d1dff290f09c231e Mon Sep 17 00:00:00 2001 From: xCrystal Date: Fri, 29 Dec 2017 18:53:21 +0100 Subject: [PATCH] LY_BLANK and rLCDC constants --- constants/hardware_constants.asm | 6 ++++++ engine/battle/core.asm | 4 ++-- engine/color.asm | 8 ++++---- engine/dummy_game.asm | 2 +- engine/intro_menu.asm | 2 +- engine/mystery_gift.asm | 10 +++++----- engine/namingscreen.asm | 4 ++-- engine/pokegear.asm | 4 ++-- engine/routines/getsquareroot.asm | 6 +++--- engine/routines/phonering_copytilemapatonce.asm | 4 ++-- engine/slot_machine.asm | 4 ++-- engine/title.asm | 2 +- engine/unown_puzzle.asm | 4 ++-- engine/unused_title.asm | 4 ++-- gfx/font.asm | 2 +- home/copy.asm | 8 ++++---- home/init.asm | 4 ++-- home/lcd.asm | 8 ++++---- home/text.asm | 2 +- home/video.asm | 12 ++++++------ mobile/mobile_45_sprite_engine.asm | 2 +- 21 files changed, 54 insertions(+), 48 deletions(-) diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm index 9cb278622..b84419815 100644 --- a/constants/hardware_constants.asm +++ b/constants/hardware_constants.asm @@ -114,10 +114,16 @@ rWave_d EQU $ff3d rWave_e EQU $ff3e rWave_f EQU $ff3f rLCDC EQU $ff40 ; LCD Control (R/W) +rLCDC_SPRITE_ENABLE EQU 1 +rLCDC_SPRITE_SIZE EQU 2 +rLCDC_WINDOW_TILEMAP EQU 6 +rLCDC_ENABLE EQU 7 +rLCDC_DEFAULT EQU %11100011 rSTAT EQU $ff41 ; LCDC Status (R/W) rSCY EQU $ff42 ; Scroll Y (R/W) rSCX EQU $ff43 ; Scroll X (R/W) rLY EQU $ff44 ; LCDC Y-Coordinate (R) +LY_VBLANK EQU 144 rLYC EQU $ff45 ; LY Compare (R/W) rDMA EQU $ff46 ; DMA Transfer and Start Address (W) rBGP EQU $ff47 ; BG Palette Data (R/W) - Non CGB Mode Only diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 2937755a6..08021fc8b 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -8395,11 +8395,11 @@ BattleIntro: ; 3f4dd ld b, SCGB_BATTLE_GRAYSCALE call GetSGBLayout ld hl, rLCDC - res 6, [hl] + res rLCDC_WINDOW_TILEMAP, [hl] ; select 9800-9BFF call InitBattleDisplay call BattleStartMessage ld hl, rLCDC - set 6, [hl] + set rLCDC_WINDOW_TILEMAP, [hl] ; select 9C00-9FFF xor a ld [hBGMapMode], a call EmptyBattleTextBox diff --git a/engine/color.asm b/engine/color.asm index 1f563df53..35358934a 100644 --- a/engine/color.asm +++ b/engine/color.asm @@ -617,7 +617,7 @@ ApplyPals: ApplyAttrMap: ld a, [rLCDC] - bit 7, a + bit rLCDC_ENABLE, a jr z, .UpdateVBank1 ld a, [hBGMapMode] push af @@ -1073,7 +1073,7 @@ SGBBorder_PushBGPals: ld bc, $100 tiles call CopyData call DrawDefaultTiles - ld a, $e3 + ld a, rLCDC_DEFAULT ld [rLCDC], a ld hl, PalPacket_9d06 call PushSGBPals @@ -1107,7 +1107,7 @@ SGBBorder_MorePalPushing: ld bc, 16 palettes call CopyData call DrawDefaultTiles - ld a, $e3 + ld a, rLCDC_DEFAULT ld [rLCDC], a ld hl, PalPacket_9d46 call PushSGBPals @@ -1131,7 +1131,7 @@ SGBBorder_YetMorePalPushing: dec b jr nz, .loop call DrawDefaultTiles - ld a, $e3 + ld a, rLCDC_DEFAULT ld [rLCDC], a ld hl, PalPacket_9d36 call PushSGBPals diff --git a/engine/dummy_game.asm b/engine/dummy_game.asm index 4a1972ec3..e5cc97dec 100755 --- a/engine/dummy_game.asm +++ b/engine/dummy_game.asm @@ -34,7 +34,7 @@ _DummyGame: ; e1e5b (38:5e5b) ld [wJumptableIndex], a ld a, $1 ld [hBGMapMode], a - ld a, $e3 + ld a, rLCDC_DEFAULT ld [rLCDC], a ld a, $e4 call DmgToCgbBGPals diff --git a/engine/intro_menu.asm b/engine/intro_menu.asm index faa5748dd..7d17b62e5 100755 --- a/engine/intro_menu.asm +++ b/engine/intro_menu.asm @@ -1035,7 +1035,7 @@ StartTitleScreen: ; 6219 ld [rSVBK], a ld hl, rLCDC - res 2, [hl] + res rLCDC_SPRITE_SIZE, [hl] ; 8x8 call ClearScreen call WaitBGMap2 xor a diff --git a/engine/mystery_gift.asm b/engine/mystery_gift.asm index e6d4504c2..574436b15 100755 --- a/engine/mystery_gift.asm +++ b/engine/mystery_gift.asm @@ -116,7 +116,7 @@ DoMysteryGift: ; 1048ba (41:48ba) .PrintTextAndExit: ; 1049c5 (41:49c5) call PrintText - ld a, $e3 + ld a, rLCDC_DEFAULT ld [rLCDC], a ret ; 1049cd (41:49cd) @@ -262,7 +262,7 @@ Function104a95: ; 104a95 (41:4a95) ; Delay frame .ly_loop ld a, [rLY] - cp $90 + cp LY_VBLANK jr c, .ly_loop ld c, LOW(rRP) ld a, $c0 @@ -281,14 +281,14 @@ Function104a95: ; 104a95 (41:4a95) and b ld b, a ld a, [rLY] - cp $90 + cp LY_VBLANK jr nc, .ly_loop2 .ly_loop3 ld a, [$ff00+c] and b ld b, a ld a, [rLY] - cp $90 + cp LY_VBLANK jr c, .ly_loop3 ld a, b @@ -1497,7 +1497,7 @@ Function10571a: ; 10571a (41:571a) asm_105726: ; 105726 (41:5726) call PrintText - ld a, $e3 + ld a, rLCDC_DEFAULT ld [rLCDC], a ret ; 10572e (41:572e) diff --git a/engine/namingscreen.asm b/engine/namingscreen.asm index a01c02c31..7eeed34a6 100755 --- a/engine/namingscreen.asm +++ b/engine/namingscreen.asm @@ -48,7 +48,7 @@ NamingScreen: ; 116c1 call DisableLCD call LoadNamingScreenGFX call NamingScreen_InitText - ld a, $e3 + ld a, rLCDC_DEFAULT ld [rLCDC], a call .GetNamingScreenSetup call WaitBGMap @@ -1017,7 +1017,7 @@ _ComposeMailMessage: ; 11e75 (mail?) add hl, bc ld [hl], $0 call .InitCharset - ld a, $e3 + ld a, rLCDC_DEFAULT ld [rLCDC], a call .initwNamingScreenMaxNameLength ld b, SCGB_DIPLOMA diff --git a/engine/pokegear.asm b/engine/pokegear.asm index e4227aa0c..fff5174bd 100755 --- a/engine/pokegear.asm +++ b/engine/pokegear.asm @@ -59,7 +59,7 @@ PokeGear: ; 90b8d (24:4b8d) call InitPokegearModeIndicatorArrow ld a, 8 call SkipMusic - ld a, $e3 + ld a, rLCDC_DEFAULT ld [rLCDC], a call TownMap_InitCursorAndPlayerIconPositions xor a @@ -1851,7 +1851,7 @@ _TownMap: ; 9191c farcall ClearSpriteAnims ld a, 8 call SkipMusic - ld a, $e3 + ld a, rLCDC_DEFAULT ld [rLCDC], a call TownMap_GetCurrentLandmark ld [wTownMapPlayerIconLandmark], a diff --git a/engine/routines/getsquareroot.asm b/engine/routines/getsquareroot.asm index 009d9f4fe..0ba2e50a5 100644 --- a/engine/routines/getsquareroot.asm +++ b/engine/routines/getsquareroot.asm @@ -23,8 +23,8 @@ GetSquareRoot: ; 13b87 ret .Squares: ; 13b98 -root set 1 +root = 1 rept $ff - dw root*root -root set root+1 + dw root * root +root = root + 1 endr diff --git a/engine/routines/phonering_copytilemapatonce.asm b/engine/routines/phonering_copytilemapatonce.asm index b1a726675..cefe9a66d 100644 --- a/engine/routines/phonering_copytilemapatonce.asm +++ b/engine/routines/phonering_copytilemapatonce.asm @@ -17,7 +17,7 @@ PhoneRing_CopyTilemapAtOnce: ; 4d188 ld [hMapAnims], a .wait ld a, [rLY] - cp $8f + cp LY_VBLANK - 1 jr c, .wait di @@ -31,7 +31,7 @@ PhoneRing_CopyTilemapAtOnce: ; 4d188 call .CopyTilemapAtOnce .wait2 ld a, [rLY] - cp $8f + cp LY_VBLANK - 1 jr c, .wait2 ei diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index 5eb11f011..aea08f16a 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -89,7 +89,7 @@ _SlotMachine: ld hl, Options res NO_TEXT_SCROLL, [hl] ld hl, rLCDC - res 2, [hl] + res rLCDC_SPRITE_SIZE, [hl] ; 8x8 ret .InitGFX: ; 926f7 (24:66f7) @@ -134,7 +134,7 @@ _SlotMachine: call CopyBytes ld hl, rLCDC - set 2, [hl] + set rLCDC_SPRITE_SIZE, [hl] ; 8x16 call EnableLCD ld hl, wSlots ld bc, wSlotsEnd - wSlots diff --git a/engine/title.asm b/engine/title.asm index 2ea588cd0..6b015300f 100644 --- a/engine/title.asm +++ b/engine/title.asm @@ -201,7 +201,7 @@ _TitleScreen: ; 10ed67 ; Set sprite size to 8x16 ld a, [rLCDC] - set 2, a + set rLCDC_SPRITE_SIZE, a ld [rLCDC], a ld a, +112 diff --git a/engine/unown_puzzle.asm b/engine/unown_puzzle.asm index fd2b25c84..3f76c7041 100755 --- a/engine/unown_puzzle.asm +++ b/engine/unown_puzzle.asm @@ -45,7 +45,7 @@ UnownPuzzle: ; e1190 ld [wHoldingUnownPuzzlePiece], a ld [wUnownPuzzleCursorPosition], a ld [wUnownPuzzleHeldPiece], a - ld a, $93 + ld a, %10010011 ld [rLCDC], a call WaitBGMap ld b, SCGB_UNOWN_PUZZLE @@ -85,7 +85,7 @@ UnownPuzzle: ; e1190 call ClearBGPalettes call ClearTileMap call ClearSprites - ld a, $e3 + ld a, rLCDC_DEFAULT ld [rLCDC], a ret ; e124e diff --git a/engine/unused_title.asm b/engine/unused_title.asm index ca508b593..0b7dc690d 100644 --- a/engine/unused_title.asm +++ b/engine/unused_title.asm @@ -55,8 +55,8 @@ UnusedTitleScreen: ; 10c000 call EnableLCD ld a, [rLCDC] - set 1, a - set 2, a + set rLCDC_SPRITE_ENABLE, a + set rLCDC_SPRITE_SIZE, a ld [rLCDC], a call DelayFrame diff --git a/gfx/font.asm b/gfx/font.asm index e307d619c..9da7eaafc 100755 --- a/gfx/font.asm +++ b/gfx/font.asm @@ -107,7 +107,7 @@ _LoadStandardFont:: ; fb449 ld hl, vTiles1 lb bc, BANK(Font), $80 ld a, [rLCDC] - bit 7, a + bit rLCDC_ENABLE, a jp z, Copy1bpp ld de, Font diff --git a/home/copy.asm b/home/copy.asm index 210fb773e..33268b6bf 100644 --- a/home/copy.asm +++ b/home/copy.asm @@ -3,7 +3,7 @@ Get2bpp_2:: ; dc9 ld a, [rLCDC] - bit 7, a + bit rLCDC_ENABLE, a jp z, Copy2bpp homecall _Get2bpp @@ -13,7 +13,7 @@ Get2bpp_2:: ; dc9 Get1bpp_2:: ; ddc ld a, [rLCDC] - bit 7, a + bit rLCDC_ENABLE, a jp z, Copy1bpp homecall _Get1bpp @@ -361,7 +361,7 @@ Request1bpp:: ; f1e Get2bpp:: ; f82 ld a, [rLCDC] - bit 7, a + bit rLCDC_ENABLE, a jp nz, Request2bpp Copy2bpp:: ; f89 @@ -392,7 +392,7 @@ Copy2bpp:: ; f89 Get1bpp:: ; f9d ld a, [rLCDC] - bit 7, a + bit rLCDC_ENABLE, a jp nz, Request1bpp Copy1bpp:: ; fa4 diff --git a/home/init.asm b/home/init.asm index f71c247cd..fc7a253f4 100644 --- a/home/init.asm +++ b/home/init.asm @@ -62,7 +62,7 @@ Init:: ; 17d .wait ld a, [rLY] - cp 145 + cp LY_VBLANK + 1 jr nz, .wait xor a @@ -125,7 +125,7 @@ Init:: ; 17d ld [hWX], a ld [rWX], a - ld a, %11100011 + ld a, rLCDC_DEFAULT ; %11100011 ; LCD on ; Win tilemap 1 ; Win on diff --git a/home/lcd.asm b/home/lcd.asm index 8ec1e02ce..e516db9d6 100644 --- a/home/lcd.asm +++ b/home/lcd.asm @@ -43,7 +43,7 @@ DisableLCD:: ; 568 ; Don't need to do anything if the LCD is already off ld a, [rLCDC] - bit 7, a ; lcd enable + bit rLCDC_ENABLE, a ret z xor a @@ -58,11 +58,11 @@ DisableLCD:: ; 568 .wait ; Wait until VBlank would normally happen ld a, [rLY] - cp 145 + cp LY_VBLANK + 1 jr nz, .wait ld a, [rLCDC] - and %01111111 ; lcd enable off + and $ff ^ 1 << rLCDC_ENABLE ld [rLCDC], a xor a @@ -75,7 +75,7 @@ DisableLCD:: ; 568 EnableLCD:: ; 58a ld a, [rLCDC] - set 7, a ; lcd enable + set rLCDC_ENABLE, a ld [rLCDC], a ret ; 591 diff --git a/home/text.asm b/home/text.asm index 7cf3c2c60..4c6080bb1 100644 --- a/home/text.asm +++ b/home/text.asm @@ -31,7 +31,7 @@ ClearTileMap:: ; fc8 ; Update the BG Map. ld a, [rLCDC] - bit 7, a + bit rLCDC_ENABLE, a ret z jp WaitBGMap ; fdb diff --git a/home/video.asm b/home/video.asm index 4a25f41e0..8f14dfeee 100644 --- a/home/video.asm +++ b/home/video.asm @@ -291,9 +291,9 @@ Serve1bppRequest:: ; 170a ; Back out if we're too far into VBlank ld a, [rLY] - cp 144 + cp LY_VBLANK ret c - cp 146 + cp LY_VBLANK + 2 ret nc ; Copy [Requested1bpp] 1bpp tiles from [Requested1bppSource] to [Requested1bppDest] @@ -372,9 +372,9 @@ Serve2bppRequest:: ; 1769 ; Back out if we're too far into VBlank ld a, [rLY] - cp 144 + cp LY_VBLANK ret c - cp 146 + cp LY_VBLANK + 2 ret nc jr _Serve2bppRequest @@ -454,9 +454,9 @@ AnimateTileset:: ; 17d3 ; Back out if we're too far into VBlank ld a, [rLY] - cp 144 + cp LY_VBLANK ret c - cp 151 + cp LY_VBLANK + 7 ret nc ld a, [hROMBank] diff --git a/mobile/mobile_45_sprite_engine.asm b/mobile/mobile_45_sprite_engine.asm index de1fc8e9c..a9335ba3d 100755 --- a/mobile/mobile_45_sprite_engine.asm +++ b/mobile/mobile_45_sprite_engine.asm @@ -411,7 +411,7 @@ Function1161d5: ; 1161d5 .wait_for_vblank ; Wait until a vblank would occur had interrupts not just been disabled. ld a, [rLY] - cp $91 + cp LY_VBLANK + 1 jr nz, .wait_for_vblank ld a, $d0