shithub: pokecrystal

Download patch

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]