diff options
| author | xCrystal <rgr.crystal@gmail.com> | 2018-02-07 12:09:00 +0100 | 
|---|---|---|
| committer | xCrystal <rgr.crystal@gmail.com> | 2018-02-07 12:09:00 +0100 | 
| commit | c9882cfbb4456339e36a953dd1212bfa5c164e0e (patch) | |
| tree | f8994b85bbf58eafd30871903628cdfbeb5eac27 /src | |
| parent | 97214b5a1c961c8d4560ed5cb5cccb0cc4610709 (diff) | |
more home disassembly
Diffstat (limited to 'src')
| -rwxr-xr-x | src/engine/home.asm | 106 | ||||
| -rwxr-xr-x | src/wram.asm | 2 | 
2 files changed, 102 insertions, 6 deletions
| diff --git a/src/engine/home.asm b/src/engine/home.asm index e8a115b..2724a66 100755 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -938,13 +938,54 @@ Func_0686: ; 0686 (0:0686)  	ret  ; 0x695 -	INCROM $0695, $06c3 +Func_0695: ; 0695 (0:0695) +	call Func_069d +	bit 7, [hl] +	jr z, Func_0695 +	ret +; 0x69d + +Func_069d: ; 069d (0:069d) +	ld b, [hl] +	inc hl +	ld c, [hl] +	inc hl +	push hl +	push bc +	ld b, $ff +.asm_6a5 +	inc b +	ld a, [hli] +	or a +	jr nz, .asm_6a5 +	ld a, b +	pop bc +	push af +	call BCCoordToBGMap0Address +	pop af +	ld b, a +	pop hl +	or a +	jr z, .asm_6bd +	push bc +	push hl +	call SafeCopyDataHLtoDE +	pop hl +	pop bc + +.asm_6bd +	inc b +	ld c, b +	ld b, $0 +	add hl, bc +	ret +; 0x6c3  Func_06c3: ; 06c3 (0:06c3)  	push af  	ld a, [wLCDC]  	rla -	jr c, .asm_6d8 +	jr c, .lcd_on  	pop af  	push hl  	push de @@ -957,12 +998,12 @@ Func_06c3: ; 06c3 (0:06c3)  	pop de  	pop hl  	ret -.asm_6d8 +.lcd_on  	pop af  	push hl  	push de  	push bc -	ld hl, $cac1 +	ld hl, wcac1  	push hl  	ld [hl], a  	call BCCoordToBGMap0Address @@ -975,7 +1016,19 @@ Func_06c3: ; 06c3 (0:06c3)  	ret  ; 0x6ee -	INCROM $06ee, $06fc +; copy a bytes of data from hl to vBGMap0 address pointed to by coord at bc +Func_06ee: ; 06ee (0:06ee) +	push bc +	push hl +	push af +	call BCCoordToBGMap0Address +	pop af +	ld b, a +	pop hl +	call SafeCopyDataHLtoDE +	pop bc +	ret +; 0x6fc  ; memcpy(DE, HL, B)  ; if LCD on, copy during h-blank only @@ -1770,7 +1823,48 @@ SGB_MLT_REQ_2: ; 0bbb (0:0bbb)  	sgb MLT_REQ, 1 ; sgb_command, length  	db $01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 -	INCROM $0bcb, $0c08 +Func_0bcb: ; 0bcb (0:0bcb) +	di +	push de +.wait_vbalnk +	ld a, [rLY] +	cp LY_VBLANK + 3 +	jr nz, .wait_vbalnk +	ld a, $43 +	ld [rLCDC], a +	ld a, $e4 +	ld [rBGP], a +	ld de, vTiles1 +	ld bc, vBGMapTiles - vTiles1 +.loop +	ld a, [hli] +	ld [de], a +	inc de +	dec bc +	ld a, b +	or c +	jr nz, .loop +	ld hl, vBGMapTiles +	ld de, $000c +	ld a, $80 +	ld c, $d +.asm_bf3 +	ld b, $14 +.asm_bf5 +	ld [hli], a +	inc a +	dec b +	jr nz, .asm_bf5 +	add hl, de +	dec c +	jr nz, .asm_bf3 +	ld a, $c3 +	ld [rLCDC], a +	pop hl +	call SendSGB +	ei +	ret +; 0xc08  ; loops 63000 * bc cycles (~15 * bc ms)  Wait: ; 0c08 (0:0c08) diff --git a/src/wram.asm b/src/wram.asm index 90153dc..b6e5c3e 100755 --- a/src/wram.asm +++ b/src/wram.asm @@ -280,6 +280,8 @@ wFlushPaletteFlags:: ; cabf  wVBlankOAMCopyToggle:: ; cac0  	ds $1 +	 +wcac1:: ; cac1	  	ds $1  wcac2:: ; cac2 | 
