ReanchorBGMap_NoOAMUpdate:: call DelayFrame ld a, [hOAMUpdate] push af ld a, $1 ld [hOAMUpdate], a ld a, [hBGMapMode] push af xor a ld [hBGMapMode], a call .ReanchorBGMap pop af ld [hBGMapMode], a pop af ld [hOAMUpdate], a ld hl, wVramState set 6, [hl] ret .ReanchorBGMap: xor a ld [hLCDCPointer], a ld [hBGMapMode], a ld a, $90 ld [hWY], a call OverworldTextModeSwitch ld a, HIGH(vBGMap1) call .LoadBGMapAddrIntoHRAM call _OpenAndCloseMenu_HDMATransferTileMapAndAttrMap farcall LoadOW_BGPal7 farcall ApplyPals ld a, $1 ld [hCGBPalUpdate], a xor a ld [hBGMapMode], a ld [hWY], a farcall HDMATransfer_FillBGMap0WithBlack ; no need to farcall ld a, HIGH(vBGMap0) call .LoadBGMapAddrIntoHRAM xor a ; LOW(vBGMap0) ld [wBGMapAnchor], a ld a, HIGH(vBGMap0) ld [wBGMapAnchor + 1], a xor a ld [hSCX], a ld [hSCY], a call ApplyBGMapAnchorToObjects ret .LoadBGMapAddrIntoHRAM: ld [hBGMapAddress + 1], a xor a ld [hBGMapAddress], a ret LoadFonts_NoOAMUpdate:: ld a, [hOAMUpdate] push af ld a, $1 ld [hOAMUpdate], a call .LoadGFX pop af ld [hOAMUpdate], a ret .LoadGFX: call LoadFontsExtra ld a, $90 ld [hWY], a call SafeUpdateSprites call LoadStandardFont ret HDMATransfer_FillBGMap0WithBlack: ld a, [rSVBK] push af ld a, BANK(wDecompressScratch) ld [rSVBK], a ld a, "■" ld hl, wDecompressScratch ld bc, wScratchAttrMap - wDecompressScratch call ByteFill ld a, HIGH(wDecompressScratch) ld [rHDMA1], a ld a, LOW(wDecompressScratch) ld [rHDMA2], a ld a, HIGH(vBGMap0 % $8000) ld [rHDMA3], a ld a, LOW(vBGMap0 % $8000) ld [rHDMA4], a ld a, $3f ld [hDMATransfer], a call DelayFrame pop af ld [rSVBK], a ret