summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpikalaxalt <PikalaxALT@gmail.com>2016-06-04 16:10:05 -0400
committerpikalaxalt <PikalaxALT@gmail.com>2016-06-04 16:10:05 -0400
commit01265ec416faa50d450d527466a0f816f4f48e25 (patch)
tree28308ceb80baef2a16641bd417411ac3a869bccb
parent1a2754c10076c1d57b58c2cbd4c460deb7c410f9 (diff)
Chunk 4 of bank 3e
-rw-r--r--engine/bank3e.asm448
1 files changed, 437 insertions, 11 deletions
diff --git a/engine/bank3e.asm b/engine/bank3e.asm
index c57081ea..5652d560 100644
--- a/engine/bank3e.asm
+++ b/engine/bank3e.asm
@@ -2285,25 +2285,450 @@ Func_f8fae:
ret
Func_f8fb3:
- dr $f8fb3,$f9210
+ call Func_f9279
+ call ClearSprites
+ call DisableLCD
+ xor a
+ ld [H_AUTOBGTRANSFERENABLED], a
+ call Func_fbb5a
+ ld hl, $6324
+ ld de, $8800
+ ld bc, $900
+ ld a, $20
+ call FarCopyData
+ ld a, $d3
+ ld [$c5c0], a
+ ld a, $53
+ ld [$c5c1], a
+ ld a, $fa
+ ld [$c5c4], a
+ ld a, $53
+ ld [$c5c5], a
+ ld a, $7
+ ld [$c5c6], a
+ ld a, $55
+ ld [$c5c7], a
+ ld a, $5
+ ld [$c5c2], a
+ ld a, $54
+ ld [$c5c3], a
+ ld a, $c
+ ld de, $7458
+ call Func_fbb93
+ call Func_f9053
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $90
+ ld [hWY], a
+ ld b, $f
+ call RunPaletteCommand
+ ld a, $e3
+ ld [rLCDC], a
+ ld a, $1
+ ld [H_AUTOBGTRANSFERENABLED], a
+ call DelayFrame
+ call DelayFrame
+ call DelayFrame
+ call Func_f81e9
+ ld a, $e4
+ ld [rOBP0], a
+ ld a, $e0
+ ld [rOBP1], a
+ call UpdateGBCPal_OBP0
+ call UpdateGBCPal_OBP1
+ call DelayFrame
+ ld a, $99
+ ld c, $20
+ call PlayMusic
+ xor a
+ ld [$c633], a
+.asm_f9041
+ ld a, [$c633]
+ and a
+ ret nz
+ ld a, $0
+ ld [$c5bd], a
+ call Func_fbb65
+ call DelayFrame
+ jr .asm_f9041
+
+Func_f9053:
+ ld hl, wTileMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, $ff
+ call FillMemory
+ ld hl, Unkn_f90bc
+ coord de, 0, 6
+ ld bc, 12 * SCREEN_WIDTH
+ call CopyData
+ ld de, Unkn_f91c8
+ coord hl, 4, 0
+ lb bc, 6, 12
+ call Func_f9098
+ coord hl, 3, 7
+ lb bc, 3, 15
+ call Func_f90aa
+ ld hl, Unkn_f91ac
+ coord de, 3, 7
+ ld bc, 15
+ call CopyData
+ ld hl, Unkn_f91bb
+ coord de, 4, 9
+ ld bc, 13
+ call CopyData
+ ret
+
+Func_f9098:
+.asm_f9098
+ push bc
+ push hl
+.asm_f909a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .asm_f909a
+ ld bc, $14
+ pop hl
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_f9098
+ ret
+
+Func_f90aa:
+.asm_f90aa
+ push bc
+ push hl
+.asm_f90ac
+ ld [hl], $ff
+ inc hl
+ dec c
+ jr nz, .asm_f90ac
+ pop hl
+ ld bc, $14
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_f90aa
+ ret
+
+Unkn_f90bc:
+ dr $f90bc,$f91ac
+Unkn_f91ac:
+ dr $f91ac,$f91bb
+Unkn_f91bb:
+ dr $f91bb,$f91c8
+Unkn_f91c8:
+ dr $f91c8,$f9210
+
Func_f9210:
- dr $f9210,$f9223
+ ld hl, $c710
+ ld de, $c711
+ ld c, $80
+ ld a, [hl]
+ push af
+.asm_f921a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .asm_f921a
+ pop af
+ ld [hl], a
+ ret
+
Func_f9223:
- dr $f9223,$f923f
+ ld hl, $c700
+ ld bc, $100
+ ld de, $0
+.asm_f922c
+ ld a, e
+ and $1f
+ ld e, a
+ push hl
+ ld hl, Unkn_f96c5
+ add hl, de
+ ld a, [hl]
+ pop hl
+ ld [hli], a
+ inc e
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_f922c
+ ret
+
Func_f923f:
- dr $f923f,$f9254
+ call Joypad
+ ld a, [H_FRAMECOUNTER]
+ and a
+ jr nz, .asm_f9250
+ ld a, [hJoyHeld]
+ ld [hJoy5], a
+ ld a, $2
+ ld [H_FRAMECOUNTER], a
+ ret
+
+.asm_f9250
+ xor a
+ ld [hJoy5], a
+ ret
+
Func_f9254:
- dr $f9254,$f9279
+ xor a
+ ld [rBGP], a
+ ld [rOBP0], a
+ ld [rOBP1], a
+ call UpdateGBCPal_BGP
+ call UpdateGBCPal_OBP0
+ call UpdateGBCPal_OBP1
+ ret
+ ld a, $e4
+ ld [rBGP], a
+ ld [rOBP0], a
+ ld a, $e0
+ ld [rOBP1], a
+ call UpdateGBCPal_BGP
+ call UpdateGBCPal_OBP0
+ call UpdateGBCPal_OBP1
+ ret
+
Func_f9279:
- dr $f9279,$f9284
+ ld hl, wTileMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ xor a
+ call FillMemory
+ ret
+
Func_f9284:
- dr $f9284,$f928c
+ xor a
+ ld [$c5ed], a
+ ld [$c5ee], a
+ ret
+
Func_f928c:
- dr $f928c,$f9350
+ ld a, [$c5ed]
+ and a
+ jr nz, .asm_f92e4
+ ld a, [$c5ec]
+ ld d, a
+ ld a, [$c5ee]
+ or d
+ jr z, .asm_f92dd
+ ld a, [$c5ee]
+ ld e, a
+ ld hl, $ff80
+ add hl, de
+ ld a, l
+ ld [$c5ee], a
+ ld a, h
+ ld [$c5ec], a
+ ld e, a
+ ld d, $0
+ call Func_f9340
+ ld e, l
+ ld d, h
+ ld a, $4
+ call Func_f9340
+ ld a, l
+ xor $ff
+ inc a
+ ld l, a
+ ld a, h
+ xor $ff
+ ld h, a
+ push hl
+ ld hl, $5
+ add hl, bc
+ ld d, [hl]
+ ld hl, $c
+ add hl, bc
+ ld e, [hl]
+ pop hl
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $5
+ add hl, bc
+ ld [hl], d
+ ld hl, $c
+ add hl, bc
+ ld [hl], e
+ and a
+ ret
+
+.asm_f92dd
+ ld a, $1
+ ld [$c5ed], a
+ and a
+ ret
+
+.asm_f92e4
+ ld a, [$c5ea]
+ ld e, a
+ ld hl, $5
+ add hl, bc
+ ld a, [hl]
+ cp $90
+ jr nc, .asm_f92f4
+ cp e
+ jr nc, .asm_f9330
+.asm_f92f4
+ ld a, [$c5ec]
+ ld d, a
+ ld a, [$c5ee]
+ ld e, a
+ ld hl, $80
+ add hl, de
+ ld a, l
+ ld [$c5ee], a
+ ld a, h
+ ld [$c5ec], a
+ ld e, a
+ ld d, $0
+ call Func_f9340
+ ld e, l
+ ld d, h
+ ld a, $4
+ call Func_f9340
+ push hl
+ ld hl, $5
+ add hl, bc
+ ld d, [hl]
+ ld hl, $c
+ add hl, bc
+ ld e, [hl]
+ pop hl
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, $5
+ add hl, bc
+ ld [hl], d
+ ld hl, $c
+ add hl, bc
+ ld [hl], e
+ and a
+ ret
+
+.asm_f9330
+ ld hl, $5
+ add hl, bc
+ ld a, [$c5ea]
+ ld [hl], a
+ ld hl, $c
+ add hl, bc
+ ld [hl], $0
+ scf
+ ret
+
+Func_f9340:
+ ld hl, $0
+.asm_f9343
+ srl a
+ jr nc, .asm_f9348
+ add hl, de
+.asm_f9348
+ sla e
+ rl d
+ and a
+ jr nz, .asm_f9343
+ ret
+
Func_f9350:
- dr $f9350,$f9362
-Func_f9362:
- dr $f9362,$f96e5
+ ld c, a
+ swap a
+ and $f
+ add $d0
+ ld [hli], a
+ ld a, c
+ and $f
+ add $d0
+ ld [hl], a
+ dec de
+ ret
+
+Func_f9360: ; cosine
+ add $10
+Func_f9362: ; sine
+ and $3f
+ cp $20
+ jr nc, .asm_f936d
+ call Func_f9377
+ ld a, h
+ ret
+
+.asm_f936d
+ and $1f
+ call Func_f9377
+ ld a, h
+ xor $ff
+ inc a
+ ret
+
+Func_f9377:
+ ld e, a
+ ld a, d
+ ld d, $0
+ ld hl, Unkn_f9393
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $0
+.asm_f9386
+ srl a
+ jr nc, .asm_f938b
+ add hl, de
+.asm_f938b
+ sla e
+ rl d
+ and a
+ jr nz, .asm_f9386
+ ret
+
+Unkn_f9393:
+ sine_wave $100
+
+Unkn_f93d3:
+ dr $f93d3,$f96c5
+
+Unkn_f96c5:
+ db 0
+ db 0
+ db 0
+ db 1
+ db 1
+ db 1
+ db 1
+ db 2
+ db 2
+ db 2
+ db 1
+ db 1
+ db 1
+ db 1
+ db 0
+ db 0
+ db 0
+ db 0
+ db 0
+ db -1
+ db -1
+ db -1
+ db -1
+ db -2
+ db -2
+ db -2
+ db -1
+ db -1
+ db -1
+ db -1
+ db 0
+ db 0
Unkn_f96e5:
dr $f96e5,$f973d
@@ -2367,6 +2792,7 @@ Unkn_f981d:
dr $f981d,$f9825
Unkn_f9825:
dr $f9825,$f982d
+
PlayIntroScene: ; f982d (3e:582d)
dr $f982d,$fa35a