diff options
Diffstat (limited to 'engine/gamefreak.asm')
-rwxr-xr-x | engine/gamefreak.asm | 139 |
1 files changed, 80 insertions, 59 deletions
diff --git a/engine/gamefreak.asm b/engine/gamefreak.asm index d0f1bbac..10765ced 100755 --- a/engine/gamefreak.asm +++ b/engine/gamefreak.asm @@ -3,6 +3,8 @@ LoadShootingStarGraphics: ; 70000 (1c:4000) ld [rOBP0], a ; $ff48 ld a, $a4 ld [rOBP1], a ; $ff49 + call Func_3040 + call Func_3061 ld de, AnimationTileset2 + $30 ; $471e ; star tile (top left quadrant) ld hl, vChars1 + $200 ld bc, (BANK(AnimationTileset2) << 8) + $01 @@ -24,16 +26,16 @@ LoadShootingStarGraphics: ; 70000 (1c:4000) ld bc, $10 jp CopyData -AnimateShootingStar: ; 70044 (1c:4044) +AnimateShootingStar: ; 7004a (1c:404a) call LoadShootingStarGraphics ld a, (SFX_1f_67 - SFX_Headers_1f) / 3 call PlaySound ld hl, wOAMBuffer ld bc, $a004 -.asm_70052 +.asm_70058 push hl push bc -.asm_70054 +.asm_7005a ld a, [hl] add $4 ld [hli], a @@ -43,7 +45,7 @@ AnimateShootingStar: ; 70044 (1c:4044) inc hl inc hl dec c - jr nz, .asm_70054 + jr nz, .asm_7005a ld c, $1 call CheckForUserInterruption pop bc @@ -51,44 +53,45 @@ AnimateShootingStar: ; 70044 (1c:4044) ret c ld a, [hl] cp $50 - jr nz, .asm_70070 - jr .asm_70052 -.asm_70070 + jr nz, .asm_70076 + jr .asm_70058 +.asm_70076 cp b - jr nz, .asm_70052 + jr nz, .asm_70058 ld hl, wOAMBuffer ld c, $4 ld de, $4 -.asm_7007b +.loop ld [hl], $a0 add hl, de dec c - jr nz, .asm_7007b + jr nz, .loop ld b, $3 -.asm_70083 +.asm_70089 ld hl, rOBP0 ; $ff48 rrc [hl] rrc [hl] + call Func_3040 ld c, $a call CheckForUserInterruption ret c dec b - jr nz, .asm_70083 + jr nz, .asm_70089 ld de, wOAMBuffer ld a, $18 -.asm_70098 +.asm_700a1 push af - ld hl, OAMData_700ee ; $40ee + ld hl, OAMData_70101 ; $40ee ld bc, $4 call CopyData pop af dec a - jr nz, .asm_70098 + jr nz, .asm_700a1 xor a ld [wWhichTrade], a ; wWhichTrade - ld hl, PointerTable_700f2 ; $40f2 + ld hl, PointerTable_70105 ; 1c:4105 ld c, $6 -.asm_700af +.asm_700b8 ld a, [hli] ld e, a ld a, [hli] @@ -97,26 +100,35 @@ AnimateShootingStar: ; 70044 (1c:4044) push hl ld hl, wOAMBuffer + $50 ld c, $4 -.asm_700ba +.asm_700c3 ld a, [de] cp $ff - jr z, .asm_700d5 + jr z, .asm_700e8 ld [hli], a inc de ld a, [de] ld [hli], a inc de inc hl + push bc + ld a, [de] + ld b,a + ld a, [hl] + and $f0 + or b + ld [hl], a + inc de + pop bc inc hl dec c - jr nz, .asm_700ba + jr nz, .asm_700c3 ld a, [wWhichTrade] ; wWhichTrade cp $18 - jr z, .asm_700d5 + jr z, .asm_700e8 add $6 ld [wWhichTrade], a ; wWhichTrade -.asm_700d5 - call Func_7011f +.asm_700e8 + call Func_70142 push af ld hl, wOAMBuffer + $10 ld de, wOAMBuffer @@ -127,72 +139,81 @@ AnimateShootingStar: ; 70044 (1c:4044) pop bc ret c dec c - jr nz, .asm_700af + jr nz, .asm_700b8 and a ret -OAMData_700ee: ; 700ee (1c:40ee) +OAMData_70101: ; 70101 (1c:4101) db $00,$00,$A2,$90 -PointerTable_700f2: ; 700f2 (1c:40f2) - dw OAMData_700fe - dw OAMData_70106 - dw OAMData_7010e - dw OAMData_70116 - dw OAMData_7011e - dw OAMData_7011e +PointerTable_70105: ; 70105 (1c:4105) + dw OAMData_70111 + dw OAMData_7011d + dw OAMData_70129 + dw OAMData_70135 + dw OAMData_70141 + dw OAMData_70141 ; each entry is only half of an OAM tile -OAMData_700fe: ; 700fe (1c:40fe) +OAMData_70111: ; 70111 (1c:4111) db $68,$30 - db $68,$40 + db $05,$68 + db $40,$05 db $68,$58 - db $68,$78 + db $04,$68 + db $78,$07 -OAMData_70106: ; 70106 (1c:4106) +OAMData_7011d: ; 7011d (1c:411d) db $68,$38 - db $68,$48 + db $05,$68 + db $48,$06 db $68,$60 - db $68,$70 + db $04,$68 + db $70,$07 -OAMData_7010e: ; 7010e (1c:410e) +OAMData_70129: ; 70129 (1c:4129) db $68,$34 - db $68,$4C + db $05,$68 + db $4c,$06 db $68,$54 - db $68,$64 + db $06,$68 + db $64,$07 -OAMData_70116: ; 70116 (1c:4116) - db $68,$3C - db $68,$5C - db $68,$6C - db $68,$74 +OAMData_70135: ; 70135 (1c:4135) + db $68,$3c + db $05,$68 + db $5c,$04 + db $68,$6c + db $07,$68 + db $74,$07 -OAMData_7011e: ; 7011e (1c:411e) +OAMData_70141: ; 70141 (1c:4141) db $FF -Func_7011f: ; 7011f (1c:411f) +Func_70142: ; 70142 (1c:4142) ld b, $8 -.asm_70121 +.asm_70144 ld hl, wOAMBuffer + $5c ld a, [wWhichTrade] ; wWhichTrade ld de, $fffc ld c, a -.asm_7012b +.asm_7014e inc [hl] add hl, de dec c - jr nz, .asm_7012b + jr nz, .asm_7014e ld a, [rOBP1] ; $ff49 xor $a0 ld [rOBP1], a ; $ff49 + call Func_3061 ld c, $3 call CheckForUserInterruption ret c dec b - jr nz, .asm_70121 + jr nz, .asm_70144 ret -GameFreakLogoOAMData: ; 70140 (1c:4140) +GameFreakLogoOAMData: ; 70166 (1c:4166) db $48,$50,$8D,$00 db $48,$58,$8E,$00 db $50,$50,$8F,$00 @@ -210,11 +231,11 @@ GameFreakLogoOAMData: ; 70140 (1c:4140) db $60,$70,$81,$00 db $60,$78,$86,$00 -GameFreakShootingStarOAMData: ; 70180 (1c:4180) - db $00,$A0,$A0,$10 - db $00,$A8,$A0,$30 - db $08,$A0,$A1,$10 - db $08,$A8,$A1,$30 +GameFreakShootingStarOAMData: ; 701a6 (1c:41a6) + db $00,$A0,$A0,$14 + db $00,$A8,$A0,$34 + db $08,$A0,$A1,$14 + db $08,$A8,$A1,$34 -FallingStar: ; 70190 (1c:4190) +FallingStar: ; 701b6 (1c:41b6) INCBIN "gfx/falling_star.2bpp" |