From a14fbdbaba3348c4952d4689d0ae342860b520bb Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 30 Jun 2017 15:55:42 -0700 Subject: Move draw sprites routines to engine/main/draw_sprites/ --- .../main/draw_sprites/draw_blue_field_sprites.asm | 401 +++++++++++ .../draw_sprites/draw_diglett_bonus_sprites.asm | 28 + .../draw_sprites/draw_gengar_bonus_sprites.asm | 363 ++++++++++ .../draw_sprites/draw_meowth_bonus_sprites.asm | 305 +++++++++ .../draw_sprites/draw_mewtwo_bonus_sprites.asm | 81 +++ .../main/draw_sprites/draw_red_field_sprites.asm | 759 +++++++++++++++++++++ .../main/draw_sprites/draw_seel_bonus_sprites.asm | 129 ++++ engine/main/draw_sprites/draw_sprites.asm | 35 + .../draw_sprites/draw_unused_stage_sprites.asm | 8 + 9 files changed, 2109 insertions(+) create mode 100755 engine/main/draw_sprites/draw_blue_field_sprites.asm create mode 100755 engine/main/draw_sprites/draw_diglett_bonus_sprites.asm create mode 100755 engine/main/draw_sprites/draw_gengar_bonus_sprites.asm create mode 100755 engine/main/draw_sprites/draw_meowth_bonus_sprites.asm create mode 100755 engine/main/draw_sprites/draw_mewtwo_bonus_sprites.asm create mode 100755 engine/main/draw_sprites/draw_red_field_sprites.asm create mode 100755 engine/main/draw_sprites/draw_seel_bonus_sprites.asm create mode 100755 engine/main/draw_sprites/draw_sprites.asm create mode 100755 engine/main/draw_sprites/draw_unused_stage_sprites.asm (limited to 'engine') diff --git a/engine/main/draw_sprites/draw_blue_field_sprites.asm b/engine/main/draw_sprites/draw_blue_field_sprites.asm new file mode 100755 index 0000000..756971a --- /dev/null +++ b/engine/main/draw_sprites/draw_blue_field_sprites.asm @@ -0,0 +1,401 @@ +DrawSpritesBlueFieldTop: ; 0x1f330 + ld bc, $7f00 + callba DrawTimer + call Func_1f395 + call Func_1f3e1 + call Func_1f408 + call Func_1f428 + callba DrawPinball + call Func_1f48f + call Func_1f4f8 + ret + +DrawSpritesBlueFieldBottom: ; 0x1f35a + ld bc, $7f00 + callba DrawTimer + callba DrawMonCaptureAnimation + call DrawAnimatedMon_BlueStage + call DrawPikachuSavers_BlueStage + callba DrawFlippers + callba DrawPinball + call Func_1f4a3 + call Func_1f509 + call Func_1f55e + ret + +Func_1f395: ; 0x1f395 + ld de, wd4cd + ld hl, Data_1f3cf + call Func_1f3ad + ld de, wd4d0 + ld hl, Data_1f3d5 + call Func_1f3ad + ld de, wd4d3 + ld hl, Data_1f3db + ; fall through + +Func_1f3ad: ; 0x1f3ad + ld a, [hSCX] + ld b, a + ld a, [hli] + sub b + ld b, a + ld a, [hSCY] + ld c, a + ld a, [hli] + sub c + ld c, a + ld a, [wd4d7] + sub [hl] + inc hl + jr z, .asm_1f3c4 + ld a, $0 + jr .asm_1f3c6 + +.asm_1f3c4 + ld a, $1 +.asm_1f3c6 + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call LoadOAMData + ret + +Data_1f3cf: + db $48, $2D ; background scroll offsets (x, y) + db $01 + db $E0, $E1, $E0 ; OAM ids + +Data_1f3d5: + db $33, $3E ; background scroll offsets (x, y) + db $00 + db $E0, $E1, $E0 ; OAM ids + +Data_1f3db: + db $5D, $3E ; background scroll offsets (x, y) + db $02 + db $E0, $E1, $E0 ; OAM ids + +Func_1f3e1: ; 0x1f3e1 + ld a, $8a + ld hl, hSCX + sub [hl] + ld b, a + ld a, $53 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd50a] + srl a + srl a + ld e, a + ld d, $0 + ld hl, OAMIds_1f402 + add hl, de + ld a, [hl] + call LoadOAMData + ret + +OAMIds_1f402: + db $E8, $E9, $EA, $EB, $EC, $ED + +Func_1f408: ; 0x1f408 + ld a, $18 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $5f + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd633] + ld e, a + ld d, $0 + ld hl, OAMIds_1f425 + add hl, de + ld a, [hl] + call LoadOAMData + ret + +OAMIds_1f425: + db $E2, $E3, $E4 + +Func_1f428: ; 0x1f428 + ld a, $70 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $59 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd638] + ld e, a + ld d, $0 + ld hl, OAMIds_1f445 + add hl, de + ld a, [hl] + call LoadOAMData + ret + +OAMIds_1f445: + db $E5, $E6, $E7 + +DrawPikachuSavers_BlueStage: ; 0x1f448 + ld a, [hSCX] + ld d, a + ld a, [hSCY] + ld e, a + ld a, [wd51d] + and a + ld a, [wd518] + jr z, .asm_1f473 + ld a, [wd51c] + and a + jr nz, .asm_1f469 + ld a, [hNumFramesDropped] + srl a + srl a + srl a + and $1 + jr .asm_1f473 + +.asm_1f469 + ld a, [wd4b4] + cp $50 + ld a, $1 + jr nc, .asm_1f473 + xor a +.asm_1f473 + sla a + ld c, a + ld b, $0 + ld hl, PikachuSaverOAMOffsets_BlueStage + add hl, bc + ld a, [hli] + sub d + ld b, a + ld a, [hli] + sub e + ld c, a + ld a, [wPikachuSaverAnimationFrame] + add $e + call LoadOAMData + ret + +PikachuSaverOAMOffsets_BlueStage: + dw $7E0F + dw $7E92 + +Func_1f48f: ; 0x1f48f + ld a, [wd551] + and a + ret nz + ld a, [hNumFramesDropped] + bit 4, a + ret z + ld de, wIndicatorStates + 5 + ld hl, OAMDataTable_1f4ce + ld b, $6 + jr asm_1f4b5 + +Func_1f4a3: ; 0x1f4a3 + ld a, [wd551] + and a + ret nz + ld a, [hNumFramesDropped] + bit 4, a + ret z + ld de, wIndicatorStates + 11 + ld hl, OAMDataTable_1f4e0 + ld b, $8 +asm_1f4b5: + push bc + ld a, [hSCX] + ld b, a + ld a, [hli] + sub b + ld b, a + ld a, [hSCY] + ld c, a + ld a, [hli] + sub c + ld c, a + ld a, [de] + and a + ld a, [hli] + call nz, LoadOAMData + pop bc + inc de + dec b + jr nz, asm_1f4b5 + ret + +OAMDataTable_1f4ce: ; 0x1f4ce + ; Each entry is: + ; [OAM x/y Offsets],[OAM Id] + db $0D, $37 + db $EE + + db $35, $0D + db $F1 + + db $8E, $4E + db $F4 + + db $36, $64 + db $EF + + db $4C, $49 + db $EE + + db $61, $64 + db $F0 + +OAMDataTable_1f4e0: ; 0x1f4e0 + ; Each entry is 3 bytes: + ; [OAM x/y Offsets],[OAM Id] + db $2D, $13 + db $32 + + db $6A, $13 + db $33 + + db $25, $2D + db $34 + + db $73, $2D + db $35 + + db $38, $14 + db $36 + + db $66, $14 + db $36 + + db $79, $40 + db $37 + + db $89, $40 + db $37 + +Func_1f4f8: ; 0x1f4f8 + ld a, [wd551] + and a + ret z + ld de, wd566 + ld hl, OAMOffsetsTable_1f53a + ld b, $c + ld c, $47 + jr asm_1f518 + +Func_1f509: ; 0x1f509 + ld a, [wd551] + and a + ret z + ld de, wd572 + ld hl, OAMOffsetsTable_1f552 + ld b, $6 + ld c, $40 +asm_1f518: ; 0x1f518 + push bc + ld a, [de] + add c + cp c + push af + ld a, [hSCX] + ld b, a + ld a, [hli] + sub b + ld b, a + ld a, [hSCY] + ld c, a + ld a, [hli] + sub c + ld c, a + ld a, [hNumFramesDropped] + and $e + jr nz, .asm_1f530 + dec c +.asm_1f530 + pop af + call nz, LoadOAMData + pop bc + inc de + dec b + jr nz, asm_1f518 + ret + +OAMOffsetsTable_1f53a: ; 0x1f53a +; OAM data x, y offsets + db $4C, $08 + db $2B, $12 + db $6D, $12 + db $15, $25 + db $82, $25 + db $0D, $3F + db $4C, $7F + db $8B, $3F + db $0A, $65 + db $36, $7F + db $61, $7F + db $8D, $65 + +OAMOffsetsTable_1f552: ; 0x1f552 +; OAM data x, y offsets + db $3B, $12 + db $5D, $12 + db $31, $16 + db $67, $16 + db $25, $2C + db $73, $2C + +Func_1f55e: ; 0x1f55e + ld a, [wd604] + and a + ret z + ld a, [wd606] + inc a + ld [wd606], a + ld a, $40 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $1 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd606] + srl a + srl a + srl a + and $3 + add $4f + cp $52 + call nz, LoadOAMData + ret + +DrawAnimatedMon_BlueStage: ; 0x1f58b + ld a, [wWildMonIsHittable] + and a + ret z + ld a, $50 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $3e + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd5bd] + ld e, a + ld d, $0 + ld hl, AnimatedMonOAMIds_BlueStage + add hl, de + ld a, [hl] + call LoadOAMData + ret + +AnimatedMonOAMIds_BlueStage: + db $26, $27, $28, $29, $2A, $2B, $2C, $2D, $2E, $2F, $30, $31 diff --git a/engine/main/draw_sprites/draw_diglett_bonus_sprites.asm b/engine/main/draw_sprites/draw_diglett_bonus_sprites.asm new file mode 100755 index 0000000..a0dded5 --- /dev/null +++ b/engine/main/draw_sprites/draw_diglett_bonus_sprites.asm @@ -0,0 +1,28 @@ +DrawSpritesDiglettBonus: ; 0x1ac98 + callba DrawFlippers + callba DrawPinball + call Func_1acb0 + ret + +Func_1acb0: ; 0x1acb0 + ld a, $40 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $0 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wDugtrioAnimationFrame] + ld e, a + ld d, $0 + ld hl, OAMIds_1accf + add hl, de + ld a, [hl] + bit 7, a + call z, LoadOAMData2 + ret + +OAMIds_1accf: + db $46, $47, $48, $49, $4A, $4B, $4C, $4D, $4E, $4F, $50, $51, $52, $53 + db $FF diff --git a/engine/main/draw_sprites/draw_gengar_bonus_sprites.asm b/engine/main/draw_sprites/draw_gengar_bonus_sprites.asm new file mode 100755 index 0000000..212279d --- /dev/null +++ b/engine/main/draw_sprites/draw_gengar_bonus_sprites.asm @@ -0,0 +1,363 @@ +DrawSpritesGengarBonus: ; 0x18faf + ld bc, $7f00 + callba DrawTimer + call Func_19020 + call Func_190b9 + call Func_19185 + callba DrawFlippers + callba DrawPinball + ret + +Func_18fda: +; unused + ld a, [hNewlyPressedButtons] + bit 6, a + ret z + ld a, [wd659] + and a + jr z, .asm_18ff8 + ld a, $1 + ld [wd67e], a + ld [wd687], a + xor a + ld [wd659], a + ld [wd662], a + ld [wd66b], a + ret + +.asm_18ff8 + ld a, [wd67e] + and a + jr z, .asm_1900b + ld a, $1 + ld [wd698], a + xor a + ld [wd67e], a + ld [wd687], a + ret + +.asm_1900b + ld a, [wd698] + and a + ret z + ld a, $1 + ld [wd659], a + ld [wd662], a + ld [wd66b], a + xor a + ld [wd698], a + ret + +Func_19020: ; 0x19020 + ld de, wd659 + call Func_19033 + ld de, wd662 + call Func_19033 + ld de, wd66b + call Func_19033 + ret + +Func_19033: ; 0x19033 + ld a, [de] + and a + ret z +.asm_19036 + call Func_19070 + jr nc, .asm_19042 + ld a, [rLCDC] + bit 7, a + jr z, .asm_19036 + ret + +.asm_19042 + inc de + inc de + inc de + inc de + inc de + inc de + ld a, [de] + ld hl, hSCX + sub [hl] + ld b, a + inc de + inc de + ld a, [de] + ld hl, hSCY + sub [hl] + ld c, a + dec de + dec de + dec de + dec de + dec de + dec de + ld a, [de] + ld e, a + ld d, $0 + ld hl, OAMIds_1906b + add hl, de + ld a, [hl] + cp $ff + call nz, LoadOAMData2 + ret + +OAMIds_1906b: + db $00, $01, $02, $03 + db $FF + +Func_19070: ; 0x19070 + ld a, [wd674] + and a + ret z + push de + dec a + ld [wd674], a + sla a + sla a + ld c, a + ld b, $0 + ld hl, GastlyVideoData_190a9 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld h, [hl] + ld l, a + ld a, Bank(GengarBonusGastlyGfx) + ld bc, $0060 + call LoadOrCopyVRAMData + ld a, $8 + ld [wd690], a + ld [wd6a1], a + xor a + ld [wd67e], a + ld [wd687], a + ld [wd698], a + pop de + scf + ret + +GastlyVideoData_190a9: + dw vTilesSH tile $10, GengarBonusGastlyGfx + dw vTilesSH tile $16, GengarBonusGastlyGfx + $60 + dw vTilesSH tile $1c, GengarBonusGastlyGfx + $c0 + dw vTilesSH tile $22, GengarBonusGastlyGfx + $120 + +Func_190b9: ; 0x190b9 + ld de, wd67e + call Func_190c6 + ld de, wd687 + call Func_190c6 + ret + +Func_190c6: ; 0x190c6 + ld a, [de] + and a + ret z +.asm_190c9 + call Func_19104 + jr nc, .asm_190d5 + ld a, [rLCDC] + bit 7, a + jr z, .asm_190c9 + ret + +.asm_190d5 + inc de + inc de + inc de + inc de + inc de + inc de + ld a, [de] + ld hl, hSCX + sub [hl] + ld b, a + inc de + inc de + ld a, [de] + ld hl, hSCY + sub [hl] + ld c, a + dec de + dec de + dec de + dec de + dec de + dec de + ld a, [de] + ld e, a + ld d, $0 + ld hl, OAMIds_190fe + add hl, de + ld a, [hl] + cp $ff + call nz, LoadOAMData2 + ret + +OAMIds_190fe: + db $04, $05, $06, $07, $08 + db $FF + +Func_19104: ; 0x19104 + ld a, [wd690] + and a + ret z + push de + dec a + ld [wd690], a + sla a + sla a + sla a + ld c, a + ld b, $0 + ld hl, GengarBonusStageHaunterGfxTable + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld h, [hl] + ld l, a + ld a, Bank(GengarBonusHaunterGfx) + call LoadOrCopyVRAMData + ld a, $4 + ld [wd674], a + ld a, $8 + ld [wd6a1], a + xor a + ld [wd659], a + ld [wd662], a + ld [wd66b], a + ld [wd698], a + pop de + scf + ret + +GengarBonusStageHaunterGfxTable: ; 0x19145 +; Graphics data for Haunter. +; First word: length in bytes +; Second word: destination VRAM address +; Third word: graphics data +; Fourth word: unused + dw $60, vTilesSH tile $10, GengarBonusHaunterGfx, $0000 + dw $60, vTilesSH tile $16, GengarBonusHaunterGfx + $60, $0000 + dw $60, vTilesSH tile $1c, GengarBonusHaunterGfx + $c0, $0000 + dw $60, vTilesSH tile $22, GengarBonusHaunterGfx + $120, $0000 + dw $20, vTilesSH tile $28, GengarBonusHaunterGfx + $180, $0000 + dw $40, vTilesOB tile $1a, GengarBonusHaunterGfx + $1a0, $0000 + dw $60, vTilesOB tile $1e, GengarBonusHaunterGfx + $1e0, $0000 + dw $60, vTilesOB tile $24, GengarBonusHaunterGfx + $240, $0000 + +Func_19185: ; 0x19185 + ld de, wd698 + call Func_1918c + ret + +Func_1918c: ; 0x1918c + ld a, [de] + and a + ret z +.asm_1918f + call Func_191cb + jr nc, .asm_1919b + ld a, [rLCDC] + bit 7, a + jr z, .asm_1918f + ret + +.asm_1919b + inc de + inc de + inc de + inc de + inc de + inc de + ld a, [de] + ld hl, hSCX + sub [hl] + ld b, a + inc de + inc de + ld a, [de] + ld hl, hSCY + sub [hl] + ld c, a + dec de + dec de + dec de + dec de + dec de + dec de + ld a, [de] + ld e, a + ld d, $0 + ld hl, OAMIds_191c4 + add hl, de + ld a, [hl] + cp $ff + call nz, LoadOAMData2 + ret + +OAMIds_191c4: + db $09, $0A, $0B, $0C, $0D, $0E + db $FF + +Func_191cb: ; 0x191cb + ld a, [wd6a1] + and a + ret z + push de + dec a + ld [wd6a1], a + sla a + sla a + sla a + ld c, a + ld b, $0 + ld hl, GengarBonusStageGengarGfxTable + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $26 + call LoadOrCopyVRAMData + ld a, $4 + ld [wd674], a + ld a, $8 + ld [wd690], a + xor a + ld [wd659], a + ld [wd662], a + ld [wd66b], a + ld [wd67e], a + ld [wd687], a + pop de + scf + ret + +GengarBonusStageGengarGfxTable: + dw $60, vTilesSH tile $10, GengarBonusGengarGfx, $0000 + dw $60, vTilesSH tile $16, GengarBonusGengarGfx + $60, $0000 + dw $60, vTilesSH tile $1c, GengarBonusGengarGfx + $c0, $0000 + dw $60, vTilesSH tile $22, GengarBonusGengarGfx + $120, $0000 + dw $20, vTilesSH tile $28, GengarBonusGengarGfx + $180, $0000 + dw $40, vTilesOB tile $1a, GengarBonusGengarGfx + $1a0, $0000 + dw $60, vTilesOB tile $1e, GengarBonusGengarGfx + $1e0, $0000 + dw $60, vTilesOB tile $24, GengarBonusGengarGfx + $240, $0000 diff --git a/engine/main/draw_sprites/draw_meowth_bonus_sprites.asm b/engine/main/draw_sprites/draw_meowth_bonus_sprites.asm new file mode 100755 index 0000000..5d54a08 --- /dev/null +++ b/engine/main/draw_sprites/draw_meowth_bonus_sprites.asm @@ -0,0 +1,305 @@ +DrawSpritesMeowthBonus: ; 0x2583b + ld bc, $7f65 + callba DrawTimer + callba DrawFlippers + call Func_259fe + call Func_25895 + call Func_2595e + call Func_2586c + callba DrawPinball + call Func_25a39 + ret + +Func_2586c: ; 0x2586c + ld a, [wMeowthXPosition] + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wMeowthYPosition] + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wMeowthAnimationFrame] + ld e, a + ld d, $0 + ld hl, OAMIds_2588b + add hl, de + ld a, [hl] + call LoadOAMData2 + ret + +OAMIds_2588b: + db $21, $22, $23, $24, $25, $26, $27, $28, $33, $34 + +Func_25895: ; 0x25895 + ld a, [wd714] + cp $b + jr nz, .asm_258a0 + xor a + ld [wd714], a +.asm_258a0 + ld a, [wd715] + cp $b + jr nz, .asm_258ab + xor a + ld [wd715], a +.asm_258ab + ld a, [wd716] + cp $b + jr nz, .asm_258b6 + xor a + ld [wd716], a +.asm_258b6 + ld a, [wd71a] + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wd727] + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd717] + sla a + ld e, a + ld d, $0 + ld hl, OAMPointers_25935 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wd714] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call LoadOAMData2 + ld a, [wd71b] + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wd728] + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd718] + sla a + ld e, a + ld d, $0 + ld hl, OAMPointers_25935 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wd715] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call LoadOAMData2 + ld a, [wd71c] + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wd729] + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd719] + sla a + ld e, a + ld d, $0 + ld hl, OAMPointers_25935 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wd716] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call LoadOAMData2 + ret + +OAMPointers_25935: + dw OAMIds_2593d + dw OAMIds_2593d + dw OAMIds_25948 + dw OAMIds_25953 + +OAMIds_2593d: + db $29, $29, $29, $29, $2A, $2A, $2A, $2A, $2A, $2A, $2A + +OAMIds_25948: + db $2B, $2B, $2B, $2B, $2B, $2B, $2B, $2C, $2C, $2C, $2C + +OAMIds_25953: + db $2D, $32, $31, $30, $2F, $2E, $2F, $30, $31, $32, $32 + +Func_2595e: ; 0x2595e + ld a, [wd71e] + cp $b + jr nz, .asm_25969 + xor a + ld [wd71e], a +.asm_25969 + ld a, [wd71f] + cp $b + jr nz, .asm_25974 + xor a + ld [wd71f], a +.asm_25974 + ld a, [wd720] + cp $b + jr nz, .asm_2597f + xor a + ld [wd720], a +.asm_2597f + ld a, [wd724] + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wd731] + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd721] + sla a + ld e, a + ld d, $0 + ld hl, OAMPointers_25935 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wd71e] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call LoadOAMData2 + ld a, [wd725] + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wd732] + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd722] + sla a + ld e, a + ld d, $0 + ld hl, OAMPointers_25935 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wd71f] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call LoadOAMData2 + ld a, [wd726] + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wd733] + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd723] + sla a + ld e, a + ld d, $0 + ld hl, OAMPointers_25935 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wd720] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call LoadOAMData2 + ret + +Func_259fe: ; 0x259fe + ld a, [wd795] + and a + ret z + ld de, wd79c + ld a, [de] + ld hl, hSCX + sub [hl] + ld b, a + inc de + inc de + ld a, [de] + ld hl, hSCY + sub [hl] + ld c, a + dec de + dec de + dec de + dec de + dec de + dec de + ld a, [de] + ld e, a + ld d, $0 + ld hl, OAMIds_25a29 + add hl, de + ld a, [hl] + cp $ff + call nz, LoadOAMData2 + ret + +OAMIds_25a29: + db $35, $36, $37, $38, $39, $3A, $3B, $3C, $3D, $3E, $3F, $40, $41, $42, $43 + db $FF + +Func_25a39: ; 0x25a39 + ld a, [wd64e] + and a + ret z + ld a, [wd652] + ld hl, hSCX + sub [hl] + ld b, a + xor a + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd64f] + cp $a + jr c, .asm_25a58 + ld de, $0000 + jr .asm_25a5b + +.asm_25a58 + ld de, $0001 +.asm_25a5b + ld hl, OAMIds_25a7a + add hl, de + ld a, [hl] + call LoadOAMData2 + ld hl, wd64f + inc [hl] + ld a, [hl] + cp $14 + ret c + ld [hl], $0 + ld hl, wd650 + inc [hl] + ld a, [hl] + cp $a + ret nz + xor a + ld [wd64e], a + ret + +OAMIds_25a7a: ; 0x25a7a + db $44, $45 diff --git a/engine/main/draw_sprites/draw_mewtwo_bonus_sprites.asm b/engine/main/draw_sprites/draw_mewtwo_bonus_sprites.asm new file mode 100755 index 0000000..a4397a0 --- /dev/null +++ b/engine/main/draw_sprites/draw_mewtwo_bonus_sprites.asm @@ -0,0 +1,81 @@ +DrawSpritesMewtwoBonus: ; 0x1994e + ld bc, $7f65 + callba DrawTimer + call Func_1999d + callba DrawFlippers + callba DrawPinball + call Func_19976 + ret + +Func_19976: ; 0x19976 + ld a, $40 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $0 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd6ad] + ld e, a + ld d, $0 + ld hl, OAMIds_19995 + add hl, de + ld a, [hl] + cp $ff + call nz, LoadOAMData2 + ret + +OAMIds_19995: + db $0F, $10, $11, $12, $17, $18, $19 + db $FF + +Func_1999d: ; 0x1999d + ld de, wd6b6 + call Func_199be + ld de, wd6be + call Func_199be + ld de, wd6c6 + call Func_199be + ld de, wd6ce + call Func_199be + ld de, wd6d6 + call Func_199be + ld de, wd6de + ; fall through + +Func_199be: ; 0x199be + ld a, [de] + and a + ret z + inc de + inc de + inc de + inc de + inc de + ld a, [de] + ld hl, hSCX + sub [hl] + ld b, a + inc de + ld a, [de] + ld hl, hSCY + sub [hl] + ld c, a + dec de + dec de + dec de + dec de + ld a, [de] + ld e, a + ld d, $0 + ld hl, OAMIds_199e6 + add hl, de + ld a, [hl] + cp $ff + call nz, LoadOAMData2 + ret + +OAMIds_199e6: + db $13, $14, $15, $16, $1A, $1B, $1C, $1D, $1E, $1F, $20 + db $FF diff --git a/engine/main/draw_sprites/draw_red_field_sprites.asm b/engine/main/draw_sprites/draw_red_field_sprites.asm new file mode 100755 index 0000000..d56e840 --- /dev/null +++ b/engine/main/draw_sprites/draw_red_field_sprites.asm @@ -0,0 +1,759 @@ +DrawSpritesRedFieldTop: ; 0x1755c + ld bc, $7f00 + call DrawTimer + call Func_17cc4 + call Func_17d34 + call Func_17d59 + call Func_17d7a + call Func_17d92 + call Func_17de1 + call DrawPinball + call Func_17efb + call Func_17f64 + ret + +DrawSpritesRedFieldBottom: ; 0x1757e + ld bc, $7f00 + call DrawTimer + call DrawMonCaptureAnimation + call DrawAnimatedMon_RedStage + call DrawPikachuSavers_RedStage + callba DrawFlippers + call DrawPinball + call Func_17f0f + call Func_17f75 + call Func_17fca + ret + +DrawTimer: ; 0x175a4 + ld a, [wd57d] + and a + ret z + ld a, [hGameBoyColorFlag] + and a + jr nz, DrawTimer_GameBoyColor + ld a, [wd580] + and a + ret z + ld a, [wd581] + and a + jr z, .DrawTimer_GameBoy + dec a + ld [wd581], a + ret + +.DrawTimer_GameBoy + call Func_1762f + ld hl, wTimerDigits + ld a, [wTimerMinutes] + and $f + call LoadTimerDigitTiles + ld a, [wTimerSeconds] + swap a + and $f + call LoadTimerDigitTiles + ld a, [wTimerSeconds] + and $f + call LoadTimerDigitTiles + ld d, $0 + ld hl, TimerOAMIds + add hl, de + ld a, [hli] + call DrawTimerDigit + ld a, [hli] + call DrawTimerDigit + ld a, [hli] + call DrawTimerDigit + ld a, [hli] + call DrawTimerDigit + ret + +DrawTimer_GameBoyColor: ; 0x175f5 +; Loads the OAM data for the timer in the top-right corner of the screen. + ld a, [wTimerMinutes] + and $f + call DrawTimerDigit_GameBoyColor + ld a, $a ; colon + call DrawTimerDigit_GameBoyColor + ld a, [wTimerSeconds] + swap a + and $f + call DrawTimerDigit_GameBoyColor ; tens digit of the minutes + ld a, [wTimerSeconds] + and $f + call DrawTimerDigit_GameBoyColor ; ones digit of the minutes + ret + +TimerOAMIds: + db $d7, $da, $d8, $d9 + db $dc, $df, $dd, $de + db $dc, $db, $dd, $de + db $f5, $f8, $f6, $f7 + +DrawTimerDigit_GameBoyColor: ; 0x17625 + add $b1 ; the timer digits' OAM ids start at $b1 +DrawTimerDigit: ; 0x17627 + call LoadOAMData + ld a, b + add $8 + ld b, a + ret + +Func_1762f: ; 0x1762f + lb de, $60, $0c + ld a, [wCurrentStage] + cp $6 + ret nc + lb de, $00, $00 + bit 0, a + ret z + lb de, $30, $04 + ld a, [wInSpecialMode] + and a + ret z + ld a, [wSpecialMode] + and a + ret nz + lb de, $30, $08 + ret + +LoadTimerDigitTiles: ; 0x1764f + push bc + push de + cp [hl] + jr z, .skip + push af + push hl + add d + call Func_17665 + pop hl + pop af + ld [hl], a +.skip + inc hl + pop de + ld a, d + add $10 + ld d, a + pop bc + ret + +Func_17665: ; 0x17665 + ld c, a + ld b, $0 + sla c + rl b + ld hl, TimerDigitsTileData + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, Bank(TimerDigitsTileData) + call Func_10aa + ret + +INCLUDE "data/timer_digits_tiledata.asm" + +DrawMonCaptureAnimation: ; 0x17c67 + ld a, [wCapturingMon] + and a + ret z + ld a, $50 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $38 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wBallCaptureAnimationFrame] + ld e, a + ld d, $0 + ld hl, BallCaptureAnimationOAMIds + add hl, de + ld a, [hl] + call LoadOAMData + ret + +BallCaptureAnimationOAMIds: + db $19, $1A, $1B, $1C, $1D, $1E, $1F, $20, $21, $22, $23, $24, $25 + +DrawAnimatedMon_RedStage: ; 0x17c96 + ld a, [wWildMonIsHittable] + and a + ret z + ld a, $50 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $3e + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd5bd] + ld e, a + ld d, $0 + ld hl, AnimatedMonOAMIds_RedStage + add hl, de + ld a, [hl] + call LoadOAMData + ret + +AnimatedMonOAMIds_RedStage: + db $26, $27, $28, $29, $2A, $2B, $2C, $2D, $2E, $2F, $30, $31 + +Func_17cc4: ; 0x17cc4 + ld de, wd4cd + ld hl, OAMData_17d15 + call Func_17cdc + ld de, wd4d0 + ld hl, OAMData_17d1b + call Func_17cdc + ld de, wd4d3 + ld hl, OAMData_17d21 + ; fall through + +Func_17cdc: ; 0x17cdc + push hl + ld hl, AnimationData_17d27 + call UpdateAnimation + ld h, d + ld l, e + ld a, [hl] + and a + jr nz, .asm_17cf6 + call GenRandom + and $7 + add $1e + ld [hli], a + ld a, $1 + ld [hli], a + xor a + ld [hl], a +.asm_17cf6 + pop hl + inc de + ld a, [hSCX] + ld b, a + ld a, [hli] + sub b + ld b, a + ld a, [hSCY] + ld c, a + ld a, [hli] + sub c + ld c, a + ld a, [wd4d7] + sub [hl] + inc hl + jr z, .asm_17d0c + ld a, [de] +.asm_17d0c + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call LoadOAMData + ret + +OAMData_17d15: + db $3A, $4E ; x, y offsets + db $00 ; ??? + db $BD, $BC, $CE ; oam ids + +OAMData_17d1b: + db $53, $44 ; x, y offsets + db $01 ; ??? + db $BD, $BC, $CD ; oam ids + +OAMData_17d21: + db $4D, $60 ; x, y offsets + db $02 ; ??? + db $BD, $BC, $CF ; oam ids + +AnimationData_17d27: +; Each entry is [duration][OAM id] + db $1E, $01 + db $02, $02 + db $03, $01 + db $02, $02 + db $03, $01 + db $02, $02 + db $00 ; terminator + +Func_17d34: ; 0x17d34 + ld a, $0 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $10 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wStageCollisionState] + ld e, a + ld d, $0 + ld hl, OAMIds_17d51 + add hl, de + ld a, [hl] + call LoadOAMData + ret + +OAMIds_17d51: + db $C9 + db $C9 + db $C9 + db $C9 + db $C8 + db $C8 + db $CA + db $CA + +Func_17d59: ; 0x17d59 + ld a, $74 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $52 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wBellsproutAnimationFrame] + ld e, a + ld d, $0 + ld hl, BellsproutAnimationOAMIds + add hl, de + ld a, [hl] + call LoadOAMData + ret + +BellsproutAnimationOAMIds: ; 0x17d76 + db $BE + db $BF + db $C0 + db $C1 + +Func_17d7a: ; 0x17d7a + ld a, [hGameBoyColorFlag] + and a + ret z + ld a, $67 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $54 + ld hl, hSCY + sub [hl] + ld c, a + ld a, $cc + call LoadOAMData + ret + +Func_17d92: ; 0x17d92 + ld a, [hGameBoyColorFlag] + and a + ret z + ld hl, AnimationData_17dd0 + ld de, wd504 + call UpdateAnimation + ld a, [wd504] + and a + jr nz, .asm_17db1 + ld a, $13 + ld [wd504], a + xor a + ld [wd505], a + ld [wd506], a +.asm_17db1 + ld a, $2b + ld hl, hSCX + sub [hl] + ld b, a + ld a, $69 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd505] + ld e, a + ld d, $0 + ld hl, OAMIds_17dce + add hl, de + ld a, [hl] + call LoadOAMData + ret + +OAMIds_17dce: ; 0x17dce + db $CB + db $D0 + +AnimationData_17dd0: +; Each entry is [duration][OAM id] + db $14, $00 + db $13, $01 + db $15, $00 + db $12, $01 + db $14, $00 + db $13, $01 + db $16, $00 + db $13, $01 + db $0 ; terminator + +Func_17de1: ; 0x17de1 + ld a, $88 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $5a + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd50a] + srl a + srl a + ld e, a + ld d, $0 + ld hl, OAMIds_17e02 + add hl, de + ld a, [hl] + call LoadOAMData + ret + +OAMIds_17e02: ; 0x17e02 + db $C2 + db $C3 + db $C4 + db $C5 + db $C6 + db $C7 + +DrawPikachuSavers_RedStage: ; 0x17e08 + ld a, [hSCX] + ld d, a + ld a, [hSCY] + ld e, a + ld a, [wd51d] + and a + ld a, [wd518] + jr z, .asm_17e33 + ld a, [wd51c] + and a + jr nz, .asm_17e29 + ld a, [hNumFramesDropped] + srl a + srl a + srl a + and $1 + jr .asm_17e33 + +.asm_17e29 + ld a, [wd4b4] + cp $50 + ld a, $1 + jr nc, .asm_17e33 + xor a +.asm_17e33 + sla a + ld c, a + ld b, $0 + ld hl, PikachuSaverOAMOffsets_RedStage + add hl, bc + ld a, [hli] + sub d + ld b, a + ld a, [hli] + sub e + ld c, a + ld a, [wPikachuSaverAnimationFrame] + add $e + call LoadOAMData + ret + +PikachuSaverOAMOffsets_RedStage: + dw $7E0F + dw $7E92 + +Func_17e4f: ; 0x17e4f +; unused + ld hl, UnusedData_7e55 + jp Func_17e5e + +UnusedData_7e55: ; 0x17e55 + db $00, $2B, $69, $CB, $00, $67, $54, $CC + db $FF + +Func_17e5e: ; 0x17e5e +; unused + ld a, [hGameBoyColorFlag] + ld e, a + ld a, [hSCX] + ld d, a +.asm_17e64 + ld a, [hli] + cp $ff + ret z + or e + jr nz, .asm_17e70 + inc hl + inc hl + inc hl + jr .asm_17e64 +.asm_17e70 + ld a, [hli] + sub d + ld b, a + ld a, [hSCY] + ld c, a + ld a, [hli] + sub c + ld c, a + ld a, [hli] + bit 0, e + call nz, LoadOAMData + jr .asm_17e64 + +DrawPinball: ; 0x17e81 + ld a, [wd548] + and a + ret z + ld hl, wBallSpin + ld a, [wBallRotation] + add [hl] + ld [wBallRotation], a + ld a, [wBallXPos + 1] + inc a + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wBallYPos + 1] + inc a + sub $10 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wBallRotation] + srl a + srl a + srl a ; divide wBallRotation by 8 because + srl a ; there are 8 frames of the ball spinning + and $7 + add $0 + call LoadOAMData + ld a, [hGameBoyColorFlag] + and a + ret nz + ld a, [hGameBoyColorFlag] + and a + ret nz + ld a, [hSGBFlag] + and a + ret nz + ld a, [wd4c5] + inc a + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wd4c6] + inc a + sub $10 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd4c7] + srl a + srl a + srl a + srl a + and $7 + add $0 + call LoadOAMData + ld a, [wBallXPos + 1] + ld [wd4c5], a + ld a, [wBallYPos + 1] + ld [wd4c6], a + ld a, [wBallRotation] + ld [wd4c7], a + ret + +Func_17efb: ; 0x17efb + ld a, [wd551] + and a + ret nz + ld a, [hNumFramesDropped] + bit 4, a + ret z + ld de, wIndicatorStates + 5 + ld hl, OAMData_17f3a + ld b, $6 + jr asm_17f21 + +Func_17f0f: ; 0x17f0f + ld a, [wd551] + and a + ret nz + ld a, [hNumFramesDropped] + bit 4, a + ret z + ld de, wIndicatorStates + 11 + ld hl, OAMData_17f4c + ld b, $8 +asm_17f21: ; 0x17f21 + push bc + ld a, [hSCX] + ld b, a + ld a, [hli] + sub b + ld b, a + ld a, [hSCY] + ld c, a + ld a, [hli] + sub c + ld c, a + ld a, [de] + and a + ld a, [hli] + call nz, LoadOAMData + pop bc + inc de + dec b + jr nz, asm_17f21 + ret + +OAMData_17f3a: + db $0D, $37 ; x, y offsets + db $D1 ; oam id + + db $46, $22 ; x, y offsets + db $D6 ; oam id + + db $8A, $4A ; x, y offsets + db $D2 ; oam id + + db $41, $81 ; x, y offsets + db $D3 ; oam id + + db $3D, $65 ; x, y offsets + db $D5 ; oam id + + db $73, $74 ; x, y offsets + db $D4 ; oam id + +OAMData_17f4c: + db $2D, $13 ; x, y offsets + db $32 ; oam id + + db $6A, $13 ; x, y offsets + db $33 ; oam id + + db $25, $2D ; x, y offsets + db $34 ; oam id + + db $73, $2D ; x, y offsets + db $35 ; oam id + + db $0F, $40 ; x, y offsets + db $36 ; oam id + + db $1F, $40 ; x, y offsets + db $36 ; oam id + + db $79, $40 ; x, y offsets + db $37 ; oam id + + db $89, $40 ; x, y offsets + db $37 ; oam id + +Func_17f64: ; 0x17f64 + ld a, [wd551] + and a + ret z + ld de, wd566 + ld hl, OAMOffsets_17fa6 + ld b, $c + ld c, $39 + jr asm_17f84 + +Func_17f75: ; 0x17f75 + ld a, [wd551] + and a + ret z + ld de, wd572 + ld hl, OAMOffsets_17fbe + ld b, $6 + ld c, $40 +asm_17f84: ; 0x17f84 + push bc + ld a, [de] + add c + cp c + push af + ld a, [hSCX] + ld b, a + ld a, [hli] + sub b + ld b, a + ld a, [hSCY] + ld c, a + ld a, [hli] + sub c + ld c, a + ld a, [hNumFramesDropped] + and $e + jr nz, .asm_17f9c + dec c +.asm_17f9c + pop af + call nz, LoadOAMData + pop bc + inc de + dec b + jr nz, asm_17f84 + ret + +OAMOffsets_17fa6: +; x, y offsets + db $4C, $0C + db $32, $12 + db $66, $12 + db $19, $25 + db $7F, $25 + db $1E, $36 + db $7F, $36 + db $0E, $65 + db $8B, $65 + db $49, $7A + db $59, $7A + db $71, $7A + +OAMOffsets_17fbe: +; x, y offsets + db $3D, $13 + db $5B, $13 + db $31, $17 + db $67, $17 + db $2E, $2C + db $6A, $2C + +Func_17fca: ; 0x17fca + ld a, [wd604] + and a + ret z + ld a, [wd606] + inc a + ld [wd606], a + ld a, $40 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $1 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd606] + srl a + srl a + srl a + and $3 + add $4f + cp $52 + call nz, LoadOAMData + ret diff --git a/engine/main/draw_sprites/draw_seel_bonus_sprites.asm b/engine/main/draw_sprites/draw_seel_bonus_sprites.asm new file mode 100755 index 0000000..261de5b --- /dev/null +++ b/engine/main/draw_sprites/draw_seel_bonus_sprites.asm @@ -0,0 +1,129 @@ +DrawSpritesSeelBonus: ; 0x26b7e + ld bc, $7f65 + callba DrawTimer + call Func_26bf7 + callba DrawFlippers + callba DrawPinball + call Func_26ba9 + call Func_26c3c + ret + +Func_26ba9: ; 0x26ba9 + ld de, wd76e + call Func_26bbc + ld de, wd778 + call Func_26bbc + ld de, wd782 + call Func_26bbc + ret + +Func_26bbc: ; 0x26bbc + ld a, [de] + ld hl, hSCX + sub [hl] + ld b, a + inc de + inc de + ld a, [de] + ld hl, hSCY + sub [hl] + ld c, a + dec de + dec de + dec de + dec de + dec de + dec de + ld a, [de] + ld e, a + ld d, $0 + ld hl, OAMIds_26bdf + add hl, de + ld a, [hl] + cp $ff + call nz, LoadOAMData2 + ret + +OAMIds_26bdf: + db $54, $55, $56, $57, $58, $59, $5A, $5B, $5C, $5D, $5E, $5F, $60, $61, $62, $63 + db $64, $65, $66, $67, $68, $69, $6A + db $FF + +Func_26bf7: ; 0x26bf7: ; 0x26bf7 + ld a, [wd795] + cp $0 + ret z + ld de, wd79c + ld a, [de] + ld hl, hSCX + sub [hl] + ld b, a + inc de + inc de + ld a, [de] + ld hl, hSCY + sub [hl] + ld c, a + dec de + dec de + dec de + dec de + dec de + dec de + ld a, [de] + ld e, a + ld d, $0 + ld hl, OAMIds_26c23 + add hl, de + ld a, [hl] + cp $ff + call nz, LoadOAMData2 + ret + +OAMIds_26c23: + db $6B, $6C, $6D, $6E, $6F, $70, $71, $72, $73, $74, $75, $76, $77, $78, $79, $7A + db $7B, $7C, $7D, $7E, $7F, $80, $81, $82 + db $FF + +Func_26c3c: ; 0x26c3c + ld a, [wd64e] + and a + ret z + ld a, [wd652] + ld hl, hSCX + sub [hl] + ld b, a + xor a + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd64f] + cp $a + jr c, .asm_26c5b + ld de, $0000 + jr .asm_26c5e + +.asm_26c5b + ld de, $0001 +.asm_26c5e + ld hl, OAMIds_26c7d + add hl, de + ld a, [hl] + call LoadOAMData2 + ld hl, wd64f + inc [hl] + ld a, [hl] + cp $14 + ret c + ld [hl], $0 + ld hl, wd650 + inc [hl] + ld a, [hl] + cp $a + ret nz + xor a + ld [wd64e], a + ret + +OAMIds_26c7d: + db $83, $84 diff --git a/engine/main/draw_sprites/draw_sprites.asm b/engine/main/draw_sprites/draw_sprites.asm new file mode 100755 index 0000000..8e653bf --- /dev/null +++ b/engine/main/draw_sprites/draw_sprites.asm @@ -0,0 +1,35 @@ +DrawSpritesForStage: ; 0x84b7 +; Draw sprites (OAM data) for the current stage. + ld a, [wCurrentStage] + call CallInFollowingTable +CallTable_84bd: ; 0x84bd + ; STAGE_RED_FIELD_TOP + padded_dab DrawSpritesRedFieldTop + ; STAGE_RED_FIELD_BOTTOM + padded_dab DrawSpritesRedFieldBottom + padded_dab Func_18079 + padded_dab Func_18084 + ; STAGE_BLUE_FIELD_TOP + padded_dab DrawSpritesBlueFieldTop + ; STAGE_BLUE_FIELD_BOTTOM + padded_dab DrawSpritesBlueFieldBottom + ; STAGE_GENGAR_BONUS + padded_dab DrawSpritesGengarBonus + ; STAGE_GENGAR_BONUS + padded_dab DrawSpritesGengarBonus + ; STAGE_MEWTWO_BONUS + padded_dab DrawSpritesMewtwoBonus + ; STAGE_MEWTWO_BONUS + padded_dab DrawSpritesMewtwoBonus + ; STAGE_MEOWTH_BONUS + padded_dab DrawSpritesMeowthBonus + ; STAGE_MEOWTH_BONUS + padded_dab DrawSpritesMeowthBonus + ; STAGE_DIGLETT_BONUS + padded_dab DrawSpritesDiglettBonus + ; STAGE_DIGLETT_BONUS + padded_dab DrawSpritesDiglettBonus + ; STAGE_SEEL_BONUS + padded_dab DrawSpritesSeelBonus + ; STAGE_SEEL_BONUS + padded_dab DrawSpritesSeelBonus diff --git a/engine/main/draw_sprites/draw_unused_stage_sprites.asm b/engine/main/draw_sprites/draw_unused_stage_sprites.asm new file mode 100755 index 0000000..473a8c2 --- /dev/null +++ b/engine/main/draw_sprites/draw_unused_stage_sprites.asm @@ -0,0 +1,8 @@ +Func_18079: ; 0x18079 + callba DrawPinball + ret + +Func_18084: ; 0x18084 + callba DrawFlippers + callba DrawPinball + ret -- cgit v1.2.3