ref: a5f226246e068adf0ddabc8abe1afa868749162b
parent: 9ce504f528a997b0d5bb1bd1c80fed91f9a8fa2a
parent: 886ab6888409dc6ac0502c6866c74aade7d3568e
author: Bryan Bishop <[email protected]>
date: Fri Aug 30 07:43:23 EDT 2013
Merge pull request #175 from yenatch/rename-bittables toss the useless "bittable" convention for event and engine flags
--- a/constants.asm
+++ b/constants.asm
@@ -13,6 +13,8 @@
INCLUDE "constants/item_constants.asm"
INCLUDE "constants/trainer_constants.asm"
INCLUDE "constants/script_constants.asm"
+INCLUDE "constants/event_flags.asm"
+INCLUDE "constants/engine_flags.asm"
INCLUDE "constants/music_constants.asm"
@@ -231,6 +233,7 @@
PREDEF_UPDATE_PLAYER_HUD EQU $12
PREDEF_FILL_BOX EQU $13
PREDEF_UPDATE_ENEMY_HUD EQU $15
+PREDEF_START_BATTLE EQU $16
PREDEF_FILL_IN_EXP_BAR EQU $17
PREDEF_FILLMOVES EQU $1B
PREDEF_GET_GENDER EQU $24
@@ -243,6 +246,7 @@
PREDEF_GET_UNOWN_LETTER EQU $2D
PREDEF_LOAD_SGB_LAYOUT EQU $31
PREDEF_CHECK_CONTEST_MON EQU $33
+PREDEF_BATTLE_TRANSITION EQU $34
PREDEF_PARTYMON_ITEM_NAME EQU $3B
PREDEF_DECOMPRESS EQU $40
--- /dev/null
+++ b/constants/engine_flags.asm
@@ -1,0 +1,163 @@
+ENGINE_RADIO_CARD EQU $00
+ENGINE_MAP_CARD EQU $01
+ENGINE_PHONE_CARD EQU $02
+ENGINE_EXPN_CARD EQU $03
+ENGINE_POKEGEAR EQU $04
+ENGINE_DAYCARE_MONS_ARE_COMPATIBLE EQU $05
+ENGINE_DAYCARE_MAN_HAS_MON EQU $06
+ENGINE_DAYCARE_LADY_HAS_MON EQU $07
+ENGINE_MOM_SAVING_MONEY EQU $08
+ENGINE_DST EQU $09
+ENGINE_0A EQU $0a
+ENGINE_POKEDEX EQU $0b
+ENGINE_UNOWN_DEX EQU $0c
+ENGINE_POKERUS EQU $0d
+ENGINE_ROCKET_SIGNAL_ON_CH20 EQU $0e
+ENGINE_CREDITS_SKIP EQU $0f
+ENGINE_BUG_CONTEST_ON EQU $10
+ENGINE_BUG_CONTEST_TIMER EQU $11
+ENGINE_ROCKETS_IN_RADIO_TOWER EQU $12
+ENGINE_BIKE_SHOP_CALL_ENABLED EQU $13
+ENGINE_14 EQU $14
+ENGINE_GIVE_POKERUS EQU $15
+ENGINE_16 EQU $16
+ENGINE_ROCKETS_IN_MAHOGANY EQU $17
+ENGINE_STRENGTH_ACTIVE EQU $18
+ENGINE_ALWAYS_ON_BIKE EQU $19
+ENGINE_DOWNHILL EQU $1a
+ENGINE_ZEPHYRBADGE EQU $1b
+ENGINE_HIVEBADGE EQU $1c
+ENGINE_PLAINBADGE EQU $1d
+ENGINE_FOGBADGE EQU $1e
+ENGINE_MINERALBADGE EQU $1f
+ENGINE_STORMBADGE EQU $20
+ENGINE_GLACIERBADGE EQU $21
+ENGINE_RISINGBADGE EQU $22
+ENGINE_BOULDERBADGE EQU $23
+ENGINE_CASCADEBADGE EQU $24
+ENGINE_THUNDERBADGE EQU $25
+ENGINE_RAINBOWBADGE EQU $26
+ENGINE_SOULBADGE EQU $27
+ENGINE_MARSHBADGE EQU $28
+ENGINE_VOLCANOBADGE EQU $29
+ENGINE_EARTHBADGE EQU $2a
+ENGINE_UNLOCKED_UNOWNS_1 EQU $2b
+ENGINE_UNLOCKED_UNOWNS_2 EQU $2c
+ENGINE_UNLOCKED_UNOWNS_3 EQU $2d
+ENGINE_UNLOCKED_UNOWNS_4 EQU $2e
+ENGINE_UNLOCKED_UNOWNS_5 EQU $2f
+ENGINE_UNLOCKED_UNOWNS_6 EQU $30
+ENGINE_UNLOCKED_UNOWNS_7 EQU $31
+ENGINE_UNLOCKED_UNOWNS_8 EQU $32
+ENGINE_FLYPOINT_KRISS_HOUSE EQU $33
+ENGINE_FLYPOINT_VIRIDIAN_POKECENTER EQU $34
+ENGINE_FLYPOINT_PALLET EQU $35
+ENGINE_FLYPOINT_VIRIDIAN EQU $36
+ENGINE_FLYPOINT_PEWTER EQU $37
+ENGINE_FLYPOINT_CERULEAN EQU $38
+ENGINE_FLYPOINT_ROCK_TUNNEL EQU $39
+ENGINE_FLYPOINT_VERMILION EQU $3a
+ENGINE_FLYPOINT_LAVENDER EQU $3b
+ENGINE_FLYPOINT_SAFFRON EQU $3c
+ENGINE_FLYPOINT_CELADON EQU $3d
+ENGINE_FLYPOINT_FUCHSIA EQU $3e
+ENGINE_FLYPOINT_CINNABAR EQU $3f
+ENGINE_FLYPOINT_INDIGO_PLATEAU EQU $40
+ENGINE_FLYPOINT_NEW_BARK EQU $41
+ENGINE_FLYPOINT_CHERRYGROVE EQU $42
+ENGINE_FLYPOINT_VIOLET EQU $43
+ENGINE_FLYPOINT_AZALEA EQU $44
+ENGINE_FLYPOINT_CIANWOOD EQU $45
+ENGINE_FLYPOINT_GOLDENROD EQU $46
+ENGINE_FLYPOINT_OLIVINE EQU $47
+ENGINE_FLYPOINT_ECRUTEAK EQU $48
+ENGINE_FLYPOINT_MAHOGANY EQU $49
+ENGINE_FLYPOINT_LAKE_OF_RAGE EQU $4a
+ENGINE_FLYPOINT_BLACKTHORN EQU $4b
+ENGINE_FLYPOINT_SILVER_CAVE EQU $4c
+ENGINE_FLYPOINT_UNUSED EQU $4d
+ENGINE_LUCKY_NUMBER_SHOW EQU $4e
+ENGINE_4F EQU $4f
+ENGINE_KURT_MAKING_BALLS EQU $50
+ENGINE_51 EQU $51
+ENGINE_SPECIAL_WILDDATA EQU $52
+ENGINE_TIME_CAPSULE EQU $53
+ENGINE_ALL_FRUIT_TREES EQU $54
+ENGINE_SHUCKLE_GIVEN EQU $55
+ENGINE_GOLDENROD_UNDERGROUND_MERCHANT_CLOSED EQU $56
+ENGINE_FOUGHT_IN_TRAINER_HALL_TODAY EQU $57
+ENGINE_MT_MOON_SQUARE_CLEFAIRY EQU $58
+ENGINE_UNION_CAVE_LAPRAS EQU $59
+ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT EQU $5a
+ENGINE_GOLDENROD_MALL_5F_HAPPINESS_EVENT EQU $5b
+ENGINE_TEA_IN_BLUES_HOUSE EQU $5c
+ENGINE_INDIGO_PLATEAU_RIVAL_FIGHT EQU $5d
+ENGINE_5E EQU $5e
+ENGINE_5F EQU $5f
+ENGINE_60 EQU $60
+ENGINE_GOLDENROD_DEPT_STORE_SALE_IS_ON EQU $61
+ENGINE_62 EQU $62
+ENGINE_PLAYER_IS_FEMALE EQU $63
+ENGINE_HAVE_EXAMINED_GS_BALL EQU $64
+ENGINE_JACK EQU $65
+ENGINE_HUEY EQU $66
+ENGINE_GAVEN EQU $67
+ENGINE_BETH EQU $68
+ENGINE_JOSE EQU $69
+ENGINE_REENA EQU $6a
+ENGINE_JOEY EQU $6b
+ENGINE_WADE EQU $6c
+ENGINE_RALPH EQU $6d
+ENGINE_LIZ EQU $6e
+ENGINE_ANTHONY EQU $6f
+ENGINE_TODD EQU $70
+ENGINE_GINA EQU $71
+ENGINE_ARNIE EQU $72
+ENGINE_ALAN EQU $73
+ENGINE_DANA EQU $74
+ENGINE_CHAD EQU $75
+ENGINE_TULLY EQU $76
+ENGINE_BRENT EQU $77
+ENGINE_TIFFANY EQU $78
+ENGINE_VANCE EQU $79
+ENGINE_WILTON EQU $7a
+ENGINE_PARRY EQU $7b
+ENGINE_ERIN EQU $7c
+ENGINE_BEVERLY_HAS_NUGGET EQU $7d
+ENGINE_JOSE_HAS_STAR_PIECE EQU $7e
+ENGINE_WADE_HAS_ITEM EQU $7f
+ENGINE_GINA_HAS_LEAF_STONE EQU $80
+ENGINE_ALAN_HAS_FIRE_STONE EQU $81
+ENGINE_LIZ_HAS_THUNDERSTONE EQU $82
+ENGINE_DEREK_HAS_NUGGET EQU $83
+ENGINE_TULLY_HAS_WATER_STONE EQU $84
+ENGINE_TIFFANY_HAS_PINK_BOW EQU $85
+ENGINE_WILTON_HAS_ITEM EQU $86
+ENGINE_87 EQU $87
+ENGINE_88 EQU $88
+ENGINE_89 EQU $89
+ENGINE_8A EQU $8a
+ENGINE_8B EQU $8b
+ENGINE_8C EQU $8c
+ENGINE_8D EQU $8d
+ENGINE_8E EQU $8e
+ENGINE_8F EQU $8f
+ENGINE_90 EQU $90
+ENGINE_91 EQU $91
+ENGINE_92 EQU $92
+ENGINE_93 EQU $93
+ENGINE_94 EQU $94
+ENGINE_95 EQU $95
+ENGINE_96 EQU $96
+ENGINE_97 EQU $97
+ENGINE_98 EQU $98
+ENGINE_99 EQU $99
+ENGINE_9A EQU $9a
+ENGINE_9B EQU $9b
+ENGINE_9C EQU $9c
+ENGINE_9D EQU $9d
+ENGINE_9E EQU $9e
+ENGINE_KRIS_IN_CABLE_CLUB EQU $9f
+ENGINE_DUNSPARCE_SWARM EQU $a0
+ENGINE_YANMA_SWARM EQU $a1
+
--- /dev/null
+++ b/constants/event_flags.asm
@@ -1,0 +1,6 @@
+EVENT_FOUGHT_SUDOWOODO EQU $02a
+EVENT_FOUGHT_HO_OH EQU $317
+EVENT_FOUGHT_LUGIA EQU $318
+EVENT_FOUGHT_SUICUNE EQU $335
+EVENT_FOUGHT_SNORLAX EQU $750
+
--- a/engine/bittable2.asm
+++ /dev/null
@@ -1,198 +1,0 @@
-; All locations are in WRAM bank 1.
-
- ; location, bit
-
- ; pokegear
- dwb $d957, %00000010 ; radio card
- dwb $d957, %00000001 ; map card
- dwb $d957, %00000100 ; phone card
- dwb $d957, %00001000 ; expn card
- dwb $d957, %10000000 ; on/off
-
- ; DaycareMan, %10000000 ; daycare 1 on
- dwb DaycareMan, %01000000 ; monster 1 and 2 are compatible
- ; DaycareMan, %00100000 ; egg is ready
- dwb DaycareMan, %00000001 ; monster 1 in daycare
-
- ; DaycareLady, %10000000 = daycare 2 on
- dwb DaycareLady, %00000001 ; monster 2 in daycare
-
- dwb $d854, %00000001 ; mom saving money
- dwb $d854, %10000000 ; dst
-
- dwb $dc39, %00000001
-
- dwb $d84c, %00000001 ; pokedex
- dwb $d84c, %00000010 ; unown dex
- dwb $d84c, %00001000 ; pokerus
- dwb $d84c, %00010000 ; rocket signal on ch20
- dwb $d84c, %01000000 ; credits skip
- dwb $d84c, %10000000 ; bug contest on
- dwb $d84d, %00000100 ; bug contest timer
- dwb $d84d, %00000010 ; rockets in radio tower
- dwb $d84d, %00000001 ; bike shop call enabled (1024 bike steps reqd)
- dwb $d84d, %00010000
- dwb $d84d, %00100000 ; give pokerus; berry -> berry juice when trading?
- dwb $d84d, %01000000
- dwb $d84d, %10000000 ; rockets in mahogany
-
- dwb $dbf5, %00000001 ; strength active
- dwb $dbf5, %00000010 ; always on bike (cant surf)
- dwb $dbf5, %00000100 ; 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
- dwb JohtoBadges, %01000000 ; glacierbadge
- dwb JohtoBadges, %10000000 ; 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
- dwb KantoBadges, %01000000 ; volcanobadge
- dwb KantoBadges, %10000000 ; 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
- dwb UnlockedUnowns, %01000000 ; 7
- dwb UnlockedUnowns, %10000000 ; 8
-
- ; fly
- dwb FlypointPerms, %00000001 ; your house
- dwb FlypointPerms, %00000010 ; viridian pokecenter
- dwb FlypointPerms, %00000100 ; pallet
- dwb FlypointPerms, %00001000 ; viridian
- dwb FlypointPerms, %00010000 ; pewter
- dwb FlypointPerms, %00100000 ; cerulean
- dwb FlypointPerms, %01000000 ; rock tunnel
- dwb FlypointPerms, %10000000 ; vermilion
- dwb FlypointPerms + 1, %00000001 ; lavender
- dwb FlypointPerms + 1, %00000010 ; saffron
- dwb FlypointPerms + 1, %00000100 ; celadon
- dwb FlypointPerms + 1, %00001000 ; fuchsia
- dwb FlypointPerms + 1, %00010000 ; cinnabar
- dwb FlypointPerms + 1, %00100000 ; indigo plateau
- dwb FlypointPerms + 1, %01000000 ; new bark
- dwb FlypointPerms + 1, %10000000 ; cherrygrove
- dwb FlypointPerms + 2, %00000001 ; violet
- dwb FlypointPerms + 2, %00000100 ; azalea
- dwb FlypointPerms + 2, %00001000 ; cianwood
- dwb FlypointPerms + 2, %00010000 ; goldenrod
- dwb FlypointPerms + 2, %00100000 ; olivine
- dwb FlypointPerms + 2, %01000000 ; ecruteak
- dwb FlypointPerms + 2, %10000000 ; mahogany
- dwb FlypointPerms + 3, %00000001 ; lake of rage
- dwb FlypointPerms + 3, %00000010 ; blackthorn
- dwb FlypointPerms + 3, %00000100 ; silver cave
- dwb FlypointPerms + 3, %00010000 ; unused
-
- dwb $dc9d, %00000001 ; lucky number show
- dwb $d84d, %00001000
-
- dwb $dc1e, %00000001 ; kurt making balls
- dwb $dc1e, %00000010
- dwb $dc1e, %00000100 ; special wilddata?
- dwb $dc1e, %00001000 ; time capsule (24h wait)
- dwb $dc1e, %00010000 ; all fruit trees
- dwb $dc1e, %00100000 ; shuckle given
- dwb $dc1e, %01000000 ; goldenrod underground merchant closed
- dwb $dc1e, %10000000 ; fought in trainer hall today
-
- dwb $dc1f, %00000001 ; mt moon square clefairy
- dwb $dc1f, %00000010 ; union cave lapras
- dwb $dc1f, %00000100 ; goldenrod underground haircut used
- dwb $dc1f, %00001000 ; goldenrod mall happiness event floor05 person07
- dwb $dc1f, %00010000 ; tea in blues house
- dwb $dc1f, %00100000 ; indigo plateau rival fight
- dwb $dc1f, %01000000
- dwb $dc1f, %10000000
-
- dwb $dc20, %00000001 ; $60
- dwb $dc20, %00000010 ; goldenrod dept store sale is on
-
- dwb $cfbc, %10000000 ; $62
-
- dwb PlayerGender, %00000001 ; player is female
-
- dwb $dbf3, %00000100 ; have gs ball after kurt examined it
-
- ; rematches
- dwb $dc4c, %00000001 ; jack
- dwb $dc4c, %00000010 ; huey
- dwb $dc4c, %00000100 ; gaven
- dwb $dc4c, %00001000 ; beth
- dwb $dc4c, %00010000 ; jose
- dwb $dc4c, %00100000 ; reena
- dwb $dc4c, %01000000 ; joey
- dwb $dc4c, %10000000 ; wade
- dwb $dc4d, %00000001 ; ralph
- dwb $dc4d, %00000010 ; liz
- dwb $dc4d, %00000100 ; anthony
- dwb $dc4d, %00001000 ; todd
- dwb $dc4d, %00010000 ; gina
- dwb $dc4d, %00100000 ; arnie
- dwb $dc4d, %01000000 ; alan
- dwb $dc4d, %10000000 ; dana
- dwb $dc4e, %00000001 ; chad
- dwb $dc4e, %00000010 ; tully
- dwb $dc4e, %00000100 ; brent
- dwb $dc4e, %00001000 ; tiffany
- dwb $dc4e, %00010000 ; vance
- dwb $dc4e, %00100000 ; wilton
- dwb $dc4e, %01000000 ; parry
- dwb $dc4e, %10000000 ; erin
-
- dwb $dc50, %00000001 ; beverly has nugget
- dwb $dc50, %00000010 ; jose has star piece
- dwb $dc50, %00000100 ; wade has item (see bittable1 $032b-e)
- dwb $dc50, %00001000 ; gina has leaf stone
- dwb $dc50, %00010000 ; alan has fire stone
- dwb $dc50, %00100000 ; liz has thunderstone
- dwb $dc50, %01000000 ; derek has nugget
- dwb $dc50, %10000000 ; tully has water stone
-
- dwb $dc51, %00000001 ; tiffany has pink bow
- dwb $dc51, %00000010 ; wilton has item (see bittable1 $032f-31)
-
- dwb $dc54, %00000001
- dwb $dc54, %00000010
- dwb $dc54, %00000100
- dwb $dc54, %00001000
- dwb $dc54, %00010000
- dwb $dc54, %00100000
- dwb $dc54, %01000000
- dwb $dc54, %10000000
-
- dwb $dc55, %00000001
- dwb $dc55, %00000010
- dwb $dc55, %00000100
- dwb $dc55, %00001000
- dwb $dc55, %00010000
- dwb $dc55, %00100000
- dwb $dc55, %01000000
- dwb $dc55, %10000000
-
- dwb $dc56, %00000001
- dwb $dc56, %00000010
- dwb $dc56, %00000100
- dwb $dc56, %00001000
- dwb $dc56, %00010000
- dwb $dc56, %00100000
- dwb $dc56, %01000000
- dwb $dc56, %10000000
-
- dwb $d45b, %00000100 ; female player has been transformed into male
-
- dwb $dc20, %00000100 ; dunsparce swarm
- dwb $dc20, %00001000 ; yanma swarm
--- /dev/null
+++ b/engine/engine_flags.asm
@@ -1,0 +1,198 @@
+; All locations are in WRAM bank 1.
+
+ ; location, bit
+
+ ; pokegear
+ dwb $d957, %00000010 ; radio card
+ dwb $d957, %00000001 ; map card
+ dwb $d957, %00000100 ; phone card
+ dwb $d957, %00001000 ; expn card
+ dwb $d957, %10000000 ; on/off
+
+ ; DaycareMan, %10000000 ; daycare 1 on
+ dwb DaycareMan, %01000000 ; monster 1 and 2 are compatible
+ ; DaycareMan, %00100000 ; egg is ready
+ dwb DaycareMan, %00000001 ; monster 1 in daycare
+
+ ; DaycareLady, %10000000 = daycare 2 on
+ dwb DaycareLady, %00000001 ; monster 2 in daycare
+
+ dwb $d854, %00000001 ; mom saving money
+ dwb $d854, %10000000 ; dst
+
+ dwb $dc39, %00000001
+
+ dwb $d84c, %00000001 ; pokedex
+ dwb $d84c, %00000010 ; unown dex
+ dwb $d84c, %00001000 ; pokerus
+ dwb $d84c, %00010000 ; rocket signal on ch20
+ dwb $d84c, %01000000 ; credits skip
+ dwb $d84c, %10000000 ; bug contest on
+ dwb $d84d, %00000100 ; bug contest timer
+ dwb $d84d, %00000010 ; rockets in radio tower
+ dwb $d84d, %00000001 ; bike shop call enabled (1024 bike steps reqd)
+ dwb $d84d, %00010000
+ dwb $d84d, %00100000 ; give pokerus; berry -> berry juice when trading?
+ dwb $d84d, %01000000
+ dwb $d84d, %10000000 ; rockets in mahogany
+
+ dwb $dbf5, %00000001 ; strength active
+ dwb $dbf5, %00000010 ; always on bike (cant surf)
+ dwb $dbf5, %00000100 ; 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
+ dwb JohtoBadges, %01000000 ; glacierbadge
+ dwb JohtoBadges, %10000000 ; 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
+ dwb KantoBadges, %01000000 ; volcanobadge
+ dwb KantoBadges, %10000000 ; 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
+ dwb UnlockedUnowns, %01000000 ; 7
+ dwb UnlockedUnowns, %10000000 ; 8
+
+ ; fly
+ dwb FlypointPerms, %00000001 ; your house
+ dwb FlypointPerms, %00000010 ; viridian pokecenter
+ dwb FlypointPerms, %00000100 ; pallet
+ dwb FlypointPerms, %00001000 ; viridian
+ dwb FlypointPerms, %00010000 ; pewter
+ dwb FlypointPerms, %00100000 ; cerulean
+ dwb FlypointPerms, %01000000 ; rock tunnel
+ dwb FlypointPerms, %10000000 ; vermilion
+ dwb FlypointPerms + 1, %00000001 ; lavender
+ dwb FlypointPerms + 1, %00000010 ; saffron
+ dwb FlypointPerms + 1, %00000100 ; celadon
+ dwb FlypointPerms + 1, %00001000 ; fuchsia
+ dwb FlypointPerms + 1, %00010000 ; cinnabar
+ dwb FlypointPerms + 1, %00100000 ; indigo plateau
+ dwb FlypointPerms + 1, %01000000 ; new bark
+ dwb FlypointPerms + 1, %10000000 ; cherrygrove
+ dwb FlypointPerms + 2, %00000001 ; violet
+ dwb FlypointPerms + 2, %00000100 ; azalea
+ dwb FlypointPerms + 2, %00001000 ; cianwood
+ dwb FlypointPerms + 2, %00010000 ; goldenrod
+ dwb FlypointPerms + 2, %00100000 ; olivine
+ dwb FlypointPerms + 2, %01000000 ; ecruteak
+ dwb FlypointPerms + 2, %10000000 ; mahogany
+ dwb FlypointPerms + 3, %00000001 ; lake of rage
+ dwb FlypointPerms + 3, %00000010 ; blackthorn
+ dwb FlypointPerms + 3, %00000100 ; silver cave
+ dwb FlypointPerms + 3, %00010000 ; unused
+
+ dwb $dc9d, %00000001 ; lucky number show
+ dwb $d84d, %00001000
+
+ dwb $dc1e, %00000001 ; kurt making balls
+ dwb $dc1e, %00000010
+ dwb $dc1e, %00000100 ; special wilddata?
+ dwb $dc1e, %00001000 ; time capsule (24h wait)
+ dwb $dc1e, %00010000 ; all fruit trees
+ dwb $dc1e, %00100000 ; shuckle given
+ dwb $dc1e, %01000000 ; goldenrod underground merchant closed
+ dwb $dc1e, %10000000 ; fought in trainer hall today
+
+ dwb $dc1f, %00000001 ; mt moon square clefairy
+ dwb $dc1f, %00000010 ; union cave lapras
+ dwb $dc1f, %00000100 ; goldenrod underground haircut used
+ dwb $dc1f, %00001000 ; goldenrod mall happiness event floor05 person07
+ dwb $dc1f, %00010000 ; tea in blues house
+ dwb $dc1f, %00100000 ; indigo plateau rival fight
+ dwb $dc1f, %01000000
+ dwb $dc1f, %10000000
+
+ dwb $dc20, %00000001 ; $60
+ dwb $dc20, %00000010 ; goldenrod dept store sale is on
+
+ dwb $cfbc, %10000000 ; $62
+
+ dwb PlayerGender, %00000001 ; player is female
+
+ dwb $dbf3, %00000100 ; have gs ball after kurt examined it
+
+ ; rematches
+ dwb $dc4c, %00000001 ; jack
+ dwb $dc4c, %00000010 ; huey
+ dwb $dc4c, %00000100 ; gaven
+ dwb $dc4c, %00001000 ; beth
+ dwb $dc4c, %00010000 ; jose
+ dwb $dc4c, %00100000 ; reena
+ dwb $dc4c, %01000000 ; joey
+ dwb $dc4c, %10000000 ; wade
+ dwb $dc4d, %00000001 ; ralph
+ dwb $dc4d, %00000010 ; liz
+ dwb $dc4d, %00000100 ; anthony
+ dwb $dc4d, %00001000 ; todd
+ dwb $dc4d, %00010000 ; gina
+ dwb $dc4d, %00100000 ; arnie
+ dwb $dc4d, %01000000 ; alan
+ dwb $dc4d, %10000000 ; dana
+ dwb $dc4e, %00000001 ; chad
+ dwb $dc4e, %00000010 ; tully
+ dwb $dc4e, %00000100 ; brent
+ dwb $dc4e, %00001000 ; tiffany
+ dwb $dc4e, %00010000 ; vance
+ dwb $dc4e, %00100000 ; wilton
+ dwb $dc4e, %01000000 ; parry
+ dwb $dc4e, %10000000 ; erin
+
+ dwb $dc50, %00000001 ; beverly has nugget
+ dwb $dc50, %00000010 ; jose has star piece
+ dwb $dc50, %00000100 ; wade has item (see bittable1 $032b-e)
+ dwb $dc50, %00001000 ; gina has leaf stone
+ dwb $dc50, %00010000 ; alan has fire stone
+ dwb $dc50, %00100000 ; liz has thunderstone
+ dwb $dc50, %01000000 ; derek has nugget
+ dwb $dc50, %10000000 ; tully has water stone
+
+ dwb $dc51, %00000001 ; tiffany has pink bow
+ dwb $dc51, %00000010 ; wilton has item (see bittable1 $032f-31)
+
+ dwb $dc54, %00000001
+ dwb $dc54, %00000010
+ dwb $dc54, %00000100
+ dwb $dc54, %00001000
+ dwb $dc54, %00010000
+ dwb $dc54, %00100000
+ dwb $dc54, %01000000
+ dwb $dc54, %10000000
+
+ dwb $dc55, %00000001
+ dwb $dc55, %00000010
+ dwb $dc55, %00000100
+ dwb $dc55, %00001000
+ dwb $dc55, %00010000
+ dwb $dc55, %00100000
+ dwb $dc55, %01000000
+ dwb $dc55, %10000000
+
+ dwb $dc56, %00000001
+ dwb $dc56, %00000010
+ dwb $dc56, %00000100
+ dwb $dc56, %00001000
+ dwb $dc56, %00010000
+ dwb $dc56, %00100000
+ dwb $dc56, %01000000
+ dwb $dc56, %10000000
+
+ dwb $d45b, %00000100 ; female player has been transformed into male
+
+ dwb $dc20, %00000100 ; dunsparce swarm
+ dwb $dc20, %00001000 ; yanma swarm
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -843,7 +843,7 @@
ld d, [hl]
call GetScriptByte
ld b, a
- call BitTable1Func
+ call EventFlagAction
ld a, c
and a
ret z
@@ -1256,7 +1256,7 @@
xor a
ret
.asm_97321
- call BitTable1Func
+ call EventFlagAction
ret
; 0x97325
@@ -1497,9 +1497,9 @@
Script_startbattle: ; 0x97436
; script command 0x5f
- call $2879
- ld a, $16
- call $2d83
+ call Function2879
+ ld a, PREDEF_START_BATTLE
+ call Predef
ld a, [$d0ee]
and $3f
ld [$c2dd], a
@@ -2677,7 +2677,7 @@
call GetScriptByte
ld d, a
ld b, $1
- call BitTable1Func
+ call EventFlagAction
ret
; 0x97996
@@ -2691,7 +2691,7 @@
call GetScriptByte
ld d, a
ld b, $0
- call BitTable1Func
+ call EventFlagAction
ret
; 0x979a4
@@ -2705,7 +2705,7 @@
call GetScriptByte
ld d, a
ld b, $2
- call BitTable1Func
+ call EventFlagAction
ld a, c
and a
jr z, .asm_979b7 ; 0x979b3 $2
--- a/main.asm
+++ b/main.asm
@@ -100,7 +100,6 @@
ld a, [VramState]
bit 0, a ; obj update
ret z
-; 47e
TimeOfDayPals: ; 47e
callab _TimeOfDayPals
@@ -171,7 +170,7 @@
ld a, [hli]
ld d, a
call DmgToCgbObjPals
- ld c, $8
+ ld c, 8
call DelayFrames
pop de
dec b
@@ -216,7 +215,7 @@
call DmgToCgbObjPals
ld a, [hld]
call DmgToCgbBGPals
- ld c, $8
+ ld c, 8
call DelayFrames
pop de
dec b
@@ -282,41 +281,33 @@
DisableLCD: ; 568
; Turn the LCD off
-; Most of this is just going through the motions
-; don't need to do anything if lcd is already off
+; Don't need to do anything if the LCD is already off
ld a, [rLCDC]
bit 7, a ; lcd enable
ret z
-
-; reset ints
+
xor a
ld [rIF], a
-
-; save enabled ints
ld a, [rIE]
ld b, a
-; disable vblank
+; Disable VBlank
res 0, a ; vblank
ld [rIE], a
-
+
.wait
-; wait until vblank
+; Wait until VBlank would normally happen
ld a, [rLY]
- cp 145 ; >144 (ensure beginning of vblank)
+ cp 145
jr nz, .wait
-
-; turn lcd off
+
ld a, [rLCDC]
and %01111111 ; lcd enable off
ld [rLCDC], a
-
-; reset ints
+
xor a
ld [rIF], a
-
-; restore enabled ints
ld a, b
ld [rIE], a
ret
@@ -355,13 +346,9 @@
UpdateTime: ; 5a7
-; get rtc data
call GetClock
-; condense days to one byte, update rtc w/ new day count
call FixDays
-; add game time to rtc time
call FixTime
-; update time of day (0 = morn, 1 = day, 2 = nite)
callba GetTimeOfDay
ret
; 5b7
@@ -373,40 +360,38 @@
; enable clock r/w
ld a, SRAM_ENABLE
ld [MBC3SRamEnable], a
-
-; get clock data
-; stored 'backwards' in hram
-
+
+; clock data is 'backwards' in hram
+
call LatchClock
ld hl, MBC3SRamBank
ld de, MBC3RTC
-
-; seconds
+
ld [hl], RTC_S
ld a, [de]
and $3f
ld [hRTCSeconds], a
-; minutes
+
ld [hl], RTC_M
ld a, [de]
and $3f
ld [hRTCMinutes], a
-; hours
+
ld [hl], RTC_H
ld a, [de]
and $1f
ld [hRTCHours], a
-; day lo
+
ld [hl], RTC_DL
ld a, [de]
ld [hRTCDayLo], a
-; day hi
+
ld [hl], RTC_DH
ld a, [de]
ld [hRTCDayHi], a
-
-; cleanup
- call CloseSRAM ; unlatch clock, disable clock r/w
+
+; unlatch clock / disable clock r/w
+ call CloseSRAM
ret
; 5e8
@@ -2743,7 +2728,7 @@
Function1852: ; 1852
ld a, [StandingTile]
call GetTileCollision
- sub $1
+ sub 1
ret z
and a
ret
@@ -7266,12 +7251,12 @@
; 2e6f
-BitTable1Func: ; 0x2e6f
- ld hl, $da72
- call BitTableFunc
+EventFlagAction: ; 0x2e6f
+ ld hl, EventFlags
+ call FlagAction
ret
-BitTableFunc: ; 0x2e76
+FlagAction: ; 0x2e76
; Perform a function on a bit in memory.
; inputs:
@@ -7341,9 +7326,9 @@
Function2ead: ; 2ead
- ld de, $000b
- ld b, $2
- callba GetFlag2
+ ld de, ENGINE_POKEDEX
+ ld b, CHECK_FLAG
+ callba EngineFlagAction
ld a, c
and a
ret
@@ -9224,7 +9209,7 @@
inc hl
ld d, [hl]
ld b, CHECK_FLAG
- call BitTable1Func
+ call EventFlagAction
ld a, c
pop de
pop bc
@@ -9379,7 +9364,7 @@
ld e, l
push de
ld b, $2
- call BitTable1Func
+ call EventFlagAction
pop de
ld a, c
and a
@@ -18031,7 +18016,7 @@
ld de, SpecialShuckleOT
call CopyName2
-; Bittable2 flag for this event.
+; Engine flag for this event.
ld hl, $dc1e
set 5, [hl]
@@ -19156,7 +19141,7 @@
dwb FillBox, BANK(FillBox)
dwb Function3d873, BANK(Function3d873)
dwb Function3e036, BANK(Function3e036) ; UpdateEnemyHUD
- dwb Function3f4c1, BANK(Function3f4c1)
+ dwb StartBattle, BANK(StartBattle)
dwb FillInExpBar, BANK(FillInExpBar)
dwb Function3f43d, BANK(Function3f43d)
dwb Function3f47c, BANK(Function3f47c)
@@ -19186,7 +19171,7 @@
dwb $464c, $02 ; LoadSGBLayout, BANK(LoadSGBLayout)
dwb $5d11, $24
dwb CheckContestMon, BANK(CheckContestMon)
- dwb $420f, $23
+ dwb Function8c20f, BANK(Function8c20f)
dwb $4000, $23
dwb $4000, $23
dwb Functioncc0d6, BANK(Functioncc0d6)
@@ -20302,7 +20287,7 @@
dbw BANK(SpecialGameboyCheck),SpecialGameboyCheck
dbw BANK(SpecialTrainerHouse),SpecialTrainerHouse
dbw $05, $6dc7
- dbw BANK(SpecialRoamMons), SpecialRoamMons
+ dbw BANK(InitRoamMons), InitRoamMons
dbw $03, $448f
dbw $03, $449f
dbw $03, $44ac
@@ -20752,7 +20737,7 @@
GetPartyNick: ; c706
; write CurPartyMon nickname to StringBuffer1-3
ld hl, PartyMon1Nickname
- ld a, $02
+ ld a, BOXMON
ld [MonType], a
ld a, [CurPartyMon]
call GetNick
@@ -20764,12 +20749,11 @@
ret
; c721
-CheckFlag2: ; c721
-; using bittable2
-; check flag id in de
-; return carry if flag is not set
- ld b, $02 ; check flag
- callba GetFlag2
+CheckEngineFlag: ; c721
+; Check engine flag de
+; Return carry if flag is not set
+ ld b, CHECK_FLAG
+ callba EngineFlagAction
ld a, c
and a
jr nz, .isset
@@ -20781,8 +20765,9 @@
; c731
CheckBadge: ; c731
-; input: a = badge flag id ($1b-$2b)
- call CheckFlag2
+; Check engine flag a (ENGINE_ZEPHYRBADGE thru ENGINE_EARTHBADGE)
+; Display "Badge required" text and return carry if the badge is not owned
+ call CheckEngineFlag
ret nc
ld hl, BadgeRequiredText
call Function1d67 ; push text to queue
@@ -20791,8 +20776,10 @@
; c73d
BadgeRequiredText: ; c73d
- TX_FAR _BadgeRequiredText ; Sorry! A new BADGE
- db "@" ; is required.
+ ; Sorry! A new BADGE
+ ; is required.
+ TX_FAR _BadgeRequiredText
+ db "@"
; c742
CheckPartyMove: ; c742
@@ -20972,10 +20959,9 @@
; c8b5
Functionc8b5: ; c8b5
- ld de, $001b
- ld a, $3
- ld hl, $4731
- rst FarCall
+; Flash
+ ld de, ENGINE_ZEPHYRBADGE
+ callba CheckBadge
jr c, .asm_c8dd
push hl
ld a, $22
@@ -21135,8 +21121,8 @@
call CheckDirection
jr c, .quit
- ld de, $1e ; FLAG_FOG_BADGE
- call CheckFlag2
+ ld de, ENGINE_FOGBADGE
+ call CheckEngineFlag
jr c, .quit
ld d, SURF
@@ -21199,13 +21185,13 @@
Functionca52: ; ca52
; Fly
- ld de, $0020 ; storm badge
+ ld de, ENGINE_STORMBADGE
call CheckBadge
jr c, .asm_ca85
call GetMapPermission
call CheckOutdoorMap
jr z, .asm_ca64
- jr .asm_ca88
+ jr .indoors
.asm_ca64
xor a
@@ -21227,7 +21213,7 @@
ld a, $82
ret
-.asm_ca88
+.indoors
ld a, $2
ret
@@ -21239,7 +21225,7 @@
; ca94
Functionca94: ; ca94
- ld hl, Datacaa3
+ ld hl, UnknownScript_0xcaa3
call Function31cd
ld a, $81
ret
@@ -21251,9 +21237,30 @@
ret
; caa3
-Datacaa3: ; caa3
-INCBIN "baserom.gbc", $caa3, $cade - $caa3
+UnknownScript_0xcaa3: ; 0xcaa3
+ reloadmappart
+ 3callasm BANK(HideSprites), HideSprites
+ special $0035
+ 3callasm $23, $4aed
+ 3call BANK(UnknownScript_0x122c1), UnknownScript_0x122c1
+ special $0000
+ 3callasm $05, $54f1
+ writecode $8, $0
+ newloadmap $fc
+ 3callasm $23, $4b33
+ special $003b
+ 3callasm BANK(Functioncacb), Functioncacb
+ end
+; 0xcacb
+Functioncacb: ; cacb
+ callba Function561d
+ call DelayFrame
+ call Functione4a
+ callba Function106594
+ ret
+; cade
+
Functioncade: ; cade
call Functioncae7
and $7f
@@ -21262,15 +21269,14 @@
; cae7
Functioncae7: ; cae7
- ld de, $0022
- ld a, $3
- ld hl, $4731
- rst FarCall
+; Waterfall
+ ld de, ENGINE_RISINGBADGE
+ callba CheckBadge
ld a, $80
ret c
call Functioncb07
jr c, .asm_cb01
- ld hl, $4b1c
+ ld hl, UnknownScript_0xcb1c
call Function31cd
ld a, $81
ret
@@ -21284,7 +21290,7 @@
Functioncb07: ; cb07
ld a, [PlayerDirection]
and $c
- cp $4
+ cp FACE_UP
jr nz, .asm_cb1a
ld a, [TileUp]
call CheckWaterfallTile
@@ -21297,7 +21303,9 @@
ret
; cb1c
-INCBIN "baserom.gbc", $cb1c, $cb20 - $cb1c
+UnknownScript_0xcb1c: ; 0xcb1c
+ reloadmappart
+ special $0035
UnknownScript_0xcb20: ; 0xcb20
3callasm BANK(GetPartyNick), GetPartyNick
@@ -21340,8 +21348,8 @@
ld d, WATERFALL
call CheckPartyMove
jr c, .asm_cb74
- ld de, $0022
- call CheckFlag2
+ ld de, ENGINE_RISINGBADGE
+ call CheckEngineFlag
jr c, .asm_cb74
call Functioncb07
jr c, .asm_cb74
@@ -21425,7 +21433,8 @@
; ccee
Functionccee: ; ccee
- ld de, $001d
+; Strength
+ ld de, ENGINE_PLAINBADGE
call CheckBadge
jr c, Functioncd06
jr Functioncd09
@@ -21533,8 +21542,8 @@
ld d, WHIRLPOOL
call CheckPartyMove
jr c, .asm_ce5c
- ld de, $0021
- call CheckFlag2
+ ld de, ENGINE_GLACIERBADGE
+ call CheckEngineFlag
jr c, .asm_ce5c
call Functioncdde
jr c, .asm_ce5c
@@ -21680,6 +21689,7 @@
ret
; cfa5
+
INCBIN "baserom.gbc", $cfa5, $d0b3 - $cfa5
@@ -21779,8 +21789,8 @@
ld d, CUT
call CheckPartyMove
jr c, .asm_d19f
- ld de, $001c
- call CheckFlag2
+ ld de, ENGINE_HIVEBADGE
+ call CheckEngineFlag
jr c, .asm_d19f
ld a, BANK(UnknownScript_0xd1a9)
ld hl, UnknownScript_0xd1a9
@@ -26374,9 +26384,7 @@
; 12e6a
Function12e6a: ; 12e6a
- ld a, $3
- ld hl, $4ce5
- rst FarCall
+ callba Functioncce5
ld a, [$d0ec]
cp $1
jr nz, .asm_12e7c
@@ -27369,7 +27377,7 @@
push hl
ld a, [$d041]
ld e, a
- ld d, $0
+ ld d, 0
ld hl, $d0f1
add hl, de
ld a, [hl]
@@ -27393,8 +27401,8 @@
Function13575: ; 13575
push de
ld e, a
- ld d, $0
- ld hl, $7583
+ ld d, 0
+ ld hl, .floors
add hl, de
add hl, de
ld a, [hli]
@@ -27404,8 +27412,61 @@
ret
; 13583
-INCBIN "baserom.gbc", $13583, $135eb - $13583
+.floors
+ dw .b4f
+ dw .b3f
+ dw .b2f
+ dw .b1f
+ dw ._1f
+ dw ._2f
+ dw ._3f
+ dw ._4f
+ dw ._5f
+ dw ._6f
+ dw ._7f
+ dw ._8f
+ dw ._9f
+ dw ._10f
+ dw ._11f
+ dw .roof
+.b4f
+ db "B4F@"
+.b3f
+ db "B3F@"
+.b2f
+ db "B2F@"
+.b1f
+ db "B1F@"
+._1f
+ db "1F@"
+._2f
+ db "2F@"
+._3f
+ db "3F@"
+._4f
+ db "4F@"
+._5f
+ db "5F@"
+._6f
+ db "6F@"
+._7f
+ db "7F@"
+._8f
+ db "8F@"
+._9f
+ db "9F@"
+._10f
+ db "10F@"
+._11f
+ db "11F@"
+.roof
+ db "ROOF@"
+; 135db
+
+
+INCBIN "baserom.gbc", $135db, $135eb - $135db
+
UnknownScript_0x135eb: ; 0x135eb
writecode $3, $6
battlecheck
@@ -27419,7 +27480,7 @@
INCBIN "baserom.gbc", $135f8, $13603 - $135f8
UnknownScript_0x13603: ; 0x13603
- playsound $0027
+ playsound SFX_ELEVATOR_END
loadfont
2writetext UnknownText_0x13614
closetext
@@ -27434,9 +27495,55 @@
db $50
; 0x13619
-INCBIN "baserom.gbc", $13619, $13b87 - $13619
+INCBIN "baserom.gbc", $13619, $1365b - $13619
+Function1365b: ; 1365b
+ ld a, c
+ ld de, .table2 - .table1
+ ld hl, .table1
+ call IsInArray
+ jr nc, .asm_1367f
+
+ ld a, $c ; jumpstd
+ ld [$d03f], a
+ inc hl
+ ld a, [hli]
+ ld [$d03f + 1], a
+ ld a, [hli]
+ ld [$d03f + 2], a
+ ld a, BANK(UnknownScript_0x1369a)
+ ld hl, UnknownScript_0x1369a
+ call PushScriptPointer
+ scf
+ ret
+
+.asm_1367f
+ xor a
+ ret
+; 13681
+
+.table1
+ dbw $91, $0003 ; bookshelf
+.table2
+ dbw $93, $0031 ; pc
+ dbw $94, $000b ; radio
+ dbw $95, $0007 ; map
+ dbw $96, $0006 ; merchandise
+ dbw $97, $0009 ; tv
+ dbw $9d, $0008 ; window
+ dbw $9f, $0005 ; incense burner
+ dbw $ff ; end
+; 1369a
+
+UnknownScript_0x1369a: ; 0x1369a
+ 2jump $d03f
+; 0x1369d
+
+
+INCBIN "baserom.gbc", $1369d, $13b87 - $1369d
+
+
GetSquareRoot: ; 13b87
; Return the square root of de in b.
@@ -30776,7 +30883,7 @@
ld d, $0
ld b, $1
ld hl, WalkingDirection
- call BitTableFunc
+ call FlagAction
call Function15fc3
ld de, Money
ld bc, $ffc3
@@ -30838,7 +30945,7 @@
ld d, $0
ld b, $2
ld hl, WalkingDirection
- call BitTableFunc
+ call FlagAction
ld a, c
and a
jr nz, .asm_15dd8
@@ -34862,7 +34969,7 @@
push bc
call Function26a30
pop bc
- call BitTable1Func
+ call EventFlagAction
ret
; 26a44
@@ -35243,30 +35350,95 @@
SECTION "bankA",ROMX,BANK[$A]
-INCBIN "baserom.gbc", $28000, $2a111 - $28000
+INCBIN "baserom.gbc", $28000, $2a0e7 - $28000
+Function2a0e7: ; 2a0e7
+; Try to trigger a wild encounter.
+ call Function2a103
+ jr nc, .asm_2a0f8
+ call Function2a14f
+ jr nz, .asm_2a0f8
+ call Function2a1df
+ jr nc, .asm_2a0f8
+ xor a
+ ret
+
+.asm_2a0f8
+ xor a
+ ld [$d22e], a
+ ld [BattleType], a
+ ld a, 1
+ and a
+ ret
+; 2a103
+
+Function2a103: ; 2a103
+ call Function2a111
+ call Function2a124
+ call Function2a138
+ call RNG
+ cp b
+ ret
+; 2a111
+
Function2a111: ; 2a111
ld hl, $d25a
call Function1852
- ld a, $3
+ ld a, 3
jr z, .asm_2a11e
ld a, [TimeOfDay]
-
.asm_2a11e
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
ld b, [hl]
ret
; 2a124
-INCBIN "baserom.gbc", $2a124, $2a14f - $2a124
+Function2a124: ; 2a124
+; Pokemon March and Ruins of Alph signal double encounter rate.
+; Pokemon Lullaby halves encounter rate.
+ ld a, [CurMusic]
+ cp MUSIC_POKEMON_MARCH
+ jr z, .asm_2a135
+ cp MUSIC_RUINS_OF_ALPH_RADIO
+ jr z, .asm_2a135
+ cp MUSIC_POKEMON_LULLABY
+ ret nz
+ srl b
+ ret
+.asm_2a135
+ sla b
+ ret
+; 2a138
+
+Function2a138: ; 2a138
+; Cleanse Tag halves encounter rate.
+ ld hl, PartyMon1Item
+ ld de, PartyMon2 - PartyMon1
+ ld a, [PartyCount]
+ ld c, a
+.next
+ ld a, [hl]
+ cp CLEANSE_TAG
+ jr z, .asm_2a14c
+ add hl, de
+ dec c
+ jr nz, .next
+ ret
+
+.asm_2a14c
+ srl b
+ ret
+; 2a14f
+
Function2a14f: ; 2a14f
call Function2a200
- jp nc, $61c1
+ jp nc, .asm_2a1c1
call Function2a2ce
- jp c, $61c9
+ jp c, .asm_2a1c9
+
inc hl
inc hl
inc hl
@@ -35276,7 +35448,7 @@
inc hl
inc hl
ld a, [TimeOfDay]
- ld bc, $000e
+ ld bc, $e
call AddNTimes
ld de, $61cb
@@ -35284,7 +35456,7 @@
push hl
.asm_2a175
call RNG
- cp $64
+ cp 100
jr nc, .asm_2a175
inc a
ld b, a
@@ -35299,7 +35471,7 @@
.asm_2a187
ld c, [hl]
- ld b, $0
+ ld b, 0
pop hl
add hl, bc
ld a, [hli]
@@ -35306,17 +35478,18 @@
ld b, a
call Function1852
jr nz, .asm_2a1aa
+
call RNG
- cp $59
+ cp 89
jr c, .asm_2a1aa
inc b
- cp $a5
+ cp 165
jr c, .asm_2a1aa
inc b
- cp $d8
+ cp 216
jr c, .asm_2a1aa
inc b
- cp $f2
+ cp 242
jr c, .asm_2a1aa
inc b
@@ -35326,9 +35499,11 @@
ld b, [hl]
call Function2a4a0
jr c, .asm_2a1c1
+
ld a, b
- cp $c9
+ cp UNOWN
jr nz, .asm_2a1bf
+
ld a, [UnlockedUnowns]
and a
jr z, .asm_2a1c1
@@ -35337,7 +35512,7 @@
jr .asm_2a1c5
.asm_2a1c1
- ld a, $1
+ ld a, 1
and a
ret
@@ -35344,22 +35519,57 @@
.asm_2a1c5
ld a, b
ld [$d22e], a
+
+.asm_2a1c9
xor a
ret
; 2a1cb
-INCBIN "baserom.gbc", $2a1cb, $2a200 - $2a1cb
+INCBIN "baserom.gbc", $2a1cb, $2a1df - $2a1cb
+
+
+Function2a1df: ; 2a1df
+ ld a, [$dca1]
+ and a
+ jr z, .asm_2a1fe
+ ld hl, PartyMon1CurHP
+ ld bc, PartyMon2 - PartyMon1 - 1
+.asm_2a1eb
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_2a1f2
+ add hl, bc
+ jr .asm_2a1eb
+
+.asm_2a1f2
+; to PartyMonLevel
+ dec hl
+ dec hl
+ dec hl
+ dec hl
+
+ ld a, [CurPartyLevel]
+ cp [hl]
+ jr nc, .asm_2a1fe
+ and a
+ ret
+
+.asm_2a1fe
+ scf
+ ret
+; 2a200
+
Function2a200: ; 2a200
call Function1852
jr z, .asm_2a21d
ld hl, WildMons5
ld bc, $002f
- call $623d
+ call .asm_2a23d
ret c
ld hl, WildMons1
ld de, WildMons3
- call $6235
+ call .asm_2a235
ld bc, $002f
jr .asm_2a27a
@@ -35366,14 +35576,15 @@
.asm_2a21d
ld hl, WildMons6
ld bc, $0009
- call $623d
+ call .asm_2a23d
ret c
ld hl, WildMons2
ld de, WildMons4
- call $6235
+ call .asm_2a235
ld bc, $0009
jr .asm_2a27a
+.asm_2a235
call Function2f17
and a
ret z
@@ -35381,7 +35592,8 @@
ld l, e
ret
- call $627f
+.asm_2a23d
+ call Function2a27f
push hl
ld hl, $dc20
bit 2, [hl]
@@ -35393,7 +35605,7 @@
ld a, [$dfcd]
cp e
jr nz, .asm_2a25c
- call $6288
+ call Function2a288
jr nc, .asm_2a278
scf
ret
@@ -35410,7 +35622,7 @@
ld a, [$dc5b]
cp e
jr nz, .asm_2a278
- call $6288
+ call Function2a288
jr nc, .asm_2a278
scf
ret
@@ -35420,16 +35632,19 @@
ret
.asm_2a27a
- call $627f
- jr .asm_2a288
+ call Function2a27f
+ jr Function2a288
+; 2a27f
+Function2a27f: ; 2a27f
ld a, [MapGroup]
ld d, a
ld a, [MapNumber]
ld e, a
ret
+; 2a288
-.asm_2a288
+Function2a288: ; 2a288
push hl
ld a, [hl]
inc a
@@ -35445,7 +35660,7 @@
.asm_2a296
pop hl
add hl, bc
- jr .asm_2a288
+ jr Function2a288
.asm_2a29a
pop hl
@@ -35458,9 +35673,9 @@
ret
; 2a2a0
-SpecialRoamMons: ; 2a2a0
+
+InitRoamMons: ; 2a2a0
; initialize RoamMon structs
-; include commented-out parts from the gs function
; species
ld a, RAIKOU
@@ -35508,17 +35723,17 @@
push hl
call Function1852
jr z, .asm_2a30a
- call $627f
+ call Function2a27f
call RNG
- cp $64
+ cp 100
jr nc, .asm_2a30a
- and $3
+ and 3
jr z, .asm_2a30a
dec a
ld hl, RoamMon1MapGroup
ld c, a
- ld b, $0
- ld a, $7
+ ld b, 0
+ ld a, 7
call AddNTimes
ld a, d
cp [hl]
@@ -35534,7 +35749,7 @@
ld [$d22e], a
ld a, [hl]
ld [CurPartyLevel], a
- ld a, $5
+ ld a, BATTLETYPE_ROAMING
ld [BattleType], a
pop hl
scf
@@ -36531,13 +36746,14 @@
ret
; 2ee2f
+
Function2ee2f: ; 2ee2f
xor a
ld [$ffde], a
call DelayFrame
- ld b, $6
+ ld b, 6
ld hl, PartyMon1CurHP
- ld de, $002f
+ ld de, PartyMon2 - PartyMon1 - 1
.asm_2ee3d
ld a, [hli]
or [hl]
@@ -36547,16 +36763,14 @@
jr nz, .asm_2ee3d
.asm_2ee45
- ld de, $fffd
+ ld de, PartyMon1Level - PartyMon1CurHP
add hl, de
ld a, [hl]
ld [BattleMonLevel], a
- ld a, $34
+ ld a, PREDEF_BATTLE_TRANSITION
call Predef
- ld a, $f
- ld hl, $6d9f
- rst FarCall
- ld a, $1
+ callba Function3ed9f
+ ld a, 1
ld [hBGMapMode], a
call ClearSprites
call ClearTileMap
@@ -36569,7 +36783,6 @@
; 2ee6c
-
PlayBattleMusic: ; 2ee6c
push hl
@@ -46003,7 +46216,7 @@
; 3f4c1
-Function3f4c1: ; 3f4c1
+StartBattle: ; 3f4c1
ld a, [PartyCount]
and a
ret z
@@ -46047,17 +46260,17 @@
ld hl, rLCDC
res 6, [hl]
call Function3fb6c
- call $7c8b
+ call BattleStartMessage
ld hl, rLCDC
set 6, [hl]
xor a
ld [hBGMapMode], a
call EmptyBattleTextBox
- ld hl, $c535
- ld bc, $050b
+ hlcoord 9, 7
+ ld bc, 5 << 8 + 11
call ClearBox
- ld hl, $c4a1
- ld bc, $040a
+ hlcoord 1, 0
+ ld bc, 4 << 8 + 10
call ClearBox
call ClearSprites
ld a, [IsInBattle]
@@ -47112,7 +47325,7 @@
; 3fc8b
-BattleStartMessage ; 3fc8b
+BattleStartMessage: ; 3fc8b
ld a, [IsInBattle]
dec a
jr z, .asm_3fcaa
@@ -48336,7 +48549,7 @@
ld e, a
ld d, 0
ld hl, FruitTreeFlags
- call BitTableFunc
+ call FlagAction
pop de
pop hl
ret
@@ -55472,8 +55685,8 @@
-GetFlag2: ; 80430
-; Do action b on flag de from BitTable2
+EngineFlagAction: ; 80430
+; Do action b on engine flag de
;
; b = 0: reset flag
; = 1: set flag
@@ -55491,8 +55704,8 @@
jr c, .read ; cp 0 can't set carry!
jr .invalid
-; There are only $a2 flags in BitTable2, so anything beyond that
-; is invalid too.
+; There are only $a2 engine flags, so
+; anything beyond that is invalid too.
.ceiling
ld a, e
@@ -55506,10 +55719,10 @@
ld e, a
ld d, a
-; Read BitTable2 for this flag's location.
+; Get this flag's location.
.read
- ld hl, BitTable2
+ ld hl, EngineFlags
; location
add hl, de
add hl, de
@@ -55557,8 +55770,8 @@
; 80462
-BitTable2: ; 80462
-INCLUDE "engine/bittable2.asm"
+EngineFlags: ; 80462
+INCLUDE "engine/engine_flags.asm"
; 80648
@@ -56916,7 +57129,7 @@
call GetSecondaryMapHeaderPointer
ld de, $0326
ld b, $1
- call BitTable1Func
+ call EventFlagAction
.done
ret
; 0x8adef
@@ -56935,7 +57148,7 @@
jr nz, .asm_8ae4a
ld de, $0329
ld b, $1
- call BitTable1Func
+ call EventFlagAction
scf
jr .asm_8ae4b
@@ -57556,8 +57769,180 @@
db %00000000
; 8c20f
-INCBIN "baserom.gbc", $8c20f, $8c940 - $8c20f
+Function8c20f: ; 8c20f
+ call $426d
+ ld a, [rBGP]
+ ld [$cfc7], a
+ ld a, [rOBP0]
+ ld [$cfc8], a
+ ld a, [rOBP1]
+ ld [$cfc9], a
+ call DelayFrame
+ ld hl, $ff9e
+ ld a, [hl]
+ push af
+ ld [hl], $1
+.asm_8c22b
+ ld a, [$cf63]
+ bit 7, a
+ jr nz, .asm_8c23a
+ call $4314
+ call DelayFrame
+ jr .asm_8c22b
+
+.asm_8c23a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Unkn1Pals
+ ld bc, $0040
+ xor a
+ call ByteFill
+ pop af
+ ld [rSVBK], a
+ ld a, $ff
+ ld [$cfc7], a
+ call DmgToCgbBGPals
+ call DelayFrame
+ xor a
+ ld [hLCDStatCustom], a
+ ld [$ffc7], a
+ ld [$ffc8], a
+ ld [hSCY], a
+ ld a, $1
+ ld [rSVBK], a
+ pop af
+ ld [$ff9e], a
+ call DelayFrame
+ ret
+; 8c26d
+
+Function8c26d: ; 8c26d
+ ld a, [InLinkBattle]
+ cp $4
+ jr z, .asm_8c288
+ callba Function6454
+ call Function1ad2
+ call DelayFrame
+ call $42a0
+ call $4f4f
+ jr .asm_8c28b
+
+.asm_8c288
+ call $42aa
+
+.asm_8c28b
+ ld a, $90
+ ld [hWY], a
+ call DelayFrame
+ xor a
+ ld [hBGMapMode], a
+ ld hl, $cf63
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ call $46d8
+ ret
+; 8c2a0
+
+Function8c2a0: ; 8c2a0
+ call $42aa
+ ld hl, VBGMap0
+ call $42cf
+ ret
+; 8c2aa
+
+Function8c2aa: ; 8c2aa
+ ld de, $42f4
+ ld hl, $8fe0
+ ld b, $23
+ ld c, $2
+ call Request2bpp
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld de, $42f4
+ ld hl, $8fe0
+ ld b, $23
+ ld c, $2
+ call Request2bpp
+ pop af
+ ld [rVBK], a
+ ret
+; 8c2cf
+
+Function8c2cf: ; 8c2cf
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ push hl
+ ld hl, Unkn1Pals
+ ld bc, $0280
+.asm_8c2dd
+ ld [hl], $ff
+ inc hl
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_8c2dd
+ pop hl
+ ld de, Unkn1Pals
+ ld b, $23
+ ld c, $28
+ call Request2bpp
+ pop af
+ ld [rSVBK], a
+ ret
+; 8c2f4
+
+INCBIN "baserom.gbc", $8c2f4, $8c314 - $8c2f4
+
+Function8c314: ; 8c314
+ ld a, [$cf63]
+ ld e, a
+ ld d, $0
+ ld hl, $4323
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 8c323
+
+INCBIN "baserom.gbc", $8c323, $8c6d8 - $8c323
+
+Function8c6d8: ; 8c6d8
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $d100
+ call $46ef
+ ld hl, $d200
+ call $46ef
+ pop af
+ ld [rSVBK], a
+ ret
+; 8c6ef
+
+Function8c6ef: ; 8c6ef
+ xor a
+ ld c, $90
+.asm_8c6f2
+ ld [hli], a
+ dec c
+ jr nz, .asm_8c6f2
+ ret
+; 8c6f7
+
+INCBIN "baserom.gbc", $8c6f7, $8c940 - $8c6f7
+
Function8c940: ; 8c940
ld a, e
and $1
@@ -57613,9 +57998,14 @@
jp [hl]
; 8ca1b
-INCBIN "baserom.gbc", $8ca1b, $8cf53 - $8ca1b
+INCBIN "baserom.gbc", $8ca1b, $8cf4f - $8ca1b
+Function8cf4f: ; 8cf4f
+ call $3238
+ ret
+; 8cf53
+
Function8cf53: ; 8cf53
ld hl, $c300
ld bc, $00c1
@@ -60459,7 +60849,7 @@
ld e, l
ld d, h
ld b, $2
- call BitTable1Func
+ call EventFlagAction
ld a, c
and a
pop hl
@@ -60891,9 +61281,7 @@
call GetFacingTileCoord
ld [EngineBuffer1], a
ld c, a
- ld a, $4
- ld hl, $765b
- rst FarCall
+ callba Function1365b
jr c, .asm_97cb9
call CheckCutTreeTile
@@ -60939,7 +61327,10 @@
ret
; 97cc0
+
Function97cc0: ; 97cc0
+; Rock Smash encounter
+
call Function968c7
jr c, .asm_97ce2
call Function97cfd
@@ -60947,9 +61338,7 @@
ld hl, StatusFlags2
bit 2, [hl]
jr nz, .asm_97cdb
- ld a, $a
- ld hl, $60e7
- rst FarCall
+ callba Function2a0e7
jr nz, .asm_97ce2
jr .asm_97ce6
@@ -60964,13 +61353,13 @@
ret
.asm_97ce6
- ld a, BANK(UnknownScript_0x97cf9)
- ld hl, UnknownScript_0x97cf9
+ ld a, BANK(RockSmashBattleScript)
+ ld hl, RockSmashBattleScript
jr .asm_97cf4
.asm_97ced
- ld a, $4
- ld hl, Script_dotrigger
+ ld a, BANK(UnknownScript_0x135eb)
+ ld hl, UnknownScript_0x135eb
jr .asm_97cf4
.asm_97cf4
@@ -60979,7 +61368,7 @@
ret
; 97cf9
-UnknownScript_0x97cf9: ; 97cf9
+RockSmashBattleScript: ; 97cf9
battlecheck
startbattle
returnafterbattle
@@ -63124,7 +63513,7 @@
ld d, h
ld e, l
ld b, $2
- call BitTable1Func
+ call EventFlagAction
ld a, c
and a
jr z, .asm_b81df
--- a/wram.asm
+++ b/wram.asm
@@ -1627,8 +1627,13 @@
PlayerSprite: ; d4d8
ds 1
- ds 5
+ ds 3
+PlayerPalette: ; d4dc
+ ds 1
+
+ ds 1
+
PlayerDirection: ; d4de
; uses bits 2 and 3 / $0c / %00001100
; %00 down
@@ -1638,7 +1643,16 @@
ds 1
-SECTION "MapEngine",WRAMX[$d4e4],BANK[1]
+SECTION "MapEngine",WRAMX[$d4e1],BANK[1]
+PlayerAction: ; d4e1
+; 1 standing
+; 2 walking
+; 4 spinning
+; 6 fishing
+ ds 1
+
+ ds 2
+
StandingTile: ; d4e4
ds 1
StandingTile2: ; d4e5
@@ -1753,23 +1767,16 @@
FarfetchdPosition: ; d964
ds 1 ; which position the ilex farfetch'd is in
-SECTION "Events",WRAMX[$dad4],BANK[1]
+SECTION "Events",WRAMX[$da72],BANK[1]
+EventFlags: ; da72
;RoomDecorations: ; dac6
-; db 7
-
-HoOhEvent: ; dad4
- ds 1
-LugiaEvent: ; dad5
- ds 1
-
-; TODO
-;SuicuneEvent: ; dad8 (tin tower)
;TeamRocketAzaleaTownAttackEvent: ; db51
-;SudowoodoEvent: ; db51
;PoliceAtElmsLabEvent: ; db52
;SalesmanMahoganyTownEvent: ; db5c
;RedGyaradosEvent: ; db5c
+ ds 250
+; db6c
SECTION "BoxNames",WRAMX[$db75],BANK[1]
; 8 chars + $50