Merge pull request #30 from yenatch/master

compiles again
This commit is contained in:
Bryan Bishop 2012-09-26 12:48:44 -07:00
commit 6f878dc609
3 changed files with 662 additions and 55 deletions

View File

@ -1,5 +1,22 @@
_CRYSTAL EQU 1
dwb: MACRO
dw \1
db \2
ENDM
callab: MACRO
ld hl, \1
ld a, BANK(\1)
rst $08
ENDM
callba: MACRO
ld a, BANK(\1)
ld hl, \1
rst $08
ENDM
TX_FAR: MACRO
db $16
dw \1
@ -258,6 +275,8 @@ LUGIA EQU 249
HO_OH EQU 250
CELEBI EQU 251
EGG EQU 253
; move name constants
POUND EQU $01
KARATE_CHOP EQU $02
@ -2983,3 +3002,7 @@ OPTION EQU 2
MYSTERY_GIFT EQU 3
MOBILE EQU 4
MOBILE_STUDIUM EQU 5
; name length
PLAYER_NAME_LENGTH EQU 8
PKMN_NAME_LENGTH EQU 11

644
main.asm
View File

@ -241,7 +241,7 @@ Functiona0a:
INCBIN "baserom.gbc",$a1b,$e8d - $a1b
; copy bc bytes from a:hl to de
FarCopyBytes:
FarCopyBytes: ; e8d
ld [$ff00+$8b], a
ld a, [$ff00+$9d] ; save old bank
push af
@ -743,7 +743,31 @@ BitTableFunc: ; 0x2e76
ret
; 0x2ead
INCBIN "baserom.gbc",$2ead,$2fcb-$2ead
INCBIN "baserom.gbc",$2ead,$2fb1-$2ead
Function2fb1: ; 2fb1
push bc
ld c, a
xor a
sub c
.asm_2fb5
sub c
jr nc, .asm_2fb5
add c
ld b, a
push bc
.asm_2fbb
call $2f8c
ld a, [$ff00+$e1]
ld c, a
add b
jr c, .asm_2fbb
ld a, c
pop bc
call $3110
pop bc
ret
; 2fcb
Function2fcb: ; 0x2fcb
cp $4
@ -889,9 +913,9 @@ IsInArray: ; 30e1
ret
; 0x30f4
INCBIN "baserom.gbc",$30f4,$30f7 - $30f4
AddNTimesCopied: ; 0x30f7
SkipNames: ; 0x30f4
; skips n names where n = a
ld bc, $000b ; name length
and a
ret z
.loop
@ -902,6 +926,7 @@ AddNTimesCopied: ; 0x30f7
; 0x30fe
AddNTimes: ; 0x30fe
; adds bc n times where n = a
and a
ret z
.loop
@ -1239,7 +1264,25 @@ PrintBCDDigit: ; 38f2
ret
; 0x3917
INCBIN "baserom.gbc",$3917,$4000 - $3917
Function3917: ; 3917
push bc
ld hl, $dcdf
ld c, a
ld b, $00
add hl, bc
ld a, [$d109]
call Function3927
pop bc
ret
; 3927
Function3927: ; 3927
; a is typically [$d109]
ld bc, $0030
jp AddNTimes
; 392d
INCBIN "baserom.gbc",$392d,$4000 - $392d
SECTION "bank1",DATA,BANK[$1]
@ -1584,7 +1627,26 @@ PrintNumber_AdvancePointer: ; c64a
ret
; 0xc658
INCBIN "baserom.gbc",$c658,$ffff - $c658
INCBIN "baserom.gbc",$c658,$c721 - $c658
CheckFlag: ; c721
; checks flag id in de
; returns carry if flag is not set
ld b, $02 ; check flag
ld a, BANK(GetFlag)
ld hl, GetFlag
rst $08
ld a, c
and a
jr nz, .isset
scf
ret
.isset
xor a
ret
; c731
INCBIN "baserom.gbc",$c731,$ffff - $c731
SECTION "bank4",DATA,BANK[$4]
@ -10826,7 +10888,7 @@ Function3e8eb: ; 3e8eb
jr z, .asm_3e925
ld a, [$d109]
ld hl, $d289
call $3927
call Function3927
ld a, [hl]
jr .asm_3e945
.asm_3e925
@ -10972,7 +11034,7 @@ Function3e8eb: ; 3e8eb
bit 3, a
jp nz, .asm_3ea90
.asm_3ea44
call CheckSleepingWildMon
call CheckSleepingTreeMon
ld a, $07
jr c, .asm_3ea4c
xor a
@ -10981,9 +11043,9 @@ Function3e8eb: ; 3e8eb
ld [hli], a
xor a
ld [hli], a
ld a, [$d218] ; EnemyMonMaxHP
ld a, [EnemyMonMaxHPHi]
ld [hli], a
ld a, [$d219] ; EnemyMonMaxHP + 1
ld a, [EnemyMonMaxHPLo]
ld [hl], a
ld a, [BattleType]
cp a, $05
@ -10993,20 +11055,20 @@ Function3e8eb: ; 3e8eb
and a
jr z, .asm_3ea6e
ld a, [hl]
ld [$d217], a ; EnemyMonHP + 1
ld [EnemyMonHPLo], a
jr .asm_3ea90
.asm_3ea6e
ld a, [$d217] ; EnemyMonHP + 1
ld a, [EnemyMonHPLo]
ld [hl], a
jr .asm_3ea90
.asm_3ea74
ld hl, $d2ab
ld a, [$d109]
call $3927
call Function3927
ld a, [hld]
ld [$d217], a ; EnemyMonHP + 1
ld [EnemyMonHPLo], a
ld a, [hld]
ld [$d216], a ; EnemyMonHP
ld [EnemyMonHPHi], a
ld a, [$d109]
ld [$c663], a
dec hl
@ -11026,7 +11088,7 @@ Function3e8eb: ; 3e8eb
jr nz, .asm_3eab6
ld hl, OTPartyMon1Moves
ld a, [$d109]
call $3927
call Function3927
ld bc, $0004
call CopyBytes
jr .asm_3eac5
@ -11053,7 +11115,7 @@ Function3e8eb: ; 3e8eb
.asm_3ead9
ld hl, $d29f
ld a, [$d109]
call $3927
call Function3927
ld de, EnemyMonPP
ld bc, $0004
call CopyBytes
@ -11096,17 +11158,17 @@ Function3e8eb: ; 3e8eb
ret
; 3eb38
CheckSleepingWildMon: ; 3eb38
CheckSleepingTreeMon: ; 3eb38
ld a, [BattleType]
cp a, $08 ; headbutt
jr nz, .notsleeping
ld hl, SleepingWildMonMornTable
ld hl, SleepingTreeMonMornTable
ld a, [TimeOfDay]
cp a, $01 ; day
jr c, .check
ld hl, SleepingWildMonDayTable
ld hl, SleepingTreeMonDayTable
jr z, .check
ld hl, SleepingWildMonNiteTable
ld hl, SleepingTreeMonNiteTable
.check
ld a, [EnemyMonSpecies]
ld de, $0001
@ -11117,7 +11179,7 @@ CheckSleepingWildMon: ; 3eb38
ret
; 3eb5d
SleepingWildMonNiteTable: ; 3eb5d
SleepingTreeMonNiteTable: ; 3eb5d
db CATERPIE
db METAPOD
db BUTTERFREE
@ -11132,7 +11194,7 @@ SleepingWildMonNiteTable: ; 3eb5d
db $ff ; end
; 3eb69
SleepingWildMonDayTable: ; 3eb69
SleepingTreeMonDayTable: ; 3eb69
db VENONAT
db HOOTHOOT
db NOCTOWL
@ -11141,7 +11203,7 @@ SleepingWildMonDayTable: ; 3eb69
db $ff ; end
; 3eb6f
SleepingWildMonMornTable ; 3eb6f
SleepingTreeMonMornTable ; 3eb6f
db VENONAT
db HOOTHOOT
db NOCTOWL
@ -51274,7 +51336,263 @@ Route12SuperRodHouse_MapEventHeader: ; 0x7f60b
SECTION "bank20",DATA,BANK[$20]
INCBIN "baserom.gbc",$80000,$80730-$80000
INCBIN "baserom.gbc",$80000,$80430-$80000
GetFlag: ; 80430
; engine flags, not script related
; 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
;
; b = 0: reset flag
; = 1: set flag
; > 1: check flag
;
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
ld a, e
cp $a2 ; $a2 flag ids
jr c, .read
.invalid
; uses flag 0
xor a
ld e, a
ld d, a
.read
ld hl, Flags
add hl, de ; skip three
add hl, de ; bytes per
add hl, de ; flag
ld e, [hl]
inc hl
ld d, [hl]
inc hl
ld c, [hl] ; flag bit
ld a, b
cp $01
jr c, .reset ; b = 0
jr z, .set ; b = 1
ld a, [de] ; b > 1
and c
ld c, a
ret
.set
ld a, [de]
or c
ld [de], a
ret
.reset
ld a, c
cpl ; AND all bits except the one in question
ld c, a
ld a, [de]
and c
ld [de], a
ret
; 80462
Flags: ; 80462
; location, bit
dwb $d957, %00000010
dwb $d957, %00000001
dwb $d957, %00000100
dwb $d957, %00001000
dwb $d957, %10000000
dwb $def5, %01000000
dwb $def5, %00000001
dwb $df2c, %00000001
dwb $d854, %00000001
dwb $d854, %10000000
dwb $dc39, %00000001
dwb $d84c, %00000001
dwb $d84c, %00000010
dwb $d84c, %00001000
dwb $d84c, %00010000
dwb $d84c, %01000000
dwb $d84c, %10000000
dwb $d84d, %00000100 ; bug catching contest timeup
dwb $d84d, %00000010
dwb $d84d, %00000001
dwb $d84d, %00010000
dwb $d84d, %00100000
dwb $d84d, %01000000
dwb $d84d, %10000000
dwb $dbf5, %00000001
dwb $dbf5, %00000010
dwb $dbf5, %00000100 ; downhill (cycling road)
; johto badges
dwb $d857, %00000001 ; $1b
dwb $d857, %00000010 ; $1c
dwb $d857, %00000100 ; $1d
dwb $d857, %00001000 ; $1e
dwb $d857, %00010000 ; $1f
dwb $d857, %00100000 ; $20
dwb $d857, %01000000 ; $21
dwb $d857, %10000000 ; $22
; kanto badges
dwb $d858, %00000001 ; $23
dwb $d858, %00000010 ; $24
dwb $d858, %00000100 ; $25
dwb $d858, %00001000 ; $26
dwb $d858, %00010000 ; $27
dwb $d858, %00100000 ; $28
dwb $d858, %01000000 ; $29
dwb $d858, %10000000 ; $2a
dwb $def3, %00000001
dwb $def3, %00000010
dwb $def3, %00000100
dwb $def3, %00001000
dwb $def3, %00010000
dwb $def3, %00100000
dwb $def3, %01000000
dwb $def3, %10000000
dwb $dca5, %00000001
dwb $dca5, %00000010
dwb $dca5, %00000100
dwb $dca5, %00001000
dwb $dca5, %00010000
dwb $dca5, %00100000
dwb $dca5, %01000000
dwb $dca5, %10000000
dwb $dca6, %00000001
dwb $dca6, %00000010
dwb $dca6, %00000100
dwb $dca6, %00001000
dwb $dca6, %00010000
dwb $dca6, %00100000
dwb $dca6, %01000000
dwb $dca6, %10000000
dwb $dca7, %00000001
dwb $dca7, %00000100
dwb $dca7, %00001000
dwb $dca7, %00010000
dwb $dca7, %00100000
dwb $dca7, %01000000
dwb $dca7, %10000000
dwb $dca8, %00000001
dwb $dca8, %00000010
dwb $dca8, %00000100
dwb $dca8, %00010000
dwb $dc9d, %00000001
dwb $d84d, %00001000
dwb $dc1e, %00000001
dwb $dc1e, %00000010
dwb $dc1e, %00000100
dwb $dc1e, %00001000
dwb $dc1e, %00010000
dwb $dc1e, %00100000
dwb $dc1e, %01000000
dwb $dc1e, %10000000
dwb $dc1f, %00000001
dwb $dc1f, %00000010
dwb $dc1f, %00000100
dwb $dc1f, %00001000
dwb $dc1f, %00010000
dwb $dc1f, %00100000
dwb $dc1f, %01000000
dwb $dc1f, %10000000
dwb $dc20, %00000001
dwb $dc20, %00000010
dwb $cfbc, %10000000
dwb $d472, %00000001 ; 0 if boy, 1 if girl
dwb $dbf3, %00000100
dwb $dc4c, %00000001
dwb $dc4c, %00000010
dwb $dc4c, %00000100
dwb $dc4c, %00001000
dwb $dc4c, %00010000
dwb $dc4c, %00100000
dwb $dc4c, %01000000
dwb $dc4c, %10000000
dwb $dc4d, %00000001
dwb $dc4d, %00000010
dwb $dc4d, %00000100
dwb $dc4d, %00001000
dwb $dc4d, %00010000
dwb $dc4d, %00100000
dwb $dc4d, %01000000
dwb $dc4d, %10000000
dwb $dc4e, %00000001
dwb $dc4e, %00000010
dwb $dc4e, %00000100
dwb $dc4e, %00001000
dwb $dc4e, %00010000
dwb $dc4e, %00100000
dwb $dc4e, %01000000
dwb $dc4e, %10000000
dwb $dc50, %00000001
dwb $dc50, %00000010
dwb $dc50, %00000100
dwb $dc50, %00001000
dwb $dc50, %00010000
dwb $dc50, %00100000
dwb $dc50, %01000000
dwb $dc50, %10000000
dwb $dc51, %00000001
dwb $dc51, %00000010
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
dwb $dc20, %00000100
dwb $dc20, %00001000 ; $a1
; 80648
INCBIN "baserom.gbc",$80648,$80730-$80648
BattleText_0x80730: ; 0x80730
db $0, $52, " picked up", $4f
@ -73600,7 +73918,247 @@ INCBIN "baserom.gbc",$B4000,$4000
SECTION "bank2E",DATA,BANK[$2E]
INCBIN "baserom.gbc",$B8000,$4000
INCBIN "baserom.gbc",$B8000,$b8219 - $b8000
Functionb8219: ; b8219
; deals strictly with rockmon encounter
xor a
ld [$d22e], a
ld [$d143], a
ld hl, WildRockMonMapTable
call GetTreeMonEncounterTable
jr nc, .quit
call LoadWildTreeMonData
jr nc, .quit
ld a, $0a
call $2fb1
cp a, $04
jr nc, .quit
call $441f
jr nc, .quit
ret
.quit
xor a
ret
; b823e
db $05 ; ????
GetTreeMonEncounterTable: ; b823f
; reads a map-sensitive encounter table
; compares current map with maps in the table
; if there is a match, encounter table # is loaded into a
ld a, [MapNumber]
ld e, a
ld a, [MapGroup]
ld d, a
.loop
ld a, [hli]
cp a, $ff
jr z, .quit
cp d
jr nz, .skip2
ld a, [hli]
cp e
jr nz, .skip1
jr .end
.skip2
inc hl
.skip1
inc hl
jr .loop
.quit
xor a
ret
.end
ld a, [hl]
scf
ret
; b825e
INCBIN "baserom.gbc",$B825E,$b82c5 - $b825e
WildRockMonMapTable: ; b82c5
db GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, $07
db GROUP_ROUTE_40, MAP_ROUTE_40, $07
db GROUP_DARK_CAVE_VIOLET_ENTRANCE, MAP_DARK_CAVE_VIOLET_ENTRANCE, $07
db GROUP_SLOWPOKE_WELL_B1F, MAP_SLOWPOKE_WELL_B1F, $07
db $ff ; end
; b82d2
LoadWildTreeMonData: ; b82d2
; input: a = table number
; returns wildtreemontable pointer in hl
; sets carry if successful
cp a, $08 ; which table?
jr nc, .quit ; only 8 tables
and a
jr z, .quit ; 0 is invalid
ld e, a
ld d, $00
ld hl, WildTreeMonPointerTable
add hl, de
add hl, de
ld a, [hli] ; store pointer in hl
ld h, [hl]
ld l, a
scf
ret
.quit
xor a
ret
; b82e8
WildTreeMonPointerTable: ; b82e8
; seems to point to "normal" tree encounter data
; as such only odd-numbered tables are used
; rockmon is 13th
dw WildTreeMonTable1 ; filler
dw WildTreeMonTable1 ; 1
dw WildTreeMonTable3 ; 2
dw WildTreeMonTable5 ; 3
dw WildTreeMonTable7 ; 4
dw WildTreeMonTable9 ; 5
dw WildTreeMonTable11 ; 6
dw WildRockMonTable ; 7
dw WildTreeMonTable1 ; 8
; b82fa
; structure: % species level
WildTreeMonTable1: ; b82fa
db 50, SPEAROW, 10
db 15, SPEAROW, 10
db 15, SPEAROW, 10
db 10, AIPOM, 10
db 5, AIPOM, 10
db 5, AIPOM, 10
db $ff ; end
; b830d
WildTreeMonTable2 ; b830d
; unused
db 50, SPEAROW, 10
db 15, HERACROSS, 10
db 15, HERACROSS, 10
db 10, AIPOM, 10
db 5, AIPOM, 10
db 5, AIPOM, 10
db $ff ; end
; b8320
WildTreeMonTable3: ; b8320
db 50, SPEAROW, 10
db 15, EKANS, 10
db 15, SPEAROW, 10
db 10, AIPOM, 10
db 5, AIPOM, 10
db 5, AIPOM, 10
db $ff ; end
; b8333
WildTreeMonTable4: ; b8333
; unused
db 50, SPEAROW, 10
db 15, HERACROSS, 10
db 15, HERACROSS, 10
db 10, AIPOM, 10
db 5, AIPOM, 10
db 5, AIPOM, 10
db $ff ; end
; b8346
WildTreeMonTable5: ; b8346
db 50, HOOTHOOT, 10
db 15, SPINARAK, 10
db 15, LEDYBA, 10
db 10, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db $ff ; end
; b8359
WildTreeMonTable6: ; b8359
; unused
db 50, HOOTHOOT, 10
db 15, PINECO, 10
db 15, PINECO, 10
db 10, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db $ff ; end
; b836c
WildTreeMonTable7: ; b836c
db 50, HOOTHOOT, 10
db 15, EKANS, 10
db 15, HOOTHOOT, 10
db 10, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db $ff ; end
; b837f
WildTreeMonTable8: ; b837f
; unused
db 50, HOOTHOOT, 10
db 15, PINECO, 10
db 15, PINECO, 10
db 10, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db $ff ; end
; b8392
WildTreeMonTable9: ; b8392
db 50, HOOTHOOT, 10
db 15, VENONAT, 10
db 15, HOOTHOOT, 10
db 10, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db $ff ; end
; b83a5
WildTreeMonTable10: ; b83a5
; unused
db 50, HOOTHOOT, 10
db 15, PINECO, 10
db 15, PINECO, 10
db 10, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db 5, EXEGGCUTE, 10
db $ff ; end
; b83b8
WildTreeMonTable11: ; b83b8
db 50, HOOTHOOT, 10
db 15, PINECO, 10
db 15, PINECO, 10
db 10, NOCTOWL, 10
db 5, BUTTERFREE, 10
db 5, BEEDRILL, 10
db $ff ; end
; b83cb
WildTreeMonTable12; b83cb
; unused
db 50, HOOTHOOT, 10
db 15, CATERPIE, 10
db 15, WEEDLE, 10
db 10, HOOTHOOT, 10
db 5, METAPOD, 10
db 5, KAKUNA, 10
db $ff ; end
; b83de
WildRockMonTable: ; b83de
db 90, KRABBY, 15
db 10, SHUCKLE, 15
db $ff ; end
; b83e5
INCBIN "baserom.gbc",$B83E5,$bc000 - $b83e5
SECTION "bank2F",DATA,BANK[$2F]
@ -73825,22 +74383,20 @@ BCMinusDE: ; fbca1
; fbca8
MagikarpLengthTable: ; fbca8
; stored in sets of 3
; first two values are little endian
; third value is the divisor
db $6e, $00, $01
db $36, $01, $02
db $c6, $02, $04
db $96, $0a, $14
db $1e, $1e, $32
db $2e, $45, $64
db $c6, $7f, $96
db $5e, $ba, $96
db $6e, $e1, $64
db $f6, $f4, $32
db $c6, $fc, $14
db $ba, $fe, $05
db $82, $ff, $02
dwb $006e, $01
dwb $0136, $02
dwb $02c6, $04
dwb $0a96, $14
dwb $1e1e, $32
dwb $452e, $64
dwb $7fc6, $96
dwb $ba5e, $96
dwb $e16e, $64
dwb $f4f6, $32
dwb $fcc6, $14
dwb $feba, $05
dwb $ff82, $02
; fbccf
INCBIN "baserom.gbc",$FBCCF,$fc000-$fbccf
@ -114938,7 +115494,9 @@ INCBIN "baserom.gbc",$1BC000,$4000
SECTION "bank70",DATA,BANK[$70]
INCBIN "baserom.gbc",$1C0000,$4000
INCBIN "baserom.gbc",$1C0000,$1c1ec9-$1c0000
INCBIN "baserom.gbc",$1C1EC9,$1c4000-$1c1ec9 ; empty
SECTION "bank71",DATA,BANK[$71]

View File

@ -106,11 +106,18 @@ EnemyMonLevel: ; d213
EnemyMonStatus: ; d214
ds 2
EnemyMonHP: ; d216
ds 2
EnemyMonMaxHP: ; d218
ds 2
EnemyMonHP:
EnemyMonHPHi: ; d216
ds 1
EnemyMonHPLo: ; d217
ds 1
EnemyMonMaxHP:
EnemyMonMaxHPHi: ; d218
ds 1
EnemyMonMaxHPLo: ; d219
ds 1
EnemyMonAtk: ; d21a
ds 2
@ -131,8 +138,8 @@ OtherTrainerClass: ; 0xd22f
ds 1
BattleType: ; 0xd230
; 00 trainer
; 08 headbutt
; 00 normal
; 08 headbutt/rock smash. probably bit 3
ds 1
OtherTrainerID: ; 0xd231
@ -686,13 +693,24 @@ PlayerName: ; 0xd47d
PlayerSprite: ; 0xd4d8
ds 1
PlayerDirection: ; d4de
; uses bits 2 and 3 / $0c / %00001100
; %00 down
; %01 up
; %10 left
; $11 right
ds 1
SECTION "Status",BSS[$d84e]
Money: ; d84e
ds 3
Badges: ; d857
ds 2
Badges:
JohtoBadges: ; d857
ds 1
KantoBadges: ; d858
ds 1
SECTION "Items",BSS[$d859]
TMsHMs: ; d859
@ -712,6 +730,14 @@ NumBalls: ; d8d7
ds 1
Balls: ; d8d8
ds 25
SECTION "overworld",BSS[$d95d]
PlayerState: ; d95d
; $00: normal
; $01: bicycle
; $04: surf
; $08: surf (pikachu)
ds 1
SECTION "scriptram",BSS[$d962]
MooMooBerries: ; 0xd962
@ -763,11 +789,11 @@ Box10Name: ; 0xdc16
ds 9
Box11Name: ; 0xdc1f
ds 9
Box12Name: ; 0xdb28
Box12Name: ; 0xdc28
ds 9
Box13Name: ; 0xdb31
Box13Name: ; 0xdc31
ds 9
Box14Name: ; 0xdb3a
Box14Name: ; 0xdc3a
ds 9
SECTION "BackupMapInfo", BSS[$dcad]