summaryrefslogtreecommitdiff
path: root/engine/gamefreak.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/gamefreak.asm')
-rwxr-xr-xengine/gamefreak.asm139
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"