mirror of
https://github.com/pret/pokegold.git
synced 2026-05-19 10:20:46 -05:00
556 lines
9.5 KiB
NASM
Executable File
556 lines
9.5 KiB
NASM
Executable File
Special:: ; c22b
|
|
ld hl, SpecialsPointers ; $4239
|
|
add hl, de
|
|
add hl, de
|
|
add hl, de
|
|
ld b, [hl]
|
|
inc hl
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, b
|
|
rst FarCall
|
|
ret
|
|
|
|
SpecialsPointers:
|
|
add_special WarpToSpawnPoint
|
|
add_special Function29b22
|
|
add_special Function29b4b
|
|
add_special Function29bcc
|
|
add_special Function29c71
|
|
add_special Function29c8d
|
|
add_special Function29d01
|
|
add_special Function29cf9
|
|
add_special Function29ad9
|
|
add_special Function29b2b
|
|
add_special Function29b34
|
|
add_special Function29a47
|
|
add_special Function29ac7
|
|
add_special Function29ccf
|
|
add_special Function29ce4
|
|
add_special Function29cba
|
|
add_special Function29d4e
|
|
add_special Special_CheckMysteryGift
|
|
add_special Special_GetMysteryGiftItem
|
|
add_special Function2a4e7
|
|
add_special BugContestJudging
|
|
add_special Functionc7bbf
|
|
add_special Function13dce
|
|
add_special Function13ded
|
|
add_special Function1399d
|
|
add_special Functionfbc3c
|
|
add_special Functionfbdd6
|
|
add_special HealParty
|
|
add_special Function15871
|
|
add_special Special_PlayerPC
|
|
add_special Function16935
|
|
add_special Function16989
|
|
add_special Function16b8c
|
|
add_special Function2c352
|
|
add_special Function1646d
|
|
add_special Function8ce7c
|
|
add_special Special_NameRival
|
|
add_special Function908dc
|
|
add_special Special_TownMap
|
|
add_special Special_UnownPrinter
|
|
add_special MapRadio
|
|
add_special Special_UnownPuzzle
|
|
add_special Special_SlotMachine
|
|
add_special Special_CardFlip
|
|
add_special Special_DummyNonfunctionalGameCornerGame
|
|
add_special Special_ClearBGPalettesBufferScreen
|
|
add_special Function8c3ab
|
|
add_special Function8c3c4
|
|
add_special FadeInPalettes
|
|
add_special Function8c3b9
|
|
add_special Functiond42, $02
|
|
add_special ClearBGPalettes
|
|
add_special UpdateTimePals
|
|
add_special ClearTileMap
|
|
add_special UpdateSprites
|
|
add_special ReplacePlayerSprite
|
|
add_special Special_GameCornerPrizeMonCheckDex
|
|
add_special SpecialSeenMon
|
|
add_special WaitSFX, $03
|
|
add_special PlayMapMusic
|
|
add_special RestartMapMusic
|
|
add_special Function126fd
|
|
add_special Special_SurfStartStep
|
|
add_special Special_FindGreaterThanThatLevel
|
|
add_special Special_FindAtLeastThatHappy
|
|
add_special Special_FindThatSpecies
|
|
add_special Special_FindThatSpeciesYourTrainerID
|
|
add_special Special_CheckUnusedTwoDayTimer
|
|
add_special Function177a5
|
|
add_special Function177c4
|
|
add_special Function13d64
|
|
add_special Functionc556
|
|
add_special Function271be
|
|
add_special Function27216
|
|
add_special Function73e1
|
|
add_special Function7452
|
|
add_special Function74cb
|
|
add_special Functionc588
|
|
add_special Function24a4d
|
|
add_special Function24a76
|
|
add_special Function24a10
|
|
add_special Functionc7a5a
|
|
add_special Functionc5a3
|
|
add_special Functionc591
|
|
add_special Functionc7bad
|
|
add_special Functionc5bb
|
|
add_special SpecialNameRater
|
|
add_special Special_DisplayLinkRecord
|
|
add_special GetFirstPokemonHappiness
|
|
add_special CheckFirstMonIsEgg
|
|
add_special Function2a9f7
|
|
add_special Function2aa6b
|
|
add_special Function2aab3
|
|
add_special Function14226
|
|
add_special Functionfb94b
|
|
add_special Functionc5d6
|
|
add_special Function74e7
|
|
add_special Function74ec
|
|
add_special Function74f1
|
|
add_special Functionc60b
|
|
add_special Function267ca
|
|
add_special Functionc611
|
|
add_special Functionc652
|
|
add_special Function16ff7
|
|
add_special Function2a7d7
|
|
add_special Functionc628
|
|
add_special Functionc638
|
|
add_special Functionc645
|
|
add_special Function90a1b
|
|
add_special Function90a54
|
|
add_special Function90a8d
|
|
add_special SpecialNone
|
|
|
|
SpecialNone: ; c389
|
|
ret
|
|
|
|
Special_GameCornerPrizeMonCheckDex: ; c38a
|
|
ld a, [wScriptVar]
|
|
dec a
|
|
call CheckCaughtMon
|
|
ret nz
|
|
ld a, [wScriptVar]
|
|
dec a
|
|
call SetSeenAndCaughtMon
|
|
call FadeToMenu
|
|
ld a, [wScriptVar]
|
|
ld [wd151], a
|
|
callba NewPokedexEntry
|
|
call ExitAllMenus
|
|
ret
|
|
|
|
SpecialSeenMon: ; c3ac
|
|
ld a, [wScriptVar]
|
|
dec a
|
|
call SetSeenMon
|
|
ret
|
|
|
|
Special_FindGreaterThanThatLevel: ; c3b4
|
|
ld a, [wScriptVar]
|
|
ld b, a
|
|
callba PartySearch_MaximumLevel ; same bank
|
|
jr z, asm_c3f2
|
|
jr asm_c3ec
|
|
|
|
Special_FindAtLeastThatHappy: ; c3c2
|
|
ld a, [wScriptVar]
|
|
ld b, a
|
|
callba PartySearch_MinimumHappiness ; same bank
|
|
jr z, asm_c3f2
|
|
jr asm_c3ec
|
|
|
|
Special_FindThatSpecies: ; c3d0
|
|
ld a, [wScriptVar]
|
|
ld b, a
|
|
callba PartySearch_SameSpecies ; same bank
|
|
jr z, asm_c3f2
|
|
jr asm_c3ec
|
|
|
|
Special_FindThatSpeciesYourTrainerID: ; c3de
|
|
ld a, [wScriptVar]
|
|
ld b, a
|
|
callba PartySearch_SameSpeciesAndYourID ; same bank
|
|
jr z, asm_c3f2
|
|
jr asm_c3ec
|
|
|
|
asm_c3ec
|
|
ld a, $1
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
asm_c3f2
|
|
xor a
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
Special_NameRival: ; c3f7
|
|
ld b, $2
|
|
ld de, wRivalsName
|
|
callba NamingScreen_
|
|
ld hl, wRivalsName
|
|
ld de, .DefaultName
|
|
call InitName
|
|
ret
|
|
|
|
.DefaultName:
|
|
IF DEF(GOLD)
|
|
db "SILVER@"
|
|
ENDC
|
|
|
|
IF DEF(SILVER)
|
|
db "GOLD@"
|
|
ENDC
|
|
|
|
SpecialNameRater: ; c413 (3:4413)
|
|
callba Functionfb7f7
|
|
ret
|
|
|
|
Special_TownMap: ; c41a (3:441a)
|
|
call FadeToMenu
|
|
callba Function9188a
|
|
call ExitAllMenus
|
|
ret
|
|
|
|
Special_UnownPrinter: ; c427 (3:4427)
|
|
call FadeToMenu
|
|
callba Function16e3a
|
|
call ExitAllMenus
|
|
ret
|
|
|
|
Special_DisplayLinkRecord: ; c434 (3:4434)
|
|
call FadeToMenu
|
|
callba Function3f55d
|
|
call ExitAllMenus
|
|
ret
|
|
|
|
Special_PlayerPC: ; c441 (3:4441)
|
|
xor a
|
|
ld [wScriptVar], a
|
|
callba Function159b0
|
|
ld a, c
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
Special_CheckMysteryGift: ; c450 (3:4450)
|
|
ld a, $0
|
|
call OpenSRAM
|
|
ld a, [$abe2]
|
|
and a
|
|
jr z, .asm_c45c
|
|
inc a
|
|
.asm_c45c
|
|
ld [wScriptVar], a
|
|
call CloseSRAM
|
|
ret
|
|
|
|
Special_GetMysteryGiftItem: ; c463 (3:4463)
|
|
ld a, $0
|
|
call OpenSRAM
|
|
ld a, [$abe2]
|
|
ld [wd002], a
|
|
ld a, $1
|
|
ld [wd009], a
|
|
ld hl, wNumItems
|
|
call ReceiveItem
|
|
jr nc, .asm_c497
|
|
xor a
|
|
ld [$abe2], a
|
|
call CloseSRAM
|
|
ld a, [wd002]
|
|
ld [wd151], a
|
|
call GetItemName
|
|
ld hl, ReceivedMysteryGiftText ; $449f
|
|
call PrintText
|
|
ld a, $1
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
.asm_c497
|
|
call CloseSRAM
|
|
xor a
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
ReceivedMysteryGiftText:
|
|
text_jump ReceivedMysteryGiftText_
|
|
db "@"
|
|
|
|
BugContestJudging: ; c4a4 (3:44a4)
|
|
callba Function13a5f
|
|
ld a, b
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
MapRadio: ; c4af (3:44af)
|
|
ld a, [wScriptVar]
|
|
ld e, a
|
|
callba Function919c1
|
|
ret
|
|
|
|
Special_UnownPuzzle: ; c4ba (3:44ba)
|
|
call FadeToMenu
|
|
callba Functione199d
|
|
ld a, [wFieldMoveSucceeded]
|
|
ld [wScriptVar], a
|
|
call ExitAllMenus
|
|
ret
|
|
|
|
Special_SlotMachine: ; c4cd (3:44cd)
|
|
call Functionc508
|
|
ret c
|
|
ld a, BANK(Function92c36)
|
|
ld hl, Function92c36
|
|
call Functionc4f4
|
|
ret
|
|
|
|
Special_CardFlip: ; c4da (3:44da)
|
|
call Functionc508
|
|
ret c
|
|
ld a, BANK(Functione0909)
|
|
ld hl, Functione0909
|
|
call Functionc4f4
|
|
ret
|
|
|
|
Special_DummyNonfunctionalGameCornerGame: ; c4e7 (3:44e7)
|
|
call Functionc508
|
|
ret c
|
|
ld a, BANK(Functione2668)
|
|
ld hl, Functione2668
|
|
call Functionc4f4
|
|
ret
|
|
|
|
Functionc4f4: ; c4f4 (3:44f4)
|
|
call Function3425
|
|
call FadeToMenu
|
|
ld hl, wcfd8
|
|
ld a, [hli]
|
|
push af
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
pop af
|
|
rst FarCall
|
|
call ExitAllMenus
|
|
ret
|
|
|
|
Functionc508: ; c508 (3:4508)
|
|
ld hl, wCoins
|
|
ld a, [hli]
|
|
or [hl]
|
|
jr z, .asm_c51e
|
|
ld a, COIN_CASE
|
|
ld [wd002], a
|
|
ld hl, wNumItems
|
|
call CheckItem
|
|
jr nc, .asm_c523
|
|
and a
|
|
ret
|
|
|
|
.asm_c51e
|
|
ld hl, .NoCoinsText
|
|
jr .asm_c526
|
|
|
|
.asm_c523
|
|
ld hl, .NoCoinCaseText
|
|
.asm_c526
|
|
call PrintText
|
|
scf
|
|
ret
|
|
|
|
.NoCoinsText:
|
|
text_jump NoCoinsText_
|
|
db "@"
|
|
|
|
.NoCoinCaseText:
|
|
text_jump NoCoinCaseText_
|
|
db "@"
|
|
|
|
Special_ClearBGPalettesBufferScreen: ; c535 (3:4535)
|
|
call ClearBGPalettes
|
|
call BufferScreen
|
|
ret
|
|
|
|
Functionc53c: ; c53c (3:453c)
|
|
jr c, .asm_c543
|
|
xor a
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
.asm_c543
|
|
ld a, $1
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
Special_CheckUnusedTwoDayTimer: ; c549 (3:4549)
|
|
callba Function118f8
|
|
ld a, [wUnusedTwoDayTimer]
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
Functionc556: ; c556 (3:4556)
|
|
ld a, [wScriptVar]
|
|
ld [wdd19], a
|
|
jr .asm_c566
|
|
|
|
.asm_c55e
|
|
ld a, d
|
|
ld [wdd17], a
|
|
ld a, e
|
|
ld [wdd18], a
|
|
.asm_c566
|
|
SetFlag ENGINE_SPECIAL_WILDDATA
|
|
ret
|
|
|
|
Functionc56c:
|
|
CheckFlagHL ENGINE_SPECIAL_WILDDATA
|
|
jr z, .asm_c578
|
|
xor a
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
.asm_c578
|
|
ld a, $1
|
|
ld [wScriptVar], a
|
|
xor a
|
|
ld [wdd19], a
|
|
ld [wdd17], a
|
|
ld [wdd18], a
|
|
ret
|
|
|
|
Functionc588: ; c588 (3:4588)
|
|
callba Functionc7a40
|
|
jp Functionc53c
|
|
|
|
Functionc591: ; c591 (3:4591)
|
|
callba Function11917
|
|
ClearFlag ENGINE_LUCKY_NUMBER_SHOW
|
|
callba LoadOrRegenerateLuckyIDNumber
|
|
ret
|
|
|
|
Functionc5a3: ; c5a3 (3:45a3)
|
|
callba Function1192e
|
|
jp Functionc53c
|
|
|
|
CountUnown: ; c5ac (3:45ac)
|
|
ld hl, wUnownDex
|
|
ld b, $0
|
|
.asm_c5b1
|
|
ld a, [hli]
|
|
and a
|
|
ret z
|
|
inc b
|
|
ld a, b
|
|
cp $1a
|
|
jr c, .asm_c5b1
|
|
ret
|
|
|
|
Functionc5bb: ; c5bb (3:45bb)
|
|
callba Function24b8d
|
|
ld a, c
|
|
ld [wScriptVar], a
|
|
and a
|
|
ret z
|
|
ld [wd002], a
|
|
ld a, $1
|
|
ld [wd009], a
|
|
ld hl, wNumItems
|
|
call TossItem
|
|
ret
|
|
|
|
Functionc5d6: ; c5d6 (3:45d6)
|
|
ld a, [wChannelsEnd]
|
|
cp $40
|
|
jr nz, .asm_c5fb
|
|
ld a, [wXCoord]
|
|
ld b, a
|
|
ld a, [wYCoord]
|
|
ld c, a
|
|
ld hl, .ProximityCoords
|
|
.asm_c5e8
|
|
ld a, [hli]
|
|
cp $ff
|
|
jr z, .asm_c5fb
|
|
cp b
|
|
jr nz, .asm_c5f8
|
|
ld a, [hli]
|
|
cp c
|
|
jr nz, .asm_c5e8
|
|
ld a, $1
|
|
jr .asm_c5fc
|
|
|
|
.asm_c5f8
|
|
inc hl
|
|
jr .asm_c5e8
|
|
|
|
.asm_c5fb
|
|
xor a
|
|
.asm_c5fc
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
.ProximityCoords:
|
|
; x, y
|
|
db 33, 8 ; left
|
|
db 34, 10 ; below
|
|
db 35, 10 ; below
|
|
db 36, 8 ; right
|
|
db 36, 9 ; right
|
|
db -1
|
|
|
|
Functionc60b: ; c60b (3:460b)
|
|
ld a, [wCurPartySpecies]
|
|
jp PlayCry
|
|
|
|
Functionc611: ; c611 (3:4611)
|
|
ld a, [hCGB]
|
|
and a
|
|
jr nz, .asm_c622
|
|
ld a, [hSGB]
|
|
and a
|
|
jr nz, .asm_c61e
|
|
xor a
|
|
jr .asm_c624
|
|
|
|
.asm_c61e
|
|
ld a, $1
|
|
jr .asm_c624
|
|
|
|
.asm_c622
|
|
ld a, $2
|
|
.asm_c624
|
|
ld [wScriptVar], a
|
|
ret
|
|
|
|
Functionc628: ; c628 (3:4628)
|
|
ld a, $0
|
|
ld [wMusicFadeID], a
|
|
ld a, $0
|
|
ld [wMusicFadeIDHi], a
|
|
ld a, $2
|
|
ld [wMusicFade], a
|
|
ret
|
|
|
|
Functionc638: ; c638 (3:4638)
|
|
call FadeToMenu
|
|
callba Functione0002
|
|
call ExitAllMenus
|
|
ret
|
|
|
|
Functionc645: ; c645 (3:4645)
|
|
call FadeToMenu
|
|
callba Function84684
|
|
call ExitAllMenus
|
|
ret
|
|
|
|
Functionc652: ; c652 (3:4652)
|
|
ld a, $0
|
|
call OpenSRAM
|
|
ld a, [$abfd]
|
|
ld [wScriptVar], a
|
|
jp CloseSRAM
|