Merge pull request #257 from yenatch/map-headers

Map header macros and misc comments
This commit is contained in:
Bryan Bishop 2014-07-18 15:25:26 -05:00
commit a207770470
12 changed files with 1195 additions and 12142 deletions

View File

@ -1,4 +1,3 @@
const_def
PHYSICAL EQU const_value
@ -13,7 +12,6 @@ PHYSICAL EQU const_value
const GHOST
const STEEL
UNUSED_TYPES EQU const_value
const TYPE_10
const TYPE_11

View File

@ -1,43 +1,52 @@
GiveOddEgg: ; 1fb4b6
; Figure out which egg to give.
; Figure out which egg to give.
; Compare a random word to
; probabilities out of 0xffff.
call Random
ld hl, .Probabilities
ld c, 0
ld b, c
.next
.loop
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
; Break on $ffff.
ld a, d
cp $ff
jr nz, .first
cp $ffff / $100
jr nz, .not_done
ld a, e
cp $ff
cp $ffff % $100
jr z, .done
.first
ld a, [hRandomSub]
.not_done
; Break when [hRandom] <= de.
ld a, [hRandom + 1]
cp d
jr c, .done
jr z, .second
jr .good
.second
ld a, [hRandomAdd]
jr z, .ok
jr .next
.ok
ld a, [hRandom + 0]
cp e
jr c, .done
jr z, .done
.good
.next
inc bc
jr .next
jr .loop
.done
ld hl, OddEggs
ld a, OddEgg2 - OddEgg1
call AddNTimes
ld de, $c608
ld bc, $0046
call CopyBytes
ld a, EGG_TICKET
ld [CurItem], a
ld a, $1
@ -46,29 +55,31 @@ GiveOddEgg: ; 1fb4b6
ld [$d107], a
ld hl, NumItems
call TossItem
ld a, EGG
ld [$cd2a], a
ld a, $29
ld a, $cd29 % $100
ld [$cd20], a
ld a, $cd
ld a, $cd29 / $100
ld [$cd21], a
ld a, $8
ld a, $c608 % $100
ld [$cd22], a
ld a, $c6
ld a, $c608 / $100
ld [$cd23], a
ld hl, .Odd
ld de, $cd2b
ld bc, $000b
ld bc, PKMN_NAME_LENGTH
call CopyBytes
ld a, $2b
ld a, $cd2b % $100
ld [$cd24], a
ld a, $cd
ld a, $cd2b / $100
ld [$cd25], a
ld a, $38
ld a, $c638 % $100
ld [$cd26], a
ld a, $c6
ld a, $c638 / $100
ld [$cd27], a
callba Function11b98f
ret
@ -78,20 +89,28 @@ GiveOddEgg: ; 1fb4b6
db "ODD@@@@@@@@@"
.Probabilities
dw $147a ; 92% -> 8%
dw $170a ; 91% -> 1%
dw $3fff ; 75% -> 16%
dw $47ad ; 72% -> 3%
dw $70a3 ; 56% -> 16%
dw $7851 ; 53% -> 3%
dw $9c28 ; 39% -> 14%
dw $a147 ; 37% -> 2%
dw $bae0 ; 27% -> 10%
dw $bfff ; 25% -> 2%
dw $deb7 ; 13% -> 12%
dw $e3d6 ; 11% -> 2%
dw $fd6f ; 1% -> 10%
dw $ffff ; 0% -> 1%
prob: MACRO
prob_total = prob_total + (\1)
dw prob_total * $ffff / 100
ENDM
prob_total = 0
prob 8
prob 1
prob 16
prob 3
prob 16
prob 3
prob 14
prob 2
prob 10
prob 2
prob 12
prob 2
prob 10
prob 1
; 1fb56e

View File

@ -1,10 +1,10 @@
FarDecompress:: ; b40
; Decompress graphics data from a:hl to de.
ld [$c2c4], a
ld [wLZBank], a
ld a, [hROMBank]
push af
ld a, [$c2c4]
ld a, [wLZBank]
rst Bankswitch
call Decompress
@ -75,9 +75,9 @@ LZ_LONG_HI EQU %00000011
; Save the output address
; for rewrite commands.
ld a, e
ld [$c2c2], a
ld [wLZAddress], a
ld a, d
ld [$c2c2 + 1], a
ld [wLZAddress + 1], a
.Main
ld a, [hl]
@ -164,16 +164,16 @@ LZ_LONG_HI EQU %00000011
; Write the same byte for bc bytes.
ld a, [hli]
.iterloop
.iloop
dec c
jr nz, .iternext
jr nz, .inext
dec b
jp z, .Main
.iternext
.inext
ld [de], a
inc de
jr .iterloop
jr .iloop
.Alt
@ -249,10 +249,10 @@ LZ_LONG_HI EQU %00000011
ld l, [hl]
ld h, a
; add to starting output address
ld a, [$c2c2]
ld a, [wLZAddress]
add l
ld l, a
ld a, [$c2c3]
ld a, [wLZAddress + 1]
adc h
ld h, a
@ -272,6 +272,7 @@ LZ_LONG_HI EQU %00000011
; However, lengths longer than 768
; would be interpreted as LZ_END.
; More practically, LZ_LONG is not recursive.
; For now, it defaults to LZ_REPEAT.
@ -306,8 +307,10 @@ LZ_LONG_HI EQU %00000011
rl b
dec c
jr nz, .floop
ld a, b
pop bc
ld [de], a
inc de
jr .Flip

View File

@ -2053,7 +2053,7 @@ GetAnyMapHeaderPointer:: ; 0x2bed
; get pointer to map group
dec b
ld c, b
ld b, $0
ld b, 0
ld hl, MapGroupPointers
add hl, bc
add hl, bc
@ -2065,8 +2065,8 @@ GetAnyMapHeaderPointer:: ; 0x2bed
; find the cth map header
dec c
ld b, $0
ld a, OlivineGym_MapHeader - OlivinePokeCenter1F_MapHeader
ld b, 0
ld a, 9
call AddNTimes
ret
; 0x2c04

View File

@ -60,6 +60,7 @@ hBGMapUpdate EQU $ffdb
hTileAnimFrame EQU $ffdf
hRandom EQU $ffe1
hRandomAdd EQU $ffe1
hRandomSub EQU $ffe2

View File

@ -71,6 +71,16 @@ Route10South_BlockData: ; 0xa8d9c
; 0xa8df6
CinnabarPokeCenter2FBeta_BlockData: ; 0xa8df6
CeruleanPokeCenter2FBeta_BlockData:
Route10PokeCenter2FBeta_BlockData:
VermilionPokeCenter2FBeta_BlockData:
PewterPokeCEnter2FBeta_BlockData:
FuchsiaPokeCenter2FBeta_BlockData:
LavenderPokeCenter2FBeta_BlockData:
PokeCenter2F_BlockData:
CeladonPokeCenter2FBeta_BlockData:
ViridianPokeCenter2FBeta_BlockData:
SaffronPokeCenter2FBeta_BlockData:
INCBIN "maps/CinnabarPokeCenter2FBeta.blk"
; 0xa8e16
@ -183,10 +193,70 @@ BetaCianwoodCity_BlockData: ; 0xaa80d
; 0xaa867
OlivineVoltorbHouse_BlockData: ; 0xaa867
OlivineHouseBeta_BlockData:
OlivinePunishmentSpeechHouse_BlockData:
OlivineGoodRodHouse_BlockData:
Route39Farmhouse_BlockData:
MahoganyRedGyaradosSpeechHouse_BlockData:
BlackthornDragonSpeechHouse_BlockData:
BlackthornDodrioTradeHouse_BlockData:
MoveDeletersHouse_BlockData:
CeruleanGymBadgeSpeechHouse_BlockData:
CeruleanPoliceStation_BlockData:
CeruleanTradeSpeechHouse_BlockData:
BillsHouse_BlockData:
CharcoalKiln_BlockData:
LakeofRageHiddenPowerHouse_BlockData:
LakeofRageMagikarpHouse_BlockData:
GoldenrodHappinessRater_BlockData:
GoldenrodBillsHouse_BlockData:
GoldenrodPPSpeechHouse_BlockData:
GoldenrodNameRatersHouse_BlockData:
VermilionHouseFishingSpeechHouse_BlockData:
VermilionMagnetTrainSpeechHouse_BlockData:
VermilionHouseDiglettsCaveSpeechHouse_BlockData:
BluesHouse_BlockData:
PewterNidoranSpeechHouse_BlockData:
PewterSnoozeSpeechHouse_BlockData:
FuchsiaBillSpeechHouse_BlockData:
LavenderTownSpeechHouse_BlockData:
LavenderNameRater_BlockData:
Route12SuperRodHouse_BlockData:
Route28FamousSpeechHouse_BlockData:
CeladonMansionRoofHouse_BlockData:
Route16FuchsiaSpeechHouse_BlockData:
ManiasHouse_BlockData:
CianwoodPharmacy_BlockData:
CianwoodCityPhotoStudio_BlockData:
CianwoodLugiaSpeechHouse_BlockData:
PokeSeersHouse_BlockData:
ViridianNicknameSpeechHouse_BlockData:
Route2NuggetSpeechHouse_BlockData:
KrissNeighborsHouse_BlockData:
Route26HealSpeechHouse_BlockData:
Route26DayofWeekSiblingsHouse_BlockData:
Route27SandstormHouse_BlockData:
MrPsychicsHouse_BlockData:
Route5CleanseTagSpeechHouse_BlockData:
CherrygroveGymSpeechHouse_BlockData:
GuideGentsHouse_BlockData:
CherrygroveEvolutionSpeechHouse_BlockData:
Route30BerrySpeechHouse_BlockData:
INCBIN "maps/OlivineVoltorbHouse.blk"
; 0xaa877
SafariZoneFuchsiaGateBeta_BlockData: ; 0xaa877
Route19FuchsiaGate_BlockData:
Route43MahoganyGate_BlockData:
Route43Gate_BlockData:
Route35Goldenrodgate_BlockData:
Route36RuinsofAlphgate_BlockData:
Route34IlexForestGate_BlockData:
Route6SaffronGate_BlockData:
Route40BattleTowerGate_BlockData:
Route2Gate_BlockData:
Route2946Gate_BlockData:
Route5SaffronCityGate_BlockData:
INCBIN "maps/SafariZoneFuchsiaGateBeta.blk"
; 0xaa88b
@ -263,6 +333,15 @@ KrissHouse1F_BlockData: ; 0xab69b
; 0xab6af
Route38EcruteakGate_BlockData: ; 0xab6af
Route42EcruteakGate_BlockData:
Route32RuinsofAlphGate_BlockData:
IlexForestAzaleaGate_BlockData:
Route15FuchsiaGate_BlockData:
Route8SaffronGate_BlockData:
Route16Gate_BlockData:
Route7SaffronGate_BlockData:
Route1718Gate_BlockData:
Route31VioletGate_BlockData:
INCBIN "maps/Route38EcruteakGate.blk"
; 0xab6c3

View File

@ -7,6 +7,18 @@ BetaSproutTower8_BlockData: ; 0xac0b4
; 0xac10e
OlivineMart_BlockData: ; 0xac10e
EcruteakMart_BlockData:
BlackthornMart_BlockData:
CeruleanMart_BlockData:
AzaleaMart_BlockData:
VioletMart_BlockData:
VermilionMart_BlockData:
PewterMart_BlockData:
FuchsiaMart_BlockData:
LavenderMart_BlockData:
ViridianMart_BlockData:
SaffronMart_BlockData:
CherrygroveMart_BlockData:
INCBIN "maps/OlivineMart.blk"
; 0xac126
@ -19,6 +31,26 @@ BetaLakeOfRage_BlockData: ; 0xac180
; 0xac2e8
OlivinePokeCenter1F_BlockData: ; 0xac2e8
MahoganyPokeCenter1F_BlockData:
EcruteakPokeCenter1F_BlockData:
BlackthornPokeCenter1F_BlockData:
CinnabarPokeCenter1F_BlockData:
CeruleanPokeCenter1F_BlockData:
Route10PokeCenter1F_BlockData:
AzaleaPokeCenter1F_BlockData:
VioletPokeCenter1F_BlockData:
Route32PokeCenter1F_BlockData:
GoldenrodPokeCenter1F_BlockData:
VermilionPokeCenter1F_BlockData:
PewterPokeCenter1F_BlockData:
FuchsiaPokeCenter1F_BlockData:
LavenderPokeCenter1F_BlockData:
SilverCavePokeCenter1F_BlockData:
CeladonPokeCenter1F_BlockData:
CianwoodPokeCenter1F_BlockData:
ViridianPokeCenter1F_BlockData:
SaffronPokeCenter1F_BlockData:
CherrygrovePokeCenter1F_BlockData:
INCBIN "maps/OlivinePokeCenter1F.blk"
; 0xac2fc
@ -51,30 +83,37 @@ BetaCinnabarIslandPokemonLabRoom3_BlockData: ; 0xac3a4
; 0xac3b4
GoldenrodDeptStore1F_BlockData: ; 0xac3b4
CeladonDeptStore1F_BlockData:
INCBIN "maps/GoldenrodDeptStore1F.blk"
; 0xac3d4
GoldenrodDeptStore2F_BlockData: ; 0xac3d4
CeladonDeptStore2F_BlockData:
INCBIN "maps/GoldenrodDeptStore2F.blk"
; 0xac3f4
GoldenrodDeptStore3F_BlockData: ; 0xac3f4
CeladonDeptStore3F_BlockData:
INCBIN "maps/GoldenrodDeptStore3F.blk"
; 0xac414
GoldenrodDeptStore4F_BlockData: ; 0xac414
CeladonDeptStore4F_BlockData:
INCBIN "maps/GoldenrodDeptStore4F.blk"
; 0xac434
GoldenrodDeptStore5F_BlockData: ; 0xac434
CeladonDeptStore5F_BlockData:
INCBIN "maps/GoldenrodDeptStore5F.blk"
; 0xac454
GoldenrodDeptStore6F_BlockData: ; 0xac454
CeladonDeptStore6F_BlockData:
INCBIN "maps/GoldenrodDeptStore6F.blk"
; 0xac474
GoldenrodDeptStoreElevator_BlockData: ; 0xac474
CeladonDeptStoreElevator_BlockData:
INCBIN "maps/GoldenrodDeptStoreElevator.blk"
; 0xac478
@ -111,10 +150,14 @@ Colosseum_BlockData: ; 0xac527
; 0xac53b
TradeCenter_BlockData: ; 0xac53b
TimeCapsule_BlockData:
INCBIN "maps/TradeCenter.blk"
; 0xac54f
EcruteakLugiaSpeechHouse_BlockData: ; 0xac54f
EcruteakItemfinderHouse_BlockData:
VioletNicknameSpeechHouse_BlockData:
VioletOnixTradeHouse_BlockData:
INCBIN "maps/EcruteakLugiaSpeechHouse.blk"
; 0xac55f
@ -135,10 +178,12 @@ UnionCave1F_BlockData: ; 0xac721
; 0xac7d5
NationalPark_BlockData: ; 0xac7d5
NationalParkBugContest_BlockData:
INCBIN "maps/NationalPark.blk"
; 0xac9f1
Route6UndergroundEntrance_BlockData: ; 0xac9f1
Route5UndergroundEntrance_BlockData:
INCBIN "maps/Route6UndergroundEntrance.blk"
; 0xaca01
@ -167,6 +212,9 @@ RuinsofAlphInnerChamber_BlockData: ; 0xacb53
; 0xacbdf
RuinsofAlphHoOhChamber_BlockData: ; 0xacbdf
RuinsofAlphKabutoChamber_BlockData:
RuinsofAlphOmanyteChamber_BlockData:
RuinsofAlphAerodactylChamber_BlockData:
INCBIN "maps/RuinsofAlphHoOhChamber.blk"
; 0xacbf3
@ -447,6 +495,7 @@ BetaRocketHideout3_BlockData: ; 0xaf777
; 0xaf885
MahoganyMart1F_BlockData: ; 0xaf885
MountMoonGiftShop_BlockData:
INCBIN "maps/MahoganyMart1F.blk"
; 0xaf895

View File

@ -83,6 +83,7 @@ VermilionPort_BlockData: ; 0xb0899
; 0xb094d
OlivineCafe_BlockData: ; 0xb094d
SafariZoneMainOffice_BlockData:
INCBIN "maps/OlivineCafe.blk"
; 0xb095d
@ -111,6 +112,7 @@ PowerPlant_BlockData: ; 0xb0a72
; 0xb0acc
PokemonFanClub_BlockData: ; 0xb0acc
SafariZoneWardensHome_BlockData:
INCBIN "maps/PokemonFanClub.blk"
; 0xb0ae0
@ -215,6 +217,7 @@ VictoryRoadGate_BlockData: ; 0xb10a1
; 0xb10fb
OlivinePortPassage_BlockData: ; 0xb10fb
VermilionPortPassage_BlockData:
INCBIN "maps/OlivinePortPassage.blk"
; 0xb1155
@ -283,6 +286,9 @@ TohjoFalls_BlockData: ; 0xb16ec
; 0xb1773
RuinsofAlphHoOhItemRoom_BlockData: ; 0xb1773
RuinsofAlphKabutoItemRoom_BlockData:
RuinsofAlphOmanyteItemRoom_BlockData:
RuinsofAlphAerodactylItemRoom_BlockData:
INCBIN "maps/RuinsofAlphHoOhItemRoom.blk"
; 0xb1787

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,6 @@
PrintMonTypes: ; 5090d
; Print both types of CurSpecies on the stats screen at hl.
; Print one or both types of [CurSpecies]
; on the stats screen at hl.
push hl
call GetBaseData
@ -7,27 +8,29 @@ PrintMonTypes: ; 5090d
push hl
ld a, [BaseType1]
call .PrintType
call .Print
; Single-typed monsters really
; have two of the same type.
ld a, [BaseType1]
ld b, a
ld a, [BaseType2]
cp b
pop hl
jr z, .HideSecondType
jr z, .hide_type_2
; Next row
ld bc, 20
ld bc, SCREEN_WIDTH
add hl, bc
.PrintType
.Print
ld b, a
jr PrintType
.HideSecondType
; This doesn't actually do anything.
.hide_type_2
; Erase any type name that was here before.
; Seems to be pointless in localized versions.
ld a, " "
ld bc, 20 - 3
ld bc, SCREEN_WIDTH - 3
add hl, bc
ld [hl], a
inc bc
@ -36,6 +39,7 @@ PrintMonTypes: ; 5090d
jp ByteFill
; 5093a
PrintMoveType: ; 5093a
; Print the type of move b at hl.
@ -52,10 +56,11 @@ PrintMoveType: ; 5093a
pop hl
ld b, a
; 50953
PrintType: ; 50953
; Print type b at hl.
ld a, b
push hl
@ -74,7 +79,8 @@ PrintType: ; 50953
GetTypeName: ; 50964
; Copy the name of type $d265 to StringBuffer1.
; Copy the name of type [$d265] to StringBuffer1.
ld a, [$d265]
ld hl, TypeNames
ld e, a
@ -85,7 +91,7 @@ GetTypeName: ; 50964
ld h, [hl]
ld l, a
ld de, StringBuffer1
ld bc, $000d
ld bc, 13
jp CopyBytes
; 5097b
@ -110,7 +116,7 @@ TypeNames: ; 5097b
dw Normal
dw Normal
dw Normal
dw UnknownType
dw CurseType
dw Fire
dw Water
dw Grass
@ -120,43 +126,24 @@ TypeNames: ; 5097b
dw Dragon
dw Dark
Normal:
db "NORMAL@"
Fighting:
db "FIGHTING@"
Flying:
db "FLYING@"
Poison:
db "POISON@"
UnknownType:
db "???@"
Fire:
db "FIRE@"
Water:
db "WATER@"
Grass:
db "GRASS@"
Electric:
db "ELECTRIC@"
Psychic:
db "PSYCHIC@"
Ice:
db "ICE@"
Ground:
db "GROUND@"
Rock:
db "ROCK@"
Bird:
db "BIRD@"
Bug:
db "BUG@"
Ghost:
db "GHOST@"
Steel:
db "STEEL@"
Dragon:
db "DRAGON@"
Dark:
db "DARK@"
; 50a28
Normal: db "NORMAL@"
Fighting: db "FIGHTING@"
Flying: db "FLYING@"
Poison: db "POISON@"
CurseType: db "???@"
Fire: db "FIRE@"
Water: db "WATER@"
Grass: db "GRASS@"
Electric: db "ELECTRIC@"
Psychic: db "PSYCHIC@"
Ice: db "ICE@"
Ground: db "GROUND@"
Rock: db "ROCK@"
Bird: db "BIRD@"
Bug: db "BUG@"
Ghost: db "GHOST@"
Steel: db "STEEL@"
Dragon: db "DRAGON@"
Dark: db "DARK@"
; 50a28

View File

@ -250,7 +250,13 @@ CurSFX:: ; c2bf
wMapMusic:: ; c2c0
ds 1
SECTION "auto",WRAM0[$c2c7]
ds 1
wLZAddress:: dw ; c2c2
wLZBank:: db ; c2c4
ds 2
InputType:: ; c2c7
ds 1
AutoInputAddress:: ; c2c8
@ -260,14 +266,14 @@ AutoInputBank:: ; c2ca
AutoInputLength:: ; c2cb
ds 1
SECTION "linkbattle",WRAM0[$c2dc]
ds 16
InLinkBattle:: ; c2dc
; 0 not in link battle
; 1 link battle
; 4 mobile battle
ds 1
SECTION "scriptengine",WRAM0[$c2dd]
ScriptVar:: ; c2dd
ds 1