ref: c811b20b65c27c38f4835b0f533d9740af362f73
parent: 710b7ddd7f781d20afdf31e0aa9a6adfaa52cc26
author: yenatch <[email protected]>
date: Mon Feb 4 20:21:51 EST 2013
Move BitTable2 to a file Currently, rgbasm's maximum macro parameter length is sixteen chars. A couple wram labels were changed to accomodate this for now.
--- /dev/null
+++ b/data/bittable2.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/main.asm
+++ b/main.asm
@@ -42326,53 +42326,79 @@
INCBIN "baserom.gbc",$80000,$80430-$80000
GetFlag2: ; 80430
-; uses bittable2
-; takes flag id in de, mode in b
-; can either check, set or reset a flag
-; check: stores flag in c
-; set/reset: no output
+; Do action b on flag de from BitTable2
;
-; b = 0: reset flag
-; = 1: set flag
-; > 1: check flag
+; b = 0: reset flag
+; = 1: set flag
+; > 1: check flag, result in c
;
+; Setting/resetting does not return a result.
+
+
+; 16-bit flag ids are considered invalid, but it's nice
+; to know that the infrastructure is there.
+
ld a, d
- cp $00 ; is the flag id > 256?
- jr z, .start ; no
- jr c, .read ; carry is never set
- jr .invalid ; yes
-.start
+ cp 0
+ jr z, .ceiling
+ 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.
+
+.ceiling
ld a, e
- cp $a2 ; $a2 flag ids
+ cp $a2
jr c, .read
+
+; Invalid flags are treated as flag $00.
+
.invalid
-; uses flag 0
xor a
ld e, a
ld d, a
+
+; Read BitTable2 for this flag's location.
+
.read
- ld hl, Flags
- add hl, de ; skip three
- add hl, de ; bytes per
- add hl, de ; flag
+ ld hl, BitTable2
+; location
+ add hl, de
+ add hl, de
+; bit
+ add hl, de
+
+; location
ld e, [hl]
inc hl
ld d, [hl]
inc hl
- ld c, [hl] ; flag bit
+; bit
+ ld c, [hl]
+
+; What are we doing with this flag?
+
ld a, b
- cp $01
+ cp 1
jr c, .reset ; b = 0
jr z, .set ; b = 1
- ld a, [de] ; b > 1
+
+; Return the given flag in c.
+.check
+ ld a, [de]
and c
ld c, a
ret
+
+; Set the given flag.
.set
ld a, [de]
or c
ld [de], a
ret
+
+; Reset the given flag.
.reset
ld a, c
cpl ; AND all bits except the one in question
@@ -42382,207 +42408,13 @@
ld [de], a
ret
; 80462
-
-Flags: ; 80462
-; bittable2
-; 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
-
- ; $def5 %10000000 ; daycare 1 on
- dwb $def5, %01000000 ; monster 1 and 2 are compatible
- ; $def5 %00100000 ; egg is ready
- dwb $def5, %00000001 ; monster 1 in daycare
-
- ; $df2c %10000000 = daycare 2 on
- dwb $df2c, %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 $def3, %00000001 ; 1
- dwb $def3, %00000010 ; 2
- dwb $def3, %00000100 ; 3
- dwb $def3, %00001000 ; 4
- dwb $def3, %00010000 ; 5
- dwb $def3, %00100000 ; 6
- dwb $def3, %01000000 ; 7
- dwb $def3, %10000000 ; 8
-
- ; fly
- dwb $dca5, %00000001 ; your house
- dwb $dca5, %00000010 ; viridian pokecenter
- dwb $dca5, %00000100 ; pallet
- dwb $dca5, %00001000 ; viridian
- dwb $dca5, %00010000 ; pewter
- dwb $dca5, %00100000 ; cerulean
- dwb $dca5, %01000000 ; rock tunnel
- dwb $dca5, %10000000 ; vermilion
- dwb $dca6, %00000001 ; lavender
- dwb $dca6, %00000010 ; saffron
- dwb $dca6, %00000100 ; celadon
- dwb $dca6, %00001000 ; fuchsia
- dwb $dca6, %00010000 ; cinnabar
- dwb $dca6, %00100000 ; indigo plateau
- dwb $dca6, %01000000 ; new bark
- dwb $dca6, %10000000 ; cherrygrove
- dwb $dca7, %00000001 ; violet
- dwb $dca7, %00000100 ; azalea
- dwb $dca7, %00001000 ; cianwood
- dwb $dca7, %00010000 ; goldenrod
- dwb $dca7, %00100000 ; olivine
- dwb $dca7, %01000000 ; ecruteak
- dwb $dca7, %10000000 ; mahogany
- dwb $dca8, %00000001 ; lake of rage
- dwb $dca8, %00000010 ; blackthorn
- dwb $dca8, %00000100 ; silver cave
- dwb $dca8, %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 $d472, %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
+
+BitTable2: ; 80462
+INCLUDE "data/bittable2.asm"
; 80648
+
INCBIN "baserom.gbc",$80648,$80730-$80648
BattleText_0x80730: ; 0x80730
@@ -45051,7 +44883,7 @@
GetFlyPermission: ; 91c50
; Return flypoint c permission flag in a
- ld hl, FlypointPermissions
+ ld hl, FlypointPerms
ld b, $2
ld d, $0
ld a, 3 ; PREDEF_GET_FLAG_NO
--- a/wram.asm
+++ b/wram.asm
@@ -1269,7 +1269,7 @@
SECTION "FlypointPermissions", BSS[$dca5]
-FlypointPermissions: ; dca5
+FlypointPerms: ; dca5
ds 4
SECTION "BackupMapInfo", BSS[$dcad]
@@ -1421,7 +1421,7 @@
ds 32
UnownDex: ; ded9
ds 26
-UnownUnlockedGroups: ; def3
+UnlockedUnowns: ; def3
ds 1
SECTION "Breeding",BSS[$def5]