INCLUDE "hardware.inc" INCLUDE "util.inc" INCLUDE "png/map/intro.inc" SECTION "BG Data", WRAM0 BG_COLLISION_DATA:: dw BG_MAP_WIDTH:: db BG_MAP_HEIGHT:: db BG_SCROLLING:: db SECTION "BG Code", ROM0 MACRO update_map_info ld hl, BG_COLLISION_DATA ld a, HIGH(\1) ld [hl+], a ld a, LOW(\1) ld [hl+], a ld a, \2 ld [hl+], a ld a, \3 ld [hl+], a ENDM BG_Init:: SET8 BG_SCROLLING, 0 ; copy map ld e, intro_HEIGHT ld bc, _SCRN0 ld hl, intro_MAP .copy_map_row: ld d, intro_WIDTH call memcpy dec e jr z, .done ; nothing to skip if map is max width ld a, 32 - intro_WIDTH or a jr z, .copy_map_row ld d, a .skip: ; skip over trailing part in vram inc c jr nz, .nocarry inc b .nocarry: dec d jr nz, .skip jr .copy_map_row .done: ; copy tiles ld hl, intro_TILES ld bc, _VRAM ld d, intro_NUM_TILES call memcpy update_map_info intro_COLLISION, intro_WIDTH, intro_HEIGHT ret BG_Update:: ret