About time I got to these functions

This commit is contained in:
PikalaxALT
2015-10-24 10:34:19 -04:00
parent 97cc513f54
commit 119d6b4119
409 changed files with 5218 additions and 4233 deletions

View File

@@ -785,16 +785,16 @@ Function973a: ; 973a
Function974b: ; 974b
and a
jp nz, Function97f9
ld a, [wd45b]
ld a, [wPlayerSpriteSetupFlags]
bit 2, a
jr nz, .asm_9760
jr nz, .male
ld a, [PlayerGender]
and a
jr z, .asm_9760
jr z, .male
ld hl, KrisPalette
ret
.asm_9760
.male
ld hl, PlayerPalette
ret
; 9764

View File

@@ -1,198 +1,200 @@
; All locations are in WRAM bank 1.
engine_flag: MACRO
dwb \1, 1 << \2
ENDM
; location, bit
; pokegear
dwb wPokegearFlags, %00000010 ; radio card ; $0
dwb wPokegearFlags, %00000001 ; map card
dwb wPokegearFlags, %00000100 ; phone card
dwb wPokegearFlags, %00001000 ; expn card
dwb wPokegearFlags, %10000000 ; on/off
engine_flag wPokegearFlags, 1 ; radio card ; $0
engine_flag wPokegearFlags, 0 ; map card
engine_flag wPokegearFlags, 2 ; phone card
engine_flag wPokegearFlags, 3 ; expn card
engine_flag wPokegearFlags, 7 ; on/off
; wDaycareMan, %10000000 ; daycare 1 on
dwb wDaycareMan, %01000000 ; monster 1 and 2 are compatible
; wDaycareMan, %00100000 ; egg is ready
dwb wDaycareMan, %00000001 ; monster 1 in daycare
; wDaycareMan, 7 ; daycare 1 on
engine_flag wDaycareMan, 6 ; monster 1 and 2 are compatible
; wDaycareMan, 5 ; egg is ready
engine_flag wDaycareMan, 0 ; monster 1 in daycare
; wDaycareLady, %10000000 = daycare 2 on
dwb wDaycareLady, %00000001 ; monster 2 in daycare
; wDaycareLady, 7 = daycare 2 on
engine_flag wDaycareLady, 0 ; monster 2 in daycare
dwb wMomSavingMoney, %00000001 ; mom saving money ; $8
dwb wMomSavingMoney, %10000000 ; dst
engine_flag wMomSavingMoney, 0 ; mom saving money ; $8
engine_flag wMomSavingMoney, 7 ; dst
dwb wdc39, %00000001
engine_flag wdc39, 0
dwb StatusFlags, %00000001 ; pokedex
dwb StatusFlags, %00000010 ; unown dex
dwb StatusFlags, %00001000 ; pokerus
dwb StatusFlags, %00010000 ; rocket signal on ch20
dwb StatusFlags, %01000000 ; credits skip
dwb StatusFlags, %10000000 ; bug contest on ; $10
dwb StatusFlags2, %00000100 ; bug contest timer
dwb StatusFlags2, %00000010
dwb StatusFlags2, %00000001 ; rockets in radio tower
dwb StatusFlags2, %00010000 ; bike shop call enabled (1024 bike steps reqd)
dwb StatusFlags2, %00100000 ; give pokerus; berry -> berry juice when trading?
dwb StatusFlags2, %01000000
dwb StatusFlags2, %10000000 ; rockets in mahogany
engine_flag StatusFlags, 0 ; pokedex
engine_flag StatusFlags, 1 ; unown dex
engine_flag StatusFlags, 3 ; pokerus
engine_flag StatusFlags, 4 ; rocket signal on ch20
engine_flag StatusFlags, 6 ; credits skip
engine_flag StatusFlags, 7 ; bug contest on ; $10
engine_flag StatusFlags2, 2 ; bug contest timer
engine_flag StatusFlags2, 1
engine_flag StatusFlags2, 0 ; rockets in radio tower
engine_flag StatusFlags2, 4 ; bike shop call enabled (1024 bike steps reqd)
engine_flag StatusFlags2, 5 ; give pokerus
engine_flag StatusFlags2, 6 ; berry -> berry juice when trading?
engine_flag StatusFlags2, 7 ; rockets in mahogany
dwb BikeFlags, %00000001 ; strength active ; $18
dwb BikeFlags, %00000010 ; always on bike (cant surf)
dwb BikeFlags, %00000100 ; downhill (cycling road)
engine_flag BikeFlags, 0 ; strength active ; $18
engine_flag BikeFlags, 1 ; always on bike (cant surf)
engine_flag BikeFlags, 2 ; downhill (cycling road)
dwb JohtoBadges, %00000001 ; zephyrbadge
dwb JohtoBadges, %00000010 ; hivebadge
dwb JohtoBadges, %00000100 ; plainbadge
dwb JohtoBadges, %00001000 ; fogbadge
dwb JohtoBadges, %00010000 ; mineralbadge
dwb JohtoBadges, %00100000 ; stormbadge ; $20
dwb JohtoBadges, %01000000 ; glacierbadge
dwb JohtoBadges, %10000000 ; risingbadge
engine_flag JohtoBadges, 0 ; zephyrbadge
engine_flag JohtoBadges, 1 ; hivebadge
engine_flag JohtoBadges, 2 ; plainbadge
engine_flag JohtoBadges, 3 ; fogbadge
engine_flag JohtoBadges, 4 ; mineralbadge
engine_flag JohtoBadges, 5 ; stormbadge ; $20
engine_flag JohtoBadges, 6 ; glacierbadge
engine_flag JohtoBadges, 7 ; risingbadge
dwb KantoBadges, %00000001 ; boulderbadge
dwb KantoBadges, %00000010 ; cascadebadge
dwb KantoBadges, %00000100 ; thunderbadge
dwb KantoBadges, %00001000 ; rainbowbadge
dwb KantoBadges, %00010000 ; soulbadge
dwb KantoBadges, %00100000 ; marshbadge ; $28
dwb KantoBadges, %01000000 ; volcanobadge
dwb KantoBadges, %10000000 ; earthbadge
engine_flag KantoBadges, 0 ; boulderbadge
engine_flag KantoBadges, 1 ; cascadebadge
engine_flag KantoBadges, 2 ; thunderbadge
engine_flag KantoBadges, 3 ; rainbowbadge
engine_flag KantoBadges, 4 ; soulbadge
engine_flag KantoBadges, 5 ; marshbadge ; $28
engine_flag KantoBadges, 6 ; volcanobadge
engine_flag KantoBadges, 7 ; earthbadge
; unown sets
dwb UnlockedUnowns, %00000001 ; 1
dwb UnlockedUnowns, %00000010 ; 2
dwb UnlockedUnowns, %00000100 ; 3
dwb UnlockedUnowns, %00001000 ; 4
dwb UnlockedUnowns, %00010000 ; 5
dwb UnlockedUnowns, %00100000 ; 6 ; $30
dwb UnlockedUnowns, %01000000 ; 7
dwb UnlockedUnowns, %10000000 ; 8
engine_flag UnlockedUnowns, 0 ; 1
engine_flag UnlockedUnowns, 1 ; 2
engine_flag UnlockedUnowns, 2 ; 3
engine_flag UnlockedUnowns, 3 ; 4
engine_flag UnlockedUnowns, 4 ; 5
engine_flag UnlockedUnowns, 5 ; 6 ; $30
engine_flag UnlockedUnowns, 6 ; 7
engine_flag UnlockedUnowns, 7 ; 8
; fly
dwb VisitedSpawns, %00000001 ; your house
dwb VisitedSpawns, %00000010 ; viridian pokecenter
dwb VisitedSpawns, %00000100 ; pallet
dwb VisitedSpawns, %00001000 ; viridian
dwb VisitedSpawns, %00010000 ; pewter
dwb VisitedSpawns, %00100000 ; cerulean ; $38
dwb VisitedSpawns, %01000000 ; rock tunnel
dwb VisitedSpawns, %10000000 ; vermilion
dwb VisitedSpawns + 1, %00000001 ; lavender
dwb VisitedSpawns + 1, %00000010 ; saffron
dwb VisitedSpawns + 1, %00000100 ; celadon
dwb VisitedSpawns + 1, %00001000 ; fuchsia
dwb VisitedSpawns + 1, %00010000 ; cinnabar
dwb VisitedSpawns + 1, %00100000 ; indigo plateau ; $40
dwb VisitedSpawns + 1, %01000000 ; new bark
dwb VisitedSpawns + 1, %10000000 ; cherrygrove
dwb VisitedSpawns + 2, %00000001 ; violet
dwb VisitedSpawns + 2, %00000100 ; azalea
dwb VisitedSpawns + 2, %00001000 ; cianwood
dwb VisitedSpawns + 2, %00010000 ; goldenrod
dwb VisitedSpawns + 2, %00100000 ; olivine
dwb VisitedSpawns + 2, %01000000 ; ecruteak ; $48
dwb VisitedSpawns + 2, %10000000 ; mahogany
dwb VisitedSpawns + 3, %00000001 ; lake of rage
dwb VisitedSpawns + 3, %00000010 ; blackthorn
dwb VisitedSpawns + 3, %00000100 ; silver cave
dwb VisitedSpawns + 3, %00010000 ; unused
engine_flag VisitedSpawns, 0 ; your house
engine_flag VisitedSpawns, 1 ; viridian pokecenter
engine_flag VisitedSpawns, 2 ; pallet
engine_flag VisitedSpawns, 3 ; viridian
engine_flag VisitedSpawns, 4 ; pewter
engine_flag VisitedSpawns, 5 ; cerulean ; $38
engine_flag VisitedSpawns, 6 ; rock tunnel
engine_flag VisitedSpawns, 7 ; vermilion
engine_flag VisitedSpawns + 1, 0 ; lavender
engine_flag VisitedSpawns + 1, 1 ; saffron
engine_flag VisitedSpawns + 1, 2 ; celadon
engine_flag VisitedSpawns + 1, 3 ; fuchsia
engine_flag VisitedSpawns + 1, 4 ; cinnabar
engine_flag VisitedSpawns + 1, 5 ; indigo plateau ; $40
engine_flag VisitedSpawns + 1, 6 ; new bark
engine_flag VisitedSpawns + 1, 7 ; cherrygrove
engine_flag VisitedSpawns + 2, 0 ; violet
engine_flag VisitedSpawns + 2, 2 ; azalea
engine_flag VisitedSpawns + 2, 3 ; cianwood
engine_flag VisitedSpawns + 2, 4 ; goldenrod
engine_flag VisitedSpawns + 2, 5 ; olivine
engine_flag VisitedSpawns + 2, 6 ; ecruteak ; $48
engine_flag VisitedSpawns + 2, 7 ; mahogany
engine_flag VisitedSpawns + 3, 0 ; lake of rage
engine_flag VisitedSpawns + 3, 1 ; blackthorn
engine_flag VisitedSpawns + 3, 2 ; silver cave
engine_flag VisitedSpawns + 3, 4 ; unused
dwb wLuckyNumberShowFlag, %00000001 ; lucky number show
dwb StatusFlags2, %00001000
engine_flag wLuckyNumberShowFlag, 0 ; lucky number show
engine_flag StatusFlags2, 3 ; ????
dwb DailyFlags, %00000001 ; kurt making balls ; $50
dwb DailyFlags, %00000010
dwb DailyFlags, %00000100 ; special wilddata?
dwb DailyFlags, %00001000 ; time capsule (24h wait)
dwb DailyFlags, %00010000 ; all fruit trees
dwb DailyFlags, %00100000 ; shuckle given
dwb DailyFlags, %01000000 ; goldenrod underground merchant closed
dwb DailyFlags, %10000000 ; fought in trainer hall today
engine_flag DailyFlags, 0 ; kurt making balls ; $50
engine_flag DailyFlags, 1 ; ????
engine_flag DailyFlags, 2 ; special wilddata?
engine_flag DailyFlags, 3 ; time capsule (24h wait)
engine_flag DailyFlags, 4 ; all fruit trees
engine_flag DailyFlags, 5 ; shuckle given
engine_flag DailyFlags, 6 ; goldenrod underground merchant closed
engine_flag DailyFlags, 7 ; fought in trainer hall today
dwb WeeklyFlags, %00000001 ; mt moon square clefairy ; $58
dwb WeeklyFlags, %00000010 ; union cave lapras
dwb WeeklyFlags, %00000100 ; goldenrod underground haircut used
dwb WeeklyFlags, %00001000 ; goldenrod mall happiness event floor05 person07
dwb WeeklyFlags, %00010000 ; tea in blues house
dwb WeeklyFlags, %00100000 ; indigo plateau rival fight
dwb WeeklyFlags, %01000000 ; move tutor
dwb WeeklyFlags, %10000000 ; buenas password
engine_flag WeeklyFlags, 0 ; mt moon square clefairy ; $58
engine_flag WeeklyFlags, 1 ; union cave lapras
engine_flag WeeklyFlags, 2 ; goldenrod underground haircut used
engine_flag WeeklyFlags, 3 ; goldenrod mall happiness event floor05 person07
engine_flag WeeklyFlags, 4 ; tea in blues house
engine_flag WeeklyFlags, 5 ; indigo plateau rival fight
engine_flag WeeklyFlags, 6 ; move tutor
engine_flag WeeklyFlags, 7 ; buenas password
dwb SwarmFlags, %00000001 ; $60
dwb SwarmFlags, %00000010 ; goldenrod dept store sale is on
engine_flag SwarmFlags, 0 ; $60
engine_flag SwarmFlags, 1 ; goldenrod dept store sale is on
dwb GameTimerPause, %10000000 ; $62
engine_flag GameTimerPause, 7 ; $62
dwb PlayerGender, %00000001 ; player is female
engine_flag PlayerGender, 0 ; player is female
dwb wdbf3, %00000100 ; have gs ball after kurt examined it
engine_flag wCelebiEvent, 2 ; have gs ball after kurt examined it
; rematches
dwb wDailyRematchFlags, %00000001 ; jack
dwb wDailyRematchFlags, %00000010 ; huey
dwb wDailyRematchFlags, %00000100 ; gaven
dwb wDailyRematchFlags, %00001000 ; beth ; $68
dwb wDailyRematchFlags, %00010000 ; jose
dwb wDailyRematchFlags, %00100000 ; reena
dwb wDailyRematchFlags, %01000000 ; joey
dwb wDailyRematchFlags, %10000000 ; wade
dwb wDailyRematchFlags + 1, %00000001 ; ralph
dwb wDailyRematchFlags + 1, %00000010 ; liz
dwb wDailyRematchFlags + 1, %00000100 ; anthony
dwb wDailyRematchFlags + 1, %00001000 ; todd ; $70
dwb wDailyRematchFlags + 1, %00010000 ; gina
dwb wDailyRematchFlags + 1, %00100000 ; arnie
dwb wDailyRematchFlags + 1, %01000000 ; alan
dwb wDailyRematchFlags + 1, %10000000 ; dana
dwb wDailyRematchFlags + 2, %00000001 ; chad
dwb wDailyRematchFlags + 2, %00000010 ; tully
dwb wDailyRematchFlags + 2, %00000100 ; brent
dwb wDailyRematchFlags + 2, %00001000 ; tiffany ; $78
dwb wDailyRematchFlags + 2, %00010000 ; vance
dwb wDailyRematchFlags + 2, %00100000 ; wilton
dwb wDailyRematchFlags + 2, %01000000 ; parry
dwb wDailyRematchFlags + 2, %10000000 ; erin
engine_flag wDailyRematchFlags, 0 ; jack
engine_flag wDailyRematchFlags, 1 ; huey
engine_flag wDailyRematchFlags, 2 ; gaven
engine_flag wDailyRematchFlags, 3 ; beth ; $68
engine_flag wDailyRematchFlags, 4 ; jose
engine_flag wDailyRematchFlags, 5 ; reena
engine_flag wDailyRematchFlags, 6 ; joey
engine_flag wDailyRematchFlags, 7 ; wade
engine_flag wDailyRematchFlags + 1, 0 ; ralph
engine_flag wDailyRematchFlags + 1, 1 ; liz
engine_flag wDailyRematchFlags + 1, 2 ; anthony
engine_flag wDailyRematchFlags + 1, 3 ; todd ; $70
engine_flag wDailyRematchFlags + 1, 4 ; gina
engine_flag wDailyRematchFlags + 1, 5 ; arnie
engine_flag wDailyRematchFlags + 1, 6 ; alan
engine_flag wDailyRematchFlags + 1, 7 ; dana
engine_flag wDailyRematchFlags + 2, 0 ; chad
engine_flag wDailyRematchFlags + 2, 1 ; tully
engine_flag wDailyRematchFlags + 2, 2 ; brent
engine_flag wDailyRematchFlags + 2, 3 ; tiffany ; $78
engine_flag wDailyRematchFlags + 2, 4 ; vance
engine_flag wDailyRematchFlags + 2, 5 ; wilton
engine_flag wDailyRematchFlags + 2, 6 ; parry
engine_flag wDailyRematchFlags + 2, 7 ; erin
dwb wDailyPhoneItemFlags, %00000001 ; beverly has nugget
dwb wDailyPhoneItemFlags, %00000010 ; jose has star piece
dwb wDailyPhoneItemFlags, %00000100 ; wade has item (see bittable1 $032b-e)
dwb wDailyPhoneItemFlags, %00001000 ; gina has leaf stone ; $80
dwb wDailyPhoneItemFlags, %00010000 ; alan has fire stone
dwb wDailyPhoneItemFlags, %00100000 ; liz has thunderstone
dwb wDailyPhoneItemFlags, %01000000 ; derek has nugget
dwb wDailyPhoneItemFlags, %10000000 ; tully has water stone
engine_flag wDailyPhoneItemFlags, 0 ; beverly has nugget
engine_flag wDailyPhoneItemFlags, 1 ; jose has star piece
engine_flag wDailyPhoneItemFlags, 2 ; wade has item (see bittable1 $032b-e)
engine_flag wDailyPhoneItemFlags, 3 ; gina has leaf stone ; $80
engine_flag wDailyPhoneItemFlags, 4 ; alan has fire stone
engine_flag wDailyPhoneItemFlags, 5 ; liz has thunderstone
engine_flag wDailyPhoneItemFlags, 6 ; derek has nugget
engine_flag wDailyPhoneItemFlags, 7 ; tully has water stone
dwb wDailyPhoneItemFlags + 1, %00000001 ; tiffany has pink bow
dwb wDailyPhoneItemFlags + 1, %00000010 ; wilton has item (see bittable1 $032f-31)
engine_flag wDailyPhoneItemFlags + 1, 0 ; tiffany has pink bow
engine_flag wDailyPhoneItemFlags + 1, 1 ; wilton has item (see bittable1 $032f-31)
dwb wDailyPhoneTimeOfDayFlags, %00000001
dwb wDailyPhoneTimeOfDayFlags, %00000010 ; $88
dwb wDailyPhoneTimeOfDayFlags, %00000100
dwb wDailyPhoneTimeOfDayFlags, %00001000
dwb wDailyPhoneTimeOfDayFlags, %00010000
dwb wDailyPhoneTimeOfDayFlags, %00100000
dwb wDailyPhoneTimeOfDayFlags, %01000000
dwb wDailyPhoneTimeOfDayFlags, %10000000
engine_flag wDailyPhoneTimeOfDayFlags, 0
engine_flag wDailyPhoneTimeOfDayFlags, 1 ; $88
engine_flag wDailyPhoneTimeOfDayFlags, 2
engine_flag wDailyPhoneTimeOfDayFlags, 3
engine_flag wDailyPhoneTimeOfDayFlags, 4
engine_flag wDailyPhoneTimeOfDayFlags, 5
engine_flag wDailyPhoneTimeOfDayFlags, 6
engine_flag wDailyPhoneTimeOfDayFlags, 7
dwb wDailyPhoneTimeOfDayFlags + 1, %00000001
dwb wDailyPhoneTimeOfDayFlags + 1, %00000010 ; $90
dwb wDailyPhoneTimeOfDayFlags + 1, %00000100
dwb wDailyPhoneTimeOfDayFlags + 1, %00001000
dwb wDailyPhoneTimeOfDayFlags + 1, %00010000
dwb wDailyPhoneTimeOfDayFlags + 1, %00100000
dwb wDailyPhoneTimeOfDayFlags + 1, %01000000
dwb wDailyPhoneTimeOfDayFlags + 1, %10000000
engine_flag wDailyPhoneTimeOfDayFlags + 1, 0
engine_flag wDailyPhoneTimeOfDayFlags + 1, 1 ; $90
engine_flag wDailyPhoneTimeOfDayFlags + 1, 2
engine_flag wDailyPhoneTimeOfDayFlags + 1, 3
engine_flag wDailyPhoneTimeOfDayFlags + 1, 4
engine_flag wDailyPhoneTimeOfDayFlags + 1, 5
engine_flag wDailyPhoneTimeOfDayFlags + 1, 6
engine_flag wDailyPhoneTimeOfDayFlags + 1, 7
dwb wDailyPhoneTimeOfDayFlags + 2, %00000001
dwb wDailyPhoneTimeOfDayFlags + 2, %00000010 ; $98
dwb wDailyPhoneTimeOfDayFlags + 2, %00000100
dwb wDailyPhoneTimeOfDayFlags + 2, %00001000
dwb wDailyPhoneTimeOfDayFlags + 2, %00010000
dwb wDailyPhoneTimeOfDayFlags + 2, %00100000
dwb wDailyPhoneTimeOfDayFlags + 2, %01000000
dwb wDailyPhoneTimeOfDayFlags + 2, %10000000
engine_flag wDailyPhoneTimeOfDayFlags + 2, 0
engine_flag wDailyPhoneTimeOfDayFlags + 2, 1 ; $98
engine_flag wDailyPhoneTimeOfDayFlags + 2, 2
engine_flag wDailyPhoneTimeOfDayFlags + 2, 3
engine_flag wDailyPhoneTimeOfDayFlags + 2, 4
engine_flag wDailyPhoneTimeOfDayFlags + 2, 5
engine_flag wDailyPhoneTimeOfDayFlags + 2, 6
engine_flag wDailyPhoneTimeOfDayFlags + 2, 7
dwb wd45b, %00000100 ; female player has been transformed into male
engine_flag wPlayerSpriteSetupFlags, 2 ; female player has been transformed into male
dwb SwarmFlags, %00000100 ; dunsparce swarm ; $a0
dwb SwarmFlags, %00001000 ; yanma swarm
engine_flag SwarmFlags, 2 ; dunsparce swarm ; $a0
engine_flag SwarmFlags, 3 ; yanma swarm

View File

@@ -123,7 +123,7 @@ StartMap: ; 96724
ld hl, MapStatus
ld bc, $3e ; 62
call ByteFill
callba Function113e5
callba InitCallReceiveDelay
call ClearJoypad
; fallthrough
; 9673e
@@ -138,19 +138,19 @@ EnterMap: ; 9673e
call ClearAllScriptFlags3
ld a, [hMapEntryMethod]
cp $f7
cp ($f << 4) + MAPSETUP_07
jr nz, .dontset
call SetAll_ScriptFlags3
.dontset
ld a, [hMapEntryMethod]
cp $f3
cp ($f << 4) + MAPSETUP_03
jr nz, .dontresetpoison
xor a
ld [PoisonStepCount], a
.dontresetpoison
xor a
xor a ; ($0 << 4) + MAPSETUP_00
ld [hMapEntryMethod], a
ld a, 2 ; HandleMap
ld [MapStatus], a
@@ -285,12 +285,12 @@ Function96812: ; 96812
PlayerEvents: ; 9681f
xor a
; If there's already a player event, don't interrupt it.
ld a, [ScriptRunning]
and a
ret nz
call Function968e4
call Dummy_CheckScriptFlags3Bit5 ; This is a waste of time
call CheckTrainerBattle3
jr c, .ok
@@ -298,13 +298,13 @@ PlayerEvents: ; 9681f
call CheckTileEvent
jr c, .ok
call Function97c30
call RunMemScript
jr c, .ok
call Function968ec
call DoMapTrigger
jr c, .ok
call Function9693a
call CheckTimeEvents
jr c, .ok
call OWPlayerInput
@@ -436,11 +436,7 @@ SetUpFiveStepWildEncounterCooldown: ; 968d1
ret
; 968d7
Function968d7: ; 968d7
ret
; 968d8
Function968d8: ; 968d8
SetMinTwoStepWildEncounterCooldown: mobile ; 968d7
ld a, [wWildEncounterCooldown]
cp 2
ret nc
@@ -449,14 +445,14 @@ Function968d8: ; 968d8
ret
; 968e4
Function968e4: ; 968e4
Dummy_CheckScriptFlags3Bit5: ; 968e4
call CheckBit5_ScriptFlags3
ret z
call Function2f3e
call ret_2f3e
ret
; 968ec
Function968ec: ; 968ec
DoMapTrigger: ; 968ec
ld a, [wdc07]
and a
jr z, .nope
@@ -468,7 +464,7 @@ Function968ec: ; 968ec
ld e, a
ld d, 0
ld hl, wdc07 + 1
ld hl, wdc08
ld a, [hli]
ld h, [hl]
ld l, a
@@ -505,23 +501,23 @@ endr
ret
; 9693a
Function9693a: ; 9693a
CheckTimeEvents: ; 9693a
ld a, [wLinkMode]
and a
jr nz, .nothing
ld hl, StatusFlags2
bit 2, [hl]
jr z, .asm_96951
jr z, .do_daily
callba Function114a4
jr c, .elevator
callba CheckBugContestTimer
jr c, .end_bug_contest
xor a
ret
.asm_96951
callba Function11452
callba Function114e7
.do_daily
callba CheckDailyResetTimer
callba CheckPokerusTrick
callba CheckPhoneCall
ret c
@@ -529,7 +525,7 @@ Function9693a: ; 9693a
xor a
ret
.elevator
.end_bug_contest
ld a, BANK(BugCatchingContestOverScript)
ld hl, BugCatchingContestOverScript
call CallScript
@@ -537,7 +533,7 @@ Function9693a: ; 9693a
ret
; 96970
Function96970: ; 96970
.unused ; 96970
ld a, 8
scf
ret
@@ -856,7 +852,7 @@ PlayerMovement: ; 96af0
; 96b10
.seven ; 96b10
call Function968d7 ; empty
call SetMinTwoStepWildEncounterCooldown ; mobile
xor a
ld c, a
ret
@@ -898,7 +894,7 @@ PlayerMovement: ; 96af0
CheckMenuOW: ; 96b30
xor a
ld [$ffa0], a
ld [hMenuReturn], a
ld [$ffa1], a
ld a, [hJoyPressed]
@@ -940,9 +936,9 @@ SelectMenuScript: ; 96b5f
StartMenuCallback:
SelectMenuCallback: ; 96b66
copybytetovar $ffa0
if_equal %10000000, .Script
if_equal -1, .Asm
copybytetovar hMenuReturn
if_equal HMENURETURN_SCRIPT, .Script
if_equal HMENURETURN_ASM, .Asm
end
; 96b72
@@ -957,75 +953,85 @@ SelectMenuCallback: ; 96b66
CountStep: ; 96b79
; Don't count steps in link communication rooms.
ld a, [wLinkMode]
and a
jr nz, .done
callba Function90136
jr c, .setminus1
; If there is a special phone call, don't count the step.
callba CheckSpecialPhoneCall
jr c, .doscript
call Function96bd7
jr c, .setminus1
; If Repel wore off, don't count the step.
call DoRepelStep
jr c, .doscript
; Count the step for poison and total steps
ld hl, PoisonStepCount
inc [hl]
ld hl, StepCount
inc [hl]
jr nz, .asm_96b9c
; Every 256 steps, increase the happiness of all your Pokemon.
jr nz, .skip_happiness
callba StepHappiness
.asm_96b9c
.skip_happiness
; Every 256 steps, offset from the happiness incrementor by 128 steps,
; decrease the hatch counter of all your eggs until you reach the first
; one that is ready to hatch.
ld a, [StepCount]
cp $80
jr nz, .asm_96bab
jr nz, .skip_egg
callba Function16f3e
jr nz, .set8
callba DoEggStep
jr nz, .hatch
.asm_96bab
.skip_egg
; Increase the EXP of (both) DayCare Pokemon by 1.
callba DaycareStep
; Every four steps, deal damage to all Poisoned Pokemon
ld hl, PoisonStepCount
ld a, [hl]
cp 4
jr c, .poisoned
jr c, .skip_poison
ld [hl], 0
callba Function505da
jr c, .setminus1
callba DoPoisonStep
jr c, .doscript
.poisoned
callba Function97db3
.skip_poison
callba DoBikeStep
.done
xor a
ret
.setminus1
.doscript
ld a, -1
scf
ret
.set8
.hatch
ld a, 8
scf
ret
; 96bd3
Function96bd3: ; 96bd3
.unreferenced: ; 96bd3
ld a, 7
scf
ret
; 96bd7
Function96bd7: ; 96bd7
ld a, [wdca1]
DoRepelStep: ; 96bd7
ld a, [wRepelEffect]
and a
ret z
dec a
ld [wdca1], a
ld [wRepelEffect], a
ret nz
ld a, BANK(RepelWoreOffScript)
ld hl, RepelWoreOffScript
@@ -1038,7 +1044,7 @@ Function96beb: ; 96beb
ld a, [ScriptRunning]
and a
ret z
cp -1
cp -1 ; run script
ret z
cp 10
ret nc
@@ -1059,17 +1065,17 @@ endr
; 96c0c
ScriptPointers96c0c: ; 96c0c
dbw BANK(Invalid_0x96c2d), Invalid_0x96c2d
dbw BANK(SeenByTrainerScript), SeenByTrainerScript
dbw BANK(TalkToTrainerScript), TalkToTrainerScript
dbw BANK(FindItemInBallScript), FindItemInBallScript
dbw BANK(UnknownScript_0x96c4d), UnknownScript_0x96c4d
dbw BANK(WarpToNewMapScript), WarpToNewMapScript
dbw BANK(FallIntoMapScript), FallIntoMapScript
dbw BANK(UnknownScript_0x124c8), UnknownScript_0x124c8
dbw BANK(HatchEggScript), HatchEggScript
dbw BANK(UnknownScript_0x96c4f), UnknownScript_0x96c4f
dbw BANK(Invalid_0x96c2d), Invalid_0x96c2d
dba Invalid_0x96c2d
dba SeenByTrainerScript
dba TalkToTrainerScript
dba FindItemInBallScript
dba UnknownScript_0x96c4d
dba WarpToNewMapScript
dba FallIntoMapScript
dba UnknownScript_0x124c8
dba HatchEggScript
dba UnknownScript_0x96c4f
dba Invalid_0x96c2d
; 96c2d
Invalid_0x96c2d: ; 96c2d
@@ -1087,12 +1093,12 @@ HatchEggScript: ; 96c2f
WarpToNewMapScript: ; 96c34
warpsound
newloadmap $f5
newloadmap ($f << 4) + MAPSETUP_05
end
; 96c38
FallIntoMapScript: ; 96c38
newloadmap $f6
newloadmap ($f << 4) + MAPSETUP_06
playsound SFX_KINESIS
applymovement PLAYER, MovementData_0x96c48
playsound SFX_STRENGTH

View File

@@ -8,33 +8,39 @@ WarpToSpawnPoint:: ; 97c28
ret
; 97c30
Function97c30:: ; 97c30
ld a, [wd45c]
RunMemScript:: ; 97c30
; If there is no script here, we don't need to be here.
ld a, [wMapReentryScriptQueueFlag]
and a
ret z
ld hl, wd45c + 2
; Execute the script at (wMapReentryScriptBank):(wMapReentryScriptAddress).
ld hl, wMapReentryScriptAddress
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [wd45c + 1]
ld a, [wMapReentryScriptBank]
call CallScript
scf
; Clear the buffer for the next script.
push af
xor a
ld hl, wd45c
ld hl, wMapReentryScriptQueueFlag
ld bc, 8
call ByteFill
pop af
ret
; 97c4f
Function97c4f:: ; 97c4f
ld hl, wd45c
LoadScriptBDE:: ; 97c4f
; If there's already a script here, don't overwrite.
ld hl, wMapReentryScriptQueueFlag
ld a, [hl]
and a
ret nz
; Set the flag
ld [hl], 1
inc hl
; Load the script pointer b:de into (wMapReentryScriptBank):(wMapReentryScriptAddress)
ld [hl], b
inc hl
ld [hl], e
@@ -262,46 +268,60 @@ ContestMons: ; 97d87
db -1, VENOMOTH, 30, 40
; 97db3
Function97db3:: ; 97db3
DoBikeStep:: ; 97db3
nop
nop
; fallthrough
; 97db5
Function97db5: ; 97db5
; If the bike shop owner doesn't have our number, or
; if we've already gotten the call, we don't have to
; be here.
ld hl, StatusFlags2
bit 4, [hl]
jr z, .NoCall
; If we're not on the bike, we don't have to be here.
ld a, [PlayerState]
cp 1
cp PLAYER_BIKE
jr nz, .NoCall
; If we're not in an area of phone service, we don't
; have to be here.
call GetMapHeaderPhoneServiceNybble
and a
jr nz, .NoCall
ld hl, wdca1 + 1
; Check the bike step count and check whether we've
; taken 65536 of them yet.
ld hl, wBikeStep
ld a, [hli]
ld d, a
ld e, [hl]
cp -1
jr nz, .asm_97dd8
cp 255
jr nz, .increment
ld a, e
cp -1
jr z, .asm_97ddc
cp 255
jr z, .dont_increment
.asm_97dd8
.increment
inc de
ld [hl], e
dec hl
ld [hl], d
.asm_97ddc
.dont_increment
; If we've taken at least 1024 steps, have the bike
; shop owner try to call us.
ld a, d
cp $4
cp 1024 >> 8
jr c, .NoCall
; If a call has already been queued, don't overwrite
; that call.
ld a, [wSpecialPhoneCallID]
and a
jr nz, .NoCall
ld a, 6
; Queue the call.
ld a, SPECIALCALL_BIKESHOP
ld [wSpecialPhoneCallID], a
xor a
ld [wSpecialPhoneCallID + 1], a
@@ -488,7 +508,7 @@ Function97eb7: ; 97eb7
; 97eb8
Function97eb8: ; 97eb8
call Function2f3e
call ret_2f3e
ret
; 97ebc

View File

@@ -58,7 +58,7 @@ CheckFruitTree: ; 44055
; 4405f
PickedFruitTree: ; 4405f
callba Function10609b ; empty function
callba MobileFn_10609b ; empty function
ld b, 1
jp GetFruitTreeFlag
; 4406a

View File

@@ -2196,7 +2196,7 @@ Function4ecd: ; 4ecd
add hl, bc
ld a, [hl]
ld b, a
callba Function807e
callba CopyDECoordsToMapObject
pop bc
ld hl, OBJECT_FLAGS
add hl, bc
@@ -3064,7 +3064,7 @@ Function579d: ; 579d
; 57bc
Function57bc: ; 57bc
ld hl, wd45b
ld hl, wPlayerSpriteSetupFlags
bit 7, [hl]
jr nz, .ok
ret
@@ -3076,10 +3076,10 @@ Function57bc: ; 57bc
; 57ca
Function57ca: ; 57ca
ld hl, wd45b
ld hl, wPlayerSpriteSetupFlags
bit 5, [hl]
ret z
ld a, [wd45b]
ld a, [wPlayerSpriteSetupFlags]
and 3
rept 2
add a

View File

@@ -31,222 +31,171 @@ MapSetupScripts: ; 15377
dw MapSetupScript12
; 1538f
; Command descriptions from Condensation water's scripting compendium.
const_def
const map_lcd_on ; 00 = Turn LCD on
const map_lcd_off ; 01 = Turn LCD off
const map_sound_off ; 02 = Turn speakers off
const map_music ; 03 = Music check for current map/ special check for bug catcher contest
const map_start_music ; 04 = Start map music anew
const map_fade_music ; 05 = Music check for current map / special check for Bug Contest/ music with FadeOut (old) and FadeIn
const map_fade ; 06 = Fade out music + screen
const map_bike_music ; 07 = If HIRO is on bike = bike music, else play map music
const map_music_force ; 08 = Play map music
const map_max_volume ; 09 = Turn music to highest volume
const map_load_blocks ; 0A = Write map data to MapRAM
const map_connection_blocks ; 0B = Compute maps connection pars and write into MapRAM
const map_save_screen ; 0C = Write current part of map into temporary memory
const map_buffer_screen ; 0D = Write current part of map into read-from memory
const map_load_graphics ; 0E = Write tileset header to ram/ load tileset/ load sprite tiles/ load special tiles
const map_load_tileset_header ; 0F = Write tileset header to ram
const map_time_of_day ; 10 = Compute time of day/ Update screen
const map_palettes ; 11 = Load map palettes
const map_wildmons ; 12 = Load probabilities for wild Pokémon battles
const map_sprites ; 13 = Delete sprite data and draw new sprites
const map_change_callback ; 14 = Check 2nd script header for 05 and 03 callbacks
const map_start_callback ; 15 = Check 2nd script header for 03 callbacks
const map_load_objects ; 16 = Analyze people data anew and check 2nd script header for 02 callbacks
const map_load_spawn ; 17 = Writes arrival data for arrival by flying/Blackout from table 05:5319 to ram
const map_load_connection ; 18 = Writes arrival data for entering a map by connection to ram
const map_load_warp ; 19 = Write warp data to ram when entering warp
const map_attributes ; 1A = Load complete map data (primary, secondary, event, script headers)
const map_attributes_2 ; 1B = Same as 1A, but some settings arent loaded new from the rom, such as hide function of the people events
const map_clear_bg_palettes ; 1C = Fill palette data with FFFF (=white)
const map_fade_out_palettes ; 1D = All BG pallet color are converted to 0|0 (Pal0, Col0), all sprite colors to x|0 (FadeOut)
const map_fade_in_palettes ; 1E = Palette FadeIn
const map_anchor_screen ; 1F = Compute position of upper left-most block visible on screen
const map_warp_face ; 20 = Position computation when HIRO leaves a warp
const map_face_down ; 21 = Set HIROs facing to “down”
const map_spawn_coord ; 22 = Prepare HIRO data for arrival by flight
const map_player_coord ; 23 = Compute HIRO x/y data anew
const map_prolong_sprites ; 24 = Prolong old sprites before removing them
const map_delay_sprites ; 25 = Delay rendering new sprites
const map_update_roam ; 26 = Compute chances to meet Raikou, Entei or Suicune
const map_keep_roam ; 27 = Recover chances to meet Raikou, Entei or Suicune
const map_fade_out_music ; 28 = Temporarily stop music playing
const map_animations_on ; 29 = Activate animations
const map_animations_off ; 2A = Deactivate animations
const map_keep_palettes ; 2B = Recover all palettes
const map_text_scroll_off ; 2C = Turn off text scroll (for town name overlays)
const map_stop_script ; 2D = Deactivate code prolonging
MapSetupScript4: ; 1538f
db map_prolong_sprites
map_prolong_sprites
MapSetupScript12: ; 15390
db map_fade_out_palettes
db map_keep_roam
map_fade_out_palettes
map_keep_roam
MapSetupScript1: ; 15392
db map_lcd_off
db map_sound_off
db map_load_spawn
db map_attributes
db map_change_callback
db map_spawn_coord
db map_player_coord
db map_anchor_screen
db map_load_blocks
db map_buffer_screen
db map_load_graphics
db map_time_of_day
db map_load_objects
db map_lcd_on
db map_palettes
db map_face_down
db map_sprites
db map_bike_music
db map_max_volume
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db -1
map_lcd_off
map_sound_off
map_load_spawn
map_attributes
map_change_callback
map_spawn_coord
map_player_coord
map_anchor_screen
map_load_blocks
map_buffer_screen
map_load_graphics
map_time_of_day
map_load_objects
map_lcd_on
map_palettes
map_face_down
map_sprites
map_bike_music
map_max_volume
map_fade_in_palettes
map_animations_on
map_wildmons
map_end_setup_script
MapSetupScript11: ; 153a9
db map_load_spawn
db map_attributes
db map_change_callback
db map_spawn_coord
db map_player_coord
db map_anchor_screen
db map_load_blocks
db map_buffer_screen
db map_lcd_off
db map_load_graphics
db map_time_of_day
db map_fade_out_music
db map_lcd_on
db map_load_objects
db map_palettes
db map_face_down
db map_sprites
db map_fade_music
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db -1
map_load_spawn
map_attributes
map_change_callback
map_spawn_coord
map_player_coord
map_anchor_screen
map_load_blocks
map_buffer_screen
map_lcd_off
map_load_graphics
map_time_of_day
map_fade_out_music
map_lcd_on
map_load_objects
map_palettes
map_face_down
map_sprites
map_fade_music
map_fade_in_palettes
map_animations_on
map_wildmons
map_end_setup_script
MapSetupScript7: ; 153bf
db map_animations_off
db map_load_connection
db map_attributes
db map_change_callback
db map_player_coord
db map_load_blocks
db map_load_tileset_header
db map_save_screen
db map_load_objects
db map_fade_music
db map_palettes
db map_stop_script
db map_keep_palettes
db map_wildmons
db map_update_roam
db map_animations_on
db -1
map_animations_off
map_load_connection
map_attributes
map_change_callback
map_player_coord
map_load_blocks
map_load_tileset_header
map_save_screen
map_load_objects
map_fade_music
map_palettes
map_stop_script
map_keep_palettes
map_wildmons
map_update_roam
map_animations_on
map_end_setup_script
MapSetupScript6: ; 153d0
db map_prolong_sprites
map_prolong_sprites
MapSetupScript5: ; 153d1
db map_fade_out_palettes
map_fade_out_palettes
MapSetupScript9: ; 153d2
db map_load_warp
db map_attributes
db map_warp_face
db map_change_callback
db map_player_coord
db map_load_blocks
db map_buffer_screen
db map_lcd_off
db map_load_graphics
db map_time_of_day
db map_fade_out_music
db map_lcd_on
db map_load_objects
db map_palettes
db map_sprites
db map_fade_music
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db map_update_roam
db -1
map_load_warp
map_attributes
map_warp_face
map_change_callback
map_player_coord
map_load_blocks
map_buffer_screen
map_lcd_off
map_load_graphics
map_time_of_day
map_fade_out_music
map_lcd_on
map_load_objects
map_palettes
map_sprites
map_fade_music
map_fade_in_palettes
map_animations_on
map_wildmons
map_update_roam
map_end_setup_script
MapSetupScript3: ; 153e7
db map_fade
db map_clear_bg_palettes
db map_lcd_off
db map_sound_off
db map_load_blocks
db map_connection_blocks
db map_load_graphics
db map_time_of_day
db map_lcd_on
db map_palettes
db map_sprites
db map_music_force
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db -1
map_fade
map_clear_bg_palettes
map_lcd_off
map_sound_off
map_load_blocks
map_connection_blocks
map_load_graphics
map_time_of_day
map_lcd_on
map_palettes
map_sprites
map_music_force
map_fade_in_palettes
map_animations_on
map_wildmons
map_end_setup_script
MapSetupScript8: ; 153f7
db map_fade
db map_lcd_off
db map_sound_off
db map_change_callback
db map_load_blocks
db map_buffer_screen
db map_load_graphics
db map_time_of_day
db map_lcd_on
db map_palettes
db map_sprites
db map_bike_music
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db map_text_scroll_off
db -1
map_fade
map_lcd_off
map_sound_off
map_change_callback
map_load_blocks
map_buffer_screen
map_load_graphics
map_time_of_day
map_lcd_on
map_palettes
map_sprites
map_bike_music
map_fade_in_palettes
map_animations_on
map_wildmons
map_text_scroll_off
map_end_setup_script
MapSetupScript2: ; 15408
db map_lcd_off
db map_sound_off
db map_attributes_2
db map_anchor_screen
db map_start_callback
db map_load_blocks
db map_connection_blocks
db map_buffer_screen
db map_load_graphics
db map_time_of_day
db map_lcd_on
db map_palettes
db map_sprites
db map_bike_music
db map_fade_in_palettes
db map_animations_on
db map_wildmons
db -1
map_lcd_off
map_sound_off
map_attributes_2
map_anchor_screen
map_start_callback
map_load_blocks
map_connection_blocks
map_buffer_screen
map_load_graphics
map_time_of_day
map_lcd_on
map_palettes
map_sprites
map_bike_music
map_fade_in_palettes
map_animations_on
map_wildmons
map_end_setup_script
MapSetupScript10: ; 1541a
db map_load_blocks
db map_connection_blocks
db -1
map_load_blocks
map_connection_blocks
map_end_setup_script
ReadMapSetupScript: ; 1541d
@@ -374,13 +323,13 @@ Function154ea: ; 154ea
; 154eb
DelayClearingOldSprites: ; 154eb
ld hl, wd45b
ld hl, wPlayerSpriteSetupFlags
set 7, [hl]
ret
; 154f1
DelayLoadingNewSprites: ; 154f1
ld hl, wd45b
ld hl, wPlayerSpriteSetupFlags
set 6, [hl]
ret

View File

@@ -1656,5 +1656,5 @@ UnknownScript_0xa0b04:
BikeShopPhoneScript:
farwritetext UnknownText_0x174000
clearflag ENGINE_BIKE_SHOP_CALL_ENABLED
specialphonecall ELMCALL_NONE
specialphonecall SPECIALCALL_NONE
end

File diff suppressed because it is too large Load Diff

884
engine/phone.asm Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -141,7 +141,7 @@ MomPhoneNoGymQuestScript: ; 0xbcfac
MomPhoneLectureScript: ; 0xbcfb1
setevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST
setflag ENGINE_DST
specialphonecall ELMCALL_NONE
specialphonecall SPECIALCALL_NONE
farwritetext MomPhoneLectureText
yesorno
iftrue MomPhoneSaveMoneyScript
@@ -194,7 +194,7 @@ BillPhoneScript2: ; 0xbd007
; Elm
ElmPhoneScript1: ; 0xbd00d
checkcode VAR_POKERUS
checkcode VAR_SPECIALPHONECALL
if_equal $1, .pokerus
checkevent EVENT_SHOWED_TOGEPI_TO_ELM
iftrue .discovery
@@ -253,46 +253,46 @@ ElmPhoneScript1: ; 0xbd00d
.pokerus ; 0xbd079
farwritetext ElmPhonePokerusText
specialphonecall ELMCALL_NONE
specialphonecall SPECIALCALL_NONE
end
ElmPhoneScript2: ; 0xbd081
checkcode VAR_POKERUS
checkcode VAR_SPECIALPHONECALL
if_equal $2, .disaster
if_equal $3, .assistant
if_equal $4, .rocket
if_equal $5, .gift
if_equal $8, .gift
farwritetext ElmPhonePokerusText
specialphonecall ELMCALL_NONE
specialphonecall SPECIALCALL_NONE
end
.disaster ; 0xbd09f
farwritetext ElmPhoneDisasterText
specialphonecall ELMCALL_NONE
specialphonecall SPECIALCALL_NONE
setevent EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON
end
.assistant ; 0xbd0aa
farwritetext ElmPhoneEggAssistantText
specialphonecall ELMCALL_NONE
specialphonecall SPECIALCALL_NONE
clearevent EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER
setevent EVENT_ELMS_AIDE_IN_LAB
end
.rocket ; 0xbd0b8
farwritetext ElmPhoneRocketText
specialphonecall ELMCALL_NONE
specialphonecall SPECIALCALL_NONE
end
.gift ; 0xbd0c0
farwritetext ElmPhoneGiftText
specialphonecall ELMCALL_NONE
specialphonecall SPECIALCALL_NONE
end
.unused ; 0xbd0c8
farwritetext ElmPhoneUnusedText
specialphonecall ELMCALL_NONE
specialphonecall SPECIALCALL_NONE
end
; bd0d0

View File

@@ -1707,7 +1707,7 @@ BuenasPassword3: ; b8f47 (2e:4f47)
BuenasPassword4: ; b8f55 (2e:4f55)
call BuenasPasswordCheckMidnight
jp c, BuenasPassword8
ld a, [wdc4a]
ld a, [wBuenasPassword]
; If we already generated the password today, we don't need to generate a new one.
ld hl, WeeklyFlags
bit 7, [hl]
@@ -1727,9 +1727,9 @@ BuenasPassword4: ; b8f55 (2e:4f55)
and $3
cp $3
jr nc, .greater_than_three
; The high nybble of wdc4a will now contain the password group index, and the low nybble contains the actual password.
; The high nybble of wBuenasPassword will now contain the password group index, and the low nybble contains the actual password.
add e
ld [wdc4a], a
ld [wBuenasPassword], a
; Set the flag so that we don't generate a new password this week.
ld hl, WeeklyFlags
set 7, [hl]

View File

@@ -529,7 +529,7 @@ Script_interpretmenu: ; 0x96f41
ld a, [ScriptBank]
ld hl, InterpretMenu
rst FarCall
ld a, [wcf88]
ld a, [wPocketPointerLocationBuffer]
jr nc, .ok
xor a
.ok
@@ -651,7 +651,7 @@ Script_specialsound: ; 0x96fe4
; script command 0x88
callba CheckItemPocket
ld a, [wd142]
ld a, [wItemAttributeParamBuffer]
cp TM_HM
ld de, SFX_GET_TM
jr z, .play
@@ -665,7 +665,7 @@ Script_specialsound: ; 0x96fe4
GetPocketName: ; 96ffe
callba CheckItemPocket
ld a, [wd142]
ld a, [wItemAttributeParamBuffer]
dec a
ld hl, .Pockets
and 3
@@ -1338,12 +1338,12 @@ Script_moveperson: ; 0x97341
call GetScriptPerson
ld b, a
call GetScriptByte
add $4
add 4
ld d, a
call GetScriptByte
add $4
add 4
ld e, a
callba Function807e
callba CopyDECoordsToMapObject
ret
; 0x9735b
@@ -1385,10 +1385,10 @@ Script_loademote: ; 0x97384
; bubble (SingleByteParam)
call GetScriptByte
cp $ff
jr nz, .asm_9738e ; 0x97389 $3
cp -1
jr nz, .not_var_emote ; 0x97389 $3
ld a, [ScriptVar]
.asm_9738e
.not_var_emote
ld c, a
callba Function1442f
ret
@@ -1417,7 +1417,7 @@ Script_showemote: ; 0x97396
; 0x973b6
ShowEmoteScript: ; 973b6
loademote $ff
loademote -1
applymovement2 .Show
pause 0
applymovement2 .Hide
@@ -1448,12 +1448,12 @@ Script_earthquake: ; 0x973c7
ld [wd003], a
and $3f
ld [wd005], a
ld b, BANK(UnknownScript_0x973e6)
ld de, UnknownScript_0x973e6
ld b, BANK(.script)
ld de, .script
jp ScriptCall
; 0x973e6
UnknownScript_0x973e6: ; 973e6
.script: ; 973e6
applymovement PLAYER, wd002
end
; 973eb
@@ -1487,7 +1487,7 @@ Script_battlecheck: ; 0x973fb
Script_loadtrainerdata: ; 0x97400
; script command 0x5c
ld a, $81
ld a, (1 << 7) | 1
ld [wd459], a
ld a, [WalkingDirection]
ld [OtherTrainerClass], a
@@ -1502,7 +1502,7 @@ Script_loadpokedata: ; 0x97412
; pokemon (PokemonParam)
; level (DecimalParam)
ld a, $80
ld a, (1 << 7)
ld [wd459], a
call GetScriptByte
ld [TempWildMonSpecies], a
@@ -1517,7 +1517,7 @@ Script_loadtrainer: ; 0x97424
; trainer_group (TrainerGroupParam)
; trainer_id (TrainerIdParam)
ld a, $81
ld a, (1 << 7) | 1
ld [wd459], a
call GetScriptByte
ld [OtherTrainerClass], a
@@ -1531,7 +1531,7 @@ Script_startbattle: ; 0x97436
call BufferScreen
predef StartBattle
ld a, [wd0ee]
ld a, [wBattleResult]
and $3f
ld [ScriptVar], a
ret
@@ -1555,7 +1555,7 @@ Script_returnafterbattle: ; 0x97459
ld hl, wd459
ld d, [hl]
ld [hl], $0
ld a, [wd0ee]
ld a, [wBattleResult]
and $3f
cp $1
jr nz, .notblackedout ; 0x97466 $8
@@ -1565,17 +1565,17 @@ Script_returnafterbattle: ; 0x97459
.notblackedout
bit 0, d
jr z, .asm_9747c ; 0x97472 $8
jr z, .was_wild ; 0x97472 $8
callba MomTriesToBuySomething
jr .done ; 0x9747a $12
.asm_9747c
ld a, [wd0ee]
.was_wild
ld a, [wBattleResult]
bit 7, a
jr z, .done ; 0x97481 $b
ld b, BANK(Script_SpecialBillCall)
ld de, Script_SpecialBillCall
callba Function97c4f
callba LoadScriptBDE
.done
jp Script_reloadmap
; 0x97491
@@ -1585,7 +1585,7 @@ Script_reloadmap: ; 0x97491
xor a
ld [wd459], a
ld a, $f3
ld a, ($f << 4) + MAPSETUP_03
ld [hMapEntryMethod], a
ld a, $1
call LoadMapStatus
@@ -2813,10 +2813,10 @@ Script_warpfacing: ; 0x97a0e
call GetScriptByte
and $3
ld c, a
ld a, [wd45b]
ld a, [wPlayerSpriteSetupFlags]
set 5, a
or c
ld [wd45b], a
ld [wPlayerSpriteSetupFlags], a
; fall through
Script_warp: ; 0x97a1d
@@ -2840,7 +2840,7 @@ Script_warp: ; 0x97a1d
ld [YCoord], a
ld a, -1
ld [wd001], a
ld a, -15
ld a, ($f << 4) + MAPSETUP_01
ld [hMapEntryMethod], a
ld a, 1
call LoadMapStatus
@@ -2852,7 +2852,7 @@ Script_warp: ; 0x97a1d
call GetScriptByte
ld a, -1
ld [wd001], a
ld a, -5
ld a, ($f << 4) + MAPSETUP_11
ld [hMapEntryMethod], a
ld a, 1
call LoadMapStatus
@@ -2968,7 +2968,7 @@ Script_reloadmappart:: ; 0x97ae3
; script command 0x7c
xor a
ld [$ffd4], a
ld [hBGMapMode], a
call Function2173
call Function2914
callba Function104061
@@ -3046,7 +3046,7 @@ Script_loadmovesprites: ; 0x97b2f
; script command 0x49
call Function2e20
call Function2dcf
call LoadMoveSprites
ret
; 0x97b36

View File

@@ -88,7 +88,7 @@ SpecialsPointers:: ; c029
add_special Special_FindAtLeastThatHappy
add_special Special_FindThatSpecies
add_special Special_FindThatSpeciesYourTrainerID
add_special Functionc3ef ; unreferenced
add_special Special_CheckUnusedTwoDayTimer ; unreferenced
add_special Special_DayCareMon1
add_special Special_DayCareMon2
add_special Special_SelectRandomBugContestContestants
@@ -169,7 +169,7 @@ SpecialsPointers:: ; c029
add_special SpecialBuenasPassword
add_special SpecialBuenaPrize
add_special SpecialDratini
add_special Function11485
add_special Special_SampleKenjiBreakCountdown
add_special SpecialBeastsCheck
add_special SpecialMonCheck
add_special Functionc225
@@ -482,9 +482,9 @@ ScriptReturnCarry: ; c3e2
ret
; c3ef
Functionc3ef: ; c3ef
callba Function1150c
ld a, [wdc3a]
Special_CheckUnusedTwoDayTimer: ; c3ef
callba CheckUnusedTwoDayTimer
ld a, [wUnusedTwoDayTimer]
ld [ScriptVar], a
ret
; c3fc
@@ -523,7 +523,7 @@ SpecialCheckPokerus: ; c419
; c422
Special_ResetLuckyNumberShowFlag: ; c422
callba Function1152b
callba RestartLuckyNumberCountdown
ld hl, wLuckyNumberShowFlag
res 0, [hl]
callba LoadOrRegenerateLuckyIDNumber

View File

@@ -159,7 +159,7 @@ PokeCenterNurseScript:
.pokerus_done
setflag ENGINE_POKERUS
specialphonecall ELMCALL_POKERUS
specialphonecall SPECIALCALL_POKERUS
end
DifficultBookshelfScript:
@@ -297,7 +297,7 @@ RadioTowerRocketsScript:
clearevent EVENT_RADIO_TOWER_ROCKET_TAKEOVER
clearevent EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER
setevent EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_EAST
specialphonecall ELMCALL_WEIRDBROADCAST
specialphonecall SPECIALCALL_WEIRDBROADCAST
domaptrigger MAHOGANY_TOWN, $1
end

File diff suppressed because it is too large Load Diff

414
engine/timeofdaypals.asm Normal file
View File

@@ -0,0 +1,414 @@
Function8c001:: ; 8c001
call UpdateTime
ld a, [TimeOfDay]
ld [CurTimeOfDay], a
call GetTimePalette
ld [TimeOfDayPal], a
ret
; 8c011
_TimeOfDayPals:: ; 8c011
; return carry if pals are changed
; forced pals?
ld hl, wd846
bit 7, [hl]
jr nz, .dontchange
; do we need to bother updating?
ld a, [TimeOfDay]
ld hl, CurTimeOfDay
cp [hl]
jr z, .dontchange
; if so, the time of day has changed
ld a, [TimeOfDay]
ld [CurTimeOfDay], a
; get palette id
call GetTimePalette
; same palette as before?
ld hl, TimeOfDayPal
cp [hl]
jr z, .dontchange
; update palette id
ld [TimeOfDayPal], a
; save bg palette 8
ld hl, Unkn1Pals + 8 * 7 ; Unkn1Pals + 7 pals
; save wram bank
ld a, [rSVBK]
ld b, a
; wram bank 5
ld a, 5
ld [rSVBK], a
; push palette
ld c, 4 ; NUM_PAL_COLORS
.push
ld d, [hl]
inc hl
ld e, [hl]
inc hl
push de
dec c
jr nz, .push
; restore wram bank
ld a, b
ld [rSVBK], a
; update sgb pals
ld b, $9
call GetSGBLayout
; restore bg palette 8
ld hl, Unkn2Pals - 1 ; last byte in Unkn1Pals
; save wram bank
ld a, [rSVBK]
ld d, a
; wram bank 5
ld a, 5
ld [rSVBK], a
; pop palette
ld e, 4 ; NUM_PAL_COLORS
.pop
pop bc
ld [hl], c
dec hl
ld [hl], b
dec hl
dec e
jr nz, .pop
; restore wram bank
ld a, d
ld [rSVBK], a
; update palettes
call _UpdateTimePals
call DelayFrame
; successful change
scf
ret
.dontchange
; no change occurred
and a
ret
; 8c070
_UpdateTimePals:: ; 8c070
ld c, $9 ; normal
call GetTimePalFade
call DmgToCgbTimePals
ret
; 8c079
FadeInBGMap:: ; 8c079
ld c, $12
call GetTimePalFade
ld b, $4
call ConvertTimePalsDecHL
ret
; 8c084
FadeBlackBGMap:: ; 8c084
call Function8c0c1
ld c, $9
call GetTimePalFade
ld b, $4
call ConvertTimePalsIncHL
ret
; 8c092
Special_BattleTowerFade: ; 8c092
call Function8c0c1
ld c, $9
call GetTimePalFade
ld b, $4
.asm_8c09c
call DmgToCgbTimePals
rept 3
inc hl
endr
ld c, $7
call DelayFrames
dec b
jr nz, .asm_8c09c
ret
; 8c0ab
Special_FadeInQuickly: ; 8c0ab
ld c, $0
call GetTimePalFade
ld b, $4
call ConvertTimePalsIncHL
ret
; 8c0b6
Special_FadeBlackQuickly: ; 8c0b6
ld c, $9
call GetTimePalFade
ld b, $4
call ConvertTimePalsDecHL
ret
; 8c0c1
Function8c0c1: ; 8c0c1
ld a, [rSVBK]
push af
ld a, $5
ld [rSVBK], a
ld hl, Unkn1Pals
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
ld hl, Unkn1Pals + 8
ld c, $6
.asm_8c0d4
ld a, e
ld [hli], a
ld a, d
ld [hli], a
rept 6
inc hl
endr
dec c
jr nz, .asm_8c0d4
pop af
ld [rSVBK], a
ret
; 8c0e5
brightlevel: MACRO
db (\1 << 6) | (\2 << 4) | (\3 << 2) | \4
ENDM
Function8c0e5: ; 8c0e5
ld hl, .BrightnessLevels
ld a, [wc2d0]
cp $4 ; Dark cave, needs Flash
jr z, .DarkCave
and $7
add l
ld l, a
ld a, $0
adc h
ld h, a
ld a, [hl]
ld [wd847], a
ret
.DarkCave
ld a, [StatusFlags]
bit 2, a
jr nz, .UsedFlash
ld a, $ff ; 3, 3, 3, 3
ld [wd847], a
ret
.UsedFlash
ld a, $aa ; 2, 2, 2, 2
ld [wd847], a
ret
; 8c10f (23:410f)
.BrightnessLevels: ; 8c10f
brightlevel 3, 2, 1, 0
brightlevel 1, 1, 1, 1
brightlevel 2, 2, 2, 2
brightlevel 0, 0, 0, 0
brightlevel 3, 3, 3, 3
brightlevel 3, 2, 1, 0
brightlevel 3, 2, 1, 0
brightlevel 3, 2, 1, 0
; 8c117
GetTimePalette: ; 8c117
ld a, [TimeOfDay]
ld e, a
ld d, 0
ld hl, .TimePalettes
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
; 8c126
.TimePalettes
dw .MorningPalette
dw .DayPalette
dw .NitePalette
dw .DarknessPalette
.MorningPalette
ld a, [wd847]
and %00000011 ; 0
ret
.DayPalette
ld a, [wd847]
and %00001100 ; 1
srl a
srl a
ret
.NitePalette
ld a, [wd847]
and %00110000 ; 2
swap a
ret
.DarknessPalette
ld a, [wd847]
and %11000000 ; 3
rlca
rlca
ret
; 8c14e
DmgToCgbTimePals: ; 8c14e
push hl
push de
ld a, [hli]
call DmgToCgbBGPals
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
call DmgToCgbObjPals
pop de
pop hl
ret
; 8c15e
ConvertTimePalsIncHL: ; 8c15e
.loop
call DmgToCgbTimePals
rept 3
inc hl
endr
ld c, $2
call DelayFrames
dec b
jr nz, .loop
ret
; 8c16d
ConvertTimePalsDecHL: ; 8c16d
.loop
call DmgToCgbTimePals
rept 3
dec hl
endr
ld c, $2
call DelayFrames
dec b
jr nz, .loop
ret
; 8c17c
GetTimePalFade: ; 8c17c
; check cgb
ld a, [hCGB]
and a
jr nz, .cgb
; else: dmg
; index
ld a, [TimeOfDayPal]
and %11
; get fade table
push bc
ld c, a
ld b, $0
ld hl, .dmgfades
rept 2
add hl, bc
endr
ld a, [hli]
ld h, [hl]
ld l, a
pop bc
; get place in fade table
ld b, $0
add hl, bc
ret
.cgb
ld hl, .cgbfade
ld b, $0
add hl, bc
ret
.dmgfades
dw .morn
dw .day
dw .nite
dw .darkness
.morn
db %11111111, %11111111, %11111111
db %11111110, %11111110, %11111110
db %11111001, %11100100, %11100100
db %11100100, %11010000, %11010000
db %10010000, %10000000, %10000000
db %01000000, %01000000, %01000000
db %00000000, %00000000, %00000000
.day
db %11111111, %11111111, %11111111
db %11111110, %11111110, %11111110
db %11111001, %11100100, %11100100
db %11100100, %11010000, %11010000
db %10010000, %10000000, %10000000
db %01000000, %01000000, %01000000
db %00000000, %00000000, %00000000
.nite
db %11111111, %11111111, %11111111
db %11111110, %11111110, %11111110
db %11111001, %11100100, %11100100
db %11101001, %11010000, %11010000
db %10010000, %10000000, %10000000
db %01000000, %01000000, %01000000
db %00000000, %00000000, %00000000
.darkness
db %11111111, %11111111, %11111111
db %11111110, %11111110, %11111111
db %11111110, %11100100, %11111111
db %11111101, %11010000, %11111111
db %11111101, %10000000, %11111111
db %00000000, %01000000, %00000000
db %00000000, %00000000, %00000000
.cgbfade
db %11111111, %11111111, %11111111
db %11111110, %11111110, %11111110
db %11111001, %11111001, %11111001
db %11100100, %11100100, %11100100
db %10010000, %10010000, %10010000
db %01000000, %01000000, %01000000
db %00000000, %00000000, %00000000
; 8c20f