From c811b20b65c27c38f4835b0f533d9740af362f73 Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 5 Feb 2013 01:21:51 -0500 Subject: [PATCH] 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. --- data/bittable2.asm | 198 ++++++++++++++++++++++++++++++++ main.asm | 274 +++++++++------------------------------------ wram.asm | 4 +- 3 files changed, 253 insertions(+), 223 deletions(-) create mode 100644 data/bittable2.asm diff --git a/data/bittable2.asm b/data/bittable2.asm new file mode 100644 index 000000000..5527226e4 --- /dev/null +++ b/data/bittable2.asm @@ -0,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 diff --git a/main.asm b/main.asm index 42decd6cd..62757d499 100644 --- a/main.asm +++ b/main.asm @@ -42326,53 +42326,79 @@ SECTION "bank20",DATA,BANK[$20] 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 @@ GetFlag2: ; 80430 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 @@ INCBIN "baserom.gbc", $91c17, $91c50 - $91c17 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 diff --git a/wram.asm b/wram.asm index 99999c9a5..31b292a3e 100644 --- a/wram.asm +++ b/wram.asm @@ -1269,7 +1269,7 @@ Box14Name: ; dbea SECTION "FlypointPermissions", BSS[$dca5] -FlypointPermissions: ; dca5 +FlypointPerms: ; dca5 ds 4 SECTION "BackupMapInfo", BSS[$dcad] @@ -1421,7 +1421,7 @@ PokedexCaught: ; deb9 ds 32 UnownDex: ; ded9 ds 26 -UnownUnlockedGroups: ; def3 +UnlockedUnowns: ; def3 ds 1 SECTION "Breeding",BSS[$def5]