summaryrefslogtreecommitdiff
path: root/src/engine/bank1c.asm
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/bank1c.asm')
-rw-r--r--src/engine/bank1c.asm169
1 files changed, 162 insertions, 7 deletions
diff --git a/src/engine/bank1c.asm b/src/engine/bank1c.asm
index 15a4647..3542d61 100644
--- a/src/engine/bank1c.asm
+++ b/src/engine/bank1c.asm
@@ -3,8 +3,8 @@ Func_70000: ; 70000 (1c:4000)
cp $1
ret nz
ld b, $1
- ld a, $22
- farcall GetEventFlagValue
+ ld a, EVENT_RECEIVED_LEGENDARY_CARDS
+ farcall GetEventValue
or a
jr z, .asm_70013
ld b, $2
@@ -261,10 +261,10 @@ Func_701e9: ; 701e9 (1c:41e9)
ld e, l
ld d, h
ld b, HIGH(wc000)
- call InitBGMapDecompression
+ call InitDataDecompression
pop bc
pop de
- call DecompressBGMap
+ call DecompressData
ret
Func_701fe: ; 701fe (1c:41fe)
@@ -292,8 +292,8 @@ Func_70214: ; 70214 (1c:4214)
cp $49
ret nz
ld hl, Unknown_7024a
- ld a, $10
- farcall GetEventFlagValue
+ ld a, EVENT_MEDAL_FLAGS
+ farcall GetEventValue
ld c, $8
.asm_70227
push bc
@@ -331,4 +331,159 @@ Unknown_7024a: ; 7024a (1c:424a)
INCROM $7024a, $7036a
Func_7036a: ; 7036a (1c:436a)
- INCROM $7036a, $74000
+ INCROM $7036a, $703cb
+
+Func_703cb: ; 703cb (1c:43cb)
+ ld a, [wConsole]
+ cp CONSOLE_SGB
+ ret nz
+ push hl
+ push bc
+ push de
+ call Func_70403
+ ld hl, wDecompressionBuffer
+ ld de, wTempSGBPacket + $1
+ ld bc, $8
+ call CopyDataHLtoDE
+ ld hl, wDecompressionBuffer + $22
+ ld de, wTempSGBPacket + $9
+ ld bc, $6
+ call CopyDataHLtoDE
+ xor a
+ ld [wTempSGBPacket + $f], a
+ ld hl, wTempSGBPacket
+ ld a, $09
+ ld [hl], a
+ call Func_704c7
+ call SendSGB
+ pop de
+ pop bc
+ pop hl
+ ret
+
+Func_70403: ; 70403 (1c:4403)
+ push hl
+ push bc
+ push de
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ inc hl
+ push bc
+ ld e, l
+ ld d, h
+ ld b, HIGH(wc000)
+ call InitDataDecompression
+ pop bc
+ ld de, wDecompressionBuffer
+ call DecompressData
+ pop de
+ pop bc
+ pop hl
+ ret
+; 0x7041d
+
+ INCROM $7041d, $70498
+
+; send an ATTR_BLK SGB packet
+; input:
+; b = x1 (left)
+; c = y1 (upper)
+; d = block width
+; e = block height
+; l = %00xxyyzz, palette number for: outside block, block border, inside block
+Func_70498: ; 70498 (1c:4498)
+ ld a, [wConsole]
+ cp CONSOLE_SGB
+ ret nz
+ push hl
+ push bc
+ push de
+ ld a, l
+ ld [wTempSGBPacket + 3], a ; Color Palette Designation
+ ld hl, wTempSGBPacket
+ push hl
+ ld a, ATTR_BLK << 3 + 1
+ ld [hli], a ; packet command and length
+ ld a, 1
+ ld [hli], a ; 1 data set
+ ld a, ATTR_BLK_CTRL_INSIDE
+ ld [hli], a ; control code
+ inc hl
+ ld a, b
+ ld [hli], a ; x1
+ ld a, c
+ ld [hli], a ; y1
+ ld a, d
+ dec a
+ add b
+ ld [hli], a ; x2
+ ld a, e
+ dec a
+ add c
+ ld [hli], a ; y2
+ pop hl
+ call SendSGB
+ pop de
+ pop bc
+ pop hl
+ ret
+
+Func_704c7: ; 704c7 (1c:44c7)
+ push af
+ push hl
+ inc hl
+ ld a, $9c
+ ld [hli], a
+ ld a, $63
+ ld [hl], a
+ pop hl
+ pop af
+ ret
+; 0x704d3
+
+ INCROM $704d3, $73393
+
+SGBData_CharizardIntro: ; 73393 (1c:7393)
+ dw $20 ; width
+ INCROM $73395, $733b8
+
+SGBData_ScytherIntro: ; 733b8 (1c:73b8)
+ dw $20 ; width
+ INCROM $733ba, $733dd
+
+SGBData_AerodactylIntro: ; 733dd (1c:73dd)
+ dw $20 ; width
+ INCROM $733df, $73402
+
+SGBData_ColosseumBooster: ; 73402 (1c:7402)
+ dw $20 ; width
+ INCROM $73404, $73427
+
+SGBData_EvolutionBooster: ; 73427 (1c:7427)
+ dw $20 ; width
+ INCROM $73429, $7344c
+
+SGBData_MysteryBooster: ; 7344c (1c:744c)
+ dw $20 ; width
+ INCROM $7344e, $73471
+
+SGBData_LaboratoryBooster: ; 73471 (1c:7471)
+ dw $20 ; width
+ INCROM $73473, $73aa8
+
+SGBData_GameBoyLink: ; 73aa8 (1c:7aa8)
+ dw $40 ; width
+ INCROM $73aaa, $73ad8
+
+SGBData_CardPop: ; 73ad8 (1c:7ad8)
+ dw $40 ; width
+ INCROM $73ada, $73b05
+
+SGBData_GameBoyPrinter: ; 73b05 (1c:7b05)
+ dw $40 ; width
+ INCROM $73b07, $73b33
+
+SGBData_TitleScreen: ; 73b33 (1c:7b33)
+ dw $40 ; width
+ INCROM $73b35, $74000