pokeyellow/engine/gamefreak.asm
luckytyphlosion 9d56570f82 Some bank1c documentation.
gamefreak.asm, hall_of_fame.asm, palettes.asm.
Also new hram/wram.asm labels.
2015-07-10 15:51:14 -04:00

242 lines
3.8 KiB
NASM
Executable File

LoadShootingStarGraphics: ; 70000 (1c:4000)
ld a, $f9
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
call CopyVideoData
ld de, AnimationTileset2 + $130 ; $481e ; star tile (bottom left quadrant)
ld hl, vChars1 + $210
ld bc, (BANK(AnimationTileset2) << 8) + $01
call CopyVideoData
ld de, FallingStar ; $4190
ld hl, vChars1 + $220
ld bc, (BANK(FallingStar) << 8) + $01
call CopyVideoData
ld hl, GameFreakLogoOAMData ; $4140
ld de, wOAMBuffer + $60
ld bc, $40
call CopyData
ld hl, GameFreakShootingStarOAMData ; $4180
ld de, wOAMBuffer
ld bc, $10
jp CopyData
AnimateShootingStar: ; 7004a (1c:404a)
call LoadShootingStarGraphics
ld a, (SFX_1f_67 - SFX_Headers_1f) / 3
call PlaySound
ld hl, wOAMBuffer
ld bc, $a004
.asm_70058
push hl
push bc
.asm_7005a
ld a, [hl]
add $4
ld [hli], a
ld a, [hl]
add $fc
ld [hli], a
inc hl
inc hl
dec c
jr nz, .asm_7005a
ld c, $1
call CheckForUserInterruption
pop bc
pop hl
ret c
ld a, [hl]
cp $50
jr nz, .asm_70076
jr .asm_70058
.asm_70076
cp b
jr nz, .asm_70058
ld hl, wOAMBuffer
ld c, $4
ld de, $4
.loop
ld [hl], $a0
add hl, de
dec c
jr nz, .loop
ld b, $3
.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_70089
ld de, wOAMBuffer
ld a, $18
.asm_700a1
push af
ld hl, OAMData_70101 ; $40ee
ld bc, $4
call CopyData
pop af
dec a
jr nz, .asm_700a1
xor a
ld [wWhichTrade], a ; wWhichTrade
ld hl, PointerTable_70105 ; 1c:4105
ld c, $6
.asm_700b8
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
push bc
push hl
ld hl, wOAMBuffer + $50
ld c, $4
.asm_700c3
ld a, [de]
cp $ff
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_700c3
ld a, [wWhichTrade] ; wWhichTrade
cp $18
jr z, .asm_700e8
add $6
ld [wWhichTrade], a ; wWhichTrade
.asm_700e8
call Func_70142
push af
ld hl, wOAMBuffer + $10
ld de, wOAMBuffer
ld bc, $50
call CopyData
pop af
pop hl
pop bc
ret c
dec c
jr nz, .asm_700b8
and a
ret
OAMData_70101: ; 70101 (1c:4101)
db $00,$00,$A2,$90
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_70111: ; 70111 (1c:4111)
db $68,$30
db $05,$68
db $40,$05
db $68,$58
db $04,$68
db $78,$07
OAMData_7011d: ; 7011d (1c:411d)
db $68,$38
db $05,$68
db $48,$06
db $68,$60
db $04,$68
db $70,$07
OAMData_70129: ; 70129 (1c:4129)
db $68,$34
db $05,$68
db $4c,$06
db $68,$54
db $06,$68
db $64,$07
OAMData_70135: ; 70135 (1c:4135)
db $68,$3c
db $05,$68
db $5c,$04
db $68,$6c
db $07,$68
db $74,$07
OAMData_70141: ; 70141 (1c:4141)
db $FF
Func_70142: ; 70142 (1c:4142)
ld b, $8
.asm_70144
ld hl, wOAMBuffer + $5c
ld a, [wWhichTrade] ; wWhichTrade
ld de, $fffc
ld c, a
.asm_7014e
inc [hl]
add hl, de
dec c
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_70144
ret
GameFreakLogoOAMData: ; 70166 (1c:4166)
db $48,$50,$8D,$00
db $48,$58,$8E,$00
db $50,$50,$8F,$00
db $50,$58,$90,$00
db $58,$50,$91,$00
db $58,$58,$92,$00
db $60,$30,$80,$00
db $60,$38,$81,$00
db $60,$40,$82,$00
db $60,$48,$83,$00
db $60,$50,$93,$00
db $60,$58,$84,$00
db $60,$60,$85,$00
db $60,$68,$83,$00
db $60,$70,$81,$00
db $60,$78,$86,$00
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: ; 701b6 (1c:41b6)
INCBIN "gfx/falling_star.2bpp"