diff options
Diffstat (limited to 'src/engine/bank1c.asm')
-rw-r--r-- | src/engine/bank1c.asm | 169 |
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 |