diff options
Diffstat (limited to 'home/init.asm')
-rw-r--r-- | home/init.asm | 133 |
1 files changed, 71 insertions, 62 deletions
diff --git a/home/init.asm b/home/init.asm index 747d7817..82b3cf7e 100644 --- a/home/init.asm +++ b/home/init.asm @@ -1,56 +1,66 @@ -Reset:: ; 5b0 (0:05b0) - call MapSetup_Sound_Off +Reset:: + call InitSound xor a - ld [hMapAnims], a + ldh [hMapAnims], a call ClearPalettes ei + ld hl, wd8ba set 7, [hl] + ld c, 32 call DelayFrames + jr Init -_Start:: ; 5c6 (0:05c6) + +_Start:: cp $11 jr z, .cgb xor a jr .load + .cgb ld a, $1 + .load - ld [hCGB], a -Init:: ; 5d1 (0:05d1) + ldh [hCGB], a + +Init:: di + xor a - ld [rIF], a - ld [rIE], a - ld [rRP], a - ld [rSCX], a - ld [rSCY], a - ld [rSB], a - ld [rSC], a - ld [rWX], a - ld [rWY], a - ld [rBGP], a - ld [rOBP0], a - ld [rOBP1], a - ld [rTMA], a - ld [rTAC], a + ldh [rIF], a + ldh [rIE], a + ldh [rRP], a + ldh [rSCX], a + ldh [rSCY], a + ldh [rSB], a + ldh [rSC], a + ldh [rWX], a + ldh [rWY], a + ldh [rBGP], a + ldh [rOBP0], a + ldh [rOBP1], a + ldh [rTMA], a + ldh [rTAC], a ld [wceeb], a - ld a, $4 - ld [rTAC], a + + ld a, %100 ; Start timer at 4096Hz + ldh [rTAC], a + .wait - ld a, [rLY] - cp 145 + ldh a, [rLY] + cp LY_VBLANK + 1 jr nz, .wait xor a - ld [rLCDC], a + ldh [rLCDC], a -; Clear WRAM - ld hl, wMusicPlaying +; Clear WRAM bank 0 + ld hl, WRAM0_Begin ld bc, $2000 -.ByteFill - ld [hl], $0 +.ByteFill: + ld [hl], 0 inc hl dec bc ld a, b @@ -60,41 +70,41 @@ Init:: ; 5d1 (0:05d1) ld sp, wStackTop call ClearVRAM - ld a, [hCGB] + ldh a, [hCGB] push af xor a - ld hl, HRAM_START - ld bc, HRAM_END - HRAM_START + ld hl, HRAM_Begin + ld bc, HRAM_End - HRAM_Begin call ByteFill pop af - ld [hCGB], a + ldh [hCGB], a call ClearSprites - ld a, BANK(LoadPushOAM) + ld a, BANK(WriteOAMDMACodeToHRAM) rst Bankswitch - call LoadPushOAM + call WriteOAMDMACodeToHRAM xor a - ld [hMapAnims], a - ld [hSCX], a - ld [hSCY], a - ld [rJOYP], a + ldh [hMapAnims], a + ldh [hSCX], a + ldh [hSCY], a + ldh [rJOYP], a ld a, $8 ; HBlank int enable - ld [rSTAT], a + ldh [rSTAT], a ld a, $90 - ld [hWY], a - ld [rWY], a + ldh [hWY], a + ldh [rWY], a - ld a, $7 - ld [hWX], a - ld [rWX], a + ld a, 7 + ldh [hWX], a + ldh [rWX], a - ld a, -1 - ld [hLinkPlayerNumber], a + ld a, CONNECTION_NOT_ESTABLISHED + ldh [hLinkPlayerNumber], a ld h, $98 call BlankBGMap @@ -103,10 +113,10 @@ Init:: ; 5d1 (0:05d1) callfar InitCGBPals - ld a, $9c - ld [hBGMapAddress + 1], a - xor a - ld [hBGMapAddress], a + ld a, HIGH(vBGMap1) + ldh [hBGMapAddress + 1], a + xor a ; LOW(vBGMap1) + ldh [hBGMapAddress], a farcall StartClock @@ -116,7 +126,7 @@ Init:: ; 5d1 (0:05d1) ld [MBC3LatchClock], a ld [MBC3SRamEnable], a - ld a, %11100011 + ld a, LCDC_DEFAULT ; %11100011 ; LCD on ; Win tilemap 1 ; Win on @@ -125,34 +135,33 @@ Init:: ; 5d1 (0:05d1) ; OBJ 8x8 ; OBJ on ; BG on - ld [rLCDC], a + ldh [rLCDC], a ld a, $1f - ld [rIE], a + ldh [rIE], a ei call DelayFrame - ld a, $30 - call Predef + predef InitSGBBorder ; SGB init - call MapSetup_Sound_Off + call InitSound xor a ld [wMapMusic], a jp GameInit -ClearVRAM:: ; 68e (0:068e) - ld hl, $8000 - ld bc, $2000 +ClearVRAM:: + ld hl, VRAM_Begin + ld bc, VRAM_End - VRAM_Begin xor a call ByteFill ret -BlankBGMap:: ; 699 (0:0699) +BlankBGMap:: ld a, $7f jr asm_69e -FillBGMap:: ; 69d +FillBGMap:: ld a, l asm_69e ld de, $400 |