summaryrefslogtreecommitdiff
path: root/home/init.asm
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-06-02 21:26:20 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-06-02 21:26:20 -0400
commit04883f4bf9fa6c0bf935f1aac95d5d48abe3bb30 (patch)
tree3ff95e7bbb62d0decfb9e2cba9e3d54f61013706 /home/init.asm
parent956d010d59ad225bea768aec172ccb56977b1775 (diff)
parent5fb7140613d6ea00ec1964fde18418c6257c2e27 (diff)
Merge branch 'master' into build_more_roms
Diffstat (limited to 'home/init.asm')
-rw-r--r--home/init.asm221
1 files changed, 111 insertions, 110 deletions
diff --git a/home/init.asm b/home/init.asm
index 5498b35..ef4b745 100644
--- a/home/init.asm
+++ b/home/init.asm
@@ -1,8 +1,8 @@
INCLUDE "constants.asm"
SECTION "Entry point", ROM0[$100]
- nop
- jp Init
+ nop
+ jp Init
SECTION "Global check value", ROM0[$14E]
; The ROM has an incorrect global check, so set it here
@@ -25,121 +25,122 @@ endc
SECTION "Init", ROM0[$52F]
Init: ; 052f
- di
- xor a
- ld [rIF], a
- ld [rIE], 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
- ld [wcc38], a ; Useless, since WRAM gets cleared right after
- ld a, 1 << rTAC_ON | rTAC_4096_HZ
- ld [rTAC], a
- ld a, 1 << rLCDC_ENABLE
- ld [rLCDC], a
- call DisableLCD
-
- ld sp, wStackBottom
- call ClearVRAM
- ld hl, WRAM0_Begin
- ld bc, WRAM1_End - WRAM0_Begin
+ di
+ xor a
+ ld [rIF], a
+ ld [rIE], 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
+ ld [wcc38], a ; Useless, since WRAM gets cleared right after
+ ld a, 1 << rTAC_ON | rTAC_4096_HZ
+ ld [rTAC], a
+ ld a, 1 << rLCDC_ENABLE
+ ld [rLCDC], a
+ call DisableLCD
+
+ ld sp, wStackBottom
+ call ClearVRAM
+ ld hl, WRAM0_Begin
+ ld bc, WRAM1_End - WRAM0_Begin
.ByteFill ; 0565
- ld [hl], 0
- inc hl
- dec bc
- ld a, b
- or c
- jr nz, .ByteFill
- ld hl, HRAM_Begin
- ld bc, HRAM_End - HRAM_Begin
- call ByteFill
- call ClearSprites
-
- ld a, BANK(WriteOAMDMACodeToHRAM)
- call Bankswitch
- call WriteOAMDMACodeToHRAM
-
- xor a
- ldh [hMapAnims], a
- ldh [hSCX], a
- ldh [hSCY], a
- ldh [rJOYP], a
- ld a, 1 << rSTAT_HBLANK
- ld [rSTAT], a
- ld a, SCREEN_HEIGHT_PX
- ldh [hWY], a
- ld [rWY], a
- ld a, 7
- ldh [hWX], a
- ld [rWX], a
-
- ld a, $FF
- ldh [hLinkPlayerNumber], a
- ld h, HIGH($9800)
- call BlankBGMap
- ld h, HIGH($9C00)
- call BlankBGMap
- ld a, LCDC_DEFAULT
- ld [rLCDC], a
-
- call DisableAudio
- call _2007
- ; predef ???
- ld a, $4B ; TODO: add predefs so the line above can be uncommented
- call Predef
- ld a, $1F
- ld [rIE], a
- ld a, HIGH($9C00)
- ldh [hBGMapAddress + 1], a
- xor a
- ldh [hBGMapAddress], a
-
- call DisableLCD
- call ClearVRAM
- ld a, LCDC_DEFAULT
- ld [rLCDC], a
- ei
-
- ld a, SRAM_ENABLE
- ld [MBC3SRamEnable], a
- ld a, RTC_DH
- ld [MBC3SRamBank], a
- xor a
- ld [SRAM_Begin], a
- ld a, 0 ; Useless
- ld [MBC3LatchClock], a
- ld [MBC3SRamEnable], a
- jp GameInit
+ ld [hl], 0
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .ByteFill
+ ld hl, HRAM_Begin
+ ld bc, HRAM_End - HRAM_Begin
+ call ByteFill
+ call ClearSprites
+
+ ld a, BANK(WriteOAMDMACodeToHRAM)
+ call Bankswitch
+ call WriteOAMDMACodeToHRAM
+
+ xor a
+ ldh [hMapAnims], a
+ ldh [hSCX], a
+ ldh [hSCY], a
+ ldh [rJOYP], a
+ ld a, 1 << rSTAT_HBLANK
+ ld [rSTAT], a
+ ld a, SCREEN_HEIGHT_PX
+ ldh [hWY], a
+ ld [rWY], a
+ ld a, 7
+ ldh [hWX], a
+ ld [rWX], a
+
+ ld a, $ff
+ ldh [hLinkPlayerNumber], a
+ ld h, HIGH($9800)
+ call BlankBGMap
+ ld h, HIGH($9C00)
+ call BlankBGMap
+ ld a, LCDC_DEFAULT
+ ld [rLCDC], a
+
+ call DisableAudio
+ call _2007
+ ; predef ???
+ ld a, $4B ; TODO: add predefs so the line above can be uncommented
+ call Predef
+ ld a, $1F
+ ld [rIE], a
+ ld a, HIGH($9C00)
+ ldh [hBGMapAddress + 1], a
+ xor a
+ ldh [hBGMapAddress], a
+
+ call DisableLCD
+ call ClearVRAM
+ ld a, LCDC_DEFAULT
+ ld [rLCDC], a
+ ei
+
+ ld a, SRAM_ENABLE
+ ld [MBC3SRamEnable], a
+ ld a, RTC_DH
+ ld [MBC3SRamBank], a
+ xor a
+ ld [SRAM_Begin], a
+ ld a, 0 ; Useless
+ ld [MBC3LatchClock], a
+ ld [MBC3SRamEnable], a
+ jp GameInit
ClearVRAM: ; 05e6
- ld hl, VRAM_Begin
- ld bc, VRAM_End - VRAM_Begin
- xor a
- call ByteFill
- ret
+ ld hl, VRAM_Begin
+ ld bc, VRAM_End - VRAM_Begin
+ xor a
+ call ByteFill
+ ret
BlankBGMap:
- ld a, $7F
- jr _FillBGMap
+ ld a, $7f
+ jr _FillBGMap
FillBGMap:
- ld a, l
+ ld a, l
+ ; fallthrough
_FillBGMap:
- ld de, $400
- ld l, e
+ ld de, BG_MAP_WIDTH * BG_MAP_HEIGHT
+ ld l, e
.loop
- ld [hli], a
- dec e
- jr nz, .loop
- dec d
- jr nz, .loop
- ret
+ ld [hli], a
+ dec e
+ jr nz, .loop
+ dec d
+ jr nz, .loop
+ ret