diff options
269 files changed, 38757 insertions, 10988 deletions
@@ -1,3 +1,4 @@ +PYTHON := python .SUFFIXES: .asm .tx .o .gbc .png .2bpp .lz TEXTFILES := $(shell find ./ -type f -name '*.asm' | grep -v pokecrystal.asm | grep -v constants.asm | grep -v gbhw.asm | grep -v hram.asm | grep -v constants | grep -v wram.asm) @@ -13,36 +14,36 @@ clean: rm -f pokecrystal.o pokecrystal.gbc @echo 'rm -f $(TEXTFILES:.asm=.tx)' @rm -f $(TEXTFILES:.asm=.tx) -pokecrystal.o: $(TEXTFILES:.asm=.tx) wram.asm constants.asm $(shell find constants/ -type f -name '*constants.asm') hram.asm gbhw.asm $(LZ_GFX) $(TWOBPP_GFX) - python prequeue.py $(TEXTQUEUE) +pokecrystal.o: $(TEXTFILES:.asm=.tx) wram.asm constants.asm $(shell find constants/ -type f -name '*.asm') hram.asm gbhw.asm $(LZ_GFX) $(TWOBPP_GFX) + $(PYTHON) prequeue.py $(TEXTQUEUE) rgbasm -o pokecrystal.o pokecrystal.asm .asm.tx: $(eval TEXTQUEUE := $(TEXTQUEUE) $<) @rm -f $@ baserom.gbc: - python -c "import os; assert 'baserom.gbc' in os.listdir('.'), 'Wait! Need baserom.gbc first. Check README and INSTALL for details.';" + $(PYTHON) -c "import os; assert 'baserom.gbc' in os.listdir('.'), 'Wait! Need baserom.gbc first. Check README and INSTALL for details.';" pokecrystal.gbc: pokecrystal.o rgblink -n pokecrystal.sym -m pokecrystal.map -o $@ $< rgbfix -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t PM_CRYSTAL $@ pngs: - python extras/pokemontools/gfx.py mass-decompress - python extras/pokemontools/gfx.py dump-pngs + $(PYTHON) extras/pokemontools/gfx.py mass-decompress + $(PYTHON) extras/pokemontools/gfx.py dump-pngs lzs: $(LZ_GFX) $(TWOBPP_GFX) @: gfx/pics/%/front.lz: gfx/pics/%/tiles.2bpp gfx/pics/%/front.png - python extras/pokemontools/gfx.py png-to-lz --front $^ + $(PYTHON) extras/pokemontools/gfx.py png-to-lz --front $^ gfx/pics/%/tiles.2bpp: gfx/pics/%/tiles.png - python extras/pokemontools/gfx.py png-to-2bpp $< + $(PYTHON) extras/pokemontools/gfx.py png-to-2bpp $< gfx/pics/%/back.lz: gfx/pics/%/back.png - python extras/pokemontools/gfx.py png-to-lz --vert $< + $(PYTHON) extras/pokemontools/gfx.py png-to-lz --vert $< gfx/trainers/%.lz: gfx/trainers/%.png - python extras/pokemontools/gfx.py png-to-lz --vert $< + $(PYTHON) extras/pokemontools/gfx.py png-to-lz --vert $< .png.lz: - python extras/pokemontools/gfx.py png-to-lz $< + $(PYTHON) extras/pokemontools/gfx.py png-to-lz $< .png.2bpp: - python extras/pokemontools/gfx.py png-to-lz $< + $(PYTHON) extras/pokemontools/gfx.py png-to-lz $< diff --git a/audio/music/bugcatchingcontestresults.asm b/audio/music/contestresults.asm index b6a00c721..b6a00c721 100644 --- a/audio/music/bugcatchingcontestresults.asm +++ b/audio/music/contestresults.asm diff --git a/audio/music/johtogymleaderbattle.asm b/audio/music/johtogymbattle.asm index f20ab6c19..f20ab6c19 100644 --- a/audio/music/johtogymleaderbattle.asm +++ b/audio/music/johtogymbattle.asm diff --git a/audio/music/johtowildpokemonbattle.asm b/audio/music/johtowildbattle.asm index 3d17d6fb0..3d17d6fb0 100644 --- a/audio/music/johtowildpokemonbattle.asm +++ b/audio/music/johtowildbattle.asm diff --git a/audio/music/johtowildpokemonbattlenight.asm b/audio/music/johtowildbattlenight.asm index 1d48e7a19..1d48e7a19 100644 --- a/audio/music/johtowildpokemonbattlenight.asm +++ b/audio/music/johtowildbattlenight.asm diff --git a/audio/music/kantogymleaderbattle.asm b/audio/music/kantogymbattle.asm index fa587f709..fa587f709 100644 --- a/audio/music/kantogymleaderbattle.asm +++ b/audio/music/kantogymbattle.asm diff --git a/audio/music/kantowildpokemonbattle.asm b/audio/music/kantowildbattle.asm index 9ad410458..9ad410458 100644 --- a/audio/music/kantowildpokemonbattle.asm +++ b/audio/music/kantowildbattle.asm diff --git a/audio/music/lakeofragerocketsradiosignal.asm b/audio/music/lakeofragerocketradio.asm index 7fc1965d8..7fc1965d8 100644 --- a/audio/music/lakeofragerocketsradiosignal.asm +++ b/audio/music/lakeofragerocketradio.asm diff --git a/audio/music/ruinsofalphradiosignal.asm b/audio/music/ruinsofalphradio.asm index f2bc19774..f2bc19774 100644 --- a/audio/music/ruinsofalphradiosignal.asm +++ b/audio/music/ruinsofalphradio.asm diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 94b54c0bd..87196653a 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -9328,72 +9328,102 @@ BattleCommand50: ; 37492 ld a, [hBattleTurn] and a - jr nz, .asm_374ce ; 37495 $37 - call .asm_37501 + jr nz, .enemy + +; The player needs to be able to steal an item. + + call .playeritem ld a, [hl] and a ret nz - call .asm_3750c + +; The enemy needs to have an item to steal. + + call .enemyitem ld a, [hl] and a ret z + +; Can't steal mail. + ld [$d265], a ld d, a - ld a, $2e - ld hl, $5e76 - rst FarCall + callba ItemIsMail ret c + ld a, [EffectFailed] and a ret nz + ld a, [InLinkBattle] and a - jr z, .asm_374be ; 374b7 $5 + jr z, .stealenemyitem + ld a, [IsInBattle] dec a ret z -.asm_374be - call .asm_3750c + +.stealenemyitem + call .enemyitem xor a ld [hl], a ld [de], a - call .asm_37501 + + call .playeritem ld a, [$d265] ld [hl], a ld [de], a - jr .asm_374f8 ; 374cc $2a -.asm_374ce - call .asm_3750c + jr .stole + + +.enemy + +; The enemy can't already have an item. + + call .enemyitem ld a, [hl] and a ret nz - call .asm_37501 + +; The player must have an item to steal. + + call .playeritem ld a, [hl] and a ret z + +; Can't steal mail! + ld [$d265], a ld d, a - ld a, $2e - ld hl, $5e76 - rst FarCall + callba ItemIsMail ret c + ld a, [EffectFailed] and a ret nz - call .asm_37501 + +; If the enemy steals your item, +; it's gone for good if you don't get it back. + + call .playeritem xor a ld [hl], a ld [de], a - call .asm_3750c + + call .enemyitem ld a, [$d265] ld [hl], a ld [de], a -.asm_374f8 + + +.stole call GetItemName ld hl, StoleText jp StdBattleTextBox -.asm_37501 + +.playeritem ld a, 1 call BattlePartyAttr ld d, h @@ -9401,9 +9431,9 @@ BattleCommand50: ; 37492 ld hl, BattleMonItem ret -.asm_3750c +.enemyitem ld a, 1 - call $396d ; GetOTStat_Battle + call OTPartyAttr ld d, h ld e, l ld hl, EnemyMonItem @@ -9413,17 +9443,27 @@ BattleCommand50: ; 37492 BattleCommand51: ; 37517 ; arenatrap + +; Doesn't work on an absent opponent. + call CheckHiddenOpponent - jr nz, .asm_37530 ; 3751a $14 + jr nz, .failed + +; Don't trap if the opponent is already trapped. + ld a, BATTLE_VARS_SUBSTATUS5 call GetBattleVarPair - bit 7, [hl] - jr nz, .asm_37530 ; 37523 $b - set 7, [hl] + bit SUBSTATUS_CANT_RUN, [hl] + jr nz, .failed + +; Otherwise trap the opponent. + + set SUBSTATUS_CANT_RUN, [hl] call Function0x37e01 ld hl, CantEscapeNowText jp StdBattleTextBox -.asm_37530 + +.failed call Function0x37e77 jp PrintButItFailed ; 37536 @@ -9432,23 +9472,38 @@ BattleCommand51: ; 37517 BattleCommand52: ; 37536 ; nightmare +; Can't hit an absent opponent. + call CheckHiddenOpponent - jr nz, .asm_3755d ; 37539 $22 + jr nz, .failed + +; Can't hit a substitute. + call CheckSubstituteOpp - jr nz, .asm_3755d ; 3753e $1d + jr nz, .failed + +; Only works on a sleeping opponent. + ld a, BATTLE_VARS_STATUS_OPP call GetBattleVarPair - and $7 - jr z, .asm_3755d ; 37547 $14 + and SLP + jr z, .failed + +; Bail if the opponent is already having a nightmare. + ld a, BATTLE_VARS_SUBSTATUS1_OPP call GetBattleVarPair - bit 0, [hl] - jr nz, .asm_3755d ; 37550 $b - set 0, [hl] + bit SUBSTATUS_NIGHTMARE, [hl] + jr nz, .failed + +; Otherwise give the opponent a nightmare. + + set SUBSTATUS_NIGHTMARE, [hl] call Function0x37e01 ld hl, StartedNightmareText jp StdBattleTextBox -.asm_3755d + +.failed call Function0x37e77 jp PrintButItFailed ; 37563 @@ -9457,205 +9512,43 @@ BattleCommand52: ; 37536 BattleCommand53: ; 37563 ; defrost +; Thaw the user. + ld a, BATTLE_VARS_STATUS call GetBattleVarPair - bit 5, [hl] + bit FRZ, [hl] ret z - res 5, [hl] - ld a, [hBattleTurn] - and a - jr z, .asm_37578 ; 37570 $6 - ld a, [IsInBattle] - dec a - jr z, .asm_3757f ; 37576 $7 -.asm_37578 - ld a, $20 - call UserPartyAttr - res 5, [hl] -.asm_3757f - call RefreshBattleHuds - ld hl, WasDefrostedText - jp StdBattleTextBox -; 37588 + res FRZ, [hl] +; Don't update the enemy's party struct in a wild battle. -BattleCommand54: ; 37588 -; curse - - ld de, BattleMonType1 - ld bc, PlayerStatLevels ld a, [hBattleTurn] and a - jr z, .asm_37599 ; 37591 $6 - ld de, EnemyMonType1 - ld bc, EnemyStatLevels -.asm_37599 - ld a, [de] - cp $8 - jr z, .asm_375d7 ; 3759c $39 - inc de - ld a, [de] - cp $8 - jr z, .asm_375d7 ; 375a2 $33 - ld a, [bc] - cp $d - jr c, .asm_375af ; 375a7 $6 - inc bc - ld a, [bc] - cp $d - jr nc, .asm_3760a ; 375ad $5b -.asm_375af - ld a, $1 - ld [$c689], a - call Function0x37e01 - ld a, $2 - call Function0x36532 - call SwitchTurn - call BattleCommand8d - call ResetMiss - call SwitchTurn - call BattleCommand70 - call BattleCommand8c - call ResetMiss - call BattleCommand71 - jp BattleCommand8c -.asm_375d7 - call CheckHiddenOpponent - jr nz, .asm_37604 ; 375da $28 - call CheckSubstituteOpp - jr nz, .asm_37604 ; 375df $23 - ld a, BATTLE_VARS_SUBSTATUS1_OPP - call GetBattleVarPair - bit 1, [hl] - jr nz, .asm_37604 ; 375e8 $1a - set 1, [hl] - call Function0x37e01 - ld hl, $4c9f - call CallBankF - ld hl, $4c3f - call CallBankF - call UpdateUserInParty - ld hl, PutACurseText - jp StdBattleTextBox -.asm_37604 - call Function0x37e77 - jp PrintButItFailed -.asm_3760a - ld b, $8 - call GetStatName - call Function0x37e77 - ld hl, WontRiseAnymoreText - jp StdBattleTextBox -; 37618 - - -BattleCommand55: ; 37618 -; protect - - call Function0x3762c - ret c - ld a, BATTLE_VARS_SUBSTATUS1 - call GetBattleVarPair - set 2, [hl] - call Function0x37e01 - ld hl, ProtectedItselfText - jp StdBattleTextBox -; 3762c - - -Function0x3762c: ; 3762c - ld de, $c679 - ld a, [hBattleTurn] - and a - jr z, .asm_37637 - ld de, $c681 - -.asm_37637 - call Function0x36abf - jr nz, .asm_37665 - - ld a, $3 - call CleanGetBattleVarPair - bit 4, a - jr nz, .asm_37665 - - ld b, $ff - ld a, [de] - ld c, a -.asm_37649 - ld a, c - and a - jr z, .asm_37656 - - dec c - srl b - ld a, b - and a - jr nz, .asm_37649 - - jr .asm_37665 - -.asm_37656 - call BattleRandom - and a - jr z, .asm_37656 + jr z, .party + ld a, [IsInBattle] dec a - cp b - jr nc, .asm_37665 - - ld a, [de] - inc a - ld [de], a - and a - ret - -.asm_37665 - xor a - ld [de], a - call Function0x37e77 - call PrintButItFailed - scf - ret -; 3766f - - -BattleCommand5a: ; 3766f -; endure + jr z, .done - call Function0x3762c - ret c +.party + ld a, PartyMon1Status - PartyMon1 + call UserPartyAttr + res FRZ, [hl] - ld a, BATTLE_VARS_SUBSTATUS1 - call GetBattleVarPair - set SUBSTATUS_ENDURE, [hl] - call Function0x37e01 - ld hl, BracedItselfText +.done + call RefreshBattleHuds + ld hl, WasDefrostedText jp StdBattleTextBox -; 37683 +; 37588 -BattleCommand56: ; 37683 -; spikes +INCLUDE "battle/effects/curse.asm" - ld hl, EnemyScreens - ld a, [hBattleTurn] - and a - jr z, .asm_3768e - ld hl, PlayerScreens +INCLUDE "battle/effects/protect.asm" -.asm_3768e - bit 0, [hl] - jr nz, .failed +INCLUDE "battle/effects/endure.asm" - set 0, [hl] - call Function0x37e01 - ld hl, SpikesText - jp StdBattleTextBox - -.failed - jp Function0x37354 -; 376a0 +INCLUDE "battle/effects/spikes.asm" BattleCommand57: ; 376a0 diff --git a/battle/effects/curse.asm b/battle/effects/curse.asm new file mode 100644 index 000000000..41ffc3a8d --- /dev/null +++ b/battle/effects/curse.asm @@ -0,0 +1,98 @@ +BattleCommand54: ; 37588 +; curse + + ld de, BattleMonType1 + ld bc, PlayerStatLevels + ld a, [hBattleTurn] + and a + jr z, .go + ld de, EnemyMonType1 + ld bc, EnemyStatLevels + +.go + +; Curse is different for Ghost-types. + + ld a, [de] + cp GHOST + jr z, .ghost + inc de + ld a, [de] + cp GHOST + jr z, .ghost + + +; If no stats can be increased, don't. + +; Attack + ld a, [bc] + cp 13 ; max + jr c, .raise + +; Defense + inc bc + ld a, [bc] + cp 13 ; max + jr nc, .cantraise + +.raise + +; Raise Attack and Defense, and lower Speed. + + ld a, $1 + ld [$c689], a + call Function0x37e01 + ld a, $2 + call Function0x36532 + call SwitchTurn + call BattleCommand8d + call ResetMiss + call SwitchTurn + call BattleCommand70 + call BattleCommand8c + call ResetMiss + call BattleCommand71 + jp BattleCommand8c + + +.ghost + +; Cut HP in half and put a curse on the opponent. + + call CheckHiddenOpponent + jr nz, .failed + + call CheckSubstituteOpp + jr nz, .failed + + ld a, BATTLE_VARS_SUBSTATUS1_OPP + call GetBattleVarPair + bit 1, [hl] + jr nz, .failed + + set 1, [hl] + call Function0x37e01 + ld hl, GetHalfMaxHP + call CallBankF + ld hl, Function3cc3f + call CallBankF + call UpdateUserInParty + ld hl, PutACurseText + jp StdBattleTextBox + +.failed + call Function0x37e77 + jp PrintButItFailed + + +.cantraise + +; Can't raise either stat. + + ld b, $8 ; ABILITY + call GetStatName + call Function0x37e77 + ld hl, WontRiseAnymoreText + jp StdBattleTextBox +; 37618 + diff --git a/battle/effects/endure.asm b/battle/effects/endure.asm new file mode 100644 index 000000000..79f657a24 --- /dev/null +++ b/battle/effects/endure.asm @@ -0,0 +1,18 @@ +BattleCommand5a: ; 3766f +; endure + +; Endure shares code with Protect. See protect.asm. + + call ProtectChance + ret c + + ld a, BATTLE_VARS_SUBSTATUS1 + call GetBattleVarPair + set SUBSTATUS_ENDURE, [hl] + + call Function0x37e01 + + ld hl, BracedItselfText + jp StdBattleTextBox +; 37683 + diff --git a/battle/effects/protect.asm b/battle/effects/protect.asm new file mode 100644 index 000000000..80edc0d85 --- /dev/null +++ b/battle/effects/protect.asm @@ -0,0 +1,81 @@ +BattleCommand55: ; 37618 +; protect + call ProtectChance + ret c + + ld a, BATTLE_VARS_SUBSTATUS1 + call GetBattleVarPair + set SUBSTATUS_PROTECT, [hl] + + call Function0x37e01 + + ld hl, ProtectedItselfText + jp StdBattleTextBox +; 3762c + + +ProtectChance: ; 3762c + + ld de, PlayerProtectCount + ld a, [hBattleTurn] + and a + jr z, .asm_37637 + ld de, EnemyProtectCount +.asm_37637 + + call Function0x36abf + jr nz, .failed + +; Can't have a substitute. + + ld a, BATTLE_VARS_SUBSTATUS4 + call CleanGetBattleVarPair + bit SUBSTATUS_SUBSTITUTE, a + jr nz, .failed + +; Halve the chance of a successful Protect for each consecutive use. + + ld b, $ff + ld a, [de] + ld c, a +.loop + ld a, c + and a + jr z, .done + dec c + + srl b + ld a, b + and a + jr nz, .loop + jr .failed +.done + +.rand + call BattleRandom + and a + jr z, .rand + + dec a + cp b + jr nc, .failed + +; Another consecutive Protect use. + + ld a, [de] + inc a + ld [de], a + + and a + ret + + +.failed + xor a + ld [de], a + call Function0x37e77 + call PrintButItFailed + scf + ret +; 3766f + diff --git a/battle/effects/spikes.asm b/battle/effects/spikes.asm new file mode 100644 index 000000000..1b93f9fa1 --- /dev/null +++ b/battle/effects/spikes.asm @@ -0,0 +1,28 @@ +BattleCommand56: ; 37683 +; spikes + + ld hl, EnemyScreens + ld a, [hBattleTurn] + and a + jr z, .asm_3768e + ld hl, PlayerScreens +.asm_3768e + +; Fails if spikes are already down! + + bit SCREENS_SPIKES, [hl] + jr nz, .failed + +; Nothing else stops it from working. + + set SCREENS_SPIKES, [hl] + + call Function0x37e01 + + ld hl, SpikesText + jp StdBattleTextBox + +.failed + jp Function0x37354 +; 376a0 + diff --git a/constants.asm b/constants.asm index 19049702e..84d93f9dd 100644 --- a/constants.asm +++ b/constants.asm @@ -23,99 +23,7 @@ FarCall EQU $08 Bankswitch EQU $10 JumpTable EQU $28 - -dwb: MACRO - dw \1 - db \2 - ENDM - -dbw: MACRO - db \1 - dw \2 - ENDM - -dn: MACRO - db \1 << 4 + \2 - ENDM - -dt: MACRO ; three-byte (big-endian) - db (\1 >> 16) & $ff - db (\1 >> 8) & $ff - db \1 & $ff - ENDM - -bigdw: MACRO ; big-endian word - dw ((\1)/$100) + (((\1)&$ff)*$100) - ENDM - -callab: MACRO ; address, bank - ld hl, \1 - ld a, BANK(\1) - rst FarCall - ENDM - -callba: MACRO ; bank, address - ld a, BANK(\1) - ld hl, \1 - rst FarCall - ENDM - -TX_RAM: MACRO - db 1 - dw \1 - ENDM - -TX_FAR: MACRO - db $16 - dw \1 - db BANK(\1) - ENDM - -RGB: MACRO - dw ((\3 << 10) | (\2 << 5) | (\1)) - ENDM - -note: MACRO - db \1 - ENDM - -; It's better to use *coord than FuncCoord. -FuncCoord: MACRO -Coord = $c4a0 + 20 * \2 + \1 - ENDM - -bccoord: MACRO - FuncCoord \1, \2 - ld bc, Coord - ENDM - -decoord: MACRO - FuncCoord \1, \2 - ld de, Coord - ENDM - -hlcoord: MACRO - FuncCoord \1, \2 - ld hl, Coord - ENDM - - -; pic animations -frame: MACRO - db \1 - db \2 - ENDM -setrepeat: MACRO - db $fe - db \1 - ENDM -dorepeat: MACRO - db $fd - db \1 - ENDM -endanim: MACRO - db $ff - ENDM +INCLUDE "macros.asm" NONE EQU 0 @@ -262,8 +170,8 @@ BUTTONS EQU %00010000 D_PAD EQU %00100000 NO_INPUT EQU %00000000 -BUTTON_A EQU %00000001 -BUTTON_B EQU %00000010 +A_BUTTON EQU %00000001 +B_BUTTON EQU %00000010 SELECT EQU %00000100 START EQU %00001000 D_RIGHT EQU %00010000 @@ -283,6 +191,9 @@ SCREEN_HEIGHT EQU 18 SCREEN_WIDTH_PX EQU 160 SCREEN_HEIGHT_PX EQU 144 +BG_MAP_WIDTH EQU 32 +BG_MAP_HEIGHT EQU 32 + TILE_WIDTH EQU 8 diff --git a/constants/event_flags.asm b/constants/event_flags.asm index a533761fb..e4f26d8df 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -1,6 +1,594 @@ -EVENT_FOUGHT_SUDOWOODO EQU $02a -EVENT_FOUGHT_HO_OH EQU $317 -EVENT_FOUGHT_LUGIA EQU $318 -EVENT_FOUGHT_SUICUNE EQU $335 -EVENT_FOUGHT_SNORLAX EQU $750 - +EVENT_GOT_TM31_MUD_SLAP EQU $008 +EVENT_GOT_TM49_FURY_CUTTER EQU $009 +EVENT_GOT_TM01_DYNAMICPUNCH EQU $00a +EVENT_GOT_TM45_ATTRACT EQU $00b +EVENT_GOT_TM30_SHADOW_BALL EQU $00c +EVENT_GOT_TM23_IRON_TAIL EQU $00d +EVENT_GOT_TM16_ICY_WIND EQU $00e +EVENT_GOT_TM24_DRAGONBREATH EQU $00f +EVENT_GOT_HM01_CUT EQU $010 +EVENT_GOT_HM02_FLY EQU $011 +EVENT_GOT_HM03_SURF EQU $012 +EVENT_GOT_HM04_STRENGTH EQU $013 +EVENT_GOT_HM05_FLASH EQU $014 +EVENT_GOT_HM06_WHIRLPOOL EQU $015 +EVENT_GOT_OLD_ROD EQU $017 +EVENT_GOT_GOOD_ROD EQU $018 +EVENT_GOT_SUPER_ROD EQU $019 +EVENT_GOT_A_POKEMON_FROM_ELM EQU $01a +EVENT_GOT_CYNDAQUIL_FROM_ELM EQU $01b +EVENT_GOT_TOTODILE_FROM_ELM EQU $01c +EVENT_GOT_CHIKORITA_FROM_ELM EQU $01d +EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON EQU $01e +EVENT_GAVE_MYSTERY_EGG_TO_ELM EQU $01f +EVENT_JASMINE_RETURNED_TO_GYM EQU $020 +EVENT_CLEARED_RADIO_TOWER EQU $021 +EVENT_CLEARED_ROCKET_HIDEOUT EQU $022 +EVENT_GOT_SECRETPOTION_FROM_PHARMACY EQU $023 +EVENT_GOT_SS_TICKET_FROM_ELM EQU $024 +EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER EQU $025 +EVENT_REFUSED_TO_HELP_LANCE_AT_LAKE_OF_RAGE EQU $026 +EVENT_GOT_BERRY_FROM_ROUTE_30_HOUSE EQU $027 +EVENT_MADE_WHITNEY_CRY EQU $028 +EVENT_FOUGHT_SUDOWOODO EQU $02a +EVENT_CLEARED_SLOWPOKE_WELL EQU $02b +EVENT_REFUSED_TO_TAKE_EGG_FROM_ELMS_AIDE EQU $02c +EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE EQU $02d +EVENT_MADE_UNOWN_APPEAR_IN_RUINS EQU $02e +EVENT_HEALED_MOOMOO EQU $03d +EVENT_GOT_TM13_SNORE_FROM_MOOMOO_FARM EQU $03e +EVENT_TALKED_TO_FARMER_ABOUT_MOOMOO EQU $03f +EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST EQU $040 +EVENT_DUDE_TALKED_TO_YOU EQU $041 +EVENT_LEARNED_TO_CATCH_POKEMON EQU $042 +EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON EQU $043 +EVENT_GOT_SHUCKIE EQU $045 +EVENT_MANIA_TOOK_SHUCKIE_OR_LET_YOU_KEEP_HIM EQU $046 +EVENT_GOT_SUNNY_DAY_FROM_RADIO_TOWER EQU $047 +EVENT_GOT_PINK_BOW_FROM_MARY EQU $048 +EVENT_USED_BASEMENT_KEY EQU $049 +EVENT_GOT_TM08_ROCK_SMASH EQU $04b +EVENT_GOT_MYSTIC_WATER_IN_CHERRYGROVE EQU $04d +EVENT_GOT_TM05_ROAR EQU $04e +EVENT_GOT_EEVEE EQU $04f +EVENT_GOT_KENYA EQU $050 +EVENT_GAVE_KENYA EQU $051 +EVENT_GOT_HP_UP_FROM_RANDY EQU $052 +EVENT_GOT_TM50_NIGHTMARE EQU $053 +EVENT_TOGEPI_HATCHED EQU $054 +EVENT_SHOWED_TOGEPI_TO_ELM EQU $055 +EVENT_GOT_EVERSTONE_FROM_ELM EQU $056 +EVENT_GOT_QUICK_CLAW EQU $057 +EVENT_GOT_TM10_HIDDEN_POWER EQU $058 +EVENT_GOT_TM36_SLUDGE_BOMB EQU $059 +EVENT_GOT_ITEMFINDER EQU $05a +EVENT_GOT_BICYCLE EQU $05b +EVENT_GOT_SQUIRTBOTTLE EQU $05c +EVENT_GOT_MIRACLE_SEED_IN_ROUTE_32 EQU $05d +EVENT_GOT_CHARCOAL_IN_CHARCOAL_KILN EQU $05e +EVENT_GOT_TM02_HEADBUTT EQU $05f +EVENT_DECIDED_TO_HELP_LANCE EQU $060 +EVENT_GOT_TYROGUE_FROM_KIYO EQU $061 +EVENT_MET_FRIEDA_OF_FRIDAY EQU $062 +EVENT_GOT_POISON_BARB_FROM_FRIEDA EQU $063 +EVENT_MET_TUSCANY_OF_TUESDAY EQU $064 +EVENT_GOT_PINK_BOW_FROM_TUSCANY EQU $065 +EVENT_MET_ARTHUR_OF_THURSDAY EQU $066 +EVENT_GOT_HARD_STONE_FROM_ARTHUR EQU $067 +EVENT_MET_SUNNY_OF_SUNDAY EQU $068 +EVENT_GOT_MAGNET_FROM_SUNNY EQU $069 +EVENT_MET_WESLEY_OF_WEDNESDAY EQU $06a +EVENT_GOT_BLACKBELT_FROM_WESLEY EQU $06b +EVENT_MET_SANTOS_OF_SATURDAY EQU $06c +EVENT_GOT_SPELL_TAG_FROM_SANTOS EQU $06d +EVENT_MET_MONICA_OF_MONDAY EQU $06e +EVENT_GOT_SHARP_BEAK_FROM_MONICA EQU $06f +EVENT_GOT_SOFT_SAND_FROM_KATE EQU $070 +EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA EQU $071 +EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE EQU $072 +EVENT_GOT_KINGS_ROCK_IN_SLOWPOKE_WELL EQU $073 +EVENT_GOT_TM47_STEEL_WING EQU $074 +EVENT_GOT_TM37_SANDSTORM EQU $075 +EVENT_TOLD_ELM_ABOUT_TOGEPI_OVER_THE_PHONE EQU $077 +EVENT_GOT_CLEAR_BELL EQU $078 +EVENT_GOT_SILVER_WING EQU $079 +EVENT_GOT_TM12_SWEET_SCENT EQU $07a +EVENT_RELEASED_THE_BEASTS EQU $07b +EVENT_GOT_MASTER_BALL_FROM_ELM EQU $07c +EVENT_FOUND_REVIVE_IN_ROCKET_BASE_B1F EQU $086 +EVENT_CAN_GIVE_GS_BALL_TO_KURT EQU $0be +EVENT_RETURNED_MACHINE_PART EQU $0c9 +EVENT_MET_MANAGER_AT_POWER_PLANT EQU $0ca +EVENT_MET_ROCKET_GRUNT_AT_CERULEAN_GYM EQU $0cb +EVENT_MET_REDS_MOM EQU $0cc +EVENT_RESTORED_POWER_TO_KANTO EQU $0cd +EVENT_GOT_COINS_FROM_GAMBLER_AT_CELADON EQU $0ce +EVENT_MET_COPYCAT_FOUND_OUT_ABOUT_LOST_ITEM EQU $0cf +EVENT_RETURNED_LOST_ITEM_TO_COPYCAT EQU $0d0 +EVENT_GOT_PASS_FROM_COPYCAT EQU $0d1 +EVENT_GOT_LOST_ITEM_FROM_FAN_CLUB EQU $0d2 +EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT_BUT_BAG_WAS_FULL EQU $0d3 +EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT EQU $0d4 +EVENT_TALKED_TO_SEAFOAM_GYM_GUY_ONCE EQU $0d5 +EVENT_ENABLE_DIPLOMA_PRINTING EQU $0d6 +EVENT_CLEARED_NUGGET_BRIDGE EQU $0d8 +EVENT_TALKED_TO_WARDENS_GRANDDAUGHTER EQU $0d9 +EVENT_GOT_TM03_CURSE EQU $0da +EVENT_GOT_CLEANSE_TAG EQU $0db +EVENT_GOT_TM19_GIGA_DRAIN EQU $0dc +EVENT_GOT_TM06_TOXIC EQU $0dd +EVENT_GOT_UP_GRADE EQU $0de +EVENT_GOT_TM07_ZAP_CANNON EQU $0df +EVENT_GOT_TM42_DREAM_EATER EQU $0e0 +EVENT_GOT_TM29_PSYCHIC EQU $0e3 +EVENT_FOUND_LEFTOVERS_IN_CELADON_CAFE EQU $0f9 +EVENT_FOUND_MACHINE_PART_IN_CERULEAN_GYM EQU $0fb +EVENT_SHOWED_BEVERLY_MARILL EQU $261 +EVENT_SHOWED_DEREK_PIKACHU EQU $28d +EVENT_SHOWED_TIFFANY_CLEFAIRY EQU $293 +EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD EQU $29e +EVENT_SWITCH_1 EQU $2d3 +EVENT_SWITCH_2 EQU $2d4 +EVENT_SWITCH_3 EQU $2d5 +EVENT_EMERGENCY_SWITCH EQU $2d6 +EVENT_SWITCH_4 EQU $2d7 +EVENT_SWITCH_5 EQU $2d8 +EVENT_SWITCH_6 EQU $2d9 +EVENT_SWITCH_7 EQU $2da +EVENT_SWITCH_8 EQU $2db +EVENT_SWITCH_9 EQU $2dc +EVENT_SWITCH_10 EQU $2dd +EVENT_SWITCH_11 EQU $2de +EVENT_SWITCH_12 EQU $2df +EVENT_SWITCH_13 EQU $2e0 +EVENT_SWITCH_14 EQU $2e1 +EVENT_UNCOVERED_STAIRCASE_IN_MAHOGANY_MART EQU $2e2 +EVENT_TURNED_OFF_SECURITY_CAMERAS EQU $2e3 +EVENT_SECURITY_CAMERA_1 EQU $2e4 +EVENT_SECURITY_CAMERA_2 EQU $2e5 +EVENT_SECURITY_CAMERA_3 EQU $2e6 +EVENT_SECURITY_CAMERA_4 EQU $2e7 +EVENT_SECURITY_CAMERA_5 EQU $2e8 +EVENT_EXPLODING_TRAP_1 EQU $2e9 +EVENT_EXPLODING_TRAP_2 EQU $2ea +EVENT_EXPLODING_TRAP_3 EQU $2eb +EVENT_EXPLODING_TRAP_4 EQU $2ec +EVENT_EXPLODING_TRAP_5 EQU $2ed +EVENT_EXPLODING_TRAP_6 EQU $2ee +EVENT_EXPLODING_TRAP_7 EQU $2ef +EVENT_EXPLODING_TRAP_8 EQU $2f0 +EVENT_EXPLODING_TRAP_9 EQU $2f1 +EVENT_EXPLODING_TRAP_10 EQU $2f2 +EVENT_EXPLODING_TRAP_11 EQU $2f3 +EVENT_EXPLODING_TRAP_12 EQU $2f4 +EVENT_EXPLODING_TRAP_13 EQU $2f5 +EVENT_EXPLODING_TRAP_14 EQU $2f6 +EVENT_EXPLODING_TRAP_15 EQU $2f7 +EVENT_EXPLODING_TRAP_16 EQU $2f8 +EVENT_EXPLODING_TRAP_17 EQU $2f9 +EVENT_EXPLODING_TRAP_18 EQU $2fa +EVENT_EXPLODING_TRAP_19 EQU $2fb +EVENT_EXPLODING_TRAP_20 EQU $2fc +EVENT_EXPLODING_TRAP_21 EQU $2fd +EVENT_EXPLODING_TRAP_22 EQU $2fe +EVENT_LEARNED_HAIL_GIOVANNI EQU $2ff +EVENT_OPENED_DOOR_TO_ROCKET_HIDEOUT_TRANSMITTER EQU $300 +EVENT_WILLS_ROOM_EXIT_OPEN EQU $30a +EVENT_WILLS_ROOM_ENTRANCE_CLOSED EQU $30b +EVENT_KOGAS_ROOM_EXIT_OPEN EQU $30c +EVENT_KOGAS_ROOM_ENTRANCE_CLOSED EQU $30d +EVENT_BRUNOS_ROOM_EXIT_OPEN EQU $30e +EVENT_KARENS_ROOM_ENTRANCE_CLOSED EQU $30f +EVENT_KARENS_ROOM_EXIT_OPEN EQU $310 +EVENT_LANCES_ROOM_ENTRANCE_CLOSED EQU $311 +EVENT_FOUGHT_HO_OH EQU $317 +EVENT_FOUGHT_LUGIA EQU $318 +EVENT_BEAT_RIVAL_IN_MT_MOON EQU $319 +EVENT_MET_BILLS_GRANDPA EQU $31a +EVENT_SHOWED_LICKITUNG_TO_BILLS_GRANDPA EQU $31b +EVENT_SHOWED_ODDISH_TO_BILLS_GRANDPA EQU $31c +EVENT_SHOWED_STARYU_TO_BILLS_GRANDPA EQU $31d +EVENT_SHOWED_GROWLITHE_VULPIX_TO_BILLS_GRANDPA EQU $31e +EVENT_SHOWED_PICHU_TO_BILLS_GRANDPA EQU $31f +EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA EQU $320 +EVENT_GOT_LEAF_STONE_FROM_BILLS_GRANDPA EQU $321 +EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA EQU $322 +EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA EQU $323 +EVENT_GOT_THUNDERSTONE_FROM_BILLS_GRANDPA EQU $324 +EVENT_LISTENED_TO_RADIO_IN_NEIGHBORS_HOUSE EQU $325 +EVENT_WALL_OPENED_IN_HO_OH_CHAMBER EQU $326 +EVENT_WALL_OPENED_IN_KABUTO_CHAMBER EQU $327 +EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER EQU $328 +EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER EQU $329 +EVENT_WADE_HAS_BERRY EQU $32b +EVENT_WADE_HAS_PSNCUREBERRY EQU $32c +EVENT_WADE_HAS_PRZCUREBERRY EQU $32d +EVENT_WADE_HAS_BITTER_BERRY EQU $32e +EVENT_WILTON_HAS_ULTRA_BALL EQU $32f +EVENT_WILTON_HAS_GREAT_BALL EQU $330 +EVENT_WILTON_HAS_POKE_BALL EQU $331 +EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER EQU $334 +EVENT_FOUGHT_SUICUNE EQU $335 +EVENT_GOT_RAINBOW_WING EQU $336 +EVENT_HUEY_PROTEIN EQU $337 +EVENT_JOEY_HP_UP EQU $338 +EVENT_VANCE_CARBOS EQU $339 +EVENT_PARRY_IRON EQU $33a +EVENT_ERIN_CALCIUM EQU $33b +EVENT_BUENA_OFFERED_HER_PHONE_NUMBER EQU $33c +EVENT_MET_BUENA EQU $33d +EVENT_GOT_ODD_EGG EQU $33e +EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER EQU $340 +EVENT_BEAT_SWIMMERF_ELAINE EQU $3e8 +EVENT_BEAT_SWIMMERF_PAULA EQU $3e9 +EVENT_BEAT_SWIMMERF_KAYLEE EQU $3ea +EVENT_BEAT_SWIMMERF_SUSIE EQU $3eb +EVENT_BEAT_SWIMMERF_DENISE EQU $3ec +EVENT_BEAT_SWIMMERF_KARA EQU $3ed +EVENT_BEAT_SWIMMERF_WENDY EQU $3ee +EVENT_BEAT_SWIMMERF_DAWN EQU $3f3 +EVENT_BEAT_SWIMMERF_NICOLE EQU $3f5 +EVENT_BEAT_SWIMMERF_LORI EQU $3f6 +EVENT_BEAT_SWIMMERF_NIKKI EQU $3f8 +EVENT_BEAT_SWIMMERF_DIANA EQU $3f9 +EVENT_BEAT_SWIMMERF_BRIANA EQU $3fa +EVENT_BEAT_BIRD_KEEPER_ROD EQU $3fb +EVENT_BEAT_BIRD_KEEPER_ABE EQU $3fc +EVENT_BEAT_BIRD_KEEPER_BRYAN EQU $3fd +EVENT_BEAT_BIRD_KEEPER_THEO EQU $3fe +EVENT_BEAT_BIRD_KEEPER_TOBY EQU $3ff +EVENT_BEAT_BIRD_KEEPER_DENIS EQU $400 +EVENT_BEAT_BIRD_KEEPER_VANCE_1 EQU $401 +EVENT_BEAT_BIRD_KEEPER_HANK EQU $402 +EVENT_BEAT_BIRD_KEEPER_ROY EQU $403 +EVENT_BEAT_BIRD_KEEPER_BORIS EQU $404 +EVENT_BEAT_BIRD_KEEPER_BOB EQU $405 +EVENT_BEAT_BIRD_KEEPER_PETER EQU $407 +EVENT_BEAT_BIRD_KEEPER_JOSE EQU $408 +EVENT_BEAT_BIRD_KEEPER_PERRY EQU $409 +EVENT_BEAT_BIRD_KEEPER_BRET EQU $40a +EVENT_BEAT_BOARDER_RONALD EQU $40e +EVENT_BEAT_BOARDER_BRAD EQU $40f +EVENT_BEAT_BOARDER_DOUGLAS EQU $410 +EVENT_BEAT_SAGE_CHOW EQU $411 +EVENT_BEAT_SAGE_NICO EQU $412 +EVENT_BEAT_SAGE_JIN EQU $413 +EVENT_BEAT_SAGE_TROY EQU $414 +EVENT_BEAT_SAGE_JEFFREY EQU $415 +EVENT_BEAT_SAGE_PING EQU $416 +EVENT_BEAT_SAGE_EDMOND EQU $417 +EVENT_BEAT_SAGE_NEAL EQU $418 +EVENT_BEAT_SAGE_LI EQU $419 +EVENT_BEAT_CAMPER_ROLAND EQU $41a +EVENT_BEAT_CAMPER_TODD_1 EQU $41b +EVENT_BEAT_CAMPER_IVAN EQU $41c +EVENT_BEAT_CAMPER_ELLIOT EQU $41d +EVENT_BEAT_CAMPER_LLOYD EQU $41f +EVENT_BEAT_CAMPER_DEAN EQU $420 +EVENT_BEAT_CAMPER_SID EQU $421 +EVENT_BEAT_CAMPER_TED EQU $424 +EVENT_BEAT_CAMPER_JERRY EQU $42b +EVENT_BEAT_CAMPER_SPENCER EQU $42c +EVENT_BEAT_BURGLAR_DUNCAN EQU $42d +EVENT_BEAT_BURGLAR_EDDIE EQU $42e +EVENT_BEAT_BURGLAR_COREY EQU $42f +EVENT_BEAT_BIKER_DWAYNE EQU $433 +EVENT_BEAT_BIKER_HARRIS EQU $434 +EVENT_BEAT_BIKER_ZEKE EQU $435 +EVENT_BEAT_BIKER_CHARLES EQU $436 +EVENT_BEAT_BIKER_RILEY EQU $437 +EVENT_BEAT_BIKER_JOEL EQU $438 +EVENT_BEAT_BIKER_GLENN EQU $439 +EVENT_BEAT_PSYCHIC_NATHAN EQU $43a +EVENT_BEAT_PSYCHIC_FRANKLIN EQU $43b +EVENT_BEAT_PSYCHIC_HERMAN EQU $43c +EVENT_BEAT_PSYCHIC_FIDEL EQU $43d +EVENT_BEAT_PSYCHIC_GREG EQU $43e +EVENT_BEAT_PSYCHIC_NORMAN EQU $43f +EVENT_BEAT_PSYCHIC_MARK EQU $440 +EVENT_BEAT_PSYCHIC_PHIL EQU $441 +EVENT_BEAT_PSYCHIC_RICHARD EQU $442 +EVENT_BEAT_PSYCHIC_GILBERT EQU $443 +EVENT_BEAT_PSYCHIC_JARED EQU $444 +EVENT_BEAT_PSYCHIC_RODNEY EQU $445 +EVENT_BEAT_FIREBREATHER_OTIS EQU $446 +EVENT_BEAT_FIREBREATHER_BURT EQU $449 +EVENT_BEAT_FIREBREATHER_BILL EQU $44a +EVENT_BEAT_FIREBREATHER_WALT EQU $44b +EVENT_BEAT_FIREBREATHER_RAY EQU $44c +EVENT_BEAT_FIREBREATHER_LYLE EQU $44d +EVENT_BEAT_FISHER_JUSTIN EQU $44e +EVENT_BEAT_FISHER_RALPH_1 EQU $44f +EVENT_BEAT_FISHER_ARNOLD EQU $450 +EVENT_BEAT_FISHER_KYLE EQU $451 +EVENT_BEAT_FISHER_HENRY EQU $452 +EVENT_BEAT_FISHER_MARVIN EQU $453 +EVENT_BEAT_FISHER_TULLY_1 EQU $454 +EVENT_BEAT_FISHER_ANDRE EQU $455 +EVENT_BEAT_FISHER_RAYMOND EQU $456 +EVENT_BEAT_FISHER_WILTON_1 EQU $457 +EVENT_BEAT_FISHER_EDGAR EQU $458 +EVENT_BEAT_FISHER_JONAH EQU $459 +EVENT_BEAT_FISHER_MARTIN EQU $45a +EVENT_BEAT_FISHER_STEPHEN EQU $45b +EVENT_BEAT_FISHER_BARNEY EQU $45c +EVENT_BEAT_FISHER_SCOTT EQU $462 +EVENT_BEAT_TWINS_AMY_AND_MAY EQU $464 +EVENT_BEAT_TWINS_ANN_AND_ANNE EQU $465 +EVENT_BEAT_TWINS_JO_AND_ZOE EQU $468 +EVENT_BEAT_TWINS_MEG_AND_PEG EQU $46a +EVENT_BEAT_SCHOOLBOY_JACK_1 EQU $46c +EVENT_BEAT_SCHOOLBOY_KIP EQU $46d +EVENT_BEAT_SCHOOLBOY_ALAN EQU $46e +EVENT_BEAT_SCHOOLBOY_JOHNNY EQU $46f +EVENT_BEAT_SCHOOLBOY_DANNY EQU $470 +EVENT_BEAT_SCHOOLBOY_TOMMY EQU $471 +EVENT_BEAT_SCHOOLBOY_DUDLEY EQU $472 +EVENT_BEAT_SCHOOLBOY_JOE EQU $473 +EVENT_BEAT_SCHOOLBOY_BILLY EQU $474 +EVENT_BEAT_SCHOOLBOY_CHAD_1 EQU $475 +EVENT_BEAT_SCHOOLBOY_NATE EQU $476 +EVENT_BEAT_SCHOOLBOY_RICKY EQU $477 +EVENT_BEAT_PICNICKER_LIZ_1 EQU $47e +EVENT_BEAT_PICNICKER_GINA_1 EQU $47f +EVENT_BEAT_PICNICKER_BROOKE EQU $480 +EVENT_BEAT_PICNICKER_KIM EQU $481 +EVENT_BEAT_PICNICKER_HOPE EQU $483 +EVENT_BEAT_PICNICKER_SHARON EQU $484 +EVENT_BEAT_PICNICKER_DEBRA EQU $485 +EVENT_BEAT_PICNICKER_ERIN_1 EQU $487 +EVENT_BEAT_PICNICKER_HEIDI EQU $48a +EVENT_BEAT_PICNICKER_EDNA EQU $48b +EVENT_BEAT_PICNICKER_TANYA EQU $490 +EVENT_BEAT_PICNICKER_TIFFANY_3 EQU $491 +EVENT_BEAT_GUITARIST_CLYDE EQU $493 +EVENT_BEAT_GUITARIST_VINCENT EQU $494 +EVENT_BEAT_JUGGLER_IRWIN_1 EQU $495 +EVENT_BEAT_JUGGLER_FRITZ EQU $496 +EVENT_BEAT_JUGGLER_HORTON EQU $497 +EVENT_BEAT_GENTLEMAN_PRESTON EQU $49a +EVENT_BEAT_GENTLEMAN_EDWARD EQU $49b +EVENT_BEAT_GENTLEMAN_GREGORY EQU $49c +EVENT_BEAT_GENTLEMAN_ALFRED EQU $49e +EVENT_BEAT_SCIENTIST_ROSS EQU $49f +EVENT_BEAT_SCIENTIST_MITCH EQU $4a0 +EVENT_BEAT_SCIENTIST_JED EQU $4a1 +EVENT_BEAT_SCIENTIST_MARC EQU $4a2 +EVENT_BEAT_SCIENTIST_RICH EQU $4a3 +EVENT_BEAT_BLACKBELT_YOSHI EQU $4a5 +EVENT_BEAT_BLACKBELT_LAO EQU $4a7 +EVENT_BEAT_BLACKBELT_NOB EQU $4a8 +EVENT_BEAT_BLACKBELT_LUNG EQU $4aa +EVENT_BEAT_BLACKBELT_KENJI_3 EQU $4ab +EVENT_BEAT_BLACKBELT_WAI EQU $4ac +EVENT_BEAT_BEAUTY_VICTORIA EQU $4ad +EVENT_BEAT_BEAUTY_SAMANTHA EQU $4ae +EVENT_BEAT_BEAUTY_CASSIE EQU $4b2 +EVENT_BEAT_BEAUTY_JULIA EQU $4ba +EVENT_BEAT_BEAUTY_VALERIE EQU $4bc +EVENT_BEAT_FALKNER EQU $4bd +EVENT_BEAT_BUGSY EQU $4be +EVENT_BEAT_WHITNEY EQU $4bf +EVENT_BEAT_MORTY EQU $4c0 +EVENT_BEAT_JASMINE EQU $4c1 +EVENT_BEAT_CHUCK EQU $4c2 +EVENT_BEAT_PRYCE EQU $4c3 +EVENT_BEAT_CLAIR EQU $4c4 +EVENT_BEAT_BROCK EQU $4c5 +EVENT_BEAT_MISTY EQU $4c6 +EVENT_BEAT_LTSURGE EQU $4c7 +EVENT_BEAT_JANINE EQU $4c9 +EVENT_BEAT_SABRINA EQU $4ca +EVENT_BEAT_BLUE EQU $4cc +EVENT_BEAT_POKEFANM_WILLIAM EQU $4cd +EVENT_BEAT_POKEFANM_DEREK EQU $4ce +EVENT_BEAT_POKEFANM_ROBERT EQU $4cf +EVENT_BEAT_POKEFANM_JOSHUA EQU $4d0 +EVENT_BEAT_POKEFANM_CARTER EQU $4d1 +EVENT_BEAT_POKEFANM_TREVOR EQU $4d2 +EVENT_BEAT_POKEFANM_BRANDON EQU $4d3 +EVENT_BEAT_POKEFANM_JEREMY EQU $4d4 +EVENT_BEAT_POKEFANM_COLIN EQU $4d5 +EVENT_BEAT_POKEFANM_ALEX EQU $4d8 +EVENT_BEAT_POKEFANF_BEVERLY EQU $4d9 +EVENT_BEAT_POKEFANF_RUTH EQU $4da +EVENT_BEAT_POKEFANF_GEORGIA EQU $4dd +EVENT_BEAT_KIMONO_GIRL_NAOKO EQU $4df +EVENT_BEAT_KIMONO_GIRL_SAYO EQU $4e0 +EVENT_BEAT_KIMONO_GIRL_ZUKI EQU $4e1 +EVENT_BEAT_KIMONO_GIRL_KUNI EQU $4e2 +EVENT_BEAT_KIMONO_GIRL_MIKI EQU $4e3 +EVENT_BEAT_POKEMANIAC_LARRY EQU $4e4 +EVENT_BEAT_POKEMANIAC_ANDREW EQU $4e5 +EVENT_BEAT_POKEMANIAC_CALVIN EQU $4e6 +EVENT_BEAT_POKEMANIAC_SHANE EQU $4e7 +EVENT_BEAT_POKEMANIAC_BEN EQU $4e8 +EVENT_BEAT_POKEMANIAC_BRENT EQU $4e9 +EVENT_BEAT_POKEMANIAC_RON EQU $4ea +EVENT_BEAT_POKEMANIAC_ETHAN EQU $4eb +EVENT_BEAT_POKEMANIAC_ISSAC EQU $4ee +EVENT_BEAT_POKEMANIAC_DONALD EQU $4ef +EVENT_BEAT_POKEMANIAC_ZACH EQU $4f0 +EVENT_BEAT_ROCKET_GRUNTM_1 EQU $4f1 +EVENT_BEAT_ROCKET_GRUNTM_2 EQU $4f2 +EVENT_BEAT_ROCKET_GRUNTM_3 EQU $4f3 +EVENT_BEAT_ROCKET_GRUNTM_4 EQU $4f4 +EVENT_BEAT_ROCKET_GRUNTM_5 EQU $4f5 +EVENT_BEAT_ROCKET_GRUNTM_6 EQU $4f6 +EVENT_BEAT_ROCKET_GRUNTM_7 EQU $4f7 +EVENT_BEAT_ROCKET_GRUNTM_8 EQU $4f8 +EVENT_BEAT_ROCKET_GRUNTM_9 EQU $4f9 +EVENT_BEAT_ROCKET_GRUNTM_10 EQU $4fa +EVENT_BEAT_ROCKET_GRUNTM_11 EQU $4fb +EVENT_BEAT_ROCKET_GRUNTM_12 EQU $4fd +EVENT_BEAT_ROCKET_GRUNTM_13 EQU $4fe +EVENT_BEAT_ROCKET_GRUNTM_14 EQU $4ff +EVENT_BEAT_ROCKET_GRUNTM_15 EQU $500 +EVENT_BEAT_ROCKET_GRUNTM_16 EQU $501 +EVENT_BEAT_ROCKET_GRUNTM_17 EQU $502 +EVENT_BEAT_ROCKET_GRUNTM_18 EQU $503 +EVENT_BEAT_ROCKET_GRUNTM_19 EQU $508 +EVENT_BEAT_ROCKET_GRUNTM_20 EQU $509 +EVENT_BEAT_ROCKET_GRUNTM_21 EQU $50c +EVENT_BEAT_ROCKET_GRUNTM_22 EQU $50d +EVENT_BEAT_ROCKET_GRUNTF_1 EQU $510 +EVENT_BEAT_ROCKET_GRUNTF_2 EQU $511 +EVENT_BEAT_ROCKET_GRUNTF_3 EQU $512 +EVENT_BEAT_ROCKET_GRUNTF_4 EQU $513 +EVENT_BEAT_ROCKET_GRUNTF_5 EQU $514 +EVENT_BEAT_LASS_CARRIE EQU $515 +EVENT_BEAT_LASS_BRIDGET EQU $516 +EVENT_BEAT_LASS_KRISE EQU $518 +EVENT_BEAT_LASS_CONNIE_1 EQU $519 +EVENT_BEAT_LASS_LAURA EQU $51b +EVENT_BEAT_LASS_SHANNON EQU $51c +EVENT_BEAT_LASS_MICHELLE EQU $51d +EVENT_BEAT_LASS_DANA EQU $51e +EVENT_BEAT_LASS_ELLEN EQU $51f +EVENT_BEAT_HIKER_RUSSELL EQU $525 +EVENT_BEAT_HIKER_PHILLIP EQU $526 +EVENT_BEAT_HIKER_LEONARD EQU $527 +EVENT_BEAT_HIKER_ANTHONY_2 EQU $528 +EVENT_BEAT_HIKER_BENJAMIN EQU $529 +EVENT_BEAT_HIKER_ERIK EQU $52a +EVENT_BEAT_HIKER_MICHAEL EQU $52b +EVENT_BEAT_HIKER_PARRY_3 EQU $52c +EVENT_BEAT_HIKER_TIMOTHY EQU $52d +EVENT_BEAT_HIKER_BAILEY EQU $52e +EVENT_BEAT_HIKER_TIM EQU $530 +EVENT_BEAT_HIKER_NOLAND EQU $531 +EVENT_BEAT_HIKER_SIDNEY EQU $532 +EVENT_BEAT_HIKER_KENNY EQU $533 +EVENT_BEAT_HIKER_JIM EQU $534 +EVENT_BEAT_HIKER_DANIEL EQU $535 +EVENT_BEAT_BUG_CATCHER_DON EQU $538 +EVENT_BEAT_BUG_CATCHER_ROB EQU $539 +EVENT_BEAT_BUG_CATCHER_ED EQU $53a +EVENT_BEAT_BUG_CATCHER_WADE_1 EQU $53b +EVENT_BEAT_BUG_CATCHER_BENNY EQU $53c +EVENT_BEAT_BUG_CATCHER_AL EQU $53d +EVENT_BEAT_BUG_CATCHER_JOSH EQU $53e +EVENT_BEAT_BUG_CATCHER_ARNIE_1 EQU $53f +EVENT_BEAT_BUG_CATCHER_KEN EQU $540 +EVENT_BEAT_BUG_CATCHER_DOUG EQU $543 +EVENT_BEAT_COOLTRAINERM_NICK EQU $548 +EVENT_BEAT_COOLTRAINERM_AARON EQU $549 +EVENT_BEAT_COOLTRAINERM_PAUL EQU $54a +EVENT_BEAT_COOLTRAINERM_CODY EQU $54b +EVENT_BEAT_COOLTRAINERM_MIKE EQU $54c +EVENT_BEAT_COOLTRAINERM_RYAN EQU $54f +EVENT_BEAT_COOLTRAINERM_JAKE EQU $550 +EVENT_BEAT_COOLTRAINERM_GAVEN_3 EQU $551 +EVENT_BEAT_COOLTRAINERM_BLAKE EQU $552 +EVENT_BEAT_COOLTRAINERM_BRIAN EQU $553 +EVENT_BEAT_COOLTRAINERM_SEAN EQU $557 +EVENT_BEAT_COOLTRAINERM_ALLEN EQU $55a +EVENT_BEAT_COOLTRAINERF_GWEN EQU $55b +EVENT_BEAT_COOLTRAINERF_LOIS EQU $55c +EVENT_BEAT_COOLTRAINERF_FRAN EQU $55d +EVENT_BEAT_COOLTRAINERF_LOLA EQU $55e +EVENT_BEAT_COOLTRAINERF_KATE EQU $55f +EVENT_BEAT_COOLTRAINERF_IRENE EQU $560 +EVENT_BEAT_COOLTRAINERF_KELLY EQU $561 +EVENT_BEAT_COOLTRAINERF_JOYCE EQU $562 +EVENT_BEAT_COOLTRAINERF_BETH_1 EQU $563 +EVENT_BEAT_COOLTRAINERF_REENA_1 EQU $564 +EVENT_BEAT_COOLTRAINERF_MEGAN EQU $565 +EVENT_BEAT_COOLTRAINERF_CAROL EQU $567 +EVENT_BEAT_COOLTRAINERF_QUINN EQU $568 +EVENT_BEAT_COOLTRAINERF_EMMA EQU $569 +EVENT_BEAT_COOLTRAINERF_CYBIL EQU $56a +EVENT_BEAT_COOLTRAINERF_JENN EQU $56b +EVENT_BEAT_ROCKET_EXECUTIVEF EQU $56f +EVENT_BEAT_ROCKET_EXECUTIVEM EQU $572 +EVENT_BEAT_SAILOR_EUGENE EQU $575 +EVENT_BEAT_SAILOR_HUEY_1 EQU $576 +EVENT_BEAT_SAILOR_TERRELL EQU $577 +EVENT_BEAT_SAILOR_KENT EQU $578 +EVENT_BEAT_SAILOR_ERNEST EQU $579 +EVENT_BEAT_SAILOR_JEFF EQU $57a +EVENT_BEAT_SAILOR_GARRETT EQU $57b +EVENT_BEAT_SAILOR_KENNETH EQU $57c +EVENT_BEAT_SAILOR_HARRY EQU $57e +EVENT_BEAT_SUPER_NERD_ERIC EQU $582 +EVENT_BEAT_SUPER_NERD_SAM EQU $586 +EVENT_BEAT_SUPER_NERD_TOM EQU $587 +EVENT_BEAT_SUPER_NERD_PAT EQU $588 +EVENT_BEAT_SUPER_NERD_SHAWN EQU $589 +EVENT_BEAT_SUPER_NERD_TERU EQU $58a +EVENT_BEAT_MEDIUM_MARTHA EQU $58b +EVENT_BEAT_MEDIUM_GRACE EQU $58c +EVENT_BEAT_MEDIUM_REBECCA EQU $590 +EVENT_BEAT_MEDIUM_DORIS EQU $591 +EVENT_BEAT_SKIER_ROXANNE EQU $592 +EVENT_BEAT_SKIER_CLARISSA EQU $593 +EVENT_BEAT_SWIMMERM_HAROLD EQU $594 +EVENT_BEAT_SWIMMERM_SIMON EQU $595 +EVENT_BEAT_SWIMMERM_RANDALL EQU $596 +EVENT_BEAT_SWIMMERM_CHARLIE EQU $597 +EVENT_BEAT_SWIMMERM_GEORGE EQU $598 +EVENT_BEAT_SWIMMERM_BERKE EQU $599 +EVENT_BEAT_SWIMMERM_KIRK EQU $59a +EVENT_BEAT_SWIMMERM_MATHEW EQU $59b +EVENT_BEAT_SWIMMERM_JEROME EQU $5a1 +EVENT_BEAT_SWIMMERM_TUCKER EQU $5a2 +EVENT_BEAT_SWIMMERM_CAMERON EQU $5a4 +EVENT_BEAT_SWIMMERM_SETH EQU $5a5 +EVENT_BEAT_SWIMMERM_PARKER EQU $5a8 +EVENT_BEAT_YOUNGSTER_JOEY_1 EQU $5a9 +EVENT_BEAT_YOUNGSTER_MIKEY EQU $5aa +EVENT_BEAT_YOUNGSTER_ALBERT EQU $5ab +EVENT_BEAT_YOUNGSTER_GORDON EQU $5ac +EVENT_BEAT_YOUNGSTER_SAMUEL EQU $5ad +EVENT_BEAT_YOUNGSTER_IAN EQU $5ae +EVENT_BEAT_YOUNGSTER_WARREN EQU $5b1 +EVENT_BEAT_YOUNGSTER_JIMMY EQU $5b2 +EVENT_BEAT_YOUNGSTER_OWEN EQU $5b3 +EVENT_BEAT_YOUNGSTER_JASON EQU $5b4 +EVENT_BEAT_TEACHER_COLETTE EQU $5b5 +EVENT_BEAT_TEACHER_HILLARY EQU $5b6 +EVENT_BEAT_TEACHER_SHIRLEY EQU $5b7 +EVENT_BEAT_ELITE_4_KAREN EQU $5bb +EVENT_BEAT_CHAMPION_LANCE EQU $5bc +EVENT_BEAT_COOLTRAINERM_DARIN EQU $5bd +EVENT_BEAT_COOLTRAINERF_CARA EQU $5be +EVENT_BEAT_TWINS_LEA_AND_PIA EQU $5bf +EVENT_BEAT_BUG_CATCHER_WAYNE EQU $5c0 +EVENT_BEAT_BEAUTY_OLIVIA EQU $5c1 +EVENT_BEAT_POKEMANIAC_MILER EQU $5c4 +EVENT_BEAT_SUPER_NERD_HUGH EQU $5c5 +EVENT_BEAT_SUPER_NERD_MARKUS EQU $5c6 +EVENT_BEAT_POKEFANM_REX EQU $5c7 +EVENT_BEAT_POKEFANM_ALLAN EQU $5c8 +EVENT_BEAT_SAGE_GAKU EQU $5c9 +EVENT_BEAT_SAGE_MASA EQU $5ca +EVENT_BEAT_SAGE_KOJI EQU $5cb +EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE EQU $6ff +EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER EQU $700 +EVENT_ELMS_AIDE_IN_LAB EQU $701 +EVENT_BOULDER_IN_ICE_PATH_1 EQU $70d +EVENT_BOULDER_IN_ICE_PATH_2 EQU $70e +EVENT_BOULDER_IN_ICE_PATH_3 EQU $70f +EVENT_BOULDER_IN_ICE_PATH_4 EQU $710 +EVENT_FOUGHT_SNORLAX EQU $750 +EVENT_PICKED_UP_FOCUS_BAND EQU $77d +EVENT_PICKED_UP_GOLD_BERRY_FROM_HO_OH_ITEM_ROOM EQU $794 +EVENT_PICKED_UP_MYSTERYBERRY_FROM_HO_OH_ITEM_ROOM EQU $795 +EVENT_PICKED_UP_REVIVAL_HERB_FROM_HO_OH_ITEM_ROOM EQU $796 +EVENT_PICKED_UP_CHARCOAL_FROM_HO_OH_ITEM_ROOM EQU $797 +EVENT_PICKED_UP_BERRY_FROM_KABUTO_ITEM_ROOM EQU $798 +EVENT_PICKED_UP_PSNCUREBERRY_FROM_KABUTO_ITEM_ROOM EQU $799 +EVENT_PICKED_UP_HEAL_POWDER_FROM_KABUTO_ITEM_ROOM EQU $79a +EVENT_PICKED_UP_ENERGYPOWDER_FROM_KABUTO_ITEM_ROOM EQU $79b +EVENT_PICKED_UP_MYSTERYBERRY_FROM_OMANYTE_ITEM_ROOM EQU $79c +EVENT_PICKED_UP_MYSTIC_WATER_FROM_OMANYTE_ITEM_ROOM EQU $79d +EVENT_PICKED_UP_STARDUST_FROM_OMANYTE_ITEM_ROOM EQU $79e +EVENT_PICKED_UP_STAR_PIECE_FROM_OMANYTE_ITEM_ROOM EQU $79f +EVENT_PICKED_UP_GOLD_BERRY_FROM_AERODACTYL_ITEM_ROOM EQU $7a0 +EVENT_PICKED_UP_MOON_STONE_FROM_AERODACTYL_ITEM_ROOM EQU $7a1 +EVENT_PICKED_UP_HEAL_POWDER_FROM_AERODACTYL_ITEM_ROOM EQU $7a2 +EVENT_PICKED_UP_ENERGY_ROOT_FROM_AERODACTYL_ITEM_ROOM EQU $7a3 +EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY EQU $7ae +EVENT_SAW_SUICUNE_ON_ROUTE_42 EQU $7af +EVENT_SAW_SUICUNE_ON_ROUTE_36 EQU $7b0 +EVENT_SET_WHEN_FOUGHT_HO_OH EQU $7b7 diff --git a/engine/fruit_trees.asm b/engine/fruit_trees.asm new file mode 100644 index 000000000..5890d6784 --- /dev/null +++ b/engine/fruit_trees.asm @@ -0,0 +1,165 @@ +FruitTreeScript: ; 44000 + 3callasm BANK(GetCurTreeFruit), GetCurTreeFruit + loadfont + copybytetovar CurFruit + itemtotext $0, $0 + 2writetext FruitBearingTreeText + keeptextopen + 3callasm BANK(TryResetFruitTrees), TryResetFruitTrees + 3callasm BANK(CheckFruitTree), CheckFruitTree + iffalse .fruit + 2writetext NothingHereText + closetext + 2jump .end + +.fruit + 2writetext HeyItsFruitText + copybytetovar CurFruit + giveitem $ff, 1 + iffalse .packisfull + keeptextopen + 2writetext ObtainedFruitText + 3callasm BANK(PickedFruitTree), PickedFruitTree + specialsound + itemnotify + 2jump .end + +.packisfull + keeptextopen + 2writetext FruitPackIsFullText + closetext + +.end + loadmovesprites + end +; 44041 + +GetCurTreeFruit: ; 44041 + ld a, [CurFruitTree] + dec a + call GetFruitTreeItem + ld [CurFruit], a + ret +; 4404c + +TryResetFruitTrees: ; 4404c + ld hl, $dc1e + bit 4, [hl] + ret nz + jp ResetFruitTrees +; 44055 + +CheckFruitTree: ; 44055 + ld b, 2 + call GetFruitTreeFlag + ld a, c + ld [ScriptVar], a + ret +; 4405f + +PickedFruitTree: ; 4405f + ld a, $41 + ld hl, $609b + rst FarCall ; empty function + + ld b, 1 + jp GetFruitTreeFlag +; 4406a + +ResetFruitTrees: ; 4406a + xor a + ld hl, FruitTreeFlags + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld hl, $dc1e + set 4, [hl] + ret +; 44078 + +GetFruitTreeFlag: ; 44078 + push hl + push de + ld a, [CurFruitTree] + dec a + ld e, a + ld d, 0 + ld hl, FruitTreeFlags + call FlagAction + pop de + pop hl + ret +; 4408a + +GetFruitTreeItem: ; 4408a + push hl + push de + ld e, a + ld d, 0 + ld hl, FruitTreeItems + add hl, de + ld a, [hl] + pop de + pop hl + ret +; 44097 + +FruitTreeItems: ; 44097 + db BERRY + db BERRY + db BERRY + db BERRY + db PSNCUREBERRY + db PSNCUREBERRY + db BITTER_BERRY + db BITTER_BERRY + db PRZCUREBERRY + db PRZCUREBERRY + db MYSTERYBERRY + db MYSTERYBERRY + db ICE_BERRY + db ICE_BERRY + db MINT_BERRY + db BURNT_BERRY + db RED_APRICORN + db BLU_APRICORN + db BLK_APRICORN + db WHT_APRICORN + db PNK_APRICORN + db GRN_APRICORN + db YLW_APRICORN + db BERRY + db PSNCUREBERRY + db BITTER_BERRY + db PRZCUREBERRY + db ICE_BERRY + db MINT_BERRY + db BURNT_BERRY +; 440b5 + +FruitBearingTreeText: ; 440b5 + text_jump _FruitBearingTreeText, BANK(_FruitBearingTreeText) + db "@" +; 440ba + +HeyItsFruitText: ; 440ba + text_jump _HeyItsFruitText, BANK(_HeyItsFruitText) + db "@" +; 440bf + +ObtainedFruitText: ; 440bf + text_jump _ObtainedFruitText, BANK(_ObtainedFruitText) + db "@" +; 440c4 + +FruitPackIsFullText: ; 440c4 + text_jump _FruitPackIsFullText, BANK(_FruitPackIsFullText) + db "@" +; 440c9 + +NothingHereText: ; 440c9 + text_jump _NothingHereText, BANK(_NothingHereText) + db "@" +; 440ce + diff --git a/engine/scripting.asm b/engine/scripting.asm index 5d44d1a8e..12fd14283 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -539,7 +539,7 @@ Script_verbosegiveitem2: ; 0x96f8e ld a, [de] ld [$d10c], a ld hl, $d892 - call Function2f66 + call ReceiveItem ld a, $1 jr c, .asm_96fb0 ; 0x96fad $1 xor a @@ -1787,15 +1787,15 @@ StdScript: ; 0x9757b ld e, a call GetScriptByte ld d, a - ld hl, $4000 ; StdScripts + ld hl, StdScripts add hl, de add hl, de add hl, de - ld a, $2f ; BANK(StdScripts) + ld a, BANK(StdScripts) call GetFarByte ld b, a inc hl - ld a, $2f ; BANK(StdScripts) + ld a, BANK(StdScripts) call GetFarHalfword ret ; 0x97596 @@ -2320,7 +2320,7 @@ Script_giveitem: ; 0x977ca call GetScriptByte ld [$d10c], a ld hl, $d892 - call Function2f66 + call ReceiveItem jr nc, .asm_977eb ; 0x977e3 $6 ld a, $1 ld [$c2dd], a @@ -2346,7 +2346,7 @@ Script_takeitem: ; 0x977f0 ld a, $ff ld [$d107], a ld hl, $d892 - call Function2f53 + call TossItem ret nc ld a, $1 ld [$c2dd], a @@ -2363,7 +2363,7 @@ Script_checkitem: ; 0x97812 call GetScriptByte ld [$d106], a ld hl, $d892 - call PickUpItem + call CheckItem ret nc ld a, $1 ld [$c2dd], a diff --git a/engine/std_scripts.asm b/engine/std_scripts.asm new file mode 100644 index 000000000..095013d1d --- /dev/null +++ b/engine/std_scripts.asm @@ -0,0 +1,2619 @@ +StdScripts: ; bc000 + dbw BANK(PokeCenterNurseScript), PokeCenterNurseScript + dbw BANK(UnknownScript_0xbc162), UnknownScript_0xbc162 + dbw BANK(UnknownScript_0xbc166), UnknownScript_0xbc166 + dbw BANK(UnknownScript_0xbc16a), UnknownScript_0xbc16a + dbw BANK(UnknownScript_0xbc16e), UnknownScript_0xbc16e + dbw BANK(UnknownScript_0xbc172), UnknownScript_0xbc172 + dbw BANK(UnknownScript_0xbc176), UnknownScript_0xbc176 + dbw BANK(UnknownScript_0xbc17a), UnknownScript_0xbc17a + dbw BANK(UnknownScript_0xbc185), UnknownScript_0xbc185 + dbw BANK(UnknownScript_0xbc189), UnknownScript_0xbc189 + dbw BANK(UnknownScript_0xbc191), UnknownScript_0xbc191 + dbw BANK(UnknownScript_0xbc195), UnknownScript_0xbc195 + dbw BANK(UnknownScript_0xbc19d), UnknownScript_0xbc19d + dbw BANK(UnknownScript_0xbc1a5), UnknownScript_0xbc1a5 + dbw BANK(UnknownScript_0xbc1b8), UnknownScript_0xbc1b8 + dbw BANK(UnknownScript_0xbc1bc), UnknownScript_0xbc1bc + dbw BANK(UnknownScript_0xbc1c0), UnknownScript_0xbc1c0 + dbw BANK(UnknownScript_0xbc1c4), UnknownScript_0xbc1c4 + dbw BANK(UnknownScript_0xbc23e), UnknownScript_0xbc23e + dbw BANK(UnknownScript_0xbc242), UnknownScript_0xbc242 + dbw BANK(UnknownScript_0xbc1af), UnknownScript_0xbc1af + dbw BANK(UnknownScript_0xbc1c8), UnknownScript_0xbc1c8 + dbw BANK(UnknownScript_0xbc25c), UnknownScript_0xbc25c + dbw BANK(UnknownScript_0xbc274), UnknownScript_0xbc274 + dbw BANK(UnknownScript_0xbc3db), UnknownScript_0xbc3db + dbw BANK(UnknownScript_0xbc574), UnknownScript_0xbc574 + dbw BANK(UnknownScript_0xbc62d), UnknownScript_0xbc62d + dbw BANK(UnknownScript_0xbc6e6), UnknownScript_0xbc6e6 + dbw BANK(UnknownScript_0xbc6f0), UnknownScript_0xbc6f0 + dbw BANK(UnknownScript_0xbc7ce), UnknownScript_0xbc7ce + dbw BANK(UnknownScript_0xbc8ac), UnknownScript_0xbc8ac + dbw BANK(UnknownScript_0xbc98a), UnknownScript_0xbc98a + dbw BANK(UnknownScript_0xbca47), UnknownScript_0xbca47 + dbw BANK(UnknownScript_0xbca8f), UnknownScript_0xbca8f + dbw BANK(UnknownScript_0xbcb0a), UnknownScript_0xbcb0a + dbw BANK(UnknownScript_0xbcb35), UnknownScript_0xbcb35 + dbw BANK(UnknownScript_0xbcb7f), UnknownScript_0xbcb7f + dbw BANK(UnknownScript_0xbcbc9), UnknownScript_0xbcbc9 + dbw BANK(UnknownScript_0xbcbd3), UnknownScript_0xbcbd3 + dbw BANK(UnknownScript_0xbcc2d), UnknownScript_0xbcc2d + dbw BANK(UnknownScript_0xbcc87), UnknownScript_0xbcc87 + dbw BANK(UnknownScript_0xbcce1), UnknownScript_0xbcce1 + dbw BANK(UnknownScript_0xbcd30), UnknownScript_0xbcd30 + dbw BANK(UnknownScript_0xbcd5a), UnknownScript_0xbcd5a + dbw BANK(UnknownScript_0xbcd93), UnknownScript_0xbcd93 + dbw BANK(UnknownScript_0xbcda0), UnknownScript_0xbcda0 + dbw BANK(UnknownScript_0xbcdaa), UnknownScript_0xbcdaa + dbw BANK(UnknownScript_0xbcdb9), UnknownScript_0xbcdb9 + dbw BANK(UnknownScript_0xbcdc3), UnknownScript_0xbcdc3 + dbw BANK(UnknownScript_0xbc1a9), UnknownScript_0xbc1a9 + dbw BANK(UnknownScript_0xbcdcd), UnknownScript_0xbcdcd + dbw BANK(UnknownScript_0xbce7f), UnknownScript_0xbce7f +; bc09c + +PokeCenterNurseScript: ; bc09c +; Talking to a nurse in a Pokemon Center + + loadfont +; The nurse has different text for: +; Morn + checktime $1 + iftrue .morn +; Day + checktime $2 + iftrue .day +; Nite + checktime $4 + iftrue .nite +; If somehow it's not a time of day at all, we skip the introduction + 2jump .heal + +.morn +; Different text if we're in the com center + checkbit1 $032a + iftrue .morn_comcenter +; Good morning! Welcome to ... + 3writetext BANK(UnknownText_0x1b0000), UnknownText_0x1b0000 + keeptextopen + 2jump .heal +.morn_comcenter +; Good morning! This is the ... + 3writetext BANK(UnknownText_0x1b008a), UnknownText_0x1b008a + keeptextopen + 2jump .heal + +.day +; Different text if we're in the com center + checkbit1 $032a + iftrue .day_comcenter +; Hello! Welcome to ... + 3writetext BANK(UnknownText_0x1b002b), UnknownText_0x1b002b + keeptextopen + 2jump .heal +.day_comcenter +; Hello! This is the ... + 3writetext BANK(UnknownText_0x1b00d6), UnknownText_0x1b00d6 + keeptextopen + 2jump .heal + +.nite +; Different text if we're in the com center + checkbit1 $032a + iftrue .nite_comcenter +; Good evening! You're out late. ... + 3writetext BANK(UnknownText_0x1b004f), UnknownText_0x1b004f + keeptextopen + 2jump .heal +.nite_comcenter +; Good to see you working so late. ... + 3writetext BANK(UnknownText_0x1b011b), UnknownText_0x1b011b + keeptextopen + 2jump .heal + +.heal +; If we come back, don't welcome us to the com center again + clearbit1 $032a +; Ask if you want to heal + 3writetext BANK(UnknownText_0x1b017a), UnknownText_0x1b017a + yesorno + iffalse .end +; Go ahead and heal + 3writetext BANK(UnknownText_0x1b01bd), UnknownText_0x1b01bd + pause 20 + special $009d +; Turn to the machine + spriteface $fe, $2 + pause 10 + special $001b + playmusic $0000 + writebyte $0 + special $003e + pause 30 + special $003d + spriteface $fe, $0 + pause 10 +; Has Elm already phoned you about Pokerus? + checkphonecall + iftrue .done +; Has Pokerus already been found in the Pokecenter? + checkbit2 $000d + iftrue .done +; Check for Pokerus + special $004e ; SPECIAL_CHECKPOKERUS + iftrue .pokerus +.done +; Thank you for waiting. ... + 3writetext BANK(UnknownText_0x1b01d7), UnknownText_0x1b01d7 + pause 20 +.end +; We hope to see you again. + 3writetext BANK(UnknownText_0x1b020b), UnknownText_0x1b020b +; Curtsy + spriteface $fe, $1 + pause 10 + spriteface $fe, $0 + pause 10 +; And we're out + closetext + loadmovesprites + end + +.pokerus +; Different text for com center (excludes 'in a Pokemon Center') +; Since flag $32a is cleared when healing, +; this text is never actually seen + checkbit1 $032a + iftrue .pokerus_comcenter +; Your Pokemon appear to be infected ... + 3writetext BANK(UnknownText_0x1b0241), UnknownText_0x1b0241 + closetext + loadmovesprites + 2jump .endpokerus +.pokerus_comcenter +; Your Pokemon appear to be infected ... + 3writetext BANK(UnknownText_0x1b02d6), UnknownText_0x1b02d6 + closetext + loadmovesprites +.endpokerus +; Don't tell us about Pokerus again + setbit2 $000d +; Trigger Elm's Pokerus phone call + specialphonecall $0001 + end +; bc162 + +UnknownScript_0xbc162: ; 0xbc162 + 3jumptext $6c, $435a +; 0xbc166 + +UnknownScript_0xbc166: ; 0xbc166 + 3jumptext $6c, $4378 +; 0xbc16a + +UnknownScript_0xbc16a: ; 0xbc16a + 3jumptext $6c, $43a3 +; 0xbc16e + +UnknownScript_0xbc16e: ; 0xbc16e + 3jumptext $6c, $43d9 +; 0xbc172 + +UnknownScript_0xbc172: ; 0xbc172 + 3jumptext $6c, $4448 +; 0xbc176 + +UnknownScript_0xbc176: ; 0xbc176 + 3jumptext $6c, $4472 +; 0xbc17a + +UnknownScript_0xbc17a: ; 0xbc17a + loadfont + 3writetext $6c, $448d + closetext + special $0026 + loadmovesprites + end +; 0xbc185 + +UnknownScript_0xbc185: ; 0xbc185 + 3jumptext $6c, $44a0 +; 0xbc189 + +UnknownScript_0xbc189: ; 0xbc189 + loadfont + 3writetext $6c, $44be + closetext + loadmovesprites + end +; 0xbc191 + +UnknownScript_0xbc191: ; 0xbc191 + 3jumptext $6c, $44c9 +; 0xbc195 + +UnknownScript_0xbc195: ; 0xbc195 + loadfont + writebyte $0 + special $0028 + loadmovesprites + end +; 0xbc19d + +UnknownScript_0xbc19d: ; 0xbc19d + loadfont + writebyte $4 + special $0028 + loadmovesprites + end +; 0xbc1a5 + +UnknownScript_0xbc1a5: ; 0xbc1a5 + 3jumptext $6c, $4526 +; 0xbc1a9 + +UnknownScript_0xbc1a9: ; 0xbc1a9 + loadfont + special $001c + loadmovesprites + end +; 0xbc1af + +UnknownScript_0xbc1af: ; 0xbc1af + playsound $0008 + pause 15 + playsound $0027 + end +; 0xbc1b8 + +UnknownScript_0xbc1b8: ; 0xbc1b8 + 3jump BANK(UnknownScript_0xcd4b), UnknownScript_0xcd4b +; 0xbc1bc + +UnknownScript_0xbc1bc: ; 0xbc1bc + 3jump BANK(UnknownScript_0xcf5d), UnknownScript_0xcf5d +; 0xbc1c0 + +UnknownScript_0xbc1c0: ; 0xbc1c0 + 3jumptext $6c, $457f +; 0xbc1c4 + +UnknownScript_0xbc1c4: ; 0xbc1c4 + 3jumptext $6c, $459c +; 0xbc1c8 + +UnknownScript_0xbc1c8: ; 0xbc1c8 + checkcode $b + if_equal $1, UnknownScript_0xbc1e7 + if_equal $2, UnknownScript_0xbc1ec + if_equal $3, UnknownScript_0xbc1f1 + if_equal $4, UnknownScript_0xbc1f6 + if_equal $5, UnknownScript_0xbc1fb + if_equal $6, UnknownScript_0xbc200 + stringtotext UnknownRawText_0xbc205, $0 + end +; 0xbc1e7 + +UnknownScript_0xbc1e7: ; 0xbc1e7 + stringtotext UnknownRawText_0xbc20c, $0 + end +; 0xbc1ec + +UnknownScript_0xbc1ec: ; 0xbc1ec + stringtotext UnknownRawText_0xbc213, $0 + end +; 0xbc1f1 + +UnknownScript_0xbc1f1: ; 0xbc1f1 + stringtotext UnknownRawText_0xbc21b, $0 + end +; 0xbc1f6 + +UnknownScript_0xbc1f6: ; 0xbc1f6 + stringtotext UnknownRawText_0xbc225, $0 + end +; 0xbc1fb + +UnknownScript_0xbc1fb: ; 0xbc1fb + stringtotext UnknownRawText_0xbc22e, $0 + end +; 0xbc200 + +UnknownScript_0xbc200: ; 0xbc200 + stringtotext UnknownRawText_0xbc235, $0 + end +; 0xbc205 + +UnknownRawText_0xbc205: ; bc205 + db "SUNDAY@" +; bc20c + +UnknownRawText_0xbc20c: ; bc20c + db "MONDAY@" +; bc213 + +UnknownRawText_0xbc213: ; bc213 + db "TUESDAY@" +; bc21b + +UnknownRawText_0xbc21b: ; bc21b + db "WEDNESDAY@" +; bc225 + +UnknownRawText_0xbc225: ; bc225 + db "THURSDAY@" +; bc22e + +UnknownRawText_0xbc22e: ; bc22e + db "FRIDAY@" +; bc235 + +UnknownRawText_0xbc235: ; bc235 + db "SATURDAY@" +; bc23e + +UnknownScript_0xbc23e: ; 0xbc23e + clearbit1 $06cd + end +; 0xbc242 + +UnknownScript_0xbc242: ; 0xbc242 + setbit2 $0013 + setbit1 $06cf + setbit1 $06d1 + clearbit1 $06ce + clearbit1 $0025 + setbit1 $0756 + specialphonecall $0004 + domaptrigger GROUP_MAHOGANY_TOWN, MAP_MAHOGANY_TOWN, $1 + end +; 0xbc25c + +UnknownScript_0xbc25c: ; 0xbc25c + special $0034 + 2call UnknownScript_0xbc380 + setbit1 $0747 + clearbit1 $0748 + setbit1 $02d2 + warp GROUP_ROUTE_36_NATIONAL_PARK_GATE, MAP_ROUTE_36_NATIONAL_PARK_GATE, $0, $4 + applymovement $0, MovementData_0xbcea1 + +UnknownScript_0xbc274: ; bc274 + clearbit2 $0011 + clearbit1 $02d2 + clearbit1 $0313 + clearbit1 $0314 + clearbit1 $0315 + clearbit1 $0316 + loadfont + 3writetext $6c, $45bf + closetext + special $0014 + RAM2MEM $0 + if_equal $1, UnknownScript_0xbc31e + if_equal $2, UnknownScript_0xbc332 + if_equal $3, UnknownScript_0xbc343 + 3writetext $6c, $4681 + keeptextopen + waitbutton + verbosegiveitem BERRY, 1 + iffalse UnknownScript_0xbc375 + 3writetext $6c, $46b7 + keeptextopen + 2jump $42b6 +; 0xbc2b1 + +UnknownScript_0xbc2b1: ; 0xbc2b1 + 3writetext $6c, $465b + keeptextopen + checkbit1 $0308 + iffalse $42c4 + 3writetext $6c, $46d9 + closetext + special $0017 + special $0015 + if_equal $0, $42d4 + if_equal $2, $42d4 + 3writetext $6c, $470d + closetext + loadmovesprites + dotrigger $0 + domaptrigger GROUP_ROUTE_35_NATIONAL_PARK_GATE, MAP_ROUTE_35_NATIONAL_PARK_GATE, $0 + setbit1 $0716 + setbit1 $0717 + setbit1 $0718 + setbit1 $0719 + setbit1 $071a + setbit1 $071b + setbit1 $071c + setbit1 $071d + setbit1 $071e + setbit1 $071f + setbit1 $0720 + setbit1 $0721 + setbit1 $0722 + setbit1 $0723 + setbit1 $0724 + setbit1 $0725 + setbit1 $0726 + setbit1 $0727 + setbit1 $0728 + setbit1 $0729 + setbit2 $0051 + special $003c + end +; 0xbc31e + +UnknownScript_0xbc31e: ; 0xbc31e + setbit1 $0000 + itemtotext SUN_STONE, $1 + 3writetext $6c, $4621 + closetext + verbosegiveitem SUN_STONE, 1 + iffalse UnknownScript_0xbc354 + 2jump UnknownScript_0xbc2b1 +; 0xbc332 + +UnknownScript_0xbc332: ; 0xbc332 + itemtotext EVERSTONE, $1 + 3writetext $6c, $4621 + closetext + verbosegiveitem EVERSTONE, 1 + iffalse UnknownScript_0xbc35f + 2jump UnknownScript_0xbc2b1 +; 0xbc343 + +UnknownScript_0xbc343: ; 0xbc343 + itemtotext GOLD_BERRY, $1 + 3writetext $6c, $4621 + closetext + verbosegiveitem GOLD_BERRY, 1 + iffalse UnknownScript_0xbc36a + 2jump UnknownScript_0xbc2b1 +; 0xbc354 + +UnknownScript_0xbc354: ; 0xbc354 + 3writetext $6c, $48cc + keeptextopen + setbit1 $0313 + 2jump UnknownScript_0xbc2b1 +; 0xbc35f + +UnknownScript_0xbc35f: ; 0xbc35f + 3writetext $6c, $48cc + keeptextopen + setbit1 $0314 + 2jump UnknownScript_0xbc2b1 +; 0xbc36a + +UnknownScript_0xbc36a: ; 0xbc36a + 3writetext $6c, $48cc + keeptextopen + setbit1 $0315 + 2jump UnknownScript_0xbc2b1 +; 0xbc375 + +UnknownScript_0xbc375: ; 0xbc375 + 3writetext $6c, $48cc + keeptextopen + setbit1 $0316 + 2jump $42a9 +; 0xbc380 + +UnknownScript_0xbc380: ; 0xbc380 + checkbit1 $0716 + iftrue .skip1 + clearbit1 $0720 +.skip1 + checkbit1 $0717 + iftrue .skip2 + clearbit1 $0721 +.skip2 + checkbit1 $0718 + iftrue .skip3 + clearbit1 $0722 +.skip3 + checkbit1 $0719 + iftrue .skip4 + clearbit1 $0723 +.skip4 + checkbit1 $071a + iftrue .skip5 + clearbit1 $0724 +.skip5 + checkbit1 $071b + iftrue .skip6 + clearbit1 $0725 +.skip6 + checkbit1 $071c + iftrue .skip7 + clearbit1 $0726 +.skip7 + checkbit1 $071d + iftrue .skip8 + clearbit1 $0727 +.skip8 + checkbit1 $071e + iftrue .skip9 + clearbit1 $0728 +.skip9 + checkbit1 $071f + iftrue .skip10 + clearbit1 $0729 +.skip10 + end +; 0xbc3db + +UnknownScript_0xbc3db: ; 0xbc3db + setbit1 $06cb + setbit1 $06ce + setbit1 $06cd + setbit1 $06d0 + setbit1 $06f3 + setbit1 $06e9 + setbit1 $06f4 + setbit1 $06d5 + setbit1 $06de + setbit1 $06dd + setbit1 $06df + setbit1 $06c0 + setbit1 $06e4 + setbit1 $0025 + setbit1 $06be + setbit1 $06bf + setbit1 $06c1 + setbit1 $06f9 + setbit1 $06fd + setbit1 $06ff + setbit1 $0700 + setbit1 $0702 + setbit1 $0703 + setbit1 $0704 + setbit1 $070d + setbit1 $070e + setbit1 $070f + setbit1 $0710 + setbit1 $0715 + setbit1 $0716 + setbit1 $0717 + setbit1 $0718 + setbit1 $0719 + setbit1 $071a + setbit1 $071b + setbit1 $071c + setbit1 $071d + setbit1 $071e + setbit1 $071f + setbit1 $0720 + setbit1 $0721 + setbit1 $0722 + setbit1 $0723 + setbit1 $0724 + setbit1 $0725 + setbit1 $0726 + setbit1 $0727 + setbit1 $0728 + setbit1 $0729 + setbit1 $072c + setbit1 $072f + setbit1 $072d + setbit1 $0735 + setbit1 $0736 + setbit1 $073c + setbit1 $073d + setbit1 $0741 + setbit1 $0742 + setbit1 $0743 + setbit1 $0744 + setbit1 $02a4 + setbit1 $02af + setbit1 $0749 + setbit1 $06d3 + setbit1 $074d + setbit1 $0712 + setbit1 $0713 + setbit1 $0711 + setbit1 $06d4 + setbit1 $0304 + setbit1 $0307 + setbit1 $06d8 + setbit1 $06c3 + setbit1 $06c2 + setbit1 $06c6 + setbit1 $075f + setbit1 $0731 + setbit1 $074a + setbit1 $0762 + setbit1 $0738 + setbit1 $073a + setbit1 $073b + setbit1 $0733 + setbit1 $073f + setbit1 $078d + setbit1 $0766 + setbit1 $0768 + setbit1 $0769 + setbit1 $076a + setbit1 $078e + setbit1 $078f + setbit1 $0790 + setbit1 $0791 + setbit1 $0793 + setbit1 $07a4 + setbit1 $07a4 + setbit1 $07a5 + setbit1 $06ec + setbit1 $06ed + setbit1 $06f0 + setbit1 $07a9 + setbit1 $07aa + setbit1 $06c8 + setbit1 $07ac + setbit1 $07ad + setbit1 $07b5 + setbit1 $07b6 + setbit1 $07c5 + setbit1 $07b7 + setbit1 $07b0 + setbit1 $07af + setbit1 $07ae + setbit1 $07cf + setbit2 $000e + setbit2 $0017 + variablesprite $4, $52 + variablesprite $5, $4 + variablesprite $6, $35 + variablesprite $7, $a + variablesprite $8, $a + variablesprite $9, $a + variablesprite $a, $a + variablesprite $b, $28 + variablesprite $c, $28 + setbit1 $00fb + setbit1 $076d + setbit1 $076c + setbit1 $076e + setbit1 $076f + setbit1 $0773 + setbit1 $0776 + setbit1 $0777 + setbit1 $0779 + setbit1 $0772 + setbit1 $077b + setbit1 $0036 + return +; 0xbc574 + +UnknownScript_0xbc574: ; 0xbc574 + special $005d + checkcode $17 + if_equal $5, UnknownScript_0xbc5c9 + if_equal $7, UnknownScript_0xbc5ce + if_equal $b, UnknownScript_0xbc5d3 + if_equal $d, UnknownScript_0xbc5d8 + if_equal $f, UnknownScript_0xbc5dd + if_equal $10, UnknownScript_0xbc5e2 + if_equal $11, UnknownScript_0xbc5e7 + if_equal $13, UnknownScript_0xbc5ec + if_equal $14, UnknownScript_0xbc5f1 + if_equal $16, UnknownScript_0xbc5f6 + if_equal $17, UnknownScript_0xbc5fb + if_equal $18, UnknownScript_0xbc600 + if_equal $1b, UnknownScript_0xbc605 + if_equal $1c, UnknownScript_0xbc60a + if_equal $1d, UnknownScript_0xbc60f + if_equal $1e, UnknownScript_0xbc614 + if_equal $20, UnknownScript_0xbc619 + if_equal $21, UnknownScript_0xbc61e + if_equal $22, UnknownScript_0xbc623 + if_equal $23, UnknownScript_0xbc628 + +UnknownScript_0xbc5c9: ; bc5c9 + 3writetext $6c, $49fe + end +; 0xbc5ce + +UnknownScript_0xbc5ce: ; 0xbc5ce + 3writetext $6c, $4d9f + end +; 0xbc5d3 + +UnknownScript_0xbc5d3: ; 0xbc5d3 + 3writetext $6c, $502e + end +; 0xbc5d8 + +UnknownScript_0xbc5d8: ; 0xbc5d8 + 3writetext $6c, $542d + end +; 0xbc5dd + +UnknownScript_0xbc5dd: ; 0xbc5dd + 3writetext $6c, $5800 + end +; 0xbc5e2 + +UnknownScript_0xbc5e2: ; 0xbc5e2 + 3writetext $6c, $5a71 + end +; 0xbc5e7 + +UnknownScript_0xbc5e7: ; 0xbc5e7 + 3writetext $6c, $5cd5 + end +; 0xbc5ec + +UnknownScript_0xbc5ec: ; 0xbc5ec + 3writetext $29, $4000 + end +; 0xbc5f1 + +UnknownScript_0xbc5f1: ; 0xbc5f1 + 3writetext $29, $41c0 + end +; 0xbc5f6 + +UnknownScript_0xbc5f6: ; 0xbc5f6 + 3writetext $29, $4642 + end +; 0xbc5fb + +UnknownScript_0xbc5fb: ; 0xbc5fb + 3writetext $29, $4829 + end +; 0xbc600 + +UnknownScript_0xbc600: ; 0xbc600 + 3writetext $29, $4a31 + end +; 0xbc605 + +UnknownScript_0xbc605: ; 0xbc605 + 3writetext $29, $4ed4 + end +; 0xbc60a + +UnknownScript_0xbc60a: ; 0xbc60a + 3writetext $29, $50d5 + end +; 0xbc60f + +UnknownScript_0xbc60f: ; 0xbc60f + 3writetext $29, $52e2 + end +; 0xbc614 + +UnknownScript_0xbc614: ; 0xbc614 + 3writetext $29, $5545 + end +; 0xbc619 + +UnknownScript_0xbc619: ; 0xbc619 + 3writetext $29, $5937 + end +; 0xbc61e + +UnknownScript_0xbc61e: ; 0xbc61e + 3writetext $29, $5bc4 + end +; 0xbc623 + +UnknownScript_0xbc623: ; 0xbc623 + 3writetext $29, $5dc6 + end +; 0xbc628 + +UnknownScript_0xbc628: ; 0xbc628 + 3writetext $29, $600c + end +; 0xbc62d + +UnknownScript_0xbc62d: ; 0xbc62d + special $005d + checkcode $17 + if_equal $5, UnknownScript_0xbc682 + if_equal $7, UnknownScript_0xbc687 + if_equal $b, UnknownScript_0xbc68c + if_equal $d, UnknownScript_0xbc691 + if_equal $f, UnknownScript_0xbc696 + if_equal $10, UnknownScript_0xbc69b + if_equal $11, UnknownScript_0xbc6a0 + if_equal $13, UnknownScript_0xbc6a5 + if_equal $14, UnknownScript_0xbc6aa + if_equal $16, UnknownScript_0xbc6af + if_equal $17, UnknownScript_0xbc6b4 + if_equal $18, UnknownScript_0xbc6b9 + if_equal $1b, UnknownScript_0xbc6be + if_equal $1c, UnknownScript_0xbc6c3 + if_equal $1d, UnknownScript_0xbc6c8 + if_equal $1e, UnknownScript_0xbc6cd + if_equal $20, UnknownScript_0xbc6d2 + if_equal $21, UnknownScript_0xbc6d7 + if_equal $22, UnknownScript_0xbc6dc + if_equal $23, UnknownScript_0xbc6e1 + +UnknownScript_0xbc682: ; bc682 + 3writetext $6c, $4a82 + end +; 0xbc687 + +UnknownScript_0xbc687: ; 0xbc687 + 3writetext $6c, $4e2c + end +; 0xbc68c + +UnknownScript_0xbc68c: ; 0xbc68c + 3writetext $6c, $50d3 + end +; 0xbc691 + +UnknownScript_0xbc691: ; 0xbc691 + 3writetext $6c, $54e4 + end +; 0xbc696 + +UnknownScript_0xbc696: ; 0xbc696 + 3writetext $6c, $587b + end +; 0xbc69b + +UnknownScript_0xbc69b: ; 0xbc69b + 3writetext $6c, $5b1d + end +; 0xbc6a0 + +UnknownScript_0xbc6a0: ; 0xbc6a0 + 3writetext $6c, $5d85 + end +; 0xbc6a5 + +UnknownScript_0xbc6a5: ; 0xbc6a5 + 3writetext $29, $40a9 + end +; 0xbc6aa + +UnknownScript_0xbc6aa: ; 0xbc6aa + 3writetext $29, $426a + end +; 0xbc6af + +UnknownScript_0xbc6af: ; 0xbc6af + 3writetext $29, $470b + end +; 0xbc6b4 + +UnknownScript_0xbc6b4: ; 0xbc6b4 + 3writetext $29, $48fc + end +; 0xbc6b9 + +UnknownScript_0xbc6b9: ; 0xbc6b9 + 3writetext $29, $4b03 + end +; 0xbc6be + +UnknownScript_0xbc6be: ; 0xbc6be + 3writetext $29, $4fc8 + end +; 0xbc6c3 + +UnknownScript_0xbc6c3: ; 0xbc6c3 + 3writetext $29, $5175 + end +; 0xbc6c8 + +UnknownScript_0xbc6c8: ; 0xbc6c8 + 3writetext $29, $5383 + end +; 0xbc6cd + +UnknownScript_0xbc6cd: ; 0xbc6cd + 3writetext $29, $5621 + end +; 0xbc6d2 + +UnknownScript_0xbc6d2: ; 0xbc6d2 + 3writetext $29, $59bc + end +; 0xbc6d7 + +UnknownScript_0xbc6d7: ; 0xbc6d7 + 3writetext $29, $5c4b + end +; 0xbc6dc + +UnknownScript_0xbc6dc: ; 0xbc6dc + 3writetext $29, $5e63 + end +; 0xbc6e1 + +UnknownScript_0xbc6e1: ; 0xbc6e1 + 3writetext $29, $6076 + end +; 0xbc6e6 + +UnknownScript_0xbc6e6: ; 0xbc6e6 + 3writetext $6c, $49c4 + playsound $0093 + waitbutton + keeptextopen + end +; 0xbc6f0 + +UnknownScript_0xbc6f0: ; 0xbc6f0 + checkcode $17 + if_equal $5, $4742 + if_equal $7, UnknownScript_0xbc749 + if_equal $b, UnknownScript_0xbc750 + if_equal $d, UnknownScript_0xbc757 + if_equal $f, UnknownScript_0xbc75e + if_equal $10, UnknownScript_0xbc765 + if_equal $11, UnknownScript_0xbc76c + if_equal $13, UnknownScript_0xbc773 + if_equal $14, UnknownScript_0xbc77a + if_equal $16, UnknownScript_0xbc781 + if_equal $17, UnknownScript_0xbc788 + if_equal $18, UnknownScript_0xbc78f + if_equal $1b, UnknownScript_0xbc796 + if_equal $1c, UnknownScript_0xbc79d + if_equal $1d, UnknownScript_0xbc7a4 + if_equal $1e, UnknownScript_0xbc7ab + if_equal $20, UnknownScript_0xbc7b2 + if_equal $21, UnknownScript_0xbc7b9 + if_equal $22, UnknownScript_0xbc7c0 + if_equal $23, UnknownScript_0xbc7c7 + 3writetext $6c, $4adb + closetext + loadmovesprites + end +; 0xbc749 + +UnknownScript_0xbc749: ; 0xbc749 + 3writetext $6c, $4e89 + closetext + loadmovesprites + end +; 0xbc750 + +UnknownScript_0xbc750: ; 0xbc750 + 3writetext $6c, $5136 + closetext + loadmovesprites + end +; 0xbc757 + +UnknownScript_0xbc757: ; 0xbc757 + 3writetext $6c, $5553 + closetext + loadmovesprites + end +; 0xbc75e + +UnknownScript_0xbc75e: ; 0xbc75e + 3writetext $6c, $58d7 + closetext + loadmovesprites + end +; 0xbc765 + +UnknownScript_0xbc765: ; 0xbc765 + 3writetext $6c, $5b8e + closetext + loadmovesprites + end +; 0xbc76c + +UnknownScript_0xbc76c: ; 0xbc76c + 3writetext $6c, $5db9 + closetext + loadmovesprites + end +; 0xbc773 + +UnknownScript_0xbc773: ; 0xbc773 + 3writetext $29, $40f8 + closetext + loadmovesprites + end +; 0xbc77a + +UnknownScript_0xbc77a: ; 0xbc77a + 3writetext $29, $42ab + closetext + loadmovesprites + end +; 0xbc781 + +UnknownScript_0xbc781: ; 0xbc781 + 3writetext $29, $4730 + closetext + loadmovesprites + end +; 0xbc788 + +UnknownScript_0xbc788: ; 0xbc788 + 3writetext $29, $494d + closetext + loadmovesprites + end +; 0xbc78f + +UnknownScript_0xbc78f: ; 0xbc78f + 3writetext $29, $4b47 + closetext + loadmovesprites + end +; 0xbc796 + +UnknownScript_0xbc796: ; 0xbc796 + 3writetext $29, $502e + closetext + loadmovesprites + end +; 0xbc79d + +UnknownScript_0xbc79d: ; 0xbc79d + 3writetext $29, $51ac + closetext + loadmovesprites + end +; 0xbc7a4 + +UnknownScript_0xbc7a4: ; 0xbc7a4 + 3writetext $29, $53de + closetext + loadmovesprites + end +; 0xbc7ab + +UnknownScript_0xbc7ab: ; 0xbc7ab + 3writetext $29, $5666 + closetext + loadmovesprites + end +; 0xbc7b2 + +UnknownScript_0xbc7b2: ; 0xbc7b2 + 3writetext $29, $5a28 + closetext + loadmovesprites + end +; 0xbc7b9 + +UnknownScript_0xbc7b9: ; 0xbc7b9 + 3writetext $29, $5c8e + closetext + loadmovesprites + end +; 0xbc7c0 + +UnknownScript_0xbc7c0: ; 0xbc7c0 + 3writetext $29, $5ea8 + closetext + loadmovesprites + end +; 0xbc7c7 + +UnknownScript_0xbc7c7: ; 0xbc7c7 + 3writetext $29, $60b5 + closetext + loadmovesprites + end +; 0xbc7ce + +UnknownScript_0xbc7ce: ; 0xbc7ce + checkcode $17 + if_equal $5, $4820 + if_equal $7, UnknownScript_0xbc827 + if_equal $b, UnknownScript_0xbc82e + if_equal $d, UnknownScript_0xbc835 + if_equal $f, UnknownScript_0xbc83c + if_equal $10, UnknownScript_0xbc843 + if_equal $11, UnknownScript_0xbc84a + if_equal $13, UnknownScript_0xbc851 + if_equal $14, UnknownScript_0xbc858 + if_equal $16, UnknownScript_0xbc85f + if_equal $17, UnknownScript_0xbc866 + if_equal $18, UnknownScript_0xbc86d + if_equal $1b, UnknownScript_0xbc874 + if_equal $1c, UnknownScript_0xbc87b + if_equal $1d, UnknownScript_0xbc882 + if_equal $1e, UnknownScript_0xbc889 + if_equal $20, UnknownScript_0xbc890 + if_equal $21, UnknownScript_0xbc897 + if_equal $22, UnknownScript_0xbc89e + if_equal $23, UnknownScript_0xbc8a5 + 3writetext $6c, $4afd + closetext + loadmovesprites + end +; 0xbc827 + +UnknownScript_0xbc827: ; 0xbc827 + 3writetext $6c, $4ea2 + closetext + loadmovesprites + end +; 0xbc82e + +UnknownScript_0xbc82e: ; 0xbc82e + 3writetext $6c, $517b + closetext + loadmovesprites + end +; 0xbc835 + +UnknownScript_0xbc835: ; 0xbc835 + 3writetext $6c, $5584 + closetext + loadmovesprites + end +; 0xbc83c + +UnknownScript_0xbc83c: ; 0xbc83c + 3writetext $6c, $5908 + closetext + loadmovesprites + end +; 0xbc843 + +UnknownScript_0xbc843: ; 0xbc843 + 3writetext $6c, $5bd2 + closetext + loadmovesprites + end +; 0xbc84a + +UnknownScript_0xbc84a: ; 0xbc84a + 3writetext $6c, $5df4 + closetext + loadmovesprites + end +; 0xbc851 + +UnknownScript_0xbc851: ; 0xbc851 + 3writetext $29, $4126 + closetext + loadmovesprites + end +; 0xbc858 + +UnknownScript_0xbc858: ; 0xbc858 + 3writetext $29, $42f2 + closetext + loadmovesprites + end +; 0xbc85f + +UnknownScript_0xbc85f: ; 0xbc85f + 3writetext $29, $4794 + closetext + loadmovesprites + end +; 0xbc866 + +UnknownScript_0xbc866: ; 0xbc866 + 3writetext $29, $498a + closetext + loadmovesprites + end +; 0xbc86d + +UnknownScript_0xbc86d: ; 0xbc86d + 3writetext $29, $4b87 + closetext + loadmovesprites + end +; 0xbc874 + +UnknownScript_0xbc874: ; 0xbc874 + 3writetext $29, $505f + closetext + loadmovesprites + end +; 0xbc87b + +UnknownScript_0xbc87b: ; 0xbc87b + 3writetext $29, $51ee + closetext + loadmovesprites + end +; 0xbc882 + +UnknownScript_0xbc882: ; 0xbc882 + 3writetext $29, $5412 + closetext + loadmovesprites + end +; 0xbc889 + +UnknownScript_0xbc889: ; 0xbc889 + 3writetext $29, $56b6 + closetext + loadmovesprites + end +; 0xbc890 + +UnknownScript_0xbc890: ; 0xbc890 + 3writetext $29, $5a5a + closetext + loadmovesprites + end +; 0xbc897 + +UnknownScript_0xbc897: ; 0xbc897 + 3writetext $29, $5cc5 + closetext + loadmovesprites + end +; 0xbc89e + +UnknownScript_0xbc89e: ; 0xbc89e + 3writetext $29, $5ed6 + closetext + loadmovesprites + end +; 0xbc8a5 + +UnknownScript_0xbc8a5: ; 0xbc8a5 + 3writetext $29, $60e2 + closetext + loadmovesprites + end +; 0xbc8ac + +UnknownScript_0xbc8ac: ; 0xbc8ac + checkcode $17 + if_equal $5, $48fe + if_equal $7, UnknownScript_0xbc905 + if_equal $b, UnknownScript_0xbc90c + if_equal $d, UnknownScript_0xbc913 + if_equal $f, UnknownScript_0xbc91a + if_equal $10, UnknownScript_0xbc921 + if_equal $11, UnknownScript_0xbc928 + if_equal $13, UnknownScript_0xbc92f + if_equal $14, UnknownScript_0xbc936 + if_equal $16, UnknownScript_0xbc93d + if_equal $17, UnknownScript_0xbc944 + if_equal $18, UnknownScript_0xbc94b + if_equal $1b, UnknownScript_0xbc952 + if_equal $1c, UnknownScript_0xbc959 + if_equal $1d, UnknownScript_0xbc960 + if_equal $1e, UnknownScript_0xbc967 + if_equal $20, UnknownScript_0xbc96e + if_equal $21, UnknownScript_0xbc975 + if_equal $22, UnknownScript_0xbc97c + if_equal $23, UnknownScript_0xbc983 + 3writetext $6c, $4b42 + closetext + loadmovesprites + end +; 0xbc905 + +UnknownScript_0xbc905: ; 0xbc905 + 3writetext $6c, $4ebc + closetext + loadmovesprites + end +; 0xbc90c + +UnknownScript_0xbc90c: ; 0xbc90c + 3writetext $6c, $51c4 + closetext + loadmovesprites + end +; 0xbc913 + +UnknownScript_0xbc913: ; 0xbc913 + 3writetext $6c, $55b6 + closetext + loadmovesprites + end +; 0xbc91a + +UnknownScript_0xbc91a: ; 0xbc91a + 3writetext $6c, $5936 + closetext + loadmovesprites + end +; 0xbc921 + +UnknownScript_0xbc921: ; 0xbc921 + 3writetext $6c, $5c06 + closetext + loadmovesprites + end +; 0xbc928 + +UnknownScript_0xbc928: ; 0xbc928 + 3writetext $6c, $5e50 + closetext + loadmovesprites + end +; 0xbc92f + +UnknownScript_0xbc92f: ; 0xbc92f + 3writetext $29, $4158 + closetext + loadmovesprites + end +; 0xbc936 + +UnknownScript_0xbc936: ; 0xbc936 + 3writetext $29, $434a + closetext + loadmovesprites + end +; 0xbc93d + +UnknownScript_0xbc93d: ; 0xbc93d + 3writetext $29, $47eb + closetext + loadmovesprites + end +; 0xbc944 + +UnknownScript_0xbc944: ; 0xbc944 + 3writetext $29, $49bd + closetext + loadmovesprites + end +; 0xbc94b + +UnknownScript_0xbc94b: ; 0xbc94b + 3writetext $29, $4bcd + closetext + loadmovesprites + end +; 0xbc952 + +UnknownScript_0xbc952: ; 0xbc952 + 3writetext $29, $508c + closetext + loadmovesprites + end +; 0xbc959 + +UnknownScript_0xbc959: ; 0xbc959 + 3writetext $29, $5216 + closetext + loadmovesprites + end +; 0xbc960 + +UnknownScript_0xbc960: ; 0xbc960 + 3writetext $29, $5446 + closetext + loadmovesprites + end +; 0xbc967 + +UnknownScript_0xbc967: ; 0xbc967 + 3writetext $29, $56e2 + closetext + loadmovesprites + end +; 0xbc96e + +UnknownScript_0xbc96e: ; 0xbc96e + 3writetext $29, $5aa6 + closetext + loadmovesprites + end +; 0xbc975 + +UnknownScript_0xbc975: ; 0xbc975 + 3writetext $29, $5cfa + closetext + loadmovesprites + end +; 0xbc97c + +UnknownScript_0xbc97c: ; 0xbc97c + 3writetext $29, $5f06 + closetext + loadmovesprites + end +; 0xbc983 + +UnknownScript_0xbc983: ; 0xbc983 + 3writetext $29, $6144 + closetext + loadmovesprites + end +; 0xbc98a + +UnknownScript_0xbc98a: ; 0xbc98a + checkcode $17 + if_equal $5, $49d0 + if_equal $7, UnknownScript_0xbc9d7 + if_equal $b, UnknownScript_0xbc9de + if_equal $d, UnknownScript_0xbc9e5 + if_equal $f, UnknownScript_0xbc9ec + if_equal $10, UnknownScript_0xbc9f3 + if_equal $11, UnknownScript_0xbc9fa + if_equal $13, UnknownScript_0xbca01 + if_equal $14, UnknownScript_0xbca08 + if_equal $17, UnknownScript_0xbca0f + if_equal $18, UnknownScript_0xbca16 + if_equal $1b, UnknownScript_0xbca1d + if_equal $1d, UnknownScript_0xbca24 + if_equal $1e, UnknownScript_0xbca2b + if_equal $20, UnknownScript_0xbca32 + if_equal $21, UnknownScript_0xbca39 + if_equal $23, UnknownScript_0xbca40 + 3writetext $6c, $4b75 + closetext + loadmovesprites + end +; 0xbc9d7 + +UnknownScript_0xbc9d7: ; 0xbc9d7 + 3writetext $6c, $4edc + closetext + loadmovesprites + end +; 0xbc9de + +UnknownScript_0xbc9de: ; 0xbc9de + 3writetext $6c, $51fe + closetext + loadmovesprites + end +; 0xbc9e5 + +UnknownScript_0xbc9e5: ; 0xbc9e5 + 3writetext $6c, $55d5 + closetext + loadmovesprites + end +; 0xbc9ec + +UnknownScript_0xbc9ec: ; 0xbc9ec + 3writetext $6c, $5954 + closetext + loadmovesprites + end +; 0xbc9f3 + +UnknownScript_0xbc9f3: ; 0xbc9f3 + 3writetext $6c, $5c32 + closetext + loadmovesprites + end +; 0xbc9fa + +UnknownScript_0xbc9fa: ; 0xbc9fa + 3writetext $6c, $5e98 + closetext + loadmovesprites + end +; 0xbca01 + +UnknownScript_0xbca01: ; 0xbca01 + 3writetext $29, $418d + closetext + loadmovesprites + end +; 0xbca08 + +UnknownScript_0xbca08: ; 0xbca08 + 3writetext $29, $4382 + closetext + loadmovesprites + end +; 0xbca0f + +UnknownScript_0xbca0f: ; 0xbca0f + 3writetext $29, $49fc + closetext + loadmovesprites + end +; 0xbca16 + +UnknownScript_0xbca16: ; 0xbca16 + 3writetext $29, $4bec + closetext + loadmovesprites + end +; 0xbca1d + +UnknownScript_0xbca1d: ; 0xbca1d + 3writetext $29, $50b1 + closetext + loadmovesprites + end +; 0xbca24 + +UnknownScript_0xbca24: ; 0xbca24 + 3writetext $29, $548c + closetext + loadmovesprites + end +; 0xbca2b + +UnknownScript_0xbca2b: ; 0xbca2b + 3writetext $29, $571e + closetext + loadmovesprites + end +; 0xbca32 + +UnknownScript_0xbca32: ; 0xbca32 + 3writetext $29, $5ada + closetext + loadmovesprites + end +; 0xbca39 + +UnknownScript_0xbca39: ; 0xbca39 + 3writetext $29, $5d1d + closetext + loadmovesprites + end +; 0xbca40 + +UnknownScript_0xbca40: ; 0xbca40 + 3writetext $29, $6175 + closetext + loadmovesprites + end +; 0xbca47 + +UnknownScript_0xbca47: ; 0xbca47 + checkcode $17 + if_equal $d, $4a65 + if_equal $10, UnknownScript_0xbca6b + if_equal $18, UnknownScript_0xbca71 + if_equal $1c, UnknownScript_0xbca77 + if_equal $1d, UnknownScript_0xbca7d + if_equal $21, UnknownScript_0xbca83 + if_equal $22, UnknownScript_0xbca89 + 3writetext $6c, $5607 + keeptextopen + end +; 0xbca6b + +UnknownScript_0xbca6b: ; 0xbca6b + 3writetext $6c, $5c57 + keeptextopen + end +; 0xbca71 + +UnknownScript_0xbca71: ; 0xbca71 + 3writetext $29, $4c24 + keeptextopen + end +; 0xbca77 + +UnknownScript_0xbca77: ; 0xbca77 + 3writetext $29, $523a + keeptextopen + end +; 0xbca7d + +UnknownScript_0xbca7d: ; 0xbca7d + 3writetext $29, $54e3 + keeptextopen + end +; 0xbca83 + +UnknownScript_0xbca83: ; 0xbca83 + 3writetext $29, $5d4d + keeptextopen + end +; 0xbca89 + +UnknownScript_0xbca89: ; 0xbca89 + 3writetext $29, $5f37 + keeptextopen + end +; 0xbca8f + +UnknownScript_0xbca8f: ; 0xbca8f + checkcode $17 + if_equal $7, $4abd + if_equal $d, UnknownScript_0xbcac4 + if_equal $f, UnknownScript_0xbcacb + if_equal $10, UnknownScript_0xbcad2 + if_equal $18, UnknownScript_0xbcad9 + if_equal $1c, UnknownScript_0xbcae0 + if_equal $1d, UnknownScript_0xbcae7 + if_equal $20, UnknownScript_0xbcaee + if_equal $21, UnknownScript_0xbcaf5 + if_equal $22, UnknownScript_0xbcafc + if_equal $23, UnknownScript_0xbcb03 + 3writetext $6c, $4eff + closetext + loadmovesprites + end +; 0xbcac4 + +UnknownScript_0xbcac4: ; 0xbcac4 + 3writetext $6c, $564d + closetext + loadmovesprites + end +; 0xbcacb + +UnknownScript_0xbcacb: ; 0xbcacb + 3writetext $6c, $5978 + closetext + loadmovesprites + end +; 0xbcad2 + +UnknownScript_0xbcad2: ; 0xbcad2 + 3writetext $6c, $5c91 + closetext + loadmovesprites + end +; 0xbcad9 + +UnknownScript_0xbcad9: ; 0xbcad9 + 3writetext $29, $4c47 + closetext + loadmovesprites + end +; 0xbcae0 + +UnknownScript_0xbcae0: ; 0xbcae0 + 3writetext $29, $52a0 + closetext + loadmovesprites + end +; 0xbcae7 + +UnknownScript_0xbcae7: ; 0xbcae7 + 3writetext $29, $5513 + closetext + loadmovesprites + end +; 0xbcaee + +UnknownScript_0xbcaee: ; 0xbcaee + 3writetext $29, $5aff + closetext + loadmovesprites + end +; 0xbcaf5 + +UnknownScript_0xbcaf5: ; 0xbcaf5 + 3writetext $29, $5d9a + closetext + loadmovesprites + end +; 0xbcafc + +UnknownScript_0xbcafc: ; 0xbcafc + 3writetext $29, $5faa + closetext + loadmovesprites + end +; 0xbcb03 + +UnknownScript_0xbcb03: ; 0xbcb03 + 3writetext $29, $61c9 + closetext + loadmovesprites + end +; 0xbcb0a + +UnknownScript_0xbcb0a: ; 0xbcb0a + loadfont + checkcode $17 + if_equal $7, $4b1d + if_equal $f, UnknownScript_0xbcb23 + if_equal $20, UnknownScript_0xbcb29 + if_equal $23, UnknownScript_0xbcb2f + 3writetext $6c, $4f2f + keeptextopen + end +; 0xbcb23 + +UnknownScript_0xbcb23: ; 0xbcb23 + 3writetext $6c, $59be + keeptextopen + end +; 0xbcb29 + +UnknownScript_0xbcb29: ; 0xbcb29 + 3writetext $29, $5b3f + keeptextopen + end +; 0xbcb2f + +UnknownScript_0xbcb2f: ; 0xbcb2f + 3writetext $29, $6200 + keeptextopen + end +; 0xbcb35 + +UnknownScript_0xbcb35: ; 0xbcb35 + checkcode $17 + if_equal $6, $4b57 + if_equal $c, UnknownScript_0xbcb5c + if_equal $e, UnknownScript_0xbcb61 + if_equal $12, UnknownScript_0xbcb66 + if_equal $15, UnknownScript_0xbcb6b + if_equal $1a, UnknownScript_0xbcb70 + if_equal $1f, UnknownScript_0xbcb75 + if_equal $24, UnknownScript_0xbcb7a + 3writetext $6c, $4bb6 + end +; 0xbcb5c + +UnknownScript_0xbcb5c: ; 0xbcb5c + 3writetext $6c, $5239 + end +; 0xbcb61 + +UnknownScript_0xbcb61: ; 0xbcb61 + 3writetext $6c, $5690 + end +; 0xbcb66 + +UnknownScript_0xbcb66: ; 0xbcb66 + 3writetext $6c, $5ebe + end +; 0xbcb6b + +UnknownScript_0xbcb6b: ; 0xbcb6b + 3writetext $29, $4405 + end +; 0xbcb70 + +UnknownScript_0xbcb70: ; 0xbcb70 + 3writetext $29, $4c8c + end +; 0xbcb75 + +UnknownScript_0xbcb75: ; 0xbcb75 + 3writetext $29, $574a + end +; 0xbcb7a + +UnknownScript_0xbcb7a: ; 0xbcb7a + 3writetext $29, $6295 + end +; 0xbcb7f + +UnknownScript_0xbcb7f: ; 0xbcb7f + checkcode $17 + if_equal $6, $4ba1 + if_equal $c, UnknownScript_0xbcba6 + if_equal $e, UnknownScript_0xbcbab + if_equal $12, UnknownScript_0xbcbb0 + if_equal $15, UnknownScript_0xbcbb5 + if_equal $1a, UnknownScript_0xbcbba + if_equal $1f, UnknownScript_0xbcbbf + if_equal $24, UnknownScript_0xbcbc4 + 3writetext $6c, $4c37 + end +; 0xbcba6 + +UnknownScript_0xbcba6: ; 0xbcba6 + 3writetext $6c, $5314 + end +; 0xbcbab + +UnknownScript_0xbcbab: ; 0xbcbab + 3writetext $6c, $5710 + end +; 0xbcbb0 + +UnknownScript_0xbcbb0: ; 0xbcbb0 + 3writetext $6c, $5f4e + end +; 0xbcbb5 + +UnknownScript_0xbcbb5: ; 0xbcbb5 + 3writetext $29, $44db + end +; 0xbcbba + +UnknownScript_0xbcbba: ; 0xbcbba + 3writetext $29, $4d36 + end +; 0xbcbbf + +UnknownScript_0xbcbbf: ; 0xbcbbf + 3writetext $29, $57e3 + end +; 0xbcbc4 + +UnknownScript_0xbcbc4: ; 0xbcbc4 + 3writetext $29, $6316 + end +; 0xbcbc9 + +UnknownScript_0xbcbc9: ; 0xbcbc9 + 3writetext $6c, $49e1 + playsound $0093 + waitbutton + keeptextopen + end +; 0xbcbd3 + +UnknownScript_0xbcbd3: ; 0xbcbd3 + checkcode $17 + if_equal $6, $4bf5 + if_equal $c, UnknownScript_0xbcbfc + if_equal $e, UnknownScript_0xbcc03 + if_equal $12, UnknownScript_0xbcc0a + if_equal $15, UnknownScript_0xbcc11 + if_equal $1a, UnknownScript_0xbcc18 + if_equal $1f, UnknownScript_0xbcc1f + if_equal $24, UnknownScript_0xbcc26 + 3writetext $6c, $4c9b + closetext + loadmovesprites + end +; 0xbcbfc + +UnknownScript_0xbcbfc: ; 0xbcbfc + 3writetext $6c, $5392 + closetext + loadmovesprites + end +; 0xbcc03 + +UnknownScript_0xbcc03: ; 0xbcc03 + 3writetext $6c, $5755 + closetext + loadmovesprites + end +; 0xbcc0a + +UnknownScript_0xbcc0a: ; 0xbcc0a + 3writetext $6c, $5faa + closetext + loadmovesprites + end +; 0xbcc11 + +UnknownScript_0xbcc11: ; 0xbcc11 + 3writetext $29, $451d + closetext + loadmovesprites + end +; 0xbcc18 + +UnknownScript_0xbcc18: ; 0xbcc18 + 3writetext $29, $4d72 + closetext + loadmovesprites + end +; 0xbcc1f + +UnknownScript_0xbcc1f: ; 0xbcc1f + 3writetext $29, $5820 + closetext + loadmovesprites + end +; 0xbcc26 + +UnknownScript_0xbcc26: ; 0xbcc26 + 3writetext $29, $6359 + closetext + loadmovesprites + end +; 0xbcc2d + +UnknownScript_0xbcc2d: ; 0xbcc2d + checkcode $17 + if_equal $6, $4c4f + if_equal $c, UnknownScript_0xbcc56 + if_equal $e, UnknownScript_0xbcc5d + if_equal $12, UnknownScript_0xbcc64 + if_equal $15, UnknownScript_0xbcc6b + if_equal $1a, UnknownScript_0xbcc72 + if_equal $1f, UnknownScript_0xbcc79 + if_equal $24, UnknownScript_0xbcc80 + 3writetext $6c, $4ce0 + closetext + loadmovesprites + end +; 0xbcc56 + +UnknownScript_0xbcc56: ; 0xbcc56 + 3writetext $6c, $53af + closetext + loadmovesprites + end +; 0xbcc5d + +UnknownScript_0xbcc5d: ; 0xbcc5d + 3writetext $6c, $578a + closetext + loadmovesprites + end +; 0xbcc64 + +UnknownScript_0xbcc64: ; 0xbcc64 + 3writetext $6c, $5fdd + closetext + loadmovesprites + end +; 0xbcc6b + +UnknownScript_0xbcc6b: ; 0xbcc6b + 3writetext $29, $4542 + closetext + loadmovesprites + end +; 0xbcc72 + +UnknownScript_0xbcc72: ; 0xbcc72 + 3writetext $29, $4dcd + closetext + loadmovesprites + end +; 0xbcc79 + +UnknownScript_0xbcc79: ; 0xbcc79 + 3writetext $29, $5842 + closetext + loadmovesprites + end +; 0xbcc80 + +UnknownScript_0xbcc80: ; 0xbcc80 + 3writetext $29, $638c + closetext + loadmovesprites + end +; 0xbcc87 + +UnknownScript_0xbcc87: ; 0xbcc87 + checkcode $17 + if_equal $6, $4ca9 + if_equal $c, UnknownScript_0xbccb0 + if_equal $e, UnknownScript_0xbccb7 + if_equal $12, UnknownScript_0xbccbe + if_equal $15, UnknownScript_0xbccc5 + if_equal $1a, UnknownScript_0xbcccc + if_equal $1f, UnknownScript_0xbccd3 + if_equal $24, UnknownScript_0xbccda + 3writetext $6c, $4d0b + closetext + loadmovesprites + end +; 0xbccb0 + +UnknownScript_0xbccb0: ; 0xbccb0 + 3writetext $6c, $53e4 + closetext + loadmovesprites + end +; 0xbccb7 + +UnknownScript_0xbccb7: ; 0xbccb7 + 3writetext $6c, $57ba + closetext + loadmovesprites + end +; 0xbccbe + +UnknownScript_0xbccbe: ; 0xbccbe + 3writetext $6c, $5ffa + closetext + loadmovesprites + end +; 0xbccc5 + +UnknownScript_0xbccc5: ; 0xbccc5 + 3writetext $29, $4573 + closetext + loadmovesprites + end +; 0xbcccc + +UnknownScript_0xbcccc: ; 0xbcccc + 3writetext $29, $4e01 + closetext + loadmovesprites + end +; 0xbccd3 + +UnknownScript_0xbccd3: ; 0xbccd3 + 3writetext $29, $5881 + closetext + loadmovesprites + end +; 0xbccda + +UnknownScript_0xbccda: ; 0xbccda + 3writetext $29, $63cc + closetext + loadmovesprites + end +; 0xbcce1 + +UnknownScript_0xbcce1: ; 0xbcce1 + checkcode $17 + if_equal $c, $4cff + if_equal $e, UnknownScript_0xbcd06 + if_equal $12, UnknownScript_0xbcd0d + if_equal $15, UnknownScript_0xbcd14 + if_equal $1a, UnknownScript_0xbcd1b + if_equal $1f, UnknownScript_0xbcd22 + if_equal $24, UnknownScript_0xbcd29 + 3writetext $6c, $5409 + closetext + loadmovesprites + end +; 0xbcd06 + +UnknownScript_0xbcd06: ; 0xbcd06 + 3writetext $6c, $57de + closetext + loadmovesprites + end +; 0xbcd0d + +UnknownScript_0xbcd0d: ; 0xbcd0d + 3writetext $6c, $601f + closetext + loadmovesprites + end +; 0xbcd14 + +UnknownScript_0xbcd14: ; 0xbcd14 + 3writetext $29, $4595 + closetext + loadmovesprites + end +; 0xbcd1b + +UnknownScript_0xbcd1b: ; 0xbcd1b + 3writetext $29, $4e21 + closetext + loadmovesprites + end +; 0xbcd22 + +UnknownScript_0xbcd22: ; 0xbcd22 + 3writetext $29, $58a3 + closetext + loadmovesprites + end +; 0xbcd29 + +UnknownScript_0xbcd29: ; 0xbcd29 + 3writetext $29, $63f1 + closetext + loadmovesprites + end +; 0xbcd30 + +UnknownScript_0xbcd30: ; 0xbcd30 + checkcode $17 + if_equal $6, $4d42 + if_equal $15, UnknownScript_0xbcd48 + if_equal $1a, UnknownScript_0xbcd4e + if_equal $1f, UnknownScript_0xbcd54 + 3writetext $6c, $4d2c + keeptextopen + end +; 0xbcd48 + +UnknownScript_0xbcd48: ; 0xbcd48 + 3writetext $29, $45c9 + keeptextopen + end +; 0xbcd4e + +UnknownScript_0xbcd4e: ; 0xbcd4e + 3writetext $29, $4e4c + keeptextopen + end +; 0xbcd54 + +UnknownScript_0xbcd54: ; 0xbcd54 + 3writetext $29, $58d5 + keeptextopen + end +; 0xbcd5a + +UnknownScript_0xbcd5a: ; 0xbcd5a + checkcode $17 + if_equal $6, $4d70 + if_equal $15, UnknownScript_0xbcd77 + if_equal $1a, UnknownScript_0xbcd7e + if_equal $1f, UnknownScript_0xbcd85 + if_equal $24, UnknownScript_0xbcd8c + 3writetext $6c, $4d69 + closetext + loadmovesprites + end +; 0xbcd77 + +UnknownScript_0xbcd77: ; 0xbcd77 + 3writetext $29, $4603 + closetext + loadmovesprites + end +; 0xbcd7e + +UnknownScript_0xbcd7e: ; 0xbcd7e + 3writetext $29, $4e8f + closetext + loadmovesprites + end +; 0xbcd85 + +UnknownScript_0xbcd85: ; 0xbcd85 + 3writetext $29, $5914 + closetext + loadmovesprites + end +; 0xbcd8c + +UnknownScript_0xbcd8c: ; 0xbcd8c + 3writetext $29, $6411 + closetext + loadmovesprites + end +; 0xbcd93 + +UnknownScript_0xbcd93: ; 0xbcd93 + checkcode $17 + if_equal $24, $4d99 + loadfont + 3writetext $29, $6454 + keeptextopen + end +; 0xbcda0 + +UnknownScript_0xbcda0: ; 0xbcda0 + mapnametotext $0 + loadfont + 3writetext $6c, $474e + closetext + loadmovesprites + end +; 0xbcdaa + +UnknownScript_0xbcdaa: ; 0xbcdaa + mapnametotext $0 + loadfont + 3writetext $6c, $474e + keeptextopen + 3writetext $6c, $475c + closetext + loadmovesprites + end +; 0xbcdb9 + +UnknownScript_0xbcdb9: ; 0xbcdb9 + waitbutton + 3writetext $6c, $4648 + playsound $0001 + waitbutton + end +; 0xbcdc3 + +UnknownScript_0xbcdc3: ; 0xbcdc3 + waitbutton + 3writetext $6c, $4648 + playsound $0096 + waitbutton + end +; 0xbcdcd + +UnknownScript_0xbcdcd: ; 0xbcdcd + faceplayer + loadfont + 3writetext $6c, $477f + keeptextopen + checkitem COIN_CASE + iftrue UnknownScript_0xbcde0 + 3writetext $6c, $479c + closetext + loadmovesprites + end +; 0xbcde0 + +UnknownScript_0xbcde0: ; 0xbcde0 + 3writetext $6c, $47e3 + special $0050 + loadmenudata MenuDataHeader_0xbce54 + interpretmenu2 + writebackup + if_equal $1, UnknownScript_0xbcdf7 + if_equal $2, UnknownScript_0xbce1b + 2jump UnknownScript_0xbce4d +; 0xbcdf7 + +UnknownScript_0xbcdf7: ; 0xbcdf7 + checkcoins 9949 + if_equal $0, UnknownScript_0xbce46 + checkmoney $0, 1000 + if_equal $2, UnknownScript_0xbce3f + givecoins 50 + takemoney $0, 1000 + waitbutton + playsound $0022 + 3writetext $6c, $4830 + closetext + 2jump $4de4 +; 0xbce1b + +UnknownScript_0xbce1b: ; 0xbce1b + checkcoins 9499 + if_equal $0, UnknownScript_0xbce46 + checkmoney $0, 10000 + if_equal $2, UnknownScript_0xbce3f + givecoins 500 + takemoney $0, 10000 + waitbutton + playsound $0022 + 3writetext $6c, $484f + closetext + 2jump $4de4 +; 0xbce3f + +UnknownScript_0xbce3f: ; 0xbce3f + 3writetext $6c, $486f + closetext + loadmovesprites + end +; 0xbce46 + +UnknownScript_0xbce46: ; 0xbce46 + 3writetext $6c, $488c + closetext + loadmovesprites + end +; 0xbce4d + +UnknownScript_0xbce4d: ; 0xbce4d + 3writetext $6c, $48ad + closetext + loadmovesprites + end +; 0xbce54 + + +MenuDataHeader_0xbce54: ; 0xbce54 + db $40 ; flags + db 04, 00 ; start coords + db 11, 15 ; end coords + dw MenuData2_0xbce5c + db 1 ; default option +; 0xbce5c + +MenuData2_0xbce5c: ; 0xbce5c + db $80 ; flags + db 3 ; items + db " 50 : ¥1000@" + db "500 : ¥10000@" + db "CANCEL@" +; 0xbce7f + + +UnknownScript_0xbce7f: ; 0xbce7f + faceplayer + loadfont + special $0059 + if_greater_than $32, UnknownScript_0xbce9a + if_greater_than $96, UnknownScript_0xbce93 + 3writetext $6c, $492a + closetext + loadmovesprites + end +; 0xbce93 + +UnknownScript_0xbce93: ; 0xbce93 + 3writetext $6c, $4954 + closetext + loadmovesprites + end +; 0xbce9a + +UnknownScript_0xbce9a: ; 0xbce9a + 3writetext $6c, $4989 + closetext + loadmovesprites + end +; 0xbcea1 + +MovementData_0xbcea1: ; bcea1 + step_right + step_down + turn_head_up + step_end +; bcea5 + +UnusedPhoneScript: ; 0xbcea5 + 3writetext BANK(UnusedPhoneText), UnusedPhoneText + end + +MomPhoneScript: ; 0xbceaa + checkbit1 $0040 + iftrue .bcec5 + checkbit1 $0041 ; if dude talked to you, then you left home without talking to mom + iftrue MomPhoneLectureScript + checkbit1 $001f + iftrue MomPhoneNoGymQuestScript + checkbit1 $001a + iftrue MomPhoneNoPokedexScript + 2jump MomPhoneNoPokemonScript + +.bcec5 ; 0xbcec5 + checkbit1 $0007 + iftrue MomPhoneHangUpScript + 3writetext BANK(MomPhoneGreetingText), MomPhoneGreetingText + keeptextopen + mapnametotext $0 + checkcode $f + if_equal $1, UnknownScript_0xbcee7 + if_equal $2, $4f27 + 2jump UnknownScript_0xbcf2f + +UnknownScript_0xbcedf: ; 0xbcedf + 3writetext $6d, $4021 + keeptextopen + 2jump UnknownScript_0xbcf37 + +UnknownScript_0xbcee7: ; 0xbcee7 + checkcode $c + if_equal GROUP_NEW_BARK_TOWN, .newbark + if_equal GROUP_CHERRYGROVE_CITY, .cherrygrove + if_equal GROUP_VIOLET_CITY, .violet + if_equal GROUP_AZALEA_TOWN, .azalea + if_equal GROUP_GOLDENROD_CITY, .goldenrod + 3writetext BANK(MomPhoneGenericAreaText), MomPhoneGenericAreaText + keeptextopen + 2jump UnknownScript_0xbcf37 + +.newbark ; 0xbcf05 + 3writetext BANK(MomPhoneNewBarkText), MomPhoneNewBarkText + keeptextopen + 2jump UnknownScript_0xbcf37 + +.cherrygrove ; 0xbcf0d + 3writetext BANK(MomPhoneCherrygroveText), MomPhoneCherrygroveText + keeptextopen + 2jump UnknownScript_0xbcf37 + +.violet ; 0xbcf15 + displaylocation $7 ; sprout tower + 3call $3, UnknownScript_0xbcedf +.azalea ; 0xbcf1b + displaylocation $d ; slowpoke well + 3call $3, UnknownScript_0xbcedf +.goldenrod ; 0xbcf21 + displaylocation $11 ; radio tower + 3call $3, UnknownScript_0xbcedf + 3writetext $6d, $411c + keeptextopen + 2jump UnknownScript_0xbcf37 + +UnknownScript_0xbcf2f: ; 0xbcf2f + 3writetext $6d, $4150 + keeptextopen + 2jump UnknownScript_0xbcf37 + +UnknownScript_0xbcf37: ; 0xbcf37 + checkbit2 $0008 + iffalse UnknownScript_0xbcf49 + checkmoney $1, 0 + if_equal $0, UnknownScript_0xbcf55 + 2jump UnknownScript_0xbcf63 + +UnknownScript_0xbcf49: ; 0xbcf49 + checkmoney $1, 0 + if_equal $0, UnknownScript_0xbcf79 + 2jump UnknownScript_0xbcf6e + +UnknownScript_0xbcf55: ; 0xbcf55 + readmoney $1, $0 + 3writetext $6d, $41a7 + yesorno + iftrue MomPhoneSaveMoneyScript + 2jump MomPhoneWontSaveMoneyScript + +UnknownScript_0xbcf63: ; 0xbcf63 + 3writetext $6d, $41ea + yesorno + iftrue MomPhoneSaveMoneyScript + 2jump MomPhoneWontSaveMoneyScript + +UnknownScript_0xbcf6e: ; 0xbcf6e + 3writetext $6d, $420d + yesorno + iftrue MomPhoneSaveMoneyScript + 2jump MomPhoneWontSaveMoneyScript + +UnknownScript_0xbcf79: ; 0xbcf79 + readmoney $1, $0 + 3writetext $6d, $4249 + yesorno + iftrue MomPhoneSaveMoneyScript + 2jump MomPhoneWontSaveMoneyScript + +MomPhoneSaveMoneyScript: ; 0xbcf87 + setbit2 $0008 + 3writetext $6d, $4289 + keeptextopen + 2jump MomPhoneHangUpScript + +MomPhoneWontSaveMoneyScript: ; 0xbcf92 + clearbit2 $0008 + 3writetext BANK(MomPhoneWontSaveMoneyText), MomPhoneWontSaveMoneyText + keeptextopen + 2jump MomPhoneHangUpScript + +MomPhoneHangUpScript: ; 0xbcf9d + 3writetext BANK(MomPhoneHangUpText), MomPhoneHangUpText + end + +MomPhoneNoPokemonScript: ; 0xbcfa2 + 3writetext BANK(MomPhoneNoPokemonText), MomPhoneNoPokemonText + end + +MomPhoneNoPokedexScript: ; 0xbcfa7 + 3writetext BANK(MomPhoneNoPokedexText), MomPhoneNoPokedexText + end + +MomPhoneNoGymQuestScript: ; 0xbcfac + 3writetext BANK(MomPhoneNoGymQuestText), MomPhoneNoGymQuestText + end + +MomPhoneLectureScript: ; 0xbcfb1 + setbit1 $0040 + setbit2 $0009 + specialphonecall $0000 + 3writetext BANK(MomPhoneLectureText), MomPhoneLectureText + yesorno + iftrue MomPhoneSaveMoneyScript + 2jump MomPhoneWontSaveMoneyScript + +BillPhoneScript1: ; 0xbcfc5 + checktime $2 + iftrue .daygreet + checktime $4 + iftrue .nitegreet + 3writetext BANK(BillPhoneMornGreetingText), BillPhoneMornGreetingText + keeptextopen + 2jump .main + +.daygreet ; 0xbcfd7 + 3writetext BANK(BillPhoneDayGreetingText), BillPhoneDayGreetingText + keeptextopen + 2jump .main + +.nitegreet ; 0xbcfdf + 3writetext BANK(BillPhoneNiteGreetingText), BillPhoneNiteGreetingText + keeptextopen + 2jump .main + +.main ; 0xbcfe7 + 3writetext BANK(BillPhoneGeneriText), BillPhoneGeneriText + keeptextopen + checkcode $10 + RAM2MEM $0 + if_equal $0, .full + if_greater_than $6, .nearlyfull + 3writetext BANK(BillPhoneNotFullText), BillPhoneNotFullText + end + +.nearlyfull ; 0xbcffd + 3writetext BANK(BillPhoneNearlyFullText), BillPhoneNearlyFullText + end + +.full ; 0xbd002 + 3writetext BANK(BillPhoneFullText), BillPhoneFullText + end + +BillPhoneScript2: ; 0xbd007 + 3writetext BANK(BillPhoneNewlyFullText), BillPhoneNewlyFullText + closetext + end + +ElmPhoneScript1: ; 0xbd00d + checkcode $14 + if_equal $1, .pokerus + checkbit1 $0055 + iftrue .discovery + checkbit1 $002d + iffalse .next + checkbit1 $0054 + iftrue .egghatched +.next + checkbit1 $002d + iftrue .eggunhatched + checkbit1 $0701 + iftrue .assistant + checkbit1 $001f + iftrue .checkingegg + checkbit1 $0043 + iftrue .stolen + checkbit1 $001e + iftrue .sawmrpokemon + 3writetext BANK(ElmPhoneStartText), ElmPhoneStartText + end + +.sawmrpokemon ; 0xbd048 + 3writetext BANK(ElmPhoneSawMrPokemonText), ElmPhoneSawMrPokemonText + end + +.stolen ; 0xbd04d + 3writetext BANK(ElmPhonePokemonStolenText), ElmPhonePokemonStolenText + end + +.checkingegg ; 0xbd052 + 3writetext BANK(ElmPhoneCheckingEggText), ElmPhoneCheckingEggText + end + +.assistant ; 0xbd057 + 3writetext BANK(ElmPhoneAssistantText), ElmPhoneAssistantText + end + +.eggunhatched ; 0xbd05c + 3writetext BANK(ElmPhoneEggUnhatchedText), ElmPhoneEggUnhatchedText + end + +.egghatched ; 0xbd061 + 3writetext BANK(ElmPhoneEggHatchedText), ElmPhoneEggHatchedText + setbit1 $0077 + end + +.discovery ; 0xbd069 + random $2 + if_equal $0, .nextdiscovery + 3writetext BANK(ElmPhoneDiscovery1Text), ElmPhoneDiscovery1Text + end + +.nextdiscovery ; 0xbd074 + 3writetext BANK(ElmPhoneDiscovery2Text), ElmPhoneDiscovery2Text + end + +.pokerus ; 0xbd079 + 3writetext BANK(ElmPhonePokerusText), ElmPhonePokerusText + specialphonecall $0000 + end + +ElmPhoneScript2: ; 0xbd081 + checkcode $14 + if_equal $2, .disaster + if_equal $3, .assistant + if_equal $4, .rocket + if_equal $5, .gift + if_equal $8, .gift + 3writetext BANK(ElmPhonePokerusText), ElmPhonePokerusText + specialphonecall $0000 + end + +.disaster ; 0xbd09f + 3writetext BANK(ElmPhoneDisasterText), ElmPhoneDisasterText + specialphonecall $0000 + setbit1 $0043 + end + +.assistant ; 0xbd0aa + 3writetext BANK(ElmPhoneEggAssistantText), ElmPhoneEggAssistantText + specialphonecall $0000 + clearbit1 $0700 + setbit1 $0701 + end + +.rocket ; 0xbd0b8 + 3writetext BANK(ElmPhoneRocketText), ElmPhoneRocketText + specialphonecall $0000 + end + +.gift ; 0xbd0c0 + 3writetext BANK(ElmPhoneGiftText), ElmPhoneGiftText + specialphonecall $0000 + end + +.unused ; 0xbd0c8 + 3writetext BANK(ElmPhoneUnusedText), ElmPhoneUnusedText + specialphonecall $0000 + end +; bd0d0 + diff --git a/event/name_rater.asm b/event/name_rater.asm new file mode 100644 index 000000000..063376daf --- /dev/null +++ b/event/name_rater.asm @@ -0,0 +1,236 @@ +NameRater: ; fb6ed + ld hl, UnknownText_0xfb80f + call PrintText + call Function1dcf + jp c, .asm_fb77e + ld hl, UnknownText_0xfb814 + call PrintText + callba Function50000 + jr c, .asm_fb77e + ld a, [CurPartySpecies] + cp EGG + jr z, .asm_fb783 + call GetCurNick + call Functionfb78a + jr c, .asm_fb779 + ld hl, UnknownText_0xfb819 + call PrintText + call Function1dcf + jr c, .asm_fb77e + ld hl, UnknownText_0xfb81e + call PrintText + xor a + ld [MonType], a + ld a, [CurPartySpecies] + ld [$d265], a + ld [CurSpecies], a + call GetBaseData + ld b, 0 + ld de, StringBuffer2 + callba Function116b7 + call Functionfb7be + ld hl, UnknownText_0xfb837 + jr c, .asm_fb76c + call Functionfb7d3 + ld hl, UnknownText_0xfb837 + jr c, .asm_fb76c + ld hl, PartyMon1Nickname + ld bc, $000b + ld a, [CurPartyMon] + call AddNTimes + ld e, l + ld d, h + ld hl, StringBuffer2 + ld bc, $000b + call CopyBytes + ld hl, UnknownText_0xfb823 + +.asm_fb76c + push hl + call GetCurNick + ld hl, UnknownText_0xfb83c + call PrintText + pop hl + jr .asm_fb786 + +.asm_fb779 + ld hl, UnknownText_0xfb82d + jr .asm_fb786 + +.asm_fb77e + ld hl, UnknownText_0xfb828 + jr .asm_fb786 + +.asm_fb783 + ld hl, UnknownText_0xfb832 + +.asm_fb786 + call PrintText + ret +; fb78a + +Functionfb78a: ; fb78a + ld hl, PartyMon1OT + ld bc, $000b + ld a, [CurPartyMon] + call AddNTimes + ld de, PlayerName + ld c, $b + call .asm_fb7b1 + jr c, .asm_fb7bc + ld hl, PartyMon1ID + ld bc, PartyMon2 - PartyMon1 + ld a, [CurPartyMon] + call AddNTimes + ld de, PlayerID + ld c, $2 +.asm_fb7b1 + ld a, [de] + cp [hl] + jr nz, .asm_fb7bc + inc hl + inc de + dec c + jr nz, .asm_fb7b1 + and a + ret + +.asm_fb7bc + scf + ret +; fb7be + +Functionfb7be: ; fb7be + ld hl, StringBuffer2 + ld c, 10 +.asm_fb7c3 + ld a, [hli] + cp "@" + jr z, .asm_fb7cf + cp " " + jr nz, .asm_fb7d1 + dec c + jr nz, .asm_fb7c3 + +.asm_fb7cf + scf + ret + +.asm_fb7d1 + and a + ret +; fb7d3 + +Functionfb7d3: ; fb7d3 + ld hl, PartyMon1Nickname + ld bc, $000b + ld a, [CurPartyMon] + call AddNTimes + push hl + call Functionfb802 + ld b, c + ld hl, StringBuffer2 + call Functionfb802 + pop hl + ld a, c + cp b + jr nz, .asm_fb7fe + ld de, StringBuffer2 +.asm_fb7f2 + ld a, [de] + cp "@" + jr z, .asm_fb800 + cp [hl] + jr nz, .asm_fb7fe + inc hl + inc de + jr .asm_fb7f2 + +.asm_fb7fe + and a + ret + +.asm_fb800 + scf + ret +; fb802 + +Functionfb802: ; fb802 + ld c, 0 +.asm_fb804 + ld a, [hli] + cp "@" + ret z + inc c + ld a, c + cp 10 + jr nz, .asm_fb804 + ret +; fb80f + +UnknownText_0xfb80f: ; 0xfb80f + ; Hello, hello! I'm the NAME RATER. + ; I rate the names of #MON. + ; Would you like me to rate names? + text_jump UnknownText_0x1c0043, BANK(UnknownText_0x1c0043) + db "@" +; 0xfb814 + +UnknownText_0xfb814: ; 0xfb814 + ; Which #MON's nickname should I rate for you? + text_jump UnknownText_0x1c00a0, BANK(UnknownText_0x1c00a0) + db "@" +; 0xfb819 + +UnknownText_0xfb819: ; 0xfb819 + ; Hm… @ … That's a fairly decent name. + ; But, how about a slightly better nickname? + ; Want me to give it a better name? + text_jump UnknownText_0x1c00cd, BANK(UnknownText_0x1c00cd) + db "@" +; 0xfb81e + +UnknownText_0xfb81e: ; 0xfb81e + ; All right. What name should we give it, then? + text_jump UnknownText_0x1c0142, BANK(UnknownText_0x1c0142) + db "@" +; 0xfb823 + +UnknownText_0xfb823: ; 0xfb823 + ; That's a better name than before! Well done! + text_jump UnknownText_0x1c0171, BANK(UnknownText_0x1c0171) + db "@" +; 0xfb828 + +UnknownText_0xfb828: ; 0xfb828 + ; OK, then. Come again sometime. + text_jump UnknownText_0x1c019e, BANK(UnknownText_0x1c019e) + db "@" +; 0xfb82d + +UnknownText_0xfb82d: ; 0xfb82d + ; Hm… @ ? What a great name! It's perfect. + ; Treat @ with loving care. + text_jump UnknownText_0x1c01be, BANK(UnknownText_0x1c01be) + db "@" +; 0xfb832 + +UnknownText_0xfb832: ; 0xfb832 + ; Whoa… That's just an EGG. + text_jump UnknownText_0x1c0208, BANK(UnknownText_0x1c0208) + db "@" +; 0xfb837 + +UnknownText_0xfb837: ; 0xfb837 + ; It might look the same as before, + ; but this new name is much better! Well done! + text_jump UnknownText_0x1c0222, BANK(UnknownText_0x1c0222) + db "@" +; 0xfb83c + +UnknownText_0xfb83c: ; 0xfb83c + ; All right. This #MON is now named @ . + text_jump UnknownText_0x1c0272, BANK(UnknownText_0x1c0272) + db "@" +; 0xfb841 + diff --git a/gfx/tilesets/00.lz b/gfx/tilesets/00.lz Binary files differindex 26cdee7a5..9821e1433 100644 --- a/gfx/tilesets/00.lz +++ b/gfx/tilesets/00.lz diff --git a/gfx/tilesets/01.lz b/gfx/tilesets/01.lz Binary files differindex 26cdee7a5..9821e1433 100644 --- a/gfx/tilesets/01.lz +++ b/gfx/tilesets/01.lz diff --git a/gfx/tilesets/02.lz b/gfx/tilesets/02.lz Binary files differindex c33920ea7..64f23e23b 100644 --- a/gfx/tilesets/02.lz +++ b/gfx/tilesets/02.lz diff --git a/gfx/tilesets/03.lz b/gfx/tilesets/03.lz Binary files differindex d5528e6ea..d925ee111 100644 --- a/gfx/tilesets/03.lz +++ b/gfx/tilesets/03.lz diff --git a/gfx/tilesets/04.lz b/gfx/tilesets/04.lz Binary files differindex c33920ea7..64f23e23b 100644 --- a/gfx/tilesets/04.lz +++ b/gfx/tilesets/04.lz diff --git a/gfx/tilesets/05.lz b/gfx/tilesets/05.lz Binary files differindex a4fde3a53..f9afaf70d 100644 --- a/gfx/tilesets/05.lz +++ b/gfx/tilesets/05.lz diff --git a/gfx/tilesets/06.lz b/gfx/tilesets/06.lz Binary files differindex 342165f65..17c64de65 100644 --- a/gfx/tilesets/06.lz +++ b/gfx/tilesets/06.lz diff --git a/gfx/tilesets/07.lz b/gfx/tilesets/07.lz Binary files differindex 456b0f570..71783d9f2 100644 --- a/gfx/tilesets/07.lz +++ b/gfx/tilesets/07.lz diff --git a/gfx/tilesets/08.lz b/gfx/tilesets/08.lz Binary files differindex c86fe9093..724b6b8b7 100644 --- a/gfx/tilesets/08.lz +++ b/gfx/tilesets/08.lz diff --git a/gfx/tilesets/09.lz b/gfx/tilesets/09.lz Binary files differindex 01e4dc3a5..96dd2e594 100644 --- a/gfx/tilesets/09.lz +++ b/gfx/tilesets/09.lz diff --git a/gfx/tilesets/10.lz b/gfx/tilesets/10.lz Binary files differindex d599354af..cd0f43861 100644 --- a/gfx/tilesets/10.lz +++ b/gfx/tilesets/10.lz diff --git a/gfx/tilesets/11.lz b/gfx/tilesets/11.lz Binary files differindex aa592b1d5..584e54dd2 100644 --- a/gfx/tilesets/11.lz +++ b/gfx/tilesets/11.lz diff --git a/gfx/tilesets/12.lz b/gfx/tilesets/12.lz Binary files differindex e7830d831..e8091a899 100644 --- a/gfx/tilesets/12.lz +++ b/gfx/tilesets/12.lz diff --git a/gfx/tilesets/14.lz b/gfx/tilesets/14.lz Binary files differindex afe093c97..f7e185b4e 100644 --- a/gfx/tilesets/14.lz +++ b/gfx/tilesets/14.lz diff --git a/gfx/tilesets/15.lz b/gfx/tilesets/15.lz Binary files differindex ff6eec958..6b45c769d 100644 --- a/gfx/tilesets/15.lz +++ b/gfx/tilesets/15.lz diff --git a/gfx/tilesets/16.lz b/gfx/tilesets/16.lz Binary files differindex a8821375c..28f025413 100644 --- a/gfx/tilesets/16.lz +++ b/gfx/tilesets/16.lz diff --git a/gfx/tilesets/18.lz b/gfx/tilesets/18.lz Binary files differindex ad4129733..e19994f37 100644 --- a/gfx/tilesets/18.lz +++ b/gfx/tilesets/18.lz diff --git a/gfx/tilesets/19.lz b/gfx/tilesets/19.lz Binary files differindex 6264091ea..d208e65c3 100644 --- a/gfx/tilesets/19.lz +++ b/gfx/tilesets/19.lz diff --git a/gfx/tilesets/20.lz b/gfx/tilesets/20.lz Binary files differindex 8cf39f262..b458a501d 100644 --- a/gfx/tilesets/20.lz +++ b/gfx/tilesets/20.lz diff --git a/gfx/tilesets/21.lz b/gfx/tilesets/21.lz Binary files differindex ae250c001..5b787c854 100644 --- a/gfx/tilesets/21.lz +++ b/gfx/tilesets/21.lz diff --git a/gfx/tilesets/22.lz b/gfx/tilesets/22.lz Binary files differindex a788ae8c0..fa5d0a9f0 100644 --- a/gfx/tilesets/22.lz +++ b/gfx/tilesets/22.lz diff --git a/gfx/tilesets/23.lz b/gfx/tilesets/23.lz Binary files differindex c51f717b0..2033306e3 100644 --- a/gfx/tilesets/23.lz +++ b/gfx/tilesets/23.lz diff --git a/gfx/tilesets/24.lz b/gfx/tilesets/24.lz Binary files differindex 01bb3bdf6..69069fb75 100644 --- a/gfx/tilesets/24.lz +++ b/gfx/tilesets/24.lz diff --git a/gfx/tilesets/25.lz b/gfx/tilesets/25.lz Binary files differindex d2a88f5c6..01a0e56bd 100644 --- a/gfx/tilesets/25.lz +++ b/gfx/tilesets/25.lz diff --git a/gfx/tilesets/26.lz b/gfx/tilesets/26.lz Binary files differindex ead4b25bf..68a4fdad0 100644 --- a/gfx/tilesets/26.lz +++ b/gfx/tilesets/26.lz diff --git a/gfx/tilesets/27.lz b/gfx/tilesets/27.lz Binary files differindex 0e2630574..34be33856 100644 --- a/gfx/tilesets/27.lz +++ b/gfx/tilesets/27.lz diff --git a/gfx/tilesets/28.lz b/gfx/tilesets/28.lz Binary files differindex 8ba18b56c..c204dca26 100644 --- a/gfx/tilesets/28.lz +++ b/gfx/tilesets/28.lz diff --git a/gfx/tilesets/29.lz b/gfx/tilesets/29.lz Binary files differindex 8350f7f9d..25cc45c85 100644 --- a/gfx/tilesets/29.lz +++ b/gfx/tilesets/29.lz diff --git a/gfx/tilesets/30.lz b/gfx/tilesets/30.lz Binary files differindex 775ac2c6c..50a5ab9ac 100644 --- a/gfx/tilesets/30.lz +++ b/gfx/tilesets/30.lz diff --git a/gfx/tilesets/31.lz b/gfx/tilesets/31.lz Binary files differindex 32304f928..7b5355705 100644 --- a/gfx/tilesets/31.lz +++ b/gfx/tilesets/31.lz diff --git a/gfx/tilesets/32.lz b/gfx/tilesets/32.lz Binary files differindex ead4b25bf..68a4fdad0 100644 --- a/gfx/tilesets/32.lz +++ b/gfx/tilesets/32.lz diff --git a/gfx/tilesets/33.lz b/gfx/tilesets/33.lz Binary files differindex ead4b25bf..68a4fdad0 100644 --- a/gfx/tilesets/33.lz +++ b/gfx/tilesets/33.lz diff --git a/gfx/tilesets/34.lz b/gfx/tilesets/34.lz Binary files differindex ead4b25bf..68a4fdad0 100644 --- a/gfx/tilesets/34.lz +++ b/gfx/tilesets/34.lz diff --git a/gfx/tilesets/35.lz b/gfx/tilesets/35.lz Binary files differindex ead4b25bf..68a4fdad0 100644 --- a/gfx/tilesets/35.lz +++ b/gfx/tilesets/35.lz diff --git a/gfx/tilesets/36.lz b/gfx/tilesets/36.lz Binary files differindex ead4b25bf..68a4fdad0 100644 --- a/gfx/tilesets/36.lz +++ b/gfx/tilesets/36.lz diff --git a/engine/copy.asm b/home/copy.asm index c5ba92c65..ad25c96e6 100644 --- a/engine/copy.asm +++ b/home/copy.asm @@ -248,13 +248,13 @@ Request2bpp: ; eba .asm_edc ld a, e - ld [$cf68], a + ld [Requested2bppSource], a ld a, d - ld [$cf69], a + ld [Requested2bppSource + 1], a ld a, l - ld [$cf6a], a + ld [Requested2bppDest], a ld a, h - ld [$cf6b], a + ld [Requested2bppDest + 1], a .asm_eec ld a, c @@ -262,10 +262,10 @@ Request2bpp: ; eba cp [hl] jr nc, .asm_f08 - ld [$cf67], a + ld [Requested2bpp], a .wait call DelayFrame - ld a, [$cf67] + ld a, [Requested2bpp] and a jr nz, .wait @@ -281,10 +281,10 @@ Request2bpp: ; eba .asm_f08 ld a, [$ffd3] - ld [$cf67], a + ld [Requested2bpp], a .asm_f0d call DelayFrame - ld a, [$cf67] + ld a, [Requested2bpp] and a jr nz, .asm_f0d ld a, c @@ -322,23 +322,23 @@ Request1bpp: ; f1e .asm_f40 ld a, e - ld [$cf6d], a + ld [Requested1bppSource], a ld a, d - ld [$cf6e], a + ld [Requested1bppSource + 1], a ld a, l - ld [$cf6f], a + ld [Requested1bppDest], a ld a, h - ld [$cf70], a + ld [Requested1bppDest + 1], a .asm_f50 ld a, c ld hl, $ffd3 cp [hl] jr nc, .asm_f6c - ld [$cf6c], a + ld [Requested1bpp], a .wait call DelayFrame - ld a, [$cf6c] + ld a, [Requested1bpp] and a jr nz, .wait @@ -354,10 +354,10 @@ Request1bpp: ; f1e .asm_f6c ld a, [$ffd3] - ld [$cf6c], a + ld [Requested1bpp], a .asm_f71 call DelayFrame - ld a, [$cf6c] + ld a, [Requested1bpp] and a jr nz, .asm_f71 ld a, c diff --git a/home/copy2.asm b/home/copy2.asm new file mode 100644 index 000000000..bdfbe9fdf --- /dev/null +++ b/home/copy2.asm @@ -0,0 +1,134 @@ +CopyBytes: ; 0x3026 +; copy bc bytes from hl to de + inc b ; we bail the moment b hits 0, so include the last run + inc c ; same thing; include last byte + jr .HandleLoop +.CopyByte + ld a, [hli] + ld [de], a + inc de +.HandleLoop + dec c + jr nz, .CopyByte + dec b + jr nz, .CopyByte + ret + +SwapBytes: ; 0x3034 +; swap bc bytes between hl and de +.Loop + ; stash [hl] away on the stack + ld a, [hl] + push af + + ; copy a byte from [de] to [hl] + ld a, [de] + ld [hli], a + + ; retrieve the previous value of [hl]; put it in [de] + pop af + ld [de], a + inc de + + ; handle loop stuff + dec bc + ld a, b + or c + jr nz, .Loop + ret + +ByteFill: ; 0x3041 +; fill bc bytes with the value of a, starting at hl + inc b ; we bail the moment b hits 0, so include the last run + inc c ; same thing; include last byte + jr .HandleLoop +.PutByte + ld [hli], a +.HandleLoop + dec c + jr nz, .PutByte + dec b + jr nz, .PutByte + ret + +GetFarByte: ; 0x304d +; retrieve a single byte from a:hl, and return it in a. + ; bankswitch to new bank + ld [hBuffer], a + ld a, [hROMBank] + push af + ld a, [hBuffer] + rst Bankswitch + + ; get byte from new bank + ld a, [hl] + ld [hBuffer], a + + ; bankswitch to previous bank + pop af + rst Bankswitch + + ; return retrieved value in a + ld a, [hBuffer] + ret + +GetFarHalfword: ; 0x305d +; retrieve a halfword from a:hl, and return it in hl. + ; bankswitch to new bank + ld [hBuffer], a + ld a, [hROMBank] + push af + ld a, [hBuffer] + rst Bankswitch + + ; get halfword from new bank, put it in hl + ld a, [hli] + ld h, [hl] + ld l, a + + ; bankswitch to previous bank and return + pop af + rst Bankswitch + ret +; 0x306b + +FarCopyWRAM: ; 306b + ld [hBuffer], a + ld a, [rSVBK] + push af + ld a, [hBuffer] + ld [rSVBK], a + call CopyBytes + pop af + ld [rSVBK], a + ret +; 307b + +GetFarWRAMByte: ; 307b + ld [hBuffer], a + ld a, [rSVBK] + push af + ld a, [hBuffer] + ld [rSVBK], a + ld a, [hl] + ld [hBuffer], a + pop af + ld [rSVBK], a + ld a, [hBuffer] + ret +; 308d + +GetFarWRAMWord: ; 308d + ld [hBuffer], a + ld a, [rSVBK] + push af + ld a, [hBuffer] + ld [rSVBK], a + ld a, [hli] + ld h, [hl] + ld l, a + pop af + ld [rSVBK], a + ret +; 309d + diff --git a/engine/decompress.asm b/home/decompress.asm index 8d39cd968..8d39cd968 100644 --- a/engine/decompress.asm +++ b/home/decompress.asm diff --git a/home/delay.asm b/home/delay.asm new file mode 100644 index 000000000..4e8b2147c --- /dev/null +++ b/home/delay.asm @@ -0,0 +1,23 @@ +DelayFrame: ; 45a +; Wait for one frame + ld a, 1 + ld [VBlankOccurred], a + +; Wait for the next VBlank, halting to conserve battery +.halt + halt ; rgbasm adds a nop after this instruction by default + ld a, [VBlankOccurred] + and a + jr nz, .halt + ret +; 468 + + +DelayFrames: ; 468 +; Wait c frames + call DelayFrame + dec c + jr nz, DelayFrames + ret +; 46f + diff --git a/home/double_speed.asm b/home/double_speed.asm new file mode 100644 index 000000000..fc1234215 --- /dev/null +++ b/home/double_speed.asm @@ -0,0 +1,31 @@ +; The CGB hardware introduces Double Speed Mode. +; While active, the clock speed is doubled. + +; The hardware can switch between normal speed +; and double speed at any time, but LCD output +; collapses during the switch. + +DoubleSpeed: ; 2fef + ld hl, rKEY1 + bit 7, [hl] + jr z, SwitchSpeed + ret +; 2ff7 + +NormalSpeed: ; 2ff7 + ld hl, rKEY1 + bit 7, [hl] + ret z +; 2ffd + +SwitchSpeed: ; 2ffd + set 0, [hl] + xor a + ld [rIF], a + ld [rIE], a + ld a, $30 + ld [rJOYP], a + stop ; rgbasm adds a nop after this instruction by default + ret +; 300b + diff --git a/engine/fade.asm b/home/fade.asm index d67211e29..d67211e29 100644 --- a/engine/fade.asm +++ b/home/fade.asm diff --git a/home/farcall.asm b/home/farcall.asm new file mode 100644 index 000000000..bdee3bf38 --- /dev/null +++ b/home/farcall.asm @@ -0,0 +1,55 @@ +FarCall_de: ; 2d54 +; Call a:de. +; Preserves other registers. + + ld [hBuffer], a + ld a, [hROMBank] + push af + ld a, [hBuffer] + rst Bankswitch + call .de + jr ReturnFarCall + +.de + push de + ret +; 2d63 + + +FarCall_hl: ; 2d63 +; Call a:hl. +; Preserves other registers. + + ld [hBuffer], a + ld a, [hROMBank] + push af + ld a, [hBuffer] + rst Bankswitch + call Function2d82 +; 2d6e + +ReturnFarCall: ; 2d6e +; We want to retain the contents of f. +; To do this, we can pop to bc instead of af. + + ld a, b + ld [$cfb9], a + ld a, c + ld [$cfba], a + +; Restore the working bank. + pop bc + ld a, b + rst Bankswitch + + ld a, [$cfb9] + ld b, a + ld a, [$cfba] + ld c, a + ret +; 2d82 + +Function2d82: ; 2d82 + jp [hl] +; 2d83 + diff --git a/home/flag.asm b/home/flag.asm new file mode 100644 index 000000000..e99248a3e --- /dev/null +++ b/home/flag.asm @@ -0,0 +1,113 @@ +Function2e50: ; 2e50 + xor a + ld hl, EventFlags + ld [hli], a + ret +; 2e56 + +Function2e56: ; 2e56 + xor a + ld hl, BikeFlags + ld [hli], a + ld [hl], a + ret +; 2e5d + +Function2e5d: ; 2e5d + ld a, [$d19a] + cp $2 + jr z, .asm_2e69 + cp $1 + jr z, .asm_2e69 + ret + +.asm_2e69 + ld hl, StatusFlags + res 2, [hl] + ret +; 2e6f + + +EventFlagAction: ; 0x2e6f + ld hl, EventFlags + call FlagAction + ret + +FlagAction: ; 0x2e76 +; Perform action b on bit de in flag array hl. + +; inputs: +; b: function +; 0 clear bit +; 1 set bit +; 2 check bit +; de: bit number +; hl: index within bit table + + ; get index within the byte + ld a, e + and 7 + + ; shift de right by three bits (get the index within memory) + srl d + rr e + srl d + rr e + srl d + rr e + add hl, de + + ; implement a decoder + ld c, 1 + rrca + jr nc, .one + rlc c +.one + rrca + jr nc, .two + rlc c + rlc c +.two + rrca + jr nc, .three + swap c +.three + + ; check b's value: 0, 1, 2 + ld a, b + cp 1 + jr c, .clearbit ; 0 + jr z, .setbit ; 1 + + ; check bit + ld a, [hl] + and c + ld c, a + ret + +.setbit + ; set bit + ld a, [hl] + or c + ld [hl], a + ret + +.clearbit + ; clear bit + ld a, c + cpl + and [hl] + ld [hl], a + ret +; 0x2ead + + +Function2ead: ; 2ead + ld de, ENGINE_POKEDEX + ld b, CHECK_FLAG + callba EngineFlagAction + ld a, c + and a + ret +; 2ebb + diff --git a/home/game_time.asm b/home/game_time.asm new file mode 100644 index 000000000..ee52488f4 --- /dev/null +++ b/home/game_time.asm @@ -0,0 +1,132 @@ +ResetGameTime: ; 208a + xor a + ld [GameTimeCap], a + ld [GameTimeHours], a + ld [GameTimeHours + 1], a + ld [GameTimeMinutes], a + ld [GameTimeSeconds], a + ld [GameTimeFrames], a + ret +; 209e + + +GameTimer: ; 209e + + nop + + ld a, [rSVBK] + push af + ld a, 1 + ld [rSVBK], a + + call UpdateGameTimer + + pop af + ld [rSVBK], a + ret +; 20ad + + +UpdateGameTimer: ; 20ad +; Increment the game timer by one frame. +; The game timer is capped at 999:59:59.00. + + +; Don't update if game logic is paused. + ld a, [$c2cd] + and a + ret nz + +; Is the timer paused? + ld hl, GameTimerPause + bit 0, [hl] + ret z + +; Is the timer already capped? + ld hl, GameTimeCap + bit 0, [hl] + ret nz + + +; +1 frame + ld hl, GameTimeFrames + ld a, [hl] + inc a + + cp 60 ; frames/second + jr nc, .second + + ld [hl], a + ret + + +.second + xor a + ld [hl], a + +; +1 second + ld hl, GameTimeSeconds + ld a, [hl] + inc a + + cp 60 ; seconds/minute + jr nc, .minute + + ld [hl], a + ret + + +.minute + xor a + ld [hl], a + +; +1 minute + ld hl, GameTimeMinutes + ld a, [hl] + inc a + + cp 60 ; minutes/hour + jr nc, .hour + + ld [hl], a + ret + + +.hour + xor a + ld [hl], a + +; +1 hour + ld a, [GameTimeHours] + ld h, a + ld a, [GameTimeHours + 1] + ld l, a + inc hl + + +; Cap the timer after 1000 hours. + ld a, h + cp 1000 / $100 + jr c, .ok + + ld a, l + cp 1000 % $100 + jr c, .ok + + ld hl, GameTimeCap + set 0, [hl] + + ld a, 59 ; 999:59:59.00 + ld [GameTimeMinutes], a + ld [GameTimeSeconds], a + ret + + +.ok + ld a, h + ld [GameTimeHours], a + ld a, l + ld [GameTimeHours + 1], a + ret +; 210f + diff --git a/home/handshake.asm b/home/handshake.asm new file mode 100644 index 000000000..8ed1473e4 --- /dev/null +++ b/home/handshake.asm @@ -0,0 +1,38 @@ +AskSerial: ; 2063 +; send out a handshake while serial int is off + ld a, [$c2d4] + bit 0, a + ret z + + ld a, [$c2d5] + and a + ret nz + +; once every 6 frames + ld hl, $ca8a + inc [hl] + ld a, [hl] + cp 6 + ret c + + xor a + ld [hl], a + + ld a, $c + ld [$c2d5], a + +; handshake + ld a, $88 + ld [rSB], a + +; switch to internal clock + ld a, %00000001 + ld [rSC], a + +; start transfer + ld a, %10000001 + ld [rSC], a + + ret +; 208a + diff --git a/engine/init.asm b/home/init.asm index 3104c416d..ead75975c 100644 --- a/engine/init.asm +++ b/home/init.asm @@ -156,7 +156,7 @@ Init: ; 17d ld a, [hCGB] and a jr z, .asm_22b - call Function2ff7 + call NormalSpeed .asm_22b xor a diff --git a/home/item.asm b/home/item.asm new file mode 100644 index 000000000..0906a19f6 --- /dev/null +++ b/home/item.asm @@ -0,0 +1,76 @@ +DoItemEffect: ; 2f3f + callba _DoItemEffect + ret +; 2f46 + +CheckTossableItem: ; 2f46 + push hl + push de + push bc + callba _CheckTossableItem + pop bc + pop de + pop hl + ret +; 2f53 + +TossItem: ; 2f53 + push hl + push de + push bc + ld a, [hROMBank] + push af + ld a, BANK(_TossItem) + rst Bankswitch + + call _TossItem + + pop bc + ld a, b + rst Bankswitch + pop bc + pop de + pop hl + ret +; 2f66 + +ReceiveItem: ; 2f66 + push bc + ld a, [hROMBank] + push af + ld a, BANK(_ReceiveItem) + rst Bankswitch + push hl + push de + + call _ReceiveItem + + pop de + pop hl + pop bc + ld a, b + rst Bankswitch + pop bc + ret +; 2f79 + +CheckItem: ; 2f79 + push hl + push de + push bc + ld a, [hROMBank] + push af + ld a, BANK(_CheckItem) + rst Bankswitch + + call _CheckItem + + pop bc + ld a, b + rst Bankswitch + pop bc + pop de + pop hl + ret +; 2f8c + diff --git a/engine/joypad.asm b/home/joypad.asm index 388c84e22..198e1c47b 100644 --- a/engine/joypad.asm +++ b/home/joypad.asm @@ -101,8 +101,8 @@ Joypad: ; 935 ; Now that we have the input, we can do stuff with it. ; For example, soft reset: - and BUTTON_A | BUTTON_B | SELECT | START - cp BUTTON_A | BUTTON_B | SELECT | START + and A_BUTTON | B_BUTTON | SELECT | START + cp A_BUTTON | B_BUTTON | SELECT | START jp z, Reset ret @@ -283,11 +283,11 @@ Functiona1b: ; a1b pop bc ld a, [hJoyDown] - cp D_UP | SELECT | BUTTON_B + cp D_UP | SELECT | B_BUTTON jr z, .asm_a34 ld a, [$ffa9] - and START | BUTTON_A + and START | A_BUTTON jr nz, .asm_a34 dec c @@ -306,7 +306,7 @@ Functiona36: ; a36 call DelayFrame call GetJoypadPublic ld a, [hJoyPressed] - and BUTTON_A | BUTTON_B + and A_BUTTON | B_BUTTON ret nz call RTC jr Functiona36 @@ -382,7 +382,7 @@ Functiona80: ; a80 Functionaa5: ; aa5 call Functiona57 ld a, [$ffa9] - and BUTTON_A | BUTTON_B + and A_BUTTON | B_BUTTON jr z, Functionaa5 ret ; aaf diff --git a/engine/lcd.asm b/home/lcd.asm index 9c86eaa5c..9c86eaa5c 100644 --- a/engine/lcd.asm +++ b/home/lcd.asm diff --git a/home/map.asm b/home/map.asm new file mode 100644 index 000000000..d4cfe1be9 --- /dev/null +++ b/home/map.asm @@ -0,0 +1,2369 @@ +; Functions dealing with rendering and interacting with maps. + +Function210f: ; 210f + ld hl, $c7e8 + ld bc, $0018 + ld a, $0 + call ByteFill + ret +; 211b + +Function211b: ; 211b + push hl + ld hl, $dbf7 + ld a, [hli] + ld h, [hl] + ld l, a + or h + ld a, [hl] + jr nz, .asm_2128 + ld a, $ff + +.asm_2128 + pop hl + ret +; 212a + +Function212a: ; 212a + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + xor a + ld [$dbf7], a + ld [$dbf8], a + call Function2147 + ret c + ld a, e + ld [$dbf7], a + ld a, d + ld [$dbf8], a + xor a + ret +; 2147 + +Function2147: ; 2147 + push bc + ld a, [hROMBank] + push af + ld a, $13 + rst Bankswitch + + ld hl, $501e +.asm_2151 + push hl + ld a, [hli] + cp $ff + jr z, .asm_2167 + cp b + jr nz, .asm_2160 + ld a, [hli] + cp c + jr nz, .asm_2160 + jr .asm_216a + +.asm_2160 + pop hl + ld de, $0004 + add hl, de + jr .asm_2151 + +.asm_2167 + scf + jr .asm_216d + +.asm_216a + ld e, [hl] + inc hl + ld d, [hl] + +.asm_216d + pop hl + pop bc + ld a, b + rst Bankswitch + + pop bc + ret +; 2173 + +Function2173: ; 2173 + call Function217a + call Functiondb1 + ret +; 217a + +Function217a: ; 217a + ld a, [hROMBank] + push af + ld a, [TilesetBlocksBank] + rst Bankswitch + + call Function2198 + ld a, $60 + ld hl, TileMap + ld bc, $0168 + call ByteFill + ld a, $13 + rst Bankswitch + + call $515b + pop af + rst Bankswitch + + ret +; 2198 + +Function2198: ; 2198 + ld a, [$d194] + ld e, a + ld a, [$d195] + ld d, a + ld hl, EnemyMoveAnimation + ld b, $5 + +.asm_21a5 + push de + push hl + ld c, $6 + +.asm_21a9 + push de + push hl + ld a, [de] + and a + jr nz, .asm_21b2 + ld a, [$d19d] + +.asm_21b2 + ld e, l + ld d, h + add a + ld l, a + ld h, $0 + add hl, hl + add hl, hl + add hl, hl + ld a, [TilesetBlocksAddress] + add l + ld l, a + ld a, [TilesetBlocksAddress + 1] + adc h + ld h, a + +rept 3 + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + + ld a, e + add 20 + ld e, a + jr nc, .next\@ + inc d +.next\@ +endr + + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + + pop hl + ld de, $0004 + add hl, de + pop de + inc de + dec c + jp nz, .asm_21a9 + pop hl + ld de, $0060 + add hl, de + pop de + ld a, [$d19f] + add $6 + add e + ld e, a + jr nc, .asm_2225 + inc d + +.asm_2225 + dec b + jp nz, .asm_21a5 + ret +; 222a + +Function222a: ; 222a + ld a, $fa + ld [$ff9f], a + callba Function15363 + xor a + ld [$ff9f], a + ret +; 2238 + +Function2238: ; 2238 + call Function2252 + ret nc + push bc + callba Function149af + pop bc + ret nc + call Function22a7 + scf + ret +; 224a + + + +Function224a: ; 224a + call Function2252 + ret nc + call Function22a7 + ret +; 2252 + +Function2252: ; 2252 + callba Function1499a + ret nc + + ld a, [hROMBank] + push af + + call Function2c52 + call Function2266 + + pop de + ld a, d + rst Bankswitch + ret +; 2266 + +Function2266: ; 2266 + ld a, [MapY] + sub $4 + ld e, a + ld a, [MapX] + sub $4 + ld d, a + ld a, [$dbfb] + and a + ret z + ld c, a + ld hl, $dbfc + ld a, [hli] + ld h, [hl] + ld l, a +.asm_227e + push hl + ld a, [hli] + cp e + jr nz, .asm_2289 + ld a, [hli] + cp d + jr nz, .asm_2289 + jr .asm_2296 + +.asm_2289 + pop hl + ld a, $5 + add l + ld l, a + jr nc, .asm_2291 + inc h + +.asm_2291 + dec c + jr nz, .asm_227e + xor a + ret + +.asm_2296 + pop hl + call Function22a3 + ret nc + ld a, [$dbfb] + inc a + sub c + ld c, a + scf + ret +; 22a3 + +Function22a3: ; 22a3 + inc hl + inc hl + scf + ret +; 22a7 + +Function22a7: ; 22a7 + ld a, [hROMBank] + push af + + call Function2c52 + call Function22b4 + + pop af + rst Bankswitch + scf + ret +; 22b4 + +Function22b4: ; 22b4 + push bc + ld hl, $dbfc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, c + dec a + ld bc, $0005 + call AddNTimes + ld bc, $0002 + add hl, bc + ld a, [hli] + cp $ff + jr nz, .asm_22d0 + ld hl, $dcac + ld a, [hli] + +.asm_22d0 + pop bc + ld [$d146], a + ld a, [hli] + ld [$d147], a + ld a, [hli] + ld [$d148], a + ld a, c + ld [$d149], a + ld a, [MapGroup] + ld [$d14a], a + ld a, [MapNumber] + ld [$d14b], a + scf + ret +; 22ee + + + +CheckOutdoorMap: ; 22ee + cp ROUTE + ret z + cp TOWN + ret +; 22f4 + +CheckIndoorMap: ; 22f4 + cp INDOOR + ret z + cp CAVE + ret z + cp DUNGEON + ret z + cp GATE + ret +; 2300 + +Function2300: ; 2300 + cp INDOOR + ret z + cp GATE + ret z + cp $5 + ret +; 2309 + + +Function2309: ; 2309 + call Function2326 + call Function2c52 + call Function234f + xor a + call Function2336 + ret +; 2317 + +Function2317: ; 2317 + call Function2326 + call Function2c52 + call Function234f + ld a, $1 + call Function2336 + ret +; 2326 + +Function2326: ; 2326 + call Function2c3d + call Function2c1c + call GetSecondaryMapHeaderPointer + call Function235c + call Function2368 + ret +; 2336 + +Function2336: ; 2336 + push af + ld hl, $d1a6 + ld a, [hli] + ld h, [hl] + ld l, a + inc hl + inc hl + call Function23da + call Function23f1 + call Function2408 + pop af + and a + ret nz + call Function241f + ret +; 234f + +Function234f: ; 234f + ld hl, $d1a4 + ld a, [hli] + ld h, [hl] + ld l, a + call Function23ac + call Function23c3 + ret +; 235c + +Function235c: ; 235c + ld de, $d19d + ld c, $c +.asm_2361 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_2361 + ret +; 2368 + +Function2368: ; 2368 + ld a, $ff + ld [NorthConnectedMapGroup], a + ld [SouthConnectedMapGroup], a + ld [WestConnectedMapGroup], a + ld [EastConnectedMapGroup], a + + ld a, [$d1a8] + ld b, a + + bit 3, b + jr z, .asm_2384 + ld de, NorthMapConnection + call GetMapConnection + +.asm_2384 + bit 2, b + jr z, .asm_238e + ld de, SouthMapConnection + call GetMapConnection + +.asm_238e + bit 1, b + jr z, .asm_2398 + ld de, WestMapConnection + call GetMapConnection + +.asm_2398 + bit 0, b + jr z, .asm_23a2 + ld de, EastMapConnection + call GetMapConnection + +.asm_23a2 + ret +; 23a3 + + +GetMapConnection: ; 23a3 +; Load map connection struct at hl into de. + ld c, SouthMapConnection - NorthMapConnection +.loop + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .loop + ret +; 23ac + + +Function23ac: ; 23ac + ld a, [hli] + ld c, a + ld [$dc07], a + ld a, l + ld [$dc08], a + ld a, h + ld [$dc09], a + ld a, c + and a + ret z + ld bc, $0004 + call AddNTimes + ret +; 23c3 + +Function23c3: ; 23c3 + ld a, [hli] + ld c, a + ld [$dc0a], a + ld a, l + ld [$dc0b], a + ld a, h + ld [$dc0c], a + ld a, c + and a + ret z + ld bc, $0003 + call AddNTimes + ret +; 23da + +Function23da: ; 23da + ld a, [hli] + ld c, a + ld [$dbfb], a + ld a, l + ld [$dbfc], a + ld a, h + ld [$dbfd], a + ld a, c + and a + ret z + ld bc, $0005 + call AddNTimes + ret +; 23f1 + +Function23f1: ; 23f1 + ld a, [hli] + ld c, a + ld [$dbfe], a + ld a, l + ld [$dbff], a + ld a, h + ld [$dc00], a + ld a, c + and a + ret z + ld bc, $0008 + call AddNTimes + ret +; 2408 + +Function2408: ; 2408 + ld a, [hli] + ld c, a + ld [$dc01], a + ld a, l + ld [$dc02], a + ld a, h + ld [$dc03], a + ld a, c + and a + ret z + ld bc, $0005 + call AddNTimes + ret +; 241f + +Function241f: ; 241f + push hl + call Function2471 + pop de + ld hl, $d72e + ld a, [de] + inc de + ld [$dc04], a + ld a, e + ld [$dc05], a + ld a, d + ld [$dc06], a + ld a, [$dc04] + call Function2457 + ld a, [$dc04] + ld c, a + ld a, $10 + sub c + jr z, .asm_2454 + ld bc, $0001 + add hl, bc + ld bc, $0010 +.asm_244a + ld [hl], $0 + inc hl + ld [hl], $ff + dec hl + add hl, bc + dec a + jr nz, .asm_244a + +.asm_2454 + ld h, d + ld l, e + ret +; 2457 + +Function2457: ; 2457 + and a + ret z + ld c, a +.asm_245a + push bc + push hl + ld a, $ff + ld [hli], a + ld b, $d +.asm_2461 + ld a, [de] + inc de + ld [hli], a + dec b + jr nz, .asm_2461 + pop hl + ld bc, $0010 + add hl, bc + pop bc + dec c + jr nz, .asm_245a + ret +; 2471 + +Function2471: ; 2471 + ld hl, $d4fe + ld bc, $01e0 + xor a + call ByteFill + ld hl, $d4fe + ld de, $0028 + ld c, $c + xor a +.asm_2484 + ld [hl], a + add hl, de + dec c + jr nz, .asm_2484 + ret +; 248a + +Function248a: ; 248a + call GetMapEventBank + rst Bankswitch + + ld hl, $d1a6 + ld a, [hli] + ld h, [hl] + ld l, a + inc hl + inc hl + inc hl + ld a, [WarpNumber] + dec a + ld c, a + ld b, $0 + ld a, $5 + call AddNTimes + ld a, [hli] + ld [YCoord], a + ld a, [hli] + ld [XCoord], a + ld a, [hli] + cp $ff + jr nz, .asm_24b3 + call Function24ba + +.asm_24b3 + ld a, $41 + ld hl, $486d + rst FarCall + ret +; 24ba + +Function24ba: ; 24ba + ld a, [$d149] + ld [$dcac], a + ld a, [$d14a] + ld [BackupMapGroup], a + ld a, [$d14b] + ld [BackupMapNumber], a + ret +; 24cd + +Function24cd: ; 24cd + ld hl, OverworldMap + ld bc, $0514 + ld a, $0 + call ByteFill + call Function24e4 + call FillMapConnections + ld a, $1 + call Function263b + ret +; 24e4 + + + +Function24e4: ; 24e4 + ld a, [hROMBank] + push af + ld hl, OverworldMap + ld a, [$d19f] + ld [hConnectedMapWidth], a + add $6 + ld [hConnectionStripLength], a + ld c, a + ld b, $0 + add hl, bc + add hl, bc + add hl, bc + ld c, $3 + add hl, bc + ld a, [$d1a0] + rst Bankswitch + + ld a, [$d1a1] + ld e, a + ld a, [$d1a2] + ld d, a + ld a, [$d19e] + ld b, a +.asm_250c + push hl + ld a, [hConnectedMapWidth] + ld c, a +.asm_2510 + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_2510 + pop hl + ld a, [hConnectionStripLength] + add l + ld l, a + jr nc, .asm_251e + inc h + +.asm_251e + dec b + jr nz, .asm_250c + pop af + rst Bankswitch + + ret +; 2524 + + + +FillMapConnections: ; 2524 + +; North + ld a, [NorthConnectedMapGroup] + cp $ff + jr z, .South + ld b, a + ld a, [NorthConnectedMapNumber] + ld c, a + call GetAnyMapBlockdataBank + + ld a, [NorthConnectionStripPointer] + ld l, a + ld a, [NorthConnectionStripPointer + 1] + ld h, a + ld a, [NorthConnectionStripLocation] + ld e, a + ld a, [NorthConnectionStripLocation + 1] + ld d, a + ld a, [NorthConnectionStripLength] + ld [hConnectionStripLength], a + ld a, [NorthConnectedMapWidth] + ld [hConnectedMapWidth], a + call FillNorthConnectionStrip + +.South + ld a, [SouthConnectedMapGroup] + cp $ff + jr z, .West + ld b, a + ld a, [SouthConnectedMapNumber] + ld c, a + call GetAnyMapBlockdataBank + + ld a, [SouthConnectionStripPointer] + ld l, a + ld a, [SouthConnectionStripPointer + 1] + ld h, a + ld a, [SouthConnectionStripLocation] + ld e, a + ld a, [SouthConnectionStripLocation + 1] + ld d, a + ld a, [SouthConnectionStripLength] + ld [hConnectionStripLength], a + ld a, [SouthConnectedMapWidth] + ld [hConnectedMapWidth], a + call FillSouthConnectionStrip + +.West + ld a, [WestConnectedMapGroup] + cp $ff + jr z, .East + ld b, a + ld a, [WestConnectedMapNumber] + ld c, a + call GetAnyMapBlockdataBank + + ld a, [WestConnectionStripPointer] + ld l, a + ld a, [WestConnectionStripPointer + 1] + ld h, a + ld a, [WestConnectionStripLocation] + ld e, a + ld a, [WestConnectionStripLocation + 1] + ld d, a + ld a, [WestConnectionStripLength] + ld b, a + ld a, [WestConnectedMapWidth] + ld [hConnectionStripLength], a + call FillWestConnectionStrip + +.East + ld a, [EastConnectedMapGroup] + cp $ff + jr z, .Done + ld b, a + ld a, [EastConnectedMapNumber] + ld c, a + call GetAnyMapBlockdataBank + + ld a, [EastConnectionStripPointer] + ld l, a + ld a, [EastConnectionStripPointer + 1] + ld h, a + ld a, [EastConnectionStripLocation] + ld e, a + ld a, [EastConnectionStripLocation + 1] + ld d, a + ld a, [EastConnectionStripLength] + ld b, a + ld a, [EastConnectedMapWidth] + ld [hConnectionStripLength], a + call FillEastConnectionStrip + +.Done + ret +; 25d3 + + +FillNorthConnectionStrip: +FillSouthConnectionStrip: ; 25d3 + + ld c, 3 +.y + push de + + push hl + ld a, [hConnectionStripLength] + ld b, a +.x + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .x + pop hl + + ld a, [hConnectedMapWidth] + ld e, a + ld d, 0 + add hl, de + pop de + + ld a, [$d19f] + add 6 + add e + ld e, a + jr nc, .asm_25f2 + inc d +.asm_25f2 + dec c + jr nz, .y + ret +; 25f6 + + +FillWestConnectionStrip: +FillEastConnectionStrip: ; 25f6 + +.asm_25f6 + ld a, [$d19f] + add 6 + ld [hConnectedMapWidth], a + + push de + + push hl + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + pop hl + + ld a, [hConnectionStripLength] + ld e, a + ld d, 0 + add hl, de + pop de + + ld a, [hConnectedMapWidth] + add e + ld e, a + jr nc, .asm_2617 + inc d +.asm_2617 + dec b + jr nz, .asm_25f6 + ret +; 261b + +Function261b: ; 261b + ld [$d432], a + ret +; 261f + + +CallScript: ; 261f +; Call a script at a:hl. + + ld [ScriptBank], a + ld a, l + ld [ScriptPos], a + ld a, h + ld [ScriptPos + 1], a + + ld a, $ff + ld [ScriptRunning], a + + scf + ret +; 2631 + +Function2631: ; 2631 + ld a, [ScriptRunning] + and a + ret nz + call GetMapEventBank + jr CallScript +; 263b + +Function263b: ; 263b + ld b, a + ld a, [hROMBank] + push af + call Function2c52 + call Function2653 + jr nc, .done + + call GetMapEventBank + ld b, a + ld d, h + ld e, l + call Function2674 + +.done + pop af + rst Bankswitch + ret +; 2653 + +Function2653: ; 2653 + ld a, [$dc0a] + ld c, a + and a + ret z + ld hl, $dc0b + ld a, [hli] + ld h, [hl] + ld l, a + or h + ret z + ld de, $0003 +.asm_2664 + ld a, [hl] + cp b + jr z, .asm_266e + add hl, de + dec c + jr nz, .asm_2664 + xor a + ret + +.asm_266e + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + scf + ret +; 2674 + +Function2674: ; 2674 + callba Unknown_0x974f3 + ld a, [ScriptMode] + push af + ld hl, ScriptFlags + ld a, [hl] + push af + set 1, [hl] + callba Function96c56 + callba ScriptEvents + pop af + ld [ScriptFlags], a + pop af + ld [ScriptMode], a + ret +; 269a + +Function269a: ; 269a + ld a, [hROMBank] + push af + ld a, b + rst Bankswitch + + push hl + call SpeechTextBox + call Function2e31 + ld a, 1 + ld [hOAMUpdate], a + call Function321c + pop hl + call PrintTextBoxText + xor a + ld [hOAMUpdate], a + pop af + rst Bankswitch + + ret +; 26b7 + +Function26b7: ; 26b7 +; Call a:de. + + ld [hBuffer], a + ld a, [hROMBank] + push af + ld a, [hBuffer] + rst Bankswitch + + call .de + + pop af + rst Bankswitch + ret + +.de + push de + ret +; 26c7 + +Function26c7: ; 26c7 + ld a, [hROMBank] + push af + ld a, b + rst Bankswitch + + ld a, c + call Function19e9 + + pop hl + ld a, h + rst Bankswitch + ret +; 26d4 + + +GetScriptByte: ; 0x26d4 +; Return byte at ScriptBank:ScriptPos in a. + + push hl + push bc + ld a, [hROMBank] + push af + ld a, [ScriptBank] + rst Bankswitch + + ld hl, ScriptPos + ld c, [hl] + inc hl + ld b, [hl] + + ld a, [bc] + + inc bc + ld [hl], b + dec hl + ld [hl], c + + ld b, a + pop af + rst Bankswitch + ld a, b + pop bc + pop hl + ret +; 0x26ef + + +ObjectEvent: ; 0x26ef + jumptextfaceplayer ObjectEventText +; 0x26f2 + +ObjectEventText: + TX_FAR _ObjectEventText + db "@" +; 0x26f7 + + +BGEvent: ; 26f7 + jumptext BGEventText +; 26fa + +BGEventText: ; 26fa + text_jump UnknownText_0x1c46fc, BANK(UnknownText_0x1c46fc) + db "@" +; 26ff + + +CoordinatesEvent: ; 26ff + jumptext CoordinatesEventText +; 2702 + +CoordinatesEventText: ; 2702 + text_jump UnknownText_0x1c4706, BANK(UnknownText_0x1c4706) + db "@" +; 2707 + + +Function2707: ; 2707 + ld a, [hConnectionStripLength] + ld e, a + ld d, $0 + ld hl, $d81e + add hl, de + ld a, [hl] + ret +; 2712 + +Function2712: ; 2712 + ld a, [hConnectionStripLength] + ld e, a + ld d, $0 + ld hl, $d81e + add hl, de + ld [hl], $ff + ret +; 271e + +Function271e: ; 271e + ld a, [hConnectionStripLength] + ld e, a + ld d, $0 + ld hl, $d81e + add hl, de + ld [hl], $0 + ret +; 272a + + +Function272a: ; 272a + ld hl, TileMap + ld de, BGMapBuffer + call Function27b7 + ld c, $28 + call Functiondbd + ld a, [$d152] + ld e, a + ld a, [$d153] + ld d, a + call Function27d3 + ld a, $1 + ld [hBGMapUpdate], a + ret +; 2748 + +Function2748: ; 2748 + ld hl, $c5e0 + ld de, BGMapBuffer + call Function27b7 + ld c, $28 + call Functiondbd + ld a, [$d152] + ld l, a + ld a, [$d153] + ld h, a + ld bc, $0200 + add hl, bc + ld a, h + and $3 + or $98 + ld e, l + ld d, a + call Function27d3 + ld a, $1 + ld [hBGMapUpdate], a + ret +; 2771 + +Function2771: ; 2771 + ld hl, TileMap + ld de, BGMapBuffer + call Function27c0 + ld c, $24 + call Functiondbd + ld a, [$d152] + ld e, a + ld a, [$d153] + ld d, a + call Function27f8 + ld a, $1 + ld [hBGMapUpdate], a + ret +; 278f + +Function278f: ; 278f + ld hl, $c4b2 + ld de, BGMapBuffer + call Function27c0 + ld c, $24 + call Functiondbd + ld a, [$d152] + ld e, a + and $e0 + ld b, a + ld a, e + add $12 + and $1f + or b + ld e, a + ld a, [$d153] + ld d, a + call Function27f8 + ld a, $1 + ld [hBGMapUpdate], a + ret +; 27b7 + +Function27b7: ; 27b7 + ld c, $28 +.asm_27b9 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_27b9 + ret +; 27c0 + +Function27c0: ; 27c0 + ld c, $12 +.asm_27c2 + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + ld a, $13 + add l + ld l, a + jr nc, .asm_27cf + inc h + +.asm_27cf + dec c + jr nz, .asm_27c2 + ret +; 27d3 + +Function27d3: ; 27d3 + ld hl, BGMapBufferPtrs + push de + call .asm_27df + pop de + ld a, $20 + add e + ld e, a + +.asm_27df + ld c, $a +.asm_27e1 + ld a, e + ld [hli], a + ld a, d + ld [hli], a + ld a, e + inc a + inc a + and $1f + ld b, a + ld a, e + and $e0 + or b + ld e, a + dec c + jr nz, .asm_27e1 + ld a, $14 + ld [$ffdc], a + ret +; 27f8 + +Function27f8: ; 27f8 + ld hl, BGMapBufferPtrs + ld c, $12 +.asm_27fd + ld a, e + ld [hli], a + ld a, d + ld [hli], a + ld a, $20 + add e + ld e, a + jr nc, .asm_280e + inc d + ld a, d + and $3 + or $98 + ld d, a + +.asm_280e + dec c + jr nz, .asm_27fd + ld a, $12 + ld [$ffdc], a + ret +; 2816 + +Function2816: ; 2816 + ld hl, BGMapBuffer + ld bc, $0078 + xor a + call ByteFill + ret +; 2821 + +Function2821: ; 2821 + ld hl, TilesetAddress + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [TilesetBank] + ld e, a + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld a, e + ld de, $d000 + call FarDecompress + ld hl, $d000 + ld de, VTiles2 + ld bc, $0600 + call CopyBytes + ld a, [rVBK] + push af + ld a, $1 + ld [rVBK], a + ld hl, $d600 + ld de, VTiles2 + ld bc, $0600 + call CopyBytes + pop af + ld [rVBK], a + pop af + ld [rSVBK], a + ld a, [$d199] + cp $1 + jr z, .asm_286f + cp $2 + jr z, .asm_286f + cp $4 + jr z, .asm_286f + jr .asm_2875 + +.asm_286f + ld a, $7 + ld hl, $4000 + rst FarCall + +.asm_2875 + xor a + ld [hTileAnimFrame], a + ret +; 2879 + +Function2879: ; 2879 + ld hl, $d194 + ld a, [hli] + ld h, [hl] + ld l, a + ld de, $dcb9 + ld c, $5 + ld b, $6 +.asm_2886 + push bc + push hl +.asm_2888 + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .asm_2888 + pop hl + ld a, [$d19f] + add $6 + ld c, a + ld b, $0 + add hl, bc + pop bc + dec c + jr nz, .asm_2886 + ret +; 289d + +Function289d: ; 289d + ld hl, $d194 + ld a, [hli] + ld h, [hl] + ld l, a + ld de, $dcb9 + ld a, [$d19f] + add $6 + ld [hConnectionStripLength], a + ld a, [$d151] + and a + jr z, .asm_28cb + cp $1 + jr z, .asm_28c0 + cp $2 + jr z, .asm_28d4 + cp $3 + jr z, .asm_28da + ret + +.asm_28c0 + ld de, $dcbf + ld a, [hConnectionStripLength] + ld c, a + ld b, $0 + add hl, bc + jr .asm_28ce + +.asm_28cb + ld de, $dcb9 + +.asm_28ce + ld b, $6 + ld c, $4 + jr .asm_28f7 + +.asm_28d4 + ld de, $dcba + inc hl + jr .asm_28dd + +.asm_28da + ld de, $dcb9 + +.asm_28dd + ld b, $5 + ld c, $5 + jr .asm_28f7 + + ld hl, $d194 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$d19f] + add $6 + ld [hConnectionStripLength], a + ld de, $dcb9 + ld b, $6 + ld c, $5 + +.asm_28f7 + push bc + push hl + push de +.asm_28fa + ld a, [de] + inc de + ld [hli], a + dec b + jr nz, .asm_28fa + pop de + ld a, e + add $6 + ld e, a + jr nc, .asm_2908 + inc d + +.asm_2908 + pop hl + ld a, [hConnectionStripLength] + ld c, a + ld b, $0 + add hl, bc + pop bc + dec c + jr nz, .asm_28f7 + ret +; 2914 + +Function2914: ; 2914 + xor a + ld [TilePermissions], a + call Function296c + call Function294d + ld a, [MapX] + ld d, a + ld a, [MapY] + ld e, a + call Function2a3c + ld [StandingTile], a + call Function29ff + ret nz + ld a, [StandingTile] + and 7 + ld hl, .data_2945 + add l + ld l, a + ld a, 0 + adc h + ld h, a + ld a, [hl] + ld hl, TilePermissions + or [hl] + ld [hl], a + ret +; 2945 + +.data_2945 ; 2945 + db 1, 2, 4, 8, 9, 10, 5, 6 +; 294d + +Function294d: ; 294d + ld a, [MapX] + ld d, a + ld a, [MapY] + ld e, a + push de + inc e + call Function2a3c + ld [TileDown], a + call Function298b + pop de + dec e + call Function2a3c + ld [TileUp], a + call Function29a8 + ret +; 296c + +Function296c: ; 296c + ld a, [MapX] + ld d, a + ld a, [MapY] + ld e, a + push de + dec d + call Function2a3c + ld [TileLeft], a + call Function29e2 + pop de + inc d + call Function2a3c + ld [TileRight], a + call Function29c5 + ret +; 298b + +Function298b: ; 298b + call Function29ff + ret nz + ld a, [TileDown] + and $7 + cp $2 + jr z, .asm_299f + cp $6 + jr z, .asm_299f + cp $7 + ret nz + +.asm_299f + ld a, [TilePermissions] + or $8 + ld [TilePermissions], a + ret +; 29a8 + +Function29a8: ; 29a8 + call Function29ff + ret nz + ld a, [TileUp] + and $7 + cp $3 + jr z, .asm_29bc + cp $4 + jr z, .asm_29bc + cp $5 + ret nz + +.asm_29bc + ld a, [TilePermissions] + or $4 + ld [TilePermissions], a + ret +; 29c5 + +Function29c5: ; 29c5 + call Function29ff + ret nz + ld a, [TileRight] + and $7 + cp $1 + jr z, .asm_29d9 + cp $5 + jr z, .asm_29d9 + cp $7 + ret nz + +.asm_29d9 + ld a, [TilePermissions] + or $1 + ld [TilePermissions], a + ret +; 29e2 + +Function29e2: ; 29e2 + call Function29ff + ret nz + ld a, [TileLeft] + and $7 + cp $0 + jr z, .asm_29f6 + cp $4 + jr z, .asm_29f6 + cp $6 + ret nz + +.asm_29f6 + ld a, [TilePermissions] + or $2 + ld [TilePermissions], a + ret +; 29ff + +Function29ff: ; 29ff + and $f0 + cp $b0 + ret z + cp $c0 + ret +; 2a07 + + +GetFacingTileCoord: ; 2a07 +; Return map coordinates in (d, e) and tile id in a +; of the tile the player is facing. + + ld a, [PlayerDirection] + and %1100 + srl a + srl a + ld l, a + ld h, 0 + add hl, hl + add hl, hl + ld de, .Directions + add hl, de + + ld d, [hl] + inc hl + ld e, [hl] + inc hl + + ld a, [hli] + ld h, [hl] + ld l, a + + ld a, [MapX] + add d + ld d, a + ld a, [MapY] + add e + ld e, a + ld a, [hl] + ret + +.Directions + ; x, y + db 0, 1 + dw TileDown + db 0, -1 + dw TileUp + db -1, 0 + dw TileLeft + db 1, 0 + dw TileRight +; 2a3c + + +Function2a3c: ; 2a3c + call Function2a66 + ld a, [hl] + and a + jr z, .asm_2a63 + ld l, a + ld h, $0 + add hl, hl + add hl, hl + ld a, [TilesetCollisionAddress] + ld c, a + ld a, [$d1e1] + ld b, a + add hl, bc + rr d + jr nc, .asm_2a56 + inc hl + +.asm_2a56 + rr e + jr nc, .asm_2a5c + inc hl + inc hl + +.asm_2a5c + ld a, [TilesetCollisionBank] + call GetFarByte + ret + +.asm_2a63 + ld a, $ff + ret +; 2a66 + +Function2a66: ; 2a66 + ld a, [$d19f] + add $6 + ld c, a + ld b, $0 + ld hl, $c801 + add hl, bc + ld a, e + srl a + jr z, .asm_2a84 + and a +.asm_2a78 + srl a + jr nc, .asm_2a7d + add hl, bc + +.asm_2a7d + sla c + rl b + and a + jr nz, .asm_2a78 + +.asm_2a84 + ld c, d + srl c + ld b, $0 + add hl, bc + ret +; 2a8b + + +CheckFacingSign: ; 2a8b + call GetFacingTileCoord + ld b, a + ld a, d + sub 4 + ld d, a + ld a, e + sub 4 + ld e, a + ld a, [$dc01] + and a + ret z + ld c, a + ld a, [hROMBank] + push af + call Function2c52 + call Function2aaa + pop hl + ld a, h + rst Bankswitch + ret +; 2aaa + +Function2aaa: ; 2aaa + ld hl, $dc02 + ld a, [hli] + ld h, [hl] + ld l, a +.asm_2ab0 + push hl + ld a, [hli] + cp e + jr nz, .asm_2abb + ld a, [hli] + cp d + jr nz, .asm_2abb + jr .asm_2ac8 + +.asm_2abb + pop hl + ld a, 5 + add l + ld l, a + jr nc, .asm_2ac3 + inc h + +.asm_2ac3 + dec c + jr nz, .asm_2ab0 + xor a + ret + +.asm_2ac8 + pop hl + ld de, EngineBuffer1 + ld bc, 5 + call CopyBytes + scf + ret +; 2ad4 + +Function2ad4: ; 2ad4 + ld a, [$dbfe] + and a + ret z + ld c, a + ld a, [hROMBank] + push af + call Function2c52 + call Function2ae7 + pop hl + ld a, h + rst Bankswitch + ret +; 2ae7 + +Function2ae7: ; 2ae7 + ld hl, $dbff + ld a, [hli] + ld h, [hl] + ld l, a + call Function211b + ld b, a + ld a, [MapX] + sub $4 + ld d, a + ld a, [MapY] + sub $4 + ld e, a +.asm_2afd + push hl + ld a, [hli] + cp b + jr z, .asm_2b06 + cp $ff + jr nz, .asm_2b10 + +.asm_2b06 + ld a, [hli] + cp e + jr nz, .asm_2b10 + ld a, [hli] + cp d + jr nz, .asm_2b10 + jr .asm_2b1d + +.asm_2b10 + pop hl + ld a, $8 + add l + ld l, a + jr nc, .asm_2b18 + inc h + +.asm_2b18 + dec c + jr nz, .asm_2afd + xor a + ret + +.asm_2b1d + pop hl + ld de, EngineBuffer1 + ld bc, $0008 + call CopyBytes + scf + ret +; 2b29 + + +FadeToMenu: ; 2b29 + xor a + ld [hBGMapMode], a + call Function1d6e + ld a, $23 + ld hl, $4084 + rst FarCall + call ClearSprites + call Function2ed3 + ret +; 2b3c + + +Function2b3c: ; 2b3c + call WhiteBGMap + call Function2bae + call Function1ad2 + call Function1d7d + call Functiond90 + jr Function2b5c +; 2b4d + +Function2b4d: ; 2b4d + call WhiteBGMap + call Function1d7d + call Function2bae + call Function1ad2 + call Functiond90 +; 2b5c + +Function2b5c: ; 2b5c + ld b, $9 + call GetSGBLayout + ld a, $12 + ld hl, $5409 + rst FarCall + call Function3200 + ld a, $23 + ld hl, $4079 + rst FarCall + call Function2ee4 + ret +; 2b74 + + +Function2b74: ; 0x2b74 + push af + ld a, $1 + ld [$c2ce], a + call WhiteBGMap + call ClearSprites + call Function2bae + ld hl, $c590 ; tile 0, 12 + ld bc, $0412 + call TextBox + ld hl, VramState + set 0, [hl] + call Function1ad2 + call Function3200 + ld b, $9 + call GetSGBLayout + callba Function49409 + call UpdateTimePals + call DelayFrame + ld a, $1 + ld [$ffde], a + pop af + ret +; 0x2bae + +Function2bae: ; 2bae + call DisableLCD + call ClearSprites + ld a, $5 + ld hl, $4168 + rst FarCall + call Functione51 + call Functione5f + ld a, [hROMBank] + push af + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call Function2c24 + ld a, $23 + ld hl, $4001 + rst FarCall + call Function2173 + call Function2821 + ld a, $9 + call Function3cb4 + pop af + rst Bankswitch + + call EnableLCD + ret +; 2be5 + + +GetMapHeaderPointer: ; 2be5 + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a +; 2bed + +GetAnyMapHeaderPointer: ; 0x2bed +; Prior to calling this function, you must have switched banks so that +; MapGroupPointers is visible. + +; inputs: +; b = map group, c = map number +; XXX de = ??? + +; outputs: +; hl points to the map header + push bc ; save map number for later + + ; get pointer to map group + dec b + ld c, b + ld b, $0 + ld hl, MapGroupPointers + add hl, bc + add hl, bc + + ld a, [hli] + ld h, [hl] + ld l, a + pop bc ; restore map number + + ; find the cth map header + dec c + ld b, $0 + ld a, OlivineGym_MapHeader - OlivinePokeCenter1F_MapHeader + call AddNTimes + ret +; 0x2c04 + +GetMapHeaderMember: ; 0x2c04 +; Extract data from the current map's header. + +; inputs: +; de = offset of desired data within the mapheader + +; outputs: +; bc = data from the current map's header +; (e.g., de = $0003 would return a pointer to the secondary map header) + + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + ; fallthrough + +GetAnyMapHeaderMember: ; 0x2c0c + ; bankswitch + ld a, [hROMBank] + push af + ld a, BANK(MapGroupPointers) + rst Bankswitch + + call GetAnyMapHeaderPointer + add hl, de + ld c, [hl] + inc hl + ld b, [hl] + + ; bankswitch back + pop af + rst Bankswitch + ret +; 0x2c1c + + +Function2c1c: ; 2c1c + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a +; 2c24 + +Function2c24: ; 2c24 + call Function2c31 + rst Bankswitch + ret +; 2c29 + + +Function2c29: ; 2c29 + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a +; 2c31 + +Function2c31: ; 2c31 + push hl + push de + ld de, $0000 + call GetAnyMapHeaderMember + ld a, c + pop de + pop hl + ret +; 2c3d + +Function2c3d: ; 2c3d + ld a, [hROMBank] + push af + ld a, $25 + rst Bankswitch + call GetMapHeaderPointer + ld de, $d198 + ld bc, $0005 + call CopyBytes + pop af + rst Bankswitch + ret +; 2c52 + +Function2c52: ; 2c52 + ld a, [MapEventBank] + rst Bankswitch + ret +; 2c57 + + +GetMapEventBank: ; 2c57 + ld a, [MapEventBank] + ret +; 2c5b + +GetAnyMapBlockdataBank: ; 2c5b +; Return the blockdata bank for group b map c. + push hl + push de + push bc + + push bc + ld de, 3 ; second map header pointer + call GetAnyMapHeaderMember + ld l, c + ld h, b + pop bc + + push hl + ld de, 0 ; second map header bank + call GetAnyMapHeaderMember + pop hl + + ld de, 3 ; blockdata bank + add hl, de + ld a, c + call GetFarByte + rst Bankswitch + + pop bc + pop de + pop hl + ret +; 2c7d + +GetSecondaryMapHeaderPointer: ; 0x2c7d +; returns the current map's secondary map header pointer in hl. + push bc + push de + ld de, $0003 ; secondary map header pointer (offset within header) + call GetMapHeaderMember + ld l, c + ld h, b + pop de + pop bc + ret +; 2c8a + +GetMapPermission: ; 2c8a + push hl + push de + push bc + ld de, 2 + call GetMapHeaderMember + ld a, c + pop bc + pop de + pop hl + ret +; 2c98 + +Function2c98: ; 2c98 + ret +; 2c99 + +Function2c99: ; 2c99 + push hl + push de + push bc + ld de, $0002 + call GetAnyMapHeaderMember + ld a, c + pop bc + pop de + pop hl + ret +; 2ca7 + +Function2ca7: ; 2ca7 + ld de, $0001 + call GetAnyMapHeaderMember + ld a, c + ret +; 2caf + +GetWorldMapLocation: ; 0x2caf +; given a map group/id in bc, return its location on the Pokégear map. + push hl + push de + push bc + ld de, 5 + call GetAnyMapHeaderMember + ld a, c + pop bc + pop de + pop hl + ret +; 0x2cbd + +Function2cbd: ; 2cbd + push hl + push bc + ld de, $0006 + call GetMapHeaderMember + ld a, c + cp $64 + jr z, .asm_2cee + bit 7, c + jr nz, .asm_2cda + ld a, $22 + ld hl, $7342 + rst FarCall + ld e, c + ld d, $0 +.asm_2cd7 + pop bc + pop hl + ret + +.asm_2cda + ld a, [StatusFlags2] + bit 0, a + jr z, .asm_2ce6 + ld de, $0056 + jr .asm_2cd7 + +.asm_2ce6 + ld a, c + and $7f + ld e, a + ld d, $0 + jr .asm_2cd7 + +.asm_2cee + ld a, [StatusFlags2] + bit 7, a + jr z, .asm_2cfa + ld de, $0048 + jr .asm_2cd7 + +.asm_2cfa + ld de, $0026 + jr .asm_2cd7 +; 2cff + +Function2cff: ; 2cff + call Function2d0d + and $f + ret +; 2d05 + +Function2d05: ; 2d05 + call Function2d0d + and $f0 + swap a + ret +; 2d0d + +Function2d0d: ; 2d0d + push hl + push bc + ld de, $0007 + call GetMapHeaderMember + ld a, c + pop bc + pop hl + ret +; 2d19 + +Function2d19: ; 2d19 + push de + push hl + push bc + ld de, $0008 + call GetMapHeaderMember + ld a, c + pop bc + pop hl + pop de + ret +; 2d27 + +Function2d27: ; 2d27 + push hl + push bc + ld hl, $5596 + ld bc, $000f + ld a, [$d199] + call AddNTimes + ld de, TilesetBank + ld bc, $000f + ld a, $13 + call FarCopyBytes + pop bc + pop hl + ret +; 2d43 + diff --git a/home/map_objects.asm b/home/map_objects.asm new file mode 100644 index 000000000..3ebc1b597 --- /dev/null +++ b/home/map_objects.asm @@ -0,0 +1,683 @@ +; Functions handling map objects. + + +GetSpritePalette: ; 17ff + push hl + push de + push bc + ld c, a + callba _GetSpritePalette + ld a, c + pop bc + pop de + pop hl + ret +; 180e + + +Function180e: ; 180e + push hl + push bc + ld hl, $d156 + ld c, $1f + ld b, a + ld a, [hConnectionStripLength] + cp $0 + jr z, .asm_182b + ld a, b +.asm_181d + cp [hl] + jr z, .asm_1830 + inc hl + inc hl + dec c + jr nz, .asm_181d + ld a, [$d155] + scf + jr .asm_1833 + +.asm_182b + ld a, [$d155] + jr .asm_1833 + +.asm_1830 + inc hl + xor a + ld a, [hl] + +.asm_1833 + pop bc + pop hl + ret +; 1836 + +Function1836: ; 1836 + push de + push hl + + ld b, a + ld a, [hROMBank] + push af + ld a, BANK(Function142a7) + rst Bankswitch + + ld a, b + call Function142a7 + ld c, a + + pop de + ld a, d + rst Bankswitch + + pop hl + pop de + ret +; 184a + + + +Function184a: ; 184a + ld a, [StandingTile] + call GetTileCollision + ld b, a + ret +; 1852 + +Function1852: ; 1852 + ld a, [StandingTile] + call GetTileCollision + sub 1 + ret z + and a + ret +; 185d + + +GetTileCollision: ; 185d +; Get the collision type of tile a. + + push de + push hl + + ld hl, TileCollisionTable + ld e, a + ld d, 0 + add hl, de + + ld a, [hROMBank] + push af + ld a, BANK(TileCollisionTable) + rst Bankswitch + ld e, [hl] + pop af + rst Bankswitch + + ld a, e + and $f ; lo nybble only + + pop hl + pop de + ret +; 1875 + + +Function1875: ; 1875 + ld d, a + and $f0 + cp $10 + jr z, .asm_1882 + cp $20 + jr z, .asm_1888 + scf + ret + +.asm_1882 + ld a, d + and 7 + ret z + scf + ret + +.asm_1888 + ld a, d + and 7 + ret z + scf + ret +; 188e + +Function188e: ; 188e + cp $14 + ret z + cp $1c + ret +; 1894 + +CheckCutTreeTile: ; 1894 + cp $12 + ret z + cp $1a + ret +; 189a + +CheckHeadbuttTreeTile: ; 189a + cp $15 + ret z + cp $1d + ret +; 18a0 + +CheckCounterTile: ; 18a0 + cp $90 + ret z + cp $98 + ret +; 18a6 + +CheckPitTile: ; 18a6 + cp $60 + ret z + cp $68 + ret +; 18ac + +CheckIceTile: ; 18ac + cp $23 + ret z + cp $2b + ret z + scf + ret +; 18b4 + +CheckWhirlpoolTile: ; 18b4 + nop + cp $24 + ret z + cp $2c + ret z + scf + ret +; 18bd + +CheckWaterfallTile: ; 18bd + cp $33 + ret z + cp $3b + ret +; 18c3 + +CheckStandingOnEntrance: ; 18c3 + ld a, [StandingTile] + cp $71 ; door + ret z + cp $79 + ret z + cp $7a ; stairs + ret z + cp $7b ; cave + ret +; 18d2 + + +GetMapObject: ; 18d2 +; Return the location of map object a in bc. + ld hl, MapObjects + ld bc, $10 + call AddNTimes + ld b, h + ld c, l + ret +; 18de + + +Function18de: ; 18de + ld [hConnectionStripLength], a + call GetMapObject + ld hl, $0000 + add hl, bc + ld a, [hl] + cp $ff + jr z, .asm_18f3 + ld [hConnectedMapWidth], a + call Function1ae5 + and a + ret + +.asm_18f3 + scf + ret +; 18f5 + +Function18f5: ; 18f5 + ld hl, $0006 + add hl, bc + ld a, [hl] + cp $ff + jr nz, .asm_1921 + ld hl, $0007 + add hl, bc + ld a, [hl] + cp $ff + jr z, .asm_191c + ld hl, .data_191e + ld a, [TimeOfDay] + add l + ld l, a + jr nc, .asm_1912 + inc h + +.asm_1912 + ld a, [hl] + ld hl, $0007 + add hl, bc + and [hl] + jr nz, .asm_191c + scf + ret + +.asm_191c + and a + ret + +.data_191e + db $1 + db $2 + db $4 + +.asm_1921 + ld hl, $0006 + add hl, bc + ld d, [hl] + ld hl, $0007 + add hl, bc + ld e, [hl] + ld hl, hHours + ld a, d + cp e + jr z, .asm_1949 + jr c, .asm_193f + ld a, [hl] + cp d + jr nc, .asm_1949 + cp e + jr c, .asm_1949 + jr z, .asm_1949 + jr .asm_194b + +.asm_193f + ld a, e + cp [hl] + jr c, .asm_194b + ld a, [hl] + cp d + jr nc, .asm_1949 + jr .asm_194b + +.asm_1949 + and a + ret + +.asm_194b + scf + ret +; 194d + +Function194d: ; 194d + ld [hConnectionStripLength], a + call GetMapObject + call $40e7 + ret +; 1956 + + + +Function1956: ; 1956 + ld [hConnectionStripLength], a + call Function271e + ld a, [hConnectionStripLength] + call GetMapObject + ld a, $2 + ld hl, $40e7 + rst FarCall + ret +; 1967 + +Function1967: ; 1967 + ld [hConnectionStripLength], a + call GetMapObject + ld hl, $0000 + add hl, bc + ld a, [hl] + cp $ff + ret z + ld [hl], $ff + push af + call Function1985 + pop af + call Function1ae5 + callba Function4357 + ret +; 1985 + +Function1985: ; 1985 + ld hl, $d4cd + cp [hl] + jr z, .asm_1990 + ld hl, $d4ce + cp [hl] + ret nz + +.asm_1990 + callba Function581f + ld a, $ff + ld [$d4cd], a + ld [$d4ce], a + ret +; 199f + +Function199f: ; 199f + call Function1967 + call Function2712 + ret +; 19a6 + +Function19a6: ; 19a6 + push hl + call GetMapObject + ld d, b + ld e, c + ld a, $ff + ld [de], a + inc de + pop hl + ld bc, $000f + call CopyBytes + ret +; 19b8 + +Function19b8: ; 19b8 + call GetMapObject + ld hl, $0000 + add hl, bc + ld a, [hl] + push af + ld [hl], $ff + inc hl + ld bc, $000f + xor a + call ByteFill + pop af + cp $ff + ret z + cp $d + ret nc + ld b, a + ld a, [$d4cd] + cp b + jr nz, .asm_19de + ld a, $ff + ld [$d4cd], a + +.asm_19de + ld a, b + call Function1ae5 + callba Function4357 + ret +; 19e9 + + + +Function19e9: ; 19e9 + ld [$c2e2], a + ld a, [hROMBank] + ld [$c2e3], a + ld a, l + ld [$c2e4], a + ld a, h + ld [$c2e5], a + ld a, [$c2e2] + call Function18de + ret c + ld hl, $0003 + add hl, bc + ld [hl], $14 + ld hl, $0009 + add hl, bc + ld [hl], $0 + ld hl, VramState + set 7, [hl] + and a + ret +; 1a13 + + + +Function1a13: ; 1a13 + push bc + push de + ld hl, $d4d6 + ld de, $0028 + ld c, $d +.asm_1a1d + ld a, [hl] + and a + jr z, .asm_1a28 + add hl, de + dec c + jr nz, .asm_1a1d + xor a + jr .asm_1a2c + +.asm_1a28 + ld a, $d + sub c + scf + +.asm_1a2c + pop de + pop bc + ret +; 1a2f + + + +Function1a2f: ; 1a2f + ld hl, $0003 + add hl, bc + ld a, [hl] + cp $25 + jr c, .asm_1a39 + xor a + +.asm_1a39 + ld hl, Data4273 + ld e, a + ld d, 0 + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + ld a, [hl] + ret +; 1a47 + +Function1a47: ; 1a47 + push bc + push de + ld e, a + ld d, 0 + ld hl, Data4273 + 1 + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + ld a, BANK(Data4273) + call GetFarByte + add a + add a + and $c + pop de + pop bc + ret +; 1a61 + + +Function1a61: ; 1a61 + ld l, a + ld a, [hROMBank] + push af + ld a, BANK(Data4273) + rst Bankswitch + ld a, l + push bc + + call Function1a71 + + pop bc + pop af + rst Bankswitch + + ret +; 1a71 + +Function1a71: ; 1a71 + ld hl, $0003 + add hl, de + ld [hl], a + push de + ld e, a + ld d, 0 + ld hl, Data4273 + 1 + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + ld b, h + ld c, l + pop de + ld a, [bc] + inc bc + rlca + rlca + and $c + ld hl, $0008 + add hl, de + ld [hl], a + ld a, [bc] + inc bc + ld hl, $000b + add hl, de + ld [hl], a + ld a, [bc] + inc bc + ld hl, $0004 + add hl, de + ld [hl], a + ld a, [bc] + inc bc + ld hl, $0005 + add hl, de + ld [hl], a + ld a, [bc] + inc bc + ld hl, $0006 + add hl, de + ld [hl], a + ret +; 1aae + +Function1aae: ; 1aae + ld a, [hROMBank] + push af + ld a, [hli] + rst Bankswitch + + ld a, [hli] + ld d, [hl] + ld hl, $001b + add hl, bc + add [hl] + ld e, a + ld a, d + adc $0 + ld d, a + inc [hl] + ld a, [de] + ld h, a + pop af + rst Bankswitch + + ld a, h + ret +; 1ac6 + +Function1ac6: ; 1ac6 + ld hl, VramState + set 0, [hl] + ret +; 1acc + +Function1acc: ; 1acc + ld hl, VramState + res 0, [hl] + ret +; 1ad2 + + +Function1ad2: ; 1ad2 + ld a, [VramState] + bit 0, a + ret z + callba Function55e0 + callba Function5920 + ret +; 1ae5 + + +Function1ae5: ; 1ae5 + ld bc, $0028 + ld hl, $d4d6 + call AddNTimes + ld b, h + ld c, l + ret +; 1af1 + +Function1af1: ; 1af1 + ld hl, $0000 + add hl, bc + ld a, [hl] + and a + ret +; 1af8 + +Function1af8: ; 1af8 + push af + ld hl, $0008 + add hl, bc + ld a, [hl] + and $f3 + ld e, a + pop af + and $c + or e + ld [hl], a + ret +; 1b07 + + +GetSpriteDirection: ; 1b07 + ld hl, $0008 + add hl, bc + ld a, [hl] + and $c + ret +; 1b0f + diff --git a/home/math.asm b/home/math.asm new file mode 100644 index 000000000..87a00c412 --- /dev/null +++ b/home/math.asm @@ -0,0 +1,76 @@ +SimpleMultiply: ; 3105 +; Return a * c. + and a + ret z + + push bc + ld b, a + xor a +.loop + add c + dec b + jr nz, .loop + pop bc + ret +; 3110 + + +SimpleDivide: ; 3110 +; Divide a by c. Return quotient b and remainder a. + ld b, 0 +.loop + inc b + sub c + jr nc, .loop + dec b + add c + ret +; 3119 + + +Multiply: ; 3119 +; Multiply hMultiplicand (3 bytes) by hMultiplier. Result in hProduct. +; All values are big endian. + push hl + push bc + + callab _Multiply + + pop bc + pop hl + ret +; 3124 + + +Divide: ; 3124 +; Divide hDividend length b (max 4 bytes) by hDivisor. Result in hQuotient. +; All values are big endian. + push hl + push de + push bc + ld a, [hROMBank] + push af + ld a, BANK(_Divide) + rst Bankswitch + + call _Divide + + pop af + rst Bankswitch + pop bc + pop de + pop hl + ret +; 3136 + + +SubtractSigned: ; 3136 +; Return a - b, sign in carry. + sub b + ret nc + cpl + add 1 + scf + ret +; 313d + diff --git a/home/menu.asm b/home/menu.asm new file mode 100644 index 000000000..c761a927c --- /dev/null +++ b/home/menu.asm @@ -0,0 +1,603 @@ +; Functions used in displaying and handling menus. + + +LoadMenuDataHeader: ; 0x1d35 + call Function1d3c + call Function1c00 + ret + +Function1d3c: ; 0x1d3c + ld de, $cf81 + ld bc, $0010 + call CopyBytes + ld a, [hROMBank] + ld [$cf8a], a + ret +; 0x1d4b + +Function1d4b: ; 1d4b + ld [$cf88], a + ret +; 1d4f + + +Function1d4f: ; 1d4f + push hl + call Function1d58 + pop hl + jp PrintText +; 1d57 + +Function1d57: ; 1d57 + ret +; 1d58 + +Function1d58: ; 1d58 + ld hl, MenuDataHeader_0x1d5f + call LoadMenuDataHeader + ret +; 1d5f + +MenuDataHeader_0x1d5f: ; 1d5f + db $40 ; tile backup + db 12, 0 ; start coords + db 17, 19 ; end coords + dw VTiles0 + db 0 ; default option +; 1d67 + +Function1d67: ; 1d67 + call Function1d4f + call Function1c17 + ret +; 1d6e + +Function1d6e: ; 1d6e + ld hl, MenuDataHeader_0x1d75 + call LoadMenuDataHeader + ret +; 1d75 + +MenuDataHeader_0x1d75: ; 1d75 + db $40 ; tile backup + db 0, 0 ; start coords + db 17, 19 ; end coords + dw $0000 + db 1 ; default option +; 1d7d + +Function1d7d: ; 1d7d + call Function1c07 + ret +; 1d81 + +Function1d81: ; 0x1d81 + xor a + ld [hBGMapMode], a + call Function1cbb + call Function1ad2 + call Function1c89 + call Function321c + call Function1c66 + ld a, [$cf91] + bit 7, a + jr z, .asm_1da7 ; 0x1d98 $d + call Function1c10 + call Function1bc9 + call Function1ff8 + bit 1, a + jr z, .asm_1da9 ; 0x1da5 $2 +.asm_1da7 + scf + ret +.asm_1da9 + and a + ret +; 0x1dab + +Function1dab: ; 1dab + call LoadMenuDataHeader + call Function1d81 + call Function1c17 + ld a, [$cfa9] + ret +; 1db8 + +Function1db8: ; 0x1db8 + push hl + push bc + push af + ld hl, $cf86 + ld a, [hli] + ld h, [hl] + ld l, a + inc hl + inc hl + pop af + call GetNthString + ld d, h + ld e, l + call CopyName1 + pop bc + pop hl + ret +; 0x1dcf + + +Function1dcf: ; 1dcf + ld bc, $0e07 + +Function1dd2: ; 1dd2 + jr Function1dd9 + +Function1dd4: ; 1dd4 + call LoadMenuDataHeader + jr Function1dfe + +Function1dd9: ; 1dd9 + push bc + ld hl, MenuDataHeader_0x1e1d + call Function1d3c + pop bc + ld a, b + cp $e + jr nz, .asm_1de9 + ld a, $e + ld b, a + +.asm_1de9 + ld a, b + ld [$cf83], a + add $5 + ld [$cf85], a + ld a, c + ld [$cf82], a + add $4 + ld [$cf84], a + call Function1c00 + +Function1dfe: ; 1dfe + call Function1d81 + push af + ld c, $f + call DelayFrames + call Function1c17 + pop af + jr c, .asm_1e16 + ld a, [$cfa9] + cp $2 + jr z, .asm_1e16 + and a + ret + +.asm_1e16 + ld a, $2 + ld [$cfa9], a + scf + ret +; 1e1d + +MenuDataHeader_0x1e1d: ; 1e1d + db $40 ; tile backup + db 5, 10 ; start coords + db 9, 15 ; end coords + dw MenuData2_0x1e25 + db 1 ; default option +; 1e25 + +MenuData2_0x1e25: ; 1e25 + db $c0 ; flags + db 2 + db "YES@" + db "NO@" +; 1e2e + +Function1e2e: ; 1e2e + call Function1e35 + call Function1c00 + ret +; 1e35 + +Function1e35: ; 1e35 + push de + call Function1d3c + pop de + ld a, [$cf83] + ld h, a + ld a, [$cf85] + sub h + ld h, a + ld a, d + ld [$cf83], a + add h + ld [$cf85], a + ld a, [$cf82] + ld l, a + ld a, [$cf84] + sub l + ld l, a + ld a, e + ld [$cf82], a + add l + ld [$cf84], a + ret +; 1e5d + +Function1e5d: ; 1e5d + call MenuFunc_1e7f + call MenuWriteText + call Function1eff + call Function1f23 + call Function1bdd + call Function1ff8 + ret +; 1e70 + +SetUpMenu: ; 1e70 + call MenuFunc_1e7f ; ??? + call MenuWriteText + call Function1eff ; set up selection pointer + ld hl, $cfa5 + set 7, [hl] + ret + +MenuFunc_1e7f: ; 0x1e7f + call Function1c66 + call Function1ebd + call Function1ea6 + call Function1cbb + ret + +MenuWriteText: ; 0x1e8c + xor a + ld [hBGMapMode], a + call Function1ebd ; sort out the text + call Function1eda ; actually write it + call Function2e31 + ld a, [hOAMUpdate] + push af + ld a, $1 + ld [hOAMUpdate], a + call Function321c + pop af + ld [hOAMUpdate], a + ret +; 0x1ea6 + +Function1ea6: ; 1ea6 + ld a, [$cf83] + ld c, a + ld a, [$cf85] + sub c + ld c, a + ld a, [$cf92] + add a + inc a + ld b, a + ld a, [$cf82] + add b + ld [$cf84], a + ret +; 1ebd + +Function1ebd: ; 1ebd + ld hl, $cf93 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$cf76] + and a + jr z, .asm_1ed3 + ld b, a + ld c, $ff +.asm_1ecc + ld a, [hli] + cp c + jr nz, .asm_1ecc + dec b + jr nz, .asm_1ecc + +.asm_1ed3 + ld d, h + ld e, l + ld a, [hl] + ld [$cf92], a + ret +; 1eda + +Function1eda: ; 1eda + call Function1cfd + ld bc, $002a + add hl, bc +.asm_1ee1 + inc de + ld a, [de] + cp $ff + ret z + ld [MenuSelection], a + push de + push hl + ld d, h + ld e, l + ld hl, $cf95 + call Function1efb + pop hl + ld de, $0028 + add hl, de + pop de + jr .asm_1ee1 +; 1efb + +Function1efb: ; 1efb + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 1eff + +Function1eff: ; 1eff + call Function1c10 + ld hl, $cfa8 + ld a, [$cf91] + bit 3, a + jr z, .asm_1f0e + set 3, [hl] + +.asm_1f0e + ld a, [$cf91] + bit 2, a + jr z, .asm_1f19 + set 5, [hl] + set 4, [hl] + +.asm_1f19 + ret +; 1f1a + + +Function1f1a: ; 1f1a + call Function1bd3 + ld hl, $cfa8 + and [hl] + jr Function1f2a +; 1f23 + +Function1f23: ; 1f23 + xor a + ld [$cf73], a + call Function1bc9 +; 1f2a + +Function1f2a: ; 1f2a + bit 0, a + jr nz, .asm_1f52 + bit 1, a + jr nz, .asm_1f6d + bit 3, a + jr nz, .asm_1f6d + bit 4, a + jr nz, .asm_1f44 + bit 5, a + jr nz, .asm_1f4b + xor a + ld [$cf73], a + jr .asm_1f57 + +.asm_1f44 + ld a, $10 + ld [$cf73], a + jr .asm_1f57 + +.asm_1f4b + ld a, $20 + ld [$cf73], a + jr .asm_1f57 + +.asm_1f52 + ld a, $1 + ld [$cf73], a + +.asm_1f57 + call Function1ebd + ld a, [$cfa9] + ld l, a + ld h, $0 + add hl, de + ld a, [hl] + ld [MenuSelection], a + ld a, [$cfa9] + ld [$cf88], a + and a + ret + +.asm_1f6d + ld a, $2 + ld [$cf73], a + ld a, $ff + ld [MenuSelection], a + scf + ret +; 1f79 + +Function1f79: ; 1f79 + push de + ld hl, $cf97 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [MenuSelection] + call GetNthString + ld d, h + ld e, l + pop hl + call PlaceString + ret +; 1f8d + +Function1f8d: ; 1f8d + push de + ld a, [MenuSelection] + call Function1fb1 + inc hl + inc hl + ld a, [hli] + ld d, [hl] + ld e, a + pop hl + call PlaceString + ret +; 1f9e + +Function1f9e: ; 1f9e + call Function1fb1 + inc hl + inc hl + ld a, [hli] + ld d, [hl] + ld e, a + ret +; 1fa7 + +Function1fa7: ; 1fa7 + ld a, [MenuSelection] + call Function1fb1 + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 1fb1 + +Function1fb1: ; 1fb1 + ld e, a + ld d, $0 + ld hl, $cf97 + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + add hl, de + add hl, de + add hl, de + ret +; 1fbf + +Function1fbf: ; 1fbf + ld hl, $cf71 + call Function1ff0 + ld hl, $cf81 + call Function1ff0 + ld hl, $cf91 + call Function1ff0 + ld hl, $cfa1 + call Function1ff0 + ld a, [rSVBK] + push af + ld a, $7 + ld [rSVBK], a + xor a + ld hl, $dfff + ld [hld], a + ld [hld], a + ld a, l + ld [$cf71], a + ld a, h + ld [$cf72], a + pop af + ld [rSVBK], a + ret +; 1ff0 + +Function1ff0: ; 1ff0 + ld bc, $0010 + xor a + call ByteFill + ret +; 1ff8 + +Function1ff8: ; 1ff8 + push af + and $3 + jr z, .asm_2007 + ld hl, $cf81 + bit 3, [hl] + jr nz, .asm_2007 + call PlayClickSFX + +.asm_2007 + pop af + ret +; 2009 + + +PlayClickSFX: ; 2009 + push de + ld de, SFX_READ_TEXT_2 + call StartSFX + pop de + ret +; 0x2012 + +Function2012: ; 2012 + call Function1d4f + call Functiona46 + call Function1c07 + ret +; 201c + +Function201c: ; 201c + ld [hBuffer], a + ld a, [hROMBank] + push af + ld a, [hBuffer] + rst Bankswitch + + call PlaceString + pop af + rst Bankswitch + + ret +; 202a + +Function202a: ; 202a + ld a, [hROMBank] + ld [$cf94], a + ld a, $9 + ld hl, $400e + rst FarCall + ld a, [$cf88] + ret +; 2039 + +Function2039: ; 2039 + ld a, [hROMBank] + ld [$cf94], a + ld a, $9 + ld hl, $4022 + rst FarCall + ld a, [$cf88] + ret +; 2048 + +Function2048: ; 2048 + ld a, [hROMBank] + ld [$cf94], a + ld a, $9 + ld hl, $403c + rst FarCall + ld a, [$cf88] + ret +; 2057 + +Function2057: ; 2057 + ld a, [hROMBank] + push af + ld a, $21 + rst Bankswitch + + call $42db + pop af + rst Bankswitch + + ret +; 2063 + diff --git a/engine/palettes.asm b/home/palettes.asm index accaa96b5..accaa96b5 100644 --- a/engine/palettes.asm +++ b/home/palettes.asm diff --git a/home/predef.asm b/home/predef.asm new file mode 100644 index 000000000..bd34a87a1 --- /dev/null +++ b/home/predef.asm @@ -0,0 +1,54 @@ +Predef: ; 2d83 +; Call predefined function a. +; Preserves bc, de, hl and f. + + ld [PredefID], a + ld a, [hROMBank] + push af + + ld a, BANK(GetPredefPointer) + rst Bankswitch + call GetPredefPointer ; stores hl in PredefTemp + +; Switch to the new function's bank + rst Bankswitch + +; Instead of directly calling stuff, +; push it to the stack in reverse. + + ld hl, .Return + push hl + +; Call the Predef function + ld a, [PredefAddress] + ld h, a + ld a, [PredefAddress + 1] + ld l, a + push hl + +; Get hl back + ld a, [PredefTemp] + ld h, a + ld a, [PredefTemp + 1] + ld l, a + ret + +.Return +; Clean up after the Predef call + + ld a, h + ld [PredefTemp], a + ld a, l + ld [PredefTemp+1], a + + pop hl + ld a, h + rst Bankswitch + + ld a, [PredefTemp] + ld h, a + ld a, [PredefTemp + 1] + ld l, a + ret +; 2dba + diff --git a/home/random.asm b/home/random.asm new file mode 100644 index 000000000..0f46da9e4 --- /dev/null +++ b/home/random.asm @@ -0,0 +1,76 @@ +Random: ; 2f8c +; A simple hardware-based random number generator (RNG). + +; Two random numbers are generated by adding and subtracting +; the divider to the respective values every time it's called. + +; The divider is a register that increments at a rate of 16384Hz. +; For comparison, the Game Boy operates at a clock speed of 4.2MHz. + +; Additionally, an equivalent function is executed in VBlank. + +; This leaves a with the value in hRandomSub. + + push bc + + ld a, [rDIV] + ld b, a + ld a, [hRandomAdd] + adc b + ld [hRandomAdd], a + + ld a, [rDIV] + ld b, a + ld a, [hRandomSub] + sbc b + ld [hRandomSub], a + + pop bc + ret +; 2f9f + +BattleRandom: ; 2f9f +; _BattleRandom lives in another bank. + +; It handles all RNG calls in the battle engine, allowing +; link battles to remain in sync using a shared PRNG. + + ld a, [hROMBank] + push af + ld a, BANK(_BattleRandom) + rst Bankswitch + + call _BattleRandom + + ld [$cfb6], a + pop af + rst Bankswitch + ld a, [$cfb6] + ret +; 2fb1 + + +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 Random + ld a, [hRandomAdd] + ld c, a + add b + jr c, .asm_2fbb + ld a, c + pop bc + call SimpleDivide + pop bc + ret +; 2fcb + diff --git a/home/rtc.asm b/home/rtc.asm new file mode 100644 index 000000000..91428d03b --- /dev/null +++ b/home/rtc.asm @@ -0,0 +1,25 @@ +RTC: ; 46f +; update time and time-sensitive palettes + +; rtc enabled? + ld a, [$c2ce] + cp 0 + ret z + + call UpdateTime + +; obj update on? + ld a, [VramState] + bit 0, a ; obj update + ret z + +TimeOfDayPals: ; 47e + callab _TimeOfDayPals + ret +; 485 + +UpdateTimePals: ; 485 + callab _UpdateTimePals + ret +; 48c + diff --git a/engine/serial.asm b/home/serial.asm index fca9d82c3..fca9d82c3 100644 --- a/engine/serial.asm +++ b/home/serial.asm diff --git a/home/sine.asm b/home/sine.asm new file mode 100644 index 000000000..09d06ca89 --- /dev/null +++ b/home/sine.asm @@ -0,0 +1,22 @@ +Cosine: ; 1b0f +; Return d * cos(a) in hl + add $10 ; 90 degrees + +Sine: ; 1b11 +; Return d * sin(a) in hl +; a is a signed 6-bit value. + + ld e, a + + ld a, [hROMBank] + push af + ld a, BANK(_Sine) + rst Bankswitch + + call _Sine + + pop af + rst Bankswitch + ret +; 1b1e + diff --git a/home/sram.asm b/home/sram.asm new file mode 100644 index 000000000..3c42e7618 --- /dev/null +++ b/home/sram.asm @@ -0,0 +1,34 @@ +GetSRAMBank: ; 2fcb +; load sram bank a +; if invalid bank, sram is disabled + cp NUM_SRAM_BANKS + jr c, OpenSRAM + jr CloseSRAM +; 2fd1 + +OpenSRAM: ; 2fd1 +; switch to sram bank a + push af +; latch clock data + ld a, 1 + ld [MBC3LatchClock], a +; enable sram/clock write + ld a, SRAM_ENABLE + ld [MBC3SRamEnable], a +; select sram bank + pop af + ld [MBC3SRamBank], a + ret +; 2fe1 + +CloseSRAM: ; 2fe1 + push af + ld a, SRAM_DISABLE +; reset clock latch for next time + ld [MBC3LatchClock], a +; disable sram/clock write + ld [MBC3SRamEnable], a + pop af + ret +; 2fec + diff --git a/home/string.asm b/home/string.asm new file mode 100644 index 000000000..a871b4d2a --- /dev/null +++ b/home/string.asm @@ -0,0 +1,39 @@ +InitString: ; 2ef6 +; Init a string of length c. + push hl + jr _InitString +; 2ef9 + +InitName: ; 2ef9 +; Intended for names, so this function is limited to ten characters. + push hl + ld c, 10 +; 2efc + +_InitString: ; 2efc +; if the string pointed to by hl is empty (defined as "zero or more spaces +; followed by a null"), then initialize it to the string pointed to by de. + push bc +.loop + ld a, [hli] + cp "@" + jr z, .blank + cp " " + jr nz, .notblank + dec c + jr nz, .loop +.blank + pop bc + ld l, e + ld h, d + pop de + ld b, 0 + inc c + call CopyBytes + ret +.notblank + pop bc + pop hl + ret +; 2f17 + diff --git a/engine/text.asm b/home/text.asm index ccc8623cf..e010de6d4 100644 --- a/engine/text.asm +++ b/home/text.asm @@ -155,6 +155,7 @@ Function1052: ; 1052 PrintText: ; 1057 call Function106c +Function105a: ; 105a push hl hlcoord 1, 14 ld bc, 18 + 3<<8 @@ -1053,7 +1054,7 @@ Text_0A: ; 14ed push bc call GetJoypadPublic ld a, [hJoyDown] - and BUTTON_A | BUTTON_B + and A_BUTTON | B_BUTTON jr nz, .asm_14fd ld c, 30 call DelayFrames @@ -1135,7 +1136,7 @@ Text_0C: ; 1543 ld [hli], a call GetJoypadPublic ld a, [hJoyDown] - and BUTTON_A | BUTTON_B + and A_BUTTON | B_BUTTON jr nz, .asm_155a ld c, 10 call DelayFrames diff --git a/engine/time.asm b/home/time.asm index fff52b173..fff52b173 100644 --- a/engine/time.asm +++ b/home/time.asm diff --git a/engine/vblank.asm b/home/vblank.asm index 44b3195f8..71114964e 100644 --- a/engine/vblank.asm +++ b/home/vblank.asm @@ -119,9 +119,9 @@ VBlank0: ; 2b1 call UpdateBGMap ; these have their own timing checks - call SafeLoadTiles - call SafeLoadTiles2 - call SafeTileAnimation + call Serve2bppRequest + call Serve1bppRequest + call AnimateTileset .doneframeaction ; oam update off? @@ -131,8 +131,8 @@ VBlank0: ; 2b1 ; update oam by dma transfer call hPushOAM -; 403f: -; ld a, $c4 +; @PushOAM: +; ld a, Sprites >> 8 ; ld [rDMA], a ; ld a, $28 ; .loop @@ -230,11 +230,11 @@ VBlank1: ; 337 ; these have their own timing checks call UpdateBGMap - call LoadTiles + call Serve2bppRequest@VBlank ; update oam by dma transfer call hPushOAM -; 403f: -; ld a, $c4 +; @PushOAM: +; ld a, Sprites >> 8 ; ld [rDMA], a ; ld a, $28 ; .loop @@ -338,12 +338,12 @@ VBlank3: ; 396 jr c, .vblankoccurred ; else call UpdateBGMap - call LoadTiles + call Serve2bppRequest@VBlank ; update oam by dma transfer call hPushOAM -; 403f: -; ld a, $c4 ; Sprites / $100 +; @PushOAM: +; ld a, Sprites >> 8 ; ld [rDMA], a ; ld a, $28 ; .loop @@ -410,12 +410,12 @@ VBlank4: ; 3df ld [$ff8a], a call UpdateBGMap - call SafeLoadTiles + call Serve2bppRequest ; update oam by dma transfer call hPushOAM -; 403f: -; ld a, $c4 +; @PushOAM: +; ld a, Sprites >> 8 ; ld [rDMA], a ; ld a, $28 ; .loop @@ -465,7 +465,7 @@ VBlank5: ; 400 jr c, .vblankoccurred call UpdateBGMap - call SafeLoadTiles + call Serve2bppRequest .vblankoccurred ; tell other fns vblank happened @@ -521,8 +521,8 @@ VBlank6: ; 436 call UpdateCGBPals jr c, .vblankoccurred - call SafeLoadTiles - call SafeLoadTiles2 + call Serve2bppRequest + call Serve1bppRequest call DMATransfer .vblankoccurred diff --git a/home/video.asm b/home/video.asm new file mode 100644 index 000000000..0d0aa272d --- /dev/null +++ b/home/video.asm @@ -0,0 +1,487 @@ +; Functions dealing with VRAM. + +DMATransfer: ; 15d8 +; Return carry if the transfer is completed. + + ld a, [hDMATransfer] + and a + ret z + +; Start transfer + ld [rHDMA5], a + +; Execution is halted until the transfer is complete. + + xor a + ld [hDMATransfer], a + scf + ret +; 15e3 + + +UpdateBGMapBuffer: ; 15e3 +; Copy [$ffdc] 16x8 tiles from BGMapBuffer +; to bg map addresses in BGMapBufferPtrs. + +; [$ffdc] must be even since this is done in pairs. + +; Return carry on success. + + ld a, [hBGMapUpdate] + and a + ret z + + ld a, [rVBK] + push af + ld [hSPBuffer], sp + + ld hl, BGMapBufferPtrs + ld sp, hl + +; We can now pop the addresses of affected spots on the BG Map + + ld hl, BGMapPalBuffer + ld de, BGMapBuffer + + +.next +; Copy a pair of 16x8 blocks (one 16x16 block) + +rept 2 +; Get our BG Map address + pop bc + +; Palettes + ld a, 1 + ld [rVBK], a + + ld a, [hli] + ld [bc], a + inc c + ld a, [hli] + ld [bc], a + dec c + +; Tiles + ld a, 0 + ld [rVBK], a + + ld a, [de] + inc de + ld [bc], a + inc c + ld a, [de] + inc de + ld [bc], a +endr + +; We've done 2 16x8 blocks + ld a, [$ffdc] + dec a + dec a + ld [$ffdc], a + + jr nz, .next + + + ld a, [hSPBuffer] + ld l, a + ld a, [hSPBuffer + 1] + ld h, a + ld sp, hl + + pop af + ld [rVBK], a + + xor a + ld [hBGMapUpdate], a + scf + ret +; 163a + + +WaitTop: ; 163a +; Wait until the top third of the BG Map is being updated. + + ld a, [hBGMapMode] + and a + ret z + + ld a, [hBGMapThird] + and a + jr z, .done + + call DelayFrame + jr WaitTop + +.done + xor a + ld [hBGMapMode], a + ret +; 164c + + +UpdateBGMap: ; 164c +; Update the BG Map, in thirds, from TileMap and AttrMap. + + ld a, [hBGMapMode] + and a + ret z + +; BG Map 0 + dec a ; 1 + jr z, .Tiles + dec a ; 2 + jr z, .Attr + +; BG Map 1 + dec a + + ld a, [hBGMapAddress] + ld l, a + ld a, [hBGMapAddress + 1] + ld h, a + push hl + + xor a + ld [hBGMapAddress], a + ld a, VBGMap1 >> 8 + ld [hBGMapAddress + 1], a + + ld a, [hBGMapMode] + push af + cp 3 + call z, .Tiles + pop af + cp 4 + call z, .Attr + + pop hl + ld a, l + ld [hBGMapAddress], a + ld a, h + ld [hBGMapAddress + 1], a + ret + + +.Attr + ld a, 1 + ld [rVBK], a + + ld hl, AttrMap + call .update + + ld a, 0 + ld [rVBK], a + ret + + +.Tiles + ld hl, TileMap + + +.update + ld [hSPBuffer], sp + +; Which third? + ld a, [hBGMapThird] + and a ; 0 + jr z, .top + dec a ; 1 + jr z, .middle + ; 2 + + +THIRD_HEIGHT EQU SCREEN_HEIGHT / 3 + + +.bottom + ld de, 2 * THIRD_HEIGHT * SCREEN_WIDTH + add hl, de + ld sp, hl + + ld a, [hBGMapAddress + 1] + ld h, a + ld a, [hBGMapAddress] + ld l, a + + ld de, 2 * THIRD_HEIGHT * BG_MAP_WIDTH + add hl, de + +; Next time: top third + xor a + jr .start + + +.middle + ld de, THIRD_HEIGHT * SCREEN_WIDTH + add hl, de + ld sp, hl + + ld a, [hBGMapAddress + 1] + ld h, a + ld a, [hBGMapAddress] + ld l, a + + ld de, THIRD_HEIGHT * BG_MAP_WIDTH + add hl, de + +; Next time: bottom third + ld a, 2 + jr .start + + +.top + ld sp, hl + + ld a, [hBGMapAddress + 1] + ld h, a + ld a, [hBGMapAddress] + ld l, a + +; Next time: middle third + ld a, 1 + + +.start +; Which third to update next time + ld [hBGMapThird], a + +; Rows of tiles in a third + ld a, SCREEN_HEIGHT / 3 + +; Discrepancy between TileMap and BGMap + ld bc, BG_MAP_WIDTH - (SCREEN_WIDTH - 1) + + +.row +; Copy a row of 20 tiles +rept SCREEN_WIDTH / 2 - 1 + pop de + ld [hl], e + inc l + ld [hl], d + inc l +endr + pop de + ld [hl], e + inc l + ld [hl], d + + add hl, bc + dec a + jr nz, .row + + + ld a, [hSPBuffer] + ld l, a + ld a, [hSPBuffer + 1] + ld h, a + ld sp, hl + ret +; 170a + + +Serve1bppRequest: ; 170a +; Only call during the first fifth of VBlank + + ld a, [Requested1bpp] + and a + ret z + +; Back out if we're too far into VBlank + ld a, [rLY] + cp 144 + ret c + cp 146 + ret nc + +; Copy [Requested1bpp] 1bpp tiles from [Requested1bppSource] to [Requested1bppDest] + + ld [hSPBuffer], sp + +; Source + ld hl, Requested1bppSource + ld a, [hli] + ld h, [hl] + ld l, a + ld sp, hl + +; Destination + ld hl, Requested1bppDest + ld a, [hli] + ld h, [hl] + ld l, a + +; # tiles to copy + ld a, [Requested1bpp] + ld b, a + + xor a + ld [Requested1bpp], a + +.next + +rept 3 + pop de + ld [hl], e + inc l + ld [hl], e + inc l + ld [hl], d + inc l + ld [hl], d + inc l +endr + pop de + ld [hl], e + inc l + ld [hl], e + inc l + ld [hl], d + inc l + ld [hl], d + + inc hl + dec b + jr nz, .next + + + ld a, l + ld [Requested1bppDest], a + ld a, h + ld [Requested1bppDest + 1], a + + ld [Requested1bppSource], sp + + ld a, [hSPBuffer] + ld l, a + ld a, [hSPBuffer + 1] + ld h, a + ld sp, hl + ret +; 1769 + + +Serve2bppRequest: ; 1769 +; Only call during the first fifth of VBlank + + ld a, [Requested2bpp] + and a + ret z + +; Back out if we're too far into VBlank + ld a, [rLY] + cp 144 + ret c + cp 146 + ret nc + jr _Serve2bppRequest + + +Serve2bppRequest@VBlank: ; 1778 + + ld a, [Requested2bpp] + and a + ret z + +_Serve2bppRequest: ; 177d +; Copy [Requested2bpp] 2bpp tiles from [Requested2bppSource] to [Requested2bppDest] + + ld [hSPBuffer], sp + +; Source + ld hl, Requested2bppSource + ld a, [hli] + ld h, [hl] + ld l, a + ld sp, hl + +; Destination + ld hl, Requested2bppDest + ld a, [hli] + ld h, [hl] + ld l, a + +; # tiles to copy + ld a, [Requested2bpp] + ld b, a + + xor a + ld [Requested2bpp], a + +.next + +rept 7 + pop de + ld [hl], e + inc l + ld [hl], d + inc l +endr + pop de + ld [hl], e + inc l + ld [hl], d + + inc hl + dec b + jr nz, .next + + + ld a, l + ld [Requested2bppDest], a + ld a, h + ld [Requested2bppDest + 1], a + + ld [Requested2bppSource], sp + + ld a, [hSPBuffer] + ld l, a + ld a, [hSPBuffer + 1] + ld h, a + ld sp, hl + ret +; 17d3 + + +AnimateTileset: ; 17d3 +; Only call during the first fifth of VBlank + + ld a, [$ffde] + and a + ret z + +; Back out if we're too far into VBlank + ld a, [rLY] + cp 144 + ret c + cp 151 + ret nc + + ld a, [hROMBank] + push af + ld a, BANK(_AnimateTileset) + rst Bankswitch + + ld a, [rSVBK] + push af + ld a, 1 + ld [rSVBK], a + + ld a, [rVBK] + push af + ld a, 0 + ld [rVBK], a + + call _AnimateTileset + + pop af + ld [rVBK], a + pop af + ld [rSVBK], a + pop af + rst Bankswitch + ret +; 17ff + diff --git a/interrupts.asm b/interrupts.asm new file mode 100644 index 000000000..2da426e96 --- /dev/null +++ b/interrupts.asm @@ -0,0 +1,17 @@ +; Game Boy hardware interrupts + +SECTION "vblank",ROM0[$40] + jp VBlank + +SECTION "lcd",ROM0[$48] + jp LCD + +SECTION "timer",ROM0[$50] + jp Timer + +SECTION "serial",ROM0[$58] + jp Serial + +SECTION "joypad",ROM0[$60] + jp JoypadInt + diff --git a/items/marts.asm b/items/marts.asm new file mode 100644 index 000000000..16a0695c4 --- /dev/null +++ b/items/marts.asm @@ -0,0 +1,443 @@ +Marts: ; 160a9 + dw Mart0 + dw Mart1 + dw Mart2 + dw Mart3 + dw Mart4 + dw Mart5 + dw Mart6 + dw Mart7 + dw Mart8 + dw Mart9 + dw Mart10 + dw Mart11 + dw Mart12 + dw Mart13 + dw Mart14 + dw Mart15 + dw Mart16 + dw Mart17 + dw Mart18 + dw Mart19 + dw Mart20 + dw Mart21 + dw Mart22 + dw Mart23 + dw Mart24 + dw Mart25 + dw Mart26 + dw Mart27 + dw Mart28 + dw Mart29 + dw Mart30 + dw Mart31 + dw Mart32 + dw Mart33 +MartsEnd +; 160ed + + +Mart0: ; 160ed + db 4 ; # items + db POTION + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db $ff +; 160f3 + +Mart1: ; 160f3 + db 5 ; # items + db POKE_BALL + db POTION + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db $ff +; 160fa + +Mart2: ; 160fa + db 10 ; # items + db POKE_BALL + db POTION + db ESCAPE_ROPE + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db X_DEFEND + db X_ATTACK + db X_SPEED + db FLOWER_MAIL + db $ff +; 16106 + +Mart3: ; 16106 + db 9 ; # items + db CHARCOAL + db POKE_BALL + db POTION + db SUPER_POTION + db ESCAPE_ROPE + db REPEL + db ANTIDOTE + db PARLYZ_HEAL + db FLOWER_MAIL + db $ff +; 16111 + +Mart4: ; 16111 + db 5 ; # items + db POTION + db SUPER_POTION + db HYPER_POTION + db FULL_HEAL + db REVIVE + db $ff +; 16118 + +Mart5: ; 16118 + db 7 ; # items + db POTION + db SUPER_POTION + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db BURN_HEAL + db ICE_HEAL + db $ff +; 16121 + +Mart6: ; 16121 + db 8 ; # items + db POKE_BALL + db GREAT_BALL + db ESCAPE_ROPE + db REPEL + db REVIVE + db FULL_HEAL + db POKE_DOLL + db FLOWER_MAIL + db $ff +; 1612b + +Mart7: ; 1612b + db 7 ; # items + db X_SPEED + db X_SPECIAL + db X_DEFEND + db X_ATTACK + db DIRE_HIT + db GUARD_SPEC + db X_ACCURACY + db $ff +; 16134 + +Mart8: ; 16134 + db 5 ; # items + db PROTEIN + db IRON + db CARBOS + db CALCIUM + db HP_UP + db $ff +; 1613b + +Mart9: ; 1613b + db 3 ; # items + db TM_41 + db TM_48 + db TM_33 + db $ff +; 16140 + +Mart10: ; 16140 + db 4 ; # items + db TM_41 + db TM_48 + db TM_33 + db TM_02 + db $ff +; 16146 + +Mart11: ; 16146 + db 4 ; # items + db TM_41 + db TM_48 + db TM_33 + db TM_08 + db $ff +; 1614c + +Mart12: ; 1614c + db 5 ; # items + db TM_41 + db TM_48 + db TM_33 + db TM_02 + db TM_08 + db $ff +; 16153 + +Mart13: ; 16153 + db 9 ; # items + db GREAT_BALL + db SUPER_POTION + db HYPER_POTION + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db ICE_HEAL + db SUPER_REPEL + db SURF_MAIL + db $ff +; 1615e + +Mart14: ; 1615e + db 10 ; # items + db POKE_BALL + db GREAT_BALL + db POTION + db SUPER_POTION + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db BURN_HEAL + db ICE_HEAL + db REVIVE + db $ff +; 1616a + +Mart15: ; 1616a + db 4 ; # items + db TINYMUSHROOM + db SLOWPOKETAIL + db POKE_BALL + db POTION + db $ff +; 16170 + +Mart16: ; 16170 + db 9 ; # items + db RAGECANDYBAR + db GREAT_BALL + db SUPER_POTION + db HYPER_POTION + db ANTIDOTE + db PARLYZ_HEAL + db SUPER_REPEL + db REVIVE + db FLOWER_MAIL + db $ff +; 1617b + +Mart17: ; 1617b + db 9 ; # items + db GREAT_BALL + db ULTRA_BALL + db HYPER_POTION + db MAX_POTION + db FULL_HEAL + db REVIVE + db MAX_REPEL + db X_DEFEND + db X_ATTACK + db $ff +; 16186 + +Mart18: ; 16186 + db 9 ; # items + db ULTRA_BALL + db HYPER_POTION + db FULL_HEAL + db REVIVE + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db BURN_HEAL + db FLOWER_MAIL + db $ff +; 16191 + +Mart19: ; 16191 + db 7 ; # items + db GREAT_BALL + db SUPER_POTION + db SUPER_REPEL + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db BURN_HEAL + db $ff +; 1619a + +Mart20: ; 1619a + db 9 ; # items + db GREAT_BALL + db ULTRA_BALL + db SUPER_POTION + db SUPER_REPEL + db FULL_HEAL + db X_DEFEND + db X_ATTACK + db DIRE_HIT + db SURF_MAIL + db $ff +; 161a5 + +Mart21: ; 161a5 + db 8 ; # items + db GREAT_BALL + db POTION + db SUPER_POTION + db MAX_REPEL + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db BURN_HEAL + db $ff +; 161af + +Mart22: ; 161af + db 8 ; # items + db ULTRA_BALL + db SUPER_POTION + db HYPER_POTION + db REVIVE + db PARLYZ_HEAL + db AWAKENING + db BURN_HEAL + db LITEBLUEMAIL + db $ff +; 161b9 + +Mart23: ; 161b9 + db 7 ; # items + db POTION + db SUPER_POTION + db HYPER_POTION + db MAX_POTION + db REVIVE + db SUPER_REPEL + db MAX_REPEL + db $ff +; 161c2 + +Mart24: ; 161c2 + db 10 ; # items + db POKE_BALL + db GREAT_BALL + db ULTRA_BALL + db ESCAPE_ROPE + db FULL_HEAL + db ANTIDOTE + db BURN_HEAL + db ICE_HEAL + db AWAKENING + db PARLYZ_HEAL + db $ff +; 161ce + +Mart25: ; 161ce + db 5 ; # items + db TM_10 + db TM_11 + db TM_17 + db TM_18 + db TM_37 + db $ff +; 161d5 + +Mart26: ; 161d5 + db 3 ; # items + db POKE_DOLL + db LOVELY_MAIL + db SURF_MAIL + db $ff +; 161da + +Mart27: ; 161da + db 5 ; # items + db HP_UP + db PROTEIN + db IRON + db CARBOS + db CALCIUM + db $ff +; 161e1 + +Mart28: ; 161e1 + db 7 ; # items + db X_ACCURACY + db GUARD_SPEC + db DIRE_HIT + db X_ATTACK + db X_DEFEND + db X_SPEED + db X_SPECIAL + db $ff +; 161ea + +Mart29: ; 161ea + db 7 ; # items + db GREAT_BALL + db ULTRA_BALL + db SUPER_POTION + db HYPER_POTION + db FULL_HEAL + db MAX_REPEL + db FLOWER_MAIL + db $ff +; 161f3 + +Mart30: ; 161f3 + db 8 ; # items + db GREAT_BALL + db ULTRA_BALL + db HYPER_POTION + db MAX_POTION + db FULL_HEAL + db X_ATTACK + db X_DEFEND + db FLOWER_MAIL + db $ff +; 161fd + +Mart31: ; 161fd + db 6 ; # items + db POKE_DOLL + db FRESH_WATER + db SODA_POP + db LEMONADE + db REPEL + db PORTRAITMAIL + db $ff +; 16205 + +Mart32: ; 16205 + db 7 ; # items + db ULTRA_BALL + db MAX_REPEL + db HYPER_POTION + db MAX_POTION + db FULL_RESTORE + db REVIVE + db FULL_HEAL + db $ff +; 1620e + +Mart33: ; 1620e + db 4 ; # items + db ENERGYPOWDER + db ENERGY_ROOT + db HEAL_POWDER + db REVIVAL_HERB + db $ff +; 16214 + +DefaultMart: ; 16214 + db 2 ; # items + db POKE_BALL + db POTION + db $ff +; 16218 + diff --git a/macros.asm b/macros.asm new file mode 100644 index 000000000..e5291ade5 --- /dev/null +++ b/macros.asm @@ -0,0 +1,95 @@ +; rgbds macros + +dwb: MACRO + dw \1 + db \2 + ENDM + +dbw: MACRO + db \1 + dw \2 + ENDM + +dn: MACRO + db \1 << 4 + \2 + ENDM + +dt: MACRO ; three-byte (big-endian) + db (\1 >> 16) & $ff + db (\1 >> 8) & $ff + db \1 & $ff + ENDM + +bigdw: MACRO ; big-endian word + dw ((\1)/$100) + (((\1)&$ff)*$100) + ENDM + +callab: MACRO ; address, bank + ld hl, \1 + ld a, BANK(\1) + rst FarCall + ENDM + +callba: MACRO ; bank, address + ld a, BANK(\1) + ld hl, \1 + rst FarCall + ENDM + +TX_RAM: MACRO + db 1 + dw \1 + ENDM + +TX_FAR: MACRO + db $16 + dw \1 + db BANK(\1) + ENDM + +RGB: MACRO + dw ((\3 << 10) | (\2 << 5) | (\1)) + ENDM + +note: MACRO + db \1 + ENDM + +; It's better to use *coord than FuncCoord. +FuncCoord: MACRO +Coord = $c4a0 + 20 * \2 + \1 + ENDM + +bccoord: MACRO + FuncCoord \1, \2 + ld bc, Coord + ENDM + +decoord: MACRO + FuncCoord \1, \2 + ld de, Coord + ENDM + +hlcoord: MACRO + FuncCoord \1, \2 + ld hl, Coord + ENDM + + +; pic animations +frame: MACRO + db \1 + db \2 + ENDM +setrepeat: MACRO + db $fe + db \1 + ENDM +dorepeat: MACRO + db $fd + db \1 + ENDM +endanim: MACRO + db $ff + ENDM + @@ -1,1370 +1,35 @@ SECTION "bank0",ROM0 -SECTION "rst0",ROM0[$0] - di - jp Start - -SECTION "rst8",ROM0[$8] ; FarCall - jp FarCall_hl - -SECTION "rst10",ROM0[$10] ; Bankswitch - ld [hROMBank], a - ld [MBC3RomBank], a - ret - -SECTION "rst18",ROM0[$18] ; Unused - rst $38 - -SECTION "rst20",ROM0[$20] ; Unused - rst $38 - -SECTION "rst28",ROM0[$28] ; JumpTable - push de - ld e, a - ld d, 0 - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - pop de - jp [hl] - -; rst30 is midst rst28 -SECTION "rst38",ROM0[$38] ; Unused - rst $38 +INCLUDE "rst.asm" -SECTION "vblank",ROM0[$40] ; vblank interrupt - jp VBlank +INCLUDE "interrupts.asm" -SECTION "lcd",ROM0[$48] ; lcd interrupt - jp LCD -SECTION "timer",ROM0[$50] ; timer interrupt - jp Timer +SECTION "header",ROM0[$100] -SECTION "serial",ROM0[$58] ; serial interrupt - jp Serial - -SECTION "joypad",ROM0[$60] ; joypad interrupt - jp JoypadInt - -SECTION "romheader",ROM0[$100] Start: nop jp _Start -SECTION "start",ROM0[$150] - -INCLUDE "engine/init.asm" - - -INCLUDE "engine/vblank.asm" - - -DelayFrame: ; 45a -; Wait for one frame - ld a, 1 - ld [VBlankOccurred], a - -; Wait for the next VBlank, halting to conserve battery -.halt - halt ; rgbasm adds a nop after this instruction by default - ld a, [VBlankOccurred] - and a - jr nz, .halt - ret -; 468 - - -DelayFrames: ; 468 -; Wait c frames - call DelayFrame - dec c - jr nz, DelayFrames - ret -; 46f - - -RTC: ; 46f -; update time and time-sensitive palettes - -; rtc enabled? - ld a, [$c2ce] - cp 0 - ret z - - call UpdateTime - -; obj update on? - ld a, [VramState] - bit 0, a ; obj update - ret z - -TimeOfDayPals: ; 47e - callab _TimeOfDayPals - ret -; 485 - - -Function485: ; 485 - callab UpdateTimePals - ret -; 48c - - -INCLUDE "engine/fade.asm" - - -INCLUDE "engine/lcd.asm" - - -INCLUDE "engine/time.asm" - - -INCLUDE "engine/serial.asm" - - -INCLUDE "engine/joypad.asm" - - -INCLUDE "engine/decompress.asm" - - -INCLUDE "engine/palettes.asm" - - -INCLUDE "engine/copy.asm" - - -INCLUDE "engine/text.asm" - - -DMATransfer: ; 15d8 -; DMA transfer -; return carry if successful - -; anything to transfer? - ld a, [hDMATransfer] - and a - ret z -; start transfer - ld [rHDMA5], a -; indicate that transfer has occurred - xor a - ld [hDMATransfer], a -; successful transfer - scf - ret -; 15e3 - - -UpdateBGMapBuffer: ; 15e3 -; write [$ffdc] 16x8 tiles from BGMapBuffer to bg map addresses in BGMapBufferPtrs -; [$ffdc] must be even since this is done in 16x16 blocks - -; return carry if successful - -; any tiles to update? - ld a, [hBGMapUpdate] - and a - ret z -; save wram bank - ld a, [rVBK] - push af -; save sp - ld [hSPBuffer], sp - -; temp stack - ld hl, BGMapBufferPtrs - ld sp, hl -; we can now pop the addresses of affected spots in bg map - -; get pal and tile buffers - ld hl, BGMapPalBuffer - ld de, BGMapBuffer - -.loop -; draw one 16x16 block - -; top half: - -; get bg map address - pop bc -; update palettes - ld a, $1 - ld [rVBK], a -; tile 1 - ld a, [hli] - ld [bc], a - inc c -; tile 2 - ld a, [hli] - ld [bc], a - dec c -; update tiles - ld a, $0 - ld [rVBK], a -; tile 1 - ld a, [de] - inc de - ld [bc], a - inc c -; tile 2 - ld a, [de] - inc de - ld [bc], a - -; bottom half: - -; get bg map address - pop bc -; update palettes - ld a, $1 - ld [rVBK], a -; tile 1 - ld a, [hli] - ld [bc], a - inc c -; tile 2 - ld a, [hli] - ld [bc], a - dec c -; update tiles - ld a, $0 - ld [rVBK], a -; tile 1 - ld a, [de] - inc de - ld [bc], a - inc c -; tile 2 - ld a, [de] - inc de - ld [bc], a - -; we've done 2 16x8 blocks - ld a, [$ffdc] - dec a - dec a - ld [$ffdc], a - -; if there are more left, get the next 16x16 block - jr nz, .loop - - -; restore sp - ld a, [hSPBuffer] - ld l, a - ld a, [$ffda] - ld h, a - ld sp, hl - -; restore vram bank - pop af - ld [rVBK], a - -; we don't need to update bg map until new tiles are loaded - xor a - ld [hBGMapUpdate], a - -; successfully updated bg map - scf - ret -; 163a - - -WaitTop: ; 163a - ld a, [hBGMapMode] - and a - ret z - -; wait until top third of bg map can be updated - ld a, [hBGMapThird] - and a - jr z, .quit - - call DelayFrame - jr WaitTop - -.quit - xor a - ld [hBGMapMode], a - ret -; 164c - - -UpdateBGMap: ; 164c -; get mode - ld a, [hBGMapMode] - and a - ret z - -; don't save bg map address - dec a ; 1 - jr z, .tiles - dec a ; 2 - jr z, .attr - dec a ; ? - -; save bg map address - ld a, [hBGMapAddress] - ld l, a - ld a, [$ffd7] - ld h, a - push hl - -; bg map 1 (VBGMap1) - xor a - ld [hBGMapAddress], a - ld a, $9c - ld [$ffd7], a - -; get mode again - ld a, [hBGMapMode] - push af - cp 3 - call z, .tiles - pop af - cp 4 - call z, .attr - -; restore bg map address - pop hl - ld a, l - ld [hBGMapAddress], a - ld a, h - ld [$ffd7], a - ret - -.attr -; switch vram banks - ld a, 1 - ld [rVBK], a -; bg map 1 - ld hl, AttrMap - call .getthird -; restore vram bank - ld a, 0 - ld [rVBK], a - ret - -.tiles -; bg map 0 - ld hl, TileMap - -.getthird -; save sp - ld [hSPBuffer], sp - -; # tiles to move down * 6 (which third?) - ld a, [hBGMapThird] - and a ; 0 - jr z, .top - dec a ; 1 - jr z, .middle - -; .bottom ; 2 -; move 12 tiles down - ld de, $00f0 ; TileMap(0,12) - TileMap - add hl, de -; stack now points to source - ld sp, hl -; get bg map address - ld a, [$ffd7] - ld h, a - ld a, [hBGMapAddress] - ld l, a -; move 12 tiles down - ld de, $0180 ; bgm(0,12) - add hl, de -; start at top next time - xor a - jr .start - -.middle -; move 6 tiles down - ld de, $0078 ; TileMap(0,6) - TileMap - add hl, de -; stack now points to source - ld sp, hl -; get bg map address - ld a, [$ffd7] - ld h, a - ld a, [hBGMapAddress] - ld l, a -; move 6 tiles down - ld de, $00c0 ; bgm(0,6) - add hl, de -; start at bottom next time - ld a, 2 - jr .start - -.top -; stack now points to source - ld sp, hl -; get bg map address - ld a, [$ffd7] - ld h, a - ld a, [hBGMapAddress] - ld l, a -; start at middle next time - ld a, 1 - -.start -; which third to draw next update - ld [hBGMapThird], a -; # rows per third - ld a, 6 ; SCREEN_HEIGHT / 3 -; # tiles from the edge of the screen to the next row - ld bc, $000d ; BG_WIDTH + 1 - SCREEN_WIDTH - -.row -; write a row of 20 tiles -rept 9 - pop de - ld [hl], e - inc l - ld [hl], d - inc l -endr - pop de - ld [hl], e - inc l - ld [hl], d -; next row - add hl, bc -; done? - dec a - jr nz, .row - -; restore sp - ld a, [hSPBuffer] - ld l, a - ld a, [$ffda] - ld h, a - ld sp, hl - ret -; 170a - - -SafeLoadTiles2: ; 170a -; only execute during first fifth of vblank -; any tiles to draw? - ld a, [$cf6c] - and a - ret z -; abort if too far into vblank - ld a, [rLY] -; ly = 144-145? - cp 144 - ret c - cp 146 - ret nc - -GetTiles2: ; 1717 -; load [$cf6c] tiles from [$cf6d-e] to [$cf6f-70] -; save sp - ld [hSPBuffer], sp - -; sp = [$cf6d-e] tile source - ld hl, $cf6d - ld a, [hli] - ld h, [hl] - ld l, a - ld sp, hl - -; hl = [$cf6f-70] tile dest - ld hl, $cf6f - ld a, [hli] - ld h, [hl] - ld l, a - -; # tiles to draw - ld a, [$cf6c] - ld b, a - -; clear tile queue - xor a - ld [$cf6c], a - -.loop -; put 1 tile (16 bytes) into hl from sp - -rept 3 - pop de - ld [hl], e - inc l - ld [hl], e - inc l - ld [hl], d - inc l - ld [hl], d - inc l -endr - pop de - ld [hl], e - inc l - ld [hl], e - inc l - ld [hl], d - inc l - ld [hl], d -; next tile - inc hl -; done? - dec b - jr nz, .loop - -; update $cf6f-70 - ld a, l - ld [$cf6f], a - ld a, h - ld [$cf70], a - -; update $cf6d-e - ld [$cf6d], sp - -; restore sp - ld a, [hSPBuffer] - ld l, a - ld a, [$ffda] - ld h, a - ld sp, hl - ret -; 1769 - - -SafeLoadTiles: ; 1769 -; only execute during first fifth of vblank -; any tiles to draw? - ld a, [$cf67] - and a - ret z -; abort if too far into vblank - ld a, [rLY] -; ly = 144-145? - cp 144 - ret c - cp 146 - ret nc - jr GetTiles - -LoadTiles: ; 1778 -; use only if time is allotted -; any tiles to draw? - ld a, [$cf67] - and a - ret z -; get tiles - -GetTiles: ; 177d -; load [$cf67] tiles from [$cf68-9] to [$cf6a-b] -; save sp - ld [hSPBuffer], sp - -; sp = [$cf68-9] tile source - ld hl, $cf68 - ld a, [hli] - ld h, [hl] - ld l, a - ld sp, hl - -; hl = [$cf6a-b] tile dest - ld hl, $cf6a - ld a, [hli] - ld h, [hl] - ld l, a - -; # tiles to draw - ld a, [$cf67] - ld b, a -; clear tile queue - xor a - ld [$cf67], a - -.loop -; put 1 tile (16 bytes) into hl from sp -rept 7 - pop de - ld [hl], e - inc l - ld [hl], d - inc l -endr - pop de - ld [hl], e - inc l - ld [hl], d -; next tile - inc hl -; done? - dec b - jr nz, .loop - -; update $cf6a-b - ld a, l - ld [$cf6a], a - ld a, h - ld [$cf6b], a - -; update $cf68-9 - ld [$cf68], sp - -; restore sp - ld a, [hSPBuffer] - ld l, a - ld a, [$ffda] - ld h, a - ld sp, hl - ret -; 17d3 - - -SafeTileAnimation: ; 17d3 -; call from vblank - - ld a, [$ffde] - and a - ret z - -; abort if too far into vblank - ld a, [rLY] -; ret unless ly = 144-150 - cp 144 - ret c - cp 151 - ret nc - -; save affected banks -; switch to new banks - ld a, [hROMBank] - push af ; save bank - ld a, BANK(DoTileAnimation) - rst Bankswitch ; bankswitch - - ld a, [rSVBK] - push af ; save wram bank - ld a, $1 ; wram bank 1 - ld [rSVBK], a - - ld a, [rVBK] - push af ; save vram bank - ld a, $0 ; vram bank 0 - ld [rVBK], a - -; take care of tile animation queue - call DoTileAnimation - -; restore affected banks - pop af - ld [rVBK], a - pop af - ld [rSVBK], a - pop af - rst Bankswitch ; bankswitch - ret -; 17ff - - -GetSpritePalette: ; 17ff - push hl - push de - push bc - ld c, a - callba _GetSpritePalette - ld a, c - pop bc - pop de - pop hl - ret -; 180e - -Function180e: ; 180e - push hl - push bc - ld hl, $d156 - ld c, $1f - ld b, a - ld a, [hConnectionStripLength] - cp $0 - jr z, .asm_182b - ld a, b -.asm_181d - cp [hl] - jr z, .asm_1830 - inc hl - inc hl - dec c - jr nz, .asm_181d - ld a, [$d155] - scf - jr .asm_1833 - -.asm_182b - ld a, [$d155] - jr .asm_1833 - -.asm_1830 - inc hl - xor a - ld a, [hl] - -.asm_1833 - pop bc - pop hl - ret -; 1836 - -Function1836: ; 1836 - push de - push hl - - ld b, a - ld a, [hROMBank] - push af - ld a, BANK(Function142a7) - rst Bankswitch - - ld a, b - call Function142a7 - ld c, a - - pop de - ld a, d - rst Bankswitch - - pop hl - pop de - ret -; 184a - - - -Function184a: ; 184a - ld a, [StandingTile] - call GetTileCollision - ld b, a - ret -; 1852 - -Function1852: ; 1852 - ld a, [StandingTile] - call GetTileCollision - sub 1 - ret z - and a - ret -; 185d - - -GetTileCollision: ; 185d -; Get the collision type of tile a. - - push de - push hl - - ld hl, TileCollisionTable - ld e, a - ld d, 0 - add hl, de - - ld a, [hROMBank] - push af - ld a, BANK(TileCollisionTable) - rst Bankswitch - ld e, [hl] - pop af - rst Bankswitch - - ld a, e - and $f ; lo nybble only - - pop hl - pop de - ret -; 1875 - - -Function1875: ; 1875 - ld d, a - and $f0 - cp $10 - jr z, .asm_1882 - cp $20 - jr z, .asm_1888 - scf - ret - -.asm_1882 - ld a, d - and 7 - ret z - scf - ret - -.asm_1888 - ld a, d - and 7 - ret z - scf - ret -; 188e - -Function188e: ; 188e - cp $14 - ret z - cp $1c - ret -; 1894 - -CheckCutTreeTile: ; 1894 - cp $12 - ret z - cp $1a - ret -; 189a - -CheckHeadbuttTreeTile: ; 189a - cp $15 - ret z - cp $1d - ret -; 18a0 - -CheckCounterTile: ; 18a0 - cp $90 - ret z - cp $98 - ret -; 18a6 - -CheckPitTile: ; 18a6 - cp $60 - ret z - cp $68 - ret -; 18ac - -CheckIceTile: ; 18ac - cp $23 - ret z - cp $2b - ret z - scf - ret -; 18b4 - -CheckWhirlpoolTile: ; 18b4 - nop - cp $24 - ret z - cp $2c - ret z - scf - ret -; 18bd - -CheckWaterfallTile: ; 18bd - cp $33 - ret z - cp $3b - ret -; 18c3 - -CheckStandingOnEntrance: ; 18c3 - ld a, [StandingTile] - cp $71 ; door - ret z - cp $79 - ret z - cp $7a ; stairs - ret z - cp $7b ; cave - ret -; 18d2 - - -GetMapObject: ; 18d2 -; Return the location of map object a in bc. - ld hl, MapObjects - ld bc, $10 - call AddNTimes - ld b, h - ld c, l - ret -; 18de - - -Function18de: ; 18de - ld [hConnectionStripLength], a - call GetMapObject - ld hl, $0000 - add hl, bc - ld a, [hl] - cp $ff - jr z, .asm_18f3 - ld [hConnectedMapWidth], a - call Function1ae5 - and a - ret - -.asm_18f3 - scf - ret -; 18f5 - -Function18f5: ; 18f5 - ld hl, $0006 - add hl, bc - ld a, [hl] - cp $ff - jr nz, .asm_1921 - ld hl, $0007 - add hl, bc - ld a, [hl] - cp $ff - jr z, .asm_191c - ld hl, .data_191e - ld a, [TimeOfDay] - add l - ld l, a - jr nc, .asm_1912 - inc h - -.asm_1912 - ld a, [hl] - ld hl, $0007 - add hl, bc - and [hl] - jr nz, .asm_191c - scf - ret - -.asm_191c - and a - ret - -.data_191e - db $1 - db $2 - db $4 - -.asm_1921 - ld hl, $0006 - add hl, bc - ld d, [hl] - ld hl, $0007 - add hl, bc - ld e, [hl] - ld hl, hHours - ld a, d - cp e - jr z, .asm_1949 - jr c, .asm_193f - ld a, [hl] - cp d - jr nc, .asm_1949 - cp e - jr c, .asm_1949 - jr z, .asm_1949 - jr .asm_194b - -.asm_193f - ld a, e - cp [hl] - jr c, .asm_194b - ld a, [hl] - cp d - jr nc, .asm_1949 - jr .asm_194b - -.asm_1949 - and a - ret - -.asm_194b - scf - ret -; 194d - -Function194d: ; 194d - ld [hConnectionStripLength], a - call GetMapObject - call $40e7 - ret -; 1956 - - - -Function1956: ; 1956 - ld [hConnectionStripLength], a - call Function271e - ld a, [hConnectionStripLength] - call GetMapObject - ld a, $2 - ld hl, $40e7 - rst FarCall - ret -; 1967 - -Function1967: ; 1967 - ld [hConnectionStripLength], a - call GetMapObject - ld hl, $0000 - add hl, bc - ld a, [hl] - cp $ff - ret z - ld [hl], $ff - push af - call Function1985 - pop af - call Function1ae5 - callba Function4357 - ret -; 1985 - -Function1985: ; 1985 - ld hl, $d4cd - cp [hl] - jr z, .asm_1990 - ld hl, $d4ce - cp [hl] - ret nz - -.asm_1990 - callba Function581f - ld a, $ff - ld [$d4cd], a - ld [$d4ce], a - ret -; 199f - -Function199f: ; 199f - call Function1967 - call Function2712 - ret -; 19a6 - -Function19a6: ; 19a6 - push hl - call GetMapObject - ld d, b - ld e, c - ld a, $ff - ld [de], a - inc de - pop hl - ld bc, $000f - call CopyBytes - ret -; 19b8 - -Function19b8: ; 19b8 - call GetMapObject - ld hl, $0000 - add hl, bc - ld a, [hl] - push af - ld [hl], $ff - inc hl - ld bc, $000f - xor a - call ByteFill - pop af - cp $ff - ret z - cp $d - ret nc - ld b, a - ld a, [$d4cd] - cp b - jr nz, .asm_19de - ld a, $ff - ld [$d4cd], a - -.asm_19de - ld a, b - call Function1ae5 - callba Function4357 - ret -; 19e9 - - - -Function19e9: ; 19e9 - ld [$c2e2], a - ld a, [hROMBank] - ld [$c2e3], a - ld a, l - ld [$c2e4], a - ld a, h - ld [$c2e5], a - ld a, [$c2e2] - call Function18de - ret c - ld hl, $0003 - add hl, bc - ld [hl], $14 - ld hl, $0009 - add hl, bc - ld [hl], $0 - ld hl, VramState - set 7, [hl] - and a - ret -; 1a13 - - - -Function1a13: ; 1a13 - push bc - push de - ld hl, $d4d6 - ld de, $0028 - ld c, $d -.asm_1a1d - ld a, [hl] - and a - jr z, .asm_1a28 - add hl, de - dec c - jr nz, .asm_1a1d - xor a - jr .asm_1a2c - -.asm_1a28 - ld a, $d - sub c - scf - -.asm_1a2c - pop de - pop bc - ret -; 1a2f - - - -Function1a2f: ; 1a2f - ld hl, $0003 - add hl, bc - ld a, [hl] - cp $25 - jr c, .asm_1a39 - xor a - -.asm_1a39 - ld hl, Data4273 - ld e, a - ld d, 0 - add hl, de - add hl, de - add hl, de - add hl, de - add hl, de - add hl, de - ld a, [hl] - ret -; 1a47 - -Function1a47: ; 1a47 - push bc - push de - ld e, a - ld d, 0 - ld hl, Data4273 + 1 - add hl, de - add hl, de - add hl, de - add hl, de - add hl, de - add hl, de - ld a, BANK(Data4273) - call GetFarByte - add a - add a - and $c - pop de - pop bc - ret -; 1a61 - - -Function1a61: ; 1a61 - ld l, a - ld a, [hROMBank] - push af - ld a, BANK(Data4273) - rst Bankswitch - ld a, l - push bc - - call Function1a71 - - pop bc - pop af - rst Bankswitch - - ret -; 1a71 - -Function1a71: ; 1a71 - ld hl, $0003 - add hl, de - ld [hl], a - push de - ld e, a - ld d, 0 - ld hl, Data4273 + 1 - add hl, de - add hl, de - add hl, de - add hl, de - add hl, de - add hl, de - ld b, h - ld c, l - pop de - ld a, [bc] - inc bc - rlca - rlca - and $c - ld hl, $0008 - add hl, de - ld [hl], a - ld a, [bc] - inc bc - ld hl, $000b - add hl, de - ld [hl], a - ld a, [bc] - inc bc - ld hl, $0004 - add hl, de - ld [hl], a - ld a, [bc] - inc bc - ld hl, $0005 - add hl, de - ld [hl], a - ld a, [bc] - inc bc - ld hl, $0006 - add hl, de - ld [hl], a - ret -; 1aae - -Function1aae: ; 1aae - ld a, [hROMBank] - push af - ld a, [hli] - rst Bankswitch - - ld a, [hli] - ld d, [hl] - ld hl, $001b - add hl, bc - add [hl] - ld e, a - ld a, d - adc $0 - ld d, a - inc [hl] - ld a, [de] - ld h, a - pop af - rst Bankswitch - - ld a, h - ret -; 1ac6 - -Function1ac6: ; 1ac6 - ld hl, VramState - set 0, [hl] - ret -; 1acc - -Function1acc: ; 1acc - ld hl, VramState - res 0, [hl] - ret -; 1ad2 - - -Function1ad2: ; 1ad2 - ld a, [VramState] - bit 0, a - ret z - callba Function55e0 - callba Function5920 - ret -; 1ae5 - - -Function1ae5: ; 1ae5 - ld bc, $0028 - ld hl, $d4d6 - call AddNTimes - ld b, h - ld c, l - ret -; 1af1 - -Function1af1: ; 1af1 - ld hl, $0000 - add hl, bc - ld a, [hl] - and a - ret -; 1af8 - -Function1af8: ; 1af8 - push af - ld hl, $0008 - add hl, bc - ld a, [hl] - and $f3 - ld e, a - pop af - and $c - or e - ld [hl], a - ret -; 1b07 - - -GetSpriteDirection: ; 1b07 - ld hl, $0008 - add hl, bc - ld a, [hl] - and $c - ret -; 1b0f - - -Function1b0f: ; 1b0f - add $10 - -Function1b11: ; 1b11 - ld e, a - - ld a, [hROMBank] - push af - ld a, BANK(Function84d9) - rst Bankswitch +SECTION "start",ROM0[$150] - call Function84d9 - - pop af - rst Bankswitch - ret -; 1b1e +INCLUDE "home/init.asm" +INCLUDE "home/vblank.asm" +INCLUDE "home/delay.asm" +INCLUDE "home/rtc.asm" +INCLUDE "home/fade.asm" +INCLUDE "home/lcd.asm" +INCLUDE "home/time.asm" +INCLUDE "home/serial.asm" +INCLUDE "home/joypad.asm" +INCLUDE "home/decompress.asm" +INCLUDE "home/palettes.asm" +INCLUDE "home/copy.asm" +INCLUDE "home/text.asm" +INCLUDE "home/video.asm" +INCLUDE "home/map_objects.asm" +INCLUDE "home/sine.asm" Function1b1e: ; 1b1e ld [$d003], a @@ -1808,3193 +473,15 @@ Function1d19: ; 1d19 ; 1d35 -LoadMenuDataHeader: ; 0x1d35 - call Function1d3c - call Function1c00 - ret - -Function1d3c: ; 0x1d3c - ld de, $cf81 - ld bc, $0010 - call CopyBytes - ld a, [hROMBank] - ld [$cf8a], a - ret -; 0x1d4b - -Function1d4b: ; 1d4b - ld [$cf88], a - ret -; 1d4f - - -Function1d4f: ; 1d4f - push hl - call Function1d58 - pop hl - jp PrintText -; 1d57 - -Function1d57: ; 1d57 - ret -; 1d58 - -Function1d58: ; 1d58 - ld hl, MenuDataHeader_0x1d5f - call LoadMenuDataHeader - ret -; 1d5f - -MenuDataHeader_0x1d5f: ; 1d5f - db $40 ; tile backup - db 12, 0 ; start coords - db 17, 19 ; end coords - dw VTiles0 - db 0 ; default option -; 1d67 - -Function1d67: ; 1d67 - call Function1d4f - call Function1c17 - ret -; 1d6e - -Function1d6e: ; 1d6e - ld hl, MenuDataHeader_0x1d75 - call LoadMenuDataHeader - ret -; 1d75 - -MenuDataHeader_0x1d75: ; 1d75 - db $40 ; tile backup - db 0, 0 ; start coords - db 17, 19 ; end coords - dw $0000 - db 1 ; default option -; 1d7d - -Function1d7d: ; 1d7d - call Function1c07 - ret -; 1d81 - -Function1d81: ; 0x1d81 - xor a - ld [hBGMapMode], a - call Function1cbb - call Function1ad2 - call Function1c89 - call Function321c - call Function1c66 - ld a, [$cf91] - bit 7, a - jr z, .asm_1da7 ; 0x1d98 $d - call Function1c10 - call Function1bc9 - call Function1ff8 - bit 1, a - jr z, .asm_1da9 ; 0x1da5 $2 -.asm_1da7 - scf - ret -.asm_1da9 - and a - ret -; 0x1dab - -Function1dab: ; 1dab - call LoadMenuDataHeader - call Function1d81 - call Function1c17 - ld a, [$cfa9] - ret -; 1db8 - -Function1db8: ; 0x1db8 - push hl - push bc - push af - ld hl, $cf86 - ld a, [hli] - ld h, [hl] - ld l, a - inc hl - inc hl - pop af - call GetNthString - ld d, h - ld e, l - call CopyName1 - pop bc - pop hl - ret -; 0x1dcf - - -Function1dcf: ; 1dcf - ld bc, $0e07 - -Function1dd2: ; 1dd2 - jr Function1dd9 - -Function1dd4: ; 1dd4 - call LoadMenuDataHeader - jr Function1dfe - -Function1dd9: ; 1dd9 - push bc - ld hl, MenuDataHeader_0x1e1d - call Function1d3c - pop bc - ld a, b - cp $e - jr nz, .asm_1de9 - ld a, $e - ld b, a - -.asm_1de9 - ld a, b - ld [$cf83], a - add $5 - ld [$cf85], a - ld a, c - ld [$cf82], a - add $4 - ld [$cf84], a - call Function1c00 - -Function1dfe: ; 1dfe - call Function1d81 - push af - ld c, $f - call DelayFrames - call Function1c17 - pop af - jr c, .asm_1e16 - ld a, [$cfa9] - cp $2 - jr z, .asm_1e16 - and a - ret - -.asm_1e16 - ld a, $2 - ld [$cfa9], a - scf - ret -; 1e1d - -MenuDataHeader_0x1e1d: ; 1e1d - db $40 ; tile backup - db 5, 10 ; start coords - db 9, 15 ; end coords - dw MenuData2_0x1e25 - db 1 ; default option -; 1e25 - -MenuData2_0x1e25: ; 1e25 - db $c0 ; flags - db 2 - db "YES@" - db "NO@" -; 1e2e - -Function1e2e: ; 1e2e - call Function1e35 - call Function1c00 - ret -; 1e35 - -Function1e35: ; 1e35 - push de - call Function1d3c - pop de - ld a, [$cf83] - ld h, a - ld a, [$cf85] - sub h - ld h, a - ld a, d - ld [$cf83], a - add h - ld [$cf85], a - ld a, [$cf82] - ld l, a - ld a, [$cf84] - sub l - ld l, a - ld a, e - ld [$cf82], a - add l - ld [$cf84], a - ret -; 1e5d - -Function1e5d: ; 1e5d - call MenuFunc_1e7f - call MenuWriteText - call Function1eff - call Function1f23 - call Function1bdd - call Function1ff8 - ret -; 1e70 - -SetUpMenu: ; 1e70 - call MenuFunc_1e7f ; ??? - call MenuWriteText - call Function1eff ; set up selection pointer - ld hl, $cfa5 - set 7, [hl] - ret - -MenuFunc_1e7f: ; 0x1e7f - call Function1c66 - call Function1ebd - call Function1ea6 - call Function1cbb - ret - -MenuWriteText: ; 0x1e8c - xor a - ld [hBGMapMode], a - call Function1ebd ; sort out the text - call Function1eda ; actually write it - call Function2e31 - ld a, [hOAMUpdate] - push af - ld a, $1 - ld [hOAMUpdate], a - call Function321c - pop af - ld [hOAMUpdate], a - ret -; 0x1ea6 - -Function1ea6: ; 1ea6 - ld a, [$cf83] - ld c, a - ld a, [$cf85] - sub c - ld c, a - ld a, [$cf92] - add a - inc a - ld b, a - ld a, [$cf82] - add b - ld [$cf84], a - ret -; 1ebd - -Function1ebd: ; 1ebd - ld hl, $cf93 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [$cf76] - and a - jr z, .asm_1ed3 - ld b, a - ld c, $ff -.asm_1ecc - ld a, [hli] - cp c - jr nz, .asm_1ecc - dec b - jr nz, .asm_1ecc - -.asm_1ed3 - ld d, h - ld e, l - ld a, [hl] - ld [$cf92], a - ret -; 1eda - -Function1eda: ; 1eda - call Function1cfd - ld bc, $002a - add hl, bc -.asm_1ee1 - inc de - ld a, [de] - cp $ff - ret z - ld [MenuSelection], a - push de - push hl - ld d, h - ld e, l - ld hl, $cf95 - call Function1efb - pop hl - ld de, $0028 - add hl, de - pop de - jr .asm_1ee1 -; 1efb - -Function1efb: ; 1efb - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 1eff - -Function1eff: ; 1eff - call Function1c10 - ld hl, $cfa8 - ld a, [$cf91] - bit 3, a - jr z, .asm_1f0e - set 3, [hl] - -.asm_1f0e - ld a, [$cf91] - bit 2, a - jr z, .asm_1f19 - set 5, [hl] - set 4, [hl] - -.asm_1f19 - ret -; 1f1a - - -Function1f1a: ; 1f1a - call Function1bd3 - ld hl, $cfa8 - and [hl] - jr Function1f2a -; 1f23 - -Function1f23: ; 1f23 - xor a - ld [$cf73], a - call Function1bc9 -; 1f2a - -Function1f2a: ; 1f2a - bit 0, a - jr nz, .asm_1f52 - bit 1, a - jr nz, .asm_1f6d - bit 3, a - jr nz, .asm_1f6d - bit 4, a - jr nz, .asm_1f44 - bit 5, a - jr nz, .asm_1f4b - xor a - ld [$cf73], a - jr .asm_1f57 - -.asm_1f44 - ld a, $10 - ld [$cf73], a - jr .asm_1f57 - -.asm_1f4b - ld a, $20 - ld [$cf73], a - jr .asm_1f57 - -.asm_1f52 - ld a, $1 - ld [$cf73], a - -.asm_1f57 - call Function1ebd - ld a, [$cfa9] - ld l, a - ld h, $0 - add hl, de - ld a, [hl] - ld [MenuSelection], a - ld a, [$cfa9] - ld [$cf88], a - and a - ret - -.asm_1f6d - ld a, $2 - ld [$cf73], a - ld a, $ff - ld [MenuSelection], a - scf - ret -; 1f79 - -Function1f79: ; 1f79 - push de - ld hl, $cf97 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [MenuSelection] - call GetNthString - ld d, h - ld e, l - pop hl - call PlaceString - ret -; 1f8d - -Function1f8d: ; 1f8d - push de - ld a, [MenuSelection] - call Function1fb1 - inc hl - inc hl - ld a, [hli] - ld d, [hl] - ld e, a - pop hl - call PlaceString - ret -; 1f9e - -Function1f9e: ; 1f9e - call Function1fb1 - inc hl - inc hl - ld a, [hli] - ld d, [hl] - ld e, a - ret -; 1fa7 - -Function1fa7: ; 1fa7 - ld a, [MenuSelection] - call Function1fb1 - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 1fb1 - -Function1fb1: ; 1fb1 - ld e, a - ld d, $0 - ld hl, $cf97 - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - add hl, de - add hl, de - add hl, de - ret -; 1fbf - -Function1fbf: ; 1fbf - ld hl, $cf71 - call Function1ff0 - ld hl, $cf81 - call Function1ff0 - ld hl, $cf91 - call Function1ff0 - ld hl, $cfa1 - call Function1ff0 - ld a, [rSVBK] - push af - ld a, $7 - ld [rSVBK], a - xor a - ld hl, $dfff - ld [hld], a - ld [hld], a - ld a, l - ld [$cf71], a - ld a, h - ld [$cf72], a - pop af - ld [rSVBK], a - ret -; 1ff0 - -Function1ff0: ; 1ff0 - ld bc, $0010 - xor a - call ByteFill - ret -; 1ff8 - -Function1ff8: ; 1ff8 - push af - and $3 - jr z, .asm_2007 - ld hl, $cf81 - bit 3, [hl] - jr nz, .asm_2007 - call PlayClickSFX - -.asm_2007 - pop af - ret -; 2009 - - -PlayClickSFX: ; 2009 - push de - ld de, SFX_READ_TEXT_2 - call StartSFX - pop de - ret -; 0x2012 - -Function2012: ; 2012 - call Function1d4f - call Functiona46 - call Function1c07 - ret -; 201c - -Function201c: ; 201c - ld [hBuffer], a - ld a, [hROMBank] - push af - ld a, [hBuffer] - rst Bankswitch - - call PlaceString - pop af - rst Bankswitch - - ret -; 202a - -Function202a: ; 202a - ld a, [hROMBank] - ld [$cf94], a - ld a, $9 - ld hl, $400e - rst FarCall - ld a, [$cf88] - ret -; 2039 - -Function2039: ; 2039 - ld a, [hROMBank] - ld [$cf94], a - ld a, $9 - ld hl, $4022 - rst FarCall - ld a, [$cf88] - ret -; 2048 - -Function2048: ; 2048 - ld a, [hROMBank] - ld [$cf94], a - ld a, $9 - ld hl, $403c - rst FarCall - ld a, [$cf88] - ret -; 2057 - -Function2057: ; 2057 - ld a, [hROMBank] - push af - ld a, $21 - rst Bankswitch - - call $42db - pop af - rst Bankswitch - - ret -; 2063 - - -AskSerial: ; 2063 -; send out a handshake while serial int is off - ld a, [$c2d4] - bit 0, a - ret z - - ld a, [$c2d5] - and a - ret nz - -; once every 6 frames - ld hl, $ca8a - inc [hl] - ld a, [hl] - cp 6 - ret c - - xor a - ld [hl], a - - ld a, $c - ld [$c2d5], a - -; handshake - ld a, $88 - ld [rSB], a - -; switch to internal clock - ld a, %00000001 - ld [rSC], a - -; start transfer - ld a, %10000001 - ld [rSC], a - - ret -; 208a - - -ResetGameTime: ; 208a - xor a - ld [GameTimeCap], a - ld [GameTimeHours], a - ld [GameTimeHours + 1], a - ld [GameTimeMinutes], a - ld [GameTimeSeconds], a - ld [GameTimeFrames], a - ret -; 209e - - -GameTimer: ; 209e -; precautionary - nop - -; save wram bank - ld a, [rSVBK] - push af - - ld a, $1 - ld [rSVBK], a - - call UpdateGameTimer - -; restore wram bank - pop af - ld [rSVBK], a - ret -; 20ad - - -UpdateGameTimer: ; 20ad -; increment the game timer by one frame -; capped at 999:59:59.00 after exactly 1000 hours - -; pause game update? - ld a, [$c2cd] - and a - ret nz - -; game timer paused? - ld hl, GameTimerPause - bit 0, [hl] - ret z - -; reached cap? (999:00:00.00) - ld hl, GameTimeCap - bit 0, [hl] - ret nz - -; increment frame counter - ld hl, GameTimeFrames ; frame counter - ld a, [hl] - inc a - -; reached 1 second? - cp 60 ; frames/second - jr nc, .second ; 20c5 $2 - -; update frame counter - ld [hl], a - ret - -.second -; reset frame counter - xor a - ld [hl], a - -; increment second counter - ld hl, GameTimeSeconds - ld a, [hl] - inc a - -; reached 1 minute? - cp 60 ; seconds/minute - jr nc, .minute - -; update second counter - ld [hl], a - ret - -.minute -; reset second counter - xor a - ld [hl], a - -; increment minute counter - ld hl, GameTimeMinutes - ld a, [hl] - inc a - -; reached 1 hour? - cp 60 ; minutes/hour - jr nc, .hour - -; update minute counter - ld [hl], a - ret - -.hour -; reset minute counter - xor a - ld [hl], a - -; increment hour counter - ld a, [GameTimeHours] - ld h, a - ld a, [GameTimeHours+1] - ld l, a - inc hl - -; reached 1000 hours? - ld a, h - cp $3 ; 1000 / $100 - jr c, .updatehr - - ld a, l - cp $e8 ; 1000 & $ff - jr c, .updatehr - -; cap at 999:59:59.00 - ld hl, GameTimeCap - set 0, [hl] ; stop timer - - ld a, 59 - ld [GameTimeMinutes], a - ld [GameTimeSeconds], a - -; this will never be run again - ret - -.updatehr - ld a, h - ld [GameTimeHours], a - ld a, l - ld [GameTimeHours+1], a - ret -; 210f - - -Function210f: ; 210f - ld hl, $c7e8 - ld bc, $0018 - ld a, $0 - call ByteFill - ret -; 211b - -Function211b: ; 211b - push hl - ld hl, $dbf7 - ld a, [hli] - ld h, [hl] - ld l, a - or h - ld a, [hl] - jr nz, .asm_2128 - ld a, $ff - -.asm_2128 - pop hl - ret -; 212a - -Function212a: ; 212a - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - xor a - ld [$dbf7], a - ld [$dbf8], a - call Function2147 - ret c - ld a, e - ld [$dbf7], a - ld a, d - ld [$dbf8], a - xor a - ret -; 2147 - -Function2147: ; 2147 - push bc - ld a, [hROMBank] - push af - ld a, $13 - rst Bankswitch - - ld hl, $501e -.asm_2151 - push hl - ld a, [hli] - cp $ff - jr z, .asm_2167 - cp b - jr nz, .asm_2160 - ld a, [hli] - cp c - jr nz, .asm_2160 - jr .asm_216a - -.asm_2160 - pop hl - ld de, $0004 - add hl, de - jr .asm_2151 - -.asm_2167 - scf - jr .asm_216d - -.asm_216a - ld e, [hl] - inc hl - ld d, [hl] - -.asm_216d - pop hl - pop bc - ld a, b - rst Bankswitch - - pop bc - ret -; 2173 - -Function2173: ; 2173 - call Function217a - call Functiondb1 - ret -; 217a - -Function217a: ; 217a - ld a, [hROMBank] - push af - ld a, [TileSetBlocksBank] - rst Bankswitch - - call Function2198 - ld a, $60 - ld hl, TileMap - ld bc, $0168 - call ByteFill - ld a, $13 - rst Bankswitch - - call $515b - pop af - rst Bankswitch - - ret -; 2198 - -Function2198: ; 2198 - ld a, [$d194] - ld e, a - ld a, [$d195] - ld d, a - ld hl, EnemyMoveAnimation - ld b, $5 - -.asm_21a5 - push de - push hl - ld c, $6 - -.asm_21a9 - push de - push hl - ld a, [de] - and a - jr nz, .asm_21b2 - ld a, [$d19d] - -.asm_21b2 - ld e, l - ld d, h - add a - ld l, a - ld h, $0 - add hl, hl - add hl, hl - add hl, hl - ld a, [TileSetBlocksAddress] - add l - ld l, a - ld a, [$d1de] - adc h - ld h, a - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, e - add $14 - ld e, a - jr nc, .asm_21d8 - inc d - -.asm_21d8 - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, e - add $14 - ld e, a - jr nc, .asm_21eb - inc d - -.asm_21eb - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, e - add $14 - ld e, a - jr nc, .asm_21fe - inc d - -.asm_21fe - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - pop hl - ld de, $0004 - add hl, de - pop de - inc de - dec c - jp nz, .asm_21a9 - pop hl - ld de, $0060 - add hl, de - pop de - ld a, [$d19f] - add $6 - add e - ld e, a - jr nc, .asm_2225 - inc d - -.asm_2225 - dec b - jp nz, .asm_21a5 - ret -; 222a - -Function222a: ; 222a - ld a, $fa - ld [$ff9f], a - ld a, $5 - ld hl, $5363 - rst FarCall - xor a - ld [$ff9f], a - ret -; 2238 - -Function2238: ; 2238 - call Function2252 - ret nc - push bc - ld a, $5 - ld hl, $49af - rst FarCall - pop bc - ret nc - call Function22a7 - scf - ret -; 224a - - - -Function224a: ; 224a - call Function2252 - ret nc - call Function22a7 - ret -; 2252 - -Function2252: ; 2252 - ld a, $5 - ld hl, $499a - rst FarCall - ret nc - ld a, [hROMBank] - push af - call Function2c52 - call Function2266 - pop de - ld a, d - rst Bankswitch - - ret -; 2266 - -Function2266: ; 2266 - ld a, [MapY] - sub $4 - ld e, a - ld a, [MapX] - sub $4 - ld d, a - ld a, [$dbfb] - and a - ret z - ld c, a - ld hl, $dbfc - ld a, [hli] - ld h, [hl] - ld l, a -.asm_227e - push hl - ld a, [hli] - cp e - jr nz, .asm_2289 - ld a, [hli] - cp d - jr nz, .asm_2289 - jr .asm_2296 - -.asm_2289 - pop hl - ld a, $5 - add l - ld l, a - jr nc, .asm_2291 - inc h - -.asm_2291 - dec c - jr nz, .asm_227e - xor a - ret - -.asm_2296 - pop hl - call Function22a3 - ret nc - ld a, [$dbfb] - inc a - sub c - ld c, a - scf - ret -; 22a3 - -Function22a3: ; 22a3 - inc hl - inc hl - scf - ret -; 22a7 - -Function22a7: ; 22a7 - ld a, [hROMBank] - push af - call Function2c52 - call Function22b4 - pop af - rst Bankswitch - - scf - ret -; 22b4 - -Function22b4: ; 22b4 - push bc - ld hl, $dbfc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, c - dec a - ld bc, $0005 - call AddNTimes - ld bc, $0002 - add hl, bc - ld a, [hli] - cp $ff - jr nz, .asm_22d0 - ld hl, $dcac - ld a, [hli] - -.asm_22d0 - pop bc - ld [$d146], a - ld a, [hli] - ld [$d147], a - ld a, [hli] - ld [$d148], a - ld a, c - ld [$d149], a - ld a, [MapGroup] - ld [$d14a], a - ld a, [MapNumber] - ld [$d14b], a - scf - ret -; 22ee - - - -CheckOutdoorMap: ; 22ee - cp ROUTE - ret z - cp TOWN - ret -; 22f4 - -CheckIndoorMap: ; 22f4 - cp INDOOR - ret z - cp CAVE - ret z - cp DUNGEON - ret z - cp GATE - ret -; 2300 - - -Function2300: ; 2300 - cp $3 - ret z - cp $6 - ret z - cp $5 - ret -; 2309 - -Function2309: ; 2309 - call Function2326 - call Function2c52 - call Function234f - xor a - call Function2336 - ret -; 2317 - -Function2317: ; 2317 - call Function2326 - call Function2c52 - call Function234f - ld a, $1 - call Function2336 - ret -; 2326 - - - -Function2326: ; 2326 - call Function2c3d - call Function2c1c - call GetSecondaryMapHeaderPointer - call Function235c - call Function2368 - ret -; 2336 - -Function2336: ; 2336 - push af - ld hl, $d1a6 - ld a, [hli] - ld h, [hl] - ld l, a - inc hl - inc hl - call Function23da - call Function23f1 - call Function2408 - pop af - and a - ret nz - call Function241f - ret -; 234f - -Function234f: ; 234f - ld hl, $d1a4 - ld a, [hli] - ld h, [hl] - ld l, a - call Function23ac - call Function23c3 - ret -; 235c - -Function235c: ; 235c - ld de, $d19d - ld c, $c -.asm_2361 - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_2361 - ret -; 2368 - -Function2368: ; 2368 - ld a, $ff - ld [NorthConnectedMapGroup], a - ld [SouthConnectedMapGroup], a - ld [WestConnectedMapGroup], a - ld [EastConnectedMapGroup], a - ld a, [$d1a8] - ld b, a - bit 3, b - jr z, .asm_2384 - ld de, NorthConnectedMapGroup - call GetMapConnection - -.asm_2384 - bit 2, b - jr z, .asm_238e - ld de, SouthConnectedMapGroup - call GetMapConnection - -.asm_238e - bit 1, b - jr z, .asm_2398 - ld de, WestConnectedMapGroup - call GetMapConnection - -.asm_2398 - bit 0, b - jr z, .asm_23a2 - ld de, EastConnectedMapGroup - call GetMapConnection - -.asm_23a2 - ret -; 23a3 - - - -GetMapConnection: ; 23a3 -; Load map connection struct at hl into de. - ld c, SouthMapConnection - NorthMapConnection -.loop - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .loop - ret -; 23ac - - -Function23ac: ; 23ac - ld a, [hli] - ld c, a - ld [$dc07], a - ld a, l - ld [$dc08], a - ld a, h - ld [$dc09], a - ld a, c - and a - ret z - ld bc, $0004 - call AddNTimes - ret -; 23c3 - -Function23c3: ; 23c3 - ld a, [hli] - ld c, a - ld [$dc0a], a - ld a, l - ld [$dc0b], a - ld a, h - ld [$dc0c], a - ld a, c - and a - ret z - ld bc, $0003 - call AddNTimes - ret -; 23da - -Function23da: ; 23da - ld a, [hli] - ld c, a - ld [$dbfb], a - ld a, l - ld [$dbfc], a - ld a, h - ld [$dbfd], a - ld a, c - and a - ret z - ld bc, $0005 - call AddNTimes - ret -; 23f1 - -Function23f1: ; 23f1 - ld a, [hli] - ld c, a - ld [$dbfe], a - ld a, l - ld [$dbff], a - ld a, h - ld [$dc00], a - ld a, c - and a - ret z - ld bc, $0008 - call AddNTimes - ret -; 2408 - -Function2408: ; 2408 - ld a, [hli] - ld c, a - ld [$dc01], a - ld a, l - ld [$dc02], a - ld a, h - ld [$dc03], a - ld a, c - and a - ret z - ld bc, $0005 - call AddNTimes - ret -; 241f - -Function241f: ; 241f - push hl - call Function2471 - pop de - ld hl, $d72e - ld a, [de] - inc de - ld [$dc04], a - ld a, e - ld [$dc05], a - ld a, d - ld [$dc06], a - ld a, [$dc04] - call Function2457 - ld a, [$dc04] - ld c, a - ld a, $10 - sub c - jr z, .asm_2454 - ld bc, $0001 - add hl, bc - ld bc, $0010 -.asm_244a - ld [hl], $0 - inc hl - ld [hl], $ff - dec hl - add hl, bc - dec a - jr nz, .asm_244a - -.asm_2454 - ld h, d - ld l, e - ret -; 2457 - -Function2457: ; 2457 - and a - ret z - ld c, a -.asm_245a - push bc - push hl - ld a, $ff - ld [hli], a - ld b, $d -.asm_2461 - ld a, [de] - inc de - ld [hli], a - dec b - jr nz, .asm_2461 - pop hl - ld bc, $0010 - add hl, bc - pop bc - dec c - jr nz, .asm_245a - ret -; 2471 - -Function2471: ; 2471 - ld hl, $d4fe - ld bc, $01e0 - xor a - call ByteFill - ld hl, $d4fe - ld de, $0028 - ld c, $c - xor a -.asm_2484 - ld [hl], a - add hl, de - dec c - jr nz, .asm_2484 - ret -; 248a - -Function248a: ; 248a - call GetMapEventBank - rst Bankswitch - - ld hl, $d1a6 - ld a, [hli] - ld h, [hl] - ld l, a - inc hl - inc hl - inc hl - ld a, [WarpNumber] - dec a - ld c, a - ld b, $0 - ld a, $5 - call AddNTimes - ld a, [hli] - ld [YCoord], a - ld a, [hli] - ld [XCoord], a - ld a, [hli] - cp $ff - jr nz, .asm_24b3 - call Function24ba - -.asm_24b3 - ld a, $41 - ld hl, $486d - rst FarCall - ret -; 24ba - -Function24ba: ; 24ba - ld a, [$d149] - ld [$dcac], a - ld a, [$d14a] - ld [BackupMapGroup], a - ld a, [$d14b] - ld [BackupMapNumber], a - ret -; 24cd - -Function24cd: ; 24cd - ld hl, OverworldMap - ld bc, $0514 - ld a, $0 - call ByteFill - call Function24e4 - call FillMapConnections - ld a, $1 - call Function263b - ret -; 24e4 - - - -Function24e4: ; 24e4 - ld a, [hROMBank] - push af - ld hl, OverworldMap - ld a, [$d19f] - ld [hConnectedMapWidth], a - add $6 - ld [hConnectionStripLength], a - ld c, a - ld b, $0 - add hl, bc - add hl, bc - add hl, bc - ld c, $3 - add hl, bc - ld a, [$d1a0] - rst Bankswitch - - ld a, [$d1a1] - ld e, a - ld a, [$d1a2] - ld d, a - ld a, [$d19e] - ld b, a -.asm_250c - push hl - ld a, [hConnectedMapWidth] - ld c, a -.asm_2510 - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_2510 - pop hl - ld a, [hConnectionStripLength] - add l - ld l, a - jr nc, .asm_251e - inc h - -.asm_251e - dec b - jr nz, .asm_250c - pop af - rst Bankswitch - - ret -; 2524 - - - -FillMapConnections: ; 2524 - -; North - ld a, [NorthConnectedMapGroup] - cp $ff - jr z, .South - ld b, a - ld a, [NorthConnectedMapNumber] - ld c, a - call GetAnyMapBlockdataBank - - ld a, [NorthConnectionStripPointer] - ld l, a - ld a, [NorthConnectionStripPointer + 1] - ld h, a - ld a, [NorthConnectionStripLocation] - ld e, a - ld a, [NorthConnectionStripLocation + 1] - ld d, a - ld a, [NorthConnectionStripLength] - ld [hConnectionStripLength], a - ld a, [NorthConnectedMapWidth] - ld [hConnectedMapWidth], a - call FillNorthConnectionStrip - -.South - ld a, [SouthConnectedMapGroup] - cp $ff - jr z, .West - ld b, a - ld a, [SouthConnectedMapNumber] - ld c, a - call GetAnyMapBlockdataBank - - ld a, [SouthConnectionStripPointer] - ld l, a - ld a, [SouthConnectionStripPointer + 1] - ld h, a - ld a, [SouthConnectionStripLocation] - ld e, a - ld a, [SouthConnectionStripLocation + 1] - ld d, a - ld a, [SouthConnectionStripLength] - ld [hConnectionStripLength], a - ld a, [SouthConnectedMapWidth] - ld [hConnectedMapWidth], a - call FillSouthConnectionStrip - -.West - ld a, [WestConnectedMapGroup] - cp $ff - jr z, .East - ld b, a - ld a, [WestConnectedMapNumber] - ld c, a - call GetAnyMapBlockdataBank - - ld a, [WestConnectionStripPointer] - ld l, a - ld a, [WestConnectionStripPointer + 1] - ld h, a - ld a, [WestConnectionStripLocation] - ld e, a - ld a, [WestConnectionStripLocation + 1] - ld d, a - ld a, [WestConnectionStripLength] - ld b, a - ld a, [WestConnectedMapWidth] - ld [hConnectionStripLength], a - call FillWestConnectionStrip - -.East - ld a, [EastConnectedMapGroup] - cp $ff - jr z, .Done - ld b, a - ld a, [EastConnectedMapNumber] - ld c, a - call GetAnyMapBlockdataBank - - ld a, [EastConnectionStripPointer] - ld l, a - ld a, [EastConnectionStripPointer + 1] - ld h, a - ld a, [EastConnectionStripLocation] - ld e, a - ld a, [EastConnectionStripLocation + 1] - ld d, a - ld a, [EastConnectionStripLength] - ld b, a - ld a, [EastConnectedMapWidth] - ld [hConnectionStripLength], a - call FillEastConnectionStrip - -.Done - ret -; 25d3 - - -FillNorthConnectionStrip: -FillSouthConnectionStrip: ; 25d3 - - ld c, 3 -.y - push de - - push hl - ld a, [hConnectionStripLength] - ld b, a -.x - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .x - pop hl - - ld a, [hConnectedMapWidth] - ld e, a - ld d, 0 - add hl, de - pop de - - ld a, [$d19f] - add 6 - add e - ld e, a - jr nc, .asm_25f2 - inc d -.asm_25f2 - dec c - jr nz, .y - ret -; 25f6 - - -FillWestConnectionStrip: -FillEastConnectionStrip: ; 25f6 - -.asm_25f6 - ld a, [$d19f] - add 6 - ld [hConnectedMapWidth], a - - push de - - push hl - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - pop hl - - ld a, [hConnectionStripLength] - ld e, a - ld d, 0 - add hl, de - pop de - - ld a, [hConnectedMapWidth] - add e - ld e, a - jr nc, .asm_2617 - inc d -.asm_2617 - dec b - jr nz, .asm_25f6 - ret -; 261b - -Function261b: ; 261b - ld [$d432], a - ret -; 261f - -CallScript: ; 261f -; Call a script at a:hl. - - ld [ScriptBank], a - ld a, l - ld [ScriptPos], a - ld a, h - ld [ScriptPos + 1], a - - ld a, $ff - ld [ScriptRunning], a - - scf - ret -; 2631 - -Function2631: ; 2631 - ld a, [ScriptRunning] - and a - ret nz - call GetMapEventBank - jr CallScript -; 263b - -Function263b: ; 263b - ld b, a - ld a, [hROMBank] - push af - call Function2c52 - call Function2653 - jr nc, .asm_2650 - call GetMapEventBank - ld b, a - ld d, h - ld e, l - call Function2674 - -.asm_2650 - pop af - rst Bankswitch - - ret -; 2653 - -Function2653: ; 2653 - ld a, [$dc0a] - ld c, a - and a - ret z - ld hl, $dc0b - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld de, $0003 -.asm_2664 - ld a, [hl] - cp b - jr z, .asm_266e - add hl, de - dec c - jr nz, .asm_2664 - xor a - ret - -.asm_266e - inc hl - ld a, [hli] - ld h, [hl] - ld l, a - scf - ret -; 2674 - -Function2674: ; 2674 - callba Unknown_0x974f3 - ld a, [ScriptMode] - push af - ld hl, ScriptFlags - ld a, [hl] - push af - set 1, [hl] - callba Function96c56 - callba ScriptEvents - pop af - ld [ScriptFlags], a - pop af - ld [ScriptMode], a - ret -; 269a - -Function269a: ; 269a - ld a, [hROMBank] - push af - ld a, b - rst Bankswitch - - push hl - call SpeechTextBox - call Function2e31 - ld a, $1 - ld [hOAMUpdate], a - call Function321c - pop hl - call PrintTextBoxText - xor a - ld [hOAMUpdate], a - pop af - rst Bankswitch - - ret -; 26b7 - -Function26b7: ; 26b7 - ld [hBuffer], a - ld a, [hROMBank] - push af - ld a, [hBuffer] - rst Bankswitch - - call Function26c5 - pop af - rst Bankswitch - - ret -; 26c5 - -Function26c5: ; 26c5 - push de - ret -; 26c7 - -Function26c7: ; 26c7 - ld a, [hROMBank] - push af - ld a, b - rst Bankswitch - - ld a, c - call Function19e9 - pop hl - ld a, h - rst Bankswitch - - ret -; 26d4 - - -GetScriptByte: ; 0x26d4 -; Return byte at ScriptBank:ScriptPos in a. - - push hl - push bc - - ld a, [hROMBank] - push af - - ld a, [ScriptBank] - rst Bankswitch - - ld hl, ScriptPos - ld c, [hl] - inc hl - ld b, [hl] - - ld a, [bc] - - inc bc - ld [hl], b - dec hl - ld [hl], c - - ld b, a - pop af - rst Bankswitch - ld a, b - - pop bc - pop hl - ret -; 0x26ef - - -ObjectEvent: ; 0x26ef - jumptextfaceplayer ObjectEventText -; 0x26f2 - -ObjectEventText: - TX_FAR _ObjectEventText - db "@" -; 0x26f7 - - -BGEvent: ; 26f7 - jumptext BGEventText -; 26fa - -BGEventText: ; 26fa - text_jump UnknownText_0x1c46fc, BANK(UnknownText_0x1c46fc) - db "@" -; 26ff - - -CoordinatesEvent: ; 26ff - jumptext CoordinatesEventText -; 2702 - -CoordinatesEventText: ; 2702 - text_jump UnknownText_0x1c4706, BANK(UnknownText_0x1c4706) - db "@" -; 2707 - - -Function2707: ; 2707 - ld a, [hConnectionStripLength] - ld e, a - ld d, $0 - ld hl, $d81e - add hl, de - ld a, [hl] - ret -; 2712 - -Function2712: ; 2712 - ld a, [hConnectionStripLength] - ld e, a - ld d, $0 - ld hl, $d81e - add hl, de - ld [hl], $ff - ret -; 271e - -Function271e: ; 271e - ld a, [hConnectionStripLength] - ld e, a - ld d, $0 - ld hl, $d81e - add hl, de - ld [hl], $0 - ret -; 272a - - -Function272a: ; 272a - ld hl, TileMap - ld de, BGMapBuffer - call Function27b7 - ld c, $28 - call Functiondbd - ld a, [$d152] - ld e, a - ld a, [$d153] - ld d, a - call Function27d3 - ld a, $1 - ld [hBGMapUpdate], a - ret -; 2748 - -Function2748: ; 2748 - ld hl, $c5e0 - ld de, BGMapBuffer - call Function27b7 - ld c, $28 - call Functiondbd - ld a, [$d152] - ld l, a - ld a, [$d153] - ld h, a - ld bc, $0200 - add hl, bc - ld a, h - and $3 - or $98 - ld e, l - ld d, a - call Function27d3 - ld a, $1 - ld [hBGMapUpdate], a - ret -; 2771 - -Function2771: ; 2771 - ld hl, TileMap - ld de, BGMapBuffer - call Function27c0 - ld c, $24 - call Functiondbd - ld a, [$d152] - ld e, a - ld a, [$d153] - ld d, a - call Function27f8 - ld a, $1 - ld [hBGMapUpdate], a - ret -; 278f - -Function278f: ; 278f - ld hl, $c4b2 - ld de, BGMapBuffer - call Function27c0 - ld c, $24 - call Functiondbd - ld a, [$d152] - ld e, a - and $e0 - ld b, a - ld a, e - add $12 - and $1f - or b - ld e, a - ld a, [$d153] - ld d, a - call Function27f8 - ld a, $1 - ld [hBGMapUpdate], a - ret -; 27b7 - -Function27b7: ; 27b7 - ld c, $28 -.asm_27b9 - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_27b9 - ret -; 27c0 - -Function27c0: ; 27c0 - ld c, $12 -.asm_27c2 - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - inc de - ld a, $13 - add l - ld l, a - jr nc, .asm_27cf - inc h - -.asm_27cf - dec c - jr nz, .asm_27c2 - ret -; 27d3 - -Function27d3: ; 27d3 - ld hl, BGMapBufferPtrs - push de - call .asm_27df - pop de - ld a, $20 - add e - ld e, a - -.asm_27df - ld c, $a -.asm_27e1 - ld a, e - ld [hli], a - ld a, d - ld [hli], a - ld a, e - inc a - inc a - and $1f - ld b, a - ld a, e - and $e0 - or b - ld e, a - dec c - jr nz, .asm_27e1 - ld a, $14 - ld [$ffdc], a - ret -; 27f8 - -Function27f8: ; 27f8 - ld hl, BGMapBufferPtrs - ld c, $12 -.asm_27fd - ld a, e - ld [hli], a - ld a, d - ld [hli], a - ld a, $20 - add e - ld e, a - jr nc, .asm_280e - inc d - ld a, d - and $3 - or $98 - ld d, a - -.asm_280e - dec c - jr nz, .asm_27fd - ld a, $12 - ld [$ffdc], a - ret -; 2816 - -Function2816: ; 2816 - ld hl, BGMapBuffer - ld bc, $0078 - xor a - call ByteFill - ret -; 2821 - -Function2821: ; 2821 - ld hl, TileSetAddress - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [TileSetBank] - ld e, a - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - ld a, e - ld de, $d000 - call FarDecompress - ld hl, $d000 - ld de, VTiles2 - ld bc, $0600 - call CopyBytes - ld a, [rVBK] - push af - ld a, $1 - ld [rVBK], a - ld hl, $d600 - ld de, VTiles2 - ld bc, $0600 - call CopyBytes - pop af - ld [rVBK], a - pop af - ld [rSVBK], a - ld a, [$d199] - cp $1 - jr z, .asm_286f - cp $2 - jr z, .asm_286f - cp $4 - jr z, .asm_286f - jr .asm_2875 - -.asm_286f - ld a, $7 - ld hl, $4000 - rst FarCall - -.asm_2875 - xor a - ld [hTileAnimFrame], a - ret -; 2879 - -Function2879: ; 2879 - ld hl, $d194 - ld a, [hli] - ld h, [hl] - ld l, a - ld de, $dcb9 - ld c, $5 - ld b, $6 -.asm_2886 - push bc - push hl -.asm_2888 - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .asm_2888 - pop hl - ld a, [$d19f] - add $6 - ld c, a - ld b, $0 - add hl, bc - pop bc - dec c - jr nz, .asm_2886 - ret -; 289d - -Function289d: ; 289d - ld hl, $d194 - ld a, [hli] - ld h, [hl] - ld l, a - ld de, $dcb9 - ld a, [$d19f] - add $6 - ld [hConnectionStripLength], a - ld a, [$d151] - and a - jr z, .asm_28cb - cp $1 - jr z, .asm_28c0 - cp $2 - jr z, .asm_28d4 - cp $3 - jr z, .asm_28da - ret - -.asm_28c0 - ld de, $dcbf - ld a, [hConnectionStripLength] - ld c, a - ld b, $0 - add hl, bc - jr .asm_28ce - -.asm_28cb - ld de, $dcb9 - -.asm_28ce - ld b, $6 - ld c, $4 - jr .asm_28f7 - -.asm_28d4 - ld de, $dcba - inc hl - jr .asm_28dd - -.asm_28da - ld de, $dcb9 - -.asm_28dd - ld b, $5 - ld c, $5 - jr .asm_28f7 - - ld hl, $d194 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [$d19f] - add $6 - ld [hConnectionStripLength], a - ld de, $dcb9 - ld b, $6 - ld c, $5 - -.asm_28f7 - push bc - push hl - push de -.asm_28fa - ld a, [de] - inc de - ld [hli], a - dec b - jr nz, .asm_28fa - pop de - ld a, e - add $6 - ld e, a - jr nc, .asm_2908 - inc d - -.asm_2908 - pop hl - ld a, [hConnectionStripLength] - ld c, a - ld b, $0 - add hl, bc - pop bc - dec c - jr nz, .asm_28f7 - ret -; 2914 - -Function2914: ; 2914 - xor a - ld [TilePermissions], a - call Function296c - call Function294d - ld a, [MapX] - ld d, a - ld a, [MapY] - ld e, a - call Function2a3c - ld [StandingTile], a - call Function29ff - ret nz - ld a, [StandingTile] - and 7 - ld hl, .data_2945 - add l - ld l, a - ld a, 0 - adc h - ld h, a - ld a, [hl] - ld hl, TilePermissions - or [hl] - ld [hl], a - ret -; 2945 - -.data_2945 ; 2945 - db 1, 2, 4, 8, 9, 10, 5, 6 -; 294d - -Function294d: ; 294d - ld a, [MapX] - ld d, a - ld a, [MapY] - ld e, a - push de - inc e - call Function2a3c - ld [TileDown], a - call Function298b - pop de - dec e - call Function2a3c - ld [TileUp], a - call Function29a8 - ret -; 296c - -Function296c: ; 296c - ld a, [MapX] - ld d, a - ld a, [MapY] - ld e, a - push de - dec d - call Function2a3c - ld [TileLeft], a - call Function29e2 - pop de - inc d - call Function2a3c - ld [TileRight], a - call Function29c5 - ret -; 298b - -Function298b: ; 298b - call Function29ff - ret nz - ld a, [TileDown] - and $7 - cp $2 - jr z, .asm_299f - cp $6 - jr z, .asm_299f - cp $7 - ret nz - -.asm_299f - ld a, [TilePermissions] - or $8 - ld [TilePermissions], a - ret -; 29a8 - -Function29a8: ; 29a8 - call Function29ff - ret nz - ld a, [TileUp] - and $7 - cp $3 - jr z, .asm_29bc - cp $4 - jr z, .asm_29bc - cp $5 - ret nz - -.asm_29bc - ld a, [TilePermissions] - or $4 - ld [TilePermissions], a - ret -; 29c5 - -Function29c5: ; 29c5 - call Function29ff - ret nz - ld a, [TileRight] - and $7 - cp $1 - jr z, .asm_29d9 - cp $5 - jr z, .asm_29d9 - cp $7 - ret nz - -.asm_29d9 - ld a, [TilePermissions] - or $1 - ld [TilePermissions], a - ret -; 29e2 - -Function29e2: ; 29e2 - call Function29ff - ret nz - ld a, [TileLeft] - and $7 - cp $0 - jr z, .asm_29f6 - cp $4 - jr z, .asm_29f6 - cp $6 - ret nz - -.asm_29f6 - ld a, [TilePermissions] - or $2 - ld [TilePermissions], a - ret -; 29ff - -Function29ff: ; 29ff - and $f0 - cp $b0 - ret z - cp $c0 - ret -; 2a07 - - -GetFacingTileCoord: ; 2a07 -; Return map coordinates in (d, e) and tile id in a -; of the tile the player is facing. - - ld a, [PlayerDirection] - and %1100 - srl a - srl a - ld l, a - ld h, 0 - add hl, hl - add hl, hl - ld de, .Directions - add hl, de - - ld d, [hl] - inc hl - ld e, [hl] - inc hl - - ld a, [hli] - ld h, [hl] - ld l, a - - ld a, [MapX] - add d - ld d, a - ld a, [MapY] - add e - ld e, a - ld a, [hl] - ret - -.Directions - ; x, y - db 0, 1 - dw TileDown - db 0, -1 - dw TileUp - db -1, 0 - dw TileLeft - db 1, 0 - dw TileRight -; 2a3c - - -Function2a3c: ; 2a3c - call Function2a66 - ld a, [hl] - and a - jr z, .asm_2a63 - ld l, a - ld h, $0 - add hl, hl - add hl, hl - ld a, [TileSetCollisionAddress] - ld c, a - ld a, [$d1e1] - ld b, a - add hl, bc - rr d - jr nc, .asm_2a56 - inc hl - -.asm_2a56 - rr e - jr nc, .asm_2a5c - inc hl - inc hl - -.asm_2a5c - ld a, [TileSetCollisionBank] - call GetFarByte - ret - -.asm_2a63 - ld a, $ff - ret -; 2a66 - -Function2a66: ; 2a66 - ld a, [$d19f] - add $6 - ld c, a - ld b, $0 - ld hl, $c801 - add hl, bc - ld a, e - srl a - jr z, .asm_2a84 - and a -.asm_2a78 - srl a - jr nc, .asm_2a7d - add hl, bc - -.asm_2a7d - sla c - rl b - and a - jr nz, .asm_2a78 - -.asm_2a84 - ld c, d - srl c - ld b, $0 - add hl, bc - ret -; 2a8b - - -CheckFacingSign: ; 2a8b - call GetFacingTileCoord - ld b, a - ld a, d - sub 4 - ld d, a - ld a, e - sub 4 - ld e, a - ld a, [$dc01] - and a - ret z - ld c, a - ld a, [hROMBank] - push af - call Function2c52 - call Function2aaa - pop hl - ld a, h - rst Bankswitch - ret -; 2aaa - -Function2aaa: ; 2aaa - ld hl, $dc02 - ld a, [hli] - ld h, [hl] - ld l, a -.asm_2ab0 - push hl - ld a, [hli] - cp e - jr nz, .asm_2abb - ld a, [hli] - cp d - jr nz, .asm_2abb - jr .asm_2ac8 - -.asm_2abb - pop hl - ld a, 5 - add l - ld l, a - jr nc, .asm_2ac3 - inc h - -.asm_2ac3 - dec c - jr nz, .asm_2ab0 - xor a - ret - -.asm_2ac8 - pop hl - ld de, EngineBuffer1 - ld bc, 5 - call CopyBytes - scf - ret -; 2ad4 - -Function2ad4: ; 2ad4 - ld a, [$dbfe] - and a - ret z - ld c, a - ld a, [hROMBank] - push af - call Function2c52 - call Function2ae7 - pop hl - ld a, h - rst Bankswitch - ret -; 2ae7 - -Function2ae7: ; 2ae7 - ld hl, $dbff - ld a, [hli] - ld h, [hl] - ld l, a - call Function211b - ld b, a - ld a, [MapX] - sub $4 - ld d, a - ld a, [MapY] - sub $4 - ld e, a -.asm_2afd - push hl - ld a, [hli] - cp b - jr z, .asm_2b06 - cp $ff - jr nz, .asm_2b10 - -.asm_2b06 - ld a, [hli] - cp e - jr nz, .asm_2b10 - ld a, [hli] - cp d - jr nz, .asm_2b10 - jr .asm_2b1d - -.asm_2b10 - pop hl - ld a, $8 - add l - ld l, a - jr nc, .asm_2b18 - inc h - -.asm_2b18 - dec c - jr nz, .asm_2afd - xor a - ret - -.asm_2b1d - pop hl - ld de, EngineBuffer1 - ld bc, $0008 - call CopyBytes - scf - ret -; 2b29 - - -FadeToMenu: ; 2b29 - xor a - ld [hBGMapMode], a - call Function1d6e - ld a, $23 - ld hl, $4084 - rst FarCall - call ClearSprites - call Function2ed3 - ret -; 2b3c - - -Function2b3c: ; 2b3c - call WhiteBGMap - call Function2bae - call Function1ad2 - call Function1d7d - call Functiond90 - jr Function2b5c -; 2b4d +INCLUDE "home/menu.asm" +INCLUDE "home/handshake.asm" +INCLUDE "home/game_time.asm" +INCLUDE "home/map.asm" -Function2b4d: ; 2b4d - call WhiteBGMap - call Function1d7d - call Function2bae - call Function1ad2 - call Functiond90 -; 2b5c - -Function2b5c: ; 2b5c - ld b, $9 - call GetSGBLayout - ld a, $12 - ld hl, $5409 - rst FarCall - call Function3200 - ld a, $23 - ld hl, $4079 - rst FarCall - call Function2ee4 - ret -; 2b74 - - -Function2b74: ; 0x2b74 - push af - ld a, $1 - ld [$c2ce], a - call WhiteBGMap - call ClearSprites - call Function2bae - ld hl, $c590 ; tile 0, 12 - ld bc, $0412 - call TextBox - ld hl, VramState - set 0, [hl] - call Function1ad2 - call Function3200 - ld b, $9 - call GetSGBLayout - callba Function49409 - call Function485 - call DelayFrame - ld a, $1 - ld [$ffde], a - pop af - ret -; 0x2bae - -Function2bae: ; 2bae - call DisableLCD - call ClearSprites - ld a, $5 - ld hl, $4168 - rst FarCall - call Functione51 - call Functione5f - ld a, [hROMBank] - push af - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call Function2c24 - ld a, $23 - ld hl, $4001 - rst FarCall - call Function2173 - call Function2821 - ld a, $9 - call Function3cb4 - pop af - rst Bankswitch - - call EnableLCD - ret -; 2be5 - - -GetMapHeaderPointer: ; 2be5 - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a -; 2bed - -GetAnyMapHeaderPointer: ; 0x2bed -; Prior to calling this function, you must have switched banks so that -; MapGroupPointers is visible. - -; inputs: -; b = map group, c = map number -; XXX de = ??? - -; outputs: -; hl points to the map header - push bc ; save map number for later - - ; get pointer to map group - dec b - ld c, b - ld b, $0 - ld hl, MapGroupPointers - add hl, bc - add hl, bc - - ld a, [hli] - ld h, [hl] - ld l, a - pop bc ; restore map number - - ; find the cth map header - dec c - ld b, $0 - ld a, OlivineGym_MapHeader - OlivinePokeCenter1F_MapHeader - call AddNTimes - ret -; 0x2c04 - -GetMapHeaderMember: ; 0x2c04 -; Extract data from the current map's header. - -; inputs: -; de = offset of desired data within the mapheader - -; outputs: -; bc = data from the current map's header -; (e.g., de = $0003 would return a pointer to the secondary map header) - - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - ; fallthrough - -GetAnyMapHeaderMember: ; 0x2c0c - ; bankswitch - ld a, [hROMBank] - push af - ld a, BANK(MapGroupPointers) - rst Bankswitch - - call GetAnyMapHeaderPointer - add hl, de - ld c, [hl] - inc hl - ld b, [hl] - - ; bankswitch back - pop af - rst Bankswitch - ret -; 0x2c1c - - -Function2c1c: ; 2c1c - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a -; 2c24 - -Function2c24: ; 2c24 - call Function2c31 - rst Bankswitch - ret -; 2c29 - - -Function2c29: ; 2c29 - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a -; 2c31 - -Function2c31: ; 2c31 - push hl - push de - ld de, $0000 - call GetAnyMapHeaderMember - ld a, c - pop de - pop hl - ret -; 2c3d - -Function2c3d: ; 2c3d - ld a, [hROMBank] - push af - ld a, $25 - rst Bankswitch - call GetMapHeaderPointer - ld de, $d198 - ld bc, $0005 - call CopyBytes - pop af - rst Bankswitch - ret -; 2c52 - -Function2c52: ; 2c52 - ld a, [MapEventBank] - rst Bankswitch - ret -; 2c57 - - -GetMapEventBank: ; 2c57 - ld a, [MapEventBank] - ret -; 2c5b - -GetAnyMapBlockdataBank: ; 2c5b -; Return the blockdata bank for group b map c. - push hl - push de - push bc - - push bc - ld de, 3 ; second map header pointer - call GetAnyMapHeaderMember - ld l, c - ld h, b - pop bc - - push hl - ld de, 0 ; second map header bank - call GetAnyMapHeaderMember - pop hl - - ld de, 3 ; blockdata bank - add hl, de - ld a, c - call GetFarByte - rst Bankswitch - - pop bc - pop de - pop hl - ret -; 2c7d - -GetSecondaryMapHeaderPointer: ; 0x2c7d -; returns the current map's secondary map header pointer in hl. - push bc - push de - ld de, $0003 ; secondary map header pointer (offset within header) - call GetMapHeaderMember - ld l, c - ld h, b - pop de - pop bc - ret -; 2c8a - -GetMapPermission: ; 2c8a - push hl - push de - push bc - ld de, 2 - call GetMapHeaderMember - ld a, c - pop bc - pop de - pop hl - ret -; 2c98 - -Function2c98: ; 2c98 - ret -; 2c99 - -Function2c99: ; 2c99 - push hl - push de - push bc - ld de, $0002 - call GetAnyMapHeaderMember - ld a, c - pop bc - pop de - pop hl - ret -; 2ca7 - -Function2ca7: ; 2ca7 - ld de, $0001 - call GetAnyMapHeaderMember - ld a, c - ret -; 2caf - -GetWorldMapLocation: ; 0x2caf -; given a map group/id in bc, return its location on the Pokégear map. - push hl - push de - push bc - ld de, 5 - call GetAnyMapHeaderMember - ld a, c - pop bc - pop de - pop hl - ret -; 0x2cbd - -Function2cbd: ; 2cbd - push hl - push bc - ld de, $0006 - call GetMapHeaderMember - ld a, c - cp $64 - jr z, .asm_2cee - bit 7, c - jr nz, .asm_2cda - ld a, $22 - ld hl, $7342 - rst FarCall - ld e, c - ld d, $0 -.asm_2cd7 - pop bc - pop hl - ret - -.asm_2cda - ld a, [StatusFlags2] - bit 0, a - jr z, .asm_2ce6 - ld de, $0056 - jr .asm_2cd7 - -.asm_2ce6 - ld a, c - and $7f - ld e, a - ld d, $0 - jr .asm_2cd7 - -.asm_2cee - ld a, [StatusFlags2] - bit 7, a - jr z, .asm_2cfa - ld de, $0048 - jr .asm_2cd7 - -.asm_2cfa - ld de, $0026 - jr .asm_2cd7 -; 2cff - -Function2cff: ; 2cff - call Function2d0d - and $f - ret -; 2d05 - -Function2d05: ; 2d05 - call Function2d0d - and $f0 - swap a - ret -; 2d0d - -Function2d0d: ; 2d0d - push hl - push bc - ld de, $0007 - call GetMapHeaderMember - ld a, c - pop bc - pop hl - ret -; 2d19 - -Function2d19: ; 2d19 - push de - push hl - push bc - ld de, $0008 - call GetMapHeaderMember - ld a, c - pop bc - pop hl - pop de - ret -; 2d27 - -Function2d27: ; 2d27 - push hl - push bc - ld hl, $5596 - ld bc, $000f - ld a, [$d199] - call AddNTimes - ld de, TileSetBank - ld bc, $000f - ld a, $13 - call FarCopyBytes - pop bc - pop hl - ret -; 2d43 Function2d43: ; 2d43 +; Inexplicably empty. +; Seen in PredefPointers. nop nop nop @@ -5015,134 +502,8 @@ Function2d43: ; 2d43 ; 2d54 -FarCall_de: ; 2d54 -; Call a:de. -; Preserves other registers. - - ld [hBuffer], a - ld a, [hROMBank] - push af - ld a, [hBuffer] - rst Bankswitch - call .de - jr ReturnFarCall - -.de - push de - ret -; 2d63 - - -FarCall_hl: ; 2d63 -; Call a:hl. -; Preserves other registers. - - ld [hBuffer], a - ld a, [hROMBank] - push af - ld a, [hBuffer] - rst Bankswitch - call Function2d82 -; 2d6e - -ReturnFarCall: ; 2d6e -; We want to retain the contents of f. -; To do this, we can pop to bc instead of af. - - ld a, b - ld [$cfb9], a - ld a, c - ld [$cfba], a - -; Restore the working bank. - pop bc - ld a, b - rst Bankswitch - - ld a, [$cfb9] - ld b, a - ld a, [$cfba] - ld c, a - ret -; 2d82 - -Function2d82: ; 2d82 - jp [hl] -; 2d83 - - -Predef: ; 2d83 -; call a function from given id a - -; relies on $cfb4-8 - -; this function is somewhat unreadable at a glance -; the execution flow is as follows: -; save bank -; get function from id -; call function -; restore bank -; these are pushed to the stack in reverse - -; most of the $cfbx trickery is just juggling hl (which is preserved) -; this allows hl, de and bc to be passed to the function - -; input: -; a: id -; parameters bc, de, hl - -; store id - ld [$cfb4], a - -; save bank - ld a, [hROMBank] ; current bank - push af - -; get Predef function to call -; GetPredefFn also stores hl in $cfb5-6 - ld a, BANK(GetPredefFn) - rst Bankswitch - call GetPredefFn -; switch bank to Predef function - rst Bankswitch - -; clean up after Predef call - ld hl, .cleanup - push hl - -; call Predef function from ret - ld a, [$cfb7] - ld h, a - ld a, [$cfb8] - ld l, a - push hl - -; get hl back - ld a, [$cfb5] - ld h, a - ld a, [$cfb6] - ld l, a - ret - -.cleanup -; store hl - ld a, h - ld [$cfb5], a - ld a, l - ld [$cfb6], a - -; restore bank - pop hl ; popping a pushed af. h = a (old bank) - ld a, h - rst Bankswitch - -; get hl back - ld a, [$cfb5] - ld h, a - ld a, [$cfb6] - ld l, a - ret -; 2dba +INCLUDE "home/farcall.asm" +INCLUDE "home/predef.asm" ResetWindow: ; 2dba @@ -5252,125 +613,16 @@ Function2e4e: ; 2e4e ret ; 2e50 -Function2e50: ; 2e50 - xor a - ld hl, $da72 - ld [hli], a - ret -; 2e56 -Function2e56: ; 2e56 - xor a - ld hl, BikeFlags - ld [hli], a - ld [hl], a - ret -; 2e5d - -Function2e5d: ; 2e5d - ld a, [$d19a] - cp $2 - jr z, .asm_2e69 - cp $1 - jr z, .asm_2e69 - ret +INCLUDE "home/flag.asm" -.asm_2e69 - ld hl, StatusFlags - res 2, [hl] - ret -; 2e6f - - -EventFlagAction: ; 0x2e6f - ld hl, EventFlags - call FlagAction - ret - -FlagAction: ; 0x2e76 -; Perform a function on a bit in memory. - -; inputs: -; b: function -; 0 clear bit -; 1 set bit -; 2 check bit -; de: bit number -; hl: index within bit table - - ; get index within the byte - ld a, e - and $7 - - ; shift de right by three bits (get the index within memory) - srl d - rr e - srl d - rr e - srl d - rr e - add hl, de - - ; implement a decoder - ld c, $1 - rrca - jr nc, .one - rlc c -.one - rrca - jr nc, .two - rlc c - rlc c -.two - rrca - jr nc, .three - swap c -.three - - ; check b's value: 0, 1, 2 - ld a, b - cp 1 - jr c, .clearbit ; 0 - jr z, .setbit ; 1 - - ; check bit - ld a, [hl] - and c - ld c, a - ret - -.setbit - ; set bit - ld a, [hl] - or c - ld [hl], a - ret - -.clearbit - ; clear bit - ld a, c - cpl - and [hl] - ld [hl], a - ret -; 0x2ead - - -Function2ead: ; 2ead - ld de, ENGINE_POKEDEX - ld b, CHECK_FLAG - callba EngineFlagAction - ld a, c - and a - ret -; 2ebb Function2ebb: ; 2ebb ld a, [$c2cc] bit 1, a ret z ld a, [hJoyDown] - bit 1, a + bit A_BUTTON, a ret ; 2ec6 @@ -5386,7 +638,6 @@ Function2ec8: ; 2ec8 ret ; 2ecb - Function2ecb: ; 2ecb push hl ld hl, $c2cc @@ -5420,71 +671,40 @@ Function2ee4: ; 2ee4 ; 2ef6 -InitString: ; 2ef6 -; Init a string of length c. - push hl - jr _InitString -; 2ef9 +INCLUDE "home/string.asm" -InitName: ; 2ef9 -; Intended for names, so this function is limited to ten characters. - push hl - ld c, 10 -; 2efc -_InitString: ; 2efc -; if the string pointed to by hl is empty (defined as "zero or more spaces -; followed by a null"), then initialize it to the string pointed to by de. - push bc -.loop - ld a, [hli] - cp "@" - jr z, .blank - cp " " - jr nz, .notblank - dec c - jr nz, .loop -.blank - pop bc - ld l, e - ld h, d - pop de - ld b, $0 - inc c - call CopyBytes - ret -.notblank - pop bc - pop hl - ret -; 2f17 +IsInJohto: ; 2f17 +; Return 0 if the player is in Johto, and 1 in Kanto. -Function2f17: ; 2f17 ld a, [MapGroup] ld b, a ld a, [MapNumber] ld c, a call GetWorldMapLocation - cp $5f - jr z, .asm_2f39 - cp $0 - jr nz, .asm_2f35 + + cp $5f ; SS Aqua + jr z, .Johto + + cp $0 ; Poke Center 2F + jr nz, .CheckRegion + ld a, [BackupMapGroup] ld b, a ld a, [BackupMapNumber] ld c, a call GetWorldMapLocation -.asm_2f35 - cp $2f - jr nc, .asm_2f3b +.CheckRegion + cp $2f ; Pallet Town + jr nc, .Kanto -.asm_2f39 +.Johto xor a ret -.asm_2f3b - ld a, $1 +.Kanto + ld a, 1 ret ; 2f3e @@ -5493,193 +713,10 @@ Function2f3e: ; 2f3e ret ; 2f3f -DoItemEffect: ; 2f3f - callba _DoItemEffect - ret -; 2f46 -CheckTossableItem: ; 2f46 - push hl - push de - push bc - callba _CheckTossableItem - pop bc - pop de - pop hl - ret -; 2f53 - -Function2f53: ; 2f53 - push hl - push de - push bc - ld a, [hROMBank] - push af - ld a, $3 - rst Bankswitch - - call $520d - pop bc - ld a, b - rst Bankswitch - - pop bc - pop de - pop hl - ret -; 2f66 - -Function2f66: ; 2f66 - push bc - ld a, [hROMBank] - push af - ld a, $3 - rst Bankswitch - - push hl - push de - call $51d5 - pop de - pop hl - pop bc - ld a, b - rst Bankswitch - - pop bc - ret -; 2f79 - -PickUpItem: ; 2f79 - push hl - push de - push bc - ld a, [hROMBank] - push af - ld a, BANK(_PickUpItem) - rst Bankswitch - - call _PickUpItem - - pop bc - ld a, b - rst Bankswitch - pop bc - pop de - pop hl - ret -; 2f8c - - -Random: ; 2f8c -; A simple hardware-based random number generator (RNG). - -; Two random numbers are generated by adding and subtracting -; the divider to the respective values every time it's called. - -; The divider is a register that increments at a rate of 16384Hz. -; For comparison, the Game Boy operates at a clock speed of 4.2MHz. - -; Additionally, an equivalent function is executed in VBlank. - -; This leaves a with the value in hRandomSub. - - push bc - - ld a, [rDIV] - ld b, a - ld a, [hRandomAdd] - adc b - ld [hRandomAdd], a - - ld a, [rDIV] - ld b, a - ld a, [hRandomSub] - sbc b - ld [hRandomSub], a - - pop bc - ret -; 2f9f - -BattleRandom: ; 2f9f -; _BattleRandom lives in another bank. - -; It handles all RNG calls in the battle engine, allowing -; link battles to remain in sync using a shared PRNG. - - ld a, [hROMBank] - push af - ld a, BANK(_BattleRandom) - rst Bankswitch - - call _BattleRandom - - ld [$cfb6], a - pop af - rst Bankswitch - ld a, [$cfb6] - ret -; 2fb1 - - -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 Random - ld a, [hRandomAdd] - ld c, a - add b - jr c, .asm_2fbb - ld a, c - pop bc - call SimpleDivide - pop bc - ret -; 2fcb - -GetSRAMBank: ; 2fcb -; load sram bank a -; if invalid bank, sram is disabled - cp NUM_SRAM_BANKS - jr c, OpenSRAM - jr CloseSRAM -; 2fd1 - -OpenSRAM: ; 2fd1 -; switch to sram bank a - push af -; latch clock data - ld a, 1 - ld [MBC3LatchClock], a -; enable sram/clock write - ld a, SRAM_ENABLE - ld [MBC3SRamEnable], a -; select sram bank - pop af - ld [MBC3SRamBank], a - ret -; 2fe1 - -CloseSRAM: ; 2fe1 -; preserve a - push af - ld a, SRAM_DISABLE -; reset clock latch for next time - ld [MBC3LatchClock], a -; disable sram/clock write - ld [MBC3SRamEnable], a - pop af - ret -; 2fec +INCLUDE "home/item.asm" +INCLUDE "home/random.asm" +INCLUDE "home/sram.asm" ; Register aliases @@ -5694,29 +731,7 @@ _de_: ; 2fed ; 2fef -Function2fef: ; 2fef - ld hl, rKEY1 - bit 7, [hl] - jr z, Function2ffd - ret -; 2ff7 - -Function2ff7: ; 2ff7 - ld hl, rKEY1 - bit 7, [hl] - ret z -; 2ffd - -Function2ffd: ; 2ffd - set 0, [hl] - xor a - ld [rIF], a - ld [rIE], a - ld a, $30 - ld [rJOYP], a - stop ; rgbasm adds a nop after this instruction by default - ret -; 300b +INCLUDE "home/double_speed.asm" ClearSprites: ; 300b @@ -5744,139 +759,9 @@ HideSprites: ; 3016 ret ; 3026 -CopyBytes: ; 0x3026 -; copy bc bytes from hl to de - inc b ; we bail the moment b hits 0, so include the last run - inc c ; same thing; include last byte - jr .HandleLoop -.CopyByte - ld a, [hli] - ld [de], a - inc de -.HandleLoop - dec c - jr nz, .CopyByte - dec b - jr nz, .CopyByte - ret -SwapBytes: ; 0x3034 -; swap bc bytes between hl and de -.Loop - ; stash [hl] away on the stack - ld a, [hl] - push af +INCLUDE "home/copy2.asm" - ; copy a byte from [de] to [hl] - ld a, [de] - ld [hli], a - - ; retrieve the previous value of [hl]; put it in [de] - pop af - ld [de], a - - ; handle loop stuff - inc de - dec bc - ld a, b - or c - jr nz, .Loop - ret - -ByteFill: ; 0x3041 -; fill bc bytes with the value of a, starting at hl - inc b ; we bail the moment b hits 0, so include the last run - inc c ; same thing; include last byte - jr .HandleLoop -.PutByte - ld [hli], a -.HandleLoop - dec c - jr nz, .PutByte - dec b - jr nz, .PutByte - ret - -GetFarByte: ; 0x304d -; retrieve a single byte from a:hl, and return it in a. - ; bankswitch to new bank - ld [hBuffer], a - ld a, [hROMBank] - push af - ld a, [hBuffer] - rst Bankswitch - - ; get byte from new bank - ld a, [hl] - ld [hBuffer], a - - ; bankswitch to previous bank - pop af - rst Bankswitch - - ; return retrieved value in a - ld a, [hBuffer] - ret - -GetFarHalfword: ; 0x305d -; retrieve a halfword from a:hl, and return it in hl. - ; bankswitch to new bank - ld [hBuffer], a - ld a, [hROMBank] - push af - ld a, [hBuffer] - rst Bankswitch - - ; get halfword from new bank, put it in hl - ld a, [hli] - ld h, [hl] - ld l, a - - ; bankswitch to previous bank and return - pop af - rst Bankswitch - ret -; 0x306b - -Function306b: ; 306b - ld [hBuffer], a - ld a, [rSVBK] - push af - ld a, [hBuffer] - ld [rSVBK], a - call CopyBytes - pop af - ld [rSVBK], a - ret -; 307b - -Function307b: ; 307b - ld [hBuffer], a - ld a, [rSVBK] - push af - ld a, [hBuffer] - ld [rSVBK], a - ld a, [hl] - ld [hBuffer], a - pop af - ld [rSVBK], a - ld a, [hBuffer] - ret -; 308d - -Function308d: ; 308d - ld [hBuffer], a - ld a, [rSVBK] - push af - ld a, [hBuffer] - ld [rSVBK], a - ld a, [hli] - ld h, [hl] - ld l, a - pop af - ld [rSVBK], a - ret -; 309d Function309d: ; 309d ld a, [rSVBK] @@ -5976,81 +861,7 @@ AddNTimes: ; 0x30fe ; 0x3105 -SimpleMultiply: ; 3105 -; Return a * c. - and a - ret z - - push bc - ld b, a - xor a -.loop - add c - dec b - jr nz, .loop - pop bc - ret -; 3110 - - -SimpleDivide: ; 3110 -; Divide a by c. Return quotient b and remainder a. - ld b, 0 -.loop - inc b - sub c - jr nc, .loop - dec b - add c - ret -; 3119 - - -Multiply: ; 3119 -; Multiply hMultiplicand (3 bytes) by hMultiplier. Result in hProduct. -; All values are big endian. - push hl - push bc - - callab _Multiply - - pop bc - pop hl - ret -; 3124 - - -Divide: ; 3124 -; Divide hDividend length b (max 4 bytes) by hDivisor. Result in hQuotient. -; All values are big endian. - push hl - push de - push bc - ld a, [hROMBank] - push af - ld a, BANK(_Divide) - rst Bankswitch - - call _Divide - - pop af - rst Bankswitch - pop bc - pop de - pop hl - ret -; 3136 - - -SubtractSigned: ; 3136 -; Return a - b, sign in carry. - sub b - ret nc - cpl - add 1 - scf - ret -; 313d +INCLUDE "home/math.asm" PrintLetterDelay: ; 313d @@ -6139,6 +950,7 @@ PrintLetterDelay: ; 313d ret ; 318c + CopyDataUntil: ; 318c ; Copies [hl, bc) to [de, bc - hl). ; In other words, the source data is from hl up to but not including bc, @@ -6155,12 +967,15 @@ CopyDataUntil: ; 318c ret ; 0x3198 + PrintNum: ; 3198 ld a, [hROMBank] push af ld a, BANK(_PrintNum) rst Bankswitch + call _PrintNum + pop af rst Bankswitch ret @@ -6170,18 +985,18 @@ PrintNum: ; 3198 Function31a4: ; 31a4 ld a, [hROMBank] push af - ld a, $41 + ld a, BANK(Function1061ef) rst Bankswitch - call $61ef + call Function1061ef + pop af rst Bankswitch - ret ; 31b0 -Function31b0: ; 31b0 +FarPrintText: ; 31b0 ld [hBuffer], a ld a, [hROMBank] push af @@ -6189,13 +1004,14 @@ Function31b0: ; 31b0 rst Bankswitch call PrintText + pop af rst Bankswitch - ret ; 31be -Function31be: ; 31be + +CallPointerAt: ; 31be ld a, [hROMBank] push af ld a, [hli] @@ -6213,10 +1029,13 @@ Function31be: ; 31be ret ; 31cd + Function31cd: ; 31cd +; Push pointer hl in the current bank to $d0e8. ld a, [hROMBank] Function31cf: ; 31cf +; Push pointer a:hl to $d0e8. ld [$d0e8], a ld a, l ld [$d0e9], a @@ -6280,15 +1099,15 @@ Function3200: ; 0x3200 ld a, [hCGB] and a jr z, .asm_320e - ld a, $2 + ld a, 2 ld [hBGMapMode], a - ld c, $4 + ld c, 4 call DelayFrames .asm_320e - ld a, $1 + ld a, 1 ld [hBGMapMode], a - ld c, $4 + ld c, 4 call DelayFrames ret ; 0x3218 @@ -6305,9 +1124,11 @@ Function321c: ; 321c ld a, [hCGB] and a jr z, .asm_322e + ld a, [$c2ce] cp 0 jr z, .asm_322e + ld a, 1 ld [hBGMapMode], a jr Function323d @@ -6456,26 +1277,28 @@ ClearPalettes: ; 3317 ret .cgb -; Save WRAM bank ld a, [rSVBK] push af -; WRAM bank 5 + ld a, 5 ld [rSVBK], a + ; Fill BGPals and OBPals with $ffff (white) ld hl, BGPals - ld bc, $0080 + ld bc, $80 ld a, $ff call ByteFill -; Restore WRAM bank + pop af ld [rSVBK], a + ; Request palette update ld a, 1 ld [hCGBPalUpdate], a ret ; 333e + ClearSGB: ; 333e ld b, $ff GetSGBLayout: ; 3340 @@ -6549,9 +1372,9 @@ CountSetBits: ; 0x335f GetWeekday: ; 3376 ld a, [CurDay] -.loop +.mod sub 7 - jr nc, .loop + jr nc, .mod add 7 ret ; 3380 @@ -6560,39 +1383,38 @@ GetWeekday: ; 3376 SetSeenAndCaughtMon: ; 3380 push af ld c, a - ld hl, PokedexSeen - ld b, 1 - call GetWramFlag + ld hl, PokedexCaught + ld b, SET_FLAG + call PokedexFlagAction pop af ; fallthrough ; 338b -SetCaughtMon: ; 338b +SetSeenMon: ; 338b ld c, a - ld hl, PokedexCaught - ld b, 1 - jr GetWramFlag + ld hl, PokedexSeen + ld b, SET_FLAG + jr PokedexFlagAction ; 3393 -CheckSeenMon: ; 3393 +CheckCaughtMon: ; 3393 ld c, a - ld hl, PokedexSeen - ld b, 2 - jr GetWramFlag + ld hl, PokedexCaught + ld b, CHECK_FLAG + jr PokedexFlagAction ; 339b -CheckCaughtMon: ; 339b +CheckSeenMon: ; 339b ld c, a - ld hl, PokedexCaught - ld b, 2 + ld hl, PokedexSeen + ld b, CHECK_FLAG ; fallthrough ; 33a1 -GetWramFlag: ; 33a1 +PokedexFlagAction: ; 33a1 ld d, 0 ld a, PREDEF_FLAG call Predef - ld a, c and a ret @@ -6923,7 +1745,7 @@ Function350c: ; 350c Function3524: ; 3524 ld hl, VramState bit 0, [hl] - jp nz, Function485 + jp nz, UpdateTimePals jp Function32f9 ; 352f @@ -7206,7 +2028,7 @@ CheckTrainerBattle: ; 360d pop af ld [$ffe0], a ld a, b - ld [CurFruit], a + ld [$d03f], a ld a, c ld [MartPointer], a jr Function367e @@ -7214,7 +2036,7 @@ CheckTrainerBattle: ; 360d Function3674: ; 3674 ld a, $1 - ld [CurFruit], a + ld [$d03f], a ld a, $ff ld [MartPointer], a @@ -7366,7 +2188,7 @@ Function3718: ; 3718 ld h, [hl] ld l, a call GetMapEventBank - call Function31b0 + call FarPrintText call WaitBGMap call Functiona80 ret @@ -8250,16 +3072,19 @@ Function3b0c: ; 3b0c ld a, [hLCDStatCustom] and a ret z - ld a, $0 - ld [$cf68], a + + ld a, $00 + ld [Requested2bppSource], a ld a, $d2 - ld [$cf69], a - ld a, $0 - ld [$cf6a], a + ld [Requested2bppSource + 1], a + + ld a, $00 + ld [Requested2bppDest], a ld a, $d1 - ld [$cf6b], a + ld [Requested2bppDest + 1], a + ld a, $9 - ld [$cf67], a + ld [Requested2bpp], a ret ; 3b2a @@ -9239,7 +4064,7 @@ LoadPushOAM: ; 4031 ; 403f PushOAM: ; 403f - ld a, $c4 + ld a, Sprites >> 8 ld [rDMA], a ld a, $28 .loop @@ -11176,7 +6001,7 @@ Function4c5d: ; 4c5d inc [hl] ld a, [hl] ld d, $60 - call Function1b11 + call Sine ld a, h sub $60 ld hl, $001a @@ -11249,7 +6074,7 @@ Function4cc9: ; 4cc9 inc [hl] ld a, [hl] ld d, $60 - call Function1b11 + call Sine ld a, h sub $60 ld hl, $001a @@ -11340,7 +6165,7 @@ Function4d4f: ; 4d4f inc [hl] ld a, [hl] ld d, $60 - call Function1b11 + call Sine ld a, h sub $60 ld hl, $001a @@ -12514,7 +7339,7 @@ Function57bc: ; 57bc .asm_57c4 ld a, $0 - ld [$d4e1], a + ld [PlayerAction], a ret ; 57ca @@ -13786,7 +8611,7 @@ Function5f6b: ; 5f6b bit 0, a ret z push hl - ld hl, PokedexSeen + ld hl, PokedexCaught ld b, $20 call CountSetBits pop hl @@ -14196,7 +9021,7 @@ Function620b: ; 620b ld [hWY], a ld b, $8 call GetSGBLayout - call Function485 + call UpdateTimePals ld a, [$cf64] cp $5 jr c, .asm_625e @@ -14294,7 +9119,7 @@ TitleScreenEntrance: ; 62bc ; Lay out a base (all lines scrolling together). ld e, a - ld hl, $d100 + ld hl, LYOverrides ld bc, 8 * 10 ; logo height call ByteFill @@ -16746,7 +11571,7 @@ Function831e: ; 831e call Function1b1e ld a, $3e call Function1b3f - ld a, [CurFruit] + ld a, [$d03f] dec a jr z, Function833b ld a, [$ffe0] @@ -17069,17 +11894,22 @@ Function849d: ; 849d ret ; 84d9 -Function84d9: ; 84d9 +_Sine: ; 84d9 +; A simple sine function. +; Return d * sin(e) in hl. + +; e is a signed 6-bit value. ld a, e - and $3f - cp $20 - jr nc, .asm_84e5 + and %111111 + cp %100000 + jr nc, .negative + call Function84ef ld a, h ret -.asm_84e5 - and $1f +.negative + and %011111 call Function84ef ld a, h xor $ff @@ -17091,62 +11921,63 @@ Function84ef: ; 84ef ld e, a ld a, d ld d, 0 - ld hl, $450b + ld hl, SineWave add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] ld hl, 0 -.asm_84fe + +; Factor amplitude +.multiply srl a - jr nc, .asm_8503 + jr nc, .even add hl, de - -.asm_8503 +.even sla e rl d and a - jr nz, .asm_84fe + jr nz, .multiply ret ; 850b -INCBIN "baserom.gbc", $850b, $854b - $850b +SineWave: ; 850b +; A $20-word table representing a sine wave. +; 90 degrees is index $10 at a base amplitude of $100. +x set 0 + rept $20 + dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up +x set x + $100 * $40000 + endr +; 854b -GetPredefFn: ; 854b -; input: -; [$cfb4] id +GetPredefPointer: ; 854b +; Return the bank and address of PredefID in a and PredefAddress. -; save hl for later +; Save hl for later (back in Predef) ld a, h - ld [$cfb5], a + ld [PredefTemp], a ld a, l - ld [$cfb6], a - + ld [PredefTemp + 1], a + push de - -; get id - ld a, [$cfb4] + ld a, [PredefID] ld e, a - ld d, $0 + ld d, 0 ld hl, PredefPointers -; seek add hl, de add hl, de add hl, de - pop de - -; store address in [$cfb7-8] -; addr lo + ld a, [hli] - ld [$cfb8], a -; addr hi + ld [PredefAddress + 1], a ld a, [hli] - ld [$cfb7], a -; get bank + ld [PredefAddress], a ld a, [hl] + ret ; 856b @@ -17155,23 +11986,23 @@ PredefPointers: ; 856b ; address, bank dwb Function6508, BANK(Function6508) - dwb $747a, $01 - dwb $4658, $03 - dwb $57c1, $13 ; Flag, BANK(Flag) - dwb $4699, $03 + dwb Function747a, BANK(Function747a) + dwb Functionc658, BANK(Functionc658) + dwb FlagPredef, BANK(FlagPredef) + dwb Functionc699, BANK(Functionc699) dwb FillPP, BANK(FillPP) dwb Functiond88c, BANK(Functiond88c) - dwb $5a96, $03 - dwb $5b3f, $03 + dwb Functionda96, BANK(Functionda96) + dwb Functiondb3f, BANK(Functiondb3f) dwb Functionde6e, BANK(Functionde6e) dwb Functiondf8c, BANK(Functiondf8c) - dwb $46e0, $03 + dwb Functionc6e0, BANK(Functionc6e0) dwb Functione167, BANK(Functione167) dwb Functione17b, BANK(Functione17b) - dwb $5639, $04 - dwb $566a, $04 - dwb $4eef, $0a - dwb $4b3e, $0b ; PrintMoveDescription, BANK(PrintMoveDescription) + dwb CanLearnTMHMMove, BANK(CanLearnTMHMMove) + dwb GetTMHMMove, BANK(GetTMHMMove) + dwb Function28eef, BANK(Function28eef) + dwb PrintMoveDesc, BANK(PrintMoveDesc) dwb Function3df48, BANK(Function3df48) ; UpdatePlayerHUD dwb FillBox, BANK(FillBox) dwb Function3d873, BANK(Function3d873) @@ -17182,141 +12013,135 @@ PredefPointers: ; 856b dwb Function3f47c, BANK(Function3f47c) dwb Function42487, BANK(Function42487) dwb FillMoves, BANK(FillMoves) - dwb $61e6, $10 - dwb $4f63, $0a - dwb $4f24, $0a - dwb $484a, $14 - dwb $4d6f, $14 - dwb $4d2e, $14 - dwb $4cdb, $14 - dwb $4c50, $14 + dwb Function421e6, BANK(Function421e6) + dwb Function28f63, BANK(Function28f63) + dwb Function28f24, BANK(Function28f24) + dwb Function5084a, BANK(Function5084a) + dwb Function50d6f, BANK(Function50d6f) + dwb Function50d2e, BANK(Function50d2e) + dwb Function50cdb, BANK(Function50cdb) + dwb Function50c50, BANK(Function50c50) dwb GetGender, BANK(GetGender) dwb StatsScreenInit, BANK(StatsScreenInit) dwb DrawPlayerHP, BANK(DrawPlayerHP) dwb DrawEnemyHP, BANK(DrawEnemyHP) - dwb $4b7b, $14 + dwb Function50b7b, BANK(Function50b7b) dwb GetTypeName, BANK(GetTypeName) dwb PrintMoveType, BANK(PrintMoveType) dwb PrintType, BANK(PrintType) dwb PrintMonTypes, BANK(PrintMonTypes) - dwb $5040, $14 ; GetUnownLetter - dwb $7cdd, $32 - dwb $40d5, $33 - dwb $5853, $02 - dwb $464c, $02 ; LoadSGBLayout, BANK(LoadSGBLayout) - dwb $5d11, $24 + dwb GetUnownLetter, BANK(GetUnownLetter) + dwb Functioncbcdd, BANK(Functioncbcdd) + dwb Functioncc0d5, BANK(Functioncc0d5) + dwb Function9853, BANK(Function9853) + dwb Function864c, BANK(Function864c) + dwb Function91d11, BANK(Function91d11) dwb CheckContestMon, BANK(CheckContestMon) dwb Function8c20f, BANK(Function8c20f) - dwb $4000, $23 - dwb $4000, $23 + dwb Function8c000, BANK(Function8c000) + dwb Function8c000, BANK(Function8c000) dwb Functioncc0d6, BANK(Functioncc0d6) - dwb $40d5, $33 - dwb $40d5, $33 - dwb $51d0, $3f + dwb Functioncc0d5, BANK(Functioncc0d5) + dwb Functioncc0d5, BANK(Functioncc0d5) + dwb Functionfd1d0, BANK(Functionfd1d0) dwb PartyMonItemName, BANK(PartyMonItemName) - dwb $5077, $14 - dwb $516c, $14 - dwb $508b, $14 + dwb Function51077, BANK(Function51077) + dwb Function5116c, BANK(Function5116c) + dwb Function5108b, BANK(Function5108b) dwb Function5120d, BANK(Function5120d) dwb DecompressPredef, BANK(DecompressPredef) dwb Function0x347d3, BANK(Function0x347d3) - dwb $7908, $3e - dwb $7877, $3e - dwb $4000, $34 + dwb Functionfb908, BANK(Functionfb908) + dwb Functionfb877, BANK(Functionfb877) + dwb Functiond0000, BANK(Functiond0000) dwb Function50d0a, BANK(Function50d0a) - dwb $40a3, $34 - dwb $408e, $34 - dwb $4669, $34 - dwb $466e, $34 - dwb $43ff, $2d + dwb Functiond00a3, BANK(Functiond00a3) + dwb Functiond008e, BANK(Functiond008e) + dwb Functiond0669, BANK(Functiond0669) + dwb Functiond066e, BANK(Functiond066e) + dbw $ff, Function2d43 ; ???? ; 864c -Function864c: ; 864c - call Function8d55 - jp nz, Function8d59 - ld a, b - cp $ff - jr nz, .asm_865a - ld a, [SGBPredef] +INCLUDE "predef/sgb.asm" -.asm_865a - cp $fc - jp z, Function8ade - ld l, a - ld h, 0 - add hl, hl - ld de, $466f - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld de, Function8a60 - push de - jp [hl] -; 866f -INCBIN "baserom.gbc", $866f, $8a60 - $866f +CheckShininess: ; 8a68 +; Check if a mon is shiny by DVs at bc. +; Return carry if shiny. -Function8a60: ; 8a60 - push de - call Function9809 - pop hl - jp Function9809 -; 8a68 + ld l, c + ld h, b +; Attack + ld a, [hl] + and %0010 << 4 + jr z, .NotShiny -CheckShininess: ; 0x8a68 -; given a pointer to Attack/Defense DV in bc, determine if monster is shiny. -; if shiny, set carry. - ld l,c - ld h,b - ld a,[hl] - and a,%00100000 ; is attack DV xx1x? - jr z,.NotShiny - ld a,[hli] - and a,%1111 - cp $A ; is defense DV 1010? - jr nz,.NotShiny - ld a,[hl] - and a,%11110000 - cp $A0 ; is speed DV 1010? - jr nz,.NotShiny - ld a,[hl] - and a,%1111 - cp $A ; is special DV 1010? - jr nz,.NotShiny +; Defense + ld a, [hli] + and %1111 + cp %1010 + jr nz, .NotShiny + +; Speed + ld a, [hl] + and %1111 << 4 + cp %1010 << 4 + jr nz, .NotShiny + +; Special + ld a, [hl] + and %1111 + cp %1010 + jr nz, .NotShiny + +.Shiny scf ret + .NotShiny - and a ; clear carry flag + and a ret ; 8a88 CheckContestMon: ; 8a88 +; Check a mon's DVs at hl in the bug catching contest. +; Return carry if its DVs are good enough to place in the contest. + +; Attack ld a, [hl] - cp $a0 - jr c, .asm_8aa2 + cp 10 << 4 + jr c, .Bad + +; Defense ld a, [hli] and $f - cp $a - jr c, .asm_8aa2 + cp 10 + jr c, .Bad + +; Speed ld a, [hl] - cp $a0 - jr c, .asm_8aa2 + cp 10 << 4 + jr c, .Bad + +; Special ld a, [hl] and $f - cp $a - jr c, .asm_8aa2 + cp 10 + jr c, .Bad + +.Good scf ret -.asm_8aa2 +.Bad and a ret ; 8aa4 + Function8aa4: ; 8aa4 push de push bc @@ -17379,25 +12204,78 @@ Function8ade: ; 8ade ; 8b07 Function8b07: ; 8b07 - call Function8d55 + call CheckCGB ret z ld hl, $4b2f ld de, $d000 ld bc, $0008 ld a, $5 - call Function306b + call FarCopyWRAM ld hl, $4b37 ld de, MartPointer ld bc, $0008 ld a, $5 - call Function306b + call FarCopyWRAM call Function96a4 ld a, $1 ld [hCGBPalUpdate], a ret ; 8b2f -INCBIN "baserom.gbc", $8b2f, $8cb4 - $8b2f +INCBIN "baserom.gbc", $8b2f, $8c43 - $8b2f + +Function8c43: ; 8c43 + ld a, [$d10a] + and a + jr z, .asm_8c52 + cp $1 + jr z, .asm_8c57 + cp $2 + jr z, .asm_8c70 + ret + +.asm_8c52 + ld de, $d092 + jr .asm_8c5a + +.asm_8c57 + ld de, $d09a + +.asm_8c5a + ld l, c + ld h, $0 + add hl, hl + add hl, hl + ld bc, $68be + add hl, bc + ld bc, $0004 + ld a, $5 + call FarCopyWRAM + ld a, $1 + ld [hCGBPalUpdate], a + ret + +.asm_8c70 + ld e, c + inc e + ld hl, $cdf8 + ld bc, $0028 + ld a, [CurPartyMon] +.asm_8c7b + and a + jr z, .asm_8c82 + add hl, bc + dec a + jr .asm_8c7b + +.asm_8c82 + ld bc, $0208 + ld a, e + call Function9663 + ret +; 8c8a + +INCBIN "baserom.gbc", $8c8a, $8cb4 - $8c8a Function8cb4: ; 8cb4 ld l, e @@ -17407,7 +12285,7 @@ Function8cb4: ; 8cb4 add hl, hl ld de, $4d05 add hl, de - call Function8d55 + call CheckCGB jr nz, .asm_8cf0 push hl ld hl, $5ce6 @@ -17435,7 +12313,7 @@ Function8cb4: ; 8cb4 ld de, $d000 ld bc, $0008 ld a, $5 - call Function306b + call FarCopyWRAM call Function96a4 call Function9699 call Function96b3 @@ -17445,231 +12323,10 @@ Function8cb4: ; 8cb4 INCBIN "baserom.gbc", $8d05, $8d55 - $8d05 -Function8d55: ; 8d55 - ld a, [hCGB] - and a - ret -; 8d59 - -Function8d59: ; 8d59 - ld a, b - cp $ff - jr nz, .asm_8d61 - ld a, [SGBPredef] - -.asm_8d61 - cp $fc - jp z, Function96f3 - call Function9673 - ld l, a - ld h, $0 - add hl, hl - ld de, $4d7a - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld de, Function8d79 - push de - jp [hl] -; 8d79 +INCLUDE "predef/cgb.asm" -Function8d79: ; 8d79 - ret -; 8d7a -INCBIN "baserom.gbc", $8d7a, $8db8 - $8d7a - -Function8db8: ; 8db8 - ld hl, $5c67 - ld de, $d000 - ld c, $4 - call $5615 - ld hl, $5c67 - ld de, $d020 - ld c, $4 - call $5615 - ld hl, $5c67 - ld de, MartPointer - ld c, $2 - call $5615 - jr .asm_8e23 - - ld de, $d000 - call Function9729 - push hl - call Function9643 - call Function973a - push hl - call Function9643 - ld a, [EnemyHPPal] - ld l, a - ld h, $0 - add hl, hl - add hl, hl - ld bc, $68be - add hl, bc - call Function9643 - ld a, [PlayerHPPal] - ld l, a - ld h, $0 - add hl, hl - add hl, hl - ld bc, $68be - add hl, bc - call Function9643 - ld hl, $68ca - call Function9643 - ld de, MartPointer - pop hl - call Function9643 - pop hl - call Function9643 - ld a, $1 - ld [SGBPredef], a - call Function96a4 - -.asm_8e23 - call Function8e85 - ld hl, AttrMap - ld bc, $0168 - ld a, $2 - call ByteFill - ld hl, $ce29 - ld bc, $080a - ld a, $0 - call Function9663 - ld hl, $cde3 - ld bc, $070a - ld a, $1 - call Function9663 - ld hl, AttrMap - ld bc, $040a - ld a, $2 - call Function9663 - ld hl, $ce6f - ld bc, $050a - ld a, $3 - call Function9663 - ld hl, $cebf - ld bc, $0109 - ld a, $4 - call Function9663 - ld hl, $cec9 - ld bc, $0078 - ld a, $7 - call ByteFill - ld hl, $579c - ld de, $d050 - ld bc, $0030 - ld a, $5 - call Function306b - call Function96b3 - ret -; 8e85 - - -Function8e85: ; 8e85 - ld a, $40 - ld hl, $4dc0 - rst FarCall - ld hl, $7311 - jr nc, .asm_8e93 - ld hl, $7309 - -.asm_8e93 - ld de, $d038 - ld bc, $0008 - ld a, $5 - call Function306b - ret -; 8e9f - -Function8e9f: ; 8e9f - callba Function100dc0 - ld hl, $7311 - jr nc, .asm_8ead - ld hl, $7309 - -.asm_8ead - ld de, $d000 - ld bc, $0008 - ld a, $5 - call Function306b - ret -; 8eb9 - -Function8eb9: ; 8eb9 - ld a, [PlayerGender] - bit 0, a - jr z, .asm_8ec5 - ld hl, $7759 - jr .asm_8ec8 - -.asm_8ec5 - ld hl, $7729 - -.asm_8ec8 - ld de, $d000 - ld bc, $0030 - ld a, $5 - call Function306b - call Function96a4 - ld a, $1 - ld [hCGBPalUpdate], a - ret -; 8edb - -Function8edb: ; 8edb - ld de, $d000 - ld a, [$cda1] - ld l, a - ld h, $0 - add hl, hl - add hl, hl - ld bc, $68be - add hl, bc - call Function9643 - ld a, [CurPartySpecies] - ld bc, TempMonDVs - call Function974b - call Function9643 - ld hl, $68ca - call Function9643 - ld hl, $4f52 - ld de, $d018 - ld bc, $0018 - ld a, $5 - call Function306b - call Function9699 - ld hl, AttrMap - ld bc, $0814 - ld a, $1 - call Function9663 - ld hl, $cf23 - ld bc, $000a - ld a, $2 - call ByteFill - ld hl, $ce4a - ld bc, $0202 - ld a, $3 - call Function9663 - ld hl, $ce4c - ld bc, $0202 - ld a, $4 - call Function9663 - ld hl, $ce4e - ld bc, $0202 - ld a, $5 - call Function9663 - call Function96b3 - call Function96a4 - ld a, $1 - ld [hCGBPalUpdate], a - ret -; 8f52 - -INCBIN "baserom.gbc", $8f52, $9610 - $8f52 +INCBIN "baserom.gbc", $95e0, $9610 - $95e0 Function9610: ; 9610 @@ -17809,7 +12466,7 @@ Function96a4: ; 96a4 ld de, $d080 ld bc, $0080 ld a, $5 - call Function306b + call FarCopyWRAM ret ; 96b3 @@ -17891,7 +12548,7 @@ Function971a: ; 971a ld de, MartPointer ld bc, $0010 ld a, $5 - call Function306b + call FarCopyWRAM ret ; 9729 @@ -17938,6 +12595,8 @@ Function9764: ; 9764 and a jp nz, Function97f9 ld a, [TrainerClass] + +Function976b: ; 976b ld l, a ld h, $0 add hl, hl @@ -17947,7 +12606,12 @@ Function9764: ; 9764 ret ; 9775 -INCBIN "baserom.gbc", $9775, $97ee - $9775 +Function9775: ; 9775 + call Function97ee + ret +; 9779 + +INCBIN "baserom.gbc", $9779, $97ee - $9779 Function97ee: ; 97ee ld l, a @@ -18028,11 +12692,41 @@ Function981a: ; 981a ret ; 9853 -INCBIN "baserom.gbc", $9853, $9890 - $9853 +Function9853: ; 9853 + call CheckCGB + ret nz + di + ld a, [$cfbe] + push af + set 7, a + ld [$cfbe], a + xor a + ld [rJOYP], a + ld [hSGB], a + call Function994a + jr nc, .asm_988a + ld a, $1 + ld [hSGB], a + call Function98eb + call Function99b4 + call Function9a7a + call Function993f + call Function992c + call Function9a7a + call Function993f + ld hl, $5d66 + call Function981a + +.asm_988a + pop af + ld [$cfbe], a + ei + ret +; 9890 Function9890: ; 9890 - call Function8d55 + call CheckCGB ret z ld a, $1 ld [rVBK], a @@ -18087,7 +12781,181 @@ Function98df: ; 98df ret ; 98eb -INCBIN "baserom.gbc", $98eb, $9a52 - $98eb +Function98eb: ; 98eb + ld hl, $58ff + ld c, $9 +.asm_98f0 + push bc + ld a, [hli] + push hl + ld h, [hl] + ld l, a + call Function981a + pop hl + inc hl + pop bc + dec c + jr nz, .asm_98f0 + ret +; 98ff + +INCBIN "baserom.gbc", $98ff, $992c - $98ff + +Function992c: ; 992c + call Function9938 + push de + call Function9a24 + pop hl + call Function99d8 + ret +; 9938 + +Function9938: ; 9938 + ld hl, $651e + ld de, $606e + ret +; 993f + +Function993f: ; 993f + ld hl, VTiles0 + ld bc, $2000 + xor a + call ByteFill + ret +; 994a + +Function994a: ; 994a + ld hl, $5d26 + call Function981a + call Function9a7a + ld a, [rJOYP] + and $3 + cp $3 + jr nz, .asm_99a6 + ld a, $20 + ld [rJOYP], a + ld a, [rJOYP] + ld a, [rJOYP] + call Function9a7a + call Function9a7a + ld a, $30 + ld [rJOYP], a + call Function9a7a + call Function9a7a + ld a, $10 + ld [rJOYP], a + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + call Function9a7a + call Function9a7a + ld a, $30 + ld [rJOYP], a + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + call Function9a7a + call Function9a7a + ld a, [rJOYP] + and $3 + cp $3 + jr nz, .asm_99a6 + call Function99ab + and a + ret + +.asm_99a6 + call Function99ab + scf + ret +; 99ab + +Function99ab: ; 99ab + ld hl, $5d16 + call Function981a + jp Function9a7a +; 99b4 + +Function99b4: ; 99b4 + call DisableLCD + ld a, $e4 + ld [rBGP], a + ld hl, $5df6 + ld de, VTiles1 + ld bc, $1000 + call CopyData + call DrawDefaultTiles + ld a, $e3 + ld [rLCDC], a + ld hl, $5d06 + call Function981a + xor a + ld [rBGP], a + ret +; 99d8 + +Function99d8: ; 99d8 + call DisableLCD + ld a, $e4 + ld [rBGP], a + ld de, VTiles1 + ld bc, $0140 + call CopyData + ld b, $12 +.asm_99ea + push bc + ld bc, $000c + call CopyData + ld bc, $0028 + call ClearBytes + ld bc, $000c + call CopyData + pop bc + dec b + jr nz, .asm_99ea + ld bc, $0140 + call CopyData + ld bc, Start + call ClearBytes + ld bc, $0080 + call CopyData + call DrawDefaultTiles + ld a, $e3 + ld [rLCDC], a + ld hl, $5d46 + call Function981a + xor a + ld [rBGP], a + ret +; 9a24 + +Function9a24: ; 9a24 + call DisableLCD + ld a, $e4 + ld [rBGP], a + ld de, VTiles1 + ld b, $80 +.asm_9a30 + push bc + ld bc, $0010 + call CopyData + ld bc, $0010 + call ClearBytes + pop bc + dec b + jr nz, .asm_9a30 + call DrawDefaultTiles + ld a, $e3 + ld [rLCDC], a + ld hl, $5d36 + call Function981a + xor a + ld [rBGP], a + ret +; 9a52 CopyData: ; 0x9a52 ; copy bc bytes of data from hl to de @@ -18161,7 +13029,106 @@ INCBIN "baserom.gbc", $b0ae, $b0d2 - $b0ae TrainerPalettes: INCLUDE "gfx/trainers/palette_pointers.asm" -INCBIN "baserom.gbc", $b1de, $b319 - $b1de +Functionb1de: ; b1de + callba Function494ac + jr c, .asm_b230 + ld a, [$d19a] + and $7 + ld e, a + ld d, $0 + ld hl, $7279 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [TimeOfDayPal] + and $3 + add a + add a + add a + ld e, a + ld d, $0 + add hl, de + ld e, l + ld d, h + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Unkn1Pals + ld b, $8 +.asm_b210 + ld a, [de] + push de + push hl + ld l, a + ld h, $0 + add hl, hl + add hl, hl + add hl, hl + ld de, MornPal + add hl, de + ld e, l + ld d, h + pop hl + ld c, $8 +.asm_b222 + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_b222 + pop de + inc de + dec b + jr nz, .asm_b210 + pop af + ld [rSVBK], a + +.asm_b230 + ld a, [TimeOfDayPal] + and $3 + ld bc, $0040 + ld hl, $7469 + call AddNTimes + ld de, Unkn2Pals + ld bc, $0040 + ld a, $5 + call FarCopyWRAM + ld a, [$d19a] + cp $1 + jr z, .asm_b253 + cp $2 + ret nz + +.asm_b253 + ld a, [MapGroup] + ld l, a + ld h, $0 + add hl, hl + add hl, hl + add hl, hl + ld de, $7569 + add hl, de + ld a, [TimeOfDayPal] + and $3 + cp $2 + jr c, .asm_b26d + inc hl + inc hl + inc hl + inc hl + +.asm_b26d + ld de, $d032 + ld bc, $0004 + ld a, $5 + call FarCopyWRAM + ret +; b279 + +INCBIN "baserom.gbc", $b279, $b319 - $b279 MornPal: ; 0xb319 INCBIN "tilesets/morn.pal" @@ -18218,184 +13185,253 @@ Functionc01b: ; c01b SpecialsPointers: ; c029 dbw BANK(Function97c28), Function97c28 - dbw $0a, $5ce8 - dbw $0a, $5d11 - dbw $0a, $5d92 - dbw $0a, $5e66 - dbw $0a, $5e82 - dbw $0a, $5efa - dbw $0a, $5eee - dbw $0a, $5c92 - dbw $0a, $5cf1 - dbw $0a, $5cfa - dbw $0a, $5bfb - dbw $0a, $5c7b - dbw $0a, $5ec4 - dbw $0a, $5ed9 - dbw $0a, $5eaf - dbw $0a, $5f47 - dbw $03, $42f6 - dbw $03, $4309 - dbw $41, $50b9 - dbw $03, $434a - dbw $13, $59e5 - dbw $04, $7a12 - dbw $04, $7a31 - dbw $04, $75db - dbw $3e, $7b32 - dbw $3e, $7cd2 - dbw $03, $4658 - dbw $05, $559a - dbw $03, $42e7 - dbw $05, $66d6 - dbw $05, $672a - dbw $05, $6936 - dbw $0b, $4547 - dbw $05, $6218 - dbw $23, $4c04 + dbw BANK(Function29ce8), Function29ce8 + dbw BANK(Function29d11), Function29d11 + dbw BANK(Function29d92), Function29d92 + dbw BANK(Function29e66), Function29e66 + dbw BANK(Function29e82), Function29e82 + dbw BANK(Function29efa), Function29efa + dbw BANK(Function29eee), Function29eee + dbw BANK(Function29c92), Function29c92 + dbw BANK(Function29cf1), Function29cf1 + dbw BANK(Function29cfa), Function29cfa + dbw BANK(Function29bfb), Function29bfb + dbw BANK(Function29c7b), Function29c7b + dbw BANK(Function29ec4), Function29ec4 + dbw BANK(Function29ed9), Function29ed9 + dbw BANK(Function29eaf), Function29eaf + dbw BANK(Function29f47), Function29f47 + dbw BANK(Functionc2f6), Functionc2f6 + dbw BANK(Functionc309), Functionc309 + dbw BANK(Function1050b9), Function1050b9 + dbw BANK(Functionc34a), Functionc34a + dbw BANK(Function4d9e5), Function4d9e5 + dbw BANK(Function13a12), Function13a12 + dbw BANK(Function13a31), Function13a31 + dbw BANK(Function135db), Function135db + dbw BANK(Functionfbb32), Functionfbb32 + dbw BANK(Functionfbcd2), Functionfbcd2 + dbw BANK(Functionc658), Functionc658 + dbw BANK(Function1559a), Function1559a + dbw BANK(Functionc2e7), Functionc2e7 + dbw BANK(Function166d6), Function166d6 + dbw BANK(Function1672a), Function1672a + dbw BANK(Function16936), Function16936 + dbw BANK(Function2c547), Function2c547 + dbw BANK(Function16218), Function16218 + dbw BANK(Function8cc04), Function8cc04 dbw BANK(SpecialNameRival), SpecialNameRival - dbw $24, $4913 - dbw $03, $42c0 - dbw $03, $42cd - dbw $03, $4355 - dbw $03, $4360 - dbw $03, $4373 - dbw $03, $4380 - dbw $03, $438d - dbw $03, $43db + dbw BANK(Function90913), Function90913 + dbw BANK(Functionc2c0), Functionc2c0 + dbw BANK(Functionc2cd), Functionc2cd + dbw BANK(Functionc355), Functionc355 + dbw BANK(Functionc360), Functionc360 + dbw BANK(Functionc373), Functionc373 + dbw BANK(Functionc380), Functionc380 + dbw BANK(Functionc38d), Functionc38d + dbw BANK(Functionc3db), Functionc3db dbw BANK(Function8c084), Function8c084 - dbw $23, $4092 - dbw $23, $40b6 + dbw BANK(Function8c092), Function8c092 + dbw BANK(Function8c0b6), Function8c0b6 dbw BANK(Function8c079), Function8c079 - dbw $23, $40ab + dbw BANK(Function8c0ab), Function8c0ab dbw BANK(Functiond91), Functiond91 dbw BANK(WhiteBGMap), WhiteBGMap - dbw BANK(Function485), Function485 + dbw BANK(UpdateTimePals), UpdateTimePals dbw BANK(ClearTileMap), ClearTileMap dbw BANK(Function1ad2), Function1ad2 dbw BANK(Functione4a), Functione4a - dbw $03, $4230 - dbw $03, $4252 + dbw BANK(Functionc230), Functionc230 + dbw BANK(SpecialSeenMon), SpecialSeenMon dbw BANK(WaitSFX),WaitSFX dbw BANK(Function3cdf), Function3cdf dbw BANK(Function3d47), Function3d47 - dbw $04, $6324 - dbw $02, $4379 - dbw $03, $425a - dbw $03, $4268 - dbw $03, $4276 - dbw $03, $4284 - dbw $03, $43ef - dbw $05, $7421 - dbw $05, $7440 - dbw $04, $79a8 - dbw $03, $43fc - dbw $09, $6feb - dbw $09, $7043 + dbw BANK(Function12324), Function12324 + dbw BANK(Function8379), Function8379 + dbw BANK(Functionc25a), Functionc25a + dbw BANK(Functionc268), Functionc268 + dbw BANK(Functionc276), Functionc276 + dbw BANK(Functionc284), Functionc284 + dbw BANK(Functionc3ef), Functionc3ef + dbw BANK(Function17421), Function17421 + dbw BANK(Function17440), Function17440 + dbw BANK(Function139a8), Function139a8 + dbw BANK(Functionc3fc), Functionc3fc + dbw BANK(Function26feb), Function26feb + dbw BANK(Function27043), Function27043 dbw BANK(SpecialGiveShuckle), SpecialGiveShuckle dbw BANK(SpecialReturnShuckle), SpecialReturnShuckle - dbw $01, $73f7 + dbw BANK(Function73f7), Function73f7 dbw BANK(SpecialCheckPokerus),SpecialCheckPokerus dbw BANK(Function24b25), Function24b25 - dbw $09, $4b4e + dbw BANK(Function24b4e), Function24b4e dbw BANK(Function24ae8), Function24ae8 - dbw $13, $587a - dbw $03, $4434 - dbw $03, $4422 - dbw $13, $59d3 - dbw $22, $4018 - dbw $03, $42b9 - dbw $03, $42da - dbw $01, $718d - dbw $01, $71ac - dbw $0a, $64ab - dbw $0a, $651f - dbw $0a, $6567 + dbw BANK(Function4d87a), Function4d87a + dbw BANK(Functionc434), Functionc434 + dbw BANK(Functionc422), Functionc422 + dbw BANK(Function4d9d3), Function4d9d3 + dbw BANK(Function88018), Function88018 + dbw BANK(SpecialNameRater), SpecialNameRater + dbw BANK(Functionc2da), Functionc2da + dbw BANK(Function718d), Function718d + dbw BANK(Function71ac), Function71ac + dbw BANK(Function2a4ab), Function2a4ab + dbw BANK(Function2a51f), Function2a51f + dbw BANK(Function2a567), Function2a567 dbw BANK(Function14209), Function14209 - dbw $3e, $7841 + dbw BANK(Functionfb841), Functionfb841 dbw BANK(SpecialSnorlaxAwake),SpecialSnorlaxAwake - dbw $01, $7413 - dbw $01, $7418 - dbw $01, $741d - dbw $03, $4472 + dbw BANK(Function7413), Function7413 + dbw BANK(Function7418), Function7418 + dbw BANK(Function741d), Function741d + dbw BANK(Functionc472), Functionc472 dbw BANK(ProfOaksPCBoot), ProfOaksPCBoot dbw BANK(SpecialGameboyCheck),SpecialGameboyCheck dbw BANK(SpecialTrainerHouse),SpecialTrainerHouse - dbw $05, $6dc7 + dbw BANK(Function16dc7), Function16dc7 dbw BANK(InitRoamMons), InitRoamMons - dbw $03, $448f - dbw $03, $449f - dbw $03, $44ac - dbw $46, $6c3e - dbw $46, $7444 - dbw $46, $75e8 - dbw $46, $77e5 - dbw $46, $7879 - dbw $46, $7920 - dbw $46, $793b - dbw $5c, $40b0 - dbw $5c, $40ba - dbw $5c, $4114 - dbw $5c, $4215 - dbw $5c, $44e1 - dbw $5c, $421d - dbw $5c, $4b44 - dbw $46, $7a38 - dbw $5c, $4bd3 - dbw $45, $7656 + dbw BANK(Functionc48f), Functionc48f + dbw BANK(Functionc49f), Functionc49f + dbw BANK(Functionc4ac), Functionc4ac + dbw BANK(Function11ac3e), Function11ac3e + dbw BANK(Function11b444), Function11b444 + dbw BANK(Function11b5e8), Function11b5e8 + dbw BANK(Function11b7e5), Function11b7e5 + dbw BANK(Function11b879), Function11b879 + dbw BANK(Function11b920), Function11b920 + dbw BANK(Function11b93b), Function11b93b + dbw BANK(Function1700b0), Function1700b0 + dbw BANK(Function1700ba), Function1700ba + dbw BANK(Function170114), Function170114 + dbw BANK(Function170215), Function170215 + dbw BANK(Function1704e1), Function1704e1 + dbw BANK(Function17021d), Function17021d + dbw BANK(Function170b44), Function170b44 + dbw BANK(Function11ba38), Function11ba38 + dbw BANK(Function170bd3), Function170bd3 + dbw BANK(Function117656), Function117656 dbw BANK(Reset), Reset - dbw $40, $51f1 - dbw $40, $5220 - dbw $40, $5225 - dbw $40, $5231 + dbw BANK(Function1011f1), Function1011f1 + dbw BANK(Function101220), Function101220 + dbw BANK(Function101225), Function101225 + dbw BANK(Function101231), Function101231 dbw BANK(Function4925b), Function4925b - dbw $22, $6def - dbw $47, $41ab - dbw $5c, $4687 - dbw $22, $6e68 - dbw $5f, $5224 - dbw $5f, $52b6 - dbw $5f, $52ce - dbw $5f, $753d - dbw $40, $7612 + dbw BANK(Function8adef), Function8adef + dbw BANK(Function11c1ab), Function11c1ab + dbw BANK(Function170687), Function170687 + dbw BANK(Function8ae68), Function8ae68 + dbw BANK(Function17d224), Function17d224 + dbw BANK(Function17d2b6), Function17d2b6 + dbw BANK(Function17d2ce), Function17d2ce + dbw BANK(Function17f53d), Function17f53d + dbw BANK(Function103612), Function103612 dbw BANK(SpecialHoOhChamber),SpecialHoOhChamber - dbw $40, $6142 - dbw $12, $589a - dbw $12, $5bf9 - dbw $13, $70bc - dbw $22, $6f6b - dbw $22, $6fd4 + dbw BANK(Function102142), Function102142 + dbw BANK(Function4989a), Function4989a + dbw BANK(Function49bf9), Function49bf9 + dbw BANK(Function4f0bc), Function4f0bc + dbw BANK(Function8af6b), Function8af6b + dbw BANK(Function8afd4), Function8afd4 dbw BANK(SpecialDratini),SpecialDratini - dbw $04, $5485 + dbw BANK(Function11485), Function11485 dbw BANK(SpecialBeastsCheck),SpecialBeastsCheck dbw BANK(SpecialMonCheck),SpecialMonCheck - dbw $03, $4225 - dbw $5c, $4bd2 - dbw $40, $766e - dbw $40, $77eb - dbw $40, $783c - dbw $41, $60a2 + dbw BANK(Functionc225), Functionc225 + dbw BANK(Function170bd2), Function170bd2 + dbw BANK(Function10366e), Function10366e + dbw BANK(Function1037eb), Function1037eb + dbw BANK(Function10383c), Function10383c + dbw BANK(Function1060a2), Function1060a2 dbw BANK(Function14168), Function14168 - dbw $40, $77c2 - dbw $41, $630f - dbw $40, $7780 - dbw $40, $787b - dbw $12, $6e12 - dbw $41, $47eb - dbw $12, $6927 - dbw $24, $4a54 - dbw $24, $4a88 - dbw $03, $4224 + dbw BANK(Function1037c2), Function1037c2 + dbw BANK(Function10630f), Function10630f + dbw BANK(Function103780), Function103780 + dbw BANK(Function10387b), Function10387b + dbw BANK(Function4ae12), Function4ae12 + dbw BANK(Function1047eb), Function1047eb + dbw BANK(Function4a927), Function4a927 + dbw BANK(Function90a54), Function90a54 + dbw BANK(Function90a88), Function90a88 + dbw BANK(SpecialNone), SpecialNone ; c224 -INCBIN "baserom.gbc", $c224, $c29d - $c224 +SpecialNone: ; c224 + ret +; c225 + +Functionc225: ; c225 + ld a, [ScriptVar] + ld d, a + callba Function57e2 + ret +; c230 + +Functionc230: ; c230 + ld a, [ScriptVar] + dec a + call CheckCaughtMon + ret nz + ld a, [ScriptVar] + dec a + call SetSeenAndCaughtMon + call FadeToMenu + ld a, [ScriptVar] + ld [$d265], a + callba Functionfb877 + call Function2b4d + ret +; c252 + +SpecialSeenMon: ; c252 + ld a, [ScriptVar] + dec a + call SetSeenMon + ret +; c25a + +Functionc25a: ; c25a + ld a, [ScriptVar] + ld b, a + callba Function4dbd2 + jr z, Functionc298 + jr Functionc292 + +Functionc268: ; c268 + ld a, [ScriptVar] + ld b, a + callba Function4dbd9 + jr z, Functionc298 + jr Functionc292 + +Functionc276: ; c276 + ld a, [ScriptVar] + ld b, a + callba Function4dbe0 + jr z, Functionc298 + jr Functionc292 + +Functionc284: ; c284 + ld a, [ScriptVar] + ld b, a + callba Function4dbe6 + jr z, Functionc298 + jr Functionc292 + +Functionc292: ; c292 + ld a, $1 + ld [ScriptVar], a + ret + +Functionc298: ; c298 + xor a + ld [ScriptVar], a + ret +; c29d SpecialNameRival: ; 0xc29d ld b, $2 ; rival ld de, RivalName - ld a, BANK(Function116b7) - ld hl, Function116b7 - rst $8 + callba Function116b7 ; default to "SILVER" ld hl, RivalName ld de, DefaultRivalName @@ -18406,7 +13442,198 @@ SpecialNameRival: ; 0xc29d DefaultRivalName: ; 0xc2b2 db "SILVER@" -INCBIN "baserom.gbc", $c2b9, $c3e2 - $c2b9 +SpecialNameRater: ; c2b9 + callba NameRater + ret +; c2c0 + +Functionc2c0: ; c2c0 + call FadeToMenu + callba Function9191c + call Function2b4d + ret +; c2cd + +Functionc2cd: ; c2cd + call FadeToMenu + callba Function16be4 + call Function2b4d + ret +; c2da + +Functionc2da: ; c2da + call FadeToMenu + callba Function3f836 + call Function2b4d + ret +; c2e7 + +Functionc2e7: ; c2e7 + xor a + ld [ScriptVar], a + callba Function156d9 + ld a, c + ld [ScriptVar], a + ret +; c2f6 + +Functionc2f6: ; c2f6 + ld a, $0 + call GetSRAMBank + ld a, [$abe2] + and a + jr z, .asm_c302 + inc a + +.asm_c302 + ld [ScriptVar], a + call CloseSRAM + ret +; c309 + +Functionc309: ; c309 + ld a, $0 + call GetSRAMBank + ld a, [$abe2] + ld [CurItem], a + ld a, $1 + ld [$d10c], a + ld hl, NumItems + call ReceiveItem + jr nc, .asm_c33d + xor a + ld [$abe2], a + call CloseSRAM + ld a, [CurItem] + ld [$d265], a + call GetItemName + ld hl, UnknownText_0xc345 + call PrintText + ld a, $1 + ld [ScriptVar], a + ret + +.asm_c33d + call CloseSRAM + xor a + ld [ScriptVar], a + ret +; c345 + +UnknownText_0xc345: ; 0xc345 + ; received item + text_jump UnknownText_0x1bd3be, BANK(UnknownText_0x1bd3be) + db "@" +; 0xc34a + +Functionc34a: ; c34a + callba Function1369d + ld a, b + ld [ScriptVar], a + ret +; c355 + +Functionc355: ; c355 + ld a, [ScriptVar] + ld e, a + callba Function91a53 + ret +; c360 + +Functionc360: ; c360 + call FadeToMenu + callba Functione1190 + ld a, [$d0ec] + ld [ScriptVar], a + call Function2b4d + ret +; c373 + +Functionc373: ; c373 + call Functionc3ae + ret c + ld a, $24 + ld hl, $66c7 + call Functionc39a + ret +; c380 + +Functionc380: ; c380 + call Functionc3ae + ret c + ld a, $38 + ld hl, $40ee + call Functionc39a + ret +; c38d + +Functionc38d: ; c38d + call Functionc3ae + ret c + ld a, $38 + ld hl, $5e5b + call Functionc39a + ret +; c39a + +Functionc39a: ; c39a + call Function31cf + call FadeToMenu + ld hl, $d0e8 + ld a, [hli] + push af + ld a, [hli] + ld h, [hl] + ld l, a + pop af + rst FarCall + call Function2b4d + ret +; c3ae + +Functionc3ae: ; c3ae + ld hl, Coins + ld a, [hli] + or [hl] + jr z, .asm_c3c4 + ld a, $36 + ld [CurItem], a + ld hl, NumItems + call CheckItem + jr nc, .asm_c3c9 + and a + ret + +.asm_c3c4 + ld hl, UnknownText_0xc3d1 + jr .asm_c3cc + +.asm_c3c9 + ld hl, UnknownText_0xc3d6 + +.asm_c3cc + call PrintText + scf + ret +; c3d1 + +UnknownText_0xc3d1: ; 0xc3d1 + ; You have no coins. + text_jump UnknownText_0x1bd3d7, BANK(UnknownText_0x1bd3d7) + db "@" +; 0xc3d6 + +UnknownText_0xc3d6: ; 0xc3d6 + ; You don't have a COIN CASE. + text_jump UnknownText_0x1bd3eb, BANK(UnknownText_0x1bd3eb) + db "@" +; 0xc3db + +Functionc3db: ; c3db + call WhiteBGMap + call Function2879 + ret +; c3e2 ScriptReturnCarry: ; c3e2 jr c, .carry @@ -18419,7 +13646,18 @@ ScriptReturnCarry: ; c3e2 ret ; c3ef -INCBIN "baserom.gbc", $c3ef, $c403 - $c3ef +Functionc3ef: ; c3ef + callba Function1150c + ld a, [$dc3a] + ld [ScriptVar], a + ret +; c3fc + +Functionc3fc: ; c3fc + ld a, [ScriptVar] + ld [$dfce], a + ret +; c403 Functionc403: ; c403 @@ -18447,7 +13685,18 @@ SpecialCheckPokerus: ; c419 jp ScriptReturnCarry ; c422 -INCBIN "baserom.gbc", $c422, $c43d - $c422 +Functionc422: ; c422 + callba Function1152b + ld hl, $dc9d + res 0, [hl] + callba Function5d33 + ret +; c434 + +Functionc434: ; c434 + callba Function11542 + jp ScriptReturnCarry +; c43d SpecialSnorlaxAwake: ; 0xc43d ; Check if the Poké Flute channel is playing, and if the player is standing @@ -18498,7 +13747,10 @@ SpecialSnorlaxAwake: ; 0xc43d db $24, $09 db $ff -INCBIN "baserom.gbc", $c472, $c478 - $c472 +Functionc472: ; c472 + ld a, [CurPartySpecies] + jp Function37ce +; c478 SpecialGameboyCheck: ; c478 ; check cgb @@ -18524,7 +13776,29 @@ SpecialGameboyCheck: ; c478 ld [ScriptVar], a ret -INCBIN "baserom.gbc", $c48f, $c4b9 - $c48f +Functionc48f: ; c48f + ld a, $0 + ld [MusicFadeIDLo], a + ld a, $0 + ld [MusicFadeIDHi], a + ld a, $2 + ld [MusicFade], a + ret +; c49f + +Functionc49f: ; c49f + call FadeToMenu + callba Function1dd702 + call Function2b4d + ret +; c4ac + +Functionc4ac: ; c4ac + call FadeToMenu + callba Function84688 + call Function2b4d + ret +; c4b9 SpecialTrainerHouse: ; 0xc4b9 ld a, 0 @@ -18742,7 +14016,111 @@ PrintNumber_AdvancePointer: ; c64a ret ; 0xc658 -INCBIN "baserom.gbc", $c658, $c6ea - $c658 +Functionc658: ; c658 + xor a + ld [CurPartyMon], a + ld hl, PartySpecies +.asm_c65f + ld a, [hli] + cp $ff + jr z, .asm_c676 + cp $fd + jr z, .asm_c66d + push hl + call Functionc677 + pop hl + +.asm_c66d + ld a, [CurPartyMon] + inc a + ld [CurPartyMon], a + jr .asm_c65f + +.asm_c676 + ret +; c677 + +Functionc677: ; c677 + ld a, $0 + call GetPartyParamLocation + ld d, h + ld e, l + ld hl, $0020 + add hl, de + xor a + ld [hli], a + ld [hl], a + ld hl, $0024 + add hl, de + ld b, h + ld c, l + dec bc + dec bc + ld a, [hli] + ld [bc], a + inc bc + ld a, [hl] + ld [bc], a + callba Functionf8b9 + ret +; c699 + +Functionc699: ; c699 + ld a, b + or c + jr z, .asm_c6dd + push hl + xor a + ld [hMultiplicand], a + ld a, b + ld [$ffb5], a + ld a, c + ld [$ffb6], a + ld a, $30 + ld [hMultiplier], a + call Multiply + ld a, d + and a + jr z, .asm_c6cc + srl d + rr e + srl d + rr e + ld a, [$ffb5] + ld b, a + ld a, [$ffb6] + srl b + rr a + srl b + rr a + ld [$ffb6], a + ld a, b + ld [$ffb5], a + +.asm_c6cc + ld a, e + ld [hMultiplier], a + ld b, $4 + call Divide + ld a, [$ffb6] + ld e, a + pop hl + and a + ret nz + ld e, $1 + ret + +.asm_c6dd + ld e, $0 + ret +; c6e0 + +Functionc6e0: ; c6e0 + call WaitBGMap + call Functiond627 + call WaitBGMap + ret +; c6ea Functionc6ea: ; c6ea @@ -19714,6 +15092,8 @@ Functioncd1d: ; cd1d UnknownScript_0xcd29: ; 0xcd29 reloadmappart special $0035 + +UnknownScript_0xcd2d: ; 0xcd2d 3callasm BANK(Functioncd12), Functioncd12 2writetext UnknownText_0xcd41 copybytetovar $d1ef @@ -19734,7 +15114,49 @@ UnknownText_0xcd46: ; 0xcd46 db $50 ; 0xcd4b -INCBIN "baserom.gbc", $cd4b, $cd9d - $cd4b +UnknownScript_0xcd4b: ; 0xcd4b + 3callasm $03, $4d78 + iffalse UnknownScript_0xcd5f + if_equal $1, UnknownScript_0xcd59 + 2jump UnknownScript_0xcd5c +; 0xcd59 + +UnknownScript_0xcd59: ; 0xcd59 + jumptext UnknownText_0xcd73 +; 0xcd5c + +UnknownScript_0xcd5c: ; 0xcd5c + jumptext UnknownText_0xcd6e +; 0xcd5f + +UnknownScript_0xcd5f: ; 0xcd5f + loadfont + 2writetext UnknownText_0xcd69 + yesorno + iftrue UnknownScript_0xcd2d + loadmovesprites + end +; 0xcd69 + +UnknownText_0xcd69: ; 0xcd69 + ; A #MON may be able to move this. Want to use STRENGTH? + text_jump UnknownText_0x1c07a0, BANK(UnknownText_0x1c07a0) + db "@" +; 0xcd6e + +UnknownText_0xcd6e: ; 0xcd6e + ; Boulders may now be moved! + text_jump UnknownText_0x1c07d8, BANK(UnknownText_0x1c07d8) + db "@" +; 0xcd73 + +UnknownText_0xcd73: ; 0xcd73 + ; A #MON may be able to move this. + text_jump UnknownText_0x1c07f4, BANK(UnknownText_0x1c07f4) + db "@" +; 0xcd78 + +INCBIN "baserom.gbc", $cd78, $cd9d - $cd78 Functioncd9d: ; cd9d call Functionc6ea @@ -19982,6 +15404,8 @@ Functioncf0d: ; cf0d UnknownScript_0xcf2e: ; 0xcf2e reloadmappart special $0035 + +UnknownScript_0xcf32: ; cf32 3callasm BANK(GetPartyNick), GetPartyNick 2writetext UnknownText_0xcf58 loadmovesprites @@ -20009,7 +15433,34 @@ UnknownText_0xcf58: ; 0xcf58 db $50 ; 0xcf5d -INCBIN "baserom.gbc", $cf5d, $cf8e - $cf5d +UnknownScript_0xcf5d: ; 0xcf5d + 3callasm $03, $4f7c + if_equal $1, UnknownScript_0xcf6f + loadfont + 2writetext UnknownText_0xcf77 + yesorno + iftrue UnknownScript_0xcf32 + loadmovesprites + end +; 0xcf6f + +UnknownScript_0xcf6f: ; 0xcf6f + jumptext UnknownText_0xcf72 +; 0xcf72 + +UnknownText_0xcf72: ; 0xcf72 + ; Maybe a #MON can break this. + text_jump UnknownText_0x1c0906, BANK(UnknownText_0x1c0906) + db "@" +; 0xcf77 + +UnknownText_0xcf77: ; 0xcf77 + ; This rock looks breakable. Want to use ROCK SMASH? + text_jump UnknownText_0x1c0924, BANK(UnknownText_0x1c0924) + db "@" +; 0xcf7c + +INCBIN "baserom.gbc", $cf7c, $cf8e - $cf7c Functioncf8e: ; cf8e @@ -20181,7 +15632,7 @@ UnknownText_0xd1d0: ; 0xd1d0 ; 0xd1d5 -Functiond1d5: ; d1d5 +_ReceiveItem: ; d1d5 call Functiond27b jp nz, Functiond29c push hl @@ -20228,7 +15679,7 @@ Functiond201: ; d201 ; d20d -Functiond20d: ; d20d +_TossItem: ; d20d call Functiond27b jr nz, .asm_d241 push hl @@ -20276,7 +15727,7 @@ Functiond20d: ; d20d jp Functiond2ff ; d244 -_PickUpItem: ; d244 +_CheckItem: ; d244 call Functiond27b jr nz, .asm_d278 push hl @@ -20334,7 +15785,7 @@ Functiond27b: ; d27b ; d283 Functiond283: ; d283 - ld c, $14 + ld c, 20 ld a, e cp TMsHMsEnd % $100 jr nz, .asm_d28e @@ -20343,7 +15794,7 @@ Functiond283: ; d283 ret z .asm_d28e - ld c, $32 + ld c, 50 ld a, e cp BallsEnd % $100 jr nz, .asm_d299 @@ -20813,7 +16264,440 @@ GetItemPrice: ; d486 ret ; d497 -INCBIN "baserom.gbc", $d497, $d88c - $d497 +INCBIN "baserom.gbc", $d497, $d627 - $d497 + +Functiond627: ; d627 + call Functiond65f + jr c, .asm_d645 + call Functiond670 +.asm_d62f + push bc + push hl + call Functiond6e2 + pop hl + pop bc + push af + push bc + push hl + call Functiond730 + call Functiond7c9 + pop hl + pop bc + pop af + jr nc, .asm_d62f + ret + +.asm_d645 + call Functiond670 +.asm_d648 + push bc + push hl + call Functiond6f5 + pop hl + pop bc + ret c + push af + push bc + push hl + call Functiond749 + call Functiond7c9 + pop hl + pop bc + pop af + jr nc, .asm_d648 + ret +; d65f + +Functiond65f: ; d65f + ld a, [Buffer2] + and a + jr nz, .asm_d66e + ld a, [Buffer1] + cp $30 + jr nc, .asm_d66e + and a + ret + +.asm_d66e + scf + ret +; d670 + +Functiond670: ; d670 + push hl + ld hl, Buffer1 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + pop hl + call Functionc699 + ld a, e + ld [$d1f1], a + ld a, [$d1ee] + ld c, a + ld a, [$d1ef] + ld b, a + ld a, [Buffer1] + ld e, a + ld a, [Buffer2] + ld d, a + call Functionc699 + ld a, e + ld [$d1f2], a + push hl + ld hl, $d1ec + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + pop hl + ld a, e + sub c + ld e, a + ld a, d + sbc b + ld d, a + jr c, .asm_d6c1 + ld a, [$d1ec] + ld [$d1f5], a + ld a, [$d1ee] + ld [$d1f6], a + ld bc, $0001 + jr .asm_d6d9 + +.asm_d6c1 + ld a, [$d1ec] + ld [$d1f6], a + ld a, [$d1ee] + ld [$d1f5], a + ld a, e + xor $ff + inc a + ld e, a + ld a, d + xor $ff + ld d, a + ld bc, rIE + +.asm_d6d9 + ld a, d + ld [$d1f3], a + ld a, e + ld [$d1f4], a + ret +; d6e2 + +Functiond6e2: ; d6e2 + ld hl, $d1f1 + ld a, [$d1f2] + cp [hl] + jr nz, .asm_d6ed + scf + ret + +.asm_d6ed + ld a, c + add [hl] + ld [hl], a + call Functiond839 + and a + ret +; d6f5 + +Functiond6f5: ; d6f5 +.asm_d6f5 + ld hl, $d1ec + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, e + cp [hl] + jr nz, .asm_d707 + inc hl + ld a, d + cp [hl] + jr nz, .asm_d707 + scf + ret + +.asm_d707 + ld l, e + ld h, d + add hl, bc + ld a, l + ld [$d1ec], a + ld a, h + ld [$d1ed], a + push hl + push de + push bc + ld hl, Buffer1 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + call Functionc699 + pop bc + pop de + pop hl + ld a, e + ld hl, $d1f1 + cp [hl] + jr z, .asm_d6f5 + ld [hl], a + and a + ret +; d730 + +Functiond730: ; d730 + call Functiond784 + ld d, $6 + ld a, [$d10a] + and $1 + ld b, a + ld a, [$d1f1] + ld e, a + ld c, a + push de + call Functiond771 + pop de + call Functiond7b4 + ret +; d749 + +Functiond749: ; d749 + call Functiond784 + ld a, [$d1ec] + ld c, a + ld a, [$d1ed] + ld b, a + ld a, [Buffer1] + ld e, a + ld a, [Buffer2] + ld d, a + call Functionc699 + ld c, e + ld d, $6 + ld a, [$d10a] + and $1 + ld b, a + push de + call Functiond771 + pop de + call Functiond7b4 + ret +; d771 + +Functiond771: ; d771 + ld a, [$d10a] + cp $2 + jr nz, .asm_d780 + ld a, $28 + add l + ld l, a + ld a, $0 + adc h + ld h, a + +.asm_d780 + call DrawHPBar + ret +; d784 + +Functiond784: ; d784 + ld a, [$d10a] + and a + ret z + cp $1 + jr z, .asm_d792 + ld de, $0016 + jr .asm_d795 + +.asm_d792 + ld de, $0015 + +.asm_d795 + push hl + add hl, de + ld a, $7f + ld [hli], a + ld [hli], a + ld [hld], a + dec hl + ld a, [$d1ec] + ld [$d087], a + ld a, [$d1ed] + ld [StringBuffer2], a + ld de, StringBuffer2 + ld bc, $0203 + call PrintNum + pop hl + ret +; d7b4 + +Functiond7b4: ; d7b4 + ld a, [hCGB] + and a + ret z + ld hl, $d1f0 + call SetHPPal + ld a, [$d1f0] + ld c, a + callba Function8c43 + ret +; d7c9 + +Functiond7c9: ; d7c9 + ld a, [hCGB] + and a + jr nz, .asm_d7d5 + call DelayFrame + call DelayFrame + ret + +.asm_d7d5 + ld a, [$d10a] + and a + jr z, .asm_d829 + cp $1 + jr z, .asm_d82d + ld a, [CurPartyMon] + cp $3 + jr nc, .asm_d7ea + ld c, $0 + jr .asm_d7ec + +.asm_d7ea + ld c, $1 + +.asm_d7ec + push af + cp $2 + jr z, .asm_d7ff + cp $5 + jr z, .asm_d7ff + ld a, $2 + ld [hBGMapMode], a + ld a, c + ld [hBGMapThird], a + call DelayFrame + +.asm_d7ff + ld a, $1 + ld [hBGMapMode], a + ld a, c + ld [hBGMapThird], a + call DelayFrame + pop af + cp $2 + jr z, .asm_d813 + cp $5 + jr z, .asm_d813 + ret + +.asm_d813 + inc c + ld a, $2 + ld [hBGMapMode], a + ld a, c + ld [hBGMapThird], a + call DelayFrame + ld a, $1 + ld [hBGMapMode], a + ld a, c + ld [hBGMapThird], a + call DelayFrame + ret + +.asm_d829 + ld c, $0 + jr .asm_d82f + +.asm_d82d + ld c, $1 + +.asm_d82f + call DelayFrame + ld a, c + ld [hBGMapThird], a + call DelayFrame + ret +; d839 + +Functiond839: ; d839 + ld a, [Buffer1] + ld c, a + ld b, $0 + ld hl, $0000 + ld a, [$d1f1] + cp $30 + jr nc, .asm_d885 + and a + jr z, .asm_d880 + call AddNTimes + ld b, $0 +.asm_d851 + ld a, l + sub $30 + ld l, a + ld a, h + sbc $0 + ld h, a + jr c, .asm_d85e + inc b + jr .asm_d851 + +.asm_d85e + push bc + ld bc, $0080 + add hl, bc + pop bc + ld a, l + sub $30 + ld l, a + ld a, h + sbc $0 + ld h, a + jr c, .asm_d86f + inc b + +.asm_d86f + ld a, [$d1f5] + cp b + jr nc, .asm_d87c + ld a, [$d1f6] + cp b + jr c, .asm_d87c + ld a, b + +.asm_d87c + ld [$d1ec], a + ret + +.asm_d880 + xor a + ld [$d1ec], a + ret + +.asm_d885 + ld a, [Buffer1] + ld [$d1ec], a + ret +; d88c Functiond88c: ; d88c @@ -20986,7 +16870,7 @@ Functiond88c: ; d88c ld [$d265], a dec a push de - call CheckSeenMon + call CheckCaughtMon ld a, [$d265] dec a call SetSeenAndCaughtMon @@ -21166,7 +17050,307 @@ FillPP: ; da6d ret ; da96 -INCBIN "baserom.gbc", $da96, $dcb6 - $da96 +Functionda96: ; da96 + ld hl, PartyCount + ld a, [hl] + cp $6 + scf + ret z + inc a + ld [hl], a + ld c, a + ld b, $0 + add hl, bc + ld a, [CurPartySpecies] + ld [hli], a + ld [hl], $ff + ld hl, PartyMon1Species + ld a, [PartyCount] + dec a + ld bc, $0030 + call AddNTimes + ld e, l + ld d, h + ld hl, TempMonSpecies + call CopyBytes + ld hl, PartyMon1OT + ld a, [PartyCount] + dec a + call SkipNames + ld d, h + ld e, l + ld hl, OTPartyMon1OT + ld a, [CurPartyMon] + call SkipNames + ld bc, $000b + call CopyBytes + ld hl, PartyMon1Nickname + ld a, [PartyCount] + dec a + call SkipNames + ld d, h + ld e, l + ld hl, OTPartyMon1Nickname + ld a, [CurPartyMon] + call SkipNames + ld bc, $000b + call CopyBytes + ld a, [CurPartySpecies] + ld [$d265], a + cp $fd + jr z, .asm_db12 + dec a + call SetSeenAndCaughtMon + ld hl, PartyMon1Happiness + ld a, [PartyCount] + dec a + ld bc, $0030 + call AddNTimes + ld [hl], $46 + +.asm_db12 + ld a, [CurPartySpecies] + cp $c9 + jr nz, .asm_db3d + ld hl, PartyMon1DVs + ld a, [PartyCount] + dec a + ld bc, $0030 + call AddNTimes + ld a, $2d + call Predef + callab Functionfba18 + ld a, [$def4] + and a + jr nz, .asm_db3d + ld a, [UnownLetter] + ld [$def4], a + +.asm_db3d + and a + ret +; db3f + +Functiondb3f: ; db3f + ld a, $1 + call GetSRAMBank + ld a, [$d10b] + and a + jr z, .asm_db60 + cp $2 + jr z, .asm_db60 + cp $3 + ld hl, BreedMon1Species + jr z, .asm_db9b + ld hl, BoxCount + ld a, [hl] + cp $14 + jr nz, .asm_db69 + jp Functiondcb1 + +.asm_db60 + ld hl, PartyCount + ld a, [hl] + cp $6 + jp z, Functiondcb1 + +.asm_db69 + inc a + ld [hl], a + ld c, a + ld b, $0 + add hl, bc + ld a, [$d10b] + cp $2 + ld a, [BreedMon1Species] + jr z, .asm_db7c + ld a, [CurPartySpecies] + +.asm_db7c + ld [hli], a + ld [hl], $ff + ld a, [$d10b] + dec a + ld hl, PartyMon1Species + ld bc, $0030 + ld a, [PartyCount] + jr nz, .asm_db97 + ld hl, BoxMon1Species + ld bc, $0020 + ld a, [BoxCount] + +.asm_db97 + dec a + call AddNTimes + +.asm_db9b + push hl + ld e, l + ld d, h + ld a, [$d10b] + and a + ld hl, BoxMon1Species + ld bc, $0020 + jr z, .asm_dbb7 + cp $2 + ld hl, BreedMon1Species + jr z, .asm_dbbd + ld hl, PartyMon1Species + ld bc, $0030 + +.asm_dbb7 + ld a, [CurPartyMon] + call AddNTimes + +.asm_dbbd + ld bc, $0020 + call CopyBytes + ld a, [$d10b] + cp $3 + ld de, BreedMon1OT + jr z, .asm_dbe2 + dec a + ld hl, PartyMon1OT + ld a, [PartyCount] + jr nz, .asm_dbdc + ld hl, BoxMon1OT + ld a, [BoxCount] + +.asm_dbdc + dec a + call SkipNames + ld d, h + ld e, l + +.asm_dbe2 + ld hl, BoxMon1OT + ld a, [$d10b] + and a + jr z, .asm_dbf5 + ld hl, BreedMon1OT + cp $2 + jr z, .asm_dbfb + ld hl, PartyMon1OT + +.asm_dbf5 + ld a, [CurPartyMon] + call SkipNames + +.asm_dbfb + ld bc, $000b + call CopyBytes + ld a, [$d10b] + cp $3 + ld de, BreedMon1Nick + jr z, .asm_dc20 + dec a + ld hl, PartyMon1Nickname + ld a, [PartyCount] + jr nz, .asm_dc1a + ld hl, BoxMon1Nickname + ld a, [BoxCount] + +.asm_dc1a + dec a + call SkipNames + ld d, h + ld e, l + +.asm_dc20 + ld hl, BoxMon1Nickname + ld a, [$d10b] + and a + jr z, .asm_dc33 + ld hl, BreedMon1Nick + cp $2 + jr z, .asm_dc39 + ld hl, PartyMon1Nickname + +.asm_dc33 + ld a, [CurPartyMon] + call SkipNames + +.asm_dc39 + ld bc, $000b + call CopyBytes + pop hl + ld a, [$d10b] + cp $1 + jr z, .asm_dca4 + cp $3 + jp z, .asm_dcac + push hl + srl a + add $2 + ld [MonType], a + ld a, $1f + call Predef + callab Function50e1b + ld a, d + ld [CurPartyLevel], a + pop hl + ld b, h + ld c, l + ld hl, $001f + add hl, bc + ld [hl], a + ld hl, $0024 + add hl, bc + ld d, h + ld e, l + ld hl, $000a + add hl, bc + push bc + ld b, $1 + call Functione167 + pop bc + ld a, [$d10b] + and a + jr nz, .asm_dcac + ld hl, $0020 + add hl, bc + xor a + ld [hl], a + ld hl, $0022 + add hl, bc + ld d, h + ld e, l + ld a, [CurPartySpecies] + cp $fd + jr z, .asm_dc9e + inc hl + inc hl + ld a, [hli] + ld [de], a + ld a, [hl] + inc de + ld [de], a + jr .asm_dcac + +.asm_dc9e + xor a + ld [de], a + inc de + ld [de], a + jr .asm_dcac + +.asm_dca4 + ld a, [BoxCount] + dec a + ld b, a + call Functiondcb6 + +.asm_dcac + call CloseSRAM + and a + ret +; dcb1 + +Functiondcb1: ; dcb1 + call CloseSRAM + scf + ret +; dcb6 Functiondcb6: ; dcb6 @@ -21238,7 +17422,179 @@ Functiondcb6: ; dcb6 ; dd21 -INCBIN "baserom.gbc", $dd21, $de6e - $dd21 +Functiondd21: ; dd21 + ld a, [BreedMon1Species] + ld [CurPartySpecies], a + ld de, $0022 + call StartSFX + call WaitSFX + call Functione698 + ld a, b + ld [DefaultFlypoint], a + ld a, e + ld [CurPartyLevel], a + xor a + ld [$d10b], a + jp Functiondd64 +; dd42 + +Functiondd42: ; dd42 + ld a, [BreedMon2Species] + ld [CurPartySpecies], a + ld de, $0022 + call StartSFX + call WaitSFX + call Functione6b3 + ld a, b + ld [DefaultFlypoint], a + ld a, e + ld [CurPartyLevel], a + ld a, $1 + ld [$d10b], a + jp Functiondd64 +; dd64 + +Functiondd64: ; dd64 + ld hl, PartyCount + ld a, [hl] + cp $6 + jr nz, .asm_dd6e + scf + ret + +.asm_dd6e + inc a + ld [hl], a + ld c, a + ld b, $0 + add hl, bc + ld a, [$d10b] + and a + ld a, [BreedMon1Species] + ld de, BreedMon1Nick + jr z, .asm_dd86 + ld a, [BreedMon2Species] + ld de, BreedMon2Nick + +.asm_dd86 + ld [hli], a + ld [CurSpecies], a + ld a, $ff + ld [hl], a + ld hl, PartyMon1Nickname + ld a, [PartyCount] + dec a + call SkipNames + push hl + ld h, d + ld l, e + pop de + call CopyBytes + push hl + ld hl, PartyMon1OT + ld a, [PartyCount] + dec a + call SkipNames + ld d, h + ld e, l + pop hl + call CopyBytes + push hl + call Functionde1a + pop hl + ld bc, $0020 + call CopyBytes + call GetBaseData + call Functionde1a + ld b, d + ld c, e + ld hl, $001f + add hl, bc + ld a, [CurPartyLevel] + ld [hl], a + ld hl, $0024 + add hl, bc + ld d, h + ld e, l + ld hl, $000a + add hl, bc + push bc + ld b, $1 + call Functione167 + ld hl, PartyMon1Move1 + ld a, [PartyCount] + dec a + ld bc, $0030 + call AddNTimes + ld d, h + ld e, l + ld a, $1 + ld [Buffer1], a + ld a, $1b + call Predef + ld a, [PartyCount] + dec a + ld [CurPartyMon], a + callba Functionc677 + ld a, [CurPartyLevel] + ld d, a + callab Function50e47 + pop bc + ld hl, $0008 + add hl, bc + ld a, [hMultiplicand] + ld [hli], a + ld a, [$ffb5] + ld [hli], a + ld a, [$ffb6] + ld [hl], a + and a + ret +; de1a + +Functionde1a: ; de1a + ld a, [PartyCount] + dec a + ld hl, PartyMon1Species + ld bc, $0030 + call AddNTimes + ld d, h + ld e, l + ret +; de2a + +Functionde2a: ; de2a + ld de, BreedMon1Nick + call Functionde44 + xor a + ld [$d10b], a + jp Functione039 +; de37 + +Functionde37: ; de37 + ld de, BreedMon2Nick + call Functionde44 + xor a + ld [$d10b], a + jp Functione039 +; de44 + +Functionde44: ; de44 + ld a, [CurPartyMon] + ld hl, PartyMon1Nickname + call SkipNames + call CopyBytes + ld a, [CurPartyMon] + ld hl, PartyMon1OT + call SkipNames + call CopyBytes + ld a, [CurPartyMon] + ld hl, PartyMon1Species + ld bc, $0030 + call AddNTimes + ld bc, $0020 + jp CopyBytes +; de6e Functionde6e: ; de6e @@ -21420,10 +17776,10 @@ Functiondf8c: ; df8c ld a, [CurPartySpecies] dec a push af - call CheckSeenMon + call CheckCaughtMon pop af push bc - call CheckCaughtMon + call CheckSeenMon push bc call Functiond88c pop bc @@ -21434,7 +17790,7 @@ Functiondf8c: ; df8c dec a ld c, a ld d, $0 - ld hl, PokedexSeen + ld hl, PokedexCaught ld b, $0 ld a, $3 call Predef @@ -21448,7 +17804,7 @@ Functiondf8c: ; df8c dec a ld c, a ld d, $0 - ld hl, PokedexCaught + ld hl, PokedexSeen ld b, $0 ld a, $3 call Predef @@ -21942,7 +18298,7 @@ Functione277: ; e277 and a jr z, .asm_e2e1 ld a, [CurItem] - ld [$ad27], a + ld [BoxMon1Item], a .asm_e2e1 ld a, [CurPartySpecies] @@ -22012,7 +18368,7 @@ Functione277: ; e277 .asm_e35e ld a, $1 call GetSRAMBank - ld de, $afa6 + ld de, BoxMon1OT .asm_e366 ld a, [ScriptBank] call GetFarByte @@ -22024,7 +18380,7 @@ Functione277: ; e277 ld a, [ScriptBank] call GetFarByte ld b, a - ld hl, $ad2c + ld hl, BoxMon1ID call Random ld [hli], a call Random @@ -22071,7 +18427,7 @@ Functione277: ; e277 ld a, $1 call GetSRAMBank ld hl, $d050 - ld de, $b082 + ld de, BoxMon1Nickname ld bc, $000b call CopyBytes call CloseSRAM @@ -22166,7 +18522,7 @@ ClearPCItemScreen: ; e58b Functione5bb: ; e5bb ld a, [CurPartyMon] - ld hl, $ad26 + ld hl, BoxMon1Species ld bc, $0020 call AddNTimes ld de, TempMonSpecies @@ -22178,7 +18534,37 @@ Functione5bb: ; e5bb ret ; e5d9 -INCBIN "baserom.gbc", $e5d9, $e6ce - $e5d9 +INCBIN "baserom.gbc", $e5d9, $e698 - $e5d9 + +Functione698: ; e698 + ld hl, BreedMon1Species + ld de, TempMonSpecies + ld bc, $0020 + call CopyBytes + callab Function50e1b + ld a, [$df2b] + ld b, a + ld a, d + ld e, a + sub b + ld d, a + ret +; e6b3 + +Functione6b3: ; e6b3 + ld hl, BreedMon2Species + ld de, TempMonSpecies + ld bc, $0020 + call CopyBytes + callab Function50e1b + ld a, [$df64] + ld b, a + ld a, d + ld e, a + sub b + ld d, a + ret +; e6ce Functione6ce: ; e6ce @@ -22444,7 +18830,7 @@ Functionf795: ; f795 ld hl, NumItems ld a, $1 ld [$d10c], a - jp Function2f53 + jp TossItem ; f7a0 Functionf7a0: ; f7a0 @@ -22596,7 +18982,41 @@ Functionf881: ; f881 ret ; f8b9 -INCBIN "baserom.gbc", $f8b9, $f8ec - $f8b9 +Functionf8b9: ; f8b9 + ld a, $17 + call GetPartyParamLocation + push hl + ld a, $2 + call GetPartyParamLocation + pop de + xor a + ld [$cfa9], a + ld [MonType], a + ld c, $4 +.asm_f8ce + ld a, [hli] + and a + ret z + push hl + push de + push bc + call Functionf8ec + pop bc + pop de + ld a, [de] + and $c0 + ld b, a + ld a, [$d265] + add b + ld [de], a + inc de + ld hl, $cfa9 + inc [hl] + pop hl + dec c + jr nz, .asm_f8ce + ret +; f8ec Functionf8ec: ; f8ec @@ -23062,7 +19482,150 @@ Function113da: ; 113da ret ; 113e5 -INCBIN "baserom.gbc", $113e5, $114dd - $113e5 +Function113e5: ; 113e5 + xor a + ld [$d464], a + +Function113e9: ; 113e9 + ld a, [$d464] + cp 3 + jr c, .asm_113f2 + ld a, 3 + +.asm_113f2 + ld e, a + ld d, 0 + ld hl, .data_113fd + add hl, de + ld a, [hl] + jp Function1142e +; 113fd + +.data_113fd + db 20, 10, 5, 3 +; 11401 + +Function11401: ; 11401 + call Function1143c + ret nc + ld hl, $d464 + ld a, [hl] + cp 3 + jr nc, .asm_1140e + inc [hl] + +.asm_1140e + call Function113e9 + scf + ret +; 11413 + +Function11413: ; 11413 + ld a, 1 + +Function11415: ; 11415 + ld [hl], a + push hl + call UpdateTime + pop hl + inc hl + call Function11621 + ret +; 11420 + +Function11420: ; 11420 + inc hl + push hl + call Function115cf + call Function115c8 + pop hl + dec hl + call Function11586 + ret +; 1142e + +Function1142e: ; 1142e + ld hl, $d465 + ld [hl], a + call UpdateTime + ld hl, $d466 + call Function1162e + ret +; 1143c + +Function1143c: ; 1143c + ld hl, $d466 + call Function115d6 + call Function115ae + ld hl, $d465 + call Function11586 + ret +; 1144c + +Function1144c: ; 1144c + ld hl, $dc1c + jp Function11413 +; 11452 + +Function11452: ; 11452 + ld hl, $dc1c + call Function11420 + ret nc + xor a + ld hl, $dc1e + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld hl, $dc4c + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld hl, $dc50 + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld hl, $dc54 + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld hl, $dc58 + ld a, [hl] + and a + jr z, .asm_11480 + dec [hl] + jr nz, .asm_11483 + +.asm_11480 + call Function11485 + +.asm_11483 + jr Function1144c +; 11485 + +Function11485: ; 11485 + call Random + and 3 + add 3 + ld [$dc58], a + ret +; 11490 + +Function11490: ; 11490 + ld a, $14 + ld [$d46c], a + ld a, $0 + ld [$d46d], a + call UpdateTime + ld hl, $dc35 + call Function11613 + ret +; 114a4 + +INCBIN "baserom.gbc", $114a4, $114dd - $114a4 Function114dd: ; 114dd @@ -23072,8 +19635,251 @@ Function114dd: ; 114dd ret ; 114e7 -INCBIN "baserom.gbc", $114e7, $11621 - $114e7 +Function114e7: ; 114e7 + ld hl, $dc23 + call Function115cf + call Function115c8 + and a + jr z, .asm_114fa + ld b, a + callba Function13988 + +.asm_114fa + xor a + ret +; 114fc + +Function114fc: ; 114fc + ld a, $2 + ld hl, $dc3a + ld [hl], a + call UpdateTime + ld hl, $dc3b + call Function11621 + ret +; 1150c + +Function1150c: ; 1150c + ld hl, $dc3b + call Function115cf + call Function115c8 + ld hl, $dc3a + call Function11586 + ret +; 1151c + +Function1151c: ; 1151c + ld hl, $dc1e + set 2, [hl] + ret +; 11522 + +Function11522: ; 11522 + and a + ld hl, $dc1e + bit 2, [hl] + ret nz + scf + ret +; 1152b + +Function1152b: ; 1152b + call Function11534 + ld hl, $dc2d + jp Function11415 +; 11534 + +Function11534: ; 11534 + call GetWeekday + ld c, a + ld a, $5 + sub c + jr z, .asm_1153f + jr nc, .asm_11541 + +.asm_1153f + add $7 + +.asm_11541 + ret +; 11542 + +Function11542: ; 11542 + ld hl, $dc2d + jp Function11420 +; 11548 + +Function11548: ; 11548 + ld a, $0 + call GetSRAMBank + ld hl, $abfa + ld a, [hli] + ld [Buffer1], a + ld a, [hl] + ld [Buffer2], a + call CloseSRAM + ld hl, Buffer1 + call Function11420 + jr nc, .asm_11572 + ld hl, Buffer1 + call Function11413 + call CloseSRAM + callba Function1050c8 + +.asm_11572 + ld a, $0 + call GetSRAMBank + ld hl, Buffer1 + ld a, [hli] + ld [$abfa], a + ld a, [hl] + ld [$abfb], a + call CloseSRAM + ret +; 11586 + +Function11586: ; 11586 + cp $ff + jr z, .asm_11595 + ld c, a + ld a, [hl] + sub c + jr nc, .asm_11590 + xor a + +.asm_11590 + ld [hl], a + jr z, .asm_11595 + xor a + ret + +.asm_11595 + xor a + ld [hl], a + scf + ret +; 11599 + +Function11599: ; 11599 + ld a, [$cfd7] + and a + jr nz, Function115cc + ld a, [$cfd6] + and a + jr nz, Function115cc + ld a, [$cfd5] + jr nz, Function115cc + ld a, [$cfd4] + ret +; 115ae + +Function115ae: ; 115ae + ld a, [$cfd7] + and a + jr nz, Function115cc + ld a, [$cfd6] + and a + jr nz, Function115cc + ld a, [$cfd5] + ret +; 115be + +Function115be: ; 115be + ld a, [$cfd7] + and a + jr nz, Function115cc + ld a, [$cfd6] + ret +; 115c8 + +Function115c8: ; 115c8 + ld a, [$cfd7] + ret +; 115cc + +Function115cc: ; 115cc + ld a, $ff + ret +; 115cf + +Function115cf: ; 115cf + xor a + jr Function11605 +; 115d2 + +Function115d2: ; 115d2 + inc hl + xor a + jr Function115f8 +; 115d6 + +Function115d6: ; 115d6 + inc hl + inc hl + xor a + jr Function115eb +; 115db + +Function115db: ; 115db + inc hl + inc hl + inc hl + ld a, [hSeconds] + ld c, a + sub [hl] + jr nc, .asm_115e6 + add 60 +.asm_115e6 + ld [hl], c + dec hl + ld [$cfd4], a + +Function115eb: ; 115eb + ld a, [hMinutes] + ld c, a + sbc [hl] + jr nc, .asm_115f3 + add 60 +.asm_115f3 + ld [hl], c + dec hl + ld [$cfd5], a + +Function115f8: ; 115f8 + ld a, [hHours] + ld c, a + sbc [hl] + jr nc, .asm_11600 + add 24 +.asm_11600 + ld [hl], c + dec hl + ld [$cfd6], a + +Function11605 + ld a, [CurDay] + ld c, a + sbc [hl] + jr nc, .asm_1160e + add 140 +.asm_1160e + ld [hl], c + ld [$cfd7], a + ret +; 11613 + +Function11613: ; 11613 + ld a, [CurDay] + ld [hli], a + ld a, [hHours] + ld [hli], a + ld a, [hMinutes] + ld [hli], a + ld a, [hSeconds] + ld [hli], a + ret +; 11621 Function11621: ; 11621 ld a, [CurDay] @@ -23081,9 +19887,73 @@ Function11621: ; 11621 ret ; 11626 -INCBIN "baserom.gbc", $11626, $1167a - $11626 +Function11626: ; 11626 + ld a, [CurDay] + ld [hli], a + ld a, [hHours] + ld [hli], a + ret +; 1162e + +Function1162e: ; 1162e + ld a, [CurDay] + ld [hli], a + ld a, [hHours] + ld [hli], a + ld a, [hMinutes] + ld [hli], a + ret +; 11639 + +CanLearnTMHMMove: ; 11639 + ld a, [CurPartySpecies] + ld [CurSpecies], a + call GetBaseData + ld hl, BaseTMHM + push hl + + ld a, [$d262] + ld b, a + ld c, 0 + ld hl, TMHMMoves +.loop + ld a, [hli] + and a + jr z, .end + cp b + jr z, .asm_11659 + inc c + jr .loop + +.asm_11659 + pop hl + ld b, CHECK_FLAG + push de + ld d, 0 + ld a, PREDEF_FLAG + call Predef + pop de + ret + +.end + pop hl + ld c, 0 + ret +; 1166a + +GetTMHMMove: ; 1166a + ld a, [$d265] + dec a + ld hl, TMHMMoves + ld b, 0 + ld c, a + add hl, bc + ld a, [hl] + ld [$d265], a + ret +; 1167a -TechnicalMachines: ; 0x1167a +TMHMMoves: ; 1167a db DYNAMICPUNCH db HEADBUTT db CURSE @@ -23142,7 +20012,13 @@ TechnicalMachines: ; 0x1167a db WHIRLPOOL db WATERFALL -INCBIN "baserom.gbc", $116b3, $116b7 - $116b3 +; Move tutor + db FLAMETHROWER + db THUNDERBOLT + db ICE_BEAM + + db 0 ; end +; 116b7 Function116b7: ; 0x116b7 call Function2ed3 @@ -23460,7 +20336,229 @@ UnknownScript_0x122c1: ; 0x122c1 end ; 0x122ce -INCBIN "baserom.gbc", $122ce, $124c8 - $122ce +INCBIN "baserom.gbc", $122ce, $12324 - $122ce + +Function12324: ; 12324 + ld a, [PartyCount] + and a + ret z + ld a, [ScriptVar] + ld [Buffer1], a + ld a, [rOBP1] + ld [Buffer2], a + call Function1233e + ld a, [Buffer2] + call Functiond24 + ret +; 1233e + +Function1233e: ; 1233e + xor a + ld [$d1ec], a +.asm_12342 + ld a, [Buffer1] + ld e, a + ld d, $0 + ld hl, $6365 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$d1ec] + ld e, a + inc a + ld [$d1ec], a + add hl, de + ld a, [hl] + cp $5 + jr z, .asm_12364 + ld hl, $6377 + rst JumpTable + jr .asm_12342 + +.asm_12364 + ret +; 12365 + +INCBIN "baserom.gbc", $12365, $12377 - $12365 + +Table12377: ; 12377 + dw Function12383 + dw Function12393 + dw Function123a1 + dw Function123bf + dw Function123c8 + dw Function123db +; 12383 + +Function12383: ; 12383 + call Function12434 + ld de, $63fc + ld hl, $87c0 + ld bc, $0402 + call Request2bpp + ret +; 12393 + +Function12393: ; 12393 + ld hl, $c480 + ld de, $63dc + call Function124a3 + call Function124a3 + jr Function123a7 + +Function123a1: ; 123a1 + ld hl, $c480 + ld de, $641c + +Function123a7: ; 123a7 + ld a, [PartyCount] + ld b, a +.asm_123ab + call Function124a3 + push de + ld de, $0012 + call StartSFX + pop de + ld c, $1e + call DelayFrames + dec b + jr nz, .asm_123ab + ret +; 123bf + +Function123bf: ; 123bf + ld de, $000d + call StartMusic + jp Function12459 +; 123c8 + +Function123c8: ; 123c8 + ld de, $00aa + call StartSFX + call Function12459 + call WaitSFX + ld de, $000d + call StartSFX + ret +; 123db + +Function123db: ; 123db + ret +; 123dc + +INCBIN "baserom.gbc", $123dc, $12434 - $123dc + +Function12434: ; 12434 + call Function3218 + jr nz, .asm_1243e + ld a, $e0 + ld [rOBP1], a + ret + +.asm_1243e + ld hl, $6451 + ld de, CurMart + ld bc, $0008 + ld a, $5 + call FarCopyWRAM + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 12451 + +INCBIN "baserom.gbc", $12451, $12459 - $12451 + +Function12459: ; 12459 + ld c, $8 +.asm_1245b + push bc + call Function12469 + ld c, $a + call DelayFrames + pop bc + dec c + jr nz, .asm_1245b + ret +; 12469 + +Function12469: ; 12469 + call Function3218 + jr nz, .asm_12475 + ld a, [rOBP1] + xor $28 + ld [rOBP1], a + ret + +.asm_12475 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, CurMart + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push de + ld c, $3 +.asm_12486 + ld a, [hli] + ld e, a + ld a, [hld] + ld d, a + dec hl + ld a, d + ld [hld], a + ld a, e + ld [hli], a + inc hl + inc hl + inc hl + dec c + jr nz, .asm_12486 + pop de + dec hl + ld a, d + ld [hld], a + ld a, e + ld [hl], a + pop af + ld [rSVBK], a + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 124a3 + +Function124a3: ; 124a3 + push bc + ld a, [Buffer1] + ld bc, $1020 + cp $1 + jr z, .asm_124b1 + ld bc, $0000 + +.asm_124b1 + ld a, [de] + add c + inc de + ld [hli], a + ld a, [de] + add b + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + pop bc + ret +; 124c1 + +INCBIN "baserom.gbc", $124c1, $124c8 - $124c1 UnknownScript_0x124c8: ; 0x124c8 refreshscreen $0 @@ -23592,12 +20690,12 @@ StartMenu: ; 125cd call Function2e20 callba Function64bf call .DrawBugContestStatus - call Function485 + call UpdateTimePals jr .Select .Reopen call Function1ad2 - call Function485 + call UpdateTimePals call .SetUpMenuItems ld a, [$d0d2] ld [$cf88], a @@ -23645,7 +20743,7 @@ StartMenu: ; 125cd call Function1c07 .ReturnEnd2 call Function2dcf - call Function485 + call UpdateTimePals ret .GetInput @@ -23660,9 +20758,9 @@ StartMenu: ; 125cd call .PrintMenuAccount call Function1f1a ld a, [$cf73] - cp BUTTON_B + cp B_BUTTON jr z, .b - cp BUTTON_A + cp A_BUTTON jr z, .a jr .loop .a @@ -24559,7 +21657,7 @@ Function12cdf: ; 12cdf ld a, $1 ld [$d10c], a ld hl, NumItems - jp Function2f66 + jp ReceiveItem ; 12cea INCBIN "baserom.gbc", $12cea, $12cf5 - $12cea @@ -24926,7 +22024,64 @@ Function12f50: ; 12f50 ret ; 12f5b -INCBIN "baserom.gbc", $12f5b, $12fba - $12f5b +Function12f5b: ; 12f5b + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + call Functione58 + call Function12f73 + pop bc + ld a, b + ld [Options], a + push af + call WhiteBGMap + pop af + ret +; 12f73 + +Function12f73: ; 12f73 + call Function13172 + ld de, $6fb2 + call Function1bb1 + call Function131ef + ld hl, $cfa5 + set 6, [hl] + jr Function12f93 + +Function12f86: ; 12f86 + call Function1bd3 + bit 1, a + jp nz, Function12f9f + bit 0, a + jp nz, Function12f9c + +Function12f93: ; 12f93 + call Function13235 + call Function13256 + jp Function12f86 +; 12f9c + +Function12f9c: ; 12f9c + and a + jr Function12fa0 + +Function12f9f: ; 12f9f + scf + +Function12fa0: ; 12fa0 + push af + xor a + ld [$d0e3], a + ld hl, $cfa5 + res 6, [hl] + call ClearSprites + call ClearTileMap + pop af + ret +; 12fb2 + +INCBIN "baserom.gbc", $12fb2, $12fba - $12fb2 Function12fba: ; 12fba ld a, [CurPartySpecies] @@ -25275,7 +22430,7 @@ Function13256: ; 13256 ld a, [CurSpecies] ld b, a ld hl, $c592 - ld a, $2a + ld a, PREDEF_PRINT_MOVE_TYPE call Predef ld a, [CurSpecies] dec a @@ -25591,7 +22746,7 @@ Function1344a: ; 1344a ld a, b ld [EngineBuffer1], a ld a, e - ld [CurFruit], a + ld [$d03f], a ld a, d ld [MartPointer], a call Function1345a @@ -25601,7 +22756,7 @@ Function1344a: ; 1344a Function1345a: ; 1345a ld de, CurMart ld bc, $0004 - ld hl, CurFruit + ld hl, $d03f ld a, [hli] ld h, [hl] ld l, a @@ -25622,7 +22777,7 @@ Function1345a: ; 1345a ; 1347d Function1347d: ; 1347d - ld hl, CurFruit + ld hl, $d03f ld a, [hli] ld h, [hl] ld l, a @@ -25673,7 +22828,7 @@ Function1347d: ; 1347d Function134c0: ; 134c0 push af - ld hl, CurFruit + ld hl, $d03f ld a, [hli] ld h, [hl] ld l, a @@ -25831,7 +22986,14 @@ Function13575: ; 13575 ; 135db -INCBIN "baserom.gbc", $135db, $135eb - $135db +Function135db: ; 135db + xor a + ld [$df9c], a + ld a, $14 + ld [$dc79], a + callba Function11490 + ret +; 135eb UnknownScript_0x135eb: ; 0x135eb writecode $3, $6 @@ -25907,7 +23069,459 @@ UnknownScript_0x1369a: ; 0x1369a ; 0x1369d -INCBIN "baserom.gbc", $1369d, $13b87 - $1369d +Function1369d: ; 1369d + call Function13900 + callba Function105f79 + call Function13819 + ld a, [$d00a] + call Function13730 + ld a, [$d00b] + ld [$d265], a + call GetPokemonName + ld hl, $7719 + call PrintText + ld a, [EndFlypoint] + call Function13730 + ld a, [MovementBuffer] + ld [$d265], a + call GetPokemonName + ld hl, $7702 + call PrintText + ld a, [DefaultFlypoint] + call Function13730 + ld a, [$d003] + ld [$d265], a + call GetPokemonName + ld hl, $76eb + call PrintText + jp Function13807 +; 136eb + +INCBIN "baserom.gbc", $136eb, $13730 - $136eb + +Function13730: ; 13730 + dec a + jr z, .asm_13777 + ld c, a + ld b, $0 + ld hl, $7783 + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hli] + ld c, a + push hl + push bc + callab Function3952d + ld hl, StringBuffer1 + ld de, $d016 + ld bc, $000d + call CopyBytes + ld hl, $d016 +.asm_13757 + ld a, [hli] + cp $50 + jr nz, .asm_13757 + dec hl + ld [hl], $7f + inc hl + ld d, h + ld e, l + pop bc + pop hl + push de + ld a, [hl] + ld b, a + callab Function3994c + ld hl, StringBuffer1 + pop de + ld bc, $000a + jp CopyBytes + +.asm_13777 + ld hl, PlayerName + ld de, $d016 + ld bc, $000b + jp CopyBytes +; 13783 + +INCBIN "baserom.gbc", $13783, $13807 - $13783 + +Function13807: ; 13807 + ld hl, $d00a + ld de, $fffc + ld b, $3 +.asm_1380f + ld a, [hl] + cp $1 + jr z, .asm_13818 + add hl, de + dec b + jr nz, .asm_1380f + +.asm_13818 + ret +; 13819 + +Function13819: ; 13819 + call Function13833 + call Function138b0 + ld hl, $d00e + ld a, $1 + ld [hli], a + ld a, [$df9c] + ld [hli], a + ld a, [hProduct] + ld [hli], a + ld a, [hMultiplicand] + ld [hl], a + call Function1383e + ret +; 13833 + +Function13833: ; 13833 + ld hl, DefaultFlypoint + ld b, $c + xor a +.asm_13839 + ld [hli], a + dec b + jr nz, .asm_13839 + ret +; 1383e + +Function1383e: ; 1383e + ld de, $d010 + ld hl, $d004 + ld c, $2 + call StringCmp + jr c, .asm_1386b + ld hl, EndFlypoint + ld de, $d00a + ld bc, $0004 + call CopyBytes + ld hl, DefaultFlypoint + ld de, EndFlypoint + ld bc, $0004 + call CopyBytes + ld hl, DefaultFlypoint + call Function138a0 + jr .asm_1389f + +.asm_1386b + ld de, $d010 + ld hl, $d008 + ld c, $2 + call StringCmp + jr c, .asm_1388c + ld hl, EndFlypoint + ld de, $d00a + ld bc, $0004 + call CopyBytes + ld hl, EndFlypoint + call Function138a0 + jr .asm_1389f + +.asm_1388c + ld de, $d010 + ld hl, $d00c + ld c, $2 + call StringCmp + jr c, .asm_1389f + ld hl, $d00a + call Function138a0 + +.asm_1389f + ret +; 138a0 + +Function138a0: ; 138a0 + ld de, $d00e + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hl], a + ret +; 138b0 + +Function138b0: ; 138b0 + ld e, $0 +.asm_138b2 + push de + call Function139ed + pop de + jr nz, .asm_138f9 + ld a, e + inc a + inc a + ld [$d00e], a + dec a + ld c, a + ld b, $0 + ld hl, $7783 + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + inc hl + inc hl +.asm_138cd + call Random + and $3 + cp $3 + jr z, .asm_138cd + ld c, a + ld b, $0 + add hl, bc + add hl, bc + add hl, bc + ld a, [hli] + ld [$d00f], a + ld a, [hli] + ld h, [hl] + ld l, a + call Random + and $7 + ld c, a + ld b, $0 + add hl, bc + ld a, h + ld [$d010], a + ld a, l + ld [$d011], a + push de + call Function1383e + pop de + +.asm_138f9 + inc e + ld a, e + cp $a + jr nz, .asm_138b2 + ret +; 13900 + +Function13900: ; 13900 + xor a + ld [hProduct], a + ld [hMultiplicand], a + ld a, [$df9c] + and a + jr z, .asm_1397e + ld a, [$dfc1] + call Function1397f + ld a, [$dfc1] + call Function1397f + ld a, [$dfc1] + call Function1397f + ld a, [$dfc1] + call Function1397f + ld a, [$dfc3] + call Function1397f + ld a, [$dfc5] + call Function1397f + ld a, [$dfc7] + call Function1397f + ld a, [$dfc9] + call Function1397f + ld a, [$dfcb] + call Function1397f + ld a, [$dfb1] + ld b, a + and $2 + add a + add a + ld c, a + swap b + ld a, b + and $2 + add a + add c + ld d, a + ld a, [$dfb2] + ld b, a + and $2 + ld c, a + swap b + ld a, b + and $2 + srl a + add c + add c + add d + add d + call Function1397f + ld a, [$dfbf] + srl a + srl a + srl a + call Function1397f + ld a, [$df9d] + and a + jr z, .asm_1397e + ld a, $1 + call Function1397f + +.asm_1397e + ret +; 1397f + +Function1397f: ; 1397f + ld hl, hMultiplicand + add [hl] + ld [hl], a + ret nc + dec hl + inc [hl] + ret +; 13988 + +Function13988: ; 13988 + ld hl, PartyMon1PokerusStatus + ld a, [PartyCount] + and a + ret z + ld c, a +.asm_13991 + ld a, [hl] + and $f + jr z, .asm_139a0 + sub b + jr nc, .asm_1399a + xor a + +.asm_1399a + ld d, a + ld a, [hl] + and $f0 + add d + ld [hl], a + +.asm_139a0 + ld de, PartyMon2 - PartyMon1 + add hl, de + dec c + jr nz, .asm_13991 + ret +; 139a8 + +Function139a8: ; 139a8 + ld c, $a + ld hl, $79fe +.asm_139ad + push bc + push hl + ld e, [hl] + inc hl + ld d, [hl] + ld b, $0 + call EventFlagAction + pop hl + inc hl + inc hl + pop bc + dec c + jr nz, .asm_139ad + ld c, $5 +.asm_139c0 + push bc +.asm_139c1 + call Random + cp $fa + jr nc, .asm_139c1 + ld c, $19 + call SimpleDivide + ld e, b + ld d, $0 + ld hl, $79fe + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + push de + ld b, $2 + call EventFlagAction + pop de + ld a, c + and a + jr nz, .asm_139c1 + ld b, $1 + call EventFlagAction + pop bc + dec c + jr nz, .asm_139c0 + ret +; 139ed + +Function139ed: ; 139ed + ld hl, $79fe + ld e, a + ld d, $0 + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld b, $2 + call EventFlagAction + ret +; 139fe + +INCBIN "baserom.gbc", $139fe, $13a12 - $139fe + +Function13a12: ; 13a12 + ld hl, PartyMon1CurHP + ld a, [hli] + or [hl] + jr z, .asm_13a2b + ld hl, PartyCount + ld a, $1 + ld [hli], a + inc hl + ld a, [hl] + ld [$df9b], a + ld [hl], $ff + xor a + ld [ScriptVar], a + ret + +.asm_13a2b + ld a, $1 + ld [ScriptVar], a + ret +; 13a31 + +Function13a31: ; 13a31 + ld hl, $dcd9 + ld a, [$df9b] + ld [hl], a + ld b, $1 +.asm_13a3a + ld a, [hli] + cp $ff + jr z, .asm_13a42 + inc b + jr .asm_13a3a + +.asm_13a42 + ld a, b + ld [PartyCount], a + ret +; 13a47 + +INCBIN "baserom.gbc", $13a47, $13b87 - $13a47 GetSquareRoot: ; 13b87 @@ -27655,7 +25269,49 @@ Function14a07: ; 14a07 ret ; 14a1a -INCBIN "baserom.gbc", $14a1a, $14b5f - $14a1a +INCBIN "baserom.gbc", $14a1a, $14a58 - $14a1a + +Function14a58: ; 14a58 + call Function14b54 + callba Function14056 + callba Function1050d9 + call Function14df7 + call Function14e13 + call Function14e76 + call Function14e8b + callba Function44725 + callba Function1406a + call Function14b5a + ret +; 14a83 + +INCBIN "baserom.gbc", $14a83, $14ab2 - $14a83 + +Function14ab2: ; 14ab2 + call Function14b89 + jr c, .asm_14ac1 + call Function14b54 + call Function14be3 + call Function14b5a + and a + +.asm_14ac1 + ret +; 14ac2 + +INCBIN "baserom.gbc", $14ac2, $14b54 - $14ac2 + +Function14b54: ; 14b54 + ld a, $1 + ld [$c2cd], a + ret +; 14b5a + +Function14b5a: ; 14b5a + xor a + ld [$c2cd], a + ret +; 14b5f Function14b5f: ; 14b5f @@ -27685,7 +25341,87 @@ Function14b85: ; 14b85 ret ; 14b89 -INCBIN "baserom.gbc", $14b89, $14c10 - $14b89 +Function14b89: ; 14b89 + ld a, [$cfcd] + and a + jr z, .asm_14ba8 + call Function14bcb + jr z, .asm_14b9e + ld hl, $5297 + call Function14baf + jr nz, .asm_14bad + jr .asm_14ba8 + +.asm_14b9e + ld hl, $5292 + call Function14baf + jr nz, .asm_14bad + jr .asm_14bab + +.asm_14ba8 + call Function14cbb + +.asm_14bab + and a + ret + +.asm_14bad + scf + ret +; 14baf + +Function14baf: ; 14baf + ld b, $5 + call Function269a + call Function1d58 + ld bc, $0007 + call Function1dd2 + ld a, [$cfa9] + dec a + call Function1c17 + push af + call Functiond90 + pop af + and a + ret +; 14bcb + +Function14bcb: ; 14bcb + ld a, $1 + call GetSRAMBank + ld hl, $a009 + ld a, [hli] + ld c, [hl] + ld b, a + call CloseSRAM + ld a, [PlayerID] + cp b + ret nz + ld a, [$d47c] + cp c + ret +; 14be3 + +Function14be3: ; 14be3 + call Function14c99 + call Function14c10 + ld c, $20 + call DelayFrames + ld a, [Options] + push af + ld a, $3 + ld [Options], a + ld hl, $528d + call PrintText + pop af + ld [Options], a + ld de, $0025 + call WaitPlaySFX + call WaitSFX + ld c, $1e + call DelayFrames + ret +; 14c10 Function14c10: ; 14c10 @@ -27768,7 +25504,24 @@ Function14c90: ; 14c90 jr .asm_14c93 ; 14c99 -INCBIN "baserom.gbc", $14c99, $14cbb - $14c99 +Function14c99: ; 14c99 + xor a + ld [hJoypadReleased], a + ld [hJoypadPressed], a + ld [hJoypadSum], a + ld [hJoypadDown], a + ld a, [Options] + push af + ld a, $3 + ld [Options], a + ld hl, $5288 + call PrintText + pop af + ld [Options], a + ld c, $10 + call DelayFrames + ret +; 14cbb Function14cbb: ; 14cbb @@ -28072,7 +25825,20 @@ Function14faf: ; 14faf ret ; 14fd7 -INCBIN "baserom.gbc", $14fd7, $1509a - $14fd7 +INCBIN "baserom.gbc", $14fd7, $1500c - $14fd7 + +Function1500c: ; 1500c + ld a, $1 + call GetSRAMBank + ld hl, $a865 + ld de, PartyCount + ld bc, $031e + call CopyBytes + call CloseSRAM + ret +; 15021 + +INCBIN "baserom.gbc", $15021, $1509a - $15021 Function1509a: ; 1509a @@ -28128,7 +25894,7 @@ Function150f9: ; 150f9 push de ld a, $1 call GetSRAMBank - ld hl, $ad10 + ld hl, BoxCount ld de, EnemyMoveAnimation ld bc, $01e0 call CopyBytes @@ -28368,7 +26134,149 @@ Function1541d: ; 1541d jr .asm_1541d ; 15440 -INCBIN "baserom.gbc", $15440, $15736 - $15440 +INCBIN "baserom.gbc", $15440, $1559a - $15440 + +Function1559a: ; 1559a + call Function15650 + ret c + call Function156b3 + ld hl, $5a27 + call Function15a20 + ld hl, $5a2c + call Function157bb + ld hl, $55d6 + call LoadMenuDataHeader +.asm_155b3 + xor a + ld [hBGMapMode], a + call Function1563e + ld [$cf76], a + call Function1e5d + jr c, .asm_155cc + ld a, [MenuSelection] + ld hl, $55e6 + call Function1fa7 + jr nc, .asm_155b3 + +.asm_155cc + call Function156b8 + call Function1c07 + call Function1c17 + ret +; 155d6 + +INCBIN "baserom.gbc", $155d6, $1563e - $155d6 + +Function1563e: ; 1563e + call Function2ead + jr nz, .asm_15646 + ld a, $0 + ret + +.asm_15646 + ld a, [$d95e] + and a + ld a, $1 + ret z + ld a, $2 + ret +; 15650 + +Function15650: ; 15650 + ld a, [PartyCount] + and a + ret nz + ld de, $000f + call StartSFX + ld hl, $5663 + call Function15a20 + scf + ret +; 15663 + +INCBIN "baserom.gbc", $15663, $156b3 - $15663 + +Function156b3: ; 156b3 + ld de, $000d + jr Function156d0 + +Function156b8: ; 156b8 + ld de, $000e + call Function156d0 + call WaitSFX + ret + +Function156c1: ; 156c1 + ld de, $000f + jr Function156d0 + +Function156c6: ; 156c6 + ld de, $0020 + call Function156d0 + ld de, $0020 + +Function156d0: ; 156d0 + push de + call WaitSFX + pop de + call StartSFX + ret +; 156d9 + +Function156d9: ; 156d9 + call Function156b3 + ld hl, $56ff + call Function15a20 + ld b, $1 + call Function15704 + and a + jr nz, .asm_156f9 + call Function2173 + call Function321c + call Function1ad2 + call Function156b8 + ld c, $0 + ret + +.asm_156f9 + call WhiteBGMap + ld c, $1 + ret +; 156ff + +INCBIN "baserom.gbc", $156ff, $15704 - $156ff + +Function15704: ; 15704 + ld a, b + ld [$cf76], a + ld hl, $57cc + call Function157bb + call Function15715 + call Function1c07 + ret +; 15715 + +Function15715: ; 15715 + xor a + ld [$d0d7], a + ld [$d0dd], a + ld hl, KrissPCMenuData + call LoadMenuDataHeader +.asm_15722 + call UpdateTimePals + call Function1e5d + jr c, .asm_15731 + call Function1fa7 + jr nc, .asm_15722 + jr .asm_15732 + +.asm_15731 + xor a + +.asm_15732 + call Function1c07 + ret +; 15736 KrissPCMenuData: ; 0x15736 db %01000000 @@ -28429,7 +26337,18 @@ LOG_OFF EQU 6 db LOG_OFF db $ff -INCBIN "baserom.gbc", $157bb, $157d1 - $157bb +Function157bb: ; 157bb + ld a, [Options] + push af + set 4, a + ld [Options], a + call Function1d4f + pop af + ld [Options], a + ret +; 157cc + +INCBIN "baserom.gbc", $157cc, $157d1 - $157cc KrisWithdrawItemMenu: ; 0x157d1 call Function1d6e @@ -28476,14 +26395,14 @@ Function157e9: ; 0x157e9 ld a, [$d107] ld [Buffer2], a ld hl, NumItems - call Function2f66 + call ReceiveItem jr nc, .PackFull ld a, [Buffer1] ld [$d10c], a ld a, [Buffer2] ld [$d107], a ld hl, PCItems - call Function2f53 + call TossItem ld a, $3b call Predef ld hl, .WithdrewText @@ -28657,14 +26576,14 @@ Function1590a: ; 0x1590a ld a, [$d107] ld [Buffer2], a ld hl, PCItems - call Function2f66 + call ReceiveItem jr nc, .asm_15965 ld a, [Buffer1] ld [$d10c], a ld a, [Buffer2] ld [$d107], a ld hl, NumItems - call Function2f53 + call TossItem ld a, $3b call Predef ld hl, .DepositText @@ -28754,7 +26673,7 @@ Function15985: ; 0x15985 jr .asm_159f8 .asm_159ef - call $56c7 + call Function156c6 .asm_159f2 ld a, $9 @@ -28793,7 +26712,13 @@ MenuData15a08: ; 0x15a08 dbw BANK(Function24ac3), Function24ac3 dbw BANK(Function244c3), Function244c3 -INCBIN "baserom.gbc", $15a20, $15a45 - $15a20 +Function15a20: ; 15a20 + call Function1d4f + call Function1c07 + ret +; 15a27 + +INCBIN "baserom.gbc", $15a27, $15a45 - $15a27 OpenMartDialog: ; 15a45 @@ -28808,11 +26733,11 @@ OpenMartDialog: ; 15a45 ; 15a57 .dialogs - dw MartDialog - dw HerbShop - dw BargainShop - dw Pharmacist - dw VendingMachine + dw MartDialog + dw HerbShop + dw BargainShop + dw Pharmacist + dw VendingMachine ; 15a61 MartDialog: ; 15a61 @@ -28894,7 +26819,7 @@ INCBIN "baserom.gbc", $15aee, $15b10 - $15aee Function15b10: ; 15b10 ld a, b - ld [CurFruit], a + ld [$d03f], a ld a, e ld [MartPointer], a ld a, d @@ -28940,12 +26865,12 @@ Function15b47: ; 15b47 ret .table_15b56 - dw Function15b62 - dw Function15b6e - dw Function15b8d - dw Function15b9a - dw Function15ba3 - dw Function15baf + dw Function15b62 + dw Function15b6e + dw Function15b8d + dw Function15b9a + dw Function15ba3 + dw Function15baf ; 15b62 Function15b62: ; 15b62 @@ -29016,7 +26941,7 @@ ReadMart: ; 15bbb ld l, a ld de, CurMart .CopyMart - ld a, [CurFruit] + ld a, [$d03f] call GetFarByte ld [de], a inc hl @@ -29182,11 +27107,11 @@ Function15ca3: ; 15ca3 ; 15cb0 .data_15cb0 ; 15cb0 - dwb $5cbf, 0 - dwb $5ccb, 0 - dwb $5cd7, 1 - dwb $5ce3, 0 - dwb $5cbf, 2 + dwb $5cbf, 0 + dwb $5ccb, 0 + dwb $5cd7, 1 + dwb $5ce3, 0 + dwb $5cbf, 2 ; 15cbf INCBIN "baserom.gbc", $15cbf, $15cef - $15cbf @@ -29226,7 +27151,7 @@ Function15cef: ; 15cef call Function1600b jr c, .asm_15d79 ld hl, NumItems - call Function2f66 + call ReceiveItem jr nc, .asm_15d6f ld a, [$d107] ld e, a @@ -29391,12 +27316,24 @@ INCBIN "baserom.gbc", $15ed3, $15ee0 - $15ed3 Function15ee0: ; 15ee0 callba CheckItemMenu ld a, [$d142] - ld hl, $5eee + ld hl, Table15eee rst JumpTable ret ; 15eee -INCBIN "baserom.gbc", $15eee, $15efd - $15eee +Table15eee: ; 15eee + dw Function15efd + dw Function15efc + dw Function15efc + dw Function15efc + dw Function15efd + dw Function15efd + dw Function15efd +; 15efc + +Function15efc: ; 15efc + ret +; 15efd Function15efd: ; 15efd @@ -29432,7 +27369,7 @@ Function15efd: ; 15efd call Function15fd7 ld a, [$d107] ld hl, NumItems - call Function2f53 + call TossItem ld a, $3b call Predef ld hl, $c5b9 @@ -29699,451 +27636,909 @@ Function160a1: ; 160a1 ; 160a9 -Marts: ; 160a9 - dw Mart0 - dw Mart1 - dw Mart2 - dw Mart3 - dw Mart4 - dw Mart5 - dw Mart6 - dw Mart7 - dw Mart8 - dw Mart9 - dw Mart10 - dw Mart11 - dw Mart12 - dw Mart13 - dw Mart14 - dw Mart15 - dw Mart16 - dw Mart17 - dw Mart18 - dw Mart19 - dw Mart20 - dw Mart21 - dw Mart22 - dw Mart23 - dw Mart24 - dw Mart25 - dw Mart26 - dw Mart27 - dw Mart28 - dw Mart29 - dw Mart30 - dw Mart31 - dw Mart32 - dw Mart33 -MartsEnd -; 160ed - - -Mart0: ; 160ed - db 4 ; # items - db POTION - db ANTIDOTE - db PARLYZ_HEAL - db AWAKENING - db $ff -; 160f3 - -Mart1: ; 160f3 - db 5 ; # items - db POKE_BALL - db POTION - db ANTIDOTE - db PARLYZ_HEAL - db AWAKENING - db $ff -; 160fa - -Mart2: ; 160fa - db 10 ; # items - db POKE_BALL - db POTION - db ESCAPE_ROPE - db ANTIDOTE - db PARLYZ_HEAL - db AWAKENING - db X_DEFEND - db X_ATTACK - db X_SPEED - db FLOWER_MAIL - db $ff -; 16106 - -Mart3: ; 16106 - db 9 ; # items - db CHARCOAL - db POKE_BALL - db POTION - db SUPER_POTION - db ESCAPE_ROPE - db REPEL - db ANTIDOTE - db PARLYZ_HEAL - db FLOWER_MAIL - db $ff -; 16111 - -Mart4: ; 16111 - db 5 ; # items - db POTION - db SUPER_POTION - db HYPER_POTION - db FULL_HEAL - db REVIVE - db $ff -; 16118 - -Mart5: ; 16118 - db 7 ; # items - db POTION - db SUPER_POTION - db ANTIDOTE - db PARLYZ_HEAL - db AWAKENING - db BURN_HEAL - db ICE_HEAL - db $ff -; 16121 - -Mart6: ; 16121 - db 8 ; # items - db POKE_BALL - db GREAT_BALL - db ESCAPE_ROPE - db REPEL - db REVIVE - db FULL_HEAL - db POKE_DOLL - db FLOWER_MAIL - db $ff -; 1612b - -Mart7: ; 1612b - db 7 ; # items - db X_SPEED - db X_SPECIAL - db X_DEFEND - db X_ATTACK - db DIRE_HIT - db GUARD_SPEC - db X_ACCURACY - db $ff -; 16134 - -Mart8: ; 16134 - db 5 ; # items - db PROTEIN - db IRON - db CARBOS - db CALCIUM - db HP_UP - db $ff -; 1613b +INCLUDE "items/marts.asm" -Mart9: ; 1613b - db 3 ; # items - db TM_41 - db TM_48 - db TM_33 - db $ff -; 16140 - -Mart10: ; 16140 - db 4 ; # items - db TM_41 - db TM_48 - db TM_33 - db TM_02 - db $ff -; 16146 - -Mart11: ; 16146 - db 4 ; # items - db TM_41 - db TM_48 - db TM_33 - db TM_08 - db $ff -; 1614c - -Mart12: ; 1614c - db 5 ; # items - db TM_41 - db TM_48 - db TM_33 - db TM_02 - db TM_08 - db $ff -; 16153 - -Mart13: ; 16153 - db 9 ; # items - db GREAT_BALL - db SUPER_POTION - db HYPER_POTION - db ANTIDOTE - db PARLYZ_HEAL - db AWAKENING - db ICE_HEAL - db SUPER_REPEL - db SURF_MAIL - db $ff -; 1615e - -Mart14: ; 1615e - db 10 ; # items - db POKE_BALL - db GREAT_BALL - db POTION - db SUPER_POTION - db ANTIDOTE - db PARLYZ_HEAL - db AWAKENING - db BURN_HEAL - db ICE_HEAL - db REVIVE - db $ff -; 1616a - -Mart15: ; 1616a - db 4 ; # items - db TINYMUSHROOM - db SLOWPOKETAIL - db POKE_BALL - db POTION - db $ff -; 16170 - -Mart16: ; 16170 - db 9 ; # items - db RAGECANDYBAR - db GREAT_BALL - db SUPER_POTION - db HYPER_POTION - db ANTIDOTE - db PARLYZ_HEAL - db SUPER_REPEL - db REVIVE - db FLOWER_MAIL - db $ff -; 1617b - -Mart17: ; 1617b - db 9 ; # items - db GREAT_BALL - db ULTRA_BALL - db HYPER_POTION - db MAX_POTION - db FULL_HEAL - db REVIVE - db MAX_REPEL - db X_DEFEND - db X_ATTACK - db $ff -; 16186 - -Mart18: ; 16186 - db 9 ; # items - db ULTRA_BALL - db HYPER_POTION - db FULL_HEAL - db REVIVE - db ANTIDOTE - db PARLYZ_HEAL - db AWAKENING - db BURN_HEAL - db FLOWER_MAIL - db $ff -; 16191 - -Mart19: ; 16191 - db 7 ; # items - db GREAT_BALL - db SUPER_POTION - db SUPER_REPEL - db ANTIDOTE - db PARLYZ_HEAL - db AWAKENING - db BURN_HEAL - db $ff -; 1619a - -Mart20: ; 1619a - db 9 ; # items - db GREAT_BALL - db ULTRA_BALL - db SUPER_POTION - db SUPER_REPEL - db FULL_HEAL - db X_DEFEND - db X_ATTACK - db DIRE_HIT - db SURF_MAIL - db $ff -; 161a5 - -Mart21: ; 161a5 - db 8 ; # items - db GREAT_BALL - db POTION - db SUPER_POTION - db MAX_REPEL - db ANTIDOTE - db PARLYZ_HEAL - db AWAKENING - db BURN_HEAL - db $ff -; 161af - -Mart22: ; 161af - db 8 ; # items - db ULTRA_BALL - db SUPER_POTION - db HYPER_POTION - db REVIVE - db PARLYZ_HEAL - db AWAKENING - db BURN_HEAL - db LITEBLUEMAIL - db $ff -; 161b9 - -Mart23: ; 161b9 - db 7 ; # items - db POTION - db SUPER_POTION - db HYPER_POTION - db MAX_POTION - db REVIVE - db SUPER_REPEL - db MAX_REPEL - db $ff -; 161c2 - -Mart24: ; 161c2 - db 10 ; # items - db POKE_BALL - db GREAT_BALL - db ULTRA_BALL - db ESCAPE_ROPE - db FULL_HEAL - db ANTIDOTE - db BURN_HEAL - db ICE_HEAL - db AWAKENING - db PARLYZ_HEAL - db $ff -; 161ce - -Mart25: ; 161ce - db 5 ; # items - db TM_10 - db TM_11 - db TM_17 - db TM_18 - db TM_37 - db $ff -; 161d5 -Mart26: ; 161d5 - db 3 ; # items - db POKE_DOLL - db LOVELY_MAIL - db SURF_MAIL - db $ff -; 161da - -Mart27: ; 161da - db 5 ; # items - db HP_UP - db PROTEIN - db IRON - db CARBOS - db CALCIUM - db $ff -; 161e1 - -Mart28: ; 161e1 - db 7 ; # items - db X_ACCURACY - db GUARD_SPEC - db DIRE_HIT - db X_ATTACK - db X_DEFEND - db X_SPEED - db X_SPECIAL - db $ff -; 161ea - -Mart29: ; 161ea - db 7 ; # items - db GREAT_BALL - db ULTRA_BALL - db SUPER_POTION - db HYPER_POTION - db FULL_HEAL - db MAX_REPEL - db FLOWER_MAIL - db $ff -; 161f3 - -Mart30: ; 161f3 - db 8 ; # items - db GREAT_BALL - db ULTRA_BALL - db HYPER_POTION - db MAX_POTION - db FULL_HEAL - db X_ATTACK - db X_DEFEND - db FLOWER_MAIL - db $ff -; 161fd - -Mart31: ; 161fd - db 6 ; # items - db POKE_DOLL - db FRESH_WATER - db SODA_POP - db LEMONADE - db REPEL - db PORTRAITMAIL - db $ff -; 16205 - -Mart32: ; 16205 - db 7 ; # items - db ULTRA_BALL - db MAX_REPEL - db HYPER_POTION - db MAX_POTION - db FULL_RESTORE - db REVIVE - db FULL_HEAL - db $ff -; 1620e - -Mart33: ; 1620e - db 4 ; # items - db ENERGYPOWDER - db ENERGY_ROOT - db HEAL_POWDER - db REVIVAL_HERB - db $ff -; 16214 +Function16218: ; 16218 + ld a, [$ffaa] + push af + ld a, $1 + ld [$ffaa], a + xor a + ld [$cf63], a +.asm_16223 + ld a, [$cf63] + bit 7, a + jr nz, .asm_1622f + call Function16233 + jr .asm_16223 -DefaultMart: ; 16214 - db 2 ; # items - db POKE_BALL - db POTION - db $ff -; 16218 +.asm_1622f + pop af + ld [$ffaa], a + ret +; 16233 + +Function16233: ; 16233 + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $6242 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 16242 + +INCBIN "baserom.gbc", $16242, $166d6 - $16242 + +Function166d6: ; 166d6 + ld hl, DaycareMan + bit 0, [hl] + jr nz, .asm_166fe + ld hl, DaycareMan + ld a, $0 + call Function1678f + jr c, .asm_16724 + call Function16798 + jr c, .asm_16721 + callba Functionde2a + ld hl, DaycareMan + set 0, [hl] + call Function167f6 + call Function16a3b + ret + +.asm_166fe + callba Functione698 + ld hl, BreedMon1Nick + call Function1686d + call Function16807 + jr c, .asm_16721 + callba Functiondd21 + call Function16850 + ld hl, DaycareMan + res 0, [hl] + res 5, [hl] + jr .asm_16724 + +.asm_16721 + call Function1689b + +.asm_16724 + ld a, $13 + call Function1689b + ret +; 1672a + +Function1672a: ; 1672a + ld hl, DaycareLady + bit 0, [hl] + jr nz, .asm_16752 + ld hl, DaycareLady + ld a, $2 + call Function16781 + jr c, .asm_1677b + call Function16798 + jr c, .asm_16778 + callba Functionde37 + ld hl, DaycareLady + set 0, [hl] + call Function167f6 + call Function16a3b + ret + +.asm_16752 + callba Functione6b3 + ld hl, BreedMon2Nick + call Function1686d + call Function16807 + jr c, .asm_16778 + callba Functiondd42 + call Function16850 + ld hl, DaycareLady + res 0, [hl] + ld hl, DaycareMan + res 5, [hl] + jr .asm_1677b + +.asm_16778 + call Function1689b + +.asm_1677b + ld a, $13 + call Function1689b + ret +; 16781 + +Function16781: ; 16781 + bit 7, [hl] + jr nz, .asm_16788 + set 7, [hl] + inc a + +.asm_16788 + call Function1689b + call Function1dcf + ret +; 1678f + +Function1678f: ; 1678f + set 7, [hl] + call Function1689b + call Function1dcf + ret +; 16798 + +Function16798: ; 16798 + ld a, [PartyCount] + cp $2 + jr c, .asm_167e5 + ld a, $4 + call Function1689b + ld b, $6 + callba Function5001d + jr c, .asm_167dd + ld a, [CurPartySpecies] + cp $fd + jr z, .asm_167e1 + callba Functione538 + jr c, .asm_167e9 + ld hl, PartyMon1Item + ld bc, $0030 + ld a, [CurPartyMon] + call AddNTimes + ld d, [hl] + callba ItemIsMail + jr c, .asm_167ed + ld hl, PartyMon1Nickname + ld a, [CurPartyMon] + call GetNick + and a + ret + +.asm_167dd + ld a, $12 + scf + ret + +.asm_167e1 + ld a, $6 + scf + ret + +.asm_167e5 + ld a, $7 + scf + ret + +.asm_167e9 + ld a, $8 + scf + ret + +.asm_167ed + ld a, $a + scf + ret +; 167f1 + +INCBIN "baserom.gbc", $167f1, $167f6 - $167f1 + +Function167f6: ; 167f6 + ld a, $5 + call Function1689b + ld a, [CurPartySpecies] + call Function37ce + ld a, $9 + call Function1689b + ret +; 16807 + +Function16807: ; 16807 + ld a, [$d087] + and a + jr nz, .asm_16819 + ld a, $f + call Function1689b + call Function1dcf + jr c, .asm_16844 + jr .asm_1682d + +.asm_16819 + ld a, $b + call Function1689b + call Function1dcf + jr c, .asm_16844 + ld a, $c + call Function1689b + call Function1dcf + jr c, .asm_16844 + +.asm_1682d + ld de, Money + ld bc, $d088 + callba Function1600b + jr c, .asm_16848 + ld a, [PartyCount] + cp $6 + jr nc, .asm_1684c + and a + ret +.asm_16844 + ld a, $12 + scf + ret + +.asm_16848 + ld a, $11 + scf + ret + +.asm_1684c + ld a, $10 + scf + ret +; 16850 + +Function16850: ; 16850 + ld bc, $d088 + ld de, Money + callba Function15ffa + ld a, $d + call Function1689b + ld a, [CurPartySpecies] + call Function37ce + ld a, $e + call Function1689b + ret +; 1686d + +Function1686d: ; 1686d + ld a, b + ld [StringBuffer2], a + ld a, d + ld [$d087], a + ld de, StringBuffer1 + ld bc, $000b + call CopyBytes + ld hl, $0000 + ld bc, $0064 + ld a, [$d087] + call AddNTimes + ld de, $0064 + add hl, de + xor a + ld [$d088], a + ld a, h + ld [$d089], a + ld a, l + ld [$d08a], a + ret +; 1689b + +Function1689b: ; 1689b + ld e, a + ld d, $0 + ld hl, $68aa + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + ret +; 168aa + +INCBIN "baserom.gbc", $168aa, $16936 - $168aa -INCBIN "baserom.gbc", $16218, $16e1d - $16218 +Function16936: ; 16936 + ld hl, DaycareMan + bit 6, [hl] + jr nz, .asm_16949 + ld hl, .data_16944 + call PrintText + ret + +.data_16944 + db $16 + db $f6 + db $5e + db $6f + db $50 + +.asm_16949 + ld hl, $6993 + call PrintText + call Function1dcf + jr c, .asm_1697c + ld a, [PartyCount] + cp $6 + jr nc, .asm_16987 + call Function169ac + ld hl, DaycareMan + res 6, [hl] + call Function16a3b + ld hl, $6998 + call PrintText + ld de, $0096 + call StartSFX + ld c, $78 + call DelayFrames + ld hl, $699d + jr .asm_1697f + +.asm_1697c + ld hl, $69a2 + +.asm_1697f + call PrintText + xor a + ld [ScriptVar], a + ret + +.asm_16987 + ld hl, $69a7 + call PrintText + ld a, $1 + ld [ScriptVar], a + ret +; 16993 + +INCBIN "baserom.gbc", $16993, $169ac - $16993 + +Function169ac: ; 169ac + ld a, [$df9a] + ld [CurPartyLevel], a + ld hl, PartyCount + ld a, [hl] + cp $6 + jr nc, .asm_16a2f + inc a + ld [hl], a + ld c, a + ld b, $0 + add hl, bc + ld a, $fd + ld [hli], a + ld a, [EggSpecies] + ld [CurSpecies], a + ld [CurPartySpecies], a + ld a, $ff + ld [hl], a + ld hl, PartyMon1Nickname + ld bc, $000b + call Function16a31 + ld hl, EggNick + call CopyBytes + ld hl, PartyMon1OT + ld bc, $000b + call Function16a31 + ld hl, EggOT + call CopyBytes + ld hl, PartyMon1Species + ld bc, $0030 + call Function16a31 + ld hl, EggSpecies + ld bc, $0020 + call CopyBytes + call GetBaseData + ld a, [PartyCount] + dec a + ld hl, PartyMon1Species + ld bc, $0030 + call AddNTimes + ld b, h + ld c, l + ld hl, $0007 + add hl, bc + push hl + ld hl, $0024 + add hl, bc + ld d, h + ld e, l + pop hl + push bc + ld b, $0 + ld a, $c + call Predef + pop bc + ld hl, $0022 + add hl, bc + xor a + ld [hli], a + ld [hl], a + and a + ret + +.asm_16a2f + scf + ret +; 16a31 + +Function16a31: ; 16a31 + ld a, [PartyCount] + dec a + call AddNTimes + ld d, h + ld e, l + ret +; 16a3b + +Function16a3b: ; 16a3b + ld a, [DaycareLady] + bit 0, a + ret z + ld a, [DaycareMan] + bit 0, a + ret z + callab Function16e1d + ld a, [$d265] + and a + ret z + inc a + ret z + ld hl, DaycareMan + set 5, [hl] +.asm_16a59 + call Random + cp $96 + jr c, .asm_16a59 + ld [StepsToEgg], a + jp Function16a66 +; 16a66 + +Function16a66: ; 16a66 + xor a + ld hl, EggSpecies + ld bc, $0020 + call ByteFill + ld hl, EggNick + ld bc, $000b + call ByteFill + ld hl, EggOT + ld bc, $000b + call ByteFill + ld a, [$df21] + ld [TempMonDVs], a + ld a, [$df22] + ld [$d124], a + ld a, [BreedMon1Species] + ld [CurPartySpecies], a + ld a, $3 + ld [MonType], a + ld a, [BreedMon1Species] + cp $84 + ld a, $1 + jr z, .asm_16ab6 + ld a, [BreedMon2Species] + cp $84 + ld a, $0 + jr z, .asm_16ab6 + callba GetGender + ld a, $0 + jr z, .asm_16ab6 + inc a + +.asm_16ab6 + ld [DittoInDaycare], a + and a + ld a, [BreedMon1Species] + jr z, .asm_16ac2 + ld a, [BreedMon2Species] + +.asm_16ac2 + ld [CurPartySpecies], a + callab GetPreEvolution + callab GetPreEvolution + ld a, $5 + ld [CurPartyLevel], a + ld a, [CurPartySpecies] + cp $1d + jr nz, .asm_16ae8 + call Random + cp $80 + ld a, $1d + jr c, .asm_16ae8 + ld a, $20 + +.asm_16ae8 + ld [CurPartySpecies], a + ld [CurSpecies], a + ld [EggSpecies], a + call GetBaseData + ld hl, EggNick + ld de, $6be0 + call CopyName2 + ld hl, PlayerName + ld de, EggOT + ld bc, $000b + call CopyBytes + xor a + ld [$df7c], a + ld de, $df7d + xor a + ld [Buffer1], a + ld a, $1b + call Predef + callba Function170bf + ld hl, $df81 + ld a, [PlayerID] + ld [hli], a + ld a, [$d47c] + ld [hl], a + ld a, [CurPartyLevel] + ld d, a + callab Function50e47 + ld hl, $df83 + ld a, [hMultiplicand] + ld [hli], a + ld a, [$ffb5] + ld [hli], a + ld a, [$ffb6] + ld [hl], a + xor a + ld b, $a + ld hl, $df86 +.asm_16b46 + ld [hli], a + dec b + jr nz, .asm_16b46 + ld hl, $df90 + call Random + ld [hli], a + ld [TempMonDVs], a + call Random + ld [hld], a + ld [$d124], a + ld de, $df21 + ld a, [BreedMon1Species] + cp $84 + jr z, .asm_16b98 + ld de, $df5a + ld a, [BreedMon2Species] + cp $84 + jr z, .asm_16b98 + ld a, $3 + ld [MonType], a + push hl + callba GetGender + pop hl + ld de, $df21 + ld bc, $df5a + jr c, .asm_16bab + jr z, .asm_16b90 + ld a, [DittoInDaycare] + and a + jr z, .asm_16b98 + ld d, b + ld e, c + jr .asm_16b98 + +.asm_16b90 + ld a, [DittoInDaycare] + and a + jr nz, .asm_16b98 + ld d, b + ld e, c + +.asm_16b98 + ld a, [de] + inc de + and $f + ld b, a + ld a, [hl] + and $f0 + add b + ld [hli], a + ld a, [de] + and $7 + ld b, a + ld a, [hl] + and $f8 + add b + ld [hl], a + +.asm_16bab + ld hl, StringBuffer1 + ld de, $d050 + ld bc, $000b + call CopyBytes + ld hl, $df7d + ld de, $df92 + ld a, $5 + call Predef + ld hl, $d050 + ld de, StringBuffer1 + ld bc, $000b + call CopyBytes + ld a, [BaseEggSteps] + ld hl, $df96 + ld [hli], a + xor a + ld [hli], a + ld [hli], a + ld [hl], a + ld a, [CurPartyLevel] + ld [$df9a], a + ret +; 16be0 + +INCBIN "baserom.gbc", $16be0, $16be4 - $16be0 + +Function16be4: ; 16be4 + ld a, [UnownDex] + and a + ret z + + ld a, [$ffaa] + push af + ld a, $1 + ld [$ffaa], a + ld a, [Options] + push af + set 4, a + ld [Options], a + call WhiteBGMap + call ClearTileMap + + ld de, UnownDexATile + ld hl, $8ef0 + ld bc, $0501 + call Request1bpp + + ld de, UnownDexBTile + ld hl, $8f50 + ld bc, $0501 + call Request1bpp + + ld hl, TileMap + ld bc, $0312 + call TextBox + + ld hl, $c504 + ld bc, $0707 + call TextBox + + ld hl, $c5b8 + ld bc, $0212 + call TextBox + + ld hl, $c4c9 + ld de, AlphRuinsStampString + call PlaceString + + ld hl, $c5e1 + ld de, UnownDexDoWhatString + call PlaceString + + ld hl, $c522 + ld de, UnownDexMenuString + call PlaceString + + xor a + ld [$cf63], a + call Function16cc8 + call WaitBGMap + + ld a, UNOWN + ld [CurPartySpecies], a + xor a + ld [TempMonDVs], a + ld [TempMonDVs + 1], a + + ld b, $1c + call GetSGBLayout + call Function32f9 + +.asm_16c6b + call Functiona57 + + ld a, [hJoyPressed] + and B_BUTTON + jr nz, .asm_16c95 + + ld a, [hJoyPressed] + and A_BUTTON + jr nz, .asm_16c82 + + call Function16ca0 + call DelayFrame + jr .asm_16c6b + +.asm_16c82 + ld a, [$cf63] + push af + callba Function84560 + call Function3d47 + pop af + ld [$cf63], a + jr .asm_16c6b + +.asm_16c95 + pop af + ld [Options], a + pop af + ld [$ffaa], a + call Function222a + ret +; 16ca0 + +Function16ca0: ; 16ca0 + ld a, [$ffa9] + and $10 + jr nz, .asm_16cb9 + ld a, [$ffa9] + and $20 + jr nz, .asm_16cad + ret + +.asm_16cad + ld hl, $cf63 + ld a, [hl] + and a + jr nz, .asm_16cb6 + ld [hl], $1b + +.asm_16cb6 + dec [hl] + jr .asm_16cc4 + +.asm_16cb9 + ld hl, $cf63 + ld a, [hl] + cp $1a + jr c, .asm_16cc3 + ld [hl], $ff + +.asm_16cc3 + inc [hl] + +.asm_16cc4 + call Function16cc8 + ret +; 16cc8 + +Function16cc8: ; 16cc8 + ld a, [$cf63] + cp 26 + jr z, Function16d20 + inc a + ld [UnownLetter], a + ld a, UNOWN + ld [CurPartySpecies], a + xor a + ld [$c2c6], a + ld de, VTiles2 + ld a, $3c + call Predef + call Function16cff + ld hl, $c519 + xor a + ld [$ffad], a + ld bc, $0707 + ld a, $13 + call Predef + ld de, $9310 + callba Functione0000 + ret +; 16cff + +Function16cff: ; 16cff + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld a, $0 + call GetSRAMBank + ld de, Unkn1Pals + ld hl, $a000 + ld a, [hROMBank] + ld b, a + ld c, $31 + call Get2bpp + call CloseSRAM + pop af + ld [rSVBK], a + ret +; 16d20 + +Function16d20: ; 16d20 + ld hl, $c519 + ld bc, $0707 + call ClearBox + ld hl, $c555 + ld de, UnownDexVacantString + call PlaceString + xor a + call GetSRAMBank + ld hl, $a000 + ld bc, $0310 + xor a + call ByteFill + ld hl, $9310 + ld de, $a000 + ld c, $31 + ld a, [hROMBank] + ld b, a + call Get2bpp + call CloseSRAM + ld c, $14 + call DelayFrames + ret +; 16d57 + +AlphRuinsStampString: + db " ALPH RUINS STAMP@" + +UnownDexDoWhatString: + db "Do what?@" + +UnownDexMenuString: + db $ef, " PRINT", $4e + db $f5, " CANCEL", $4e + db $df, " PREVIOUS", $4e + db $eb, " NEXT@" + +UnownDexVacantString: + db "VACANT@" +; 16d9c + +UnownDexATile: ; 16d9c + INCBIN "baserom.gbc", $16d9c, $16da4 - $16d9c +UnownDexBTile: ; 16da4 + INCBIN "baserom.gbc", $16da4, $16dac - $16da4 +; 16dac + +Function16dac: ; 16dac + ld hl, TileMap + ld bc, $0168 + ld a, $7f + call ByteFill + ld hl, $c583 + ld a, $31 + ld [$ffad], a + ld bc, $0707 + ld a, $13 + call Predef + ret +; 16dc7 + +Function16dc7: ; 16dc7 + ld hl, $6e04 + call PrintText + callba Function50000 + jr c, .asm_16df8 + ld a, [CurPartySpecies] + cp $fd + jr z, .asm_16dfd + ld hl, $6e09 + call PrintText + call Function2ed3 + callba Function8461a + call Function2b74 + ld a, [$ffac] + and a + jr nz, .asm_16df8 + ld hl, $6e0e + jr .asm_16e00 + +.asm_16df8 + ld hl, $6e13 + jr .asm_16e00 + +.asm_16dfd + ld hl, $6e18 + +.asm_16e00 + call PrintText + ret +; 16e04 + +INCBIN "baserom.gbc", $16e04, $16e1d - $16e04 Function16e1d: ; 16e1d @@ -30333,86 +28728,314 @@ Function16f3e: ; 16f3e jr .loop ; 16f5e -INCBIN "baserom.gbc", $16f5e, $174ba - $16f5e +INCBIN "baserom.gbc", $16f5e, $170bf - $16f5e + +Function170bf: ; 170bf + call Function17197 + ld d, h + ld e, l + ld b, $4 +.asm_170c6 + ld a, [de] + and a + jr z, .asm_170e3 + ld hl, $df7d + ld c, $4 +.asm_170cf + ld a, [de] + cp [hl] + jr z, .asm_170df + inc hl + dec c + jr nz, .asm_170cf + call Function170e4 + jr nc, .asm_170df + call Function17169 + +.asm_170df + inc de + dec b + jr nz, .asm_170c6 + +.asm_170e3 + ret +; 170e4 + +Function170e4: ; 170e4 + push bc + ld a, [EggSpecies] + dec a + ld c, a + ld b, $0 + ld hl, $7b11 + add hl, bc + add hl, bc + ld a, $8 + call GetFarHalfword +.asm_170f6 + ld a, $8 + call GetFarByte + cp $ff + jr z, .asm_17107 + ld b, a + ld a, [de] + cp b + jr z, .asm_17163 + inc hl + jr .asm_170f6 + +.asm_17107 + call Function1720b + ld b, $4 +.asm_1710c + ld a, [de] + cp [hl] + jr z, .asm_17116 + inc hl + dec b + jr z, .asm_17146 + jr .asm_1710c + +.asm_17116 + ld a, [EggSpecies] + dec a + ld c, a + ld b, $0 + ld hl, $65b1 + add hl, bc + add hl, bc + ld a, $10 + call GetFarHalfword +.asm_17127 + ld a, $10 + call GetFarByte + inc hl + and a + jr nz, .asm_17127 +.asm_17130 + ld a, $10 + call GetFarByte + and a + jr z, .asm_17146 + inc hl + ld a, $10 + call GetFarByte + ld b, a + ld a, [de] + cp b + jr z, .asm_17163 + inc hl + jr .asm_17130 + +.asm_17146 + ld hl, $567a +.asm_17149 + ld a, $4 + call GetFarByte + inc hl + and a + jr z, .asm_17166 + ld b, a + ld a, [de] + cp b + jr nz, .asm_17149 + ld [$d262], a + ld a, $e + call Predef + ld a, c + and a + jr z, .asm_17166 + +.asm_17163 + pop bc + scf + ret + +.asm_17166 + pop bc + and a + ret +; 17169 + +Function17169: ; 17169 + push de + push bc + ld a, [de] + ld b, a + ld hl, $df7d + ld c, $4 +.asm_17172 + ld a, [hli] + and a + jr z, .asm_17187 + dec c + jr nz, .asm_17172 + ld de, $df7d + ld hl, $df7e + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + +.asm_17187 + dec hl + ld [hl], b + ld hl, $df7d + ld de, $df92 + ld a, $5 + call Predef + pop bc + pop de + ret +; 17197 + +Function17197: ; 17197 + ld hl, $df47 + ld a, [BreedMon1Species] + cp $84 + jr z, .asm_171b1 + ld a, [BreedMon2Species] + cp $84 + jr z, .asm_171d7 + ld a, [DittoInDaycare] + and a + ret z + ld hl, $df0e + ret + +.asm_171b1 + ld a, [CurPartySpecies] + push af + ld a, [BreedMon2Species] + ld [CurPartySpecies], a + ld a, [$df5a] + ld [TempMonDVs], a + ld a, [$df5b] + ld [$d124], a + ld a, $3 + ld [MonType], a + ld a, $24 + call Predef + jr c, .asm_171fb + jr nz, .asm_171fb + jr .asm_17203 + +.asm_171d7 + ld a, [CurPartySpecies] + push af + ld a, [BreedMon1Species] + ld [CurPartySpecies], a + ld a, [$df21] + ld [TempMonDVs], a + ld a, [$df22] + ld [$d124], a + ld a, $3 + ld [MonType], a + ld a, $24 + call Predef + jr c, .asm_17203 + jr nz, .asm_17203 + +.asm_171fb + ld hl, $df47 + pop af + ld [CurPartySpecies], a + ret + +.asm_17203 + ld hl, $df0e + pop af + ld [CurPartySpecies], a + ret +; 1720b + +Function1720b: ; 1720b + ld hl, $df0e + ld a, [BreedMon1Species] + cp $84 + ret z + ld a, [BreedMon2Species] + cp $84 + jr z, .asm_17220 + ld a, [DittoInDaycare] + and a + ret z + +.asm_17220 + ld hl, $df47 + ret +; 17224 + +INCBIN "baserom.gbc", $17224, $17421 - $17224 + +Function17421: ; 17421 + ld hl, $7467 + call PrintText + ld a, [BreedMon1Species] + call Function37ce + ld a, [DaycareLady] + bit 0, a + jr z, Function1745f + call Functionaaf + ld hl, BreedMon2Nick + call Function1746c + jp PrintText + +Function17440: ; 17440 + ld hl, $7462 + call PrintText + ld a, [BreedMon2Species] + call Function37ce + ld a, [DaycareMan] + bit 0, a + jr z, Function1745f + call Functionaaf + ld hl, BreedMon1Nick + call Function1746c + jp PrintText + +Function1745f: ; 1745f + jp Functiona80 +; 17462 + +INCBIN "baserom.gbc", $17462, $1746c - $17462 + +Function1746c: ; 1746c + push bc + ld de, StringBuffer1 + ld bc, $000b + call CopyBytes + call Function16e1d + pop bc + ld a, [$d265] + ld hl, $749c + cp $ff + jr z, .asm_1749b + ld hl, $74a1 + and a + jr z, .asm_1749b + ld hl, $74a6 + cp $e6 + jr nc, .asm_1749b + cp $46 + ld hl, $74ab + jr nc, .asm_1749b + ld hl, $74b0 + +.asm_1749b + ret +; 1749c + +INCBIN "baserom.gbc", $1749c, $174ba - $1749c SECTION "bank6",ROMX,BANK[$6] -Tileset03GFX: ; 0x18000 -INCBIN "gfx/tilesets/03.lz" -; 0x18605 - - db $00 - -Tileset03Meta: ; 0x18606 -INCBIN "tilesets/03_metatiles.bin" -; 0x18e06 - -Tileset03Coll: ; 0x18e06 -INCBIN "tilesets/03_collision.bin" -; 0x19006 - -Tileset00GFX: ; 0x19006 -Tileset01GFX: ; 0x19006 -INCBIN "gfx/tilesets/01.lz" -; 0x19c0d - - db $00 - -Tileset00Meta: ; 0x19c0e -Tileset01Meta: ; 0x19c0e -INCBIN "tilesets/01_metatiles.bin" -; 0x1a40e - -Tileset00Coll: ; 0x1a40e -Tileset01Coll: ; 0x1a40e -INCBIN "tilesets/01_collision.bin" -; 0x1a60e - -Tileset29GFX: ; 0x1a60e -INCBIN "gfx/tilesets/29.lz" -; 0x1af38 - - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset29Meta: ; 0x1af3e -INCBIN "tilesets/29_metatiles.bin" -; 0x1b33e - -Tileset29Coll: ; 0x1b33e -INCBIN "tilesets/29_collision.bin" -; 0x1b43e - -Tileset20GFX: ; 0x1b43e -INCBIN "gfx/tilesets/20.lz" -; 0x1b8f1 - - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset20Meta: ; 0x1b8fe -INCBIN "tilesets/20_metatiles.bin" -; 0x1bcfe - -Tileset20Coll: ; 0x1bcfe -INCBIN "tilesets/20_collision.bin" -; 0x1bdfe +INCLUDE "tilesets/data_1.asm" SECTION "bank7",ROMX,BANK[$7] @@ -30437,99 +29060,7 @@ Function1c000: ; 1c000 INCBIN "baserom.gbc", $1c021, $1c30c - $1c021 -Tileset07GFX: ; 0x1c30c -INCBIN "gfx/tilesets/07.lz" -; 0x1c73b - - db $00 - -Tileset07Meta: ; 0x1c73c -INCBIN "tilesets/07_metatiles.bin" -; 0x1cb3c - -Tileset07Coll: ; 0x1cb3c -INCBIN "tilesets/07_collision.bin" -; 0x1cc3c - -Tileset09GFX: ; 0x1cc3c -INCBIN "gfx/tilesets/09.lz" -; 0x1d047 - - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset09Meta: ; 0x1d04c -INCBIN "tilesets/09_metatiles.bin" -; 0x1d44c - -Tileset09Coll: ; 0x1d44c -INCBIN "tilesets/09_collision.bin" -; 0x1d54c - -Tileset06GFX: ; 0x1d54c -INCBIN "gfx/tilesets/06.lz" -; 0x1d924 - - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset06Meta: ; 0x1d92c -INCBIN "tilesets/06_metatiles.bin" -; 0x1dd2c - -Tileset06Coll: ; 0x1dd2c -INCBIN "tilesets/06_collision.bin" -; 0x1de2c - -Tileset13GFX: ; 0x1de2c -INCBIN "gfx/tilesets/13.lz" -; 0x1e58c - -Tileset13Meta: ; 0x1e58c -INCBIN "tilesets/13_metatiles.bin" -; 0x1e98c - -Tileset13Coll: ; 0x1e98c -INCBIN "tilesets/13_collision.bin" -; 0x1ea8c - -Tileset24GFX: ; 0x1ea8c -INCBIN "gfx/tilesets/24.lz" -; 0x1ee0e - - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset24Meta: ; 0x1ee1c -Tileset30Meta: ; 0x1ee1c -INCBIN "tilesets/30_metatiles.bin" -; 0x1f21c - -Tileset24Coll: ; 0x1f21c -Tileset30Coll: ; 0x1f21c -INCBIN "tilesets/30_collision.bin" -; 0x1f31c +INCLUDE "tilesets/data_2.asm" ; Songs i @@ -30542,116 +29073,7 @@ SECTION "bank8",ROMX,BANK[$8] INCBIN "baserom.gbc", $20000, $20181 - $20000 -Tileset23GFX: ; 0x20181 -INCBIN "gfx/tilesets/23.lz" -; 0x206d2 - - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset23Meta: ; 0x206e1 -INCBIN "tilesets/23_metatiles.bin" -; 0x20ae1 - -Tileset23Coll: ; 0x20ae1 -INCBIN "tilesets/23_collision.bin" -; 0x20be1 - -Tileset10GFX: ; 0x20be1 -INCBIN "gfx/tilesets/10.lz" -; 0x213e0 - - db $00 - -Tileset10Meta: ; 0x213e1 -INCBIN "tilesets/10_metatiles.bin" -; 0x217e1 - -Tileset10Coll: ; 0x217e1 -INCBIN "tilesets/10_collision.bin" -; 0x218e1 - -Tileset12GFX: ; 0x218e1 -INCBIN "gfx/tilesets/12.lz" -; 0x22026 - - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset12Meta: ; 0x22031 -INCBIN "tilesets/12_metatiles.bin" -; 0x22431 - -Tileset12Coll: ; 0x22431 -INCBIN "tilesets/12_collision.bin" -; 0x22531 - -Tileset14GFX: ; 0x22531 -INCBIN "gfx/tilesets/14.lz" -; 0x22ae2 - - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset14Meta: ; 0x22af1 -INCBIN "tilesets/14_metatiles.bin" -; 0x22ef1 - -Tileset14Coll: ; 0x22ef1 -INCBIN "tilesets/14_collision.bin" -; 0x22ff1 - -Tileset17GFX: ; 0x22ff1 -INCBIN "gfx/tilesets/17.lz" -; 0x23391 - -Tileset17Meta: ; 0x23391 -INCBIN "tilesets/17_metatiles.bin" -; 0x23791 - -Tileset17Coll: ; 0x23791 -INCBIN "tilesets/17_collision.bin" -; 0x23891 - -; todo -Tileset31Meta: ; 0x23891 -INCBIN "tilesets/31_metatiles.bin" -; 0x23b11 +INCLUDE "tilesets/data_3.asm" EggMovePointers: ; 0x23b11 INCLUDE "stats/egg_move_pointers.asm" @@ -31898,7 +30320,7 @@ Function247f0: ; 247f0 ld d, h ld e, l ld hl, $cf98 - jp Function31be + jp CallPointerAt ; 2486e Function2486e: ; 2486e @@ -31906,7 +30328,7 @@ Function2486e: ; 2486e ld d, h ld e, l ld hl, $cf98 - call Function31be + call CallPointerAt pop hl ld a, [$cf93] and a @@ -31917,7 +30339,7 @@ Function2486e: ; 2486e ld d, h ld e, l ld hl, $cf9b - call Function31be + call CallPointerAt .asm_2488a ret @@ -31970,7 +30392,7 @@ Function248b8: ; 248b8 dec a call Function248d5 ld hl, $cf9e - call Function31be + call CallPointerAt ret ; 248d5 @@ -32236,7 +30658,7 @@ Function24c64: ; 24c64 push hl ld [CurItem], a ld hl, NumItems - call PickUpItem + call CheckItem pop hl jr nc, .asm_24c89 ld a, [hl] @@ -32484,7 +30906,7 @@ Function24dd4: ; 24dd4 ld a, $1 call GetPartyParamLocation ld d, [hl] - callba Functionb9e76 + callba ItemIsMail pop hl ld a, $14 jr c, .asm_24e2c @@ -33007,13 +31429,13 @@ Function26601: ; 0x26601 Rate: ; 0x26616 ; calculate Seen/Owned - ld hl, PokedexCaught - ld b, EndPokedexCaught - PokedexCaught - call CountSetBits - ld [DefaultFlypoint], a ld hl, PokedexSeen ld b, EndPokedexSeen - PokedexSeen call CountSetBits + ld [DefaultFlypoint], a + ld hl, PokedexCaught + ld b, EndPokedexCaught - PokedexCaught + call CountSetBits ld [$d003], a ; print appropriate rating @@ -33323,21 +31745,68 @@ Function26a3b: ; 26a3b ret ; 26a44 -INCBIN "baserom.gbc", $26a44, $26c72 - $26a44 +Function26a44: ; 26a44 + ld a, c + call Function269dd + ld de, $0005 + add hl, de + ld a, [hl] + ld c, a + ret +; 26a4f + +INCBIN "baserom.gbc", $26a4f, $26b8d - $26a4f + +DecorationNames: ; 26b8d + db "CANCEL@" + db "PUT IT AWAY@" + db "MAGNAPLANT@" + db "TROPICPLANT@" + db "JUMBOPLANT@" + db "TOWN MAP@" + db "NES@" + db "SUPER NES@" + db "NINTENDO 64@" + db "VIRTUAL BOY@" + db "GOLD TROPHY@" + db "SILVER TROPHY@" + db "SURF PIKACHU DOLL@" + db " BED@" + db " CARPET@" + db " POSTER@" + db " DOLL@" + db "BIG @" + db "FEATHERY@" + db "PIKACHU@" + db "PINK@" + db "POLKADOT@" + db "RED@" + db "BLUE@" + db "YELLOW@" + db "GREEN@" +; 26c72 Function26c72: ; 26c72 ld a, [hli] ld e, [hl] ld bc, StringBuffer2 push bc - ld hl, $6c7e + ld hl, Table26c7e rst JumpTable pop de ret ; 26c7e -INCBIN "baserom.gbc", $26c7e, $26c8c - $26c7e +Table26c7e: ; 26c7e + dw Function26c8c + dw Function26c8d + dw Function26c90 + dw Function26c97 + dw Function26c9e + dw Function26ca6 + dw Function26cae +; 26c8c Function26c8c: ; 26c8c @@ -33346,59 +31815,66 @@ Function26c8c: ; 26c8c Function26c8d: ; 26c8d ld a, e - jr .asm_26cca + jr Function26cca +Function26c90: ; 26c90 call Function26c8d ld a, $d - jr .asm_26cca + jr Function26cca +Function26c97: ; 26c97 call Function26c8d ld a, $e - jr .asm_26cca + jr Function26cca +Function26c9e: ; 26c9e ld a, e - call $6cc0 + call Function26cc0 ld a, $f - jr .asm_26cca + jr Function26cca +Function26ca6: ; 26ca6 ld a, e - call $6cc0 + call Function26cc0 ld a, $10 - jr .asm_26cca + jr Function26cca +Function26cae: ; 26cae push de ld a, $11 - call $6cca + call Function26cca pop de ld a, e - jr .asm_26cc0 + jr Function26cc0 +Function26cb8: ; 26cb8 push de - call $6cca + call Function26cca pop de ld a, e - jr .asm_26cca + jr Function26cca -.asm_26cc0 +Function26cc0: ; 26cc0 push bc ld [$d265], a call GetPokemonName pop bc - jr .asm_26cda + jr Function26cda -.asm_26cca - call $6ccf - jr .asm_26cda +Function26cca: ; 26cca + call Function26ccf + jr Function26cda +Function26ccf: ; 26ccf push bc - ld hl, $6b8d + ld hl, DecorationNames call GetNthString ld d, h ld e, l pop bc ret -.asm_26cda +Function26cda: ; 26cda ld h, b ld l, c call CopyName2 @@ -33453,25 +31929,54 @@ INCBIN "baserom.gbc", $26f19, $26f59 - $26f19 Function26f59: ; 26f59 ld a, b - ld hl, $6f5f + ld hl, Table26f5f rst JumpTable ret ; 26f5f -INCBIN "baserom.gbc", $26f5f, $26fb9 - $26f5f +Table26f5f: ; 26f5f + dw Function26f69 + dw Function26fb9 + dw Function26fbe + dw Function26fdd + dw Function26fc3 +; 26f69 + +Function26f69: ; 26f69 + ld a, [Poster] + ld hl, $6f84 + ld de, $0003 + call IsInArray + jr c, .asm_26f7d + ld de, $6fb8 + ld b, $9 + ret + +.asm_26f7d + ld b, $9 + inc hl + ld a, [hli] + ld d, [hl] + ld e, a + ret +; 26f84 + +INCBIN "baserom.gbc", $26f84, $26fb9 - $26f84 Function26fb9: ; 26fb9 ld a, [LeftOrnament] - jr .asm_26fc8 + jr Function26fc8 +Function26fbe: ; 26fbe ld a, [RightOrnament] - jr .asm_26fc8 + jr Function26fc8 +Function26fc3: ; 26fc3 ld a, [Console] - jr .asm_26fc8 + jr Function26fc8 -.asm_26fc8 +Function26fc8: ; 26fc8 ld c, a ld de, StringBuffer3 call Function26eea @@ -33489,7 +31994,116 @@ Function26fdd: ; 26fdd ret ; 26fe3 -INCBIN "baserom.gbc", $26fe3, $2709e - $26fe3 +INCBIN "baserom.gbc", $26fe3, $26feb - $26fe3 + +Function26feb: ; 26feb + ld de, $0004 + ld a, [Bed] + call Function27037 + ld de, $0704 + ld a, [Plant] + call Function27037 + ld de, $0600 + ld a, [Poster] + call Function27037 + call Function27027 + ld de, $0000 + call Function27092 + ld a, [Carpet] + and a + ret z + call Function27085 + ld [hl], a + push af + ld de, $0002 + call Function27092 + pop af + inc a + ld [hli], a + inc a + ld [hli], a + dec a + ld [hl], a + ret +; 27027 + +Function27027: ; 27027 + ld b, $1 + ld a, [Poster] + and a + jr nz, .asm_27031 + ld b, $0 + +.asm_27031 + ld de, $02cc + jp EventFlagAction +; 27037 + +Function27037: ; 27037 + push af + call Function27092 + pop af + and a + ret z + call Function27085 + ld [hl], a + ret +; 27043 + +Function27043: ; 27043 + ld de, $0741 + ld hl, VariableSprites + ld a, [Console] + call Function27074 + ld de, $0742 + ld hl, $d82f + ld a, [LeftOrnament] + call Function27074 + ld de, $0743 + ld hl, $d830 + ld a, [RightOrnament] + call Function27074 + ld de, $0744 + ld hl, $d831 + ld a, [BigDoll] + call Function27074 + ret +; 27074 + +Function27074: ; 27074 + and a + jr z, .asm_27080 + call Function27085 + ld [hl], a + ld b, $0 + jp EventFlagAction + +.asm_27080 + ld b, $1 + jp EventFlagAction +; 27085 + +Function27085: ; 27085 + ld c, a + push de + push hl + callba Function26a44 + pop hl + pop de + ld a, c + ret +; 27092 + +Function27092: ; 27092 + ld a, d + add $4 + ld d, a + ld a, e + add $4 + ld e, a + call Function2a66 + ret +; 2709e Function2709e: ; 2709e @@ -33514,99 +32128,7 @@ Function2709e: ; 2709e ret ; 270c4 - -GetTrainerDVs: ; 270c4 -; get dvs based on trainer class -; output: bc - push hl -; dec trainer class so there's no filler entry for $00 - ld a, [OtherTrainerClass] - dec a - ld c, a - ld b, $0 -; seek table - ld hl, TrainerClassDVs - add hl, bc - add hl, bc -; get dvs - ld a, [hli] - ld b, a - ld c, [hl] -; we're done - pop hl - ret -; 270d6 - -TrainerClassDVs ; 270d6 -; AtkDef, SpdSpc - db $9A, $77 ; falkner - db $88, $88 ; bugsy - db $98, $88 ; whitney - db $98, $88 ; morty - db $98, $88 ; pryce - db $98, $88 ; jasmine - db $98, $88 ; chuck - db $7C, $DD ; clair - db $DD, $DD ; rival1 - db $98, $88 ; pokemon prof - db $DC, $DD ; will - db $DC, $DD ; cal - db $DC, $DD ; bruno - db $7F, $DF ; karen - db $DC, $DD ; koga - db $DC, $DD ; champion - db $98, $88 ; brock - db $78, $88 ; misty - db $98, $88 ; lt surge - db $98, $88 ; scientist - db $78, $88 ; erika - db $98, $88 ; youngster - db $98, $88 ; schoolboy - db $98, $88 ; bird keeper - db $58, $88 ; lass - db $98, $88 ; janine - db $D8, $C8 ; cooltrainerm - db $7C, $C8 ; cooltrainerf - db $69, $C8 ; beauty - db $98, $88 ; pokemaniac - db $D8, $A8 ; gruntm - db $98, $88 ; gentleman - db $98, $88 ; skier - db $68, $88 ; teacher - db $7D, $87 ; sabrina - db $98, $88 ; bug catcher - db $98, $88 ; fisher - db $98, $88 ; swimmerm - db $78, $88 ; swimmerf - db $98, $88 ; sailor - db $98, $88 ; super nerd - db $98, $88 ; rival2 - db $98, $88 ; guitarist - db $A8, $88 ; hiker - db $98, $88 ; biker - db $98, $88 ; blaine - db $98, $88 ; burglar - db $98, $88 ; firebreather - db $98, $88 ; juggler - db $98, $88 ; blackbelt - db $D8, $A8 ; executivem - db $98, $88 ; psychic - db $6A, $A8 ; picnicker - db $98, $88 ; camper - db $7E, $A8 ; executivef - db $98, $88 ; sage - db $78, $88 ; medium - db $98, $88 ; boarder - db $98, $88 ; pokefanm - db $68, $8A ; kimono girl - db $68, $A8 ; twins - db $6D, $88 ; pokefanf - db $FD, $DE ; red - db $9D, $DD ; blue - db $98, $88 ; officer - db $7E, $A8 ; gruntf - db $98, $88 ; mysticalman -; 2715c +INCLUDE "trainers/dvs.asm" Function2715c: ; 2715c call WhiteBGMap @@ -33695,12 +32217,2976 @@ INCLUDE "battle/moves/move_effects_pointers.asm" MoveEffects: ; 2732e INCLUDE "battle/moves/move_effects.asm" -INCBIN "baserom.gbc", $27a28, $27a2d - $27a28 +Function27a28: ; 27a28 + call Function2500e + ld b, a + ret +; 27a2d SECTION "bankA",ROMX,BANK[$A] -INCBIN "baserom.gbc", $28000, $2a0e7 - $28000 +Function28000: ; 28000 + call WhiteBGMap + ld c, $50 + call DelayFrames + call Functionfdb + call ClearSprites + call Function1ad2 + xor a + ld [hSCX], a + ld [hSCY], a + ld c, $50 + call DelayFrames + call Functionfdb + call Function1ad2 + call Functione51 + call Functione58 + callba Function16d69a + call Function3200 + ld hl, $c543 + ld b, $2 + ld c, $c + ld d, h + ld e, l + callba Function4d35b + ld hl, $c56c + ld de, $4419 + call PlaceString + call Function28eff + call Function3200 + ld hl, $cf5d + xor a + ld [hli], a + ld [hl], $50 + ld a, [InLinkBattle] + cp $1 + jp nz, Function28177 + +Function2805d: ; 2805d + call Function28426 + call Function28499 + call Function28434 + xor a + ld [$cf56], a + call Function87d + ld a, [$ffcb] + cp $2 + jr nz, .asm_28091 + ld c, $3 + call DelayFrames + xor a + ld [hSerialSend], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + call DelayFrame + xor a + ld [hSerialSend], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + +.asm_28091 + ld de, $0000 + call StartMusic + ld c, $3 + call DelayFrames + xor a + ld [rIF], a + ld a, $8 + ld [rIE], a + ld hl, $d1f3 + ld de, EnemyMonSpecies + ld bc, $0011 + call Function75f + ld a, $fe + ld [de], a + ld hl, OverworldMap + ld de, $d26b + ld bc, $01a8 + call Function75f + ld a, $fe + ld [de], a + ld hl, EnemyMoveAnimation + ld de, PlayerSDefLevel + ld bc, $00c8 + call Function75f + xor a + ld [rIF], a + ld a, $1d + ld [rIE], a + call Function287ab + ld hl, $d26b + call Function287ca + push hl + ld bc, $000b + add hl, bc + ld a, [hl] + pop hl + and a + jp z, Function28b22 + cp $7 + jp nc, Function28b22 + ld de, OverworldMap + ld bc, $01a2 + call Function2879e + ld de, PlayerSDefLevel + ld hl, $c813 + ld c, $2 +.asm_280fe + ld a, [de] + inc de + and a + jr z, .asm_280fe + cp $fd + jr z, .asm_280fe + cp $fe + jr z, .asm_280fe + cp $ff + jr z, .asm_2811d + push hl + push bc + ld b, $0 + dec a + ld c, a + add hl, bc + ld a, $fe + ld [hl], a + pop bc + pop hl + jr .asm_280fe + +.asm_2811d + ld hl, $c90f + dec c + jr nz, .asm_280fe + ld hl, OverworldMap + ld de, $d26b + ld bc, $000b + call CopyBytes + ld de, OTPartyCount + ld a, [hli] + ld [de], a + inc de +.asm_28135 + ld a, [hli] + cp $ff + jr z, .asm_2814e + ld [$d265], a + push hl + push de + callab Functionfb908 + pop de + pop hl + ld a, [$d265] + ld [de], a + inc de + jr .asm_28135 + +.asm_2814e + ld [de], a + ld hl, $c813 + call Function2868a + ld a, $a8 + ld [$d102], a + ld a, $d3 + ld [$d103], a + ld de, $0000 + call StartMusic + ld a, [$ffcb] + cp $2 + ld c, $42 + call z, DelayFrames + ld de, $002b + call StartMusic + jp Function287e3 +; 28177 + +Function28177: ; 28177 + call Function28426 + call Function28595 + call Function28434 + call Function29dba + ld a, [ScriptVar] + and a + jp z, Function283b2 + ld a, [$ffcb] + cp $2 + jr nz, .asm_281ae + ld c, $3 + call DelayFrames + xor a + ld [hSerialSend], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + call DelayFrame + xor a + ld [hSerialSend], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + +.asm_281ae + ld de, $0000 + call StartMusic + ld c, $3 + call DelayFrames + xor a + ld [rIF], a + ld a, $8 + ld [rIE], a + ld hl, $d1f3 + ld de, EnemyMonSpecies + ld bc, $0011 + call Function75f + ld a, $fe + ld [de], a + ld hl, OverworldMap + ld de, $d26b + ld bc, $01c2 + call Function75f + ld a, $fe + ld [de], a + ld hl, EnemyMoveAnimation + ld de, PlayerSDefLevel + ld bc, $00c8 + call Function75f + ld a, [InLinkBattle] + cp $2 + jr nz, .asm_281fd + ld hl, $c9f4 + ld de, $cb84 + ld bc, $0186 + call Function283f2 + +.asm_281fd + xor a + ld [rIF], a + ld a, $1d + ld [rIE], a + ld de, $0000 + call StartMusic + call Function287ab + ld hl, $d26b + call Function287ca + ld de, OverworldMap + ld bc, $01b9 + call Function2879e + ld de, PlayerSDefLevel + ld hl, $c813 + ld c, $2 +.asm_28224 + ld a, [de] + inc de + and a + jr z, .asm_28224 + cp $fd + jr z, .asm_28224 + cp $fe + jr z, .asm_28224 + cp $ff + jr z, .asm_28243 + push hl + push bc + ld b, $0 + dec a + ld c, a + add hl, bc + ld a, $fe + ld [hl], a + pop bc + pop hl + jr .asm_28224 + +.asm_28243 + ld hl, $c90f + dec c + jr nz, .asm_28224 + ld a, [InLinkBattle] + cp $2 + jp nz, .asm_282fe + ld hl, $cb84 +.asm_28254 + ld a, [hli] + cp $20 + jr nz, .asm_28254 +.asm_28259 + ld a, [hli] + cp $fe + jr z, .asm_28259 + cp $20 + jr z, .asm_28259 + dec hl + ld de, $cb84 + ld bc, $0190 + call CopyBytes + ld hl, $cb84 + ld bc, $00c6 +.asm_28272 + ld a, [hl] + cp $21 + jr nz, .asm_28279 + ld [hl], $fe + +.asm_28279 + inc hl + dec bc + ld a, b + or c + jr nz, .asm_28272 + ld de, $cc9e +.asm_28282 + ld a, [de] + inc de + cp $ff + jr z, .asm_28294 + ld hl, $cc4a + dec a + ld b, $0 + ld c, a + add hl, bc + ld [hl], $fe + jr .asm_28282 + +.asm_28294 + ld hl, $cb84 + ld de, $c9f4 + ld b, $6 +.asm_2829c + push bc + ld bc, $0021 + call CopyBytes + ld a, $e + add e + ld e, a + ld a, $0 + adc d + ld d, a + pop bc + dec b + jr nz, .asm_2829c + ld de, $c9f4 + ld b, $6 +.asm_282b4 + push bc + ld a, $21 + add e + ld e, a + ld a, $0 + adc d + ld d, a + ld bc, $000e + call CopyBytes + pop bc + dec b + jr nz, .asm_282b4 + ld b, $6 + ld de, $c9f4 +.asm_282cc + push bc + push de + callba Function1de5c8 + ld a, c + or a + jr z, .asm_282ee + sub $3 + jr nc, .asm_282e4 + callba Function1df203 + jr .asm_282ee + +.asm_282e4 + cp $2 + jr nc, .asm_282ee + callba Function1df220 + +.asm_282ee + pop de + ld hl, $002f + add hl, de + ld d, h + ld e, l + pop bc + dec b + jr nz, .asm_282cc + ld de, $cb0e + xor a + ld [de], a + +.asm_282fe + ld hl, OverworldMap + ld de, $d26b + ld bc, $000b + call CopyBytes + ld de, OTPartyCount + ld bc, $0008 + call CopyBytes + ld de, $d276 + ld bc, $0002 + call CopyBytes + ld de, OTPartyMon1Species + ld bc, $01a4 + call CopyBytes + ld a, $a8 + ld [$d102], a + ld a, $d3 + ld [$d103], a + ld de, $0000 + call StartMusic + ld a, [$ffcb] + cp $2 + ld c, $42 + call z, DelayFrames + ld a, [InLinkBattle] + cp $3 + jr nz, .asm_283a9 + ld a, $c + ld [OtherTrainerClass], a + call Functionfdb + callba Function4d354 + ld hl, Options + ld a, [hl] + push af + and $20 + or $3 + ld [hl], a + ld hl, $d26b + ld de, $c656 + ld bc, $000b + call CopyBytes + call Function222a + ld a, [$c2d7] + push af + ld a, $1 + ld [$c2d7], a + ld a, [rIE] + push af + ld a, [rIF] + push af + xor a + ld [rIF], a + ld a, [rIE] + set 1, a + ld [rIE], a + pop af + ld [rIF], a + ld a, $16 + call Predef + ld a, [rIF] + ld h, a + xor a + ld [rIF], a + pop af + ld [rIE], a + ld a, h + ld [rIF], a + pop af + ld [$c2d7], a + pop af + ld [Options], a + callba Function1500c + jp Function28b22 + +.asm_283a9 + ld de, $002b + call StartMusic + jp Function287e3 +; 283b2 + +Function283b2: ; 283b2 + ld de, $43ed + ld b, $a +.asm_283b7 + call DelayFrame + call Function908 + dec b + jr nz, .asm_283b7 + xor a + ld [hld], a + ld [hl], a + ld [$ff9e], a + push de + ld hl, $c590 + ld b, $4 + ld c, $12 + push de + ld d, h + ld e, l + callba Function4d35b + pop de + pop hl + ld bc, $c5b9 + call Function13e5 + call Function4b6 + call Functionfdb + ld b, $8 + call GetSGBLayout + call Function3200 + ret +; 283ed + +INCBIN "baserom.gbc", $283ed, $283f2 - $283ed + +Function283f2: ; 283f2 + ld a, $1 + ld [$ffcc], a +.asm_283f6 + ld a, [hl] + ld [hSerialSend], a + call Function78a + push bc + ld b, a + inc hl + ld a, $30 +.asm_28401 + dec a + jr nz, .asm_28401 + ld a, [$ffcc] + and a + ld a, b + pop bc + jr z, .asm_28411 + dec hl + xor a + ld [$ffcc], a + jr .asm_283f6 + +.asm_28411 + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .asm_283f6 + ret +; 28419 + +INCBIN "baserom.gbc", $28419, $28426 - $28419 + +Function28426: ; 28426 + ld hl, OverworldMap + ld bc, $0514 +.asm_2842c + xor a + ld [hli], a + dec bc + ld a, b + or c + jr nz, .asm_2842c + ret +; 28434 + +Function28434: ; 28434 + ld hl, $d1f3 + ld a, $fd + ld b, $7 +.asm_2843b + ld [hli], a + dec b + jr nz, .asm_2843b + ld b, $a +.asm_28441 + call Random + cp $fd + jr nc, .asm_28441 + ld [hli], a + dec b + jr nz, .asm_28441 + ld hl, EnemyMoveAnimation + ld a, $fd + ld [hli], a + ld [hli], a + ld [hli], a + ld b, $c8 + xor a +.asm_28457 + ld [hli], a + dec b + jr nz, .asm_28457 + ld hl, $c818 + ld de, PlayerMoveType + ld bc, $0000 +.asm_28464 + inc c + ld a, c + cp $fd + jr z, .asm_2848c + ld a, b + dec a + jr nz, .asm_2847f + push bc + ld a, [InLinkBattle] + cp $1 + ld b, $d + jr z, .asm_2847a + ld b, $27 + +.asm_2847a + ld a, c + cp b + pop bc + jr z, .asm_28495 + +.asm_2847f + inc hl + ld a, [hl] + cp $fe + jr nz, .asm_28464 + ld a, c + ld [de], a + inc de + ld [hl], $ff + jr .asm_28464 + +.asm_2848c + ld a, $ff + ld [de], a + inc de + ld bc, Start + jr .asm_28464 + +.asm_28495 + ld a, $ff + ld [de], a + ret +; 28499 + +Function28499: ; 28499 + ld de, OverworldMap + ld a, $fd + ld b, $6 +.asm_284a0 + ld [de], a + inc de + dec b + jr nz, .asm_284a0 + ld hl, PlayerName + ld bc, $000b + call CopyBytes + push de + ld hl, PartyCount + ld a, [hli] + ld [de], a + inc de +.asm_284b5 + ld a, [hli] + cp $ff + jr z, .asm_284ce + ld [$d265], a + push hl + push de + callab Functionfb8f1 + pop de + pop hl + ld a, [$d265] + ld [de], a + inc de + jr .asm_284b5 + +.asm_284ce + ld [de], a + pop de + ld hl, $0008 + add hl, de + ld d, h + ld e, l + ld hl, PartyMon1Species + ld c, $6 +.asm_284db + push bc + call Function284f6 + ld bc, $0030 + add hl, bc + pop bc + dec c + jr nz, .asm_284db + ld hl, PartyMonOT + call .asm_284f0 + ld hl, PartyMonNicknames +.asm_284f0 + ld bc, $0042 + jp CopyBytes +; 284f6 + +Function284f6: ; 284f6 + ld b, h + ld c, l + push de + push bc + ld a, [hl] + ld [$d265], a + callab Functionfb8f1 + pop bc + pop de + ld a, [$d265] + ld [de], a + inc de + ld hl, $0022 + add hl, bc + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + xor a + ld [de], a + inc de + ld hl, $0020 + add hl, bc + ld a, [hl] + ld [de], a + inc de + ld a, [bc] + cp $51 + jr z, .asm_28528 + cp $52 + jr nz, .asm_28530 + +.asm_28528 + ld a, $17 + ld [de], a + inc de + ld [de], a + inc de + jr .asm_28544 + +.asm_28530 + push bc + dec a + ld hl, $542b + ld bc, $0020 + call AddNTimes + ld bc, $0002 + ld a, $14 + call FarCopyBytes + pop bc + +.asm_28544 + push bc + ld hl, $0001 + add hl, bc + ld bc, $001a + call CopyBytes + pop bc + ld hl, $001f + add hl, bc + ld a, [hl] + ld [de], a + ld [CurPartyLevel], a + inc de + push bc + ld hl, $0024 + add hl, bc + ld bc, $0008 + call CopyBytes + pop bc + push de + push bc + ld a, [bc] + dec a + push bc + ld b, $0 + ld c, a + ld hl, $7656 + add hl, bc + ld a, $3e + call GetFarByte + ld [BaseSpecialAttack], a + pop bc + ld hl, $000a + add hl, bc + ld c, $5 + ld b, $1 + ld a, $d + call Predef + pop bc + pop de + ld a, [$ffb5] + ld [de], a + inc de + ld a, [$ffb6] + ld [de], a + inc de + ld h, b + ld l, c + ret +; 28595 + +Function28595: ; 28595 + ld de, OverworldMap + ld a, $fd + ld b, $6 +.asm_2859c + ld [de], a + inc de + dec b + jr nz, .asm_2859c + ld hl, PlayerName + ld bc, $000b + call CopyBytes + ld hl, PartyCount + ld bc, $0008 + call CopyBytes + ld hl, PlayerID + ld bc, $0002 + call CopyBytes + ld hl, PartyMon1Species + ld bc, $0120 + call CopyBytes + ld hl, PartyMon1OT + ld bc, $0042 + call CopyBytes + ld hl, PartyMon1Nickname + ld bc, $0042 + call CopyBytes + ld a, [InLinkBattle] + cp $2 + ret nz + ld de, $c9f4 + ld a, $20 + call Function28682 + ld a, $0 + call GetSRAMBank + ld hl, $a600 + ld b, $6 +.asm_285ef + push bc + ld bc, $0021 + call CopyBytes + ld bc, $000e + add hl, bc + pop bc + dec b + jr nz, .asm_285ef + ld hl, $a600 + ld b, $6 +.asm_28603 + push bc + ld bc, $0021 + add hl, bc + ld bc, $000e + call CopyBytes + pop bc + dec b + jr nz, .asm_28603 + ld b, $6 + ld de, $a600 + ld hl, $c9f9 +.asm_2861a + push bc + push hl + push de + push hl + callba Function1de5c8 + pop de + ld a, c + or a + jr z, .asm_2863f + sub $3 + jr nc, .asm_28635 + callba Function1df1e6 + jr .asm_2863f + +.asm_28635 + cp $2 + jr nc, .asm_2863f + callba Function1df220 + +.asm_2863f + pop de + ld hl, $002f + add hl, de + ld d, h + ld e, l + pop hl + ld bc, $0021 + add hl, bc + pop bc + dec b + jr nz, .asm_2861a + call CloseSRAM + ld hl, $c9f9 + ld bc, $00c6 +.asm_28658 + ld a, [hl] + cp $fe + jr nz, .asm_2865f + ld [hl], $21 + +.asm_2865f + inc hl + dec bc + ld a, b + or c + jr nz, .asm_28658 + ld hl, $cabf + ld de, $cb13 + ld b, $54 + ld c, $0 +.asm_2866f + inc c + ld a, [hl] + cp $fe + jr nz, .asm_2867a + ld [hl], $ff + ld a, c + ld [de], a + inc de + +.asm_2867a + inc hl + dec b + jr nz, .asm_2866f + ld a, $ff + ld [de], a + ret +; 28682 + +Function28682: ; 28682 + ld c, $5 +.asm_28684 + ld [de], a + inc de + dec c + jr nz, .asm_28684 + ret +; 2868a + +Function2868a: ; 2868a + push hl + ld d, h + ld e, l + ld bc, $cbea + ld hl, $cbe8 + ld a, c + ld [hli], a + ld [hl], b + ld hl, OTPartyMon1Species + ld c, $6 +.asm_2869b + push bc + call Function286ba + pop bc + dec c + jr nz, .asm_2869b + pop hl + ld bc, $0108 + add hl, bc + ld de, OTPartyMon1OT + ld bc, $0042 + call CopyBytes + ld de, OTPartyMon1Nickname + ld bc, $0042 + jp CopyBytes +; 286ba + +Function286ba: ; 286ba + ld b, h + ld c, l + ld a, [de] + inc de + push bc + push de + ld [$d265], a + callab Functionfb908 + pop de + pop bc + ld a, [$d265] + ld [bc], a + ld [CurSpecies], a + ld hl, $0022 + add hl, bc + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hl], a + inc de + ld hl, $0020 + add hl, bc + ld a, [de] + inc de + ld [hl], a + ld hl, $cbe8 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, l + ld [$cbe8], a + ld a, h + ld [$cbe9], a + push bc + ld hl, $0001 + add hl, bc + push hl + ld h, d + ld l, e + pop de + push bc + ld a, [hli] + ld b, a + call Function28771 + ld a, b + ld [de], a + inc de + pop bc + ld bc, $0019 + call CopyBytes + pop bc + ld d, h + ld e, l + ld hl, $001f + add hl, bc + ld a, [de] + inc de + ld [hl], a + ld [CurPartyLevel], a + push bc + ld hl, $0024 + add hl, bc + push hl + ld h, d + ld l, e + pop de + ld bc, $0008 + call CopyBytes + pop bc + call GetBaseData + push de + push bc + ld d, h + ld e, l + ld hl, $000a + add hl, bc + ld c, $5 + ld b, $1 + ld a, $d + call Predef + pop bc + pop hl + ld a, [$ffb5] + ld [hli], a + ld a, [$ffb6] + ld [hli], a + push hl + push bc + ld hl, $000a + add hl, bc + ld c, $6 + ld b, $1 + ld a, $d + call Predef + pop bc + pop hl + ld a, [$ffb5] + ld [hli], a + ld a, [$ffb6] + ld [hli], a + push hl + ld hl, $001b + add hl, bc + ld a, $46 + ld [hli], a + xor a + ld [hli], a + ld [hli], a + ld [hl], a + pop hl + inc de + inc de + ret +; 28771 + +Function28771: ; 28771 + ld a, b + and a + ret z + push hl + ld hl, $4785 +.asm_28778 + ld a, [hli] + and a + jr z, .asm_28783 + cp b + jr z, .asm_28782 + inc hl + jr .asm_28778 + +.asm_28782 + ld b, [hl] + +.asm_28783 + pop hl + ret +; 28785 + +INCBIN "baserom.gbc", $28785, $2879e - $28785 + +Function2879e: ; 2879e +.asm_2879e + ld a, [hli] + cp $fe + jr z, .asm_2879e + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .asm_2879e + ret +; 287ab + +Function287ab: ; 287ab + ld a, [$ffcb] + cp $2 + ret z + ld hl, EnemyMonSpecies + call Function287d8 + ld de, LinkBattleRNs + ld c, $a +.asm_287bb + ld a, [hli] + cp $fe + jr z, .asm_287bb + cp $fd + jr z, .asm_287bb + ld [de], a + inc de + dec c + jr nz, .asm_287bb + ret +; 287ca + +Function287ca: ; 287ca +.asm_287ca + ld a, [hli] + and a + jr z, .asm_287ca + cp $fd + jr z, .asm_287ca + cp $fe + jr z, .asm_287ca + dec hl + ret +; 287d8 + +Function287d8: ; 287d8 +.asm_287d8 + ld a, [hli] + cp $fd + jr z, .asm_287d8 + cp $fe + jr z, .asm_287d8 + dec hl + ret +; 287e3 + +Function287e3: ; 287e3 + call Functionfdb + call Function28ef8 + callba Function16d673 + xor a + ld hl, $cf51 + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld a, $1 + ld [$cfa9], a + inc a + ld [$cf56], a + jp Function2888b +; 28803 + +Function28803: ; 28803 + ld a, $1 + ld [MonType], a + ld a, $c1 + ld [$cfa8], a + ld a, [OTPartyCount] + ld [$cfa3], a + ld a, $1 + ld [$cfa4], a + ld a, $9 + ld [$cfa1], a + ld a, $6 + ld [$cfa2], a + ld a, $1 + ld [$cfaa], a + ld a, $10 + ld [$cfa7], a + ld a, $20 + ld [$cfa5], a + xor a + ld [$cfa6], a + +Function28835: ; 28835 + callba Function16d70c + ld a, d + and a + jp z, Function2891c + bit 0, a + jr z, .asm_2885b + ld a, $1 + ld [$d263], a + callab Function50db9 + ld hl, OTPartyMon1Species + callba Function4d319 + jp Function2891c + +.asm_2885b + bit 6, a + jr z, .asm_28883 + ld a, [$cfa9] + ld b, a + ld a, [OTPartyCount] + cp b + jp nz, Function2891c + xor a + ld [MonType], a + call Function1bf7 + push hl + push bc + ld bc, $000b + add hl, bc + ld [hl], $7f + pop bc + pop hl + ld a, [PartyCount] + ld [$cfa9], a + jr Function2888b + +.asm_28883 + bit 7, a + jp z, Function2891c + jp Function28ac9 +; 2888b + +Function2888b: ; 2888b + callba Function49856 + xor a + ld [MonType], a + ld a, $c1 + ld [$cfa8], a + ld a, [PartyCount] + ld [$cfa3], a + ld a, $1 + ld [$cfa4], a + ld a, $1 + ld [$cfa1], a + ld a, $6 + ld [$cfa2], a + ld a, $1 + ld [$cfaa], a + ld a, $10 + ld [$cfa7], a + ld a, $20 + ld [$cfa5], a + xor a + ld [$cfa6], a + call Function3200 + +Function288c5: ; 288c5 + callba Function16d70c + ld a, d + and a + jr nz, .asm_288d2 + jp Function2891c + +.asm_288d2 + bit 0, a + jr z, .asm_288d9 + jp Function28926 + +.asm_288d9 + bit 7, a + jr z, .asm_288fe + ld a, [$cfa9] + dec a + jp nz, Function2891c + ld a, $1 + ld [MonType], a + call Function1bf7 + push hl + push bc + ld bc, $000b + add hl, bc + ld [hl], $7f + pop bc + pop hl + ld a, $1 + ld [$cfa9], a + jp Function28803 + +.asm_288fe + bit 6, a + jr z, Function2891c + ld a, [$cfa9] + ld b, a + ld a, [PartyCount] + cp b + jr nz, Function2891c + call Function1bf7 + push hl + push bc + ld bc, $000b + add hl, bc + ld [hl], $7f + pop bc + pop hl + jp Function28ade +; 2891c + +Function2891c: ; 2891c + ld a, [MonType] + and a + jp z, Function288c5 + jp Function28835 +; 28926 + +Function28926: ; 28926 + call Function309d + ld a, [$cfa9] + push af + ld hl, $c5cc + ld b, $1 + ld c, $12 + call Function28eef + ld hl, $c5e2 + ld de, $4ab4 + call PlaceString + callba Function4d354 + +.asm_28946 + ld a, $7f + ld [$c5eb], a + ld a, $13 + ld [$cfa8], a + ld a, $1 + ld [$cfa3], a + ld a, $1 + ld [$cfa4], a + ld a, $10 + ld [$cfa1], a + ld a, $1 + ld [$cfa2], a + ld a, $1 + ld [$cfa9], a + ld [$cfaa], a + ld a, $20 + ld [$cfa7], a + xor a + ld [$cfa5], a + ld [$cfa6], a + call Function1bd3 + bit 4, a + jr nz, .asm_2898d + bit 1, a + jr z, .asm_289cd +.asm_28983 + pop af + ld [$cfa9], a + call Function30b4 + jp Function2888b + +.asm_2898d + ld a, $7f + ld [$c5e1], a + ld a, $23 + ld [$cfa8], a + ld a, $1 + ld [$cfa3], a + ld a, $1 + ld [$cfa4], a + ld a, $10 + ld [$cfa1], a + ld a, $b + ld [$cfa2], a + ld a, $1 + ld [$cfa9], a + ld [$cfaa], a + ld a, $20 + ld [$cfa7], a + xor a + ld [$cfa5], a + ld [$cfa6], a + call Function1bd3 + bit 5, a + jp nz, .asm_28946 + bit 1, a + jr nz, .asm_28983 + jr .asm_289fe + +.asm_289cd + pop af + ld [$cfa9], a + ld a, $4 + ld [$d263], a + callab Function50db9 + callba Function4d319 + call Function30b4 + ld hl, $c4ba + ld bc, $0601 + ld a, $7f + call Function28b77 + ld hl, $c4c5 + ld bc, $0601 + ld a, $7f + call Function28b77 + jp Function2888b + +.asm_289fe + call Function1bee + pop af + ld [$cfa9], a + dec a + ld [DefaultFlypoint], a + ld [$cf56], a + callba Function16d6ce + ld a, [$cf51] + cp $f + jp z, Function287e3 + ld [$d003], a + call Function28b68 + ld c, $64 + call DelayFrames + callba Functionfb57e + jr c, .asm_28a58 + callba Functionfb5dd + jp nc, Function28b87 + xor a + ld [$cf57], a + ld [$cf52], a + ld hl, $c590 + ld b, $4 + ld c, $12 + call Function28eef + callba Function4d354 + ld hl, $4aaf + ld bc, $c5b9 + call Function13e5 + jr .asm_28a89 + +.asm_28a58 + xor a + ld [$cf57], a + ld [$cf52], a + ld a, [$d003] + ld hl, OTPartySpecies + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [$d265], a + call GetPokemonName + ld hl, $c590 + ld b, $4 + ld c, $12 + call Function28eef + callba Function4d354 + ld hl, $4ac4 + ld bc, $c5b9 + call Function13e5 + +.asm_28a89 + ld hl, $c590 + ld b, $4 + ld c, $12 + call Function28eef + ld hl, $c5b9 + ld de, $4ece + call PlaceString + ld a, $1 + ld [$cf56], a + callba Function16d6ce + ld c, $64 + call DelayFrames + jp Function287e3 +; 28aaf + +INCBIN "baserom.gbc", $28aaf, $28ac9 - $28aaf + +Function28ac9: ; 28ac9 + ld a, [$cfa9] + cp $1 + jp nz, Function2891c + call Function1bf7 + push hl + push bc + ld bc, $000b + add hl, bc + ld [hl], $7f + pop bc + pop hl + +Function28ade: ; 28ade +.asm_28ade + ld a, $ed + ld [$c5fd], a +.asm_28ae3 + call Functiona57 + ld a, [$ffa9] + and a + jr z, .asm_28ae3 + bit 0, a + jr nz, .asm_28b0b + push af + ld a, $7f + ld [$c5fd], a + pop af + bit 6, a + jr z, .asm_28b03 + ld a, [OTPartyCount] + ld [$cfa9], a + jp Function28803 + +.asm_28b03 + ld a, $1 + ld [$cfa9], a + jp Function2888b + +.asm_28b0b + ld a, $ec + ld [$c5fd], a + ld a, $f + ld [$cf56], a + callba Function16d6ce + ld a, [$cf51] + cp $f + jr nz, .asm_28ade + +Function28b22: ; 28b22 + call Function4b6 + call Functionfdb + ld b, $8 + call GetSGBLayout + call Function3200 + xor a + ld [$cfbb], a + xor a + ld [rSB], a + ld [hSerialSend], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + ret +; 28b42 + +INCBIN "baserom.gbc", $28b42, $28b68 - $28b42 + +Function28b68: ; 28b68 + ld a, [$cf51] + ld hl, $c55a + ld bc, $0014 + call AddNTimes + ld [hl], $ec + ret +; 28b77 + +Function28b77: ; 28b77 +.asm_28b77 + push bc + push hl +.asm_28b79 + ld [hli], a + dec c + jr nz, .asm_28b79 + pop hl + ld bc, $0014 + add hl, bc + pop bc + dec b + jr nz, .asm_28b77 + ret +; 28b87 + +Function28b87: ; 28b87 + xor a + ld [$cf57], a + ld [$cf52], a + ld hl, $c590 + ld b, $4 + ld c, $12 + call Function28eef + callba Function4d354 + ld a, [DefaultFlypoint] + ld hl, PartySpecies + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [$d265], a + call GetPokemonName + ld hl, StringBuffer1 + ld de, $d004 + ld bc, $000b + call CopyBytes + ld a, [$d003] + ld hl, OTPartySpecies + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [$d265], a + call GetPokemonName + ld hl, $4eb8 + ld bc, $c5b9 + call Function13e5 + call Function1d6e + ld hl, $c536 + ld b, $3 + ld c, $7 + call Function28eef + ld de, $4eab + ld hl, $c54c + call PlaceString + ld a, $8 + ld [$cfa1], a + ld a, $b + ld [$cfa2], a + ld a, $1 + ld [$cfa4], a + ld a, $2 + ld [$cfa3], a + xor a + ld [$cfa5], a + ld [$cfa6], a + ld a, $20 + ld [$cfa7], a + ld a, $3 + ld [$cfa8], a + ld a, $1 + ld [$cfa9], a + ld [$cfaa], a + callba Function4d354 + call Function1bd3 + push af + call Function1d7d + call Function3200 + pop af + bit 1, a + jr nz, .asm_28c33 + ld a, [$cfa9] + dec a + jr z, .asm_28c54 + +.asm_28c33 + ld a, $1 + ld [$cf56], a + ld hl, $c590 + ld b, $4 + ld c, $12 + call Function28eef + ld hl, $c5b9 + ld de, $4ece + call PlaceString + callba Function16d6ce + jp Function28ea3 + +.asm_28c54 + ld a, $2 + ld [$cf56], a + callba Function16d6ce + ld a, [$cf51] + dec a + jr nz, .asm_28c7b + ld hl, $c590 + ld b, $4 + ld c, $12 + call Function28eef + ld hl, $c5b9 + ld de, $4ece + call PlaceString + jp Function28ea3 + +.asm_28c7b + ld hl, $a600 + ld a, [DefaultFlypoint] + ld bc, $002f + call AddNTimes + ld a, $0 + call GetSRAMBank + ld d, h + ld e, l + ld bc, $002f + add hl, bc + ld a, [DefaultFlypoint] + ld c, a +.asm_28c96 + inc c + ld a, c + cp $6 + jr z, .asm_28ca6 + push bc + ld bc, $002f + call CopyBytes + pop bc + jr .asm_28c96 + +.asm_28ca6 + ld hl, $a600 + ld a, [PartyCount] + dec a + ld bc, $002f + call AddNTimes + push hl + ld hl, $c9f4 + ld a, [$d003] + ld bc, $002f + call AddNTimes + pop de + ld bc, $002f + call CopyBytes + call CloseSRAM + ld hl, PlayerName + ld de, $c6e7 + ld bc, $000b + call CopyBytes + ld a, [DefaultFlypoint] + ld hl, PartySpecies + ld b, $0 + ld c, a + add hl, bc + ld a, [hl] + ld [PlayerSDefLevel], a + push af + ld a, [DefaultFlypoint] + ld hl, PartyMon1OT + call SkipNames + ld de, $c6f2 + ld bc, $000b + call CopyBytes + ld hl, PartyMon1ID + ld a, [DefaultFlypoint] + call GetPartyLocation + ld a, [hli] + ld [PlayerScreens], a + ld a, [hl] + ld [EnemyScreens], a + ld hl, PartyMon1DVs + ld a, [DefaultFlypoint] + call GetPartyLocation + ld a, [hli] + ld [$c6fd], a + ld a, [hl] + ld [$c6fe], a + ld a, [DefaultFlypoint] + ld hl, PartyMon1Species + call GetPartyLocation + ld b, h + ld c, l + callba Function4f301 + ld a, c + ld [$c701], a + ld hl, $d26b + ld de, $c719 + ld bc, $000b + call CopyBytes + ld a, [$d003] + ld hl, OTPartySpecies + ld b, $0 + ld c, a + add hl, bc + ld a, [hl] + ld [PlayerLightScreenCount], a + ld a, [$d003] + ld hl, OTPartyMon1OT + call SkipNames + ld de, $c724 + ld bc, $000b + call CopyBytes + ld hl, OTPartyMon1ID + ld a, [$d003] + call GetPartyLocation + ld a, [hli] + ld [$c731], a + ld a, [hl] + ld [$c732], a + ld hl, OTPartyMon1AtkDefDV + ld a, [$d003] + call GetPartyLocation + ld a, [hli] + ld [$c72f], a + ld a, [hl] + ld [$c730], a + ld a, [$d003] + ld hl, OTPartyMon1Species + call GetPartyLocation + ld b, h + ld c, l + callba Function4f301 + ld a, c + ld [$c733], a + ld a, [DefaultFlypoint] + ld [CurPartyMon], a + ld hl, PartySpecies + ld b, $0 + ld c, a + add hl, bc + ld a, [hl] + ld [DefaultFlypoint], a + xor a + ld [$d10b], a + callab Functione039 + ld a, [PartyCount] + dec a + ld [CurPartyMon], a + ld a, $1 + ld [$d1e9], a + ld a, [$d003] + push af + ld hl, OTPartySpecies + ld b, $0 + ld c, a + add hl, bc + ld a, [hl] + ld [$d003], a + ld c, $64 + call DelayFrames + call ClearTileMap + call Functione58 + ld b, $8 + call GetSGBLayout + ld a, [$ffcb] + cp $1 + jr z, .asm_28de4 + ld a, $1e + call Predef + jr .asm_28de9 + +.asm_28de4 + ld a, $1d + call Predef + +.asm_28de9 + pop af + ld c, a + ld [CurPartyMon], a + ld hl, OTPartySpecies + ld d, $0 + ld e, a + add hl, de + ld a, [hl] + ld [CurPartySpecies], a + ld hl, OTPartyMon1Species + ld a, c + call GetPartyLocation + ld de, TempMonSpecies + ld bc, $0030 + call CopyBytes + ld a, $7 + call Predef + ld a, [PartyCount] + dec a + ld [CurPartyMon], a + callab Function421d8 + call Functionfdb + call Function28ef8 + call Function28eff + callba Function4d354 + ld b, $1 + pop af + ld c, a + cp $97 + jr z, .asm_28e49 + ld a, [CurPartySpecies] + cp $97 + jr z, .asm_28e49 + ld b, $2 + ld a, c + cp $fb + jr z, .asm_28e49 + ld a, [CurPartySpecies] + cp $fb + jr z, .asm_28e49 + ld b, $0 + +.asm_28e49 + ld a, b + ld [$cf56], a + push bc + call Function862 + pop bc + ld a, [InLinkBattle] + cp $1 + jr z, .asm_28e63 + ld a, b + and a + jr z, .asm_28e63 + ld a, [$cf52] + cp b + jr nz, .asm_28e49 + +.asm_28e63 + callba Function14a58 + callba Function1060af + callba Function106187 + ld c, $28 + call DelayFrames + ld hl, $c590 + ld b, $4 + ld c, $12 + call Function28eef + ld hl, $c5b9 + ld de, $4ebd + call PlaceString + callba Function4d354 + ld c, $32 + call DelayFrames + ld a, [InLinkBattle] + cp $1 + jp z, Function2805d + jp Function28177 +; 28ea3 + +Function28ea3: ; 28ea3 + ld c, $64 + call DelayFrames + jp Function287e3 +; 28eab + +INCBIN "baserom.gbc", $28eab, $28eef - $28eab + +Function28eef: ; 28eef + ld d, h + ld e, l + callba Function16d6ca + ret +; 28ef8 + +Function28ef8: ; 28ef8 + callba Function16d696 + ret +; 28eff + +Function28eff: ; 28eff + callba Function16d6a7 + call Function32f9 + ret +; 28f09 + +INCBIN "baserom.gbc", $28f09, $28f24 - $28f09 + +Function28f24: ; 28f24 + xor a + ld [$cf66], a + ld hl, $c6e7 + ld de, $c719 + call Function297ff + ld hl, PlayerSDefLevel + ld de, PlayerLightScreenCount + call Function29814 + ld de, .data_28f3f + jr Function28fa1 + +.data_28f3f + db $1b + db $1 + db $1c + db $21 + db $2d + db $27 + db $23 + db $3 + db $25 + db $28 + db $25 + db $1e + db $29 + db $6 + db $16 + db $1f + db $19 + db $17 + db $22 + db $1f + db $2a + db $e + db $3 + db $24 + db $5 + db $25 + db $2 + db $27 + db $25 + db $1d + db $2c + db $2e + db $1e + db $18 + db $1f + db $2b + +Function28f63: ; 28f63 + xor a + ld [$cf66], a + ld hl, $c719 + ld de, $c6e7 + call Function297ff + ld hl, PlayerLightScreenCount + ld de, PlayerSDefLevel + call Function29814 + ld de, .data_28f7e + jr Function28fa1 + +.data_28f7e + db $1a + db $17 + db $22 + db $1f + db $2a + db $6 + db $3 + db $24 + db $5 + db $25 + db $2 + db $27 + db $25 + db $1d + db $2c + db $2f + db $1e + db $18 + db $1f + db $1b + db $1 + db $1c + db $22 + db $27 + db $23 + db $3 + db $25 + db $28 + db $25 + db $1e + db $29 + db $e + db $16 + db $1f + db $2b + +Function28fa1: ; 28fa1 + ld hl, BattleEnded + ld [hl], e + inc hl + ld [hl], d + ld a, [$ffde] + push af + xor a + ld [$ffde], a + ld hl, VramState + ld a, [hl] + push af + res 0, [hl] + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + call Function28fdb + ld a, [$cf66] + and a + jr nz, .asm_28fca + ld de, MUSIC_EVOLUTION + call StartMusic2 +.asm_28fca + call Function29082 + jr nc, .asm_28fca + pop af + ld [Options], a + pop af + ld [VramState], a + pop af + ld [$ffde], a + ret +; 28fdb + +Function28fdb: ; 28fdb + xor a + ld [$cf63], a + call WhiteBGMap + call ClearSprites + call ClearTileMap + call DisableLCD + call Functione58 + callab Function8cf53 + ld a, [hCGB] + and a + jr z, .asm_2900b + ld a, $1 + ld [rVBK], a + ld hl, VTiles0 + ld bc, $2000 + xor a + call ByteFill + ld a, $0 + ld [rVBK], a + +.asm_2900b + ld hl, VBGMap0 + ld bc, $0800 + ld a, $7f + call ByteFill + ld hl, $599b + ld de, $9310 + call Decompress + ld hl, $591b + ld de, $8ed0 + ld bc, $0010 + ld a, $a + call FarCopyBytes + ld hl, $592b + ld de, $8ee0 + ld bc, $0010 + ld a, $a + call FarCopyBytes + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + callba Function4d7fd + call EnableLCD + call Function2982b + ld a, [PlayerSDefLevel] + ld hl, $c6fd + ld de, VTiles0 + call Function29491 + ld a, [PlayerLightScreenCount] + ld hl, $c72f + ld de, $8310 + call Function29491 + ld a, [PlayerSDefLevel] + ld de, PlayerAccLevel + call Function294a9 + ld a, [PlayerLightScreenCount] + ld de, PlayerReflectCount + call Function294a9 + call Function297ed + ret +; 29082 + +Function29082: ; 29082 + ld a, [$cf63] + bit 7, a + jr nz, .asm_2909b + call Function290a0 + callab Function8cf69 + ld hl, $cf65 + inc [hl] + call DelayFrame + and a + ret + +.asm_2909b + call Functione51 + scf + ret +; 290a0 + +Function290a0: ; 290a0 + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $50af + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 290af + +INCBIN "baserom.gbc", $290af, $29491 - $290af + +Function29491: ; 29491 + push de + push af + ld a, $2d + call Predef + pop af + ld [CurPartySpecies], a + ld [CurSpecies], a + call GetBaseData + pop de + ld a, $3c + call Predef + ret +; 294a9 + +Function294a9: ; 294a9 + push de + ld [$d265], a + call GetPokemonName + ld hl, StringBuffer1 + pop de + ld bc, $000b + call CopyBytes + ret +; 294bb + +INCBIN "baserom.gbc", $294bb, $297ed - $294bb + +Function297ed: ; 297ed + ld a, [hSGB] + and a + ld a, $e4 + jr z, .asm_297f6 + ld a, $f0 + +.asm_297f6 + call Functioncf8 + ld a, $e4 + call DmgToCgbBGPals + ret +; 297ff + +Function297ff: ; 297ff + push de + ld de, $c736 + ld bc, $000b + call CopyBytes + pop hl + ld de, $c741 + ld bc, $000b + call CopyBytes + ret +; 29814 + +Function29814: ; 29814 + ld a, [hl] + ld [$c74c], a + ld a, [de] + ld [$c74d], a + ret +; 2981d + +INCBIN "baserom.gbc", $2981d, $2982b - $2981d + +Function2982b: ; 2982b + call DelayFrame + ld de, $5adb + ld hl, $8620 + ld bc, $0a06 + call Request2bpp + ld de, $5b3b + ld hl, $8680 + ld bc, $0a0c + call Request2bpp + ld de, $593b + ld hl, $8740 + ld bc, $0a04 + call Request2bpp + xor a + ld hl, $c300 + ld [hli], a + ld [hl], $62 + ret +; 2985a + +INCBIN "baserom.gbc", $2985a, $29bfb - $2985a + +Function29bfb: ; 29bfb + ld hl, PartySpecies + ld b, $6 +.asm_29c00 + ld a, [hli] + cp $ff + jr z, .asm_29c0c + cp $98 + jr nc, .asm_29c42 + dec b + jr nz, .asm_29c00 + +.asm_29c0c + ld a, [PartyCount] + ld b, a + ld hl, PartyMon1Item +.asm_29c13 + push hl + push bc + ld d, [hl] + callba ItemIsMail + pop bc + pop hl + jr c, .asm_29c5e + ld de, $0030 + add hl, de + dec b + jr nz, .asm_29c13 + ld hl, PartyMon1Move1 + ld a, [PartyCount] + ld b, a +.asm_29c2e + ld c, $4 +.asm_29c30 + ld a, [hli] + cp $a6 + jr nc, .asm_29c4c + dec c + jr nz, .asm_29c30 + ld de, $002c + add hl, de + dec b + jr nz, .asm_29c2e + xor a + jr .asm_29c63 + +.asm_29c42 + ld [$d265], a + call GetPokemonName + ld a, $1 + jr .asm_29c63 + +.asm_29c4c + push bc + ld [$d265], a + call GetMoveName + call CopyName1 + pop bc + call Function29c67 + ld a, $2 + jr .asm_29c63 + +.asm_29c5e + call Function29c67 + ld a, $3 + +.asm_29c63 + ld [ScriptVar], a + ret +; 29c67 + +Function29c67: ; 29c67 + ld a, [PartyCount] + sub b + ld c, a + inc c + ld b, $0 + ld hl, PartyCount + add hl, bc + ld a, [hl] + ld [$d265], a + call GetPokemonName + ret +; 29c7b + +Function29c7b: ; 29c7b + ld c, $a + call DelayFrames + ld a, $4 + call Function29f17 + ld c, $28 + call DelayFrames + xor a + ld [$ff9e], a + inc a + ld [InLinkBattle], a + ret +; 29c92 + +Function29c92: ; 29c92 + ld c, $3 + call DelayFrames + ld a, $ff + ld [$ffcb], a + xor a + ld [rSB], a + ld [hSerialReceive], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + ld c, $3 + call DelayFrames + xor a + ld [rSB], a + ld [hSerialReceive], a + ld a, $0 + ld [rSC], a + ld a, $80 + ld [rSC], a + ld c, $3 + call DelayFrames + xor a + ld [rSB], a + ld [hSerialReceive], a + ld [rSC], a + ld c, $3 + call DelayFrames + ld a, $ff + ld [$ffcb], a + ld a, [rIF] + push af + xor a + ld [rIF], a + ld a, $f + ld [rIE], a + pop af + ld [rIF], a + ld hl, $cf5b + xor a + ld [hli], a + ld [hl], a + ld [$ff9e], a + ld [InLinkBattle], a + ret +; 29ce8 + +Function29ce8: ; 29ce8 + ld a, $1 + ld [$cf56], a + ld [$d265], a + ret +; 29cf1 + +Function29cf1: ; 29cf1 + ld a, $2 + ld [$cf56], a + ld [$d265], a + ret +; 29cfa + +Function29cfa: ; 29cfa + ld a, $2 + ld [rSB], a + xor a + ld [hSerialReceive], a + ld a, $0 + ld [rSC], a + ld a, $80 + ld [rSC], a + xor a + ld [$cf56], a + ld [$d265], a + ret +; 29d11 + +Function29d11: ; 29d11 + ld a, [$cf56] + and a + jr z, .asm_29d2f + ld a, $2 + ld [rSB], a + xor a + ld [hSerialReceive], a + ld a, $0 + ld [rSC], a + ld a, $80 + ld [rSC], a + call DelayFrame + call DelayFrame + call DelayFrame + +.asm_29d2f + ld a, $2 + ld [$cf5c], a + ld a, $ff + ld [$cf5b], a +.asm_29d39 + ld a, [$ffcb] + cp $2 + jr z, .asm_29d79 + cp $1 + jr z, .asm_29d79 + ld a, $ff + ld [$ffcb], a + ld a, $2 + ld [rSB], a + xor a + ld [hSerialReceive], a + ld a, $0 + ld [rSC], a + ld a, $80 + ld [rSC], a + ld a, [$cf5b] + dec a + ld [$cf5b], a + jr nz, .asm_29d68 + ld a, [$cf5c] + dec a + ld [$cf5c], a + jr z, .asm_29d8d + +.asm_29d68 + ld a, $1 + ld [rSB], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + call DelayFrame + jr .asm_29d39 + +.asm_29d79 + call Function908 + call DelayFrame + call Function908 + ld c, $32 + call DelayFrames + ld a, $1 + ld [ScriptVar], a + ret + +.asm_29d8d + xor a + ld [ScriptVar], a + ret +; 29d92 + +Function29d92: ; 29d92 + ld a, $1 + ld [$cf56], a + ld hl, $cf5b + ld a, $3 + ld [hli], a + xor a + ld [hl], a + call WaitBGMap + ld a, $2 + ld [$ff9e], a + call DelayFrame + call DelayFrame + call Function29e0c + xor a + ld [$ff9e], a + ld a, [ScriptVar] + and a + ret nz + jp Function29f04 +; 29dba + +Function29dba: ; 29dba + ld a, $5 + ld [$cf56], a + ld hl, $cf5b + ld a, $3 + ld [hli], a + xor a + ld [hl], a + call WaitBGMap + ld a, $2 + ld [$ff9e], a + call DelayFrame + call DelayFrame + call Function29e0c + ld a, [ScriptVar] + and a + jr z, .asm_29e08 + ld bc, rIE +.asm_29de0 + dec bc + ld a, b + or c + jr nz, .asm_29de0 + ld a, [$cf51] + cp $5 + jr nz, .asm_29e03 + ld a, $6 + ld [$cf56], a + ld hl, $cf5b + ld a, $1 + ld [hli], a + ld [hl], $32 + call Function29e0c + ld a, [$cf51] + cp $6 + jr z, .asm_29e08 + +.asm_29e03 + xor a + ld [ScriptVar], a + ret + +.asm_29e08 + xor a + ld [$ff9e], a + ret +; 29e0c + +Function29e0c: ; 29e0c + xor a + ld [$ffca], a + ld a, [$cf5b] + ld h, a + ld a, [$cf5c] + ld l, a + push hl + call Function29e3b + pop hl + jr nz, .asm_29e2f + call Function29e47 + call Function29e53 + call Function29e3b + jr nz, .asm_29e2f + call Function29e47 + xor a + jr .asm_29e31 + +.asm_29e2f + ld a, $1 + +.asm_29e31 + ld [ScriptVar], a + ld hl, $cf5b + xor a + ld [hli], a + ld [hl], a + ret +; 29e3b + +Function29e3b: ; 29e3b + call Function87d + ld hl, $cf5b + ld a, [hli] + inc a + ret nz + ld a, [hl] + inc a + ret +; 29e47 + +Function29e47: ; 29e47 + ld b, $a +.asm_29e49 + call DelayFrame + call Function908 + dec b + jr nz, .asm_29e49 + ret +; 29e53 + +Function29e53: ; 29e53 + dec h + srl h + rr l + srl h + rr l + inc h + ld a, h + ld [$cf5b], a + ld a, l + ld [$cf5c], a + ret +; 29e66 + +Function29e66: ; 29e66 + ld a, [$d265] + push af + callba Function14ab2 + ld a, $1 + jr nc, .asm_29e75 + xor a + +.asm_29e75 + ld [ScriptVar], a + ld c, $1e + call DelayFrames + pop af + ld [$d265], a + ret +; 29e82 + +Function29e82: ; 29e82 + ld a, [$d265] + call Function29f17 + push af + call Function908 + call DelayFrame + call Function908 + pop af + ld b, a + ld a, [$d265] + cp b + jr nz, .asm_29eaa + ld a, [$d265] + inc a + ld [InLinkBattle], a + xor a + ld [$ff9e], a + ld a, $1 + ld [ScriptVar], a + ret + +.asm_29eaa + xor a + ld [ScriptVar], a + ret +; 29eaf + +Function29eaf: ; 29eaf + ld a, $1 + ld [InLinkBattle], a + call Function2ed3 + callab Function28000 + call Function2ee4 + xor a + ld [$ff9e], a + ret +; 29ec4 + +Function29ec4: ; 29ec4 + ld a, $2 + ld [InLinkBattle], a + call Function2ed3 + callab Function28000 + call Function2ee4 + xor a + ld [$ff9e], a + ret +; 29ed9 + +Function29ed9: ; 29ed9 + ld a, $3 + ld [InLinkBattle], a + call Function2ed3 + callab Function28000 + call Function2ee4 + xor a + ld [$ff9e], a + ret +; 29eee + +Function29eee: ; 29eee + xor a + ld [InLinkBattle], a + ld c, $3 + call DelayFrames + jp Function29f04 +; 29efa + +Function29efa: ; 29efa + ld c, $28 + call DelayFrames + ld a, $e + jp Function29f17 +; 29f04 + +Function29f04: ; 29f04 + ld c, $3 + call DelayFrames + ld a, $ff + ld [$ffcb], a + ld a, $2 + ld [rSB], a + xor a + ld [hSerialReceive], a + ld [rSC], a + ret +; 29f17 + +Function29f17: ; 29f17 + add $d0 + ld [$cf56], a + ld [$cf57], a + ld a, $2 + ld [$ff9e], a + call DelayFrame + call DelayFrame +.asm_29f29 + call Function83b + ld a, [$cf51] + ld b, a + and $f0 + cp $d0 + jr z, .asm_29f40 + ld a, [$cf52] + ld b, a + and $f0 + cp $d0 + jr nz, .asm_29f29 + +.asm_29f40 + xor a + ld [$ff9e], a + ld a, b + and $f + ret +; 29f47 + +Function29f47: ; 29f47 + ld a, [$ffcb] + cp $1 + ld a, $1 + jr z, .asm_29f50 + dec a + +.asm_29f50 + ld [ScriptVar], a + ret +; 29f54 + +INCBIN "baserom.gbc", $29f54, $2a01f - $29f54 + +Function2a01f: ; 2a01f + ld hl, TileMap + ld bc, $0168 + xor a + call ByteFill + ld a, e + and a + jr nz, .asm_2a043 + ld de, TileMap + ld hl, WildMons1 + call Function2a052 + ld hl, WildMons2 + call Function2a06e + call Function2a0b7 + call Function2a0cf + ret + +.asm_2a043 + ld de, TileMap + ld hl, WildMons3 + call Function2a052 + ld hl, WildMons4 + jp Function2a06e +; 2a052 + +Function2a052: ; 2a052 +.asm_2a052 + ld a, [hl] + cp $ff + ret z + push hl + ld a, [hli] + ld b, a + ld a, [hli] + ld c, a + inc hl + inc hl + inc hl + ld a, $15 + call Function2a088 + jr nc, .asm_2a067 + ld [de], a + inc de + +.asm_2a067 + pop hl + ld bc, $002f + add hl, bc + jr .asm_2a052 +; 2a06e + +Function2a06e: ; 2a06e +.asm_2a06e + ld a, [hl] + cp $ff + ret z + push hl + ld a, [hli] + ld b, a + ld a, [hli] + ld c, a + inc hl + ld a, $3 + call Function2a088 + jr nc, .asm_2a081 + ld [de], a + inc de + +.asm_2a081 + pop hl + ld bc, $0009 + add hl, bc + jr .asm_2a06e +; 2a088 + +Function2a088: ; 2a088 + inc hl +.asm_2a089 + push af + ld a, [$d265] + cp [hl] + jr z, .asm_2a098 + inc hl + inc hl + pop af + dec a + jr nz, .asm_2a089 + and a + ret + +.asm_2a098 + pop af + jp Function2a09c +; 2a09c + +Function2a09c: ; 2a09c + push de + call GetWorldMapLocation + ld c, a + ld hl, TileMap + ld de, $0168 +.asm_2a0a7 + ld a, [hli] + cp c + jr z, .asm_2a0b4 + dec de + ld a, e + or d + jr nz, .asm_2a0a7 + ld a, c + pop de + scf + ret + +.asm_2a0b4 + pop de + and a + ret +; 2a0b7 + +Function2a0b7: ; 2a0b7 + ld a, [RoamMon1Species] + ld b, a + ld a, [$d265] + cp b + ret nz + ld a, [RoamMon1MapGroup] + ld b, a + ld a, [RoamMon1MapNumber] + ld c, a + call Function2a09c + ret nc + ld [de], a + inc de + ret +; 2a0cf + +Function2a0cf: ; 2a0cf + ld a, [RoamMon2Species] + ld b, a + ld a, [$d265] + cp b + ret nz + ld a, [RoamMon2MapGroup] + ld b, a + ld a, [RoamMon2MapNumber] + ld c, a + call Function2a09c + ret nc + ld [de], a + inc de + ret +; 2a0e7 Function2a0e7: ; 2a0e7 ; Try to trigger a wild encounter. @@ -33935,7 +35421,7 @@ Function2a200: ; 2a200 jr .asm_2a27a .asm_2a235 - call Function2f17 + call IsInJohto and a ret z ld h, d @@ -34303,7 +35789,189 @@ Function2a4a0: ; 2a4a0 ret ; 2a4ab -INCBIN "baserom.gbc", $2a4ab, $2a5e9 - $2a4ab +Function2a4ab: ; 2a4ab + callba Function90439 + ld d, b + ld e, c + ld hl, WildMons1 + ld bc, $002f + call Function2a288 + jr c, .asm_2a4c6 + ld hl, WildMons3 + call Function2a288 + jr nc, .asm_2a514 + +.asm_2a4c6 + push hl + ld bc, $000d + add hl, bc + ld a, [TimeOfDay] + ld bc, $000e + call AddNTimes +.asm_2a4d4 + call Random + and $3 + jr z, .asm_2a4d4 + dec a + ld c, a + ld b, $0 + add hl, bc + add hl, bc + inc hl + ld c, [hl] + pop hl + ld de, $0005 + add hl, de + inc hl + ld b, $4 +.asm_2a4eb + ld a, [hli] + cp c + jr z, .asm_2a514 + inc hl + dec b + jr nz, .asm_2a4eb + push bc + dec c + ld a, c + call CheckSeenMon + pop bc + jr nz, .asm_2a514 + ld de, StringBuffer1 + call CopyName1 + ld a, c + ld [$d265], a + call GetPokemonName + ld hl, $651a + call PrintText + xor a + ld [ScriptVar], a + ret + +.asm_2a514 + ld a, $1 + ld [ScriptVar], a + ret +; 2a51a + +INCBIN "baserom.gbc", $2a51a, $2a51f - $2a51a + +Function2a51f: ; 2a51f + callba Function90439 + ld d, b + ld e, c + ld hl, WildMons1 + ld bc, $002f + call Function2a288 + jr c, .asm_2a538 + ld hl, WildMons3 + call Function2a288 + +.asm_2a538 + ld bc, $0005 + add hl, bc + ld a, [TimeOfDay] + inc a + ld bc, $000e +.asm_2a543 + dec a + jr z, .asm_2a549 + add hl, bc + jr .asm_2a543 + +.asm_2a549 + call Random + and $3 + ld c, a + ld b, $0 + add hl, bc + add hl, bc + inc hl + ld a, [hl] + ld [$d265], a + call GetPokemonName + ld hl, StringBuffer1 + ld de, StringBuffer4 + ld bc, $000b + jp CopyBytes +; 2a567 + +Function2a567: ; 2a567 + callba Function90439 + ld hl, $5999 + ld a, d + dec a + ld c, a + ld b, $0 + add hl, bc + add hl, bc + ld a, $e + call GetFarHalfword +.asm_2a57c + dec e + jr z, .asm_2a58b +.asm_2a57f + ld a, $e + call GetFarByte + inc hl + cp $ff + jr nz, .asm_2a57f + jr .asm_2a57c + +.asm_2a58b + ld a, $e + call GetFarByte + inc hl + cp $50 + jr nz, .asm_2a58b + ld a, $e + call GetFarByte + inc hl + ld bc, $0002 + cp $0 + jr z, .asm_2a5b3 + ld bc, $0006 + cp $1 + jr z, .asm_2a5b3 + ld bc, $0003 + cp $2 + jr z, .asm_2a5b3 + ld bc, $0007 + +.asm_2a5b3 + ld e, $0 + push hl +.asm_2a5b6 + inc e + add hl, bc + ld a, $e + call GetFarByte + cp $ff + jr nz, .asm_2a5b6 + pop hl +.asm_2a5c2 + call Random + and $7 + cp e + jr nc, .asm_2a5c2 + inc a +.asm_2a5cb + dec a + jr z, .asm_2a5d1 + add hl, bc + jr .asm_2a5cb + +.asm_2a5d1 + inc hl + ld a, $e + call GetFarByte + ld [$d265], a + call GetPokemonName + ld hl, StringBuffer1 + ld de, StringBuffer4 + ld bc, $000b + jp CopyBytes +; 2a5e9 WildMons1: ; 0x2a5e9 @@ -34658,7 +36326,7 @@ Function2c0c5: ; 2c0c5 ret nz ld a, [TempEnemyMonSpecies] dec a - call CheckSeenMon + call CheckCaughtMon ret z ld hl, $c4b5 ld [hl], $5d @@ -34849,7 +36517,131 @@ TrainerClassNames: ; 2c1ef db "MYSTICALMAN@" -INCBIN "baserom.gbc", $2c41a, $2c7fb - $2c41a +INCBIN "baserom.gbc", $2c41a, $2c547 - $2c41a + +Function2c547: ; 2c547 + ld hl, $45ef + call PrintText + call Function1dcf + jr c, .asm_2c5c3 + ld hl, $45f4 + call PrintText + callba Function50000 + jr c, .asm_2c5c3 + ld a, [CurPartySpecies] + cp $fd + jr z, .asm_2c5bc + ld a, [CurPartyMon] + ld hl, PartyMon1Move2 + ld bc, $0030 + call AddNTimes + ld a, [hl] + and a + jr z, .asm_2c5ca + ld hl, $45ea + call PrintText + call Function1d6e + callba Function12f5b + push af + call Function2b74 + pop af + jr c, .asm_2c5c3 + ld a, [$cfa9] + push af + ld a, [CurSpecies] + ld [$d265], a + call GetMoveName + ld hl, $45d6 + call PrintText + call Function1dcf + pop bc + jr c, .asm_2c5c3 + call Function2c5f9 + call WaitSFX + ld de, $0097 + call StartSFX + call WaitSFX + ld hl, $45db + call PrintText + ret + +.asm_2c5bc + ld hl, $45e0 + call PrintText + ret + +.asm_2c5c3 + ld hl, $45e5 + call PrintText + ret + +.asm_2c5ca + ld hl, $45d1 + call PrintText + ret +; 2c5d1 + +INCBIN "baserom.gbc", $2c5d1, $2c5f9 - $2c5d1 + +Function2c5f9: ; 2c5f9 + ld a, b + push bc + dec a + ld c, a + ld b, $0 + ld hl, PartyMon1Move1 + add hl, bc + ld a, [CurPartyMon] + ld bc, $0030 + call AddNTimes + pop bc + push bc + inc b +.asm_2c60f + ld a, b + cp $5 + jr z, .asm_2c61b + inc hl + ld a, [hld] + ld [hl], a + inc hl + inc b + jr .asm_2c60f + +.asm_2c61b + xor a + ld [hl], a + pop bc + ld a, b + push bc + dec a + ld c, a + ld b, $0 + ld hl, PartyMon1PP + add hl, bc + ld a, [CurPartyMon] + ld bc, $0030 + call AddNTimes + pop bc + inc b +.asm_2c633 + ld a, b + cp $5 + jr z, .asm_2c63f + inc hl + ld a, [hld] + ld [hl], a + inc hl + inc b + jr .asm_2c633 + +.asm_2c63f + xor a + ld [hl], a + ret +; 2c642 + +INCBIN "baserom.gbc", $2c642, $2c7fb - $2c642 Function2c7fb: ; 2c7fb @@ -34908,7 +36700,7 @@ Function2c7fb: ; 2c7fb INCBIN "baserom.gbc", $2c867, $2cb3e - $2c867 -PrintMoveDescription: ; 2cb3e +PrintMoveDesc: ; 2cb3e push hl ld hl, MoveDescriptions ld a, [CurSpecies] @@ -35360,94 +37152,9 @@ FillBox: ; 2ef6e SECTION "bankC",ROMX,BANK[$C] -Tileset15GFX: ; 0x30000 -INCBIN "gfx/tilesets/15.lz" -; 0x304d7 - - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset15Meta: ; 0x304e0 -INCBIN "tilesets/15_metatiles.bin" -; 0x308e0 - -Tileset15Coll: ; 0x308e0 -INCBIN "tilesets/15_collision.bin" -; 0x309e0 - -Tileset25GFX: ; 0x309e0 -INCBIN "gfx/tilesets/25.lz" -; 0x30e78 - - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset25Meta: ; 0x30e80 -INCBIN "tilesets/25_metatiles.bin" -; 0x31280 - -Tileset25Coll: ; 0x31280 -INCBIN "tilesets/25_collision.bin" -; 0x31380 - -Tileset27GFX: ; 0x31380 -INCBIN "gfx/tilesets/27.lz" -; 0x318dc - - db $00 - db $00 - db $00 - db $00 - -Tileset27Meta: ; 0x318e0 -INCBIN "tilesets/27_metatiles.bin" -; 0x31ce0 - -Tileset27Coll: ; 0x31ce0 -INCBIN "tilesets/27_collision.bin" -; 0x31de0 - -Tileset28GFX: ; 0x31de0 -INCBIN "gfx/tilesets/28.lz" -; 0x321a6 - - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset28Meta: ; 0x321b0 -INCBIN "tilesets/28_metatiles.bin" -; 0x325b0 - -Tileset28Coll: ; 0x325b0 -INCBIN "tilesets/28_collision.bin" -; 0x326b0 - -Tileset30GFX: ; 0x326b0 -INCBIN "gfx/tilesets/30.lz" -; 0x329ed - -INCBIN "baserom.gbc", $329ed, $333f0 - $329ed +INCLUDE "tilesets/data_4.asm" + +INCBIN "baserom.gbc", $329f0, $333f0 - $329f0 SECTION "bankD",ROMX,BANK[$D] @@ -36155,11 +37862,14 @@ Function39939: ; 39939 ld a, [$cfc0] bit 0, a ld hl, $d26b - jp nz, $5984 + jp nz, Function39984 + ld a, [OtherTrainerID] ld b, a ld a, [OtherTrainerClass] ld c, a + +Function3994c: ; 3994c ld a, c cp $c jr nz, .asm_3996d @@ -36172,7 +37882,7 @@ Function39939: ; 39939 ld a, $0 call GetSRAMBank ld hl, $abfe - call $5984 + call Function39984 jp CloseSRAM .asm_3996d @@ -36186,16 +37896,17 @@ Function39939: ; 39939 ld h, [hl] ld l, a pop bc + .asm_3997a dec b - jr z, .asm_39984 + jr z, Function39984 .asm_3997d ld a, [hli] cp $ff jr nz, .asm_3997d jr .asm_3997a -.asm_39984 +Function39984: ; 39984 ld de, StringBuffer1 push de ld bc, $000b @@ -36212,8 +37923,6 @@ Function39990: ; 39990 ret ; 39999 - - TrainerGroups: ; 0x39999 INCLUDE "trainers/trainer_pointers.asm" @@ -40881,7 +42590,7 @@ Function3deb1: ; 3deb1 ld a, [hli] ld h, [hl] ld l, a - ld a, $d + ld a, BANK(BattleCommand70) rst FarCall pop bc pop de @@ -40904,13 +42613,13 @@ Function3deb1: ; 3deb1 ; 3defc .data_3defc - dbw $1f, $61ac - dbw $20, $61b0 - dbw $21, $61b4 - dbw $22, $61b8 - dbw $23, $61bc - dbw $24, $61c0 - dbw $25, $61c4 + dbw $1f, BattleCommand70 + dbw $20, BattleCommand71 + dbw $21, BattleCommand72 + dbw $22, BattleCommand73 + dbw $23, BattleCommand74 + dbw $24, BattleCommand75 + dbw $25, BattleCommand76 db $ff ; 3df12 @@ -41957,10 +43666,10 @@ Function3e643: ; 3e643 ld a, [$d0e3] and a jr z, .asm_3e6bf - ld hl, BattleMonMove1 - call $66a5 - ld hl, BattleMonPPMove1 - call $66a5 + ld hl, BattleMonMoves + call .asm_3e6a5 + ld hl, BattleMonPP + call .asm_3e6a5 ld hl, PlayerDisableCount ld a, [hl] swap a @@ -41994,26 +43703,27 @@ Function3e643: ; 3e643 ld a, [PlayerSubStatus5] bit 3, a jr nz, .asm_3e69e - ld hl, PartyMon1Move1 + ld hl, PartyMon1Moves ld a, [CurBattleMon] call GetPartyLocation push hl - call $66a5 + call .asm_3e6a5 pop hl ld bc, $0015 add hl, bc - call $66a5 + call .asm_3e6a5 .asm_3e69e xor a ld [$d0e3], a jp Function3e4bc +.asm_3e6a5 push hl ld a, [$d0e3] dec a ld c, a - ld b, $0 + ld b, 0 add hl, bc ld d, h ld e, l @@ -42021,7 +43731,7 @@ Function3e643: ; 3e643 ld a, [$cfa9] dec a ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [de] ld b, [hl] @@ -42039,64 +43749,73 @@ Function3e643: ; 3e643 MoveInfoBox: ; 3e6c8 xor a ld [hBGMapMode], a - ld hl, $c540 - ld b, $3 - ld c, $9 + + hlcoord 0, 8 + ld b, 3 + ld c, 9 call TextBox call MobileTextBorder + ld a, [PlayerDisableCount] and a jr z, .asm_3e6f4 + swap a and $f ld b, a ld a, [$cfa9] cp b jr nz, .asm_3e6f4 - ld hl, $c569 + + hlcoord 1, 10 ld de, .Disabled call PlaceString - jr .asm_3e74e + jr .done .asm_3e6f4 ld hl, $cfa9 dec [hl] call SetPlayerTurn - ld hl, BattleMonMove1 + ld hl, BattleMonMoves ld a, [$cfa9] ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [hl] ld [CurPlayerMove], a + ld a, [CurBattleMon] ld [CurPartyMon], a - ld a, $4 + ld a, WILDMON ld [MonType], a callab Functionf8ec + ld hl, $cfa9 ld c, [hl] inc [hl] - ld b, $0 - ld hl, BattleMonPPMove1 + ld b, 0 + ld hl, BattleMonPP add hl, bc ld a, [hl] and $3f ld [StringBuffer1], a call Function3e75f - ld hl, $c555 + + hlcoord 1, 9 ld de, .Type call PlaceString - ld hl, $c583 - ld [hl], $f3 + + hlcoord 7, 11 + ld [hl], "/" + callab UpdateMoveData ld a, [PlayerMoveAnimation] ld b, a - ld hl, $c56a - ld a, $2a + hlcoord 2, 10 + ld a, PREDEF_PRINT_MOVE_TYPE call Predef -.asm_3e74e +.done ret ; 3e74f @@ -42108,11 +43827,11 @@ MoveInfoBox: ; 3e6c8 Function3e75f: ; 3e75f - ld hl, $c581 + hlcoord 5, 11 ld a, [InLinkBattle] cp $4 jr c, .asm_3e76c - ld hl, $c581 + hlcoord 5, 11 .asm_3e76c push hl @@ -42122,7 +43841,7 @@ Function3e75f: ; 3e75f pop hl inc hl inc hl - ld [hl], $f3 + ld [hl], "/" inc hl ld de, $d265 ld bc, $0102 @@ -42131,12 +43850,13 @@ Function3e75f: ; 3e75f ; 3e786 Function3e786: ; 3e786 - ld a, $a5 + ld a, STRUGGLE ld [CurPlayerMove], a ld a, [PlayerDisableCount] and a - ld hl, BattleMonPPMove1 + ld hl, BattleMonPP jr nz, .asm_3e79f + ld a, [hli] or [hl] inc hl @@ -42170,7 +43890,7 @@ Function3e786: ; 3e786 .asm_3e7b4 ld hl, BattleText_0x80c72 call StdBattleTextBox - ld c, $3c + ld c, 60 call DelayFrames xor a ret @@ -42826,7 +44546,7 @@ LoadEnemyMon: ; 3e8eb dec a ld c, a ld b, 1 ; set - ld hl, PokedexCaught + ld hl, PokedexSeen ld a, PREDEF_FLAG call Predef @@ -45942,7 +47662,97 @@ Function4010b: ; 4010b jp [hl] ; 40115 -INCBIN "baserom.gbc", $40115, $40ad5 - $40115 +INCBIN "baserom.gbc", $40115, $40741 - $40115 + +Function40741: ; 40741 + push de + ld de, $0014 +.asm_40745 + ld [hl], a + add hl, de + dec b + jr nz, .asm_40745 + pop de + ret +; 4074c + +INCBIN "baserom.gbc", $4074c, $407fd - $4074c + +Function407fd: ; 407fd + call Function40aa6 + ld hl, TileMap + ld bc, $0f12 + call Function40ad5 + ld hl, $c4b3 + ld [hl], $34 + ld hl, $c4c7 + ld a, $7f + ld b, $f + call Function40741 + ld [hl], $39 + ld hl, $c569 + ld bc, $0013 + ld a, $61 + call ByteFill + ld hl, $c5f5 + ld bc, $0012 + ld a, $7f + call ByteFill + ld hl, $c535 + ld de, $4852 + call Function40acd + ld hl, $c55d + ld de, $485c + call Function40acd + ld hl, $c5f4 + ld de, $4867 + call Function40acd + call Function40ab2 + ret +; 4084f + +INCBIN "baserom.gbc", $4084f, $40aa6 - $4084f + +Function40aa6: ; 40aa6 + ld hl, TileMap + ld a, $32 + ld bc, $0168 + call ByteFill + ret +; 40ab2 + +Function40ab2: ; 40ab2 + ld hl, $c4b5 + xor a + ld b, $7 +.asm_40ab8 + ld c, $7 + push af + push hl +.asm_40abc + ld [hli], a + add $7 + dec c + jr nz, .asm_40abc + pop hl + ld de, $0014 + add hl, de + pop af + inc a + dec b + jr nz, .asm_40ab8 + ret +; 40acd + +Function40acd: ; 40acd +.asm_40acd + ld a, [de] + cp $ff + ret z + inc de + ld [hli], a + jr .asm_40acd +; 40ad5 Function40ad5: ; 40ad5 @@ -45990,7 +47800,21 @@ Function40b06: ; 40b06 jr .asm_40b07 ; 40b0f -INCBIN "baserom.gbc", $40b0f, $40bb1 - $40b0f +INCBIN "baserom.gbc", $40b0f, $40ba0 - $40b0f + +Function40ba0: ; 40ba0 + ld hl, $c4c6 + ld a, $62 + ld [hli], a + inc a + ld [hl], a + ld hl, $c4da + ld a, $64 + ld [hli], a + inc a + ld [hl], a + ret +; 40bb1 Function40bb1: ; 40bb1 @@ -46014,7 +47838,7 @@ Function40bd0: ; 40bd0 push hl ld a, [$d265] dec a - call CheckCaughtMon + call CheckSeenMon pop hl pop de ret @@ -46033,7 +47857,44 @@ Function40bdc: ; 40bdc jp [hl] ; 40bf0 -INCBIN "baserom.gbc", $40bf0, $40c65 - $40bf0 +INCBIN "baserom.gbc", $40bf0, $40c30 - $40bf0 + +Function40c30: ; 40c30 + xor a + ld [$c7d2], a + ld hl, PlayerSDefLevel + ld de, AlphabeticalPokedexOrder + ld c, $fb +.asm_40c3c + push bc + ld a, [de] + ld [$d265], a + call Function40bd0 + jr z, .asm_40c51 + ld a, [$d265] + ld [hli], a + ld a, [$c7d2] + inc a + ld [$c7d2], a + +.asm_40c51 + inc de + pop bc + dec c + jr nz, .asm_40c3c + ld a, [$c7d2] + ld c, $0 +.asm_40c5b + cp $fb + jr z, .asm_40c64 + ld [hl], c + inc hl + inc a + jr .asm_40c5b + +.asm_40c64 + ret +; 40c65 AlphabeticalPokedexOrder: ; 0x40c65 INCLUDE "stats/pokedex/order_alpha.asm" @@ -46059,7 +47920,17 @@ Function40e5b: ; 40e5b ret ; 40e7d -INCBIN "baserom.gbc", $40e7d, $41432 - $40e7d +INCBIN "baserom.gbc", $40e7d, $41423 - $40e7d + +Function41423: ; 41423 + ld b, a + call GetSGBLayout + ld a, $e4 + call DmgToCgbBGPals + ld a, $e0 + call Functioncf8 + ret +; 41432 Function41432: ; 41432 @@ -46103,7 +47974,42 @@ Function4143b: ; 4143b ret ; 41478 -INCBIN "baserom.gbc", $41478, $414b7 - $41478 +INCBIN "baserom.gbc", $41478, $4147b - $41478 + +Function4147b: ; 4147b + ld a, [$d265] + dec a + and $f8 + srl a + srl a + srl a + ld e, $0 + ld d, a + ld a, [$d265] + dec a + and $7 + swap a + ld l, a + ld h, $0 + add hl, de + ld de, $5434 + add hl, de + push hl + ld e, l + ld d, h + ld hl, $9620 + ld bc, $3e02 + call Request1bpp + pop hl + ld de, $0080 + add hl, de + ld e, l + ld d, h + ld hl, $9640 + ld bc, $3e02 + call Request1bpp + ret +; 414b7 Function414b7: ; 414b7 @@ -46185,7 +48091,43 @@ Function41a2c: ; 41a2c ret ; 41a58 -INCBIN "baserom.gbc", $41a58, $41af7 - $41a58 +INCBIN "baserom.gbc", $41a58, $41a7f - $41a58 + +Function41a7f: ; 41a7f + xor a + ld [hBGMapMode], a + callba Function1de247 + call Function41af7 + call DisableLCD + call Functione51 + call Functione5f + call Function414b7 + call Function4147b + ld a, [$d265] + ld [CurPartySpecies], a + call Function407fd + call Function40ba0 + ld hl, $c5f4 + ld [hl], $3b + inc hl + ld bc, $0013 + ld a, $7f + call ByteFill + callba Function4424d + call EnableLCD + call WaitBGMap + call GetBaseData + ld de, VTiles2 + ld a, $3c + call Predef + ld a, $4 + call Function41423 + ld a, [CurPartySpecies] + call Function37ce + ret +; 41ad7 + +INCBIN "baserom.gbc", $41ad7, $41af7 - $41ad7 Function41af7: ; 41af7 @@ -46207,6 +48149,8 @@ Function421d8: ; 421d8 ld c, a ld b, $1 call Function42577 + +Function421e6: ; 421e6 xor a ld [$d268], a dec a @@ -46808,171 +48752,7 @@ INCLUDE "stats/evos_attacks.asm" SECTION "bank11",ROMX,BANK[$11] -FruitTreeScript: ; 44000 - 3callasm BANK(GetCurTreeFruit), GetCurTreeFruit - loadfont - copybytetovar CurFruit - itemtotext $0, $0 - 2writetext FruitBearingTreeText - keeptextopen - 3callasm BANK(TryResetFruitTrees), TryResetFruitTrees - 3callasm BANK(CheckFruitTree), CheckFruitTree - iffalse .fruit - 2writetext NothingHereText - closetext - 2jump .end - -.fruit - 2writetext HeyItsFruitText - copybytetovar CurFruit - giveitem $ff, 1 - iffalse .packisfull - keeptextopen - 2writetext ObtainedFruitText - 3callasm BANK(PickedFruitTree), PickedFruitTree - specialsound - itemnotify - 2jump .end - -.packisfull - keeptextopen - 2writetext FruitPackIsFullText - closetext - -.end - loadmovesprites - end -; 44041 - -GetCurTreeFruit: ; 44041 - ld a, [CurFruitTree] - dec a - call GetFruitTreeItem - ld [CurFruit], a - ret -; 4404c - -TryResetFruitTrees: ; 4404c - ld hl, $dc1e - bit 4, [hl] - ret nz - jp ResetFruitTrees -; 44055 - -CheckFruitTree: ; 44055 - ld b, 2 - call GetFruitTreeFlag - ld a, c - ld [ScriptVar], a - ret -; 4405f - -PickedFruitTree: ; 4405f - ld a, $41 - ld hl, $609b - rst FarCall ; empty function - - ld b, 1 - jp GetFruitTreeFlag -; 4406a - -ResetFruitTrees: ; 4406a - xor a - ld hl, FruitTreeFlags - ld [hli], a - ld [hli], a - ld [hli], a - ld [hl], a - ld hl, $dc1e - set 4, [hl] - ret -; 44078 - -GetFruitTreeFlag: ; 44078 - push hl - push de - ld a, [CurFruitTree] - dec a - ld e, a - ld d, 0 - ld hl, FruitTreeFlags - call FlagAction - pop de - pop hl - ret -; 4408a - -GetFruitTreeItem: ; 4408a - push hl - push de - ld e, a - ld d, 0 - ld hl, FruitTreeItems - add hl, de - ld a, [hl] - pop de - pop hl - ret -; 44097 - -FruitTreeItems: ; 44097 - db BERRY - db BERRY - db BERRY - db BERRY - db PSNCUREBERRY - db PSNCUREBERRY - db BITTER_BERRY - db BITTER_BERRY - db PRZCUREBERRY - db PRZCUREBERRY - db MYSTERYBERRY - db MYSTERYBERRY - db ICE_BERRY - db ICE_BERRY - db MINT_BERRY - db BURNT_BERRY - db RED_APRICORN - db BLU_APRICORN - db BLK_APRICORN - db WHT_APRICORN - db PNK_APRICORN - db GRN_APRICORN - db YLW_APRICORN - db BERRY - db PSNCUREBERRY - db BITTER_BERRY - db PRZCUREBERRY - db ICE_BERRY - db MINT_BERRY - db BURNT_BERRY -; 440b5 - -FruitBearingTreeText: ; 440b5 - text_jump _FruitBearingTreeText, BANK(_FruitBearingTreeText) - db "@" -; 440ba - -HeyItsFruitText: ; 440ba - text_jump _HeyItsFruitText, BANK(_HeyItsFruitText) - db "@" -; 440bf - -ObtainedFruitText: ; 440bf - text_jump _ObtainedFruitText, BANK(_ObtainedFruitText) - db "@" -; 440c4 - -FruitPackIsFullText: ; 440c4 - text_jump _FruitPackIsFullText, BANK(_FruitPackIsFullText) - db "@" -; 440c9 - -NothingHereText: ; 440c9 - text_jump _NothingHereText, BANK(_NothingHereText) - db "@" -; 440ce - +INCLUDE "engine/fruit_trees.asm" AIChooseMove: ; 440ce @@ -47244,7 +49024,165 @@ Function44207: ; 44207 jr .asm_44210 ; 44228 -INCBIN "baserom.gbc", $44228, $44378 - $44228 +INCBIN "baserom.gbc", $44228, $4424d - $44228 + +Function4424d: ; 4424d + call GetPokemonName + ld hl, $c4e5 + call PlaceString + ld a, [$d265] + ld b, a + call Function44333 + ld a, b + push af + ld hl, $c50d + call Function13d4 + ld h, b + ld l, c + push de + ld hl, $c542 + ld a, $5c + ld [hli], a + ld a, $5d + ld [hli], a + ld de, $d265 + ld bc, $8103 + call PrintNum + ld a, [$d265] + dec a + call CheckCaughtMon + pop hl + pop bc + ret z + ld a, [CurPartySpecies] + ld [CurSpecies], a + inc hl + ld a, b + push af + push hl + call GetFarHalfword + ld d, l + ld e, h + pop hl + inc hl + inc hl + ld a, d + or e + jr z, .asm_442b0 + push hl + push de + ld hl, [sp+$0] + ld d, h + ld e, l + ld hl, $c538 + ld bc, $0224 + call PrintNum + ld hl, $c53a + ld [hl], $5e + pop af + pop hl + +.asm_442b0 + pop af + push af + inc hl + push hl + dec hl + call GetFarHalfword + ld d, l + ld e, h + ld a, e + or d + jr z, .asm_442cd + push de + ld hl, [sp+$0] + ld d, h + ld e, l + ld hl, $c55f + ld bc, ClearVRAM + call PrintNum + pop de + +.asm_442cd + ld bc, $0512 + ld hl, $c57e + call ClearBox + ld hl, $c569 + ld bc, $0013 + ld a, $61 + call ByteFill + ld hl, $c555 + ld [hl], $55 + inc hl + ld [hl], $55 + ld hl, $c569 + ld [hl], $56 + inc hl + ld [hl], $57 + pop de + inc de + pop af + ld hl, $c57e + push af + call Function13d4 + pop bc + ld a, [$cf65] + or a + ret z + push bc + push de + ld bc, $0512 + ld hl, $c57e + call ClearBox + ld hl, $c569 + ld bc, $0013 + ld a, $61 + call ByteFill + ld hl, $c555 + ld [hl], $55 + inc hl + ld [hl], $55 + ld hl, $c569 + ld [hl], $56 + inc hl + ld [hl], $58 + pop de + inc de + pop af + ld hl, $c57e + call Function13d4 + ret +; 44331 + +INCBIN "baserom.gbc", $44331, $44333 - $44331 + +Function44333: ; 44333 + push hl + ld hl, PokedexDataPointerTable + ld a, b + dec a + ld d, $0 + ld e, a + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + push de + rlca + rlca + and $3 + ld hl, $4351 + ld d, $0 + ld e, a + add hl, de + ld b, [hl] + pop de + pop hl + ret +; 44351 + +INCBIN "baserom.gbc", $44351, $44378 - $44351 PokedexDataPointerTable: ; 0x44378 @@ -47589,7 +49527,7 @@ Function4484a: ; 0x4484a ld a, $1 ld [$d10c], a ld hl, NumItems - call Function2f66 + call ReceiveItem jr c, .asm_4489e ld hl, .PackFullText jp Function1d67 @@ -47742,7 +49680,46 @@ Function48000: ; 48000 ret ; 4802f -INCBIN "baserom.gbc", $4802f, $48e81 - $4802f +INCBIN "baserom.gbc", $4802f, $48c63 - $4802f + +Function48c63: ; 48c63 + ld a, $50 + ld [de], a + ld a, c + cp $30 + jr nc, .asm_48c8c + and a + jr z, .asm_48c8c + dec c + push de + ld h, d + ld l, e + ld a, $50 + ld b, $7 +.asm_48c76 + ld [hli], a + dec b + jr nz, .asm_48c76 + ld hl, $455b + ld a, c + call GetNthString +.asm_48c81 + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + cp $50 + jr nz, .asm_48c81 + and a + pop de + ret + +.asm_48c8c + scf + ret +; 48c8e + +INCBIN "baserom.gbc", $48c8e, $48e81 - $48c8e Function48e81: ; 48e81 @@ -47842,7 +49819,7 @@ Function492b9: ; 492b9 pop de ld a, $b ld hl, $48ce - call Function31b0 + call FarPrintText jr .asm_49300 .asm_492e5 @@ -47870,7 +49847,26 @@ Function492b9: ; 492b9 ret ; 4930a -INCBIN "baserom.gbc", $4930a, $49409 - $4930a +INCBIN "baserom.gbc", $4930a, $49336 - $4930a + +Function49336: ; 49336 +.asm_49336 + push bc + push hl +.asm_49338 + ld [hli], a + dec c + jr nz, .asm_49338 + pop hl + ld bc, $0014 + add hl, bc + pop bc + dec b + jr nz, .asm_49336 + ret +; 49346 + +INCBIN "baserom.gbc", $49346, $49409 - $49346 Function49409: ; 49409 @@ -47878,11 +49874,317 @@ Function49409: ; 49409 ld de, $d038 ld bc, $0008 ld a, $5 - call Function306b + call FarCopyWRAM ret ; 49418 -INCBIN "baserom.gbc", $49418, $49962 - $49418 +INCBIN "baserom.gbc", $49418, $494ac - $49418 + +Function494ac: ; 494ac + ld a, [$d199] + cp $15 + jr z, .asm_494c9 + cp $16 + jr z, .asm_494ce + cp $1d + jr z, .asm_494d3 + cp $5 + jr z, .asm_494e1 + cp $1b + jr z, .asm_494e6 + cp $d + jr z, .asm_494eb + jr .asm_494f0 + +.asm_494c9 + call Function494f2 + scf + ret + +.asm_494ce + call Function49541 + scf + ret + +.asm_494d3 + ld a, [$d19a] + and $7 + cp $3 + jr z, .asm_494f0 + call Function49590 + scf + ret + +.asm_494e1 + call Function495df + scf + ret + +.asm_494e6 + call Function4962e + scf + ret + +.asm_494eb + call Function496c5 + scf + ret + +.asm_494f0 + and a + ret +; 494f2 + +Function494f2: ; 494f2 + ld a, $5 + ld de, Unkn1Pals + ld hl, $5501 + ld bc, $0040 + call FarCopyWRAM + ret +; 49501 + +INCBIN "baserom.gbc", $49501, $49541 - $49501 + +Function49541: ; 49541 + ld a, $5 + ld de, Unkn1Pals + ld hl, $5550 + ld bc, $0040 + call FarCopyWRAM + ret +; 49550 + +INCBIN "baserom.gbc", $49550, $49590 - $49550 + +Function49590: ; 49590 + ld a, $5 + ld de, Unkn1Pals + ld hl, $559f + ld bc, $0040 + call FarCopyWRAM + ret +; 4959f + +INCBIN "baserom.gbc", $4959f, $495df - $4959f + +Function495df: ; 495df + ld a, $5 + ld de, Unkn1Pals + ld hl, $55ee + ld bc, $0040 + call FarCopyWRAM + ret +; 495ee + +INCBIN "baserom.gbc", $495ee, $4962e - $495ee + +Function4962e: ; 4962e + ld a, $5 + ld de, Unkn1Pals + ld hl, $563d + ld bc, $0040 + call FarCopyWRAM + ret +; 4963d + +INCBIN "baserom.gbc", $4963d, $496c5 - $4963d + +Function496c5: ; 496c5 + ld a, $5 + ld de, Unkn1Pals + ld hl, $567d + ld bc, $0040 + call FarCopyWRAM + ld a, $5 + ld de, $d020 + ld hl, $56fe + ld bc, $0008 + call FarCopyWRAM + ld a, $5 + ld de, $d018 + ld hl, $56ad + ld bc, $0008 + call FarCopyWRAM + ld a, $5 + ld de, $d030 + ld hl, $56bd + ld bc, $0008 + call FarCopyWRAM + ret +; 496fe + +INCBIN "baserom.gbc", $496fe, $49797 - $496fe + +Function49797: ; 49797 + ld hl, AttrMap + ld bc, $1002 + ld a, $4 + call Function49336 + ld a, $3 + ld [$cded], a + ld [$cef1], a + ld hl, $cddb + ld bc, $0812 + ld a, $5 + call Function49336 + ld hl, $ce7b + ld bc, $0812 + ld a, $6 + call Function49336 + ld hl, $cf19 + ld bc, $0214 + ld a, $4 + call Function49336 + ld a, $3 + ld bc, $0601 + ld hl, $cdf3 + call Function49336 + ld a, $3 + ld bc, $0601 + ld hl, $cdfe + call Function49336 + ld a, $3 + ld bc, $0601 + ld hl, $ce93 + call Function49336 + ld a, $3 + ld bc, $0601 + ld hl, $ce9e + call Function49336 + ld a, $2 + ld hl, $cf1b + ld [hli], a + ld a, $7 + ld [hli], a + ld [hli], a + ld [hli], a + ld a, $2 + ld [hl], a + ld hl, $cf2f + ld a, $3 + ld bc, $0006 + call ByteFill + ret +; 49811 + +Function49811: ; 49811 + ld hl, $5826 + ld de, $d010 + ld bc, $0030 + ld a, $5 + call FarCopyWRAM + callba Function96a4 + ret +; 49826 + +INCBIN "baserom.gbc", $49826, $49856 - $49826 + +Function49856: ; 49856 + call Function49797 + ret +; 4985a + +INCBIN "baserom.gbc", $4985a, $4989a - $4985a + +Function4989a: ; 4989a + call DelayFrame + ld a, [VramState] + push af + xor a + ld [VramState], a + call Function49912 + ld de, $0750 + ld a, $2c + call Function3b2a + ld hl, $0003 + add hl, bc + ld [hl], $84 + ld hl, $0002 + add hl, bc + ld [hl], $1f + ld hl, $000f + add hl, bc + ld a, $80 + ld [hl], a + ld a, $a0 + ld [$cf64], a + ld d, $0 +.asm_498ca + ld a, [$cf63] + bit 7, a + jr nz, .asm_498ee + push bc + call Function49bae + inc d + push de + ld a, $90 + ld [$c3b5], a + callba Function8cf7a + call Function49935 + ld c, $2 + call DelayFrames + pop de + pop bc + jr .asm_498ca + +.asm_498ee + pop af + ld [VramState], a + call Function498f9 + call Function49bf3 + ret +; 498f9 + +Function498f9: ; 498f9 + ld hl, $c402 + xor a + ld c, $4 +.asm_498ff + ld [hli], a + inc hl + inc hl + inc hl + inc a + dec c + jr nz, .asm_498ff + ld hl, $c410 + ld bc, $0090 + xor a + call ByteFill + ret +; 49912 + +Function49912: ; 49912 + callba Function8cf53 + ld de, $5962 + ld hl, VTiles1 + ld bc, $1204 + call Request2bpp + ld de, $59a2 + ld hl, $8840 + ld bc, $1210 + call Request2bpp + xor a + ld [$cf63], a + ret +; 49935 + +Function49935: ; 49935 + ld hl, $cf64 + ld a, [hl] + and a + jr z, .asm_4993e + dec [hl] + ret + +.asm_4993e + ld hl, $cf63 + set 7, [hl] + ret +; 49944 + +INCBIN "baserom.gbc", $49944, $49962 - $49944 SpecialCelebiGFX: INCBIN "gfx/special/celebi/leaf.2bpp" @@ -47891,7 +50193,95 @@ INCBIN "gfx/special/celebi/2.2bpp" INCBIN "gfx/special/celebi/3.2bpp" INCBIN "gfx/special/celebi/4.2bpp" -INCBIN "baserom.gbc", $49aa2, $49cdc - $49aa2 +INCBIN "baserom.gbc", $49aa2, $49bae - $49aa2 + +Function49bae: ; 49bae + push hl + push bc + push de + ld a, d + ld d, $3 + ld e, d + cp $0 + jr z, .asm_49bd0 + cp d + jr z, .asm_49bd4 + call Function49bed + cp d + jr z, .asm_49bd8 + call Function49bed + cp d + jr z, .asm_49bdc + call Function49bed + cp d + jr c, .asm_49be9 + jr .asm_49be5 + +.asm_49bd0 + ld a, $84 + jr .asm_49bde + +.asm_49bd4 + ld a, $88 + jr .asm_49bde + +.asm_49bd8 + ld a, $8c + jr .asm_49bde + +.asm_49bdc + ld a, $90 + +.asm_49bde + ld hl, $0003 + add hl, bc + ld [hl], a + jr .asm_49be9 + +.asm_49be5 + pop de + ld d, $ff + push de + +.asm_49be9 + pop de + pop bc + pop hl + ret +; 49bed + +Function49bed: ; 49bed + push af + ld a, d + add e + ld d, a + pop af + ret +; 49bf3 + +Function49bf3: ; 49bf3 + ld a, $b + ld [BattleType], a + ret +; 49bf9 + +Function49bf9: ; 49bf9 + ld a, [$d0ee] + bit 6, a + jr z, .asm_49c07 + ld a, $1 + ld [ScriptVar], a + jr .asm_49c0b + +.asm_49c07 + xor a + ld [ScriptVar], a + +.asm_49c0b + ret +; 49c0c + +INCBIN "baserom.gbc", $49c0c, $49cdc - $49c0c MainMenu: ; 49cdc xor a @@ -48164,7 +50554,7 @@ Function49e3d: ; 49e3d ld a, $24 ld hl, $4b3e rst FarCall - ld [hl], $9c + ld [hl], ":" inc hl ld de, hMinutes ld bc, $8102 @@ -48501,12 +50891,12 @@ CheckOwnMonAnywhere: ; 0x4a721 ; run CheckOwnMon on each Pokémon in the PC ld a, $1 call GetSRAMBank - ld a, [$ad10] + ld a, [BoxCount] and a jr z, .asm_4a766 ; 0x4a748 $1c ld d, a - ld hl, $ad26 - ld bc, $afa6 + ld hl, BoxMon1Species + ld bc, BoxMon1OT .asm_4a751 call CheckOwnMon jr nc, .asm_4a75a ; 0x4a754 $4 @@ -48681,7 +51071,800 @@ UpdateOTPointer: ; 0x4a83a ret ; 0x4a843 -INCBIN "baserom.gbc", $4a843, $4ae78 - $4a843 +INCBIN "baserom.gbc", $4a843, $4a927 - $4a843 + +Function4a927: ; 4a927 + ld a, [ScriptVar] + ld [CurItem], a + ld hl, PCItems + call CheckItem + jr c, .asm_4a948 + ld a, [ScriptVar] + ld [CurItem], a + ld hl, NumItems + call CheckItem + jr c, .asm_4a948 + xor a + ld [ScriptVar], a + ret + +.asm_4a948 + ld a, $1 + ld [ScriptVar], a + ret +; 4a94e + +Function4a94e: ; 4a94e + call FadeToMenu + ld a, $ff + ld hl, DefaultFlypoint + ld bc, $0003 + call ByteFill + xor a + ld [$d018], a + ld [$d019], a + ld b, $14 + call GetSGBLayout + call Function32f9 + call Function4aa22 + jr c, .asm_4a985 + jr z, .asm_4a9a1 + jr .asm_4a97b + +.asm_4a974 + call Function4aa25 + jr c, .asm_4a985 + jr z, .asm_4a9a1 + +.asm_4a97b + call Function4ac58 + ld hl, $d019 + res 1, [hl] + jr .asm_4a974 + +.asm_4a985 + ld a, [$d018] + and a + jr nz, .asm_4a990 + call Function4aba8 + jr c, .asm_4a974 + +.asm_4a990 + call Function2b3c + ld hl, DefaultFlypoint + ld a, $ff + ld bc, $0003 + call ByteFill + scf + jr .asm_4a9af + +.asm_4a9a1 + call Function4a9c3 + jr c, .asm_4a9b0 + call Function4a9d7 + jr c, .asm_4a974 + call Function2b3c + and a + +.asm_4a9af + ret + +.asm_4a9b0 + ld de, $0019 + call StartSFX + ld hl, $69be + call PrintText + jr .asm_4a974 +; 4a9be + +INCBIN "baserom.gbc", $4a9be, $4a9c3 - $4a9be + +Function4a9c3: ; 4a9c3 + ld hl, DefaultFlypoint + ld a, $ff + cp [hl] + jr z, .asm_4a9d5 + inc hl + cp [hl] + jr z, .asm_4a9d5 + inc hl + cp [hl] + jr z, .asm_4a9d5 + and a + ret + +.asm_4a9d5 + scf + ret +; 4a9d7 + +Function4a9d7: ; 4a9d7 + ld a, [DefaultFlypoint] + ld hl, PartyMon1Nickname + call GetNick + ld h, d + ld l, e + ld de, EndFlypoint + ld bc, $0006 + call CopyBytes + ld a, [$d003] + ld hl, PartyMon1Nickname + call GetNick + ld h, d + ld l, e + ld de, $d00c + ld bc, $0006 + call CopyBytes + ld a, [$d004] + ld hl, PartyMon1Nickname + call GetNick + ld h, d + ld l, e + ld de, $d012 + ld bc, $0006 + call CopyBytes + ld hl, $6a1d + call PrintText + call Function1dcf + ret +; 4aa1d + +INCBIN "baserom.gbc", $4aa1d, $4aa22 - $4aa1d + +Function4aa22: ; 4aa22 + call WhiteBGMap + +Function4aa25: ; 4aa25 + callba Function5004f + callba Function50405 + call Function4aad3 + ld a, $9 + ld [PartyMenuActionText], a + callba WritePartyMenuTilemap + xor a + ld [PartyMenuActionText], a + callba PrintPartyMenuText + call Function4aab6 + call WaitBGMap + call Function32f9 + call DelayFrame + call Function4ab1a + jr z, .asm_4aa66 + push af + call Function4aafb + jr c, .asm_4aa67 + call Function4ab06 + jr c, .asm_4aa67 + pop af + +.asm_4aa66 + ret + +.asm_4aa67 + ld hl, $d019 + set 1, [hl] + pop af + ret +; 4aa6e + +INCBIN "baserom.gbc", $4aa6e, $4aa7a - $4aa6e + +Function4aa7a: ; 4aa7a + ld hl, DefaultFlypoint + ld d, $3 +.asm_4aa7f + ld e, $6 + ld a, [hli] + push de + push hl + cp $ff + jr z, .asm_4aab3 + ld hl, $c314 + inc a + ld d, a +.asm_4aa8d + ld a, [hl] + and a + jr z, .asm_4aaa5 + cp d + jr z, .asm_4aa9a + jr .asm_4aaa5 + + ld a, $3 + jr .asm_4aa9c + +.asm_4aa9a + ld a, $2 + +.asm_4aa9c + push hl + ld c, l + ld b, h + ld hl, $0002 + add hl, bc + ld [hl], a + pop hl + +.asm_4aaa5 + ld bc, $0010 + add hl, bc + dec e + jr nz, .asm_4aa8d + pop hl + pop de + dec d + jr nz, .asm_4aa7f + jr .asm_4aab5 + +.asm_4aab3 + pop hl + pop de + +.asm_4aab5 + ret +; 4aab6 + +Function4aab6: ; 4aab6 + ld hl, DefaultFlypoint + ld d, $3 +.asm_4aabb + ld a, [hli] + cp $ff + jr z, .asm_4aad2 + push de + push hl + ld hl, $c4b4 + ld bc, $0028 + call AddNTimes + ld [hl], $ec + pop hl + pop de + dec d + jr nz, .asm_4aabb + +.asm_4aad2 + ret +; 4aad3 + +Function4aad3: ; 4aad3 + ld hl, PartyCount + ld a, [hli] + and a + ret z + ld c, a + xor a + ld [hConnectedMapWidth], a +.asm_4aadd + push bc + push hl + ld e, $0 + callba Function8e83f + ld a, [hConnectedMapWidth] + inc a + ld [hConnectedMapWidth], a + pop hl + pop bc + dec c + jr nz, .asm_4aadd + call Function4aa7a + callba Function8cf69 + ret +; 4aafb + +Function4aafb: ; 4aafb + ld a, [CurPartySpecies] + cp $fd + jr z, .asm_4ab04 + and a + ret + +.asm_4ab04 + scf + ret +; 4ab06 + +Function4ab06: ; 4ab06 + ld a, [CurPartyMon] + ld bc, $0030 + ld hl, PartyMon1CurHP + call AddNTimes + ld a, [hli] + ld b, a + ld a, [hl] + or b + jr nz, .asm_4ab19 + scf + +.asm_4ab19 + ret +; 4ab1a + +Function4ab1a: ; 4ab1a +.asm_4ab1a + ld a, $fb + ld [$cfa8], a + ld a, $26 + ld [$cfa7], a + ld a, $2 + ld [$cfa4], a + call Function4adf7 + call Function1bc9 + call Function4abc3 + jr c, .asm_4ab1a + push af + call Function4ab99 + call nc, Function1bee + pop af + bit 1, a + jr nz, .asm_4ab6d + ld a, [PartyCount] + inc a + ld b, a + ld a, [$cfa9] + ld [$d0d8], a + cp b + jr z, .asm_4ab7e + ld a, [$cfa9] + dec a + ld [CurPartyMon], a + ld c, a + ld b, $0 + ld hl, PartySpecies + add hl, bc + ld a, [hl] + ld [CurPartySpecies], a + ld de, $0008 + call StartSFX + call WaitSFX + ld a, $1 + and a + ret + +.asm_4ab6d + ld a, [$cfa9] + ld [$d0d8], a +.asm_4ab73 + ld de, $0008 + call StartSFX + call WaitSFX + scf + ret + +.asm_4ab7e + ld a, $1 + ld [$d018], a + ld a, [$cfaa] + cp $2 + jr z, .asm_4ab73 + ld de, $0008 + call StartSFX + call WaitSFX + xor a + ld [$d018], a + and a + ret +; 4ab99 + +Function4ab99: ; 4ab99 + bit 1, a + jr z, .asm_4aba6 + ld a, [DefaultFlypoint] + cp $ff + jr z, .asm_4aba6 + scf + ret + +.asm_4aba6 + and a + ret +; 4aba8 + +Function4aba8: ; 4aba8 + ld hl, $d004 + ld a, [hl] + cp $ff + jr nz, .asm_4abbe + dec hl + ld a, [hl] + cp $ff + jr nz, .asm_4abbe + dec hl + ld a, [hl] + cp $ff + jr nz, .asm_4abbe + and a + ret + +.asm_4abbe + ld a, $ff + ld [hl], a + scf + ret +; 4abc3 + +Function4abc3: ; 4abc3 + bit 3, a + jr z, .asm_4abd5 + ld a, [PartyCount] + inc a + ld [$cfa9], a + ld a, $1 + ld [$cfaa], a + jr .asm_4ac29 + +.asm_4abd5 + bit 6, a + jr z, .asm_4abeb + ld a, [$cfa9] + ld [$cfa9], a + and a + jr nz, .asm_4ac29 + ld a, [PartyCount] + inc a + ld [$cfa9], a + jr .asm_4ac29 + +.asm_4abeb + bit 7, a + jr z, .asm_4ac08 + ld a, [$cfa9] + ld [$cfa9], a + ld a, [PartyCount] + inc a + inc a + ld b, a + ld a, [$cfa9] + cp b + jr nz, .asm_4ac29 + ld a, $1 + ld [$cfa9], a + jr .asm_4ac29 + +.asm_4ac08 + bit 4, a + jr nz, .asm_4ac10 + bit 5, a + jr z, .asm_4ac56 + +.asm_4ac10 + ld a, [$cfa9] + ld b, a + ld a, [PartyCount] + inc a + cp b + jr nz, .asm_4ac29 + ld a, [$cfaa] + cp $1 + jr z, .asm_4ac26 + ld a, $1 + jr .asm_4ac29 + +.asm_4ac26 + ld [$cfaa], a + +.asm_4ac29 + ld hl, $c4b4 + ld bc, $0d01 + call ClearBox + call Function4aab6 + ld a, [PartyCount] + ld hl, $c4ba +.asm_4ac3b + ld bc, $0028 + add hl, bc + dec a + jr nz, .asm_4ac3b + ld [hl], $7f + ld a, [$cfa9] + ld b, a + ld a, [PartyCount] + inc a + cp b + jr z, .asm_4ac54 + ld a, $1 + ld [$cfaa], a + +.asm_4ac54 + scf + ret + +.asm_4ac56 + and a + ret +; 4ac58 + +Function4ac58: ; 4ac58 + ld bc, $0212 + ld hl, $c5cd + call ClearBox + callba Function8ea4a + ld hl, $6ca2 + call LoadMenuDataHeader + ld hl, $d019 + bit 1, [hl] + jr z, .asm_4ac89 + ld hl, $c5af + ld b, $3 + ld c, $7 + call TextBox + ld hl, $c5c5 + ld de, $6da7 + call PlaceString + jr .asm_4ac96 + +.asm_4ac89 + ld hl, $c55f + ld b, $7 + ld c, $7 + call TextBox + call Function4ad68 + +.asm_4ac96 + ld a, $1 + ld [hBGMapMode], a + call Function4acaa + call Function1c07 + and a + ret +; 4aca2 + +INCBIN "baserom.gbc", $4aca2, $4acaa - $4aca2 + +Function4acaa: ; 4acaa +.asm_4acaa + ld a, $a0 + ld [$cf91], a + ld a, [$d019] + bit 1, a + jr z, .asm_4acc2 + ld a, $2 + ld [$cf92], a + ld a, $c + ld [$cf82], a + jr .asm_4accc + +.asm_4acc2 + ld a, $4 + ld [$cf92], a + ld a, $8 + ld [$cf82], a + +.asm_4accc + ld a, $b + ld [$cf83], a + ld a, $1 + ld [$cf88], a + call Function1c10 + ld hl, $cfa5 + set 6, [hl] + call Function1bc9 + ld de, $0008 + call StartSFX + ld a, [hJoyPressed] + bit 0, a + jr nz, .asm_4acf4 + bit 1, a + jr nz, .asm_4acf3 + jr .asm_4acaa + +.asm_4acf3 + ret + +.asm_4acf4 + ld a, [$d019] + bit 1, a + jr nz, .asm_4ad0e + ld a, [$cfa9] + cp $1 + jr z, Function4ad17 + cp $2 + jp z, Function4ad56 + cp $3 + jp z, Function4ad60 + jr .asm_4acf3 + +.asm_4ad0e + ld a, [$cfa9] + cp $1 + jr z, Function4ad56 + jr .asm_4acf3 + +Function4ad17: ; 4ad17 + call Function4adb2 + jr z, .asm_4ad4a + ld hl, DefaultFlypoint + ld a, $ff + cp [hl] + jr z, .asm_4ad39 + inc hl + cp [hl] + jr z, .asm_4ad39 + inc hl + cp [hl] + jr z, .asm_4ad39 + ld de, $0019 + call WaitPlaySFX + ld hl, UnknownText_0x4ad51 + call PrintText + ret + +.asm_4ad39 + ld a, [CurPartyMon] + ld [hl], a + call Function4a9c3 + ret c + ld a, [$d019] + set 0, a + ld [$d019], a + ret + +.asm_4ad4a + ld a, $ff + ld [hl], a + call Function4adc2 + ret + +UnknownText_0x4ad51: ; 0x4ad51 + ; Only three #MON may enter. + text_jump UnknownText_0x1c521c, BANK(UnknownText_0x1c521c) + db "@" +; 0x4ad56 + +Function4ad56: ; 4ad56 + callba OpenPartyStats + call Function3200 + ret +; 4ad60 + +Function4ad60: ; 4ad60 + callba Function12fba + ret +; 4ad67 + +INCBIN "baserom.gbc", $4ad67, $4ad68 - $4ad67 + +Function4ad68: ; 4ad68 + ld hl, $c59d + ld de, $6d88 + call PlaceString + call Function4adb2 + jr c, .asm_4ad7e + ld hl, $c575 + ld de, $6da0 + jr .asm_4ad84 + +.asm_4ad7e + ld hl, $c575 + ld de, $6d9a + +.asm_4ad84 + call PlaceString + ret +; 4ad88 + +INCBIN "baserom.gbc", $4ad88, $4adb2 - $4ad88 + +Function4adb2: ; 4adb2 + ld hl, DefaultFlypoint + ld a, [CurPartyMon] + cp [hl] + ret z + inc hl + cp [hl] + ret z + inc hl + cp [hl] + ret z + scf + ret +; 4adc2 + +Function4adc2: ; 4adc2 + ld a, [DefaultFlypoint] + cp $ff + jr nz, .asm_4ade5 + ld a, [$d003] + cp $ff + jr nz, .asm_4addd + ld a, [$d004] + ld [DefaultFlypoint], a + ld a, $ff + ld [$d004], a + jr .asm_4ade5 + +.asm_4addd + ld [DefaultFlypoint], a + ld a, $ff + ld [$d003], a + +.asm_4ade5 + ld a, [$d003] + cp $ff + ret nz + ld b, a + ld a, [$d004] + ld [$d003], a + ld a, b + ld [$d004], a + ret +; 4adf7 + +Function4adf7: ; 4adf7 + ld a, [$d019] + bit 0, a + ret z + ld a, [PartyCount] + inc a + ld [$cfa9], a + ld a, $1 + ld [$cfaa], a + ld a, [$d019] + res 0, a + ld [$d019], a + ret +; 4ae12 + +Function4ae12: ; 4ae12 + call Function4ae1f + ld a, $0 + jr c, .asm_4ae1b + ld a, $1 + +.asm_4ae1b + ld [ScriptVar], a + ret +; 4ae1f + +Function4ae1f: ; 4ae1f + ld bc, $0e07 + push bc + ld hl, MenuDataHeader_0x1e1d + call Function1d3c + pop bc + ld a, b + ld [$cf83], a + add $5 + ld [$cf85], a + ld a, c + ld [$cf82], a + add $4 + ld [$cf84], a + call Function1c00 + call Function1d81 + push af + ld c, $f + call DelayFrames + call Function4ae5e + pop af + jr c, .asm_4ae57 + ld a, [$cfa9] + cp $2 + jr z, .asm_4ae57 + and a + ret + +.asm_4ae57 + ld a, $2 + ld [$cfa9], a + scf + ret +; 4ae5e + +Function4ae5e: ; 4ae5e + ld a, [hOAMUpdate] + push af + call Function1c07 + call Function1ad2 + xor a + ld [hOAMUpdate], a + call DelayFrame + ld a, $1 + ld [hOAMUpdate], a + call Function321c + pop af + ld [hOAMUpdate], a + ret +; 4ae78 SECTION "bank13",ROMX,BANK[$13] @@ -48698,7 +51881,7 @@ Function4c000: ; 4c000 push hl srl a jr c, .asm_4c021 - ld hl, TileSetPalettes + ld hl, TilesetPalettes add [hl] ld l, a ld a, [$d1e7] @@ -48709,7 +51892,7 @@ Function4c000: ; 4c000 jr .asm_4c031 .asm_4c021 - ld hl, TileSetPalettes + ld hl, TilesetPalettes add [hl] ld l, a ld a, [$d1e7] @@ -48741,7 +51924,7 @@ Function4c03f: ; 4c03f push hl srl a jr c, .asm_4c05b - ld hl, TileSetPalettes + ld hl, TilesetPalettes add [hl] ld l, a ld a, [$d1e7] @@ -48752,7 +51935,7 @@ Function4c03f: ; 4c03f jr .asm_4c06b .asm_4c05b - ld hl, TileSetPalettes + ld hl, TilesetPalettes add [hl] ld l, a ld a, [$d1e7] @@ -48774,134 +51957,8 @@ Function4c03f: ; 4c03f ; 4c075 -Tileset03PalMap: ; 0x4c075 -INCBIN "tilesets/03_palette_map.bin" -; 0x4c0e5 - -Tileset00PalMap: ; 0x4c0e5 -Tileset01PalMap: ; 0x4c0e5 -INCBIN "tilesets/01_palette_map.bin" -; 0x4c155 - -Tileset02PalMap: ; 0x4c155 -INCBIN "tilesets/02_palette_map.bin" -; 0x4c1c5 - -Tileset05PalMap: ; 0x4c1c5 -INCBIN "tilesets/05_palette_map.bin" -; 0x4c235 - -Tileset06PalMap: ; 0x4c235 -INCBIN "tilesets/06_palette_map.bin" -; 0x4c2a5 - -Tileset07PalMap: ; 0x4c2a5 -INCBIN "tilesets/07_palette_map.bin" -; 0x4c315 - -Tileset08PalMap: ; 0x4c315 -INCBIN "tilesets/08_palette_map.bin" -; 0x4c385 - -Tileset09PalMap: ; 0x4c385 -INCBIN "tilesets/09_palette_map.bin" -; 0x4c3f5 - -Tileset10PalMap: ; 0x4c3f5 -INCBIN "tilesets/10_palette_map.bin" -; 0x4c465 - -Tileset11PalMap: ; 0x4c465 -INCBIN "tilesets/11_palette_map.bin" -; 0x4c4d5 - -Tileset12PalMap: ; 0x4c4d5 -INCBIN "tilesets/12_palette_map.bin" -; 0x4c545 +INCLUDE "tilesets/palette_maps.asm" -Tileset13PalMap: ; 0x4c545 -INCBIN "tilesets/13_palette_map.bin" -; 0x4c5b5 - -Tileset14PalMap: ; 0x4c5b5 -INCBIN "tilesets/14_palette_map.bin" -; 0x4c625 - -Tileset15PalMap: ; 0x4c625 -INCBIN "tilesets/15_palette_map.bin" -; 0x4c695 - -Tileset16PalMap: ; 0x4c695 -INCBIN "tilesets/16_palette_map.bin" -; 0x4c705 - -Tileset23PalMap: ; 0x4c705 -INCBIN "tilesets/23_palette_map.bin" -; 0x4c775 - -Tileset24PalMap: ; 0x4c775 -Tileset30PalMap: ; 0x4c775 -INCBIN "tilesets/30_palette_map.bin" -; 0x4c7e5 - -Tileset25PalMap: ; 0x4c7e5 -INCBIN "tilesets/25_palette_map.bin" -; 0x4c855 - -Tileset26PalMap: ; 0x4c855 -Tileset32PalMap: ; 0x4c855 -Tileset33PalMap: ; 0x4c855 -Tileset34PalMap: ; 0x4c855 -Tileset35PalMap: ; 0x4c855 -Tileset36PalMap: ; 0x4c855 -INCBIN "tilesets/36_palette_map.bin" -; 0x4c8c5 - -Tileset27PalMap: ; 0x4c8c5 -INCBIN "tilesets/27_palette_map.bin" -; 0x4c935 - -Tileset17PalMap: ; 0x4c935 -INCBIN "tilesets/17_palette_map.bin" -; 0x4c9a5 - -Tileset28PalMap: ; 0x4c9a5 -INCBIN "tilesets/28_palette_map.bin" -; 0x4ca15 - -Tileset18PalMap: ; 0x4ca15 -INCBIN "tilesets/18_palette_map.bin" -; 0x4ca85 - -Tileset19PalMap: ; 0x4ca85 -INCBIN "tilesets/19_palette_map.bin" -; 0x4caf5 - -Tileset20PalMap: ; 0x4caf5 -INCBIN "tilesets/20_palette_map.bin" -; 0x4cb65 - -INCBIN "baserom.gbc", $4cb65, $4cbd5-$4cb65 - -Tileset29PalMap: ; 0x4cbd5 -INCBIN "tilesets/29_palette_map.bin" -; 0x4cc45 - -Tileset31PalMap: ; 0x4cc45 -INCBIN "tilesets/31_palette_map.bin" -; 0x4ccb5 - -Tileset21PalMap: ; 0x4ccb5 -INCBIN "tilesets/21_palette_map.bin" -; 0x4cd25 - -Tileset22PalMap: ; 0x4cd25 -INCBIN "tilesets/22_palette_map.bin" -; 0x4cd95 - -Tileset04PalMap: ; 0x4cd95 -INCBIN "tilesets/04_palette_map.bin" -; 0x4ce05 INCBIN "baserom.gbc", $4ce05, $4ce1f - $4ce05 @@ -49192,7 +52249,34 @@ Function4d1cb: ; 4d1cb ret ; 4d249 -INCBIN "baserom.gbc", $4d249, $4d35b - $4d249 +INCBIN "baserom.gbc", $4d249, $4d319 - $4d249 + +Function4d319: ; 4d319 + ld a, [$cfa9] + dec a + ld [CurPartyMon], a + call LowVolume + ld a, $25 + call Predef + ld a, [CurPartyMon] + inc a + ld [$cfa9], a + call Functionfdb + call WhiteBGMap + call MaxVolume + callba Function28ef8 + callba Function4d354 + callba Function16d673 + callba Function28eff + call Function3200 + ret +; 4d354 + +Function4d354: ; 4d354 + call WaitBGMap + call Function3200 + ret +; 4d35b Function4d35b: ; 4d35b @@ -49538,306 +52622,100 @@ Function4d54c: ; 4d54c INCBIN "baserom.gbc", $4d580, $4d596 - $4d580 Tilesets: +INCLUDE "tilesets/tileset_headers.asm" -Tileset00: ; 0x4d596 - dbw BANK(Tileset00GFX), Tileset00GFX - dbw BANK(Tileset00Meta), Tileset00Meta - dbw BANK(Tileset00Coll), Tileset00Coll - dw Tileset00Anim - dw $0000 - dw Tileset00PalMap - -Tileset01: ; 0x4d5a5 - dbw BANK(Tileset01GFX), Tileset01GFX - dbw BANK(Tileset01Meta), Tileset01Meta - dbw BANK(Tileset01Coll), Tileset01Coll - dw Tileset01Anim - dw $0000 - dw Tileset01PalMap - -Tileset02: ; 0x4d5b4 - dbw BANK(Tileset02GFX), Tileset02GFX - dbw BANK(Tileset02Meta), Tileset02Meta - dbw BANK(Tileset02Coll), Tileset02Coll - dw Tileset02Anim - dw $0000 - dw Tileset02PalMap - -Tileset03: ; 0x4d5c3 - dbw BANK(Tileset03GFX), Tileset03GFX - dbw BANK(Tileset03Meta), Tileset03Meta - dbw BANK(Tileset03Coll), Tileset03Coll - dw Tileset03Anim - dw $0000 - dw Tileset03PalMap - -Tileset04: ; 0x4d5d2 - dbw BANK(Tileset04GFX), Tileset04GFX - dbw BANK(Tileset04Meta), Tileset04Meta - dbw BANK(Tileset04Coll), Tileset04Coll - dw Tileset04Anim - dw $0000 - dw Tileset04PalMap - -Tileset05: ; 0x4d5e1 - dbw BANK(Tileset05GFX), Tileset05GFX - dbw BANK(Tileset05Meta), Tileset05Meta - dbw BANK(Tileset05Coll), Tileset05Coll - dw Tileset05Anim - dw $0000 - dw Tileset05PalMap - -Tileset06: ; 0x4d5f0 - dbw BANK(Tileset06GFX), Tileset06GFX - dbw BANK(Tileset06Meta), Tileset06Meta - dbw BANK(Tileset06Coll), Tileset06Coll - dw Tileset06Anim - dw $0000 - dw Tileset06PalMap - -Tileset07: ; 0x4d5ff - dbw BANK(Tileset07GFX), Tileset07GFX - dbw BANK(Tileset07Meta), Tileset07Meta - dbw BANK(Tileset07Coll), Tileset07Coll - dw Tileset07Anim - dw $0000 - dw Tileset07PalMap - -Tileset08: ; 0x4d60e - dbw BANK(Tileset08GFX), Tileset08GFX - dbw BANK(Tileset08Meta), Tileset08Meta - dbw BANK(Tileset08Coll), Tileset08Coll - dw Tileset08Anim - dw $0000 - dw Tileset08PalMap -Tileset09: ; 0x4d61d - dbw BANK(Tileset09GFX), Tileset09GFX - dbw BANK(Tileset09Meta), Tileset09Meta - dbw BANK(Tileset09Coll), Tileset09Coll - dw Tileset09Anim - dw $0000 - dw Tileset09PalMap +FlagPredef: ; 4d7c1 +; Perform action b on flag c in flag array hl. +; If checking a flag, check flag array d:hl unless d is 0. -Tileset10: ; 0x4d62c - dbw BANK(Tileset10GFX), Tileset10GFX - dbw BANK(Tileset10Meta), Tileset10Meta - dbw BANK(Tileset10Coll), Tileset10Coll - dw Tileset10Anim - dw $0000 - dw Tileset10PalMap - -Tileset11: ; 0x4d63b - dbw BANK(Tileset11GFX), Tileset11GFX - dbw BANK(Tileset11Meta), Tileset11Meta - dbw BANK(Tileset11Coll), Tileset11Coll - dw Tileset11Anim - dw $0000 - dw Tileset11PalMap +; For longer flag arrays, see FlagAction. -Tileset12: ; 0x4d64a - dbw BANK(Tileset12GFX), Tileset12GFX - dbw BANK(Tileset12Meta), Tileset12Meta - dbw BANK(Tileset12Coll), Tileset12Coll - dw Tileset12Anim - dw $0000 - dw Tileset12PalMap - -Tileset13: ; 0x4d659 - dbw BANK(Tileset13GFX), Tileset13GFX - dbw BANK(Tileset13Meta), Tileset13Meta - dbw BANK(Tileset13Coll), Tileset13Coll - dw Tileset13Anim - dw $0000 - dw Tileset13PalMap - -Tileset14: ; 0x4d668 - dbw BANK(Tileset14GFX), Tileset14GFX - dbw BANK(Tileset14Meta), Tileset14Meta - dbw BANK(Tileset14Coll), Tileset14Coll - dw Tileset14Anim - dw $0000 - dw Tileset14PalMap - -Tileset15: ; 0x4d677 - dbw BANK(Tileset15GFX), Tileset15GFX - dbw BANK(Tileset15Meta), Tileset15Meta - dbw BANK(Tileset15Coll), Tileset15Coll - dw Tileset15Anim - dw $0000 - dw Tileset15PalMap - -Tileset16: ; 0x4d686 - dbw BANK(Tileset16GFX), Tileset16GFX - dbw BANK(Tileset16Meta), Tileset16Meta - dbw BANK(Tileset16Coll), Tileset16Coll - dw Tileset16Anim - dw $0000 - dw Tileset16PalMap - -Tileset17: ; 0x4d695 - dbw BANK(Tileset17GFX), Tileset17GFX - dbw BANK(Tileset17Meta), Tileset17Meta - dbw BANK(Tileset17Coll), Tileset17Coll - dw Tileset17Anim - dw $0000 - dw Tileset17PalMap - -Tileset18: ; 0x4d6a4 - dbw BANK(Tileset18GFX), Tileset18GFX - dbw BANK(Tileset18Meta), Tileset18Meta - dbw BANK(Tileset18Coll), Tileset18Coll - dw Tileset18Anim - dw $0000 - dw Tileset18PalMap - -Tileset19: ; 0x4d6b3 - dbw BANK(Tileset19GFX), Tileset19GFX - dbw BANK(Tileset19Meta), Tileset19Meta - dbw BANK(Tileset19Coll), Tileset19Coll - dw Tileset19Anim - dw $0000 - dw Tileset19PalMap - -Tileset20: ; 0x4d6c2 - dbw BANK(Tileset20GFX), Tileset20GFX - dbw BANK(Tileset20Meta), Tileset20Meta - dbw BANK(Tileset20Coll), Tileset20Coll - dw Tileset20Anim - dw $0000 - dw Tileset20PalMap - -Tileset21: ; 0x4d6d1 - dbw BANK(Tileset21GFX), Tileset21GFX - dbw BANK(Tileset21Meta), Tileset21Meta - dbw BANK(Tileset21Coll), Tileset21Coll - dw Tileset21Anim - dw $0000 - dw Tileset21PalMap - -Tileset22: ; 0x4d6e0 - dbw BANK(Tileset22GFX), Tileset22GFX - dbw BANK(Tileset22Meta), Tileset22Meta - dbw BANK(Tileset22Coll), Tileset22Coll - dw Tileset22Anim - dw $0000 - dw Tileset22PalMap - -Tileset23: ; 0x4d6ef - dbw BANK(Tileset23GFX), Tileset23GFX - dbw BANK(Tileset23Meta), Tileset23Meta - dbw BANK(Tileset23Coll), Tileset23Coll - dw Tileset23Anim - dw $0000 - dw Tileset23PalMap - -Tileset24: ; 0x4d6fe - dbw BANK(Tileset24GFX), Tileset24GFX - dbw BANK(Tileset24Meta), Tileset24Meta - dbw BANK(Tileset24Coll), Tileset24Coll - dw Tileset24Anim - dw $0000 - dw Tileset24PalMap - -Tileset25: ; 0x4d70d - dbw BANK(Tileset25GFX), Tileset25GFX - dbw BANK(Tileset25Meta), Tileset25Meta - dbw BANK(Tileset25Coll), Tileset25Coll - dw Tileset25Anim - dw $0000 - dw Tileset25PalMap - -Tileset26: ; 0x4d71c - dbw BANK(Tileset26GFX), Tileset26GFX - dbw BANK(Tileset26Meta), Tileset26Meta - dbw BANK(Tileset26Coll), Tileset26Coll - dw Tileset26Anim - dw $0000 - dw Tileset26PalMap + push hl + push bc -Tileset27: ; 0x4d72b - dbw BANK(Tileset27GFX), Tileset27GFX - dbw BANK(Tileset27Meta), Tileset27Meta - dbw BANK(Tileset27Coll), Tileset27Coll - dw Tileset27Anim - dw $0000 - dw Tileset27PalMap +; Divide by 8 to get the byte we want. + push bc + srl c + srl c + srl c + ld b, 0 + add hl, bc + pop bc -Tileset28: ; 0x4d73a - dbw BANK(Tileset28GFX), Tileset28GFX - dbw BANK(Tileset28Meta), Tileset28Meta - dbw BANK(Tileset28Coll), Tileset28Coll - dw Tileset28Anim - dw $0000 - dw Tileset28PalMap +; Which bit we want from the byte + ld a, c + and 7 + ld c, a -Tileset29: ; 0x4d749 - dbw BANK(Tileset29GFX), Tileset29GFX - dbw BANK(Tileset29Meta), Tileset29Meta - dbw BANK(Tileset29Coll), Tileset29Coll - dw Tileset29Anim - dw $0000 - dw Tileset29PalMap +; Shift left until we can mask the bit + ld a, 1 + jr z, .shifted +.shift + add a + dec c + jr nz, .shift +.shifted + ld c, a -Tileset30: ; 0x4d758 - dbw BANK(Tileset30GFX), Tileset30GFX - dbw BANK(Tileset30Meta), Tileset30Meta - dbw BANK(Tileset30Coll), Tileset30Coll - dw Tileset30Anim - dw $0000 - dw Tileset30PalMap +; What are we doing to this flag? + dec b + jr z, .set ; 1 + dec b + jr z, .check ; 2 -Tileset31: ; 0x4d767 - dbw BANK(Tileset31GFX), Tileset31GFX - dbw BANK(Tileset31Meta), Tileset31Meta - dbw BANK(Tileset31Coll), Tileset31Coll - dw Tileset31Anim - dw $0000 - dw Tileset31PalMap +.reset + ld a, c + cpl + and [hl] + ld [hl], a + jr .done -Tileset32: ; 0x4d776 - dbw BANK(Tileset32GFX), Tileset32GFX - dbw BANK(Tileset32Meta), Tileset32Meta - dbw BANK(Tileset32Coll), Tileset32Coll - dw Tileset32Anim - dw $0000 - dw Tileset32PalMap +.set + ld a, [hl] + or c + ld [hl], a + jr .done -Tileset33: ; 0x4d785 - dbw BANK(Tileset33GFX), Tileset33GFX - dbw BANK(Tileset33Meta), Tileset33Meta - dbw BANK(Tileset33Coll), Tileset33Coll - dw Tileset33Anim - dw $0000 - dw Tileset33PalMap +.check + ld a, d + cp 0 + jr nz, .farcheck -Tileset34: ; 0x4d794 - dbw BANK(Tileset34GFX), Tileset34GFX - dbw BANK(Tileset34Meta), Tileset34Meta - dbw BANK(Tileset34Coll), Tileset34Coll - dw Tileset34Anim - dw $0000 - dw Tileset34PalMap + ld a, [hl] + and c + jr .done -Tileset35: ; 0x4d7a3 - dbw BANK(Tileset35GFX), Tileset35GFX - dbw BANK(Tileset35Meta), Tileset35Meta - dbw BANK(Tileset35Coll), Tileset35Coll - dw Tileset35Anim - dw $0000 - dw Tileset35PalMap +.farcheck + call GetFarByte + and c -Tileset36: ; 0x4d7b2 - dbw BANK(Tileset36GFX), Tileset36GFX - dbw BANK(Tileset36Meta), Tileset36Meta - dbw BANK(Tileset36Coll), Tileset36Coll - dw Tileset36Anim - dw $0000 - dw Tileset36PalMap +.done + pop bc + pop hl + ld c, a + ret +; 4d7fd -; 0x4d7c1 +Function4d7fd: ; 4d7fd + ld a, [PlayerLightScreenCount] + ld hl, $c72f + ld de, VTiles2 + push de + push af + ld a, $2d + call Predef + pop af + ld [CurPartySpecies], a + ld [CurSpecies], a + call GetBaseData + pop de + ld a, $3e + call Predef + ret +; 4d81e -INCBIN "baserom.gbc", $4d7c1, $4d860 - $4d7c1 +INCBIN "baserom.gbc", $4d81e, $4d860 - $4d81e CheckPokerus: ; 4d860 ; Return carry if a monster in your party has Pokerus @@ -49866,7 +52744,365 @@ CheckPokerus: ; 4d860 ret ; 4d87a -INCBIN "baserom.gbc", $4d87a, $4db3b - $4d87a +Function4d87a: ; 4d87a + xor a + ld [ScriptVar], a + ld [$d265], a + ld a, [PartyCount] + and a + ret z + ld d, a + ld hl, PartyMon1ID + ld bc, PartySpecies +.asm_4d88d + ld a, [bc] + inc bc + cp $fd + call nz, Function4d939 + push bc + ld bc, $0030 + add hl, bc + pop bc + dec d + jr nz, .asm_4d88d + ld a, $1 + call GetSRAMBank + ld a, [BoxCount] + and a + jr z, .asm_4d8c8 + ld d, a + ld hl, BoxMon1ID + ld bc, BoxSpecies +.asm_4d8af + ld a, [bc] + inc bc + cp $fd + jr z, .asm_4d8bf + call Function4d939 + jr nc, .asm_4d8bf + ld a, $1 + ld [$d265], a + +.asm_4d8bf + push bc + ld bc, $0020 + add hl, bc + pop bc + dec d + jr nz, .asm_4d8af + +.asm_4d8c8 + call CloseSRAM + ld c, $0 +.asm_4d8cd + ld a, [$db72] + and $f + cp c + jr z, .asm_4d90b + ld hl, $599f + ld b, $0 + add hl, bc + add hl, bc + add hl, bc + ld a, [hli] + call GetSRAMBank + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hl] + and a + jr z, .asm_4d90b + push bc + ld b, h + ld c, l + inc bc + ld de, $001c + add hl, de + ld d, a +.asm_4d8f1 + ld a, [bc] + inc bc + cp $fd + jr z, .asm_4d901 + call Function4d939 + jr nc, .asm_4d901 + ld a, $1 + ld [$d265], a + +.asm_4d901 + push bc + ld bc, $0020 + add hl, bc + pop bc + dec d + jr nz, .asm_4d8f1 + pop bc + +.asm_4d90b + inc c + ld a, c + cp $e + jr c, .asm_4d8cd + call CloseSRAM + ld a, [ScriptVar] + and a + ret z + callba Function1060cd + ld a, [$d265] + and a + push af + ld a, [CurPartySpecies] + ld [$d265], a + call GetPokemonName + ld hl, $59c9 + pop af + jr z, .asm_4d936 + ld hl, $59ce + +.asm_4d936 + jp PrintText +; 4d939 + +Function4d939: ; 4d939 + push bc + push de + push hl + ld d, h + ld e, l + ld hl, Buffer1 + ld bc, $8205 + call PrintNum + ld hl, DefaultFlypoint + ld de, $dc9f + ld bc, $8205 + call PrintNum + ld b, $5 + ld c, $0 + ld hl, EndFlypoint + ld de, $d1ee +.asm_4d95d + ld a, [de] + cp [hl] + jr nz, .asm_4d967 + dec de + dec hl + inc c + dec b + jr nz, .asm_4d95d + +.asm_4d967 + pop hl + push hl + ld de, $fffa + add hl, de + ld a, [hl] + pop hl + pop de + push af + ld a, c + ld b, $1 + cp $5 + jr z, .asm_4d984 + ld b, $2 + cp $3 + jr nc, .asm_4d984 + ld b, $3 + cp $2 + jr nz, .asm_4d99b + +.asm_4d984 + inc b + ld a, [ScriptVar] + and a + jr z, .asm_4d98e + cp b + jr c, .asm_4d99b + +.asm_4d98e + dec b + ld a, b + ld [ScriptVar], a + pop bc + ld a, b + ld [CurPartySpecies], a + pop bc + scf + ret + +.asm_4d99b + pop bc + pop bc + and a + ret +; 4d99f + +INCBIN "baserom.gbc", $4d99f, $4d9d3 - $4d99f + +Function4d9d3: ; 4d9d3 + ld hl, StringBuffer3 + ld de, $dc9f + ld bc, $8205 + call PrintNum + ld a, $50 + ld [$d09e], a + ret +; 4d9e5 + +Function4d9e5: ; 4d9e5 + ld a, [$df9c] + and a + jp z, Function4db35 + ld [CurPartySpecies], a + ld [CurSpecies], a + call GetBaseData + ld hl, PartyCount + ld a, [hl] + cp $6 + jp nc, Function4daa3 + inc a + ld [hl], a + ld c, a + ld b, $0 + add hl, bc + ld a, [$df9c] + ld [hli], a + ld [CurSpecies], a + ld a, $ff + ld [hl], a + ld hl, PartyMon1Species + ld a, [PartyCount] + dec a + ld bc, $0030 + call AddNTimes + ld d, h + ld e, l + ld hl, $df9c + ld bc, $0030 + call CopyBytes + ld a, [PartyCount] + dec a + ld hl, PartyMon1OT + call SkipNames + ld d, h + ld e, l + ld hl, PlayerName + call CopyBytes + ld a, [CurPartySpecies] + ld [$d265], a + call GetPokemonName + ld hl, StringBuffer1 + ld de, $d050 + ld bc, $000b + call CopyBytes + call Function4db3b + jr c, .asm_4da66 + ld a, [PartyCount] + dec a + ld [CurPartyMon], a + xor a + ld [MonType], a + ld de, $d050 + callab Functione3de + +.asm_4da66 + ld a, [PartyCount] + dec a + ld hl, PartyMon1Nickname + call SkipNames + ld d, h + ld e, l + ld hl, $d050 + call CopyBytes + ld a, [PartyCount] + dec a + ld hl, PartyMon1Level + call GetPartyLocation + ld a, [hl] + ld [CurPartyLevel], a + call Function4db49 + ld a, [PartyCount] + dec a + ld hl, PartyMon1CaughtLocation + call GetPartyLocation + ld a, [hl] + and $80 + ld b, $13 + or b + ld [hl], a + xor a + ld [$df9c], a + and a + ld [ScriptVar], a + ret +; 4daa3 + +Function4daa3: ; 4daa3 + ld a, $1 + call GetSRAMBank + ld hl, BoxCount + ld a, [hl] + cp $14 + call CloseSRAM + jr nc, .asm_4db08 + xor a + ld [CurPartyMon], a + ld hl, $df9c + ld de, $d018 + ld bc, $0020 + call CopyBytes + ld hl, PlayerName + ld de, $d00d + ld bc, $000b + call CopyBytes + callab Function51322 + ld a, [CurPartySpecies] + ld [$d265], a + call GetPokemonName + call Function4db3b + ld hl, StringBuffer1 + jr c, .asm_4daf7 + ld a, $2 + ld [MonType], a + ld de, $d050 + callab Functione3de + ld hl, $d050 + +.asm_4daf7 + ld a, $1 + call GetSRAMBank + ld de, BoxMon1Nickname + ld bc, $000b + call CopyBytes + call CloseSRAM + +.asm_4db08 + ld a, $1 + call GetSRAMBank + ld a, [BoxMon1Level] + ld [CurPartyLevel], a + call CloseSRAM + call Function4db83 + ld a, $1 + call GetSRAMBank + ld hl, BoxMon1CaughtLocation + ld a, [hl] + and $80 + ld b, $13 + or b + ld [hl], a + call CloseSRAM + xor a + ld [$df9c], a + ld a, $1 + ld [ScriptVar], a + ret +; 4db35 + +Function4db35: ; 4db35 + ld a, $2 + ld [ScriptVar], a + ret +; 4db3b Function4db3b: ; 4db3b @@ -49918,7 +53154,7 @@ Function4db49: ; 4db49 Function4db83: ; 4db83 ld a, $1 call GetSRAMBank - ld hl, $ad43 + ld hl, BoxMon1CaughtLevel call $5b53 call CloseSRAM ret @@ -49928,7 +53164,7 @@ Function4db92: ; 4db92 push bc ld a, $1 call GetSRAMBank - ld hl, $ad43 + ld hl, BoxMon1CaughtLevel pop bc call $5baf call CloseSRAM @@ -49951,7 +53187,146 @@ Function4dba3: ; 4dba3 ret ; 4dbb8 -INCBIN "baserom.gbc", $4dbb8, $4dc8a - $4dbb8 +INCBIN "baserom.gbc", $4dbb8, $4dbd2 - $4dbb8 + +Function4dbd2: ; 4dbd2 + ld hl, PartyMon1Level + call Function4dc31 + ret +; 4dbd9 + +Function4dbd9: ; 4dbd9 + ld hl, PartyMon1Happiness + call Function4dc0a + ret +; 4dbe0 + +Function4dbe0: ; 4dbe0 + ld hl, PartyMon1Species + jp Function4dc56 +; 4dbe6 + +Function4dbe6: ; 4dbe6 + ld hl, PartyMon1Species + call Function4dc56 + ret z + ld a, c + ld hl, PartyMon1ID + ld bc, $0030 + call AddNTimes + ld a, [PlayerID] + cp [hl] + jr nz, .asm_4dc08 + inc hl + ld a, [$d47c] + cp [hl] + jr nz, .asm_4dc08 + ld a, $1 + and a + ret + +.asm_4dc08 + xor a + ret +; 4dc0a + +Function4dc0a: ; 4dc0a + ld c, $0 + ld a, [PartyCount] + ld d, a +.asm_4dc10 + ld a, d + dec a + push hl + push bc + ld bc, $0030 + call AddNTimes + pop bc + ld a, b + cp [hl] + pop hl + jr z, .asm_4dc22 + jr nc, .asm_4dc26 + +.asm_4dc22 + ld a, c + or $1 + ld c, a + +.asm_4dc26 + sla c + dec d + jr nz, .asm_4dc10 + call Function4dc67 + ld a, c + and a + ret +; 4dc31 + +Function4dc31: ; 4dc31 + ld c, $0 + ld a, [PartyCount] + ld d, a +.asm_4dc37 + ld a, d + dec a + push hl + push bc + ld bc, $0030 + call AddNTimes + pop bc + ld a, b + cp [hl] + pop hl + jr c, .asm_4dc4b + ld a, c + or $1 + ld c, a + +.asm_4dc4b + sla c + dec d + jr nz, .asm_4dc37 + call Function4dc67 + ld a, c + and a + ret +; 4dc56 + +Function4dc56: ; 4dc56 + ld c, $ff + ld hl, PartySpecies +.asm_4dc5b + ld a, [hli] + cp $ff + ret z + inc c + cp b + jr nz, .asm_4dc5b + ld a, $1 + and a + ret +; 4dc67 + +Function4dc67: ; 4dc67 + ld e, $fe + ld hl, PartySpecies +.asm_4dc6c + ld a, [hli] + cp $ff + ret z + cp $fd + jr nz, .asm_4dc77 + ld a, c + and e + ld c, a + +.asm_4dc77 + rlc e + jr .asm_4dc6c +; 4dc7b + +INCBIN "baserom.gbc", $4dc7b, $4dc8a - $4dc7b StatsScreenInit: ; 4dc8a ld hl, StatsScreenMain @@ -50017,14 +53392,14 @@ StatsScreenMain: ; 0x4dcd2 INCBIN "baserom.gbc", $4dcf7, $4dd2a - $4dcf7 StatsScreenPointerTable: ; 4dd2a - dw $5d72 ; regular pokémon - dw EggStatsInit ; egg - dw $5de6 - dw $5dac - dw $5dc6 - dw $5de6 - dw $5dd6 - dw $5d6c + dw $5d72 ; regular pokémon + dw EggStatsInit ; egg + dw $5de6 + dw $5dac + dw $5dc6 + dw $5de6 + dw $5dd6 + dw $5d6c ; 4dd3a @@ -50041,10 +53416,10 @@ EggStatsInit: ; 4dda1 INCBIN "baserom.gbc", $4ddac, $4e21e - $4ddac IDNoString: ; 4e21e - db $73, "№.@" + db $73, "№.@" OTString: ; 4e222 - db "OT/@" + db "OT/@" ; 4e226 INCBIN "baserom.gbc", $4e226, $4e33a - $4e226 @@ -50106,22 +53481,22 @@ EggStatsScreen: ; 4e33a ; 0x4e3c0 EggString: ; 4e3c0 - db "EGG@" + db "EGG@" FiveQMarkString: ; 4e3c4 - db "?????@" + db "?????@" EggSoonString: ; 0x4e3ca - db "It's making sounds", $4e, "inside. It's going", $4e, "to hatch soon!@" + db "It's making sounds", $4e, "inside. It's going", $4e, "to hatch soon!@" EggCloseString: ; 0x4e3fd - db "It moves around", $4e, "inside sometimes.", $4e, "It must be close", $4e, "to hatching.@" + db "It moves around", $4e, "inside sometimes.", $4e, "It must be close", $4e, "to hatching.@" EggMoreTimeString: ; 0x4e43d - db "Wonder what's", $4e, "inside? It needs", $4e, "more time, though.@" + db "Wonder what's", $4e, "inside? It needs", $4e, "more time, though.@" EggALotMoreTimeString: ; 0x4e46e - db "This EGG needs a", $4e, "lot more time to", $4e, "hatch.@" + db "This EGG needs a", $4e, "lot more time to", $4e, "hatch.@" ; 0x4e497 @@ -50147,7 +53522,21 @@ Function4e53f: ; 4e53f ret ; 4e554 -INCBIN "baserom.gbc", $4e554, $4e5e1 - $4e554 +Function4e554: ; 4e554 + ld a, [BattleType] + dec a + ld c, a + ld hl, $6564 + ld b, $0 + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 4e564 + +INCBIN "baserom.gbc", $4e564, $4e5e1 - $4e564 Function4e5e1: ; 4e5e1 @@ -50581,7 +53970,52 @@ Function4e906: ; 4e906 ret ; 4e929 -INCBIN "baserom.gbc", $4e929, $4e980 - $4e929 +Function4e929: ; 4e929 + ld h, b + ld l, c + call Function4e930 + ld c, a + ret +; 4e930 + +Function4e930: ; 4e930 + ld a, [hli] + xor [hl] + ld c, a + jr z, .asm_4e941 + srl c + srl c +.asm_4e939 + srl c + ld a, c + cp $18 + jr nc, .asm_4e939 + inc c + +.asm_4e941 + ld a, [de] + cp $1 + ld hl, $695d + jr nz, .asm_4e958 + ld hl, $6976 + ld a, c + and a + jr z, .asm_4e958 +.asm_4e950 + srl c + ld a, c + cp $9 + jr nc, .asm_4e950 + inc c + +.asm_4e958 + ld b, $0 + add hl, bc + ld a, [hl] + ret +; 4e95d + +INCBIN "baserom.gbc", $4e95d, $4e980 - $4e95d Function4e980: ; 4e980 @@ -50659,7 +54093,7 @@ Function4e9d6: ; 4e9d6 ; 4e9e5 Function4e9e5: ; 4e9e5 - ld hl, $d100 + ld hl, LYOverrides ld a, $90 ld bc, $0090 call ByteFill @@ -50667,7 +54101,7 @@ Function4e9e5: ; 4e9e5 ; 4e9f1 Function4e9f1: ; 4e9f1 - ld hl, $d100 + ld hl, LYOverrides ld a, d ld c, $3e .asm_4e9f7 @@ -50704,7 +54138,7 @@ Function4ea0a: ; 4ea0a ld de, $cd53 ld bc, $000c ld a, $5 - call Function306b + call FarCopyWRAM ld a, [rSVBK] push af ld a, $1 @@ -50726,7 +54160,7 @@ Function4ea0a: ; 4ea0a Function4ea44: ; 4ea44 ld a, $0 ld hl, InLinkBattle - call Function307b + call GetFarWRAMByte cp $4 jr z, .asm_4ea59 ld a, [Options] @@ -50753,7 +54187,7 @@ Function4ea44: ; 4ea44 .asm_4ea72 ld a, $5 ld hl, $dc00 - call Function307b + call GetFarWRAMByte bit 0, a jr z, .asm_4ea80 and a @@ -50875,7 +54309,301 @@ Function4eb27: ; 4eb27 ret ; 4eb38 -INCBIN "baserom.gbc", $4eb38, $4f301 - $4eb38 +INCBIN "baserom.gbc", $4eb38, $4f0bc - $4eb38 + +Function4f0bc: ; 4f0bc + ld a, $0 + call Function4f26d + call Functiona36 + ld b, $6 + callba Function50000 + jr c, .asm_4f0e1 + ld a, [CurPartySpecies] + cp $fd + jr z, .asm_4f0e8 + call IsAPokemon + jr c, .asm_4f0e7 + call Function4f134 + call Function4f0ee + ret + +.asm_4f0e1 + ld a, $5 + call Function4f26d + ret + +.asm_4f0e7 + ret + +.asm_4f0e8 + ld a, $6 + call Function4f26d + ret +; 4f0ee + +Function4f0ee: ; 4f0ee + ld a, [DefaultFlypoint] + ld hl, $70f6 + rst JumpTable + ret +; 4f0f6 + +Table4f0f6: ; 4f0f6 + dw Function4f100 + dw Function4f10e + dw Function4f11f + dw Function4f125 + dw Function4f12b +; 4f100 + +Function4f100: ; 4f100 + ld a, $2 + call Function4f26d + ld a, $3 + call Function4f26d + call Function4f2b4 + ret +; 4f10e + +Function4f10e: ; 4f10e + call Function4f242 + ld a, $4 + call Function4f26d + ld a, $3 + call Function4f26d + call Function4f2b4 + ret +; 4f11f + +Function4f11f: ; 4f11f + ld a, $1 + call Function4f26d + ret +; 4f125 + +Function4f125: ; 4f125 + ld a, $1 + call Function4f26d + ret +; 4f12b + +Function4f12b: ; 4f12b + ld a, $7 + call Function4f26d + call Function4f2b4 + ret +; 4f134 + +Function4f134: ; 4f134 + ld a, $1d + call GetPartyParamLocation + ld a, [hli] + ld [$d03b], a + ld a, [hld] + ld [$d03c], a + or [hl] + jr z, .asm_4f170 + ld a, $1 + ld [DefaultFlypoint], a + ld a, $6 + call GetPartyParamLocation + ld a, [PlayerID] + cp [hl] + jr nz, .asm_4f15f + inc hl + ld a, [$d47c] + jr nz, .asm_4f15f + ld a, $0 + ld [DefaultFlypoint], a + +.asm_4f15f + call Function4f18c + call Function4f242 + call Function4f176 + call Function4f1c5 + call Function4f20a + and a + ret + +.asm_4f170 + ld a, $2 + ld [DefaultFlypoint], a + ret +; 4f176 + +Function4f176: ; 4f176 + ld a, [CurPartyMon] + ld hl, PartyMon1Nickname + ld bc, $000b + call AddNTimes + ld de, $d003 + ld bc, $000b + call CopyBytes + ret +; 4f18c + +Function4f18c: ; 4f18c + ld a, $50 + ld hl, $d036 + ld bc, $0004 + call ByteFill + ld a, [$d03b] + and $3f + jr z, .asm_4f1b4 + cp $1 + jr nz, .asm_4f1a4 + ld a, $5 + +.asm_4f1a4 + ld [$d03a], a + ld hl, $d036 + ld de, $d03a + ld bc, $4103 + call PrintNum + ret + +.asm_4f1b4 + ld de, $d036 + ld hl, $71c1 + ld bc, $0004 + call CopyBytes + ret +; 4f1c1 + +INCBIN "baserom.gbc", $4f1c1, $4f1c5 - $4f1c1 + +Function4f1c5: ; 4f1c5 + ld a, [$d03b] + and $c0 + jr z, .asm_4f1df + rlca + rlca + dec a + ld hl, $71e6 + call GetNthString + ld d, h + ld e, l + ld hl, $d01f + call CopyName2 + and a + ret + +.asm_4f1df + ld de, $d01f + call Function4f1f8 + ret +; 4f1e6 + +INCBIN "baserom.gbc", $4f1e6, $4f1f8 - $4f1e6 + +Function4f1f8: ; 4f1f8 + ld hl, $7202 + ld bc, $000b + call CopyBytes + ret +; 4f202 + +INCBIN "baserom.gbc", $4f202, $4f20a - $4f202 + +Function4f20a: ; 4f20a + ld a, [$d03c] + and $7f + jr z, .asm_4f22e + cp $7f + jr z, .asm_4f234 + cp $7e + jr z, .asm_4f23b + ld e, a + callba GetLandmarkName + ld hl, StringBuffer1 + ld de, $d00e + ld bc, $0011 + call CopyBytes + and a + ret + +.asm_4f22e + ld de, $d00e + jp Function4f1f8 + +.asm_4f234 + ld a, $4 + ld [DefaultFlypoint], a + scf + ret + +.asm_4f23b + ld a, $3 + ld [DefaultFlypoint], a + scf + ret +; 4f242 + +Function4f242: ; 4f242 + ld a, [CurPartyMon] + ld hl, PartyMon1OT + ld bc, $000b + call AddNTimes + ld de, $d02a + ld bc, $000b + call CopyBytes + ld hl, $726b + ld a, [$d03c] + bit 7, a + jr z, .asm_4f264 + ld hl, $726c + +.asm_4f264 + ld de, $d035 + ld a, $50 + ld [de], a + ret +; 4f26b + +INCBIN "baserom.gbc", $4f26b, $4f26d - $4f26b + +Function4f26d: ; 4f26d + ld e, a + ld d, $0 + ld hl, $727c + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + ret +; 4f27c + +INCBIN "baserom.gbc", $4f27c, $4f2b4 - $4f27c + +Function4f2b4: ; 4f2b4 + ld a, $1f + call GetPartyParamLocation + ld a, [$d03a] + ld c, a + ld a, [hl] + sub c + ld c, a + ld hl, $72d6 + ld de, $0003 +.asm_4f2c6 + cp [hl] + jr c, .asm_4f2ce + jr z, .asm_4f2ce + add hl, de + jr .asm_4f2c6 + +.asm_4f2ce + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + ret +; 4f2d6 + +INCBIN "baserom.gbc", $4f2d6, $4f301 - $4f2d6 Function4f301: ; 4f301 @@ -50974,7 +54702,7 @@ WritePartyMenuTilemap: ; 0x5005f cp $ff jr z, .asm_50084 ; 0x5007a $8 push hl - ld hl, $4089 + ld hl, Table50089 rst JumpTable pop hl jr .asm_50077 ; 0x50082 $f3 @@ -50984,7 +54712,51 @@ WritePartyMenuTilemap: ; 0x5005f ret ; 0x50089 -INCBIN "baserom.gbc", $50089, $500cf - $50089 +Table50089: ; 50089 + dw Function5009b + dw Function500cf + dw Function50138 + dw Function50176 + dw Function501b2 + dw Function501e0 + dw Function5022f + dw Function502b1 + dw Function50307 +; 5009b + +Function5009b: ; 5009b + ld hl, $c4b7 + ld a, [PartyCount] + and a + jr z, .asm_500bf + ld c, a + ld b, $0 +.asm_500a7 + push bc + push hl + push hl + ld hl, PartyMon1Nickname + ld a, b + call GetNick + pop hl + call PlaceString + pop hl + ld de, $0028 + add hl, de + pop bc + inc b + dec c + jr nz, .asm_500a7 + +.asm_500bf + dec hl + dec hl + ld de, $40c8 + call PlaceString + ret +; 500c8 + +INCBIN "baserom.gbc", $500c8, $500cf - $500c8 Function500cf: ; 500cf @@ -51585,35 +55357,35 @@ PrintPartyMenuText: ; 5049a ; 0x504d2 PartyMenuStrings: ; 0x504d2 - dw ChooseAMonString - dw UseOnWhichPKMNString - dw WhichPKMNString - dw TeachWhichPKMNString - dw MoveToWhereString - dw UseOnWhichPKMNString - dw ChooseAMonString ; Probably used to be ChooseAFemalePKMNString - dw ChooseAMonString ; Probably used to be ChooseAMalePKMNString - dw ToWhichPKMNString + dw ChooseAMonString + dw UseOnWhichPKMNString + dw WhichPKMNString + dw TeachWhichPKMNString + dw MoveToWhereString + dw UseOnWhichPKMNString + dw ChooseAMonString ; Probably used to be ChooseAFemalePKMNString + dw ChooseAMonString ; Probably used to be ChooseAMalePKMNString + dw ToWhichPKMNString ChooseAMonString: ; 0x504e4 - db "Choose a #MON.@" + db "Choose a #MON.@" UseOnWhichPKMNString: ; 0x504f3 - db "Use on which ", $e1, $e2, "?@" + db "Use on which ", $e1, $e2, "?@" WhichPKMNString: ; 0x50504 - db "Which ", $e1, $e2, "?@" + db "Which ", $e1, $e2, "?@" TeachWhichPKMNString: ; 0x5050e - db "Teach which ", $e1, $e2, "?@" + db "Teach which ", $e1, $e2, "?@" MoveToWhereString: ; 0x5051e - db "Move to where?@" + db "Move to where?@" ChooseAFemalePKMNString: ; 0x5052d ; UNUSED - db "Choose a ♀", $e1, $e2, ".@" + db "Choose a ♀", $e1, $e2, ".@" ChooseAMalePKMNString: ; 0x5053b ; UNUSED - db "Choose a ♂", $e1, $e2, ".@" + db "Choose a ♂", $e1, $e2, ".@" ToWhichPKMNString: ; 0x50549 - db "To which ", $e1, $e2, "?@" + db "To which ", $e1, $e2, "?@" YouHaveNoPKMNString: ; 0x50556 - db "You have no ", $e1, $e2, "!@" + db "You have no ", $e1, $e2, "!@" Function50566: ; 50566 @@ -51667,7 +55439,7 @@ Function505da: ; 505da ld a, [CurPartyMon] ld e, a ld d, 0 - ld hl, CurFruit + ld hl, $d03f add hl, de ld [hl], c ld a, [EngineBuffer1] @@ -51761,7 +55533,7 @@ UnknownScript_0x50677: ; 50677 Function5067b: ; 5067b xor a ld [CurPartyMon], a - ld de, CurFruit + ld de, $d03f .asm_50682 push de ld a, [de] @@ -52212,163 +55984,124 @@ Function508d5: ; 508d5 ; 5090d -PrintMonTypes: ; 5090d - push hl - call GetBaseData - pop hl - push hl - ld a, [BaseType1] - call .asm_50928 - ld a, [BaseType1] - ld b, a - ld a, [BaseType2] - cp b - pop hl - jr z, .asm_5092b - ld bc, 20 - add hl, bc +INCLUDE "text/types.asm" -.asm_50928 - ld b, a - jr PrintType -.asm_5092b - ld a, " " - ld bc, 20 - 3 +Function50a28: ; 50a28 + ld hl, Strings50a42 + ld a, [TrainerClass] + dec a + ld c, a + ld b, 0 add hl, bc - ld [hl], a - inc bc add hl, bc - ld bc, 5 - jp ByteFill -; 5093a - -PrintMoveType: ; 5093a -; Print the type of move b at hl. - - push hl - ld a, b - dec a - ld bc, Move2 - Move1 - ld hl, Moves - call AddNTimes - ld de, StringBuffer1 - ld a, BANK(Moves) - call FarCopyBytes - ld a, [StringBuffer1 + PlayerMoveType - PlayerMoveStruct] - pop hl - - ld b, a -; 50953 - -PrintType: ; 50953 -; Print type b at hl. - ld a, b - - push hl - add a - ld hl, TypeNames - ld e, a - ld d, 0 - add hl, de - ld a, [hli] - ld e, a - ld d, [hl] - pop hl - - jp PlaceString -; 50964 - - -GetTypeName: ; 50964 -; Copy the name of type $d265 to StringBuffer1. - ld a, [$d265] - ld hl, TypeNames - ld e, a - ld d, 0 - add hl, de - add hl, de ld a, [hli] ld h, [hl] ld l, a ld de, StringBuffer1 - ld bc, $000d - jp CopyBytes -; 5097b - - -TypeNames: ; 5097b - dw Normal - dw Fighting - dw Flying - dw Poison - dw Ground - dw Rock - dw Bird - dw Bug - dw Ghost - dw Steel - dw Normal - dw Normal - dw Normal - dw Normal - dw Normal - dw Normal - dw Normal - dw Normal - dw Normal - dw UnknownType - dw Fire - dw Water - dw Grass - dw Electric - dw Psychic - dw Ice - 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 - - -INCBIN "baserom.gbc", $50a28, $50b0a - $50a28 +.copy + ld a, [hli] + ld [de], a + inc de + cp "@" + jr nz, .copy + ret +; 50a42 + +Strings50a42: ; 50a42 +; Untranslated trainer class names from Red. + + dw .Youngster + dw .BugCatcher + dw .Lass + dw OTName + dw .JrTrainerM + dw .JrTrainerF + dw .Pokemaniac + dw .SuperNerd + dw OTName + dw OTName + dw .Burglar + dw .Engineer + dw .Jack + dw OTName + dw .Swimmer + dw OTName + dw OTName + dw .Beauty + dw OTName + dw .Rocker + dw .Juggler + dw OTName + dw OTName + dw .Blackbelt + dw OTName + dw .ProfOak + dw .Chief + dw .Scientist + dw OTName + dw .Rocket + dw .CooltrainerM + dw .CooltrainerF + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + +.Youngster + db "たんパン@" +.BugCatcher + db "むしとり@" +.Lass + db "ミニスカ@" +.JrTrainerM + db "ボーイ@" +.JrTrainerF + db "ガール@" +.Pokemaniac + db "マニア@" +.SuperNerd + db "りかけい@" +.Burglar + db "どろぼう@" +.Engineer + db "ォヤジ@" +.Jack + db "ジャック@" +.Swimmer + db "かいパン@" +.Beauty + db "おねえさん@" +.Rocker + db "グループ@" +.Juggler + db "ジャグラー@" +.Blackbelt + db "からて@" +.ProfOak + db "ォーキド@" +.Chief + db "チーフ@" +.Scientist + db "けんきゅういん@" +.Rocket + db "だんいん@" +.CooltrainerM + db "エりート♂@" +.CooltrainerF + db "エりート♀@" +; 50b0a DrawPlayerHP: ; 50b0a @@ -52457,7 +56190,39 @@ DrawHP: ; 50b10 ; 50b7b -INCBIN "baserom.gbc", $50b7b, $50bdd - $50b7b +Function50b7b: ; 50b7b + push bc + push hl + ld de, $4bb5 + call PlaceString + pop hl + pop bc + add hl, bc + ld bc, $0014 + add hl, bc + ld de, TempMonAtk + ld bc, $0203 + call Function50bab + ld de, TempMonDef + call Function50bab + ld de, TempMonSpclAtk + call Function50bab + ld de, TempMonSpclDef + call Function50bab + ld de, TempMonSpd + jp PrintNum +; 50bab + +Function50bab: ; 50bab + push hl + call PrintNum + pop hl + ld de, $0028 + add hl, de + ret +; 50bb5 + +INCBIN "baserom.gbc", $50bb5, $50bdd - $50bb5 GetGender: ; 50bdd @@ -52578,7 +56343,128 @@ GetGender: ; 50bdd ret ; 50c50 -INCBIN "baserom.gbc", $50c50, $50d0a - $50c50 +Function50c50: ; 50c50 + ld a, [$d0eb] + inc a + ld c, a + ld a, $4 + sub c + ld b, a + push hl + ld a, [Buffer1] + ld e, a + ld d, $0 + ld a, $3e + call Function50cc9 + ld a, b + and a + jr z, .asm_50c6f + ld c, a + ld a, $e3 + call Function50cc9 + +.asm_50c6f + pop hl + inc hl + inc hl + inc hl + ld d, h + ld e, l + ld hl, TempMonMove1 + ld b, $0 +.asm_50c7a + ld a, [hli] + and a + jr z, .asm_50cc8 + push bc + push hl + push de + ld hl, $cfa9 + ld a, [hl] + push af + ld [hl], b + push hl + callab Functionf8ec + pop hl + pop af + ld [hl], a + pop de + pop hl + push hl + ld bc, $0014 + add hl, bc + ld a, [hl] + and $3f + ld [$d077], a + ld h, d + ld l, e + push hl + ld de, $d077 + ld bc, $0102 + call PrintNum + ld a, $f3 + ld [hli], a + ld de, $d265 + ld bc, $0102 + call PrintNum + pop hl + ld a, [Buffer1] + ld e, a + ld d, $0 + add hl, de + ld d, h + ld e, l + pop hl + pop bc + inc b + ld a, b + cp $4 + jr nz, .asm_50c7a + +.asm_50cc8 + ret +; 50cc9 + +Function50cc9: ; 50cc9 +.asm_50cc9 + ld [hli], a + ld [hld], a + add hl, de + dec c + jr nz, .asm_50cc9 + ret +; 50cd0 + +INCBIN "baserom.gbc", $50cd0, $50cdb - $50cd0 + +Function50cdb: ; 50cdb + push hl + push hl + ld hl, PartyMon1Nickname + ld a, [CurPartyMon] + call GetNick + pop hl + call PlaceString + call Function5084a + pop hl + ld a, [CurPartySpecies] + cp $fd + jr z, .asm_50d09 + push hl + ld bc, $fff4 + add hl, bc + ld b, $0 + call DrawEnemyHP + pop hl + ld bc, $0005 + add hl, bc + push de + call PrintLevel + pop de + +.asm_50d09 + ret +; 50d0a Function50d0a: ; 50d0a @@ -52591,31 +56477,32 @@ Function50d0a: ; 50d0a ld a, [de] or b pop de - jr nz, .asm_50d2e + jr nz, Function50d2e push de - ld de, .data_50d21 - call $4d25 + ld de, .string_50d21 + call Function50d25 pop de ld a, $1 and a ret -.data_50d21 - db $85 - db $8d - db $93 - db $50 - db $1a - db $13 - db $22 - db $1a - db $13 - db $22 - db $1a - db $77 - db $c9 +.string_50d21 + db "カセト@" +; 50d25 + +Function50d25: ; 50d25 + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + ld [hl], a + ret +; 50d2e -.asm_50d2e +Function50d2e: ; 50d2e push de ld a, [de] ld de, $4d5f @@ -52644,7 +56531,117 @@ Function50d0a: ; 50d0a ret ; 50d5b -INCBIN "baserom.gbc", $50d5b, $50e1b - $50d5b +INCBIN "baserom.gbc", $50d5b, $50d6f - $50d5b + +Function50d6f: ; 50d6f + ld de, $d25e + ld b, $0 +.asm_50d74 + ld a, [de] + inc de + and a + jr z, .asm_50da7 + push de + push hl + push hl + ld [CurSpecies], a + ld a, $2 + ld [$cf61], a + call GetName + ld de, StringBuffer1 + pop hl + push bc + call PlaceString + pop bc + ld a, b + ld [$d0eb], a + inc b + pop hl + push bc + ld a, [Buffer1] + ld c, a + ld b, $0 + add hl, bc + pop bc + pop de + ld a, b + cp $4 + jr z, .asm_50db8 + jr .asm_50d74 + +.asm_50da7 + ld a, b +.asm_50da8 + push af + ld [hl], $e3 + ld a, [Buffer1] + ld c, a + ld b, $0 + add hl, bc + pop af + inc a + cp $4 + jr nz, .asm_50da8 + +.asm_50db8 + ret +; 50db9 + +Function50db9: ; 50db9 + ld a, [$d263] + cp $1 + jr nz, .asm_50dca + ld hl, OTPartyCount + ld de, OTPartyMon1OT + ld a, $6 + jr .asm_50dfc + +.asm_50dca + cp $4 + jr nz, .asm_50dd8 + ld hl, PartyCount + ld de, PartyMon1OT + ld a, $5 + jr .asm_50dfc + +.asm_50dd8 + cp $5 + jr nz, .asm_50de6 + ld hl, CurMart + ld de, PokemonNames + ld a, $1 + jr .asm_50dfc + +.asm_50de6 + cp $2 + jr nz, .asm_50df4 + ld hl, NumItems + ld de, Function50000 + ld a, $4 + jr .asm_50dfc + +.asm_50df4 + ld hl, CurMart + ld de, Function50000 + ld a, $4 + +.asm_50dfc + ld [$cf61], a + ld a, l + ld [LYOverrides], a + ld a, h + ld [$d101], a + ld a, e + ld [$d102], a + ld a, d + ld [$d103], a + ld bc, $67c1 + ld a, c + ld [$d104], a + ld a, b + ld [$d105], a + ret +; 50e1b Function50e1b: ; 50e1b @@ -52855,7 +56852,206 @@ GetUnownLetter: ; 51040 ; 51077 -INCBIN "baserom.gbc", $51077, $511c5 - $51077 +Function51077: ; 51077 + ld a, [CurPartySpecies] + ld [CurSpecies], a + call IsAPokemon + ret c + ld a, [rSVBK] + push af + call Function510a5 + pop af + ld [rSVBK], a + ret +; 5108b + +Function5108b: ; 5108b + ld a, [CurPartySpecies] + ld [CurSpecies], a + call IsAPokemon + ret c + ld a, [rSVBK] + push af + xor a + ld [hBGMapMode], a + call Function510a5 + call Function51103 + pop af + ld [rSVBK], a + ret +; 510a5 + +Function510a5: ; 510a5 + push de + call GetBaseData + ld a, [BasePicSize] + and $f + ld b, a + push bc + call Function510d7 + ld a, $6 + ld [rSVBK], a + ld a, b + ld de, $d800 + call FarDecompress + pop bc + ld hl, Unkn1Pals + ld de, $d800 + call Function512ab + pop hl + push hl + ld de, Unkn1Pals + ld c, $31 + ld a, [hROMBank] + ld b, a + call Get2bpp + pop hl + ret +; 510d7 + +Function510d7: ; 510d7 + ld a, [CurPartySpecies] + cp $c9 + jr z, .asm_510e5 + ld a, [CurPartySpecies] + ld d, $48 + jr .asm_510ea + +.asm_510e5 + ld a, [UnownLetter] + ld d, $49 + +.asm_510ea + ld hl, Function50000 + dec a + ld bc, $0006 + call AddNTimes + ld a, d + call GetFarByte + call Function511c5 + push af + inc hl + ld a, d + call GetFarHalfword + pop bc + ret +; 51103 + +Function51103: ; 51103 + ld a, $1 + ld [rVBK], a + push hl + ld de, Unkn1Pals + ld c, $31 + ld a, [hROMBank] + ld b, a + call Get2bpp + pop hl + ld de, $0310 + add hl, de + push hl + ld a, $1 + ld hl, BasePicSize + call GetFarWRAMByte + pop hl + and $f + ld de, $d990 + ld c, $19 + cp $5 + jr z, .asm_5113b + ld de, $da40 + ld c, $24 + cp $6 + jr z, .asm_5113b + ld de, $db10 + ld c, $31 + +.asm_5113b + push hl + push bc + call Function5114f + pop bc + pop hl + ld de, Unkn1Pals + ld a, [hROMBank] + ld b, a + call Get2bpp + xor a + ld [rVBK], a + ret +; 5114f + +Function5114f: ; 5114f + ld hl, Unkn1Pals + swap c + ld a, c + and $f + ld b, a + ld a, c + and $f0 + ld c, a + push bc + call Function512f2 + pop bc +.asm_51161 + push bc + ld c, $0 + call Function512f2 + pop bc + dec b + jr nz, .asm_51161 + ret +; 5116c + +Function5116c: ; 5116c + ld a, [CurPartySpecies] + call IsAPokemon + ret c + ld a, [CurPartySpecies] + ld b, a + ld a, [UnownLetter] + ld c, a + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + push de + ld hl, Function50000 + ld a, b + ld d, $48 + cp $c9 + jr nz, .asm_51190 + ld a, c + ld d, $49 + +.asm_51190 + dec a + ld bc, $0006 + call AddNTimes + ld bc, $0003 + add hl, bc + ld a, d + call GetFarByte + call Function511c5 + push af + inc hl + ld a, d + call GetFarHalfword + ld de, Unkn1Pals + pop af + call FarDecompress + ld hl, Unkn1Pals + ld c, $24 + call Function5127c + pop hl + ld de, Unkn1Pals + ld a, [hROMBank] + ld b, a + call Get2bpp + pop af + ld [rSVBK], a + ret +; 511c5 Function511c5: ; 511c5 @@ -52946,7 +57142,250 @@ DecompressPredef: ; 5125d ; 5127c -INCBIN "baserom.gbc", $5127c, $51424 - $5127c +Function5127c: ; 5127c + push de + push bc + ld a, [$c2c6] + and a + jr z, .asm_512a8 + ld a, c + cp $31 + ld de, $0310 + jr z, .asm_51296 + cp $24 + ld de, $0240 + jr z, .asm_51296 + ld de, $0190 + +.asm_51296 + ld a, [hl] + ld b, $0 + ld c, $8 +.asm_5129b + rra + rl b + dec c + jr nz, .asm_5129b + ld a, b + ld [hli], a + dec de + ld a, e + or d + jr nz, .asm_51296 + +.asm_512a8 + pop bc + pop de + ret +; 512ab + +Function512ab: ; 512ab + ld a, b + cp $6 + jr z, .asm_512bd + cp $5 + jr z, .asm_512d2 +.asm_512b4 + ld c, $70 + call Function512f2 + dec b + jr nz, .asm_512b4 + ret + +.asm_512bd + ld c, $70 + xor a + call Function512ed +.asm_512c3 + ld c, $10 + xor a + call Function512ed + ld c, $60 + call Function512f2 + dec b + jr nz, .asm_512c3 + ret + +.asm_512d2 + ld c, $70 + xor a + call Function512ed +.asm_512d8 + ld c, $20 + xor a + call Function512ed + ld c, $50 + call Function512f2 + dec b + jr nz, .asm_512d8 + ld c, $70 + xor a + call Function512ed + ret +; 512ed + +Function512ed: ; 512ed +.asm_512ed + ld [hli], a + dec c + jr nz, .asm_512ed + ret +; 512f2 + +Function512f2: ; 512f2 + ld a, [$c2c6] + and a + jr nz, .asm_512ff +.asm_512f8 + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_512f8 + ret + +.asm_512ff + push bc +.asm_51300 + ld a, [de] + inc de + ld b, a + xor a + rr b + rla + rr b + rla + rr b + rla + rr b + rla + rr b + rla + rr b + rla + rr b + rla + rr b + rla + ld [hli], a + dec c + jr nz, .asm_51300 + pop bc + ret +; 51322 + +Function51322: ; 51322 + ld a, $1 + call GetSRAMBank + ld hl, BoxCount + call Function513cb + ld a, [BoxCount] + dec a + ld [$d265], a + ld hl, BoxMon1Nickname + ld bc, $000b + ld de, DefaultFlypoint + call Function513e0 + ld a, [BoxCount] + dec a + ld [$d265], a + ld hl, BoxMon1OT + ld bc, $000b + ld de, $d00d + call Function513e0 + ld a, [BoxCount] + dec a + ld [$d265], a + ld hl, BoxMon1Species + ld bc, $0020 + ld de, $d018 + call Function513e0 + ld hl, $d01a + ld de, TempMonMove1 + ld bc, $0004 + call CopyBytes + ld hl, $d02f + ld de, TempMonPP + ld bc, $0004 + call CopyBytes + ld a, [CurPartyMon] + ld b, a + callba Functiondcb6 + jp CloseSRAM +; 5138b + +INCBIN "baserom.gbc", $5138b, $513cb - $5138b + +Function513cb: ; 513cb + inc [hl] + inc hl + ld a, [CurPartyMon] + ld c, a + ld b, $0 + add hl, bc + ld a, [CurPartySpecies] + ld c, a +.asm_513d8 + ld a, [hl] + ld [hl], c + inc hl + inc c + ld c, a + jr nz, .asm_513d8 + ret +; 513e0 + +Function513e0: ; 513e0 + push de + push hl + push bc + ld a, [$d265] + dec a + call AddNTimes + push hl + add hl, bc + ld d, h + ld e, l + pop hl +.asm_513ef + push bc + ld a, [$d265] + ld b, a + ld a, [CurPartyMon] + cp b + pop bc + jr z, .asm_51415 + push hl + push de + push bc + call CopyBytes + pop bc + pop de + pop hl + push hl + ld a, l + sub c + ld l, a + ld a, h + sbc b + ld h, a + pop de + ld a, [$d265] + dec a + ld [$d265], a + jr .asm_513ef + +.asm_51415 + pop bc + pop hl + ld a, [CurPartyMon] + call AddNTimes + ld d, h + ld e, l + pop hl + call CopyBytes + ret +; 51424 BaseData: INCLUDE "stats/base_stats.asm" @@ -53518,7 +57957,7 @@ TrySurfStep: ; 801c0 jr c, .asm_801f1 call Function80341 - ld [CurFruit], a + ld [$d03f], a and a jr z, .asm_801f1 cp 2 @@ -53727,7 +58166,7 @@ CheckForcedMovementInput: ; 802cb ld hl, .data_802e8 add hl, de ld a, [CurInput] - and BUTTON_A | BUTTON_B | SELECT | START + and A_BUTTON | B_BUTTON | SELECT | START or [hl] ld [CurInput], a ret @@ -54236,7 +58675,67 @@ Function84425: ; 84425 ret ; 8442c -INCBIN "baserom.gbc", $8442c, $845d4 - $8442c +INCBIN "baserom.gbc", $8442c, $84560 - $8442c + +Function84560: ; 84560 + ld a, [$cf65] + push af + xor a + ld [$ffac], a + call Function8474c + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $9 + ld [rIE], a + ld hl, $ff9e + ld a, [hl] + push af + ld [hl], $4 + xor a + ld [hBGMapMode], a + call Function309d + callba Function16dac + ld a, $0 + call Function84419 + call Function30b4 + call Function84742 + ld a, $9 + ld [$cf65], a +.asm_84597 + call Functiona57 + call Function846f6 + jr c, .asm_845c0 + ld a, [$cf63] + bit 7, a + jr nz, .asm_845c0 + call Function84022 + ld a, [$cf63] + cp $2 + jr nc, .asm_845b5 + ld a, $3 + ld [$ca81], a + +.asm_845b5 + call Function84757 + call Function84785 + call DelayFrame + jr .asm_84597 + +.asm_845c0 + pop af + ld [$ff9e], a + call Function84411 + call Function30b4 + xor a + ld [rIF], a + pop af + ld [rIE], a + pop af + ld [$cf65], a + ret +; 845d4 Function845d4: ; 845d4 call Function845db @@ -54280,7 +58779,112 @@ Function845db: ; 845db ret ; 8461a -INCBIN "baserom.gbc", $8461a, $846f6 - $8461a +Function8461a: ; 8461a + ld a, [$cf65] + push af + xor a + ld [$ffac], a + call Function8474c + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $9 + ld [rIE], a + xor a + ld [hBGMapMode], a + callba Function1dc381 + ld a, $10 + call Function84419 + ld hl, $ff9e + ld a, [hl] + push af + ld [hl], $4 + ld a, $8 + ld [$cf65], a + call Function84742 + call Function843f0 + jr c, .asm_84671 + call Function84411 + ld c, $c + call DelayFrames + xor a + ld [hBGMapMode], a + callba Function1dc47b + ld a, $3 + call Function84419 + ld a, $9 + ld [$cf65], a + call Function84742 + call Function843f0 + +.asm_84671 + pop af + ld [$ff9e], a + call Function84411 + call Function84735 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Function84425 + pop af + ld [$cf65], a + ret +; 84688 + +Function84688: ; 84688 + ld a, [$cf65] + push af + callba Function1dd709 + xor a + ld [$ffac], a + call Function8474c + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $9 + ld [rIE], a + ld hl, $ff9e + ld a, [hl] + push af + ld [hl], $4 + ld a, $10 + call Function84419 + call Function84742 + ld a, $9 + ld [$cf65], a + call Function843f0 + jr c, .asm_846e2 + call Function84411 + ld c, $c + call DelayFrames + call Function309d + xor a + ld [hBGMapMode], a + callba Function1dd7ae + ld a, $3 + call Function84419 + call Function30b4 + call Function84742 + ld a, $9 + ld [$cf65], a + call Function843f0 + +.asm_846e2 + pop af + ld [$ff9e], a + call Function84411 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Function84425 + pop af + ld [$cf65], a + ret +; 846f6 Function846f6: ; 846f6 ld a, [hJoyDown] @@ -54333,10 +58937,17 @@ Function84735: ; 84735 ret ; 84742 -INCBIN "baserom.gbc", $84742, $8474c - $84742 +Function84742: ; 84742 + xor a + ld [hJoyReleased], a + ld [hJoyPressed], a + ld [hJoyDown], a + ld [$ffa9], a + ret +; 8474c Function8474c: ; 8474c - ld de, $005b + ld de, MUSIC_PRINTER call StartMusic2 ret ; 84753 @@ -55183,7 +59794,358 @@ Function86810: ; 86810 SECTION "bank22",ROMX,BANK[$22] -INCBIN "baserom.gbc", $88000, $88258 - $88000 +Function88000: ; 88000 + ld hl, $4007 + call PrintText + ret +; 88007 + +INCBIN "baserom.gbc", $88007, $8800c - $88007 + +Function8800c: ; 8800c + ld hl, $4013 + call PrintText + ret +; 88013 + +INCBIN "baserom.gbc", $88013, $88018 - $88013 + +Function88018: ; 88018 + call Function1d6e + ld c, $1 + xor a + ld [$d0e4], a + ld [$dca4], a +.asm_88024 + push bc + call Function88000 + pop bc + ld a, c + ld [MenuSelection], a + call Function88055 + ld a, c + ld [ScriptVar], a + and a + jr z, .asm_88051 + ld [CurItem], a + ld a, [$cfa9] + ld c, a + push bc + call Function8800c + call Function880c2 + pop bc + jr nc, .asm_88024 + ld a, [$d10c] + ld [$dca4], a + call Function88161 + +.asm_88051 + call Function1d7d + ret +; 88055 + +Function88055: ; 88055 + callba Function24c64 + jr c, .asm_88083 + ld hl, $4086 + call Function1d3c + ld a, [MenuSelection] + ld [$cf88], a + xor a + ld [hBGMapMode], a + call Function352f + call Function1ad2 + call Function350c + ld a, [$cf73] + cp $2 + jr z, .asm_88083 + ld a, [MenuSelection] + cp $ff + jr nz, .asm_88084 + +.asm_88083 + xor a + +.asm_88084 + ld c, a + ret +; 88086 + +INCBIN "baserom.gbc", $88086, $880c2 - $88086 + +Function880c2: ; 880c2 + ld a, [CurItem] + ld [MenuSelection], a + call Function88139 + jr z, .asm_88109 + ld a, [$d10c] + ld [$d10d], a + ld a, $1 + ld [$d10c], a + ld hl, $410d + call LoadMenuDataHeader +.asm_880de + xor a + ld [hBGMapMode], a + call Function1cbb + call Function1ad2 + call Function88116 + call Function88126 + call Function321c + callba Function27a28 + jr nc, .asm_880de + push bc + call PlayClickSFX + pop bc + ld a, b + cp $ff + jr z, .asm_88109 + ld a, [$d10c] + ld [$d10c], a + scf + +.asm_88109 + call Function1c17 + ret +; 8810d + +INCBIN "baserom.gbc", $8810d, $88116 - $8810d + +Function88116: ; 88116 + call Function1cfd + ld de, $0015 + add hl, de + ld d, h + ld e, l + callba Function24ab4 + ret +; 88126 + +Function88126: ; 88126 + call Function1cfd + ld de, $0032 + add hl, de + ld [hl], $f1 + inc hl + ld de, $d10c + ld bc, $8102 + jp PrintNum +; 88139 + +Function88139: ; 88139 + push bc + ld hl, NumItems + ld a, [CurItem] + ld c, a + ld b, $0 +.asm_88143 + inc hl + ld a, [hli] + cp $ff + jr z, .asm_88153 + cp c + jr nz, .asm_88143 + ld a, [hl] + add b + ld b, a + jr nc, .asm_88143 + ld b, $ff + +.asm_88153 + ld a, b + sub $63 + jr c, .asm_8815a + ld b, $63 + +.asm_8815a + ld a, b + ld [$d10c], a + and a + pop bc + ret +; 88161 + +Function88161: ; 88161 + push de + push bc + ld hl, NumItems + ld a, [CurItem] + ld c, a + ld e, $0 + xor a + ld [$d107], a + ld a, $ff + ld [DefaultFlypoint], a +.asm_88175 + ld a, [$d107] + inc a + ld [$d107], a + inc hl + ld a, [hli] + cp $ff + jr z, .asm_88198 + cp c + jr nz, .asm_88175 + ld d, $0 + push hl + ld hl, DefaultFlypoint + add hl, de + inc e + ld a, [$d107] + dec a + ld [hli], a + ld a, $ff + ld [hl], a + pop hl + jr .asm_88175 + +.asm_88198 + ld a, e + and a + jr z, .asm_881fa + dec a + jr z, .asm_881d0 + ld hl, DefaultFlypoint +.asm_881a2 + ld a, [hl] + ld c, a + push hl +.asm_881a5 + inc hl + ld a, [hl] + cp $ff + jr z, .asm_881c9 + ld b, a + ld a, c + call Function88201 + ld e, a + ld a, b + call Function88201 + sub e + jr z, .asm_881bc + jr c, .asm_881c0 + jr .asm_881a5 + +.asm_881bc + ld a, c + sub b + jr nc, .asm_881a5 + +.asm_881c0 + ld a, c + ld c, b + ld [hl], a + ld a, c + pop hl + ld [hl], a + push hl + jr .asm_881a5 + +.asm_881c9 + pop hl + inc hl + ld a, [hl] + cp $ff + jr nz, .asm_881a2 + +.asm_881d0 + ld hl, DefaultFlypoint +.asm_881d3 + ld a, [hl] + cp $ff + jr z, .asm_881fa + push hl + ld [$d107], a + call Function88211 + pop hl + ld a, [$d10c] + and a + jr z, .asm_881fa + push hl + ld a, [hli] + ld c, a +.asm_881e9 + ld a, [hli] + cp $ff + jr z, .asm_881f6 + cp c + jr c, .asm_881e9 + dec a + dec hl + ld [hli], a + jr .asm_881e9 + +.asm_881f6 + pop hl + inc hl + jr .asm_881d3 + +.asm_881fa + ld a, [$d10c] + and a + pop bc + pop de + ret +; 88201 + +Function88201: ; 88201 + push hl + push bc + ld hl, NumItems + inc hl + ld c, a + ld b, $0 + add hl, bc + add hl, bc + inc hl + ld a, [hl] + pop bc + pop hl + ret +; 88211 + +Function88211: ; 88211 + push bc + ld hl, NumItems + ld a, [$d107] + ld c, a + ld b, $0 + inc hl + add hl, bc + add hl, bc + ld a, [CurItem] + ld c, a + ld a, [hli] + cp $ff + jr z, .asm_88243 + cp c + jr nz, .asm_88243 + ld a, [$d10c] + ld c, a + ld a, [hl] + sub c + ld b, c + jr nc, .asm_88235 + add c + ld b, a + +.asm_88235 + push bc + ld hl, NumItems + ld a, b + ld [$d10c], a + call TossItem + pop bc + ld a, c + sub b + +.asm_88243 + ld [$d10c], a + pop bc + ret +; 88248 + +INCBIN "baserom.gbc", $88248, $88258 - $88248 MovePlayerPicRight: ; 88258 hlcoord 6, 4 @@ -55421,7 +60383,712 @@ GetKrisBackpic: ; 88ec9 KrisBackpic: ; 88ed6 -INCBIN "baserom.gbc", $88ed6, $896ff - $88ed6 +INCBIN "baserom.gbc", $88ed6, $89160 - $88ed6 + +Function89160: ; 89160 + push af + ld a, $4 + call GetSRAMBank + pop af + ret +; 89168 + +INCBIN "baserom.gbc", $89168, $89193 - $89168 + +Function89193: ; 89193 + push de + push hl +.asm_89195 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_89195 + pop hl + pop de + ret +; 8919e + +INCBIN "baserom.gbc", $8919e, $891ab - $8919e + +Function891ab: ; 891ab + call Function89240 + callba Function104061 + call Function8923c + ret +; 891b8 + +Function891b8: ; 891b8 + call Function8923c + ld hl, TileMap + ld a, $7f + ld bc, $0168 + call ByteFill + call DelayFrame + ret +; 891ca + +INCBIN "baserom.gbc", $891ca, $891de - $891ca + +Function891de: ; 891de + call Function8923c + call ClearPalettes + ld hl, AttrMap + ld a, $7 + ld bc, $0168 + call ByteFill + ld hl, TileMap + ld a, $7f + ld bc, $0168 + call ByteFill + call Function891ab + ret +; 891fe + +Function891fe: ; 891fe + push bc + call Function891de + ld c, $10 + call DelayFrames + pop bc + ret +; 89209 + +Function89209: ; 89209 + ld a, $1 + ld [$c2ce], a + ret +; 8920f + +Function8920f: ; 8920f + ld a, $0 + ld [$c2ce], a + ret +; 89215 + +Function89215: ; 89215 + push hl + push bc + ld bc, $0939 + add hl, bc + ld [hl], a + pop bc + pop hl + ret +; 8921f + +INCBIN "baserom.gbc", $8921f, $8923c - $8921f + +Function8923c: ; 8923c + xor a + ld [hBGMapMode], a + ret +; 89240 + +Function89240: ; 89240 + ld a, $1 + ld [hBGMapMode], a + ret +; 89245 + +INCBIN "baserom.gbc", $89245, $89259 - $89245 + +Function89259: ; 89259 + ld bc, $0e07 + jr Function89261 + +Function8925e: ; 8925e + ld bc, $0e0c + +Function89261: ; 89261 + push af + push bc + ld hl, $52a3 + call Function1d3c + pop bc + ld hl, $cf82 + ld a, c + ld [hli], a + ld a, b + ld [hli], a + ld a, c + add $4 + ld [hli], a + ld a, b + add $5 + ld [hl], a + pop af + ld [$cf88], a + call Function1c00 + call Function8923c + call Function89209 + call Function1d81 + push af + ld c, $a + call DelayFrames + call Function1c17 + call Function8920f + pop af + jr c, .asm_892a1 + ld a, [$cfa9] + cp $2 + jr z, .asm_892a1 + and a + ret + +.asm_892a1 + scf + ret +; 892a3 + +INCBIN "baserom.gbc", $892a3, $892b7 - $892a3 + +Function892b7: ; 892b7 + ld d, b + ld e, c + ld hl, $0000 + add hl, bc + ld a, $50 + ld bc, $0006 + call ByteFill + ld b, d + ld c, e + ld hl, $0006 + add hl, bc + ld a, $50 + ld bc, $0006 + call ByteFill + ld b, d + ld c, e + ld hl, $000c + add hl, bc + xor a + ld [hli], a + ld [hl], a + ld hl, $000e + add hl, bc + ld [hli], a + ld [hl], a + ld hl, $0010 + add hl, bc + ld [hl], a + ld hl, $0011 + add hl, bc + ld a, $ff + ld bc, $0008 + call ByteFill + ld b, d + ld c, e + ld e, $6 + ld hl, $0019 + add hl, bc +.asm_892fb + ld a, $ff + ld [hli], a + ld a, $ff + ld [hli], a + dec e + jr nz, .asm_892fb + ret +; 89305 + +INCBIN "baserom.gbc", $89305, $8931b - $89305 + +Function8931b: ; 8931b + push hl + ld hl, $a03b + ld a, [MenuSelection] + dec a + ld bc, $0025 + call AddNTimes + ld b, h + ld c, l + pop hl + ret +; 8932d + +Function8932d: ; 8932d + ld hl, $0000 + add hl, bc + +Function89331: ; 89331 + push bc + ld c, $5 +.asm_89334 + ld a, [hli] + cp $50 + jr z, .asm_89340 + cp $7f + jr nz, .asm_89343 + dec c + jr nz, .asm_89334 + +.asm_89340 + scf + jr .asm_89344 + +.asm_89343 + and a + +.asm_89344 + pop bc + ret +; 89346 + +INCBIN "baserom.gbc", $89346, $8934a - $89346 + +Function8934a: ; 8934a + ld hl, $0006 + add hl, bc + push bc + ld c, $5 +.asm_89351 + ld a, [hli] + cp $50 + jr z, .asm_8935d + cp $7f + jr nz, .asm_89360 + dec c + jr nz, .asm_89351 + +.asm_8935d + scf + jr .asm_89361 + +.asm_89360 + and a + +.asm_89361 + pop bc + ret +; 89363 + +Function89363: ; 89363 + ld h, b + ld l, c + jr .asm_8936b + + ld hl, $0019 + add hl, bc + +.asm_8936b + push de + ld e, $6 +.asm_8936e + ld a, [hli] + cp $ff + jr nz, .asm_8937e + ld a, [hli] + cp $ff + jr nz, .asm_8937e + dec e + jr nz, .asm_8936e + scf + jr .asm_8937f + +.asm_8937e + and a + +.asm_8937f + pop de + ret +; 89381 + +Function89381: ; 89381 + push bc + push de + call Function89b45 + jr c, .asm_89392 + push hl + ld a, $ff + ld bc, $0008 + call ByteFill + pop hl + +.asm_89392 + pop de + ld c, $8 + call Function89193 + pop bc + ret +; 8939a + +Function8939a: ; 8939a + push bc + ld hl, $0000 + add hl, bc + ld de, DefaultFlypoint + ld c, $6 + call Function89193 + pop bc + ld hl, $0011 + add hl, bc + ld de, $d008 + call Function89381 + ret +; 893b3 + +INCBIN "baserom.gbc", $893b3, $893cc - $893b3 + +Function893cc: ; 893cc + call DisableLCD + call ClearSprites + call Functione51 + call Functione5f + call Function893ef + call Function89464 + call EnableLCD + ret +; 893e2 + +INCBIN "baserom.gbc", $893e2, $893ef - $893e2 + +Function893ef: ; 893ef + ld de, VTiles0 + ld hl, $540b + ld bc, $0020 + ld a, $22 + call FarCopyBytes + ret +; 893fe + +INCBIN "baserom.gbc", $893fe, $89464 - $893fe + +Function89464: ; 89464 + ld hl, $59ef + ld de, VTiles2 + ld bc, $0200 + ld a, $5e + call FarCopyBytes + ld hl, $604f + ld de, $9200 + ld bc, $0170 + ld a, $5e + call FarCopyBytes + ret +; 89481 + +Function89481: ; 89481 + ld d, $2 + call Function8934a + ret c + ld d, $0 + ld hl, $0010 + add hl, bc + bit 0, [hl] + ret z + inc d + ret +; 89492 + +INCBIN "baserom.gbc", $89492, $8949c - $89492 + +Function8949c: ; 8949c + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $54b3 + ld de, $d038 + ld bc, $0008 + call CopyBytes + pop af + ld [rSVBK], a + ret +; 894b3 + +INCBIN "baserom.gbc", $894b3, $894bb - $894b3 + +Function894bb: ; 894bb + call Function894dc + push bc + call Function8956f + call Function8949c + call Function8a60d + pop bc + ret +; 894ca + +INCBIN "baserom.gbc", $894ca, $894dc - $894ca + +Function894dc: ; 894dc + push bc + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld c, d + ld b, $0 + ld hl, $5509 + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld de, Unkn1Pals + ld bc, $0018 + call CopyBytes + ld hl, $5557 + ld de, $d018 + ld bc, $0018 + call CopyBytes + pop af + ld [rSVBK], a + pop bc + ret +; 89509 + +INCBIN "baserom.gbc", $89509, $8956f - $89509 + +Function8956f: ; 8956f + push bc + ld hl, $0010 + add hl, bc + ld d, h + ld e, l + ld hl, $000c + add hl, bc + ld b, h + ld c, l + callba Function4e929 + ld a, c + ld [TrainerClass], a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $d030 + ld a, $ff + ld [hli], a + ld a, $7f + ld [hl], a + pop af + ld [rSVBK], a + ld a, [TrainerClass] + ld h, $0 + ld l, a + add hl, hl + add hl, hl + ld de, $70ce + add hl, de + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld de, $d032 + ld c, $4 +.asm_895b1 + ld a, $2 + call GetFarByte + ld [de], a + inc de + inc hl + dec c + jr nz, .asm_895b1 + ld hl, $d036 + xor a + ld [hli], a + ld [hl], a + pop af + ld [rSVBK], a + pop bc + ret +; 895c7 + +INCBIN "baserom.gbc", $895c7, $895f2 - $895c7 + +Function895f2: ; 895f2 + push bc + xor a + ld hl, AttrMap + ld bc, $0168 + call ByteFill + call Function89605 + call Function89655 + pop bc + ret +; 89605 + +Function89605: ; 89605 + ld hl, $ce14 + ld a, $1 + ld de, $0014 + ld c, $e +.asm_8960f + ld [hl], a + dec c + jr z, .asm_8961b + add hl, de + inc a + ld [hl], a + dec a + add hl, de + dec c + jr nz, .asm_8960f + +.asm_8961b + ld hl, $cf19 + ld c, $a + ld a, $2 +.asm_89622 + ld [hli], a + dec a + ld [hli], a + inc a + dec c + jr nz, .asm_89622 + ld hl, $ceb6 + ld a, $4 + ld bc, $0004 + call ByteFill + ld a, $5 + ld bc, $000e + call ByteFill + ret +; 8963d + +Function8963d: ; 8963d + ld hl, $ce21 + ld a, $6 + ld de, $0014 + ld bc, $0707 +.asm_89648 + push hl + ld c, $7 +.asm_8964b + ld [hli], a + dec c + jr nz, .asm_8964b + pop hl + add hl, de + dec b + jr nz, .asm_89648 + ret +; 89655 + +Function89655: ; 89655 + ld hl, $ceca + ld de, $0014 + ld a, $5 + ld b, $4 +.asm_8965f + ld c, $12 + push hl +.asm_89662 + ld [hli], a + dec c + jr nz, .asm_89662 + pop hl + add hl, de + dec b + jr nz, .asm_8965f + ret +; 8966c + +Function8966c: ; 8966c + push bc + call Function89688 + ld hl, $c4a4 + ld c, $8 + call Function896f5 + pop bc + ret +; 8967a + +INCBIN "baserom.gbc", $8967a, $89688 - $8967a + +Function89688: ; 89688 + ld hl, TileMap + ld a, $1 + ld e, $14 + call Function896e1 + ld a, $2 + ld e, $14 + call Function896eb + ld a, $3 + ld [hli], a + ld a, $4 + ld e, $12 + call Function896e1 + ld a, $6 + ld [hli], a + push bc + ld c, $d +.asm_896a9 + call Function896cb + dec c + jr z, .asm_896b5 + call Function896d6 + dec c + jr nz, .asm_896a9 + +.asm_896b5 + pop bc + ld a, $19 + ld [hli], a + ld a, $1a + ld e, $12 + call Function896e1 + ld a, $1c + ld [hli], a + ld a, $2 + ld e, $14 + call Function896eb + ret +; 896cb + +Function896cb: ; 896cb + ld de, $0013 + ld a, $7 + ld [hl], a + add hl, de + ld a, $9 + ld [hli], a + ret +; 896d6 + +Function896d6: ; 896d6 + ld de, $0013 + ld a, $a + ld [hl], a + add hl, de + ld a, $b + ld [hli], a + ret +; 896e1 + +Function896e1: ; 896e1 +.asm_896e1 + ld [hli], a + inc a + dec e + ret z + ld [hli], a + dec a + dec e + jr nz, .asm_896e1 + ret +; 896eb + +Function896eb: ; 896eb +.asm_896eb + ld [hli], a + dec a + dec e + ret z + ld [hli], a + inc a + dec e + jr nz, .asm_896eb + ret +; 896f5 + +Function896f5: ; 896f5 + call Function8971f + call Function89736 + inc hl + inc hl + ld b, 2 ClearScreenArea: ; 0x896ff ; clears an area of the screen @@ -55460,7 +61127,827 @@ ClearScreenArea: ; 0x896ff ret ; 0x8971f -INCBIN "baserom.gbc", $8971f, $8addb - $8971f +Function8971f: ; 8971f + ld a, $2c + ld [hli], a + ld a, $2d + ld [hld], a + push hl + ld de, $0014 + add hl, de + ld a, $31 + ld [hli], a + ld a, $32 + ld [hld], a + add hl, de + ld a, $35 + ld [hl], a + pop hl + ret +; 89736 + +Function89736: ; 89736 + push hl + inc hl + inc hl + ld e, c + ld d, $0 + add hl, de + ld a, $2f + ld [hli], a + ld a, $30 + ld [hld], a + ld de, $0014 + add hl, de + ld a, $33 + ld [hli], a + ld a, $34 + ld [hl], a + add hl, de + ld a, $1f + ld [hl], a + pop hl + ret +; 89753 + +Function89753: ; 89753 + ld a, $c + ld [hl], a + xor a + call Function89215 + ret +; 8975b + +Function8975b: ; 8975b + ld a, $1d + ld [hli], a + inc a + ld [hli], a + ld a, $d + ld [hl], a + dec hl + dec hl + ld a, $4 + ld e, $3 +.asm_89769 + call Function89215 + inc hl + dec e + jr nz, .asm_89769 + ret +; 89771 + +Function89771: ; 89771 + ld a, $12 + ld [hl], a + ld a, $3 + call Function89215 + ret +; 8977a + +Function8977a: ; 8977a + ld e, $4 + ld d, $13 +.asm_8977e + ld a, d + ld [hl], a + ld a, $4 + call Function89215 + inc hl + inc d + dec e + jr nz, .asm_8977e + ld e, $e +.asm_8978c + ld a, d + ld [hl], a + xor a + call Function89215 + inc hl + dec e + jr nz, .asm_8978c + ret +; 89797 + +Function89797: ; 89797 + push bc + ld a, $e + ld [hl], a + ld bc, $0014 + add hl, bc + ld a, $11 + ld [hli], a + ld a, $10 + ld c, $8 +.asm_897a6 + ld [hli], a + dec c + jr nz, .asm_897a6 + ld a, $f + ld [hl], a + pop bc + ret +; 897af + +Function897af: ; 897af + push bc + ld hl, $0010 + add hl, bc + ld d, h + ld e, l + ld hl, $000c + add hl, bc + ld b, h + ld c, l + callba Function4e929 + ld a, c + ld [TrainerClass], a + xor a + ld [CurPartySpecies], a + ld de, $9370 + callba Function5120d + pop bc + ret +; 897d5 + +Function897d5: ; 897d5 + push bc + call Function8934a + jr nc, .asm_897f3 + ld hl, $ce21 + xor a + ld de, $0014 + ld bc, $0707 +.asm_897e5 + push hl + ld c, $7 +.asm_897e8 + ld [hli], a + dec c + jr nz, .asm_897e8 + pop hl + add hl, de + dec b + jr nz, .asm_897e5 + pop bc + ret + +.asm_897f3 + ld a, $37 + ld [$ffad], a + ld hl, $c4e8 + ld bc, $0707 + ld a, $13 + call Predef + call Function8963d + pop bc + ret +; 89807 + +INCBIN "baserom.gbc", $89807, $89844 - $89807 + +Function89844: ; 89844 + call Function89481 + call Function894bb + call Function897af + push bc + call Function3200 + call Function32f9 + pop bc + ret +; 89856 + +Function89856: ; 89856 + push bc + call Function891b8 + pop bc + call Function895f2 + call Function8966c + call Function899d3 + call Function898aa + call Function898be + call Function898dc + call Function898f3 + push bc + ld bc, $d008 + ld hl, $c56a + call Function89975 + pop bc + call Function897d5 + ret +; 8987f + +INCBIN "baserom.gbc", $8987f, $898aa - $8987f + +Function898aa: ; 898aa + ld a, [MenuSelection] + and a + ret z + push bc + ld hl, $c4ba + ld de, MenuSelection + ld bc, $8102 + call PrintNum + pop bc + ret +; 898be + +Function898be: ; 898be + push bc + ld de, DefaultFlypoint + ld hl, DefaultFlypoint + call Function89331 + jr nc, .asm_898cd + ld de, $5116 + +.asm_898cd + ld hl, $c4bd + ld a, [MenuSelection] + and a + jr nz, .asm_898d7 + dec hl + +.asm_898d7 + call PlaceString + pop bc + ret +; 898dc + +Function898dc: ; 898dc + ld hl, $0006 + add hl, bc + push bc + ld d, h + ld e, l + call Function8934a + jr nc, .asm_898eb + ld de, $5116 + +.asm_898eb + ld hl, $c4f6 + call PlaceString + pop bc + ret +; 898f3 + +Function898f3: ; 898f3 + push bc + ld hl, $000c + add hl, bc + ld d, h + ld e, l + call Function8934a + jr c, .asm_8990a + ld hl, $c509 + ld bc, $8205 + call PrintNum + jr .asm_89913 + +.asm_8990a + ld hl, $c509 + ld de, $5116 + call PlaceString + +.asm_89913 + pop bc + ret +; 89915 + +Function89915: ; 89915 + push bc + push hl + ld de, $5942 + ld c, $8 +.asm_8991c + ld a, [de] + ld [hl], a + ld a, $4 + call Function89215 + inc hl + inc de + dec c + jr nz, .asm_8991c + pop hl + ld b, $4 + ld c, $2b + ld a, $8 + ld de, $594a +.asm_89932 + push af + ld a, [de] + cp [hl] + jr nz, .asm_8993b + call Function8994e + inc de + +.asm_8993b + inc hl + pop af + dec a + jr nz, .asm_89932 + pop bc + ret +; 89942 + +INCBIN "baserom.gbc", $89942, $8994e - $89942 + +Function8994e: ; 8994e + push hl + push de + ld de, $0014 + ld a, l + sub e + ld l, a + ld a, h + sbc d + ld h, a + ld a, c + ld [hl], a + ld a, b + call Function89215 + pop de + pop hl + ret +; 89962 + +Function89962: ; 89962 + push bc + ld c, $4 + ld b, $20 +.asm_89967 + ld a, b + ld [hl], a + ld a, $4 + call Function89215 + inc hl + inc b + dec c + jr nz, .asm_89967 + pop bc + ret +; 89975 + +Function89975: ; 89975 + push bc + ld e, $8 +.asm_89978 + ld a, [bc] + ld d, a + call Function8998b + swap d + inc hl + ld a, d + call Function8998b + inc bc + inc hl + dec e + jr nz, .asm_89978 + pop bc + ret +; 8998b + +Function8998b: ; 8998b + push bc + and $f + cp $a + jr nc, .asm_89997 + ld c, $f6 + add c + jr .asm_89999 + +.asm_89997 + ld a, $7f + +.asm_89999 + ld [hl], a + pop bc + ret +; 8999c + +INCBIN "baserom.gbc", $8999c, $899d3 - $8999c + +Function899d3: ; 899d3 + ld hl, $c4f1 + call Function89753 + ld hl, $c506 + call Function8975b + ld hl, $c555 + call Function89771 + ld hl, $c57d + call Function8977a + ld hl, $c505 + call Function89797 + ld hl, $c4f2 + call Function89962 + ld hl, $c556 + call Function89915 + ret +; 899fe + +Function899fe: ; 899fe + push bc + push hl + ld hl, $0019 + add hl, bc + ld b, h + ld c, l + pop hl + call Function89a0c + pop bc + ret +; 89a0c + +Function89a0c: ; 89a0c + push hl + call Function89363 + pop hl + jr c, .asm_89a1c + ld d, h + ld e, l + callba Function11c08f + ret + +.asm_89a1c + ld de, $5153 + call PlaceString + ret +; 89a23 + +INCBIN "baserom.gbc", $89a23, $89a57 - $89a23 + +Function89a57: ; 89a57 + call Function354b + bit 6, c + jr nz, .asm_89a78 + bit 7, c + jr nz, .asm_89a81 + bit 0, c + jr nz, .asm_89a70 + bit 1, c + jr nz, .asm_89a70 + bit 3, c + jr nz, .asm_89a74 + scf + ret + +.asm_89a70 + ld a, $1 + and a + ret + +.asm_89a74 + ld a, $2 + and a + ret + +.asm_89a78 + call Function89a9b + call nc, Function89a8a + ld a, $0 + ret + +.asm_89a81 + call Function89a93 + call nc, Function89a8a + ld a, $0 + ret +; 89a8a + +Function89a8a: ; 89a8a + push af + ld de, $0062 + call StartSFX + pop af + ret +; 89a93 + +Function89a93: ; 89a93 + ld d, $28 + ld e, $1 + call Function89aa3 + ret +; 89a9b + +Function89a9b: ; 89a9b + ld d, $1 + ld e, $ff + call Function89aa3 + ret +; 89aa3 + +Function89aa3: ; 89aa3 + ld a, [MenuSelection] + ld c, a + push bc +.asm_89aa8 + ld a, [MenuSelection] + cp d + jr z, .asm_89ac0 + add e + jr nz, .asm_89ab2 + inc a + +.asm_89ab2 + ld [MenuSelection], a + call Function89ac7 + jr nc, .asm_89aa8 + call Function89ae6 + pop bc + and a + ret + +.asm_89ac0 + pop bc + ld a, c + ld [MenuSelection], a + scf + ret +; 89ac7 + +Function89ac7: ; 89ac7 + call Function89160 + call Function8931b + call Function89ad4 + call CloseSRAM + ret +; 89ad4 + +Function89ad4: ; 89ad4 + push de + call Function8932d + jr c, .asm_89ae3 + ld hl, $0011 + add hl, bc + call Function89b45 + jr c, .asm_89ae4 + +.asm_89ae3 + and a + +.asm_89ae4 + pop de + ret +; 89ae6 + +Function89ae6: ; 89ae6 + ld hl, $d031 + xor a + ld [hl], a + ld a, [MenuSelection] +.asm_89aee + cp $6 + jr c, .asm_89afc + sub $5 + ld c, a + ld a, [hl] + add $5 + ld [hl], a + ld a, c + jr .asm_89aee + +.asm_89afc + ld [$d030], a + ret +; 89b00 + +INCBIN "baserom.gbc", $89b00, $89b45 - $89b00 + +Function89b45: ; 89b45 + push hl + push bc + ld c, $10 + ld e, $0 +.asm_89b4b + ld a, [hli] + ld b, a + and $f + cp $a + jr c, .asm_89b5a + ld a, c + cp $b + jr nc, .asm_89b74 + jr .asm_89b71 + +.asm_89b5a + dec c + swap b + inc e + ld a, b + and $f + cp $a + jr c, .asm_89b6c + ld a, c + cp $b + jr nc, .asm_89b74 + jr .asm_89b71 + +.asm_89b6c + inc e + dec c + jr nz, .asm_89b4b + dec e + +.asm_89b71 + scf + jr .asm_89b75 + +.asm_89b74 + and a + +.asm_89b75 + pop bc + pop hl + ret +; 89b78 + +INCBIN "baserom.gbc", $89b78, $8a60d - $89b78 + +Function8a60d: ; 8a60d + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $6624 + ld de, Unkn2Pals + ld bc, $0008 + call CopyBytes + pop af + ld [rSVBK], a + ret +; 8a624 + +INCBIN "baserom.gbc", $8a624, $8ac4e - $8a624 + +Function8ac4e: ; 8ac4e + xor a + ld [MenuSelection], a + push de + call Function891de + call WhiteBGMap + call Function893cc + pop bc + call Function89844 + call Function8939a + call Function89856 + ld hl, $c5a5 + call Function899fe + call Function891ab + ret +; 8ac70 + +Function8ac70: ; 8ac70 + push de + ld a, $3 + call Function8b94a + +Function8ac76: ; 8ac76 + call Function891fe + call Function8b677 + +Function8ac7c: ; 8ac7c + call Function8b7bd + jr z, .asm_8acf0 + ld a, c + ld [$d02f], a + ld [MenuSelection], a + call Function89160 + call Function8931b + call Function8932d + call CloseSRAM + jr nc, .asm_8acb0 + call Function89160 + ld hl, $0011 + add hl, bc + call Function89b45 + call CloseSRAM + jr nc, .asm_8accc + call Function89160 + call Function892b7 + call CloseSRAM + jr .asm_8accc + +.asm_8acb0 + call Function8ad0b + jr c, Function8ac76 + and a + jr nz, .asm_8accc + call Function89160 + ld h, b + ld l, c + ld d, $0 + ld e, $6 + add hl, de + ld d, h + ld e, l + pop hl + ld c, $1f + call Function89193 + jr .asm_8ace4 + +.asm_8accc + pop hl + call Function89160 + ld d, b + ld e, c + ld c, $6 + call Function89193 + ld a, $6 + add e + ld e, a + ld a, $0 + adc d + ld d, a + ld c, $1f + call Function89193 + +.asm_8ace4 + call CloseSRAM + call Functione51 + ld a, [$d02f] + ld c, a + and a + ret + +.asm_8acf0 + ld hl, $6d06 + call PrintText + ld a, $2 + call Function89259 + jp c, Function8ac7c + call Functione51 + pop de + ld c, $0 + scf + ret +; 8ad06 + +INCBIN "baserom.gbc", $8ad06, $8ad0b - $8ad06 + +Function8ad0b: ; 8ad0b +.asm_8ad0b + ld a, [MenuSelection] + ld [$d02f], a + call Function891de + call WhiteBGMap + call Function893cc + call Function89160 + call Function8931b + push bc + call Function89844 + call Function8939a + call Function89856 + ld hl, $c5a5 + call Function899fe + call CloseSRAM + call Function891ab + pop bc +.asm_8ad37 + push bc + call Function89a57 + pop bc + jr c, .asm_8ad37 + and a + jr z, .asm_8ad0b + cp $2 + jr z, .asm_8ad37 + call Function8923c + push bc + ld hl, $c590 + ld b, $4 + ld c, $12 + call TextBox + ld de, $6d89 + ld hl, $c5b9 + call PlaceString + ld a, $2 + call Function8925e + jr c, .asm_8ad87 + call Function8923c + ld hl, $c590 + ld b, $4 + ld c, $12 + call TextBox + ld de, $6d9c + ld hl, $c5b9 + call PlaceString + ld a, $1 + call Function8925e + jr c, .asm_8ad84 + ld a, $0 + jr .asm_8ad86 + +.asm_8ad84 + ld a, $1 + +.asm_8ad86 + and a + +.asm_8ad87 + pop bc + ret +; 8ad89 + +INCBIN "baserom.gbc", $8ad89, $8addb - $8ad89 SpecialHoOhChamber: ; 0x8addb ld hl, PartySpecies @@ -55487,7 +61974,7 @@ Function8adef: ; 8adef ld a, WATER_STONE ld [CurItem], a ld hl, NumItems - call PickUpItem + call CheckItem jr c, .asm_8ae24 ld a, [PartyCount] @@ -55567,7 +62054,373 @@ Function8ae4e: ; 8ae4e ret ; 8ae68 -INCBIN "baserom.gbc", $8ae68, $8b170 - $8ae68 +Function8ae68: ; 8ae68 + ld a, [ScriptVar] + ld hl, $6ed5 + and a + jr z, .asm_8ae79 + ld d, $0 + ld e, $5 +.asm_8ae75 + add hl, de + dec a + jr nz, .asm_8ae75 + +.asm_8ae79 + call LoadMenuDataHeader + xor a + ld [hBGMapMode], a + call Function1cbb + call Function1ad2 + call Function321c + call Function1cfd + inc hl + ld d, $0 + ld e, $14 + add hl, de + add hl, de + ld a, [ScriptVar] + ld c, a + ld de, $6ebc + and a + jr z, .asm_8aea5 +.asm_8ae9c + ld a, [de] + inc de + cp $ff + jr nz, .asm_8ae9c + dec c + jr nz, .asm_8ae9c + +.asm_8aea5 + call Function8af09 + ld bc, $0939 + add hl, bc + call Function8aee9 + call Function3200 + call Functiona36 + call PlayClickSFX + call Function1c17 + ret +; 8aebc + +INCBIN "baserom.gbc", $8aebc, $8aee9 - $8aebc + +Function8aee9: ; 8aee9 +.asm_8aee9 + ld a, [de] + cp $ff + ret z + cp $60 + ld a, $d + jr c, .asm_8aef5 + ld a, $5 + +.asm_8aef5 + call Function8aefd + inc hl + inc hl + inc de + jr .asm_8aee9 +; 8aefd + +Function8aefd: ; 8aefd + push hl + ld [hli], a + ld [hld], a + ld b, $0 + ld c, $14 + add hl, bc + ld [hli], a + ld [hl], a + pop hl + ret +; 8af09 + +Function8af09: ; 8af09 + push hl + push de +.asm_8af0b + ld a, [de] + cp $ff + jr z, .asm_8af19 + ld c, a + call Function8af1c + inc hl + inc hl + inc de + jr .asm_8af0b + +.asm_8af19 + pop de + pop hl + ret +; 8af1c + +Function8af1c: ; 8af1c + push hl + ld a, c + cp $60 + jr z, .asm_8af3b + cp $62 + jr z, .asm_8af4b + cp $64 + jr z, .asm_8af5b + ld [hli], a + inc a + ld [hld], a + dec a + ld b, $0 + ld c, $14 + add hl, bc + ld c, $10 + add c + ld [hli], a + inc a + ld [hl], a + pop hl + ret + +.asm_8af3b + ld [hl], $5b + inc hl + ld [hl], $5c + ld bc, $0013 + add hl, bc + ld [hl], $4d + inc hl + ld [hl], $5d + pop hl + ret + +.asm_8af4b + ld [hl], $4e + inc hl + ld [hl], $4f + ld bc, $0013 + add hl, bc + ld [hl], $5e + inc hl + ld [hl], $5f + pop hl + ret + +.asm_8af5b + ld [hl], $2 + inc hl + ld [hl], $3 + ld bc, $0013 + add hl, bc + ld [hl], $3 + inc hl + ld [hl], $2 + pop hl + ret +; 8af6b + +Function8af6b: ; 8af6b + xor a + ld [$cf76], a + ld hl, $6fa9 + call Function1d3c + ld a, [$dc4a] + ld c, a + callba Functionb8f8f + ld a, [$cf83] + add c + add $2 + ld [$cf85], a + call Function1c00 + call Function1e5d + callba Function4ae5e + ld b, $0 + ld a, [MenuSelection] + ld c, a + ld a, [$dc4a] + and $3 + cp c + jr nz, .asm_8afa4 + ld b, $1 + +.asm_8afa4 + ld a, b + ld [ScriptVar], a + ret +; 8afa9 + +INCBIN "baserom.gbc", $8afa9, $8afd4 - $8afa9 + +Function8afd4: ; 8afd4 + xor a + ld [$d0e4], a + ld a, $1 + ld [MenuSelection], a + call Function8b0d6 + call Function8b090 + ld hl, $7072 + call PrintText + jr .asm_8aff1 + +.asm_8afeb + ld hl, $7072 + call Function105a + +.asm_8aff1 + call DelayFrame + call Function1ad2 + call Function8b097 + call Function8b0e2 + jr z, .asm_8b05f + ld [$cf75], a + call Function8b154 + ld a, [hl] + ld [$d265], a + call GetItemName + ld hl, $7077 + call Function105a + call Function1dcf + jr c, .asm_8afeb + ld a, [$cf75] + call Function8b154 + inc hl + ld a, [hld] + ld c, a + ld a, [$dc4b] + cp c + jr c, .asm_8b047 + ld a, [hli] + push hl + ld [CurItem], a + ld a, $1 + ld [$d10c], a + ld hl, NumItems + call ReceiveItem + pop hl + jr nc, .asm_8b04c + ld a, [hl] + ld c, a + ld a, [$dc4b] + sub c + ld [$dc4b], a + call Function8b097 + jr .asm_8b051 + +.asm_8b047 + ld hl, $7081 + jr .asm_8b05a + +.asm_8b04c + ld hl, $7086 + jr .asm_8b05a + +.asm_8b051 + ld de, $0022 + call StartSFX + ld hl, $707c + +.asm_8b05a + call Function105a + jr .asm_8afeb + +.asm_8b05f + call Function1c17 + call Function1c17 + ld hl, $708b + call PrintText + call Functiona36 + call PlayClickSFX + ret +; 8b072 + +INCBIN "baserom.gbc", $8b072, $8b090 - $8b072 + +Function8b090: ; 8b090 + ld hl, $70d1 + call LoadMenuDataHeader + ret +; 8b097 + +Function8b097: ; 8b097 + ld de, $dc4b + call Function8b09e + ret +; 8b09e + +Function8b09e: ; 8b09e + push de + xor a + ld [hBGMapMode], a + ld hl, $70d1 + call Function1d3c + call Function1cbb + call Function1ad2 + call Function1cfd + ld bc, $0015 + add hl, bc + ld de, $70ca + call PlaceString + ld h, b + ld l, c + inc hl + ld a, $7f + ld [hli], a + ld [hld], a + pop de + ld bc, $0102 + call PrintNum + ret +; 8b0ca + +INCBIN "baserom.gbc", $8b0ca, $8b0d6 - $8b0ca + +Function8b0d6: ; 8b0d6 + ld hl, $70dd + call LoadMenuDataHeader + ret +; 8b0dd + +INCBIN "baserom.gbc", $8b0dd, $8b0e2 - $8b0dd + +Function8b0e2: ; 8b0e2 + ld hl, $7113 + call Function1d3c + ld a, [MenuSelection] + ld [$cf88], a + xor a + ld [$cf76], a + ld [hBGMapMode], a + call Function352f + call Function1ad2 + call Function350c + ld a, [MenuSelection] + ld c, a + ld a, [$cfa9] + ld [MenuSelection], a + ld a, [$cf73] + cp $2 + jr z, .asm_8b111 + ld a, c + and a + ret nz + +.asm_8b111 + xor a + ret +; 8b113 + +INCBIN "baserom.gbc", $8b113, $8b154 - $8b113 + +Function8b154: ; 8b154 + dec a + ld hl, $715e + ld b, $0 + ld c, a + add hl, bc + add hl, bc + ret +; 8b15e + +INCBIN "baserom.gbc", $8b15e, $8b170 - $8b15e SpecialDratini: ; 0x8b170 ; if ScriptVar is 0 or 1, change the moveset of the last Dratini in the party. @@ -55680,7 +62533,136 @@ GetNthPartyMon: ; 0x8b1ce scf ret -INCBIN "baserom.gbc", $8b1e1, $8b342 - $8b1e1 +Function8b1e1: ; 8b1e1 + ld de, $71ed + call Function8b25b + ret z + call Function8b231 + scf + ret +; 8b1ed + +INCBIN "baserom.gbc", $8b1ed, $8b201 - $8b1ed + +Function8b201: ; 8b201 + ld hl, StringBuffer2 + ld [hl], $f9 + inc hl + ld [hl], $50 + ld de, $7215 + call Function8b25b + ret z + call Function8b231 + scf + ret +; 8b215 + +INCBIN "baserom.gbc", $8b215, $8b231 - $8b215 + +Function8b231: ; 8b231 + ld hl, $7238 + call PrintText + ret +; 8b238 + +INCBIN "baserom.gbc", $8b238, $8b25b - $8b238 + +Function8b25b: ; 8b25b + ld bc, $0000 +.asm_8b25e + call Function8b26c + call c, Function8b28e + call Function8b276 + jr nz, .asm_8b25e + ld a, b + and a + ret +; 8b26c + +Function8b26c: ; 8b26c + push de + push bc + call Function8b27a + ld a, c + rst JumpTable + pop bc + pop de + ret +; 8b276 + +Function8b276: ; 8b276 + inc c + ld a, [de] + cp c + ret +; 8b27a + +Function8b27a: ; 8b27a + inc de + ld a, [de] + ld l, a + inc de + ld a, [de] + ld h, a + ret +; 8b281 + +Function8b281: ; 8b281 + inc de + inc de + inc de + ld a, [de] + ld l, a + inc de + ld a, [de] + ld h, a + ret +; 8b28a + +Function8b28a: ; 8b28a + ld a, [hli] + ld h, [hl] + ld l, a + ret +; 8b28e + +Function8b28e: ; 8b28e + push de + push bc + ld a, b + and a + call z, Function8b29d + pop bc + call Function8b2a9 + ld b, $1 + pop de + ret +; 8b29d + +Function8b29d: ; 8b29d + push de + call Function8b281 + call Function8b28a + call PrintText + pop de + ret +; 8b2a9 + +Function8b2a9: ; 8b2a9 + push bc + call Function8b281 + inc hl + inc hl + ld b, $0 + add hl, bc + add hl, bc + call Function8b28a + call PrintText + pop bc + ret +; 8b2bb + +INCBIN "baserom.gbc", $8b2bb, $8b342 - $8b2bb Function8b342: ; 8b342 @@ -55690,7 +62672,7 @@ Function8b342: ; 8b342 xor a .asm_8b348 push af - ld hl, $7354 + ld hl, Table8b354 rst JumpTable pop af inc a @@ -55699,7 +62681,15 @@ Function8b342: ; 8b342 ret ; 8b354 -INCBIN "baserom.gbc", $8b354, $8b35b - $8b354 +Table8b354: ; 8b354 + dw Function8b35a + dw Function8b35b + dw Function8b35c +; 8b35a + +Function8b35a: ; 8b35a + ret +; 8b35b Function8b35b: ; 8b35b @@ -55710,12 +62700,343 @@ Function8b35c: ; 8b35c ret ; 8b35d -INCBIN "baserom.gbc", $8b35d, $8ba24 - $8b35d +INCBIN "baserom.gbc", $8b35d, $8b677 - $8b35d + +Function8b677: ; 8b677 + call WhiteBGMap + call DisableLCD + call Function8b690 + call Function8b6bb + call Function8b6ed + call EnableLCD + call Function891ab + call Function32f9 + ret +; 8b690 + +Function8b690: ; 8b690 + ld hl, $74b9 + ld de, VTiles2 + ld bc, $0160 + ld a, $5e + call FarCopyBytes + ld hl, $7609 + ld de, $9610 + ld bc, $0010 + ld a, $5e + call FarCopyBytes + ld hl, $7619 + ld de, $8ee0 + ld bc, $0010 + ld a, $5e + call FarCopyBytes + ret +; 8b6bb + +Function8b6bb: ; 8b6bb + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $76d5 + ld de, Unkn1Pals + ld bc, $0018 + call CopyBytes + pop af + ld [rSVBK], a + call Function8949c + ret +; 8b6d5 + +INCBIN "baserom.gbc", $8b6d5, $8b6ed - $8b6d5 + +Function8b6ed: ; 8b6ed + ld hl, AttrMap + ld bc, $012c + xor a + call ByteFill + ld hl, $cef1 + ld bc, $0050 + ld a, $7 + call ByteFill + ret +; 8b703 + +Function8b703: ; 8b703 + call Function8923c + push hl + ld a, $c + ld [hli], a + inc a + call Function8b73e + inc a + ld [hl], a + pop hl + push hl + push bc + ld de, $0014 + add hl, de +.asm_8b717 + push hl + ld a, $f + ld [hli], a + ld a, $7f + call Function8b73e + ld a, $11 + ld [hl], a + pop hl + ld de, $0014 + add hl, de + dec b + jr nz, .asm_8b717 + call Function8b732 + pop bc + pop hl + jr Function8b744 +; 8b732 + +Function8b732: ; 8b732 + ld a, $12 + ld [hli], a + ld a, $13 + call Function8b73e + ld a, $14 + ld [hl], a + ret +; 8b73e + +Function8b73e: ; 8b73e + ld d, c +.asm_8b73f + ld [hli], a + dec d + jr nz, .asm_8b73f + ret +; 8b744 + +Function8b744: ; 8b744 + ld de, $0939 + add hl, de + inc b + inc b + inc c + inc c + xor a +.asm_8b74d + push bc + push hl +.asm_8b74f + ld [hli], a + dec c + jr nz, .asm_8b74f + pop hl + ld de, $0014 + add hl, de + pop bc + dec b + jr nz, .asm_8b74d + ret +; 8b75d + +Function8b75d: ; 8b75d + call Function8923c + ld hl, TileMap + ld a, $1 + ld bc, $0014 + call ByteFill + ld hl, $c4b4 + ld a, $2 + ld [hl], a + ld hl, $c4bd + ld c, $b + call Function8b788 + ld hl, $c4b5 + ld a, $4 + ld e, $8 +.asm_8b780 + ld [hli], a + inc a + dec e + jr nz, .asm_8b780 + jr Function8b79e +; 8b787 + +Function8b787: ; 8b787 + ret +; 8b788 + +Function8b788: ; 8b788 +.asm_8b788 + ld a, $2 + ld [hli], a + dec c + ret z + ld a, $1 + ld [hli], a + dec c + ret z + ld a, $3 + ld [hli], a + dec c + ret z + ld a, $1 + ld [hli], a + dec c + jr nz, .asm_8b788 + ret +; 8b79e + +Function8b79e: ; 8b79e + ld hl, $cded + ld a, $1 + ld [hli], a + ld hl, $cdf6 + ld e, $b +.asm_8b7a9 + ld a, $2 + ld [hli], a + dec e + ret z + xor a + ld [hli], a + dec e + ret z + ld a, $1 + ld [hli], a + dec e + ret z + xor a + ld [hli], a + dec e + jr nz, .asm_8b7a9 + ret +; 8b7bd + +Function8b7bd: ; 8b7bd + call Function8b855 + ld hl, $7867 + call Function1d3c + ld a, [$d030] + ld [$cf88], a + ld a, [$d031] + ld [$d0e4], a + ld a, [$d032] + and a + jr z, .asm_8b7e0 + ld a, [$cf81] + set 3, a + ld [$cf81], a + +.asm_8b7e0 + ld a, [$d0e3] + and a + jr z, .asm_8b7ea + dec a + ld [$cf77], a + +.asm_8b7ea + ld hl, $c4c8 + ld b, $b + ld c, $12 + call Function8b703 + call Function8b75d + call Function1ad2 + call Function89209 + call Function350c + call Function8920f + ld a, [$cf73] + cp $2 + jr z, .asm_8b823 + cp $20 + jr nz, .asm_8b813 + call Function8b832 + jr .asm_8b7ea + +.asm_8b813 + cp $10 + jr nz, .asm_8b81c + call Function8b83e + jr .asm_8b7ea + +.asm_8b81c + ld a, [MenuSelection] + cp $ff + jr nz, .asm_8b824 + +.asm_8b823 + xor a + +.asm_8b824 + ld c, a + ld a, [$cfa9] + ld [$d030], a + ld a, [$d0e4] + ld [$d031], a + ret +; 8b832 + +Function8b832: ; 8b832 + ld a, [$d0e4] + ld hl, $cf92 + sub [hl] + jr nc, Function8b84b + xor a + jr Function8b84b +; 8b83e + +Function8b83e: ; 8b83e + ld a, [$d0e4] + ld hl, $cf92 + add [hl] + cp $24 + jr c, Function8b84b + ld a, $24 + +Function8b84b: ; 8b84b + ld [$d0e4], a + ld a, [$cfa9] + ld [$cf88], a + ret +; 8b855 + +Function8b855: ; 8b855 + ld a, $28 + ld hl, DefaultFlypoint + ld [hli], a + ld c, $28 + xor a +.asm_8b85e + inc a + ld [hli], a + dec c + jr nz, .asm_8b85e + ld a, $ff + ld [hl], a + ret +; 8b867 + +INCBIN "baserom.gbc", $8b867, $8b94a - $8b867 + +Function8b94a: ; 8b94a + ld [$d033], a + xor a + ld [$d0e4], a + ld [$d032], a + ld [$d0e3], a + ld [$d031], a + ld a, $1 + ld [$d030], a + ret +; 8b960 + +INCBIN "baserom.gbc", $8b960, $8ba24 - $8b960 SECTION "bank23",ROMX,BANK[$23] -INCBIN "baserom.gbc", $8c000, $8c001 - $8c000 +Function8c000: ; 8c000 + ret +; 8c001 Function8c001: ; 8c001 @@ -55790,7 +63111,7 @@ _TimeOfDayPals: ; 8c011 ; restore bg palette 8 - ld hl, CurFruit ; last byte in Unkn1Pals + ld hl, $d03f ; last byte in Unkn1Pals ; save wram bank ld a, [rSVBK] @@ -55815,7 +63136,7 @@ _TimeOfDayPals: ; 8c011 ld [rSVBK], a ; update palettes - call UpdateTimePals + call _UpdateTimePals call DelayFrame ; successful change @@ -55829,7 +63150,7 @@ _TimeOfDayPals: ; 8c011 ; 8c070 -UpdateTimePals: ; 8c070 +_UpdateTimePals: ; 8c070 ld c, $9 ; normal call GetTimePalFade call DmgToCgbTimePals @@ -55853,7 +63174,38 @@ Function8c084: ; 8c084 ret ; 8c092 -INCBIN "baserom.gbc", $8c092, $8c0c1 - $8c092 +Function8c092: ; 8c092 + call Function8c0c1 + ld c, $9 + call GetTimePalFade + ld b, $4 +.asm_8c09c + call DmgToCgbTimePals + inc hl + inc hl + inc hl + ld c, $7 + call DelayFrames + dec b + jr nz, .asm_8c09c + ret +; 8c0ab + +Function8c0ab: ; 8c0ab + ld c, $0 + call GetTimePalFade + ld b, $4 + call Function8c15e + ret +; 8c0b6 + +Function8c0b6: ; 8c0b6 + ld c, $9 + call GetTimePalFade + ld b, $4 + call Function8c16d + ret +; 8c0c1 Function8c0c1: ; 8c0c1 @@ -56328,7 +63680,7 @@ Function8c6d8: ; 8c6d8 push af ld a, $5 ld [rSVBK], a - ld hl, $d100 + ld hl, LYOverrides call Function8c6ef ld hl, $d200 call Function8c6ef @@ -56414,7 +63766,323 @@ Function8ca0c: ; 8ca0c jp [hl] ; 8ca1b -INCBIN "baserom.gbc", $8ca1b, $8cf4f - $8ca1b +INCBIN "baserom.gbc", $8ca1b, $8cc04 - $8ca1b + +Function8cc04: ; 8cc04 + ld a, [ScriptVar] + and a + jr nz, .asm_8cc14 + ld a, $1 + ld bc, $4060 + ld de, $fca0 + jr .asm_8cc1c + +.asm_8cc14 + ld a, $ff + ld bc, $c0a0 + ld de, $b460 + +.asm_8cc1c + ld h, a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, h + ld [$d191], a + ld a, c + ld [$d192], a + ld a, b + ld [$d193], a + ld a, e + ld [$d194], a + ld a, d + ld [$d195], a + ld a, [hSCX] + push af + ld a, [hSCY] + push af + call Function8ccc9 + ld hl, $ff9e + ld a, [hl] + push af + ld [hl], $1 +.asm_8cc48 + ld a, [$cf63] + and a + jr z, .asm_8cc66 + bit 7, a + jr nz, .asm_8cc6b + callab Function8cf69 + call Function8cdf7 + call Function8cc99 + call Function3b0c + call DelayFrame + jr .asm_8cc48 + +.asm_8cc66 + call Function8ceae + jr .asm_8cc48 + +.asm_8cc6b + pop af + ld [$ff9e], a + call WhiteBGMap + xor a + ld [hLCDStatCustom], a + ld [$ffc7], a + ld [$ffc8], a + ld [hSCX], a + ld [Requested2bppSource], a + ld [$cf69], a + ld [Requested2bppDest], a + ld [$cf6b], a + ld [Requested2bpp], a + call ClearTileMap + pop af + ld [hSCY], a + pop af + ld [hSCX], a + xor a + ld [hBGMapMode], a + pop af + ld [rSVBK], a + ret +; 8cc99 + +Function8cc99: ; 8cc99 + ld hl, $d200 + ld c, $2f + ld a, [$cf64] + add a + ld [hSCX], a + call Function8ccc4 + ld c, $30 + ld a, [$cf65] + call Function8ccc4 + ld c, $31 + ld a, [$cf64] + add a + call Function8ccc4 + ld a, [$d191] + ld d, a + ld hl, $cf64 + ld a, [hl] + add d + add d + ld [hl], a + ret +; 8ccc4 + +Function8ccc4: ; 8ccc4 +.asm_8ccc4 + ld [hli], a + dec c + jr nz, .asm_8ccc4 + ret +; 8ccc9 + +Function8ccc9: ; 8ccc9 + call WhiteBGMap + call ClearSprites + call DisableLCD + callab Function8cf53 + call Function8cdc3 + call Function8cd27 + ld a, $90 + ld [hWY], a + call EnableLCD + xor a + ld [hBGMapMode], a + ld [hSCX], a + ld [hSCY], a + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + callba GetPlayerIcon + pop af + ld [rSVBK], a + ld hl, VTiles0 + ld c, $4 + call Request2bpp + ld hl, $00c0 + add hl, de + ld d, h + ld e, l + ld hl, $8040 + ld c, $4 + call Request2bpp + call Function8cda6 + ld hl, $cf63 + xor a + ld [hli], a + ld a, [$d192] + ld [hli], a + ld [hli], a + ld [hli], a + ld de, MUSIC_MAGNET_TRAIN + call StartMusic2 + ret +; 8cd27 + +Function8cd27: ; 8cd27 + ld hl, VBGMap0 + xor a +.asm_8cd2b + call Function8cd74 + ld b, $10 + call Function8cd6c + inc a + cp $12 + jr c, .asm_8cd2b + ld hl, $98c0 + ld de, $4eff + ld c, $14 + call Function8cd65 + ld hl, $98e0 + ld de, $4f13 + ld c, $14 + call Function8cd65 + ld hl, $9900 + ld de, $4f27 + ld c, $14 + call Function8cd65 + ld hl, $9920 + ld de, $4f3b + ld c, $14 + call Function8cd65 + ret +; 8cd65 + +Function8cd65: ; 8cd65 +.asm_8cd65 + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_8cd65 + ret +; 8cd6c + +Function8cd6c: ; 8cd6c +.asm_8cd6c + ld [hl], e + inc hl + ld [hl], d + inc hl + dec b + jr nz, .asm_8cd6c + ret +; 8cd74 + +Function8cd74: ; 8cd74 + push hl + ld e, a + ld d, $0 + ld hl, $4d82 + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + pop hl + ret +; 8cd82 + +INCBIN "baserom.gbc", $8cd82, $8cda6 - $8cd82 + +Function8cda6: ; 8cda6 + ld hl, LYOverrides + ld bc, $0090 + ld a, [$d192] + call ByteFill + ld hl, $d200 + ld bc, $0090 + ld a, [$d192] + call ByteFill + ld a, $43 + ld [hLCDStatCustom], a + ret +; 8cdc3 + +Function8cdc3: ; 8cdc3 + ld a, $1 + ld [rVBK], a + ld hl, VBGMap0 + ld bc, $0080 + ld a, $2 + call ByteFill + ld hl, $9880 + ld bc, $0140 + xor a + call ByteFill + ld hl, $99c0 + ld bc, $0080 + ld a, $2 + call ByteFill + ld hl, $9907 + ld bc, $0006 + ld a, $4 + call ByteFill + ld a, $0 + ld [rVBK], a + ret +; 8cdf7 + +Function8cdf7: ; 8cdf7 + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $4e06 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 8ce06 + +INCBIN "baserom.gbc", $8ce06, $8ceae - $8ce06 + +Function8ceae: ; 8ceae + callba Function8cf69 + call Function8cdf7 + call Function8cc99 + call Function3b0c + call DelayFrame + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [TimeOfDayPal] + push af + ld a, [$d19a] + push af + ld a, [TimeOfDay] + and $3 + ld [TimeOfDayPal], a + ld a, $1 + ld [$d19a], a + ld b, $9 + call GetSGBLayout + call UpdateTimePals + ld a, [rBGP] + ld [$cfc7], a + ld a, [rOBP0] + ld [$cfc8], a + ld a, [rOBP1] + ld [$cfc9], a + pop af + ld [$d19a], a + pop af + ld [TimeOfDayPal], a + pop af + ld [rSVBK], a + ret +; 8ceff + +INCBIN "baserom.gbc", $8ceff, $8cf4f - $8ceff Function8cf4f: ; 8cf4f call Function3238 @@ -57522,7 +65190,19 @@ BigmonIcon: INCBIN "gfx/icon/bigmon.2bpp" ; 0x8fe8d SECTION "bank24",ROMX,BANK[$24] -INCBIN "baserom.gbc", $90000, $9000f - $90000 +Function90000: ; 90000 + call Function9001c + jr c, .asm_9000d + call Function9002d + jr nc, .asm_9000d + ld [hl], c + xor a + ret + +.asm_9000d + scf + ret +; 9000f Function9000f: ; 9000f @@ -57559,7 +65239,58 @@ Function9001c: ; 9001c ret ; 9002d -INCBIN "baserom.gbc", $9002d, $90069 - $9002d +Function9002d: ; 9002d + call Function90040 + ld b, a + ld hl, $dc7c +.asm_90034 + ld a, [hli] + and a + jr z, .asm_9003d + dec b + jr nz, .asm_90034 + xor a + ret + +.asm_9003d + dec hl + scf + ret +; 90040 + +Function90040: ; 90040 + xor a + ld [Buffer1], a + ld hl, $4066 +.asm_90047 + ld a, [hli] + cp $ff + jr z, .asm_9005f + cp c + jr z, .asm_9005d + push bc + push hl + ld c, a + call Function9001c + jr c, .asm_9005b + ld hl, Buffer1 + inc [hl] + +.asm_9005b + pop hl + pop bc + +.asm_9005d + jr .asm_90047 + +.asm_9005f + ld a, $a + ld hl, Buffer1 + sub [hl] + ret +; 90066 + +INCBIN "baserom.gbc", $90066, $90069 - $90066 Function90069: ; 90069 @@ -57710,7 +65441,171 @@ Function90375: ; 90375 ret ; 90380 -INCBIN "baserom.gbc", $90380, $909f2 - $90380 +INCBIN "baserom.gbc", $90380, $9039a - $90380 + +Function9039a: ; 9039a + push hl + ld hl, $445f + ld bc, $000c + call AddNTimes + ld a, [hli] + ld b, [hl] + ld c, a + pop hl + ret +; 903a9 + +INCBIN "baserom.gbc", $903a9, $90439 - $903a9 + +Function90439: ; 90439 + ld a, [$dbf9] + call Function9039a + ld d, c + ld e, b + push de + ld a, [$dbf9] + ld hl, $4461 + ld bc, $000c + call AddNTimes + ld b, [hl] + inc hl + ld c, [hl] + push bc + call GetWorldMapLocation + ld e, a + callba GetLandmarkName + pop bc + pop de + ret +; 9045f + +INCBIN "baserom.gbc", $9045f, $90913 - $9045f + +Function90913: ; 90913 + ld a, [$ffaa] + push af + ld a, $1 + ld [$ffaa], a + ld de, $4903 + ld hl, $8ef0 + ld bc, $2401 + call Request1bpp + ld de, $490b + ld hl, $8f50 + ld bc, $2401 + call Request1bpp + xor a + ld [DefaultFlypoint], a +.asm_90936 + ld hl, $c590 + ld bc, $0412 + call TextBox + call Function1d6e + ld hl, $4a3f + call PrintText + ld hl, $c4e5 + ld b, $2 + ld c, $9 + call TextBox + ld hl, $c4ea + ld [hl], $ef + ld hl, $c526 + ld [hl], $f5 + ld hl, $c50e + call Function909de + call Function321c + ld c, $a + call DelayFrames +.asm_9096a + call Functiona57 + call Function90993 + jr nc, .asm_9096a + call Function1c07 + call Function1ad2 + ld hl, $4a44 + call PrintText + call Function1dcf + jr c, .asm_90936 + ld a, [DefaultFlypoint] + ld [StringBuffer2], a + call $0663 + call Functione51 + pop af + ld [$ffaa], a + ret +; 90993 + +Function90993: ; 90993 + ld a, [hJoyPressed] + and $1 + jr z, .asm_9099b + scf + ret + +.asm_9099b + ld hl, $ffa9 + ld a, [hl] + and $40 + jr nz, .asm_909ba + ld a, [hl] + and $80 + jr nz, .asm_909ad + call DelayFrame + and a + ret + +.asm_909ad + ld hl, DefaultFlypoint + ld a, [hl] + and a + jr nz, .asm_909b6 + ld a, $7 + +.asm_909b6 + dec a + ld [hl], a + jr .asm_909c6 + +.asm_909ba + ld hl, DefaultFlypoint + ld a, [hl] + cp $6 + jr c, .asm_909c4 + ld a, $ff + +.asm_909c4 + inc a + ld [hl], a + +.asm_909c6 + xor a + ld [hBGMapMode], a + ld hl, $c4fa + ld b, $2 + ld c, $9 + call ClearBox + ld hl, $c50e + call Function909de + call WaitBGMap + and a + ret +; 909de + +Function909de: ; 909de + push hl + ld a, [DefaultFlypoint] + ld e, a + ld d, $0 + ld hl, $49f2 + add hl, de + add hl, de + ld a, [hli] + ld d, [hl] + ld e, a + pop hl + call PlaceString + ret +; 909f2 dw Sunday dw Monday @@ -57737,7 +65632,214 @@ Saturday: db "SATURDAY@" -INCBIN "baserom.gbc", $90a3f, $914dd - $90a3f +INCBIN "baserom.gbc", $90a3f, $90a54 - $90a3f + +Function90a54: ; 90a54 + ld a, [$d4c2] + set 7, a + ld [$d4c2], a + ld hl, $c5b9 + ld bc, $0312 + call ClearBox + ld hl, $4a6c + call Function13e5 + ret +; 90a6c + +INCBIN "baserom.gbc", $90a6c, $90a88 - $90a6c + +Function90a88: ; 90a88 + ld a, [$d4c2] + res 7, a + ld [$d4c2], a + ld hl, $c5b9 + ld bc, $0312 + call ClearBox + ld hl, $4aa0 + call Function13e5 + ret +; 90aa0 + +INCBIN "baserom.gbc", $90aa0, $90c4e - $90aa0 + +Function90c4e: ; 90c4e + call Functiond79 + ld hl, $4ba0 + ld de, VTiles2 + ld a, $3e + call FarDecompress + ld hl, $62e4 + ld de, $9300 + ld a, $77 + call FarDecompress + ld hl, PokegearSpritesGFX + ld de, VTiles0 + ld a, $24 + call Decompress + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetWorldMapLocation + cp $5f + jr z, .asm_90ca5 + callba GetPlayerIcon + push de + ld h, d + ld l, e + ld a, b + push af + ld de, $8100 + ld bc, $0040 + call FarCopyBytes + pop af + pop hl + ld de, $00c0 + add hl, de + ld de, $8140 + ld bc, $0040 + call FarCopyBytes + ret + +.asm_90ca5 + ld hl, $4cb2 + ld de, $8100 + ld bc, $0080 + call CopyBytes + ret +; 90cb2 + +INCBIN "baserom.gbc", $90cb2, $90d56 - $90cb2 + +Function90d56: ; 90d56 + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetWorldMapLocation + cp $0 + ret nz + ld a, [BackupMapGroup] + ld b, a + ld a, [BackupMapNumber] + ld c, a + call GetWorldMapLocation + ret +; 90d70 + +INCBIN "baserom.gbc", $90d70, $9106a - $90d70 + +Function9106a: ; 9106a + push af + ld de, $0000 + ld b, $a + ld a, [PlayerGender] + bit 0, a + jr z, .asm_91079 + ld b, $1e + +.asm_91079 + ld a, b + call Function3b2a + ld hl, $0003 + add hl, bc + ld [hl], $10 + pop af + ld e, a + push bc + callba GetLandmarkCoords + pop bc + ld hl, $0004 + add hl, bc + ld [hl], e + ld hl, $0005 + add hl, bc + ld [hl], d + ret +; 91098 + +Function91098: ; 91098 + push af + ld de, $0000 + ld a, $d + call Function3b2a + ld hl, $0003 + add hl, bc + ld [hl], $4 + ld hl, $0002 + add hl, bc + ld [hl], $0 + pop af + push bc + call Function910d4 + pop bc + ret +; 910b4 + +Function910b4: ; 910b4 + push af + ld hl, $c4a8 + ld bc, $020c + call ClearBox + pop af + ld e, a + push de + callba GetLandmarkName + pop de + callba Function1de2c5 + ld hl, $c4a8 + ld [hl], $34 + ret +; 910d4 + +Function910d4: ; 910d4 + push bc + ld e, a + callba GetLandmarkCoords + pop bc + ld hl, $0004 + add hl, bc + ld [hl], e + ld hl, $0005 + add hl, bc + ld [hl], d + ret +; 910e8 + +Function910e8: ; 910e8 + ld a, [StatusFlags] + bit 6, a + jr z, .asm_910f4 + ld d, $5e + ld e, $2f + ret + +.asm_910f4 + ld d, $5e + ld e, $58 + ret +; 910f9 + +INCBIN "baserom.gbc", $910f9, $91492 - $910f9 + +Function91492: ; 91492 + ld a, [EnemyTurnsTaken] + cp $fe + jr z, .asm_914a3 + cp $ff + call z, Function3d03 + xor a + ld [EnemyTurnsTaken], a + ret + +.asm_914a3 + call Function3d47 + xor a + ld [EnemyTurnsTaken], a + ret +; 914ab + +INCBIN "baserom.gbc", $914ab, $914dd - $914ab PokegearSpritesGFX: ; 914dd INCBIN "gfx/misc/pokegear_sprites.lz" @@ -57757,7 +65859,223 @@ RadioChannels: ; 918bf db "# FLUTE@" ; 9191c -INCBIN "baserom.gbc", $9191c, $91ae1 - $9191c +Function9191c: ; 9191c + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + ld a, [$ffaa] + push af + ld a, $1 + ld [$ffaa], a + ld a, [VramState] + push af + xor a + ld [VramState], a + call WhiteBGMap + call ClearTileMap + call ClearSprites + call DisableLCD + call Function90c4e + callba Function8cf53 + ld a, $8 + call Function3cb4 + ld a, $e3 + ld [rLCDC], a + call Function90d56 + ld [DefaultFlypoint], a + ld [$d003], a + xor a + ld [hBGMapMode], a + call Function91a04 + call Function3200 + ld a, [DefaultFlypoint] + call Function9106a + ld a, [$d003] + call Function91098 + ld a, c + ld [$d004], a + ld a, b + ld [StartFlypoint], a + ld b, $2 + call GetSGBLayout + call Function32f9 + ld a, [hCGB] + and a + jr z, .asm_9198b + ld a, $e4 + call Functioncf8 + call DelayFrame + +.asm_9198b + ld a, [DefaultFlypoint] + cp $2f + jr nc, .asm_9199b + ld d, $2e + ld e, $1 + call Function919b0 + jr .asm_919a1 + +.asm_9199b + call Function910e8 + call Function919b0 + +.asm_919a1 + pop af + ld [VramState], a + pop af + ld [$ffaa], a + pop af + ld [Options], a + call WhiteBGMap + ret +; 919b0 + +Function919b0: ; 919b0 +.asm_919b0 + call Functiona57 + ld hl, hJoyPressed + ld a, [hl] + and $2 + ret nz + ld hl, $ffa9 + ld a, [hl] + and $40 + jr nz, .asm_919d4 + ld a, [hl] + and $80 + jr nz, .asm_919e1 +.asm_919c7 + push de + callba Function8cf69 + pop de + call DelayFrame + jr .asm_919b0 + +.asm_919d4 + ld hl, $d003 + ld a, [hl] + cp d + jr c, .asm_919de + ld a, e + dec a + ld [hl], a + +.asm_919de + inc [hl] + jr .asm_919ec + +.asm_919e1 + ld hl, $d003 + ld a, [hl] + cp e + jr nz, .asm_919eb + ld a, d + inc a + ld [hl], a + +.asm_919eb + dec [hl] + +.asm_919ec + push de + ld a, [$d003] + call Function910b4 + ld a, [$d004] + ld c, a + ld a, [StartFlypoint] + ld b, a + ld a, [$d003] + call Function910d4 + pop de + jr .asm_919c7 +; 91a04 + +Function91a04: ; 91a04 + ld a, [DefaultFlypoint] + cp $2f + jr nc, .asm_91a0f + ld e, $0 + jr .asm_91a11 + +.asm_91a0f + ld e, $1 + +.asm_91a11 + callba Function91ae1 + ld a, $7 + ld bc, $0006 + ld hl, $c4a1 + call ByteFill + ld hl, TileMap + ld [hl], $6 + ld hl, $c4a7 + ld [hl], $17 + ld hl, $c4bb + ld [hl], $16 + ld hl, $c4cf + ld [hl], $26 + ld a, $7 + ld bc, $000b + ld hl, $c4d0 + call ByteFill + ld hl, $c4db + ld [hl], $17 + ld a, [$d003] + call Function910b4 + callba TownMapPals + ret +; 91a53 + +Function91a53: ; 91a53 + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + call Function91a87 + ld c, $64 + call DelayFrames +.asm_91a62 + call Functiona57 + ld a, [hJoyPressed] + and $3 + jr nz, .asm_91a7f + ld a, [EnemyEvaLevel] + ld l, a + ld a, [$c6db] + ld h, a + ld a, [EnemyAccLevel] + and a + jr z, .asm_91a7a + rst FarCall + +.asm_91a7a + call DelayFrame + jr .asm_91a62 + +.asm_91a7f + pop af + ld [Options], a + call Function91492 + ret +; 91a87 + +Function91a87: ; 91a87 + ld a, $ff + ld [EnemyTurnsTaken], a + ld hl, $5ab9 + ld d, $0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld de, $5a9b + push de + jp [hl] +; 91a9b + +INCBIN "baserom.gbc", $91a9b, $91ae1 - $91a9b Function91ae1: ; 91ae1 ld a, e @@ -58171,7 +66489,277 @@ FlyMap: ; 91c90 ret ; 91d11 -INCBIN "baserom.gbc", $91d11, $91ee4 - $91d11 +Function91d11: ; 91d11 + ld a, [DefaultFlypoint] + push af + ld a, [$d003] + push af + ld a, e + ld [DefaultFlypoint], a + call ClearSprites + xor a + ld [hBGMapMode], a + ld a, $1 + ld [$ffaa], a + ld de, $62d1 + ld hl, $87f0 + ld bc, $2401 + call Request2bpp + call Function91ed0 + ld hl, $8780 + ld c, $4 + call Request2bpp + call Function91ff2 + call FillKantoMap + call Function91de9 + call TownMapPals + ld hl, VBGMap1 + call TownMapBGUpdate + call FillJohtoMap + call Function91de9 + call TownMapPals + ld hl, VBGMap0 + call TownMapBGUpdate + ld b, $2 + call GetSGBLayout + call Function32f9 + xor a + ld [hBGMapMode], a + xor a + call Function91e1e +.asm_91d6e + call Functiona57 + ld hl, hJoyPressed + ld a, [hl] + and $3 + jr nz, .asm_91d8f + ld a, [hJoypadDown] + and $4 + jr nz, .asm_91d87 + call Function91d9b + call Function91dcd + jr .asm_91d8a + +.asm_91d87 + call Function91e5a + +.asm_91d8a + call DelayFrame + jr .asm_91d6e + +.asm_91d8f + call ClearSprites + pop af + ld [$d003], a + pop af + ld [DefaultFlypoint], a + ret +; 91d9b + +Function91d9b: ; 91d9b + ld a, [hl] + and $20 + jr nz, .asm_91da6 + ld a, [hl] + and $10 + jr nz, .asm_91db7 + ret + +.asm_91da6 + ld a, [hWY] + cp $90 + ret z + call ClearSprites + ld a, $90 + ld [hWY], a + xor a + call Function91e1e + ret + +.asm_91db7 + ld a, [StatusFlags] + bit 6, a + ret z + ld a, [hWY] + and a + ret z + call ClearSprites + xor a + ld [hWY], a + ld a, $1 + call Function91e1e + ret +; 91dcd + +Function91dcd: ; 91dcd + ld a, [$ff9b] + ld e, a + and $f + ret nz + ld a, e + and $10 + jr nz, .asm_91ddc + call ClearSprites + ret + +.asm_91ddc + ld hl, TileMap + ld de, Sprites + ld bc, $00a0 + call CopyBytes + ret +; 91de9 + +Function91de9: ; 91de9 + ld hl, TileMap + ld bc, $0014 + ld a, $7f + call ByteFill + ld hl, $c4b4 + ld a, $6 + ld [hli], a + ld bc, $0012 + ld a, $7 + call ByteFill + ld [hl], $17 + call GetPokemonName + ld hl, $c4a2 + call PlaceString + ld h, b + ld l, c + ld de, $5e16 + call PlaceString + ret +; 91e16 + +INCBIN "baserom.gbc", $91e16, $91e1e - $91e16 + +Function91e1e: ; 91e1e + ld [$d003], a + ld e, a + callba Function2a01f + ld de, TileMap + ld hl, Sprites +.asm_91e2e + ld a, [de] + and a + jr z, .asm_91e4d + push de + ld e, a + push hl + callba GetLandmarkCoords + pop hl + ld a, d + sub $4 + ld [hli], a + ld a, e + sub $4 + ld [hli], a + ld a, $7f + ld [hli], a + xor a + ld [hli], a + pop de + inc de + jr .asm_91e2e + +.asm_91e4d + ld hl, Sprites + ld de, TileMap + ld bc, $00a0 + call CopyBytes + ret +; 91e5a + +Function91e5a: ; 91e5a + call Function91ea9 + ret c + ld a, [DefaultFlypoint] + ld e, a + callba GetLandmarkCoords + ld c, e + ld b, d + ld de, $5e9c + ld hl, Sprites +.asm_91e70 + ld a, [de] + cp $80 + jr z, .asm_91e91 + add b + ld [hli], a + inc de + ld a, [de] + add c + ld [hli], a + inc de + ld a, [de] + add $78 + ld [hli], a + inc de + push bc + ld c, $0 + ld a, [PlayerGender] + bit 0, a + jr z, .asm_91e8c + inc c + +.asm_91e8c + ld a, c + ld [hli], a + pop bc + jr .asm_91e70 + +.asm_91e91 + ld hl, $c410 + ld bc, $0090 + xor a + call ByteFill + ret +; 91e9c + +INCBIN "baserom.gbc", $91e9c, $91ea9 - $91e9c + +Function91ea9: ; 91ea9 + ld a, [DefaultFlypoint] + cp $5f + jr z, .asm_91ebc + cp $2f + jr c, .asm_91ebc + ld a, [$d003] + and a + jr z, .asm_91ec4 + jr .asm_91ec2 + +.asm_91ebc + ld a, [$d003] + and a + jr nz, .asm_91ec4 + +.asm_91ec2 + and a + ret + +.asm_91ec4 + ld hl, Sprites + ld bc, $00a0 + xor a + call ByteFill + scf + ret +; 91ed0 + +Function91ed0: ; 91ed0 + ld a, [DefaultFlypoint] + cp $5f + jr z, .asm_91ede + callba GetPlayerIcon + ret + +.asm_91ede + ld de, $4cb2 + ld b, $24 + ret +; 91ee4 TownMapBGUpdate: ; 91ee4 ; Update BG Map tiles and attributes @@ -58567,9 +67155,7 @@ Function9673e: ; 9673e ld [$d453], a ld [$d454], a call Function968d1 - ld a, $5 - ld hl, $5363 - rst FarCall + callba Function15363 call Function966cb ld a, [$ff9f] cp $f7 @@ -59021,7 +67607,7 @@ OWPlayerInput: ; 96974 CheckAPressOW: ; 96999 ld a, [hJoyPressed] - and BUTTON_A + and A_BUTTON ret z call TryObjectEvent ret c @@ -60352,1336 +68938,22 @@ INCLUDE "text/phone/extra2.asm" SECTION "bank2A",ROMX,BANK[$2A] -Route32_BlockData: ; 0xa8000 - INCBIN "maps/Route32.blk" -; 0xa81c2 - -Route40_BlockData: ; 0xa81c2 - INCBIN "maps/Route40.blk" -; 0xa8276 - -Route36_BlockData: ; 0xa8276 - INCBIN "maps/Route36.blk" -; 0xa8384 - -Route44_BlockData: ; 0xa8384 - INCBIN "maps/Route44.blk" -; 0xa8492 - -Route28_BlockData: ; 0xa8492 - INCBIN "maps/Route28.blk" -; 0xa8546 - -BetaHerosHouse_BlockData: ; 0xa8546 - INCBIN "maps/BetaHerosHouse.blk" -; 0xa8552 - -CeladonCity_BlockData: ; 0xa8552 - INCBIN "maps/CeladonCity.blk" -; 0xa86ba - -SaffronCity_BlockData: ; 0xa86ba - INCBIN "maps/SaffronCity.blk" -; 0xa8822 - -Route2_BlockData: ; 0xa8822 - INCBIN "maps/Route2.blk" -; 0xa8930 - -ElmsHouse_BlockData: ; 0xa8930 - INCBIN "maps/ElmsHouse.blk" -; 0xa8940 - -BetaSproutTower1_BlockData: ; 0xa8940 - INCBIN "maps/BetaSproutTower1.blk" -; 0xa899a - -Route11_BlockData: ; 0xa899a - INCBIN "maps/Route11.blk" -; 0xa8a4e - -BetaSproutTower5_BlockData: ; 0xa8a4e - INCBIN "maps/BetaSproutTower5.blk" -; 0xa8aa8 - -Route15_BlockData: ; 0xa8aa8 - INCBIN "maps/Route15.blk" -; 0xa8b5c - -BetaSproutTower9_BlockData: ; 0xa8b5c - INCBIN "maps/BetaSproutTower9.blk" -; 0xa8b80 - -Route19_BlockData: ; 0xa8b80 - INCBIN "maps/Route19.blk" -; 0xa8c34 - -BetaBlackthornCity_BlockData: ; 0xa8c34 - INCBIN "maps/BetaBlackthornCity.blk" -; 0xa8d9c - -Route10South_BlockData: ; 0xa8d9c - INCBIN "maps/Route10South.blk" -; 0xa8df6 - -CinnabarPokeCenter2FBeta_BlockData: ; 0xa8df6 - INCBIN "maps/CinnabarPokeCenter2FBeta.blk" -; 0xa8e16 - -Route41_BlockData: ; 0xa8e16 - INCBIN "maps/Route41.blk" -; 0xa90b9 - -Route33_BlockData: ; 0xa90b9 - INCBIN "maps/Route33.blk" -; 0xa9113 - -Route45_BlockData: ; 0xa9113 - INCBIN "maps/Route45.blk" -; 0xa92d5 - -Route29_BlockData: ; 0xa92d5 - INCBIN "maps/Route29.blk" -; 0xa93e3 - -Route37_BlockData: ; 0xa93e3 - INCBIN "maps/Route37.blk" -; 0xa943d - -LavenderTown_BlockData: ; 0xa943d - INCBIN "maps/LavenderTown.blk" -; 0xa9497 - -PalletTown_BlockData: ; 0xa9497 - INCBIN "maps/PalletTown.blk" -; 0xa94f1 - -Route25_BlockData: ; 0xa94f1 - INCBIN "maps/Route25.blk" -; 0xa95ff - -Route24_BlockData: ; 0xa95ff - INCBIN "maps/Route24.blk" -; 0xa9659 - -BetaVioletCity_BlockData: ; 0xa9659 - INCBIN "maps/BetaVioletCity.blk" -; 0xa97c1 - -Route3_BlockData: ; 0xa97c1 - INCBIN "maps/Route3.blk" -; 0xa98cf - -PewterCity_BlockData: ; 0xa98cf - INCBIN "maps/PewterCity.blk" -; 0xa9a37 - -BetaIlexForest_BlockData: ; 0xa9a37 - INCBIN "maps/BetaIlexForest.blk" -; 0xa9b9f - -BetaSproutTower2_BlockData: ; 0xa9b9f - INCBIN "maps/BetaSproutTower2.blk" -; 0xa9bf9 - -Route12_BlockData: ; 0xa9bf9 - INCBIN "maps/Route12.blk" -; 0xa9d07 - -BetaGoldenrodCity_BlockData: ; 0xa9d07 - INCBIN "maps/BetaGoldenrodCity.blk" -; 0xa9e6f - -Route20_BlockData: ; 0xa9e6f - INCBIN "maps/Route20.blk" -; 0xa9f7d - -BetaSproutTower6_BlockData: ; 0xa9f7d - INCBIN "maps/BetaSproutTower6.blk" -; 0xa9fd7 - -BetaPokecenterMainHouse_BlockData: ; 0xa9fd7 - INCBIN "maps/BetaPokecenterMainHouse.blk" -; 0xa9ff7 - -Route30_BlockData: ; 0xa9ff7 - INCBIN "maps/Route30.blk" -; 0xaa105 - -Route26_BlockData: ; 0xaa105 - INCBIN "maps/Route26.blk" -; 0xaa321 - -Route42_BlockData: ; 0xaa321 - INCBIN "maps/Route42.blk" -; 0xaa42f - -Route34_BlockData: ; 0xaa42f - INCBIN "maps/Route34.blk" -; 0xaa53d - -Route46_BlockData: ; 0xaa53d - INCBIN "maps/Route46.blk" -; 0xaa5f1 - -FuchsiaCity_BlockData: ; 0xaa5f1 - INCBIN "maps/FuchsiaCity.blk" -; 0xaa759 - -Route38_BlockData: ; 0xaa759 - INCBIN "maps/Route38.blk" -; 0xaa80d - -BetaCianwoodCity_BlockData: ; 0xaa80d - INCBIN "maps/BetaCianwoodCity.blk" -; 0xaa867 - -OlivineVoltorbHouse_BlockData: ; 0xaa867 - INCBIN "maps/OlivineVoltorbHouse.blk" -; 0xaa877 - -SafariZoneFuchsiaGateBeta_BlockData: ; 0xaa877 - INCBIN "maps/SafariZoneFuchsiaGateBeta.blk" -; 0xaa88b - -BetaTeakCity_BlockData: ; 0xaa88b - INCBIN "maps/BetaTeakCity.blk" -; 0xaa9f3 - -BetaCherrygroveCity_BlockData: ; 0xaa9f3 - INCBIN "maps/BetaCherrygroveCity.blk" -; 0xaaa4d - -CinnabarIsland_BlockData: ; 0xaaa4d - INCBIN "maps/CinnabarIsland.blk" -; 0xaaaa7 - -Route4_BlockData: ; 0xaaaa7 - INCBIN "maps/Route4.blk" -; 0xaab5b - -Route8_BlockData: ; 0xaab5b - INCBIN "maps/Route8.blk" -; 0xaac0f - -BetaSproutTower3_BlockData: ; 0xaac0f - INCBIN "maps/BetaSproutTower3.blk" -; 0xaac69 - -ViridianCity_BlockData: ; 0xaac69 - INCBIN "maps/ViridianCity.blk" -; 0xaadd1 - -Route13_BlockData: ; 0xaadd1 - INCBIN "maps/Route13.blk" -; 0xaaedf - -Route21_BlockData: ; 0xaaedf - INCBIN "maps/Route21.blk" -; 0xaaf93 - -BetaSproutTower7_BlockData: ; 0xaaf93 - INCBIN "maps/BetaSproutTower7.blk" -; 0xaafed - -Route17_BlockData: ; 0xaafed - INCBIN "maps/Route17.blk" -; 0xab1af - -BetaMahoganyTown_BlockData: ; 0xab1af - INCBIN "maps/BetaMahoganyTown.blk" -; 0xab209 - -Route31_BlockData: ; 0xab209 - INCBIN "maps/Route31.blk" -; 0xab2bd - -Route27_BlockData: ; 0xab2bd - INCBIN "maps/Route27.blk" -; 0xab425 - -Route35_BlockData: ; 0xab425 - INCBIN "maps/Route35.blk" -; 0xab4d9 - -Route43_BlockData: ; 0xab4d9 - INCBIN "maps/Route43.blk" -; 0xab5e7 - -Route39_BlockData: ; 0xab5e7 - INCBIN "maps/Route39.blk" -; 0xab69b - -KrissHouse1F_BlockData: ; 0xab69b - INCBIN "maps/KrissHouse1F.blk" -; 0xab6af - -Route38EcruteakGate_BlockData: ; 0xab6af - INCBIN "maps/Route38EcruteakGate.blk" -; 0xab6c3 - -BetaAzaleaTown_BlockData: ; 0xab6c3 - INCBIN "maps/BetaAzaleaTown.blk" -; 0xab82b - -VermilionCity_BlockData: ; 0xab82b - INCBIN "maps/VermilionCity.blk" -; 0xab993 - -BetaOlivineCity_BlockData: ; 0xab993 - INCBIN "maps/BetaOlivineCity.blk" -; 0xabafb - -BetaNewBarkTown_BlockData: ; 0xabafb - INCBIN "maps/BetaNewBarkTown.blk" -; 0xabb55 - -ElmsLab_BlockData: ; 0xabb55 - INCBIN "maps/ElmsLab.blk" -; 0xabb73 - -CeruleanCity_BlockData: ; 0xabb73 - INCBIN "maps/CeruleanCity.blk" -; 0xabcdb - -Route1_BlockData: ; 0xabcdb - INCBIN "maps/Route1.blk" -; 0xabd8f - -Route5_BlockData: ; 0xabd8f - INCBIN "maps/Route5.blk" -; 0xabde9 - -Route9_BlockData: ; 0xabde9 - INCBIN "maps/Route9.blk" -; 0xabef7 - -Route22_BlockData: ; 0xabef7 - INCBIN "maps/Route22.blk" -; 0xabfab +INCLUDE "maps/blockdata_1.asm" SECTION "bank2B",ROMX,BANK[$2B] -Route14_BlockData: ; 0xac000 - INCBIN "maps/Route14.blk" -; 0xac0b4 - -BetaSproutTower8_BlockData: ; 0xac0b4 - INCBIN "maps/BetaSproutTower8.blk" -; 0xac10e - -OlivineMart_BlockData: ; 0xac10e - INCBIN "maps/OlivineMart.blk" -; 0xac126 - -Route10North_BlockData: ; 0xac126 - INCBIN "maps/Route10North.blk" -; 0xac180 - -BetaLakeOfRage_BlockData: ; 0xac180 - INCBIN "maps/BetaLakeOfRage.blk" -; 0xac2e8 - -OlivinePokeCenter1F_BlockData: ; 0xac2e8 - INCBIN "maps/OlivinePokeCenter1F.blk" -; 0xac2fc - -BetaPewterMuseumOfScience1F_BlockData: ; 0xac2fc - INCBIN "maps/BetaPewterMuseumOfScience1F.blk" -; 0xac324 - -BetaPewterMuseumOfScience2F_BlockData: ; 0xac324 - INCBIN "maps/BetaPewterMuseumOfScience2F.blk" -; 0xac340 - -EarlsPokemonAcademy_BlockData: ; 0xac340 - INCBIN "maps/EarlsPokemonAcademy.blk" -; 0xac360 - -BetaCinnabarIslandPokemonLabHallway_BlockData: ; 0xac360 - INCBIN "maps/BetaCinnabarIslandPokemonLabHallway.blk" -; 0xac384 - -BetaCinnabarIslandPokemonLabRoom1_BlockData: ; 0xac384 - INCBIN "maps/BetaCinnabarIslandPokemonLabRoom1.blk" -; 0xac394 - -BetaCinnabarIslandPokemonLabRoom2_BlockData: ; 0xac394 - INCBIN "maps/BetaCinnabarIslandPokemonLabRoom2.blk" -; 0xac3a4 - -BetaCinnabarIslandPokemonLabRoom3_BlockData: ; 0xac3a4 - INCBIN "maps/BetaCinnabarIslandPokemonLabRoom3.blk" -; 0xac3b4 - -GoldenrodDeptStore1F_BlockData: ; 0xac3b4 - INCBIN "maps/GoldenrodDeptStore1F.blk" -; 0xac3d4 - -GoldenrodDeptStore2F_BlockData: ; 0xac3d4 - INCBIN "maps/GoldenrodDeptStore2F.blk" -; 0xac3f4 - -GoldenrodDeptStore3F_BlockData: ; 0xac3f4 - INCBIN "maps/GoldenrodDeptStore3F.blk" -; 0xac414 - -GoldenrodDeptStore4F_BlockData: ; 0xac414 - INCBIN "maps/GoldenrodDeptStore4F.blk" -; 0xac434 - -GoldenrodDeptStore5F_BlockData: ; 0xac434 - INCBIN "maps/GoldenrodDeptStore5F.blk" -; 0xac454 - -GoldenrodDeptStore6F_BlockData: ; 0xac454 - INCBIN "maps/GoldenrodDeptStore6F.blk" -; 0xac474 - -GoldenrodDeptStoreElevator_BlockData: ; 0xac474 - INCBIN "maps/GoldenrodDeptStoreElevator.blk" -; 0xac478 - -CeladonMansion1F_BlockData: ; 0xac478 - INCBIN "maps/CeladonMansion1F.blk" -; 0xac48c - -CeladonMansion2F_BlockData: ; 0xac48c - INCBIN "maps/CeladonMansion2F.blk" -; 0xac4a0 - -CeladonMansion3F_BlockData: ; 0xac4a0 - INCBIN "maps/CeladonMansion3F.blk" -; 0xac4b4 - -CeladonMansionRoof_BlockData: ; 0xac4b4 - INCBIN "maps/CeladonMansionRoof.blk" -; 0xac4c8 - -BetaHouse_BlockData: ; 0xac4c8 - INCBIN "maps/BetaHouse.blk" -; 0xac4d8 - -CeladonGameCorner_BlockData: ; 0xac4d8 - INCBIN "maps/CeladonGameCorner.blk" -; 0xac51e - -CeladonGameCornerPrizeRoom_BlockData: ; 0xac51e - INCBIN "maps/CeladonGameCornerPrizeRoom.blk" -; 0xac527 - -Colosseum_BlockData: ; 0xac527 - INCBIN "maps/Colosseum.blk" -; 0xac53b - -TradeCenter_BlockData: ; 0xac53b - INCBIN "maps/TradeCenter.blk" -; 0xac54f - -EcruteakLugiaSpeechHouse_BlockData: ; 0xac54f - INCBIN "maps/EcruteakLugiaSpeechHouse.blk" -; 0xac55f - -BetaCave_BlockData: ; 0xac55f - INCBIN "maps/BetaCave.blk" -; 0xac5b9 - -UnionCaveB1F_BlockData: ; 0xac5b9 - INCBIN "maps/UnionCaveB1F.blk" -; 0xac66d - -UnionCaveB2F_BlockData: ; 0xac66d - INCBIN "maps/UnionCaveB2F.blk" -; 0xac721 - -UnionCave1F_BlockData: ; 0xac721 - INCBIN "maps/UnionCave1F.blk" -; 0xac7d5 - -NationalPark_BlockData: ; 0xac7d5 - INCBIN "maps/NationalPark.blk" -; 0xac9f1 - -Route6UndergroundEntrance_BlockData: ; 0xac9f1 - INCBIN "maps/Route6UndergroundEntrance.blk" -; 0xaca01 - -BetaPokecenterTradeStation_BlockData: ; 0xaca01 - INCBIN "maps/BetaPokecenterTradeStation.blk" -; 0xaca11 - -KurtsHouse_BlockData: ; 0xaca11 - INCBIN "maps/KurtsHouse.blk" -; 0xaca31 - -GoldenrodMagnetTrainStation_BlockData: ; 0xaca31 - INCBIN "maps/GoldenrodMagnetTrainStation.blk" -; 0xaca8b - -RuinsofAlphOutside_BlockData: ; 0xaca8b - INCBIN "maps/RuinsofAlphOutside.blk" -; 0xacb3f - -BetaAlphRuinUnsolvedPuzzleRoom_BlockData: ; 0xacb3f - INCBIN "maps/BetaAlphRuinUnsolvedPuzzleRoom.blk" -; 0xacb53 - -RuinsofAlphInnerChamber_BlockData: ; 0xacb53 - INCBIN "maps/RuinsofAlphInnerChamber.blk" -; 0xacbdf - -RuinsofAlphHoOhChamber_BlockData: ; 0xacbdf - INCBIN "maps/RuinsofAlphHoOhChamber.blk" -; 0xacbf3 - -SproutTower1F_BlockData: ; 0xacbf3 - INCBIN "maps/SproutTower1F.blk" -; 0xacc43 - -BetaSproutTowerCutOut1_BlockData: ; 0xacc43 - INCBIN "maps/BetaSproutTowerCutOut1.blk" -; 0xacc4d - -SproutTower2F_BlockData: ; 0xacc4d - INCBIN "maps/SproutTower2F.blk" -; 0xacc9d - -BetaSproutTowerCutOut2_BlockData: ; 0xacc9d - INCBIN "maps/BetaSproutTowerCutOut2.blk" -; 0xacca7 - -SproutTower3F_BlockData: ; 0xacca7 - INCBIN "maps/SproutTower3F.blk" -; 0xaccf7 - -BetaSproutTowerCutOut3_BlockData: ; 0xaccf7 - INCBIN "maps/BetaSproutTowerCutOut3.blk" -; 0xacd01 - -RadioTower1F_BlockData: ; 0xacd01 - INCBIN "maps/RadioTower1F.blk" -; 0xacd25 - -RadioTower2F_BlockData: ; 0xacd25 - INCBIN "maps/RadioTower2F.blk" -; 0xacd49 - -RadioTower3F_BlockData: ; 0xacd49 - INCBIN "maps/RadioTower3F.blk" -; 0xacd6d - -RadioTower4F_BlockData: ; 0xacd6d - INCBIN "maps/RadioTower4F.blk" -; 0xacd91 - -RadioTower5F_BlockData: ; 0xacd91 - INCBIN "maps/RadioTower5F.blk" -; 0xacdb5 - -NewBarkTown_BlockData: ; 0xacdb5 - INCBIN "maps/NewBarkTown.blk" -; 0xace0f - -CherrygroveCity_BlockData: ; 0xace0f - INCBIN "maps/CherrygroveCity.blk" -; 0xacec3 - -VioletCity_BlockData: ; 0xacec3 - INCBIN "maps/VioletCity.blk" -; 0xad02b - -AzaleaTown_BlockData: ; 0xad02b - INCBIN "maps/AzaleaTown.blk" -; 0xad0df - -CianwoodCity_BlockData: ; 0xad0df - INCBIN "maps/CianwoodCity.blk" -; 0xad274 - -GoldenrodCity_BlockData: ; 0xad274 - INCBIN "maps/GoldenrodCity.blk" -; 0xad3dc - -OlivineCity_BlockData: ; 0xad3dc - INCBIN "maps/OlivineCity.blk" -; 0xad544 - -EcruteakCity_BlockData: ; 0xad544 - INCBIN "maps/EcruteakCity.blk" -; 0xad6ac - -MahoganyTown_BlockData: ; 0xad6ac - INCBIN "maps/MahoganyTown.blk" -; 0xad706 - -LakeofRage_BlockData: ; 0xad706 - INCBIN "maps/LakeofRage.blk" -; 0xad86e - -BlackthornCity_BlockData: ; 0xad86e - INCBIN "maps/BlackthornCity.blk" -; 0xad9d6 - -SilverCaveOutside_BlockData: ; 0xad9d6 - INCBIN "maps/SilverCaveOutside.blk" -; 0xadb3e - -Route6_BlockData: ; 0xadb3e - INCBIN "maps/Route6.blk" -; 0xadb98 - -Route7_BlockData: ; 0xadb98 - INCBIN "maps/Route7.blk" -; 0xadbf2 - -Route16_BlockData: ; 0xadbf2 - INCBIN "maps/Route16.blk" -; 0xadc4c - -Route18_BlockData: ; 0xadc4c - INCBIN "maps/Route18.blk" -; 0xadca6 - -WarehouseEntrance_BlockData: ; 0xadca6 - INCBIN "maps/WarehouseEntrance.blk" -; 0xaddb4 - -UndergroundPathSwitchRoomEntrances_BlockData: ; 0xaddb4 - INCBIN "maps/UndergroundPathSwitchRoomEntrances.blk" -; 0xadec2 - -GoldenrodDeptStoreB1F_BlockData: ; 0xadec2 - INCBIN "maps/GoldenrodDeptStoreB1F.blk" -; 0xadf1c - -UndergroundWarehouse_BlockData: ; 0xadf1c - INCBIN "maps/UndergroundWarehouse.blk" -; 0xadf76 - -BetaElevator_BlockData: ; 0xadf76 - INCBIN "maps/BetaElevator.blk" -; 0xadf8f - -TinTower1F_BlockData: ; 0xadf8f - INCBIN "maps/TinTower1F.blk" -; 0xadfe9 - -TinTower2F_BlockData: ; 0xadfe9 - INCBIN "maps/TinTower2F.blk" -; 0xae043 - -TinTower3F_BlockData: ; 0xae043 - INCBIN "maps/TinTower3F.blk" -; 0xae09d - -TinTower4F_BlockData: ; 0xae09d - INCBIN "maps/TinTower4F.blk" -; 0xae0f7 - -TinTower5F_BlockData: ; 0xae0f7 - INCBIN "maps/TinTower5F.blk" -; 0xae151 - -TinTower6F_BlockData: ; 0xae151 - INCBIN "maps/TinTower6F.blk" -; 0xae1ab - -TinTower7F_BlockData: ; 0xae1ab - INCBIN "maps/TinTower7F.blk" -; 0xae205 - -TinTower8F_BlockData: ; 0xae205 - INCBIN "maps/TinTower8F.blk" -; 0xae25f - -TinTower9F_BlockData: ; 0xae25f - INCBIN "maps/TinTower9F.blk" -; 0xae2b9 - -TinTowerRoof_BlockData: ; 0xae2b9 - INCBIN "maps/TinTowerRoof.blk" -; 0xae313 - -BurnedTower1F_BlockData: ; 0xae313 - INCBIN "maps/BurnedTower1F.blk" -; 0xae36d - -BurnedTowerB1F_BlockData: ; 0xae36d - INCBIN "maps/BurnedTowerB1F.blk" -; 0xae3c7 - -BetaCaveTestMap_BlockData: ; 0xae3c7 - INCBIN "maps/BetaCaveTestMap.blk" -; 0xae4d5 - -MountMortar1FOutside_BlockData: ; 0xae4d5 - INCBIN "maps/MountMortar1FOutside.blk" -; 0xae63d - -MountMortar1FInside_BlockData: ; 0xae63d - INCBIN "maps/MountMortar1FInside.blk" -; 0xae859 - -MountMortar2FInside_BlockData: ; 0xae859 - INCBIN "maps/MountMortar2FInside.blk" -; 0xae9c1 - -MountMortarB1F_BlockData: ; 0xae9c1 - INCBIN "maps/MountMortarB1F.blk" -; 0xaeb29 - -IcePath1F_BlockData: ; 0xaeb29 - INCBIN "maps/IcePath1F.blk" -; 0xaec91 - -IcePathB1F_BlockData: ; 0xaec91 - INCBIN "maps/IcePathB1F.blk" -; 0xaed45 - -IcePathB2FMahoganySide_BlockData: ; 0xaed45 - INCBIN "maps/IcePathB2FMahoganySide.blk" -; 0xaed9f - -IcePathB2FBlackthornSide_BlockData: ; 0xaed9f - INCBIN "maps/IcePathB2FBlackthornSide.blk" -; 0xaedcc - -IcePathB3F_BlockData: ; 0xaedcc - INCBIN "maps/IcePathB3F.blk" -; 0xaee26 - -WhirlIslandNW_BlockData: ; 0xaee26 - INCBIN "maps/WhirlIslandNW.blk" -; 0xaee53 - -WhirlIslandNE_BlockData: ; 0xaee53 - INCBIN "maps/WhirlIslandNE.blk" -; 0xaeead - -WhirlIslandSW_BlockData: ; 0xaeead - INCBIN "maps/WhirlIslandSW.blk" -; 0xaef07 - -WhirlIslandCave_BlockData: ; 0xaef07 - INCBIN "maps/WhirlIslandCave.blk" -; 0xaef34 - -WhirlIslandSE_BlockData: ; 0xaef34 - INCBIN "maps/WhirlIslandSE.blk" -; 0xaef61 - -WhirlIslandB1F_BlockData: ; 0xaef61 - INCBIN "maps/WhirlIslandB1F.blk" -; 0xaf0c9 - -WhirlIslandB2F_BlockData: ; 0xaf0c9 - INCBIN "maps/WhirlIslandB2F.blk" -; 0xaf17d - -WhirlIslandLugiaChamber_BlockData: ; 0xaf17d - INCBIN "maps/WhirlIslandLugiaChamber.blk" -; 0xaf1d7 - -SilverCaveRoom1_BlockData: ; 0xaf1d7 - INCBIN "maps/SilverCaveRoom1.blk" -; 0xaf28b - -SilverCaveRoom2_BlockData: ; 0xaf28b - INCBIN "maps/SilverCaveRoom2.blk" -; 0xaf399 - -SilverCaveRoom3_BlockData: ; 0xaf399 - INCBIN "maps/SilverCaveRoom3.blk" -; 0xaf44d - -BetaRocketHideout1_BlockData: ; 0xaf44d - INCBIN "maps/BetaRocketHideout1.blk" -; 0xaf55b - -BetaRocketHideout2_BlockData: ; 0xaf55b - INCBIN "maps/BetaRocketHideout2.blk" -; 0xaf669 - -BetaEmptyHouse_BlockData: ; 0xaf669 - INCBIN "maps/BetaEmptyHouse.blk" -; 0xaf777 - -BetaRocketHideout3_BlockData: ; 0xaf777 - INCBIN "maps/BetaRocketHideout3.blk" -; 0xaf885 - -MahoganyMart1F_BlockData: ; 0xaf885 - INCBIN "maps/MahoganyMart1F.blk" -; 0xaf895 - -TeamRocketBaseB1F_BlockData: ; 0xaf895 - INCBIN "maps/TeamRocketBaseB1F.blk" -; 0xaf91c - -TeamRocketBaseB2F_BlockData: ; 0xaf91c - INCBIN "maps/TeamRocketBaseB2F.blk" -; 0xaf9a3 - -TeamRocketBaseB3F_BlockData: ; 0xaf9a3 - INCBIN "maps/TeamRocketBaseB3F.blk" -; 0xafa2a - -BetaRoute23EarlyVersion_BlockData: ; 0xafa2a - INCBIN "maps/BetaRoute23EarlyVersion.blk" -; 0xafa84 - -IndigoPlateauPokeCenter1F_BlockData: ; 0xafa84 - INCBIN "maps/IndigoPlateauPokeCenter1F.blk" -; 0xafac3 - -WillsRoom_BlockData: ; 0xafac3 - INCBIN "maps/WillsRoom.blk" -; 0xafaf0 - -KogasRoom_BlockData: ; 0xafaf0 - INCBIN "maps/KogasRoom.blk" -; 0xafb1d - -BrunosRoom_BlockData: ; 0xafb1d - INCBIN "maps/BrunosRoom.blk" -; 0xafb4a - -KarensRoom_BlockData: ; 0xafb4a - INCBIN "maps/KarensRoom.blk" -; 0xafb77 - -AzaleaGym_BlockData: ; 0xafb77 - INCBIN "maps/AzaleaGym.blk" -; 0xafb9f - -VioletGym_BlockData: ; 0xafb9f - INCBIN "maps/VioletGym.blk" -; 0xafbc7 - -GoldenrodGym_BlockData: ; 0xafbc7 - INCBIN "maps/GoldenrodGym.blk" -; 0xafc21 - -EcruteakGym_BlockData: ; 0xafc21 - INCBIN "maps/EcruteakGym.blk" -; 0xafc4e - -MahoganyGym_BlockData: ; 0xafc4e - INCBIN "maps/MahoganyGym.blk" -; 0xafc7b - -OlivineGym_BlockData: ; 0xafc7b - INCBIN "maps/OlivineGym.blk" -; 0xafca3 - -BetaUnknown_BlockData: ; 0xafca3 - INCBIN "maps/BetaUnknown.blk" -; 0xafcb7 - -CianwoodGym_BlockData: ; 0xafcb7 - INCBIN "maps/CianwoodGym.blk" -; 0xafce4 - -BlackthornGym1F_BlockData: ; 0xafce4 - INCBIN "maps/BlackthornGym1F.blk" -; 0xafd11 - -BlackthornGym2F_BlockData: ; 0xafd11 - INCBIN "maps/BlackthornGym2F.blk" -; 0xafd3e - -OlivineLighthouse1F_BlockData: ; 0xafd3e - INCBIN "maps/OlivineLighthouse1F.blk" -; 0xafd98 - -OlivineLighthouse2F_BlockData: ; 0xafd98 - INCBIN "maps/OlivineLighthouse2F.blk" -; 0xafdf2 - -OlivineLighthouse3F_BlockData: ; 0xafdf2 - INCBIN "maps/OlivineLighthouse3F.blk" -; 0xafe4c - -OlivineLighthouse4F_BlockData: ; 0xafe4c - INCBIN "maps/OlivineLighthouse4F.blk" -; 0xafea6 - -OlivineLighthouse5F_BlockData: ; 0xafea6 - INCBIN "maps/OlivineLighthouse5F.blk" -; 0xaff00 - -OlivineLighthouse6F_BlockData: ; 0xaff00 - INCBIN "maps/OlivineLighthouse6F.blk" -; 0xaff5a +INCLUDE "maps/blockdata_2.asm" SECTION "bank2C",ROMX,BANK[$2C] -BetaCave2_BlockData: ; 0xb0000 - INCBIN "maps/BetaCave2.blk" -; 0xb0023 - -SlowpokeWellB1F_BlockData: ; 0xb0023 - INCBIN "maps/SlowpokeWellB1F.blk" -; 0xb007d - -SlowpokeWellB2F_BlockData: ; 0xb007d - INCBIN "maps/SlowpokeWellB2F.blk" -; 0xb00d7 - -IlexForest_BlockData: ; 0xb00d7 - INCBIN "maps/IlexForest.blk" -; 0xb026c - -DarkCaveVioletEntrance_BlockData: ; 0xb026c - INCBIN "maps/DarkCaveVioletEntrance.blk" -; 0xb03d4 - -DarkCaveBlackthornEntrance_BlockData: ; 0xb03d4 - INCBIN "maps/DarkCaveBlackthornEntrance.blk" -; 0xb04e2 - -RuinsofAlphResearchCenter_BlockData: ; 0xb04e2 - INCBIN "maps/RuinsofAlphResearchCenter.blk" -; 0xb04f2 - -GoldenrodBikeShop_BlockData: ; 0xb04f2 - INCBIN "maps/GoldenrodBikeShop.blk" -; 0xb0502 - -DanceTheatre_BlockData: ; 0xb0502 - INCBIN "maps/DanceTheatre.blk" -; 0xb052c - -EcruteakHouse_BlockData: ; 0xb052c - INCBIN "maps/EcruteakHouse.blk" -; 0xb0586 - -GoldenrodGameCorner_BlockData: ; 0xb0586 - INCBIN "maps/GoldenrodGameCorner.blk" -; 0xb05cc - -Route35NationalParkgate_BlockData: ; 0xb05cc - INCBIN "maps/Route35NationalParkgate.blk" -; 0xb05dc - -Route36NationalParkgate_BlockData: ; 0xb05dc - INCBIN "maps/Route36NationalParkgate.blk" -; 0xb05f0 - -FastShip1F_BlockData: ; 0xb05f0 - INCBIN "maps/FastShip1F.blk" -; 0xb0680 - -FastShipB1F_BlockData: ; 0xb0680 - INCBIN "maps/FastShipB1F.blk" -; 0xb0700 - -BetaSsAquaInsideCutOut_BlockData: ; 0xb0700 - INCBIN "maps/BetaSsAquaInsideCutOut.blk" -; 0xb0710 - -FastShipCabins_NNW_NNE_NE_BlockData: ; 0xb0710 - INCBIN "maps/FastShipCabins_NNW_NNE_NE.blk" -; 0xb0750 - -FastShipCabins_SW_SSW_NW_BlockData: ; 0xb0750 - INCBIN "maps/FastShipCabins_SW_SSW_NW.blk" -; 0xb0790 - -FastShipCabins_SE_SSE_CaptainsCabin_BlockData: ; 0xb0790 - INCBIN "maps/FastShipCabins_SE_SSE_CaptainsCabin.blk" -; 0xb07e5 - -OlivinePort_BlockData: ; 0xb07e5 - INCBIN "maps/OlivinePort.blk" -; 0xb0899 - -VermilionPort_BlockData: ; 0xb0899 - INCBIN "maps/VermilionPort.blk" -; 0xb094d - -OlivineCafe_BlockData: ; 0xb094d - INCBIN "maps/OlivineCafe.blk" -; 0xb095d - -KrissHouse2F_BlockData: ; 0xb095d - INCBIN "maps/KrissHouse2F.blk" -; 0xb0969 - -SaffronTrainStation_BlockData: ; 0xb0969 - INCBIN "maps/SaffronTrainStation.blk" -; 0xb09c3 - -CeruleanGym_BlockData: ; 0xb09c3 - INCBIN "maps/CeruleanGym.blk" -; 0xb09eb - -VermilionGym_BlockData: ; 0xb09eb - INCBIN "maps/VermilionGym.blk" -; 0xb0a18 - -SaffronGym_BlockData: ; 0xb0a18 - INCBIN "maps/SaffronGym.blk" -; 0xb0a72 - -PowerPlant_BlockData: ; 0xb0a72 - INCBIN "maps/PowerPlant.blk" -; 0xb0acc - -PokemonFanClub_BlockData: ; 0xb0acc - INCBIN "maps/PokemonFanClub.blk" -; 0xb0ae0 - -FightingDojo_BlockData: ; 0xb0ae0 - INCBIN "maps/FightingDojo.blk" -; 0xb0afe - -SilphCo1F_BlockData: ; 0xb0afe - INCBIN "maps/SilphCo1F.blk" -; 0xb0b1e - -ViridianGym_BlockData: ; 0xb0b1e - INCBIN "maps/ViridianGym.blk" -; 0xb0b4b - -TrainerHouse1F_BlockData: ; 0xb0b4b - INCBIN "maps/TrainerHouse1F.blk" -; 0xb0b6e - -TrainerHouseB1F_BlockData: ; 0xb0b6e - INCBIN "maps/TrainerHouseB1F.blk" -; 0xb0b96 - -RedsHouse1F_BlockData: ; 0xb0b96 - INCBIN "maps/RedsHouse1F.blk" -; 0xb0ba6 - -RedsHouse2F_BlockData: ; 0xb0ba6 - INCBIN "maps/RedsHouse2F.blk" -; 0xb0bb6 - -OaksLab_BlockData: ; 0xb0bb6 - INCBIN "maps/OaksLab.blk" -; 0xb0bd4 - -MrFujisHouse_BlockData: ; 0xb0bd4 - INCBIN "maps/MrFujisHouse.blk" -; 0xb0be8 - -LavRadioTower1F_BlockData: ; 0xb0be8 - INCBIN "maps/LavRadioTower1F.blk" -; 0xb0c10 - -SilverCaveItemRooms_BlockData: ; 0xb0c10 - INCBIN "maps/SilverCaveItemRooms.blk" -; 0xb0c6a - -DayCare_BlockData: ; 0xb0c6a - INCBIN "maps/DayCare.blk" -; 0xb0c7e - -SoulHouse_BlockData: ; 0xb0c7e - INCBIN "maps/SoulHouse.blk" -; 0xb0c92 - -PewterGym_BlockData: ; 0xb0c92 - INCBIN "maps/PewterGym.blk" -; 0xb0cb5 - -CeladonGym_BlockData: ; 0xb0cb5 - INCBIN "maps/CeladonGym.blk" -; 0xb0ce2 - -BetaHouse2_BlockData: ; 0xb0ce2 - INCBIN "maps/BetaHouse2.blk" -; 0xb0cf6 - -CeladonCafe_BlockData: ; 0xb0cf6 - INCBIN "maps/CeladonCafe.blk" -; 0xb0d0e - -BetaCeladonMansion_BlockData: ; 0xb0d0e - INCBIN "maps/BetaCeladonMansion.blk" -; 0xb0d26 - -RockTunnel1F_BlockData: ; 0xb0d26 - INCBIN "maps/RockTunnel1F.blk" -; 0xb0e34 - -RockTunnelB1F_BlockData: ; 0xb0e34 - INCBIN "maps/RockTunnelB1F.blk" -; 0xb0f42 - -DiglettsCave_BlockData: ; 0xb0f42 - INCBIN "maps/DiglettsCave.blk" -; 0xb0ff6 - -MountMoon_BlockData: ; 0xb0ff6 - INCBIN "maps/MountMoon.blk" -; 0xb107d - -SeafoamGym_BlockData: ; 0xb107d - INCBIN "maps/SeafoamGym.blk" -; 0xb1091 - -MrPokemonsHouse_BlockData: ; 0xb1091 - INCBIN "maps/MrPokemonsHouse.blk" -; 0xb10a1 - -VictoryRoadGate_BlockData: ; 0xb10a1 - INCBIN "maps/VictoryRoadGate.blk" -; 0xb10fb - -OlivinePortPassage_BlockData: ; 0xb10fb - INCBIN "maps/OlivinePortPassage.blk" -; 0xb1155 - -FuchsiaGym_BlockData: ; 0xb1155 - INCBIN "maps/FuchsiaGym.blk" -; 0xb1182 - -SafariZoneBeta_BlockData: ; 0xb1182 - INCBIN "maps/SafariZoneBeta.blk" -; 0xb1236 - -Underground_BlockData: ; 0xb1236 - INCBIN "maps/Underground.blk" -; 0xb1260 - -Route39Barn_BlockData: ; 0xb1260 - INCBIN "maps/Route39Barn.blk" -; 0xb1270 - -VictoryRoad_BlockData: ; 0xb1270 - INCBIN "maps/VictoryRoad.blk" -; 0xb13d8 - -Route23_BlockData: ; 0xb13d8 - INCBIN "maps/Route23.blk" -; 0xb1432 - -LancesRoom_BlockData: ; 0xb1432 - INCBIN "maps/LancesRoom.blk" -; 0xb146e - -HallOfFame_BlockData: ; 0xb146e - INCBIN "maps/HallOfFame.blk" -; 0xb1491 - -CopycatsHouse1F_BlockData: ; 0xb1491 - INCBIN "maps/CopycatsHouse1F.blk" -; 0xb14a1 - -CopycatsHouse2F_BlockData: ; 0xb14a1 - INCBIN "maps/CopycatsHouse2F.blk" -; 0xb14b0 - -GoldenrodFlowerShop_BlockData: ; 0xb14b0 - INCBIN "maps/GoldenrodFlowerShop.blk" -; 0xb14c0 - -MountMoonSquare_BlockData: ; 0xb14c0 - INCBIN "maps/MountMoonSquare.blk" -; 0xb1547 - -WiseTriosRoom_BlockData: ; 0xb1547 - INCBIN "maps/WiseTriosRoom.blk" -; 0xb1557 - -DragonsDen1F_BlockData: ; 0xb1557 - INCBIN "maps/DragonsDen1F.blk" -; 0xb1584 - -DragonsDenB1F_BlockData: ; 0xb1584 - INCBIN "maps/DragonsDenB1F.blk" -; 0xb16ec - -TohjoFalls_BlockData: ; 0xb16ec - INCBIN "maps/TohjoFalls.blk" -; 0xb1773 - -RuinsofAlphHoOhItemRoom_BlockData: ; 0xb1773 - INCBIN "maps/RuinsofAlphHoOhItemRoom.blk" -; 0xb1787 - -RuinsofAlphHoOhWordRoom_BlockData: ; 0xb1787 - INCBIN "maps/RuinsofAlphHoOhWordRoom.blk" -; 0xb17ff - -RuinsofAlphKabutoWordRoom_BlockData: ; 0xb17ff - INCBIN "maps/RuinsofAlphKabutoWordRoom.blk" -; 0xb1845 - -RuinsofAlphOmanyteWordRoom_BlockData: ; 0xb1845 - INCBIN "maps/RuinsofAlphOmanyteWordRoom.blk" -; 0xb1895 - -RuinsofAlphAerodactylWordRoom_BlockData: ; 0xb1895 - INCBIN "maps/RuinsofAlphAerodactylWordRoom.blk" -; 0xb18db - -DragonShrine_BlockData: ; 0xb18db - INCBIN "maps/DragonShrine.blk" -; 0xb18f4 - -BattleTower1F_BlockData: ; 0xb18f4 - INCBIN "maps/BattleTower1F.blk" -; 0xb191c - -BattleTowerBattleRoom_BlockData: ; 0xb191c - INCBIN "maps/BattleTowerBattleRoom.blk" -; 0xb192c - -GoldenrodPokeComCenter2FMobile_BlockData: ; 0xb192c - INCBIN "maps/GoldenrodPokeComCenter2FMobile.blk" -; 0xb1a2c - -MobileTradeRoomMobile_BlockData: ; 0xb1a2c - INCBIN "maps/MobileTradeRoomMobile.blk" -; 0xb1a40 - -MobileBattleRoom_BlockData: ; 0xb1a40 - INCBIN "maps/MobileBattleRoom.blk" -; 0xb1a54 - -BattleTowerHallway_BlockData: ; 0xb1a54 - INCBIN "maps/BattleTowerHallway.blk" -; 0xb1a6a - -BattleTowerElevator_BlockData: ; 0xb1a6a - INCBIN "maps/BattleTowerElevator.blk" -; 0xb1a6e - -BattleTowerOutside_BlockData: ; 0xb1a6e - INCBIN "maps/BattleTowerOutside.blk" -; 0xb1afa - -BetaBlank_BlockData: ; 0xb1afa - INCBIN "maps/BetaBlank.blk" -; 0xb1b22 - -GoldenrodDeptStoreRoof_BlockData: ; 0xb1b22 - INCBIN "maps/GoldenrodDeptStoreRoof.blk" -; 0xb1b42 +INCLUDE "maps/blockdata_3.asm" SECTION "bank2D",ROMX,BANK[$2D] -Tileset21GFX: ; 0xb4000 -INCBIN "gfx/tilesets/21.lz" -; 0xb4893 - - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset21Meta: ; 0xb48a0 -INCBIN "tilesets/21_metatiles.bin" -; 0xb4ca0 - -Tileset21Coll: ; 0xb4ca0 -INCBIN "tilesets/21_collision.bin" -; 0xb4da0 - -Tileset22GFX: ; 0xb4da0 -INCBIN "gfx/tilesets/22.lz" -; 0xb50d1 - - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset22Meta: ; 0xb50e0 -INCBIN "tilesets/22_metatiles.bin" -; 0xb54e0 - -Tileset22Coll: ; 0xb54e0 -INCBIN "tilesets/22_collision.bin" -; 0xb55e0 - -Tileset08GFX: ; 0xb55e0 -INCBIN "gfx/tilesets/08.lz" -; 0xb59db - - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset08Meta: ; 0xb59e0 -INCBIN "tilesets/08_metatiles.bin" -; 0xb5de0 - -Tileset08Coll: ; 0xb5de0 -INCBIN "tilesets/08_collision.bin" -; 0xb5ee0 - -Tileset02GFX: ; 0xb5ee0 -Tileset04GFX: ; 0xb5ee0 -INCBIN "gfx/tilesets/04.lz" -; 0xb6ae7 - - db $00 - -Tileset02Meta: ; 0xb6ae8 -INCBIN "tilesets/02_metatiles.bin" -; 0xb72e8 - -Tileset02Coll: ; 0xb72e8 -INCBIN "tilesets/02_collision.bin" -; 0xb74e8 - -Tileset16GFX: ; 0xb74e8 -INCBIN "gfx/tilesets/16.lz" -; 0xb799a - - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset16Meta: ; 0xb79a8 -INCBIN "tilesets/16_metatiles.bin" -; 0xb7da8 - -Tileset16Coll: ; 0xb7da8 -INCBIN "tilesets/16_collision.bin" -; 0xb7ea8 +INCLUDE "tilesets/data_5.asm" SECTION "bank2E",ROMX,BANK[$2E] @@ -61962,40 +69234,46 @@ Functionb81e2: ; b81e2 INCBIN "baserom.gbc", $b81ea, $b8219 - $b81ea Functionb8219: ; b8219 -; deals strictly with rockmon encounter +; get a RockMon encounter + xor a ld [$d22e], a ld [CurPartyLevel], a - ld hl, WildRockMonMapTable + + ld hl, RockMonMaps call GetTreeMonEncounterTable jr nc, .quit - call LoadWildTreeMonData + + call LoadTreeMonData jr nc, .quit - ld a, $0a + + ld a, 10 call Function2fb1 - cp a, $04 + cp 4 jr nc, .quit - call $441f + + call Functionb841f jr nc, .quit + ret + .quit xor a ret ; b823e -db $05 ; ???? + 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 +; Return carry and table id in a +; if MapGroup and MapNumber are in table hl ld a, [MapNumber] ld e, a ld a, [MapGroup] ld d, a .loop ld a, [hli] - cp a, $ff + cp $ff jr z, .quit cp d jr nz, .skip2 @@ -62019,55 +69297,60 @@ GetTreeMonEncounterTable: ; b823f 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 +RockMonMaps: ; b82c5 + db GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, 7 + db GROUP_ROUTE_40, MAP_ROUTE_40, 7 + db GROUP_DARK_CAVE_VIOLET_ENTRANCE, MAP_DARK_CAVE_VIOLET_ENTRANCE, 7 + db GROUP_SLOWPOKE_WELL_B1F, MAP_SLOWPOKE_WELL_B1F, 7 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 +LoadTreeMonData: ; b82d2 +; Return TreeMon pointer a in hl +; Return carry on success + +; only 7 tables + cp 8 + jr nc, .quit + and a - jr z, .quit ; 0 is invalid + jr z, .quit + ld e, a - ld d, $00 - ld hl, WildTreeMonPointerTable + ld d, 0 + ld hl, TreeMonPointers add hl, de add hl, de - ld a, [hli] ; store pointer in hl + + ld a, [hli] ld h, [hl] ld l, a + scf ret + .quit xor a ret ; b82e8 -WildTreeMonPointerTable: ; b82e8 +TreeMonPointers: ; 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 +; so only odd-numbered tables are used + dw TreeMons1 ; filler + dw TreeMons1 ; 1 + dw TreeMons3 ; 2 + dw TreeMons5 ; 3 + dw TreeMons7 ; 4 + dw TreeMons9 ; 5 + dw TreeMons11 ; 6 + dw RockMons ; 7 + dw TreeMons1 ; filler ; b82fa ; structure: % species level -WildTreeMonTable1: ; b82fa +TreeMons1: ; b82fa db 50, SPEAROW, 10 db 15, SPEAROW, 10 db 15, SPEAROW, 10 @@ -62077,7 +69360,7 @@ WildTreeMonTable1: ; b82fa db $ff ; end ; b830d -WildTreeMonTable2 ; b830d +TreeMons2 ; b830d ; unused db 50, SPEAROW, 10 db 15, HERACROSS, 10 @@ -62088,7 +69371,7 @@ WildTreeMonTable2 ; b830d db $ff ; end ; b8320 -WildTreeMonTable3: ; b8320 +TreeMons3: ; b8320 db 50, SPEAROW, 10 db 15, EKANS, 10 db 15, SPEAROW, 10 @@ -62098,7 +69381,7 @@ WildTreeMonTable3: ; b8320 db $ff ; end ; b8333 -WildTreeMonTable4: ; b8333 +TreeMons4: ; b8333 ; unused db 50, SPEAROW, 10 db 15, HERACROSS, 10 @@ -62109,7 +69392,7 @@ WildTreeMonTable4: ; b8333 db $ff ; end ; b8346 -WildTreeMonTable5: ; b8346 +TreeMons5: ; b8346 db 50, HOOTHOOT, 10 db 15, SPINARAK, 10 db 15, LEDYBA, 10 @@ -62119,7 +69402,7 @@ WildTreeMonTable5: ; b8346 db $ff ; end ; b8359 -WildTreeMonTable6: ; b8359 +TreeMons6: ; b8359 ; unused db 50, HOOTHOOT, 10 db 15, PINECO, 10 @@ -62130,7 +69413,7 @@ WildTreeMonTable6: ; b8359 db $ff ; end ; b836c -WildTreeMonTable7: ; b836c +TreeMons7: ; b836c db 50, HOOTHOOT, 10 db 15, EKANS, 10 db 15, HOOTHOOT, 10 @@ -62140,7 +69423,7 @@ WildTreeMonTable7: ; b836c db $ff ; end ; b837f -WildTreeMonTable8: ; b837f +TreeMons8: ; b837f ; unused db 50, HOOTHOOT, 10 db 15, PINECO, 10 @@ -62151,7 +69434,7 @@ WildTreeMonTable8: ; b837f db $ff ; end ; b8392 -WildTreeMonTable9: ; b8392 +TreeMons9: ; b8392 db 50, HOOTHOOT, 10 db 15, VENONAT, 10 db 15, HOOTHOOT, 10 @@ -62161,7 +69444,7 @@ WildTreeMonTable9: ; b8392 db $ff ; end ; b83a5 -WildTreeMonTable10: ; b83a5 +TreeMons10: ; b83a5 ; unused db 50, HOOTHOOT, 10 db 15, PINECO, 10 @@ -62172,7 +69455,7 @@ WildTreeMonTable10: ; b83a5 db $ff ; end ; b83b8 -WildTreeMonTable11: ; b83b8 +TreeMons11: ; b83b8 db 50, HOOTHOOT, 10 db 15, PINECO, 10 db 15, PINECO, 10 @@ -62182,7 +69465,7 @@ WildTreeMonTable11: ; b83b8 db $ff ; end ; b83cb -WildTreeMonTable12; b83cb +TreeMons12; b83cb ; unused db 50, HOOTHOOT, 10 db 15, CATERPIE, 10 @@ -62193,13 +69476,82 @@ WildTreeMonTable12; b83cb db $ff ; end ; b83de -WildRockMonTable: ; b83de +RockMons: ; b83de db 90, KRABBY, 15 db 10, SHUCKLE, 15 db $ff ; end ; b83e5 -INCBIN "baserom.gbc", $b83e5, $b9229 - $b83e5 +INCBIN "baserom.gbc", $b83e5, $b841f - $b83e5 + +Functionb841f: ; b841f +; Read a TreeMons table. + + ld a, 100 + call Function2fb1 +.asm_b8424 + sub [hl] + jr c, .asm_b842c + inc hl + inc hl + inc hl + jr .asm_b8424 + +.asm_b842c + ld a, [hli] + cp $ff + jr z, .asm_b843b + ld a, [hli] + ld [$d22e], a + ld a, [hl] + ld [CurPartyLevel], a + scf + ret + +.asm_b843b + xor a + ld [$d22e], a + ld [CurPartyLevel], a + ret +; b8443 + +INCBIN "baserom.gbc", $b8443, $b8f8f - $b8443 + +Functionb8f8f: ; b8f8f + ld a, c + swap a + and $f + ld hl, $4ff9 + ld d, $0 + ld e, a + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hli] + ld b, a + push hl + inc hl + ld a, c + and $f + ld c, a + push hl + ld hl, $4fb8 + ld e, b + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + pop de + call _hl_ + pop hl + ld c, [hl] + ret +; b8fb8 + +INCBIN "baserom.gbc", $b8fb8, $b9229 - $b8fb8 Functionb9229: ; b9229 ld a, [CurPartyMon] @@ -62323,441 +69675,31 @@ Functionb92b8: ; b92b8 INCBIN "baserom.gbc", $b92f7, $b9e76 - $b92f7 -Functionb9e76: ; b9e76 +ItemIsMail: ; b9e76 ld a, d - ld hl, $5e80 - ld de, $0001 + ld hl, .items + ld de, 1 jp IsInArray ; b9e80 -INCBIN "baserom.gbc", $b9e80, $b9e8b - $b9e80 +.items + db FLOWER_MAIL + db SURF_MAIL + db LITEBLUEMAIL + db PORTRAITMAIL + db LOVELY_MAIL + db EON_MAIL + db MORPH_MAIL + db BLUESKY_MAIL + db MUSIC_MAIL + db MIRAGE_MAIL + db $ff +; b9e8b SECTION "bank2F",ROMX,BANK[$2F] -INCBIN "baserom.gbc", $bc000, $bc09c - $bc000 - -PokeCenterNurseScript: ; bc09c -; Talking to a nurse in a Pokemon Center - - loadfont -; The nurse has different text for: -; Morn - checktime $1 - iftrue .morn -; Day - checktime $2 - iftrue .day -; Nite - checktime $4 - iftrue .nite -; If somehow it's not a time of day at all, we skip the introduction - 2jump .heal - -.morn -; Different text if we're in the com center - checkbit1 $032a - iftrue .morn_comcenter -; Good morning! Welcome to ... - 3writetext BANK(UnknownText_0x1b0000), UnknownText_0x1b0000 - keeptextopen - 2jump .heal -.morn_comcenter -; Good morning! This is the ... - 3writetext BANK(UnknownText_0x1b008a), UnknownText_0x1b008a - keeptextopen - 2jump .heal - -.day -; Different text if we're in the com center - checkbit1 $032a - iftrue .day_comcenter -; Hello! Welcome to ... - 3writetext BANK(UnknownText_0x1b002b), UnknownText_0x1b002b - keeptextopen - 2jump .heal -.day_comcenter -; Hello! This is the ... - 3writetext BANK(UnknownText_0x1b00d6), UnknownText_0x1b00d6 - keeptextopen - 2jump .heal - -.nite -; Different text if we're in the com center - checkbit1 $032a - iftrue .nite_comcenter -; Good evening! You're out late. ... - 3writetext BANK(UnknownText_0x1b004f), UnknownText_0x1b004f - keeptextopen - 2jump .heal -.nite_comcenter -; Good to see you working so late. ... - 3writetext BANK(UnknownText_0x1b011b), UnknownText_0x1b011b - keeptextopen - 2jump .heal - -.heal -; If we come back, don't welcome us to the com center again - clearbit1 $032a -; Ask if you want to heal - 3writetext BANK(UnknownText_0x1b017a), UnknownText_0x1b017a - yesorno - iffalse .end -; Go ahead and heal - 3writetext BANK(UnknownText_0x1b01bd), UnknownText_0x1b01bd - pause 20 - special $009d -; Turn to the machine - spriteface $fe, $2 - pause 10 - special $001b - playmusic $0000 - writebyte $0 - special $003e - pause 30 - special $003d - spriteface $fe, $0 - pause 10 -; Has Elm already phoned you about Pokerus? - checkphonecall - iftrue .done -; Has Pokerus already been found in the Pokecenter? - checkbit2 $000d - iftrue .done -; Check for Pokerus - special $004e ; SPECIAL_CHECKPOKERUS - iftrue .pokerus -.done -; Thank you for waiting. ... - 3writetext BANK(UnknownText_0x1b01d7), UnknownText_0x1b01d7 - pause 20 -.end -; We hope to see you again. - 3writetext BANK(UnknownText_0x1b020b), UnknownText_0x1b020b -; Curtsy - spriteface $fe, $1 - pause 10 - spriteface $fe, $0 - pause 10 -; And we're out - closetext - loadmovesprites - end - -.pokerus -; Different text for com center (excludes 'in a Pokemon Center') -; Since flag $32a is cleared when healing, -; this text is never actually seen - checkbit1 $032a - iftrue .pokerus_comcenter -; Your Pokemon appear to be infected ... - 3writetext BANK(UnknownText_0x1b0241), UnknownText_0x1b0241 - closetext - loadmovesprites - 2jump .endpokerus -.pokerus_comcenter -; Your Pokemon appear to be infected ... - 3writetext BANK(UnknownText_0x1b02d6), UnknownText_0x1b02d6 - closetext - loadmovesprites -.endpokerus -; Don't tell us about Pokerus again - setbit2 $000d -; Trigger Elm's Pokerus phone call - specialphonecall $0001 - end -; bc162 - -INCBIN "baserom.gbc", $bc162, $bcea5-$bc162 - -UnusedPhoneScript: ; 0xbcea5 - 3writetext BANK(UnusedPhoneText), UnusedPhoneText - end - -MomPhoneScript: ; 0xbceaa - checkbit1 $0040 - iftrue .bcec5 - checkbit1 $0041 ; if dude talked to you, then you left home without talking to mom - iftrue MomPhoneLectureScript - checkbit1 $001f - iftrue MomPhoneNoGymQuestScript - checkbit1 $001a - iftrue MomPhoneNoPokedexScript - 2jump MomPhoneNoPokemonScript - -.bcec5 ; 0xbcec5 - checkbit1 $0007 - iftrue MomPhoneHangUpScript - 3writetext BANK(MomPhoneGreetingText), MomPhoneGreetingText - keeptextopen - mapnametotext $0 - checkcode $f - if_equal $1, UnknownScript_0xbcee7 - if_equal $2, $4f27 - 2jump UnknownScript_0xbcf2f - -UnknownScript_0xbcedf: ; 0xbcedf - 3writetext $6d, $4021 - keeptextopen - 2jump UnknownScript_0xbcf37 - -UnknownScript_0xbcee7: ; 0xbcee7 - checkcode $c - if_equal GROUP_NEW_BARK_TOWN, .newbark - if_equal GROUP_CHERRYGROVE_CITY, .cherrygrove - if_equal GROUP_VIOLET_CITY, .violet - if_equal GROUP_AZALEA_TOWN, .azalea - if_equal GROUP_GOLDENROD_CITY, .goldenrod - 3writetext BANK(MomPhoneGenericAreaText), MomPhoneGenericAreaText - keeptextopen - 2jump UnknownScript_0xbcf37 - -.newbark ; 0xbcf05 - 3writetext BANK(MomPhoneNewBarkText), MomPhoneNewBarkText - keeptextopen - 2jump UnknownScript_0xbcf37 - -.cherrygrove ; 0xbcf0d - 3writetext BANK(MomPhoneCherrygroveText), MomPhoneCherrygroveText - keeptextopen - 2jump UnknownScript_0xbcf37 - -.violet ; 0xbcf15 - displaylocation $7 ; sprout tower - 3call $3, UnknownScript_0xbcedf -.azalea ; 0xbcf1b - displaylocation $d ; slowpoke well - 3call $3, UnknownScript_0xbcedf -.goldenrod ; 0xbcf21 - displaylocation $11 ; radio tower - 3call $3, UnknownScript_0xbcedf - 3writetext $6d, $411c - keeptextopen - 2jump UnknownScript_0xbcf37 - -UnknownScript_0xbcf2f: ; 0xbcf2f - 3writetext $6d, $4150 - keeptextopen - 2jump UnknownScript_0xbcf37 - -UnknownScript_0xbcf37: ; 0xbcf37 - checkbit2 $0008 - iffalse UnknownScript_0xbcf49 - checkmoney $1, 0 - if_equal $0, UnknownScript_0xbcf55 - 2jump UnknownScript_0xbcf63 - -UnknownScript_0xbcf49: ; 0xbcf49 - checkmoney $1, 0 - if_equal $0, UnknownScript_0xbcf79 - 2jump UnknownScript_0xbcf6e - -UnknownScript_0xbcf55: ; 0xbcf55 - readmoney $1, $0 - 3writetext $6d, $41a7 - yesorno - iftrue MomPhoneSaveMoneyScript - 2jump MomPhoneWontSaveMoneyScript - -UnknownScript_0xbcf63: ; 0xbcf63 - 3writetext $6d, $41ea - yesorno - iftrue MomPhoneSaveMoneyScript - 2jump MomPhoneWontSaveMoneyScript - -UnknownScript_0xbcf6e: ; 0xbcf6e - 3writetext $6d, $420d - yesorno - iftrue MomPhoneSaveMoneyScript - 2jump MomPhoneWontSaveMoneyScript - -UnknownScript_0xbcf79: ; 0xbcf79 - readmoney $1, $0 - 3writetext $6d, $4249 - yesorno - iftrue MomPhoneSaveMoneyScript - 2jump MomPhoneWontSaveMoneyScript - -MomPhoneSaveMoneyScript: ; 0xbcf87 - setbit2 $0008 - 3writetext $6d, $4289 - keeptextopen - 2jump MomPhoneHangUpScript - -MomPhoneWontSaveMoneyScript: ; 0xbcf92 - clearbit2 $0008 - 3writetext BANK(MomPhoneWontSaveMoneyText), MomPhoneWontSaveMoneyText - keeptextopen - 2jump MomPhoneHangUpScript - -MomPhoneHangUpScript: ; 0xbcf9d - 3writetext BANK(MomPhoneHangUpText), MomPhoneHangUpText - end - -MomPhoneNoPokemonScript: ; 0xbcfa2 - 3writetext BANK(MomPhoneNoPokemonText), MomPhoneNoPokemonText - end - -MomPhoneNoPokedexScript: ; 0xbcfa7 - 3writetext BANK(MomPhoneNoPokedexText), MomPhoneNoPokedexText - end - -MomPhoneNoGymQuestScript: ; 0xbcfac - 3writetext BANK(MomPhoneNoGymQuestText), MomPhoneNoGymQuestText - end - -MomPhoneLectureScript: ; 0xbcfb1 - setbit1 $0040 - setbit2 $0009 - specialphonecall $0000 - 3writetext BANK(MomPhoneLectureText), MomPhoneLectureText - yesorno - iftrue MomPhoneSaveMoneyScript - 2jump MomPhoneWontSaveMoneyScript - -BillPhoneScript1: ; 0xbcfc5 - checktime $2 - iftrue .daygreet - checktime $4 - iftrue .nitegreet - 3writetext BANK(BillPhoneMornGreetingText), BillPhoneMornGreetingText - keeptextopen - 2jump .main - -.daygreet ; 0xbcfd7 - 3writetext BANK(BillPhoneDayGreetingText), BillPhoneDayGreetingText - keeptextopen - 2jump .main - -.nitegreet ; 0xbcfdf - 3writetext BANK(BillPhoneNiteGreetingText), BillPhoneNiteGreetingText - keeptextopen - 2jump .main - -.main ; 0xbcfe7 - 3writetext BANK(BillPhoneGeneriText), BillPhoneGeneriText - keeptextopen - checkcode $10 - RAM2MEM $0 - if_equal $0, .full - if_greater_than $6, .nearlyfull - 3writetext BANK(BillPhoneNotFullText), BillPhoneNotFullText - end - -.nearlyfull ; 0xbcffd - 3writetext BANK(BillPhoneNearlyFullText), BillPhoneNearlyFullText - end - -.full ; 0xbd002 - 3writetext BANK(BillPhoneFullText), BillPhoneFullText - end - -BillPhoneScript2: ; 0xbd007 - 3writetext BANK(BillPhoneNewlyFullText), BillPhoneNewlyFullText - closetext - end - -ElmPhoneScript1: ; 0xbd00d - checkcode $14 - if_equal $1, .pokerus - checkbit1 $0055 - iftrue .discovery - checkbit1 $002d - iffalse .next - checkbit1 $0054 - iftrue .egghatched -.next - checkbit1 $002d - iftrue .eggunhatched - checkbit1 $0701 - iftrue .assistant - checkbit1 $001f - iftrue .checkingegg - checkbit1 $0043 - iftrue .stolen - checkbit1 $001e - iftrue .sawmrpokemon - 3writetext BANK(ElmPhoneStartText), ElmPhoneStartText - end - -.sawmrpokemon ; 0xbd048 - 3writetext BANK(ElmPhoneSawMrPokemonText), ElmPhoneSawMrPokemonText - end - -.stolen ; 0xbd04d - 3writetext BANK(ElmPhonePokemonStolenText), ElmPhonePokemonStolenText - end - -.checkingegg ; 0xbd052 - 3writetext BANK(ElmPhoneCheckingEggText), ElmPhoneCheckingEggText - end - -.assistant ; 0xbd057 - 3writetext BANK(ElmPhoneAssistantText), ElmPhoneAssistantText - end - -.eggunhatched ; 0xbd05c - 3writetext BANK(ElmPhoneEggUnhatchedText), ElmPhoneEggUnhatchedText - end - -.egghatched ; 0xbd061 - 3writetext BANK(ElmPhoneEggHatchedText), ElmPhoneEggHatchedText - setbit1 $0077 - end - -.discovery ; 0xbd069 - random $2 - if_equal $0, .nextdiscovery - 3writetext BANK(ElmPhoneDiscovery1Text), ElmPhoneDiscovery1Text - end - -.nextdiscovery ; 0xbd074 - 3writetext BANK(ElmPhoneDiscovery2Text), ElmPhoneDiscovery2Text - end - -.pokerus ; 0xbd079 - 3writetext BANK(ElmPhonePokerusText), ElmPhonePokerusText - specialphonecall $0000 - end - -ElmPhoneScript2: ; 0xbd081 - checkcode $14 - if_equal $2, .disaster - if_equal $3, .assistant - if_equal $4, .rocket - if_equal $5, .gift - if_equal $8, .gift - 3writetext BANK(ElmPhonePokerusText), ElmPhonePokerusText - specialphonecall $0000 - end - -.disaster ; 0xbd09f - 3writetext BANK(ElmPhoneDisasterText), ElmPhoneDisasterText - specialphonecall $0000 - setbit1 $0043 - end - -.assistant ; 0xbd0aa - 3writetext BANK(ElmPhoneEggAssistantText), ElmPhoneEggAssistantText - specialphonecall $0000 - clearbit1 $0700 - setbit1 $0701 - end - -.rocket ; 0xbd0b8 - 3writetext BANK(ElmPhoneRocketText), ElmPhoneRocketText - specialphonecall $0000 - end - -.gift ; 0xbd0c0 - 3writetext BANK(ElmPhoneGiftText), ElmPhoneGiftText - specialphonecall $0000 - end - -.unused ; 0xbd0c8 - 3writetext BANK(ElmPhoneUnusedText), ElmPhoneUnusedText - specialphonecall $0000 - end +INCLUDE "engine/std_scripts.asm" INCBIN "baserom.gbc", $bd0d0, $be699-$bd0d0 @@ -62772,7 +69714,59 @@ INCLUDE "gfx/overworld/sprites_2.asm" SECTION "bank32",ROMX,BANK[$32] -INCBIN "baserom.gbc", $c8000, $cbe2b - $c8000 +INCBIN "baserom.gbc", $c8000, $cbcdd - $c8000 + +Functioncbcdd: ; cbcdd + call Functioncbce5 + ld a, [hCGB] + and a + ret nz + ret +; cbce5 + +Functioncbce5: ; cbce5 + ld a, [hCGB] + and a + jr nz, .asm_cbd06 + ld a, [TimeOfDayPal] + and $3 + cp $3 + ld a, $0 + jr z, .asm_cbcf7 + ld a, $aa + +.asm_cbcf7 + call DmgToCgbBGPals + ld c, $4 + call DelayFrames + callba _UpdateTimePals + ret + +.asm_cbd06 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, BGPals + ld c, $20 +.asm_cbd12 + ld a, $bc + ld [hli], a + ld a, $7e + ld [hli], a + dec c + jr nz, .asm_cbd12 + pop af + ld [rSVBK], a + ld a, $1 + ld [hCGBPalUpdate], a + ld c, $4 + call DelayFrames + callba _UpdateTimePals + ret +; cbd2e + +INCBIN "baserom.gbc", $cbd2e, $cbe2b - $cbd2e SECTION "bank33",ROMX,BANK[$33] @@ -62852,7 +69846,11 @@ Functioncc0c7: ; cc0c7 jp PrintText ; cc0d0 -INCBIN "baserom.gbc", $cc0d0, $cc0d6 - $cc0d0 +INCBIN "baserom.gbc", $cc0d0, $cc0d5 - $cc0d0 + +Functioncc0d5: ; cc0d5 + ret +; cc0d6 Functioncc0d6: ; cc0d6 @@ -63193,7 +70191,7 @@ Functioncc8a4: ; cc8a4 ; cc8d3 Functioncc8d3: ; cc8d3 - ld hl, $d100 + ld hl, LYOverrides ld bc, $0354 .asm_cc8d9 ld [hl], $0 @@ -63667,7 +70665,1030 @@ Music_PostCredits: INCLUDE "audio/music/postcredits.asm" SECTION "bank34",ROMX,BANK[$34] ; Pic animations asm -INCBIN "baserom.gbc", $d0000, $d0695 - $d0000 +Functiond0000: ; d0000 + ld hl, $c4ac + ld a, [IsInBattle] + cp $1 + jr z, .asm_d0012 + ld e, $0 + ld d, $0 + call Functiond008e + ret + +.asm_d0012 + ld e, $1 + ld d, $0 + call Functiond008e + ret +; d001a + +INCBIN "baserom.gbc", $d001a, $d008e - $d001a + +Functiond008e: ; d008e + call Functiond01c6 + ret c + call Functiond00a3 +.asm_d0095 + call Functiond00b4 + push af + callba Function10402d + pop af + jr nc, .asm_d0095 + ret +; d00a3 + +Functiond00a3: ; d00a3 + push hl + ld c, e + ld b, $0 + ld hl, $4042 + add hl, bc + add hl, bc + ld a, [hli] + ld b, [hl] + ld c, a + pop hl + call Functiond01d6 + ret +; d00b4 + +Functiond00b4: ; d00b4 + ld a, [rSVBK] + push af + ld a, $2 + ld [rSVBK], a + ld a, [$d168] + ld c, a + ld b, $0 + ld hl, $d169 + ld a, [hli] + ld h, [hl] + ld l, a + add hl, bc + ld a, [hl] + ld hl, $40da + rst JumpTable + ld a, [$d168] + ld c, a + pop af + ld [rSVBK], a + ld a, c + and $80 + ret z + scf + ret +; d00da + +Tabled00da: ; d00da + dw Functiond0171 + dw Functiond0166 + dw Functiond00f2 + dw Functiond00fe + dw Functiond010b + dw Functiond011d + dw Functiond012f + dw Functiond0141 + dw Functiond0155 + dw Functiond017a + dw Functiond0188 + dw Functiond0196 +; d00f2 + +Functiond00f2: ; d00f2 + ld a, $12 + ld [$d181], a + ld a, [$d168] + inc a + ld [$d168], a + +Functiond00fe: ; d00fe + ld hl, $d181 + dec [hl] + ret nz + ld a, [$d168] + inc a + ld [$d168], a + ret +; d010b + +Functiond010b: ; d010b + ld c, $0 + ld b, $0 + call Functiond0228 + call Functiond0504 + ld a, [$d168] + inc a + ld [$d168], a + ret +; d011d + +Functiond011d: ; d011d + ld c, $0 + ld b, $4 + call Functiond0228 + call Functiond0504 + ld a, [$d168] + inc a + ld [$d168], a + ret +; d012f + +Functiond012f: ; d012f + ld c, $1 + ld b, $0 + call Functiond0228 + call Functiond0504 + ld a, [$d168] + inc a + ld [$d168], a + ret +; d0141 + +Functiond0141: ; d0141 + call Functiond0250 + ld a, [$d17e] + bit 7, a + ret z + call Functiond04bd + ld a, [$d168] + inc a + ld [$d168], a + ret +; d0155 + +Functiond0155: ; d0155 + call Functiond0250 + ld a, [$d17e] + bit 7, a + ret z + ld a, [$d168] + inc a + ld [$d168], a + ret +; d0166 + +Functiond0166: ; d0166 + call Functiond01a9 + ld a, [$d168] + inc a + ld [$d168], a + ret +; d0171 + +Functiond0171: ; d0171 + call Functiond01a9 + ld hl, $d168 + set 7, [hl] + ret +; d017a + +Functiond017a: ; d017a + ld a, [$d16b] + call Function37e2 + ld a, [$d168] + inc a + ld [$d168], a + ret +; d0188 + +Functiond0188: ; d0188 + ld a, [$d16b] + call Function37d5 + ld a, [$d168] + inc a + ld [$d168], a + ret +; d0196 + +Functiond0196: ; d0196 + ld a, $f + ld [CryTracks], a + ld a, [$d16b] + call Function37c4 + ld a, [$d168] + inc a + ld [$d168], a + ret +; d01a9 + +Functiond01a9: ; d01a9 + ld a, [rSVBK] + push af + ld a, $2 + ld [rSVBK], a + call Functiond04bd + callba Function10402d + call Functiond0536 + callba Function104047 + pop af + ld [rSVBK], a + ret +; d01c6 + +Functiond01c6: ; d01c6 + ld a, [CurPartySpecies] + cp $fd + jr z, .asm_d01d4 + call IsAPokemon + jr c, .asm_d01d4 + and a + ret + +.asm_d01d4 + scf + ret +; d01d6 + +Functiond01d6: ; d01d6 + ld a, [rSVBK] + push af + ld a, $2 + ld [rSVBK], a + push bc + push de + push hl + ld hl, $d168 + ld bc, $0029 + xor a + call ByteFill + pop hl + pop de + pop bc + ld a, c + ld [$d169], a + ld a, b + ld [$d16a], a + ld a, l + ld [$d16f], a + ld a, h + ld [$d170], a + ld a, d + ld [$d16e], a + ld a, $1 + ld hl, CurPartySpecies + call GetFarWRAMByte + ld [$d16b], a + ld a, $1 + ld hl, UnownLetter + call GetFarWRAMByte + ld [$d16c], a + call Functiond065c + ld [$d16d], a + call Functiond05b4 + ld a, c + ld [$d171], a + pop af + ld [rSVBK], a + ret +; d0228 + +Functiond0228: ; d0228 + ld a, [rSVBK] + push af + ld a, $2 + ld [rSVBK], a + push bc + ld hl, $d172 + ld bc, $001f + xor a + call ByteFill + pop bc + ld a, b + ld [$d173], a + ld a, c + ld [$d172], a + call Functiond055c + call Functiond05ce + call Functiond061b + pop af + ld [rSVBK], a + ret +; d0250 + +Functiond0250: ; d0250 + xor a + ld [hBGMapMode], a + +Functiond0253: ; d0253 + ld a, [$d17e] + and $7f + ld hl, Tabled025d + rst JumpTable + ret +; d025d + +Tabled025d: ; d025d + dw Functiond0261 + dw Functiond0282 +; d0261 + +Functiond0261: ; d0261 + call Functiond02f8 + ld a, [$d182] + cp $ff + jr z, Functiond02a8 + cp $fe + jr z, Functiond028e + cp $fd + jr z, Functiond0296 + call Functiond02c8 + ld a, [$d183] + call Functiond02ae + ld [$d181], a + call Functiond02dc + +Functiond0282: ; d0282 + ld a, [$d181] + dec a + ld [$d181], a + ret nz + call Functiond02e4 + ret +; d028e + +Functiond028e: ; d028e + ld a, [$d183] + ld [$d17f], a + jr Functiond0253 +; d0296 + +Functiond0296: ; d0296 + ld a, [$d17f] + and a + ret z + dec a + ld [$d17f], a + ret z + ld a, [$d183] + ld [$d17d], a + jr Functiond0253 +; d02a8 + +Functiond02a8: ; d02a8 + ld hl, $d17e + set 7, [hl] + ret +; d02ae + +Functiond02ae: ; d02ae + ld c, a + ld b, $0 + ld hl, $0000 + ld a, [$d173] + call AddNTimes + ld a, h + swap a + and $f0 + ld h, a + ld a, l + swap a + and $f + or h + add c + ret +; d02c8 + +Functiond02c8: ; d02c8 + call Functiond04bd + ld a, [$d182] + and a + ret z + call Functiond031b + push hl + call Functiond033b + pop hl + call Functiond036b + ret +; d02dc + +Functiond02dc: ; d02dc + ld a, [$d17e] + inc a + ld [$d17e], a + ret +; d02e4 + +Functiond02e4: ; d02e4 + ld a, [$d17e] + dec a + ld [$d17e], a + ret +; d02ec + +Functiond02ec: ; d02ec + ld a, [$d16b] + cp $c9 + ret +; d02f2 + +Functiond02f2: ; d02f2 + ld a, [$d16b] + cp $fd + ret +; d02f8 + +Functiond02f8: ; d02f8 + push hl + ld a, [$d17d] + ld e, a + ld d, $0 + ld hl, $d175 + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + add hl, de + ld a, [$d174] + call GetFarHalfword + ld a, l + ld [$d182], a + ld a, h + ld [$d183], a + ld hl, $d17d + inc [hl] + pop hl + ret +; d031b + +Functiond031b: ; d031b + ld a, [$d182] + dec a + ld c, a + ld b, $0 + ld hl, $d178 + ld a, [hli] + ld h, [hl] + ld l, a + add hl, bc + add hl, bc + ld a, [$d177] + call GetFarHalfword + ld a, [$d177] + call GetFarByte + ld [$d180], a + inc hl + ret +; d033b + +Functiond033b: ; d033b + call Functiond0356 + push bc + ld hl, $d17b + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$d180] + call AddNTimes + pop bc + ld de, $d188 + ld a, [$d17a] + call FarCopyBytes + ret +; d0356 + +Functiond0356: ; d0356 + push hl + ld a, [$d171] + sub $5 + ld c, a + ld b, $0 + ld hl, $4368 + add hl, bc + ld c, [hl] + ld b, $0 + pop hl + ret +; d0368 + +INCBIN "baserom.gbc", $d0368, $d036b - $d0368 + +Functiond036b: ; d036b + xor a + ld [$d187], a + ld [$d186], a + ld [$d185], a +.asm_d0375 + push hl + call Functiond0392 + pop hl + ld a, b + and a + jr z, .asm_d038a + ld a, [$d177] + call GetFarByte + inc hl + push hl + call Functiond03bd + pop hl + +.asm_d038a + push hl + call Functiond0499 + pop hl + jr nc, .asm_d0375 + ret +; d0392 + +Functiond0392: ; d0392 + ld a, [$d187] + and $f8 + rrca + rrca + rrca + ld e, a + ld d, $0 + ld hl, $d188 + add hl, de + ld b, [hl] + ld a, [$d187] + and $7 + jr z, .asm_d03b0 + ld c, a + ld a, b +.asm_d03ab + rrca + dec c + jr nz, .asm_d03ab + ld b, a + +.asm_d03b0 + xor a + bit 0, b + jr z, .asm_d03b7 + ld a, $1 + +.asm_d03b7 + ld b, a + ld hl, $d187 + inc [hl] + ret +; d03bd + +Functiond03bd: ; d03bd + push af + call Functiond03cd + pop af + push hl + call Functiond03f7 + ld hl, $d16e + add [hl] + pop hl + ld [hl], a + ret +; d03cd + +Functiond03cd: ; d03cd + call Functiond046c + ld a, [$d186] + ld bc, $0014 + call AddNTimes + ld a, [$c2c6] + and a + jr nz, .asm_d03e8 + ld a, [$d185] + ld e, a + ld d, $0 + add hl, de + jr .asm_d03f3 + +.asm_d03e8 + ld a, [$d185] + ld e, a + ld a, l + sub e + ld l, a + ld a, h + sbc $0 + ld h, a + +.asm_d03f3 + ret +; d03f4 + +INCBIN "baserom.gbc", $d03f4, $d03f7 - $d03f4 + +Functiond03f7: ; d03f7 + push af + ld a, [$d171] + cp $5 + jr z, .asm_d0405 + cp $6 + jr z, .asm_d041a + pop af + ret + +.asm_d0405 + pop af + cp $19 + jr nc, .asm_d0417 + push hl + push de + ld hl, $442f + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + pop de + pop hl + ret + +.asm_d0417 + add $18 + ret + +.asm_d041a + pop af + cp $24 + jr nc, .asm_d042c + push hl + push de + ld hl, $4448 + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + pop de + pop hl + ret + +.asm_d042c + add $d + ret +; d042f + +INCBIN "baserom.gbc", $d042f, $d046c - $d042f + +Functiond046c: ; d046c + ld hl, $d16f + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$d171] + ld de, $0000 + ld bc, $0006 + cp $7 + jr z, .asm_d048f + ld de, $0015 + ld bc, $0019 + cp $6 + jr z, .asm_d048f + ld de, $0029 + ld bc, $002d + +.asm_d048f + ld a, [$c2c6] + and a + jr nz, .asm_d0497 + add hl, de + ret + +.asm_d0497 + add hl, bc + ret +; d0499 + +Functiond0499: ; d0499 + ld a, [$d186] + inc a + ld [$d186], a + ld c, a + ld a, [$d171] + cp c + jr nz, .asm_d04bb + xor a + ld [$d186], a + ld a, [$d185] + inc a + ld [$d185], a + ld c, a + ld a, [$d171] + cp c + jr nz, .asm_d04bb + scf + ret + +.asm_d04bb + xor a + ret +; d04bd + +Functiond04bd: ; d04bd + call Functiond04f6 + ld a, [$c2c6] + and a + jr nz, .asm_d04ce + ld de, $0001 + ld bc, $0000 + jr .asm_d04d4 + +.asm_d04ce + ld de, rIE + ld bc, $0006 + +.asm_d04d4 + ld hl, $d16f + ld a, [hli] + ld h, [hl] + ld l, a + add hl, bc + ld c, $7 + ld b, $7 + ld a, [$d16e] +.asm_d04e2 + push bc + push hl + push de + ld de, $0014 +.asm_d04e8 + ld [hl], a + inc a + add hl, de + dec b + jr nz, .asm_d04e8 + pop de + pop hl + add hl, de + pop bc + dec c + jr nz, .asm_d04e2 + ret +; d04f6 + +Functiond04f6: ; d04f6 + ld hl, $d16f + ld a, [hli] + ld h, [hl] + ld l, a + ld b, $7 + ld c, $7 + call ClearBox + ret +; d0504 + +Functiond0504: ; d0504 + ld a, [rSVBK] + push af + ld a, $2 + ld [rSVBK], a + xor a + ld [hBGMapMode], a + call Functiond051b + callba Function104047 + pop af + ld [rSVBK], a + ret +; d051b + +Functiond051b: ; d051b + call Functiond0551 + ld b, $7 + ld c, $7 + ld de, $0014 +.asm_d0525 + push bc + push hl +.asm_d0527 + ld a, [hl] + or $8 + ld [hl], a + add hl, de + dec c + jr nz, .asm_d0527 + pop hl + inc hl + pop bc + dec b + jr nz, .asm_d0525 + ret +; d0536 + +Functiond0536: ; d0536 + call Functiond0551 + ld b, $7 + ld c, $7 + ld de, $0014 +.asm_d0540 + push bc + push hl +.asm_d0542 + ld a, [hl] + and $f7 + ld [hl], a + add hl, de + dec c + jr nz, .asm_d0542 + pop hl + inc hl + pop bc + dec b + jr nz, .asm_d0540 + ret +; d0551 + +Functiond0551: ; d0551 + ld hl, $d16f + ld a, [hli] + ld h, [hl] + ld l, a + ld de, $0939 + add hl, de + ret +; d055c + +Functiond055c: ; d055c + call Functiond02f2 + jr z, .asm_d0597 + ld c, $34 + ld hl, UnownAnimationPointers + ld de, UnownAnimationExtraPointers + call Functiond02ec + jr z, .asm_d0576 + ld c, $34 + ld hl, AnimationPointers + ld de, AnimationExtraPointers + +.asm_d0576 + ld a, [$d172] + and a + jr z, .asm_d057e + ld h, d + ld l, e + +.asm_d057e + ld a, [$d16d] + dec a + ld e, a + ld d, $0 + add hl, de + add hl, de + ld a, c + ld [$d174], a + call GetFarHalfword + ld a, l + ld [$d175], a + ld a, h + ld [$d176], a + ret + +.asm_d0597 + ld hl, EggAnimation + ld c, $34 + ld a, [$d172] + and a + jr z, .asm_d05a7 + ld hl, EggAnimationExtra + ld c, $34 + +.asm_d05a7 + ld a, c + ld [$d174], a + ld a, l + ld [$d175], a + ld a, h + ld [$d176], a + ret +; d05b4 + +Functiond05b4: ; d05b4 + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [CurPartySpecies] + ld [CurSpecies], a + call GetBaseData + ld a, [BasePicSize] + and $f + ld c, a + pop af + ld [rSVBK], a + ret +; d05ce + +Functiond05ce: ; d05ce + call Functiond02f2 + jr z, .asm_d0609 + call Functiond02ec + ld b, $36 + ld c, $36 + ld hl, PikachuAnimationExtra + jr z, .asm_d05ef + ld a, [$d16b] + cp $98 + ld b, $35 + ld c, $35 + ld hl, $4000 + jr c, .asm_d05ef + ld c, $36 + +.asm_d05ef + ld a, c + ld [$d177], a + ld a, [$d16d] + dec a + ld e, a + ld d, $0 + add hl, de + add hl, de + ld a, b + call GetFarHalfword + ld a, l + ld [$d178], a + ld a, h + ld [$d179], a + ret + +.asm_d0609 + ld hl, $598b + ld c, $36 + ld a, c + ld [$d177], a + ld a, l + ld [$d178], a + ld a, h + ld [$d179], a + ret +; d061b + +Functiond061b: ; d061b + call Functiond02f2 + jr z, .asm_d064a + call Functiond02ec + ld a, $34 + ld hl, UnownBitmasksPointers + jr z, .asm_d062f + ld a, $34 + ld hl, BitmasksPointers + +.asm_d062f + ld [$d17a], a + ld a, [$d16d] + dec a + ld e, a + ld d, $0 + add hl, de + add hl, de + ld a, [$d17a] + call GetFarHalfword + ld a, l + ld [$d17b], a + ld a, h + ld [$d17c], a + ret + +.asm_d064a + ld c, $34 + ld hl, EggBitmasks + ld a, c + ld [$d17a], a + ld a, l + ld [$d17b], a + ld a, h + ld [$d17c], a + ret +; d065c + +Functiond065c: ; d065c + call Functiond02ec + jr z, .asm_d0665 + ld a, [$d16b] + ret + +.asm_d0665 + ld a, [$d16c] + ret +; d0669 + +Functiond0669: ; d0669 + ld a, $1 + ld [$c2c6], a + +Functiond066e: ; d066e + call Functiond01c6 + jr c, .asm_d068c + ld h, d + ld l, e + push bc + push hl + ld de, VTiles2 + ld a, $3e + call Predef + pop hl + pop bc + ld d, $0 + ld e, c + call Functiond008e + xor a + ld [$c2c6], a + ret + +.asm_d068c + xor a + ld [$c2c6], a + inc a + ld [CurPartySpecies], a + ret +; d0695 ; Pic animations are assembled in 3 parts: @@ -63732,121 +71753,646 @@ INCLUDE "gfx/pics/unown_frames.asm" SECTION "bank37",ROMX,BANK[$37] -Tileset31GFX: ; 0xdc000 -INCBIN "gfx/tilesets/31.lz" -; 0xdc3ce - - db $00 - db $00 - -Tileset18GFX: ; 0xdc3d0 -INCBIN "gfx/tilesets/18.lz" -; 0xdcc4e - - db $00 - db $00 - -Tileset18Meta: ; 0xdcc50 -INCBIN "tilesets/18_metatiles.bin" -; 0xdd050 - -Tileset18Coll: ; 0xdd050 -INCBIN "tilesets/18_collision.bin" -; 0xdd150 - -Tileset05GFX: ; 0xdd150 -INCBIN "gfx/tilesets/05.lz" -; 0xdd5f8 - - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset05Meta: ; 0xdd600 -INCBIN "tilesets/05_metatiles.bin" -; 0xdda00 - -Tileset05Coll: ; 0xdda00 -INCBIN "tilesets/05_collision.bin" -; 0xddb00 - -Tileset19GFX: ; 0xddb00 -INCBIN "gfx/tilesets/19.lz" -; 0xddf64 - - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset19Meta: ; 0xddf70 -INCBIN "tilesets/19_metatiles.bin" -; 0xde370 - -Tileset19Coll: ; 0xde370 -INCBIN "tilesets/19_collision.bin" -; 0xde470 - -Tileset31Coll: ; 0xde470 -INCBIN "tilesets/31_collision.bin" -; 0xde570 - -Tileset11GFX: ; 0xde570 -INCBIN "gfx/tilesets/11.lz" -; 0xde98a - - db $00 - db $00 - db $00 - db $00 - db $00 - db $00 - -Tileset11Meta: ; 0xde990 -INCBIN "tilesets/11_metatiles.bin" -; 0xded90 - -Tileset11Coll: ; 0xded90 -INCBIN "tilesets/11_collision.bin" -; 0xdee90 - -Tileset04Meta: ; 0xdee90 -INCBIN "tilesets/04_metatiles.bin" -; 0xdf690 - -Tileset04Coll: ; 0xdf690 -INCBIN "tilesets/04_collision.bin" -; 0xdf890 - -Tileset32Meta: ; 0xdf890 -INCBIN "tilesets/32_metatiles.bin" -; 0xdfc90 - -Tileset32Coll: ; 0xdfc90 -Tileset33Coll: ; 0xdfc90 -Tileset34Coll: ; 0xdfc90 -Tileset35Coll: ; 0xdfc90 -Tileset36Coll: ; 0xdfc90 -INCBIN "tilesets/36_collision.bin" -; 0xdfd90 +INCLUDE "tilesets/data_6.asm" SECTION "bank38",ROMX,BANK[$38] -INCBIN "baserom.gbc", $e0000, $e37f9 - $e0000 +Functione0000: ; e0000 + push de + xor a + call GetSRAMBank + ld hl, $a000 + ld bc, $0000 +.asm_e000b + push bc + push hl + push bc + ld de, DefaultFlypoint + call Functione004e + call Functione0057 + ld hl, $408b + pop bc + add hl, bc + add hl, bc + ld a, [hli] + ld e, a + ld d, [hl] + ld hl, $d012 + call Functione004e + pop hl + ld bc, $0010 + add hl, bc + pop bc + inc c + ld a, c + cp $31 + jr c, .asm_e000b + ld hl, OverworldMap + ld de, $a000 + ld bc, $0310 + call CopyBytes + pop hl + ld de, $a000 + ld c, $31 + ld a, [hROMBank] + ld b, a + call Get2bpp + call CloseSRAM + ret +; e004e + +Functione004e: ; e004e + ld c, $10 +.asm_e0050 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_e0050 + ret +; e0057 + +Functione0057: ; e0057 + ld hl, $d012 + ld e, $80 + ld d, $8 +.asm_e005e + push hl + ld hl, DefaultFlypoint + call Functione0078 + pop hl + ld a, b + ld [hli], a + push hl + ld hl, $d003 + call Functione0078 + pop hl + ld a, b + ld [hli], a + srl e + dec d + jr nz, .asm_e005e + ret +; e0078 + +Functione0078: ; e0078 + ld b, $0 + ld c, $8 +.asm_e007c + ld a, [hli] + and e + jr z, .asm_e0083 + scf + jr .asm_e0084 + +.asm_e0083 + and a + +.asm_e0084 + rr b + inc hl + dec c + jr nz, .asm_e007c + ret +; e008b + +INCBIN "baserom.gbc", $e008b, $e1190 - $e008b + +Functione1190: ; e1190 + ld a, [$ffaa] + push af + ld a, $1 + ld [$ffaa], a + call WhiteBGMap + call ClearTileMap + call ClearSprites + xor a + ld [hBGMapMode], a + call DisableLCD + ld hl, EnemyMoveAnimation + ld bc, $01e0 + xor a + call ByteFill + ld hl, $57c5 + ld de, $8e00 + ld bc, $0040 + call CopyBytes + ld hl, $5805 + ld de, $8ed0 + call Decompress + call Functione17a3 + ld hl, TileMap + ld bc, $0168 + ld a, $ee + call ByteFill + ld hl, $c4e0 + ld bc, $0c0c + ld a, $ef + call Functione13ee + call Functione124e + call Functione13fe + call Functione127d + xor a + ld [hSCY], a + ld [hSCX], a + ld [rWY], a + ld [$cf63], a + ld [$cf64], a + ld [$cf65], a + ld [$cf66], a + ld a, $93 + ld [rLCDC], a + call WaitBGMap + ld b, $18 + call GetSGBLayout + ld a, $e4 + call DmgToCgbBGPals + ld a, $24 + call Functioncf8 + xor a + ld [$d0ec], a + call DelayFrame +.asm_e1217 + call Functiona57 + ld a, [$cf63] + bit 7, a + jr nz, .asm_e123d + call Functione12ca + ld a, [$cf64] + and a + jr nz, .asm_e1230 + ld a, [$ff9b] + and $10 + jr z, .asm_e1235 + +.asm_e1230 + call Functione14d9 + jr .asm_e1238 + +.asm_e1235 + call ClearSprites + +.asm_e1238 + call DelayFrame + jr .asm_e1217 + +.asm_e123d + pop af + ld [$ffaa], a + call WhiteBGMap + call ClearTileMap + call ClearSprites + ld a, $e3 + ld [rLCDC], a + ret +; e124e + +Functione124e: ; e124e + ld c, $1 + ld b, $10 +.asm_e1252 + call Random + and $f + ld hl, $526d + ld e, a + ld d, $0 + add hl, de + ld e, [hl] + ld hl, PlayerSDefLevel + add hl, de + ld a, [hl] + and a + jr nz, .asm_e1252 + ld [hl], c + inc c + dec b + jr nz, .asm_e1252 + ret +; e126d + +INCBIN "baserom.gbc", $e126d, $e127d - $e126d + +Functione127d: ; e127d + call Functione128d + ld hl, $c5e5 + ld a, $f6 + ld c, $a +.asm_e1287 + ld [hli], a + inc a + dec c + jr nz, .asm_e1287 + ret +; e128d + +Functione128d: ; e128d + ld hl, $c5d0 + ld a, $f0 + ld [hli], a + ld bc, $000a + ld a, $f1 + call ByteFill + ld hl, $c5db + ld a, $f2 + ld [hli], a + ld hl, $c5e4 + ld a, $f3 + ld [hli], a + ld bc, $000a + ld a, $ef + call ByteFill + ld hl, $c5ef + ld a, $f3 + ld [hli], a + ld hl, $c5f8 + ld a, $f4 + ld [hli], a + ld bc, $000a + ld a, $f1 + call ByteFill + ld hl, $c603 + ld a, $f5 + ld [hl], a + ret +; e12ca + +Functione12ca: ; e12ca + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $52d9 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; e12d9 + +INCBIN "baserom.gbc", $e12d9, $e13ee - $e12d9 + +Functione13ee: ; e13ee + ld de, $0014 +.asm_e13f1 + push bc + push hl +.asm_e13f3 + ld [hli], a + dec c + jr nz, .asm_e13f3 + pop hl + add hl, de + pop bc + dec b + jr nz, .asm_e13f1 + ret +; e13fe + +Functione13fe: ; e13fe + xor a + ld [$cf65], a + ld c, $24 +.asm_e1404 + push bc + call Functione1475 + ld [$cf66], a + and a + jr z, .asm_e1413 + call Functione141f + jr .asm_e1416 + +.asm_e1413 + call Functione1441 + +.asm_e1416 + ld hl, $cf65 + inc [hl] + pop bc + dec c + jr nz, .asm_e1404 + ret +; e141f + +Functione141f: ; e141f + ld a, $2 + call Functione1463 + ld a, [hli] + ld h, [hl] + ld l, a + push hl + call Functione1481 + pop hl + ld de, $0014 + ld b, $3 +.asm_e1431 + ld c, $3 + push hl +.asm_e1434 + ld [hli], a + inc a + dec c + jr nz, .asm_e1434 + add $9 + pop hl + add hl, de + dec b + jr nz, .asm_e1431 + ret +; e1441 + +Functione1441: ; e1441 + ld a, $2 + call Functione1463 + ld a, [hli] + ld h, [hl] + ld l, a + push hl + ld a, $4 + call Functione1463 + ld a, [hl] + pop hl + ld de, $0014 + ld b, $3 +.asm_e1456 + ld c, $3 + push hl +.asm_e1459 + ld [hli], a + dec c + jr nz, .asm_e1459 + pop hl + add hl, de + dec b + jr nz, .asm_e1456 + ret +; e1463 + +Functione1463: ; e1463 + ld e, a + ld d, $0 + ld hl, $5559 + add hl, de + ld a, [$cf65] + ld e, a + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + ret +; e1475 + +Functione1475: ; e1475 + ld hl, PlayerSDefLevel + ld a, [$cf65] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + ret +; e1481 + +Functione1481: ; e1481 + ld a, [$cf66] + ld hl, $548f + add l + ld l, a + ld a, $0 + adc h + ld h, a + ld a, [hl] + ret +; e148f + +INCBIN "baserom.gbc", $e148f, $e14d9 - $e148f + +Functione14d9: ; e14d9 + call Functione1481 + ld [DefaultFlypoint], a + xor a + call Functione1463 + ld a, [hli] + ld b, [hl] + ld c, a + ld a, [DefaultFlypoint] + cp $e0 + jr z, .asm_e14f2 + ld hl, $550f + jr .asm_e14f5 + +.asm_e14f2 + ld hl, $5534 + +.asm_e14f5 + ld de, Sprites +.asm_e14f8 + ld a, [hli] + cp $ff + ret z + add b + ld [de], a + inc de + ld a, [hli] + add c + ld [de], a + inc de + ld a, [DefaultFlypoint] + add [hl] + ld [de], a + inc hl + inc de + ld a, [hli] + ld [de], a + inc de + jr .asm_e14f8 +; e150f + +INCBIN "baserom.gbc", $e150f, $e1631 - $e150f + +Functione1631: ; e1631 + ld hl, VTiles2 + ld de, VTiles0 + ld b, $6 +.asm_e1639 + push bc + push hl + push hl + call Functione1654 + pop hl + ld bc, $0008 + add hl, bc + call Functione1654 + pop hl + ld bc, $0060 + add hl, bc + pop bc + dec b + jr nz, .asm_e1639 + call Functione16c7 + ret +; e1654 + +Functione1654: ; e1654 + ld c, $6 +.asm_e1656 + push bc + push hl + push hl + ld c, $4 +.asm_e165b + push bc + ld a, [hli] + and $f0 + swap a + call Functione16aa + ld c, a + ld a, [hli] + and $f0 + swap a + call Functione16aa + ld b, a + ld a, c + ld [de], a + inc de + ld a, b + ld [de], a + inc de + ld a, c + ld [de], a + inc de + ld a, b + ld [de], a + inc de + pop bc + dec c + jr nz, .asm_e165b + pop hl + ld c, $4 +.asm_e1681 + push bc + ld a, [hli] + and $f + call Functione16aa + ld c, a + ld a, [hli] + and $f + call Functione16aa + ld b, a + ld a, c + ld [de], a + inc de + ld a, b + ld [de], a + inc de + ld a, c + ld [de], a + inc de + ld a, b + ld [de], a + inc de + pop bc + dec c + jr nz, .asm_e1681 + pop hl + ld bc, $0010 + add hl, bc + pop bc + dec c + jr nz, .asm_e1656 + ret +; e16aa + +Functione16aa: ; e16aa + push hl + ld hl, $56b7 + add l + ld l, a + ld a, $0 + adc h + ld h, a + ld a, [hl] + pop hl + ret +; e16b7 + +INCBIN "baserom.gbc", $e16b7, $e16c7 - $e16b7 + +Functione16c7: ; e16c7 + ld hl, $5703 + ld a, $8 +.asm_e16cc + push af + push hl + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld h, [hl] + ld l, a + call Functione16e2 + pop hl + inc hl + inc hl + inc hl + inc hl + pop af + dec a + jr nz, .asm_e16cc + ret +; e16e2 + +Functione16e2: ; e16e2 + ld bc, $0404 +.asm_e16e5 + push bc +.asm_e16e6 + push de + push hl + ld b, $10 +.asm_e16ea + ld a, [de] + or [hl] + ld [hli], a + inc de + dec b + jr nz, .asm_e16ea + pop hl + ld de, $0030 + add hl, de + pop de + dec c + jr nz, .asm_e16e6 + ld bc, $0180 + add hl, bc + pop bc + dec b + jr nz, .asm_e16e5 + ret +; e1703 + +INCBIN "baserom.gbc", $e1703, $e17a3 - $e1703 + +Functione17a3: ; e17a3 + ld a, [ScriptVar] + and $3 + ld e, a + ld d, $0 + ld hl, $57bd + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld de, VTiles2 + call Decompress + call Functione1631 + ret +; e17bd + +INCBIN "baserom.gbc", $e17bd, $e37f9 - $e17bd SECTION "bank39",ROMX,BANK[$39] @@ -64361,7 +72907,7 @@ Functione4512: ; e4512 Options_Cancel: ; e4520 ld a, [hJoyPressed] - and BUTTON_A + and A_BUTTON jr nz, .asm_e4528 and a ret @@ -64916,7 +73462,7 @@ Music_RivalBattle: INCLUDE "audio/music/rivalbattle.asm" Music_RocketBattle: INCLUDE "audio/music/rocketbattle.asm" Music_ElmsLab: INCLUDE "audio/music/elmslab.asm" Music_DarkCave: INCLUDE "audio/music/darkcave.asm" -Music_JohtoGymBattle: INCLUDE "audio/music/johtogymleaderbattle.asm" +Music_JohtoGymBattle: INCLUDE "audio/music/johtogymbattle.asm" Music_ChampionBattle: INCLUDE "audio/music/championbattle.asm" Music_SSAqua: INCLUDE "audio/music/ssaqua.asm" Music_NewBarkTown: INCLUDE "audio/music/newbarktown.asm" @@ -64935,9 +73481,9 @@ SECTION "bank3B",ROMX,BANK[$3B] Music_Route1: INCLUDE "audio/music/route1.asm" Music_Route3: INCLUDE "audio/music/route3.asm" Music_Route12: INCLUDE "audio/music/route12.asm" -Music_KantoGymBattle: INCLUDE "audio/music/kantogymleaderbattle.asm" +Music_KantoGymBattle: INCLUDE "audio/music/kantogymbattle.asm" Music_KantoTrainerBattle: INCLUDE "audio/music/kantotrainerbattle.asm" -Music_KantoWildBattle: INCLUDE "audio/music/kantowildpokemonbattle.asm" +Music_KantoWildBattle: INCLUDE "audio/music/kantowildbattle.asm" Music_PokemonCenter: INCLUDE "audio/music/pokemoncenter.asm" Music_LookLass: INCLUDE "audio/music/looklass.asm" Music_LookOfficer: INCLUDE "audio/music/lookofficer.asm" @@ -64954,15 +73500,15 @@ Music_IndigoPlateau: INCLUDE "audio/music/indigoplateau.asm" Music_Route37: INCLUDE "audio/music/route37.asm" Music_RocketHideout: INCLUDE "audio/music/rockethideout.asm" Music_DragonsDen: INCLUDE "audio/music/dragonsden.asm" -Music_RuinsOfAlphRadio: INCLUDE "audio/music/ruinsofalphradiosignal.asm" +Music_RuinsOfAlphRadio: INCLUDE "audio/music/ruinsofalphradio.asm" Music_LookBeauty: INCLUDE "audio/music/lookbeauty.asm" Music_Route26: INCLUDE "audio/music/route26.asm" Music_EcruteakCity: INCLUDE "audio/music/ecruteakcity.asm" -Music_LakeOfRageRocketRadio:INCLUDE "audio/music/lakeofragerocketsradiosignal.asm" +Music_LakeOfRageRocketRadio:INCLUDE "audio/music/lakeofragerocketradio.asm" Music_MagnetTrain: INCLUDE "audio/music/magnettrain.asm" Music_LavenderTown: INCLUDE "audio/music/lavendertown.asm" Music_DancingHall: INCLUDE "audio/music/dancinghall.asm" -Music_ContestResults: INCLUDE "audio/music/bugcatchingcontestresults.asm" +Music_ContestResults: INCLUDE "audio/music/contestresults.asm" Music_Route30: INCLUDE "audio/music/route30.asm" SECTION "bank3C",ROMX,BANK[$3C] @@ -65005,8 +73551,8 @@ Music_NationalPark: INCLUDE "audio/music/nationalpark.asm" Music_AzaleaTown: INCLUDE "audio/music/azaleatown.asm" Music_CherrygroveCity: INCLUDE "audio/music/cherrygrovecity.asm" Music_UnionCave: INCLUDE "audio/music/unioncave.asm" -Music_JohtoWildBattle: INCLUDE "audio/music/johtowildpokemonbattle.asm" -Music_JohtoWildBattleNight: INCLUDE "audio/music/johtowildpokemonbattlenight.asm" +Music_JohtoWildBattle: INCLUDE "audio/music/johtowildbattle.asm" +Music_JohtoWildBattleNight: INCLUDE "audio/music/johtowildbattlenight.asm" Music_JohtoTrainerBattle: INCLUDE "audio/music/johtotrainerbattle.asm" Music_LookYoungster: INCLUDE "audio/music/lookyoungster.asm" Music_TinTower: INCLUDE "audio/music/tintower.asm" @@ -65099,22 +73645,27 @@ Functionfb48a: ; fb48a ld hl, $9630 ld bc, $3e16 call Functiondc9 - jr .asm_fb4cc + jr Functionfb4cc +; fb4b0 +Functionfb4b0: ; fb4b0 ld de, $5424 ld hl, $9610 ld b, $3e ld c, $1 call Functiondc9 ret +; fb4be +Functionfb4be: ; fb4be ld de, $4600 ld hl, $9600 ld bc, $3e19 call Functiondc9 - jr .asm_fb4cc + jr Functionfb4cc +; fb4cc -.asm_fb4cc +Functionfb4cc: ; fb4cc ld a, [TextBoxFrame] and 7 ld bc, $0030 @@ -65141,7 +73692,7 @@ Functionfb4f2: ; fb4f2 ld de, $4700 ld bc, $3e03 call Functiondc9 - call $74cc + call Functionfb4cc ld de, $4ac0 ld hl, $96c0 ld bc, $3e04 @@ -65162,7 +73713,7 @@ Functionfb4f2: ; fb4f2 ; fb53e Functionfb53e: ; fb53e - call $74be + call Functionfb4be ld de, $4ac0 ld hl, $96c0 ld bc, $3e04 @@ -65186,7 +73737,273 @@ Functionfb53e: ; fb53e ret ; fb57e -INCBIN "baserom.gbc", $fb57e, $fba18 - $fb57e +Functionfb57e: ; fb57e + ld a, [$d003] + ld hl, OTPartyMon1Species + call GetPartyLocation + push hl + ld a, [$d003] + inc a + ld c, a + ld b, $0 + ld hl, OTPartyCount + add hl, bc + ld a, [hl] + pop hl + cp $fd + jr z, .asm_fb59c + cp [hl] + jr nz, .asm_fb5db + +.asm_fb59c + ld b, h + ld c, l + ld hl, $001f + add hl, bc + ld a, [hl] + cp $65 + jr nc, .asm_fb5db + ld a, [InLinkBattle] + cp $1 + jr nz, .asm_fb5d9 + ld hl, OTPartySpecies + ld a, [$d003] + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + cp $51 + jr z, .asm_fb5d9 + cp $52 + jr z, .asm_fb5d9 + ld [CurSpecies], a + call GetBaseData + ld hl, $cbea + add hl, bc + add hl, bc + ld a, [BaseType1] + cp [hl] + jr nz, .asm_fb5db + inc hl + ld a, [BaseType2] + cp [hl] + jr nz, .asm_fb5db + +.asm_fb5d9 + and a + ret + +.asm_fb5db + scf + ret +; fb5dd + +Functionfb5dd: ; fb5dd + ld a, [DefaultFlypoint] + ld d, a + ld a, [PartyCount] + ld b, a + ld c, $0 +.asm_fb5e7 + ld a, c + cp d + jr z, .asm_fb5f8 + push bc + ld a, c + ld hl, PartyMon1CurHP + call GetPartyLocation + pop bc + ld a, [hli] + or [hl] + jr nz, .asm_fb60b + +.asm_fb5f8 + inc c + dec b + jr nz, .asm_fb5e7 + ld a, [$d003] + ld hl, OTPartyMon1CurHP + call GetPartyLocation + ld a, [hli] + or [hl] + jr nz, .asm_fb60b + scf + ret + +.asm_fb60b + and a + ret +; fb60d + +Functionfb60d: ; fb60d + ld hl, $c4a4 + ld de, PlayerName + call PlaceString + ld a, $14 + ld [bc], a + ld hl, $c544 + ld de, $d26b + call PlaceString + ld a, $14 + ld [bc], a + ld hl, $c4bb + ld de, PartySpecies + call Functionfb634 + ld hl, $c55b + ld de, OTPartySpecies + +Functionfb634: ; fb634 + ld c, $0 +.asm_fb636 + ld a, [de] + cp $ff + ret z + ld [$d265], a + push bc + push hl + push de + push hl + ld a, c + ld [hProduct], a + call GetPokemonName + pop hl + call PlaceString + pop de + inc de + pop hl + ld bc, $0014 + add hl, bc + pop bc + inc c + jr .asm_fb636 +; fb656 + +INCBIN "baserom.gbc", $fb656, $fb6ed - $fb656 + + +INCLUDE "event/name_rater.asm" + + +Functionfb841: ; fb841 + ld a, [ScriptVar] + call Function37f3 + jr c, .asm_fb876 + ld hl, CryPitch + ld a, [hli] + ld h, [hl] + ld l, a + ld bc, $fec0 + add hl, bc + ld a, l + ld [CryPitch], a + ld a, h + ld [CryEcho], a + ld hl, CryLength + ld a, [hli] + ld h, [hl] + ld l, a + ld bc, $0060 + add hl, bc + ld a, l + ld [CryLength], a + ld a, h + ld [$c2b3], a + callba PlayCry + call WaitSFX + +.asm_fb876 + ret +; fb877 + +Functionfb877: ; fb877 + ld a, [$ffde] + push af + xor a + ld [$ffde], a + call LowVolume + call WhiteBGMap + call ClearTileMap + call Function1ad2 + call ClearSprites + ld a, [$cf65] + push af + ld a, [hSCX] + add $5 + ld [hSCX], a + xor a + ld [$cf65], a + callba Function41a7f + call Functiona80 + ld a, $1 + ld [$cf65], a + callba Function4424d + call Functiona80 + pop af + ld [$cf65], a + call MaxVolume + call Function4b6 + ld a, [hSCX] + add $fb + ld [hSCX], a + call Functionfb8c8 + pop af + ld [$ffde], a + ret +; fb8c8 + +Functionfb8c8: ; fb8c8 + call ClearTileMap + call Functione5f + call Functione51 + callba Function40ab2 + call Function3200 + callba Function3da97 + ld a, [hli] + ld [TempMonDVs], a + ld a, [hl] + ld [$d124], a + ld b, $1c + call GetSGBLayout + call Function32f9 + ret +; fb8f1 + +Functionfb8f1: ; fb8f1 + push bc + push hl + ld a, [$d265] + ld b, a + ld c, $0 + ld hl, $791c +.asm_fb8fc + inc c + ld a, [hli] + cp b + jr nz, .asm_fb8fc + ld a, c + ld [$d265], a + pop hl + pop bc + ret +; fb908 + +Functionfb908: ; fb908 + push bc + push hl + ld a, [$d265] + dec a + ld hl, $791c + ld b, $0 + ld c, a + add hl, bc + ld a, [hl] + ld [$d265], a + pop hl + pop bc + ret +; fb91c + +INCBIN "baserom.gbc", $fb91c, $fba18 - $fb91c Functionfba18: ; fba18 @@ -65210,11 +74027,115 @@ Functionfba18: ; fba18 ret ; fba2e -INCBIN "baserom.gbc", $fba2e, $fbbfc - $fba2e +INCBIN "baserom.gbc", $fba2e, $fbb32 - $fba2e + +Functionfbb32: ; fbb32 + callba Function50000 + jr c, .asm_fbb9e + ld a, [CurPartySpecies] + cp $81 + jr nz, .asm_fbba4 + ld a, [CurPartyMon] + ld hl, PartyMon1Species + ld bc, $0030 + call AddNTimes + push hl + ld bc, $0015 + add hl, bc + ld d, h + ld e, l + pop hl + ld bc, $0006 + add hl, bc + ld b, h + ld c, l + call CalcMagikarpLength + call Functionfbbdb + callba Function105f33 + ld hl, $7ba9 + call PrintText + ld hl, Buffer1 + ld de, $dfe8 + ld c, $2 + call StringCmp + jr nc, .asm_fbb98 + ld hl, Buffer1 + ld de, $dfe8 + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + ld a, [CurPartyMon] + ld hl, PartyMon1OT + call SkipNames + call CopyBytes + ld a, $3 + ld [ScriptVar], a + ret + +.asm_fbb98 + ld a, $2 + ld [ScriptVar], a + ret + +.asm_fbb9e + ld a, $1 + ld [ScriptVar], a + ret + +.asm_fbba4 + xor a + ld [ScriptVar], a + ret +; fbba9 + +INCBIN "baserom.gbc", $fbba9, $fbbae - $fbba9 + +Functionfbbae: ; fbbae + ld hl, $96e0 + ld de, $7bbb + ld bc, $3e02 + call Request2bpp + ret +; fbbbb + +INCBIN "baserom.gbc", $fbbbb, $fbbdb - $fbbbb + +Functionfbbdb: ; fbbdb + call Functionfbbae + ld hl, StringBuffer1 + ld de, Buffer1 + ld bc, $4102 + call PrintNum + ld [hl], $6e + inc hl + ld de, Buffer2 + ld bc, $4102 + call PrintNum + ld [hl], $6f + inc hl + ld [hl], $50 + ret +; fbbfc INCLUDE "battle/magikarp_length.asm" -INCBIN "baserom.gbc", $fbccf, $fbced - $fbccf +INCBIN "baserom.gbc", $fbccf, $fbcd2 - $fbccf + +Functionfbcd2: ; fbcd2 + ld a, [$dfe8] + ld [Buffer1], a + ld a, [$dfe9] + ld [Buffer2], a + call Functionfbbdb + ld hl, $7ce8 + call PrintText + ret +; fbce8 + +INCBIN "baserom.gbc", $fbce8, $fbced - $fbce8 INCLUDE "battle/hidden_power.asm" @@ -65430,43 +74351,43 @@ DoBadgeTypeBoosts: ; fbe24 SECTION "bank3F",ROMX,BANK[$3F] -DoTileAnimation: ; fc000 -; Iterate over a given pointer array of animation functions -; (one per frame). +_AnimateTileset: ; fc000 +; Iterate over a given pointer array of +; animation functions (one per frame). + ; Typically in wra1, vra0 -; Beginning of animation pointer array - ld a, [TileSetAnim] + ld a, [TilesetAnim] ld e, a - ld a, [TileSetAnim + 1] + ld a, [TilesetAnim + 1] ld d, a -; Play this frame. - ld a, [hTileAnimFrame] ; frame count + ld a, [hTileAnimFrame] ld l, a inc a ld [hTileAnimFrame], a - -; Each pointer has: + ld h, 0 add hl, hl add hl, hl add hl, de -; 2-byte parameter (all functions take input de) +; 2-byte parameter +; All functions take input de. ld e, [hl] inc hl ld d, [hl] inc hl - + ; Function address ld a, [hli] ld h, [hl] ld l, a - + jp [hl] ; fc01b + Tileset00Anim: ; 0xfc01b Tileset02Anim: ; 0xfc01b Tileset03Anim: ; 0xfc01b @@ -65568,46 +74489,46 @@ Tileset24Anim: ; 0xfc1e7 Tileset30Anim: ; 0xfc1e7 ; param, function dw $9140, WriteTileToBuffer - dw $0000, $471e + dw $0000, Functionfc71e dw $cf41, ScrollTileRightLeft - dw $0000, $471e + dw $0000, Functionfc71e dw $9140, WriteTileFromBuffer - dw $0000, $471e + dw $0000, Functionfc71e dw $0000, TileAnimationPalette - dw $0000, $471e + dw $0000, Functionfc71e dw $9400, WriteTileToBuffer - dw $0000, $471e + dw $0000, Functionfc71e dw $cf41, ScrollTileDown - dw $0000, $471e + dw $0000, Functionfc71e dw $cf41, ScrollTileDown - dw $0000, $471e + dw $0000, Functionfc71e dw $cf41, ScrollTileDown - dw $0000, $471e + dw $0000, Functionfc71e dw $9400, WriteTileFromBuffer - dw $0000, $471e + dw $0000, Functionfc71e dw $0000, DoneTileAnimation ; 0xfc233 Tileset29Anim: ; 0xfc233 ; param, function dw $9350, WriteTileToBuffer - dw $0000, $471e + dw $0000, Functionfc71e dw $cf41, ScrollTileRightLeft - dw $0000, $471e + dw $0000, Functionfc71e dw $9350, WriteTileFromBuffer - dw $0000, $471e + dw $0000, Functionfc71e dw $0000, TileAnimationPalette - dw $0000, $471e + dw $0000, Functionfc71e dw $9310, WriteTileToBuffer - dw $0000, $471e + dw $0000, Functionfc71e dw $cf41, ScrollTileDown - dw $0000, $471e + dw $0000, Functionfc71e dw $cf41, ScrollTileDown - dw $0000, $471e + dw $0000, Functionfc71e dw $cf41, ScrollTileDown - dw $0000, $471e + dw $0000, Functionfc71e dw $9310, WriteTileFromBuffer - dw $0000, $471e + dw $0000, Functionfc71e dw $0000, DoneTileAnimation ; 0xfc27f @@ -66369,7 +75290,45 @@ TileAnimationPalette: ; fc6d7 ; fc71e -INCBIN "baserom.gbc", $fc71e, $fc750 - $fc71e +Functionfc71e: ; fc71e + ld a, [hCGB] + and a + ret z + + ld a, [rBGP] + cp $e4 + ret nz + + ld a, [$d847] + cp $ff + ret nz + + ld a, [rSVBK] + push af + + ld a, 5 + ld [rSVBK], a + ld a, $a0 + ld [rBGPI], a + ld a, [$ff9b] + and 2 + jr nz, .asm_fc743 + ld hl, $d020 + jr .asm_fc746 + +.asm_fc743 + ld hl, $d022 + +.asm_fc746 + ld a, [hli] + ld [rBGPD], a + ld a, [hli] + ld [rBGPD], a + + pop af + ld [rSVBK], a + ret +; fc750 SproutPillarTilePointers: ; fc750 @@ -66941,7 +75900,7 @@ Functionfd0c3: ; fd0c3 ld a, $1 ld [$d10c], a ld hl, PCItems - call Function2f66 + call ReceiveItem ret ; fd0eb @@ -66975,12 +75934,438 @@ Functionfd117: ; fd117 ret ; fd136 -INCBIN "baserom.gbc", $fd136, $fd1d2 - $fd136 +INCBIN "baserom.gbc", $fd136, $fd1d0 - $fd136 + +Functionfd1d0: ; fd1d0 + ret +; fd1d1 + +INCBIN "baserom.gbc", $fd1d1, $fd1d2 - $fd1d1 SECTION "bank40",ROMX,BANK[$40] -INCBIN "baserom.gbc", $100000, $10032e - $100000 +Function100000: ; 100000 + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + call Function100022 + call Function1000ba + call Function100675 + call Function100057 + call Function10016f + call Function100276 + push bc + call Function100301 + pop bc + pop af + ld [rSVBK], a + ret +; 100022 + +Function100022: ; 100022 + push de + push bc + call Function100063 + pop bc + pop de + ld a, d + ld [$cd21], a + ld a, e + ld [CreditsTimer], a + ld a, c + ld [$cd23], a + ld a, b + ld [$cd24], a + callba Function10127e + callba Function106462 + callba Function106464 + callba Function11615a + ld hl, VramState + set 1, [hl] + ret +; 100057 + +Function100057: ; 100057 + call Function1000a4 + call Function222a + ld hl, VramState + res 1, [hl] + ret +; 100063 + +Function100063: ; 100063 + xor a + ld hl, BGMapBuffer + ld bc, $0065 + call ByteFill + xor a + ld hl, $c300 + ld bc, Start + call ByteFill + ld a, [rIE] + ld [BGMapBuffer], a + xor a + ld [$ffde], a + ld [hLCDStatCustom], a + ret +; 100082 + +INCBIN "baserom.gbc", $100082, $1000a4 - $100082 + +Function1000a4: ; 1000a4 + di + xor a + ld [$ffc9], a + ld [$ffe9], a + xor a + ld [$ff9e], a + call NormalSpeed + xor a + ld [rIF], a + ld a, [BGMapBuffer] + ld [rIE], a + ei + ret +; 1000ba + +Function1000ba: ; 1000ba +.asm_1000ba + ld hl, $cd23 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$cd25] + ld e, a + ld d, $0 + add hl, de + add hl, de + ld a, [CreditsTimer] + call GetFarHalfword + ld a, [CreditsTimer] + rst FarCall + call Function1000e8 + call Function1000fa + call Function100144 + call Function100163 + ld a, [$cd2b] + and a + jr z, .asm_1000ba + call DelayFrame + ret +; 1000e8 + +Function1000e8: ; 1000e8 + ld hl, $cd29 + bit 7, [hl] + ret z + callba Function115dd3 + ld hl, $cd29 + set 6, [hl] + ret +; 1000fa + +Function1000fa: ; 1000fa + ld a, [$c30d] + and a + ret z + ld hl, $cd29 + bit 4, [hl] + ret z + ld a, [$cd2b] + and a + jr nz, .asm_100117 + callba Function11619d + ld hl, $cd29 + set 6, [hl] + ret + +.asm_100117 + di + xor a + ld [rIF], a + ld a, [rIE] + and $13 + ld [rIE], a + xor a + ld [$ffc9], a + ld [$ffe9], a + ei + ld a, [InLinkBattle] + push af + xor a + ld [InLinkBattle], a + ld a, $4 + ld [$c319], a + callba Function11619d + ld hl, $cd29 + set 6, [hl] + pop af + ld [InLinkBattle], a + ret +; 100144 + +Function100144: ; 100144 + ld hl, $cd29 + bit 5, [hl] + jr z, .asm_100155 + res 5, [hl] + res 2, [hl] + res 6, [hl] + call Function100320 + ret + +.asm_100155 + bit 2, [hl] + ret z + res 2, [hl] + res 6, [hl] + callba Function10402d + ret +; 100163 + +Function100163: ; 100163 + ld hl, $cd29 + bit 6, [hl] + ret z + res 6, [hl] + call DelayFrame + ret +; 10016f + +Function10016f: ; 10016f + ld a, [$cd2b] + cp $1 + ret z + cp $2 + ret z + cp $ff + jp z, .asm_1001f5 + cp $fe + jr z, .asm_1001c4 + cp $f5 + jr z, .asm_1001e7 + cp $f6 + jr z, .asm_1001b6 + cp $fa + jp z, .asm_1001bd + cp $f7 + jp z, .asm_1001ee + cp $f4 + jr z, .asm_1001d2 + cp $f3 + jr z, .asm_1001cb + cp $f1 + jr z, .asm_1001c4 + cp $f2 + jr z, .asm_1001c4 + cp $fc + jr z, .asm_1001e6 + cp $fb + jr z, .asm_1001af + cp $f8 + ret z + ret + +.asm_1001af + ld a, $d7 + ld de, $0000 + jr .asm_1001d7 + +.asm_1001b6 + ld a, $d5 + ld de, $0000 + jr .asm_1001d7 + +.asm_1001bd + ld a, $d6 + ld de, $0000 + jr .asm_1001d7 + +.asm_1001c4 + ld a, $d2 + ld de, $0002 + jr .asm_1001d7 + +.asm_1001cb + ld a, $d1 + ld de, $0001 + jr .asm_1001d7 + +.asm_1001d2 + ld a, $d0 + ld de, $0000 + +.asm_1001d7 + ld [$c300], a + ld a, d + ld [$c302], a + ld a, e + ld [$c301], a + call Function10020b + ret + +.asm_1001e6 + ret + +.asm_1001e7 + ld de, String10025e + call Function100232 + ret + +.asm_1001ee + ld de, String10024d + call Function100232 + ret + +.asm_1001f5 + ld a, [$cd2c] + ld [$c300], a + ld a, [$cd2d] + ld [$c302], a + ld a, [$cd2d] + ld [$c301], a + call Function10020b + ret +; 10020b + +Function10020b: ; 10020b + xor a + ld [$c303], a + callba Function8c084 + callba Function106464 + call HideSprites + call DelayFrame + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + callba Function17f555 + pop af + ld [rSVBK], a + ret +; 100232 + +Function100232: ; 100232 + push de + callba Function106464 + call Function3f20 + call Function1ad2 + hlcoord 1, 2 + pop de + call PlaceString + call Function100320 + call Functiona36 + ret +; 10024d + +String10024d: ; 10024d + db "つうしんを キャンセル しました@" +; 10025e + +String10025e: ; 10025e + db "おともだちと えらんだ へやが", $4e + db "ちがうようです@" +; 100276 + +Function100276: ; 100276 + ld a, [$cd2b] + cp $1 + jr z, .asm_10029f + cp $2 + jr z, .asm_100296 + cp $f5 + jr z, .asm_1002a5 + cp $f6 + jr z, .asm_1002a5 + cp $f7 + jr z, .asm_100293 + cp $f8 + jr z, .asm_1002b1 + jr .asm_1002c0 + +.asm_100293 + ld c, $2 + ret + +.asm_100296 + callba Script_reloadmappart + ld c, $4 + ret + +.asm_10029f + call Function1002dc + ld c, $0 + ret + +.asm_1002a5 + callba Script_reloadmappart + call Function1002ed + ld c, $3 + ret + +.asm_1002b1 + call Function1002c9 + call Function1002dc + ld de, String10024d + call Function100232 + ld c, $2 + ret + +.asm_1002c0 + call Function1002c9 + call Function1002dc + ld c, $1 + ret +; 1002c9 + +Function1002c9: ; 1002c9 + ld hl, $cd2a + bit 0, [hl] + ret z + callba Function3f6d0 + callba Function1500c + ret +; 1002dc + +Function1002dc: ; 1002dc + ld a, $f8 + ld [$ff9f], a + callba Function15363 + xor a + ld [$ff9f], a + call Functione51 + ret +; 1002ed + +Function1002ed: ; 1002ed + callba Function49409 + callba Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + call DelayFrame + ret +; 100301 + +Function100301: ; 100301 + ld hl, $cd2a + bit 1, [hl] + ret z + callba Function106464 + callba Function10202c + callba Function115dd3 + call Function100320 + call Functiona36 + ret +; 100320 + +Function100320: ; 100320 + callba Function104099 + ret +; 100327 + +INCBIN "baserom.gbc", $100327, $10032e - $100327 Function10032e: ; 10032e @@ -67078,7 +76463,7 @@ Function10039c: ; 10039c ld de, $d000 ld bc, $0054 ld a, $3 - call Function306b + call FarCopyWRAM ret ; 1003ab @@ -67090,7 +76475,7 @@ Function1003ba: ; 1003ba ld de, $d080 ld bc, $0054 ld a, $3 - call Function306b + call FarCopyWRAM ret ; 1003c9 @@ -67099,7 +76484,7 @@ Function1003c9: ; 1003c9 ld de, $ccb4 ld bc, $0054 ld a, $3 - call Function306b + call FarCopyWRAM ret ; 1003d8 @@ -67311,7 +76696,17 @@ Function1004f4: ; 1004f4 ret ; 100504 -INCBIN "baserom.gbc", $100504, $10062d - $100504 +Function100504: ; 100504 + push de + call Function3f20 + call Function1ad2 + pop de + ld hl, $c4cc + call PlaceString + ret +; 100513 + +INCBIN "baserom.gbc", $100513, $10062d - $100513 Function10062d: ; 10062d @@ -67366,8 +76761,71 @@ Function10064e: ; 10064e ret ; 100665 -INCBIN "baserom.gbc", $100665, $1006dc - $100665 +INCBIN "baserom.gbc", $100665, $100675 - $100665 + +Function100675: ; 100675 + ld hl, $cd2a + bit 2, [hl] + set 2, [hl] + ret nz + call Function1006d3 + ret +; 100681 + +Function100681: ; 100681 + push hl + ld hl, $cd2a + bit 2, [hl] + ld hl, $cd2a + set 2, [hl] + pop hl + jr nz, .asm_100694 + push hl + call Function1006d3 + pop hl +.asm_100694 + ld de, $cd32 + ld a, [de] + and a + jr nz, .asm_1006bb + inc de + push de + call .asm_1006b4 + ld de, String1006c2 + call PlaceString + ld h, b + ld l, c + pop de + inc de + call .asm_1006b4 + ld de, String1006c6 + call PlaceString + ret + +.asm_1006b4 + ld bc, $8102 + call PrintNum + ret + +.asm_1006bb + ld de, String1006ca + call PlaceString + ret +; 1006c2 + +String1006c2: ; 1006c2 + db "ふん @" +String1006c6: ; 1006c6 + db "びょう@" +String1006ca: ; 1006ca + db "1じかんいじょう@" +; 1006d3 + +Function1006d3: ; 1006d3 + call UpdateTime + ld de, $cd34 + ld hl, $cd38 Function1006dc: ; 1006dc ld a, [hld] @@ -67402,7 +76860,33 @@ Function1006dc: ; 1006dc ret ; 1006fd -INCBIN "baserom.gbc", $1006fd, $10079c - $1006fd +Function1006fd: ; 1006fd + ld a, $4 + ld hl, $a800 + call GetSRAMBank + xor a + ld [hli], a + ld [hli], a + ld [hli], a + call CloseSRAM + ret +; 10070d + +Function10070d: ; 10070d + ld a, $4 + ld hl, $a800 + call GetSRAMBank + xor a + ld [hli], a + ld a, $a + ld [hli], a + xor a + ld [hli], a + call CloseSRAM + ret +; 100720 + +INCBIN "baserom.gbc", $100720, $10079c - $100720 Function10079c: ; 10079c @@ -67511,7 +76995,44 @@ Function100826: ; 100826 ret ; 100846 -INCBIN "baserom.gbc", $100846, $1008e0 - $100846 +INCBIN "baserom.gbc", $100846, $1008a6 - $100846 + +Function1008a6: ; 1008a6 + ld a, $4 + ld hl, $a800 + call GetSRAMBank + ld a, [hli] + ld [StringBuffer2], a + ld a, [hli] + ld [$d087], a + ld a, [hli] + ld [$d088], a + call CloseSRAM + ld a, [$d088] + ld b, a + ld a, $0 + sub b + jr nc, .asm_1008c8 + add $3c + +.asm_1008c8 + ld b, a + ld a, [$d087] + ld c, a + ld a, $a + sbc c + ld c, a + jr c, .asm_1008da + ld a, [StringBuffer2] + and a + jr nz, .asm_1008da + ret + +.asm_1008da + call Function10070d + ld c, $0 + ret +; 1008e0 Function1008e0: ; 1008e0 @@ -67607,7 +77128,7 @@ Function100989: ; 100989 Function1009a5: ; 1009a5 ld bc, $0168 ld a, $3 - call Function306b + call FarCopyWRAM ret ; 1009ae @@ -68373,7 +77894,645 @@ Function100ed4: ; 100ed4 ret ; 100edf -INCBIN "baserom.gbc", $100edf, $10389d - $100edf +INCBIN "baserom.gbc", $100edf, $1011f1 - $100edf + +Function1011f1: ; 1011f1 + ld a, $4 + call GetSRAMBank + ld a, [$a60c] + ld [$dc41], a + call CloseSRAM + ld hl, $dc41 + res 4, [hl] + ld hl, GameTimerPause + bit 7, [hl] + jr z, .asm_101210 + ld hl, $dc41 + set 4, [hl] + +.asm_101210 + call Function10209c + xor a + ld [$dc5f], a + ld [$dc60], a + ld a, $4 + ld [InLinkBattle], a + ret +; 101220 + +Function101220: ; 101220 + xor a + ld [InLinkBattle], a + ret +; 101225 + +Function101225: ; 101225 + ld d, $1 + ld e, $40 + ld bc, $5297 + call Function100000 + jr Function10123d + +Function101231: ; 101231 + ld d, $2 + ld e, $40 + ld bc, $5297 + call Function100000 + jr Function10123d + +Function10123d: ; 10123d + xor a + ld [ScriptVar], a + ld a, c + ld hl, Table101247 + rst JumpTable + ret +; 101247 + +Table101247: ; 101247 + dw Function101251 + dw Function10127d + dw Function10127c + dw Function10126c + dw Function101265 +; 101251 + +Function101251: ; 101251 + call Function1ad2 + call ResetWindow + ld hl, $61f4 + call Function1021e0 + call Function1020ea + ret c + call Function102142 + ret +; 101265 + +Function101265: ; 101265 + ld hl, $61ef + call Function1021e0 + ret +; 10126c + +Function10126c: ; 10126c + call Function1ad2 + callba Script_reloadmappart + ld hl, $61f4 + call Function1021e0 + ret +; 10127c + +Function10127c: ; 10127c + ret +; 10127d + +Function10127d: ; 10127d + ret +; 10127e + +Function10127e: ; 10127e + ld a, [$dc5f] + and a + jr z, .asm_101290 + cp $1 + ld c, $27 + jr z, .asm_101292 + cp $2 + ld c, $37 + jr z, .asm_101292 + +.asm_101290 + ld c, $0 + +.asm_101292 + ld a, c + ld [$cd25], a + ret +; 101297 + +INCBIN "baserom.gbc", $101297, $1013aa - $101297 + +Function1013aa: ; 1013aa + call WhiteBGMap + call Function1d7d + call Function2bae + callba Function106464 + call Function1ad2 + call Function2b5c + ret +; 1013c0 + +INCBIN "baserom.gbc", $1013c0, $1013d6 - $1013c0 + +Function1013d6: ; 1013d6 + callba Function104000 + ret +; 1013dd + +INCBIN "baserom.gbc", $1013dd, $10142c - $1013dd + +Function10142c: ; 10142c + ld a, $1 + ld [$c305], a + callba Function115e18 + ret +; 101438 + +INCBIN "baserom.gbc", $101438, $101ee4 - $101438 + +Function101ee4: ; 101ee4 + ld d, $0 + ld hl, $5ef5 + add hl, de + add hl, de + ld a, [hli] + ld d, [hl] + ld e, a + callba Function100504 + ret +; 101ef5 + +INCBIN "baserom.gbc", $101ef5, $10202c - $101ef5 + +Function10202c: ; 10202c + callba Function115d99 + ld hl, $cd29 + set 7, [hl] + ld c, $2 + call Function10142c + ld e, $d + call Function101ee4 + ld hl, $c4f4 + call Function100681 + ret +; 102048 + +INCBIN "baserom.gbc", $102048, $10209c - $102048 + +Function10209c: ; 10209c + ld a, $ff + ld hl, $dc42 + ld bc, $0008 + call ByteFill + ret +; 1020a8 + +INCBIN "baserom.gbc", $1020a8, $1020ea - $1020a8 + +Function1020ea: ; 1020ea + ld hl, $dc41 + bit 4, [hl] + jr z, .asm_102110 + ld hl, $dc41 + bit 2, [hl] + jr nz, .asm_102110 + call Function10218d + ld hl, EnemyMoveAnimation + bit 4, [hl] + jr z, .asm_102110 + ld hl, EnemyMoveAnimation + bit 2, [hl] + jr nz, .asm_102110 + call Function102112 + jr z, .asm_102110 + and a + ret + +.asm_102110 + scf + ret +; 102112 + +Function102112: ; 102112 + ld a, $4 + call GetSRAMBank + ld hl, $a041 + ld c, $28 +.asm_10211c + push hl + ld de, PlayerMoveAnimation + ld b, $1f +.asm_102122 + ld a, [de] + cp [hl] + jr nz, .asm_10212f + inc de + inc hl + dec b + jr nz, .asm_102122 + pop hl + xor a + jr .asm_10213c + +.asm_10212f + pop hl + ld de, $0025 + add hl, de + dec c + jr nz, .asm_10211c + ld a, $1 + and a + jr .asm_10213c + +.asm_10213c + push af + call CloseSRAM + pop af + ret +; 102142 + +Function102142: ; 102142 + call Function10218d + call Function102180 + ld hl, $61d1 + call Function1d4f + ld de, $0090 + call StartSFX + call Functiona36 + call Function1c07 + call Function10219f + ld hl, $61d6 + call Function1d4f + call Function1dcf + call Function1c07 + jr c, .asm_10217c + call Function1021b8 + jr c, .asm_10217c + call Function10218d + call Function102180 + ld hl, $61db + call PrintText + +.asm_10217c + call Function1013d6 + ret +; 102180 + +Function102180: ; 102180 + ld hl, EnemyMoveEffect + ld de, StringBuffer2 + ld bc, $000b + call CopyBytes + ret +; 10218d + +Function10218d: ; 10218d + ld hl, $dc00 + ld de, EnemyMoveAnimation + ld bc, $0026 + ld a, $5 + call FarCopyWRAM + ld de, EnemyMoveEffect + ret +; 10219f + +Function10219f: ; 10219f + call FadeToMenu + call Function10218d + ld de, EnemyMoveEffect + callba Function8ac4e + call Functiona36 + call PlayClickSFX + call Function1013aa + ret +; 1021b8 + +Function1021b8: ; 1021b8 + call FadeToMenu + call Function10218d + ld de, PlayerMoveAnimation + callba Function8ac70 + ld a, c + ld [StringBuffer1], a + push af + call Function1013aa + pop af + ret +; 1021d1 + +INCBIN "baserom.gbc", $1021d1, $1021e0 - $1021d1 + +Function1021e0: ; 1021e0 + call Function1d4f + call Functiona36 + call Function1c07 + ret +; 1021ea + +INCBIN "baserom.gbc", $1021ea, $103612 - $1021ea + +Function103612: ; 103612 + ld hl, $7640 + call LoadMenuDataHeader + ld a, [$dc40] + and $f + jr z, .asm_103622 + ld [$cf88], a + +.asm_103622 + call Function1d81 + call Function1c17 + jr c, .asm_10363b + ld a, [$cfa9] + ld [ScriptVar], a + ld c, a + ld a, [$dc40] + and $f0 + or c + ld [$dc40], a + ret + +.asm_10363b + xor a + ld [ScriptVar], a + ret +; 103640 + +INCBIN "baserom.gbc", $103640, $10366e - $103640 + +Function10366e: ; 10366e + callba Function10632f + bit 7, c + jr z, .asm_10369b + ld hl, $775d + call PrintText + call Function1dcf + jr c, .asm_103696 + callba Function8b1e1 + jr nc, .asm_103690 + call Functiona36 + jr .asm_103696 + +.asm_103690 + ld a, $1 + ld [ScriptVar], a + ret + +.asm_103696 + xor a + ld [ScriptVar], a + ret + +.asm_10369b + ld hl, $dc40 + bit 7, [hl] + set 7, [hl] + jr nz, .asm_1036b5 + ld hl, $7762 + call PrintText + call Function1dcf + jr c, .asm_1036b5 + call Function1036f9 + call Functiona36 + +.asm_1036b5 + call Function103700 + jr c, .asm_1036f4 + ld hl, $7747 + call LoadMenuDataHeader + call Function1d81 + call Function1c07 + jr c, .asm_1036f4 + ld a, [$cfa9] + cp $1 + jr z, .asm_1036d9 + cp $2 + jr z, .asm_1036f4 + cp $3 + jr z, .asm_1036ec + jr .asm_1036b5 + +.asm_1036d9 + callba Function8b1e1 + jr nc, .asm_1036e6 + call Functiona36 + jr .asm_1036f4 + +.asm_1036e6 + ld a, $1 + ld [ScriptVar], a + ret + +.asm_1036ec + call Function1036f9 + call Functiona36 + jr .asm_1036b5 + +.asm_1036f4 + xor a + ld [ScriptVar], a + ret +; 1036f9 + +Function1036f9: ; 1036f9 + ld hl, $7767 + call PrintText + ret +; 103700 + +Function103700: ; 103700 + ld c, $a + ld hl, $dc20 + bit 4, [hl] + jr z, .asm_10370f + callba Function1008a6 + +.asm_10370f + ld a, c + ld [StringBuffer2], a + ld a, [StringBuffer2] + cp $5 + jr nc, .asm_103724 + cp $2 + jr nc, .asm_10372c + cp $1 + jr nc, .asm_103734 + jr .asm_10373c + +.asm_103724 + ld hl, $776c + call PrintText + and a + ret + +.asm_10372c + ld hl, $7771 + call PrintText + and a + ret + +.asm_103734 + ld hl, $7776 + call PrintText + and a + ret + +.asm_10373c + ld hl, $777b + call PrintText + call Functiona36 + scf + ret +; 103747 + +INCBIN "baserom.gbc", $103747, $103780 - $103747 + +Function103780: ; 103780 + ld a, [$d265] + push af + call Function10378c + pop af + ld [$d265], a + ret +; 10378c + +Function10378c: ; 10378c + ld c, $0 + ld hl, $dc20 + bit 4, [hl] + jr nz, .asm_10379c + ld c, $1 + ld hl, $dc20 + set 4, [hl] + +.asm_10379c + push bc + callba Function14ab2 + pop bc + jr c, .asm_1037b5 + ld a, $1 + ld [ScriptVar], a + ld a, c + and a + ret z + callba Function1006fd + ret + +.asm_1037b5 + xor a + ld [ScriptVar], a + ld a, c + and a + ret z + ld hl, $dc20 + res 4, [hl] + ret +; 1037c2 + +Function1037c2: ; 1037c2 + call Function103823 + jr c, .asm_1037de + ld a, [$dc5f] + and a + jr z, .asm_1037de + ld hl, $77e6 + call PrintText + call Function1dcf + jr c, .asm_1037de + ld a, $1 + ld [ScriptVar], a + ret + +.asm_1037de + xor a + ld [$dc5f], a + ld [ScriptVar], a + ret +; 1037e6 + +INCBIN "baserom.gbc", $1037e6, $1037eb - $1037e6 + +Function1037eb: ; 1037eb + call Function103823 + jr nc, .asm_103807 + ld hl, $7819 + call PrintText + call Functiona36 + ld hl, $781e + call PrintText + call Functiona36 + xor a + ld [ScriptVar], a + ret + +.asm_103807 + ld a, [$dc60] + and a + jr nz, .asm_103813 + ld a, $1 + ld [ScriptVar], a + ret + +.asm_103813 + ld a, $2 + ld [ScriptVar], a + ret +; 103819 + +INCBIN "baserom.gbc", $103819, $103823 - $103819 + +Function103823: ; 103823 + callba Function10632f + bit 7, c + jr nz, .asm_103838 + callba Function1008a6 + ld a, c + cp $1 + jr c, .asm_10383a + +.asm_103838 + xor a + ret + +.asm_10383a + scf + ret +; 10383c + +Function10383c: ; 10383c + ld a, $1 + ld [$dc60], a + xor a + ld hl, $dc5c + ld [hli], a + ld [hli], a + ld [hl], a + ld hl, $7876 + call PrintText + call Functiona36 + callba Script_reloadmappart + callba Function4a94e + jr c, .asm_103870 + ld hl, DefaultFlypoint + ld de, $dc5c + ld bc, $0003 + call CopyBytes + xor a + ld [ScriptVar], a + ret + +.asm_103870 + ld a, $1 + ld [ScriptVar], a + ret +; 103876 + +INCBIN "baserom.gbc", $103876, $10387b - $103876 + +Function10387b: ; 10387b + callba Function10632f + bit 7, c + ret nz + callba Function1008a6 + ld a, c + ld [StringBuffer2], a + ld hl, $7898 + call PrintText + call Functiona36 + ret +; 103898 + +INCBIN "baserom.gbc", $103898, $10389d - $103898 SECTION "bank41",ROMX,BANK[$41] @@ -68391,7 +78550,14 @@ Function10402d: ; 10402d jp Function104177 ; 104033 -INCBIN "baserom.gbc", $104033, $104061 - $104033 +INCBIN "baserom.gbc", $104033, $104047 - $104033 + +Function104047: ; 104047 + ld hl, $404d + jp Function104177 +; 10404d + +INCBIN "baserom.gbc", $10404d, $104061 - $10404d Function104061: ; 104061 @@ -68399,7 +78565,15 @@ Function104061: ; 104061 jp Function104177 ; 104067 -INCBIN "baserom.gbc", $104067, $104110 - $104067 +INCBIN "baserom.gbc", $104067, $104099 - $104067 + +Function104099: ; 104099 + ld hl, Function104061 + ld hl, $40a2 + jp Function104177 +; 1040a2 + +INCBIN "baserom.gbc", $1040a2, $104110 - $1040a2 Function104110: ; 104110 @@ -68750,7 +78924,14 @@ EnteredConnection: ; 1046c4 ; 1046c6 -INCBIN "baserom.gbc", $1046c6, $10486d - $1046c6 +INCBIN "baserom.gbc", $1046c6, $1047eb - $1046c6 + +Function1047eb: ; 1047eb + ld b, $9 + jp GetSGBLayout +; 1047f0 + +INCBIN "baserom.gbc", $1047f0, $10486d - $1047f0 Function10486d: ; 10486d @@ -68800,7 +78981,32 @@ Function10486d: ; 10486d ret ; 1048ba -INCBIN "baserom.gbc", $1048ba, $1050d9 - $1048ba +INCBIN "baserom.gbc", $1048ba, $1050b9 - $1048ba + +Function1050b9: ; 1050b9 + call Function105106 + ld hl, $abe3 + ld a, [hl] + inc a + jr nz, .asm_1050c5 + ld [hld], a + ld [hl], a + +.asm_1050c5 + jp CloseSRAM +; 1050c8 + +Function1050c8: ; 1050c8 + call Function105106 + ld a, [$abe5] + cp $ff + jr z, .asm_1050d6 + xor a + ld [$abe5], a + +.asm_1050d6 + jp CloseSRAM +; 1050d9 Function1050d9: ; 1050d9 @@ -69197,7 +79403,19 @@ UpdateUsedMoves: ; 105ed0 HallOfFame2: ; 0x105ef6 ret -INCBIN "baserom.gbc", $105ef7, $106008 - $105ef7 +INCBIN "baserom.gbc", $105ef7, $105f33 - $105ef7 + +Function105f33: ; 105f33 + ret +; 105f34 + +INCBIN "baserom.gbc", $105f34, $105f79 - $105f34 + +Function105f79: ; 105f79 + ret +; 105f7a + +INCBIN "baserom.gbc", $105f7a, $106008 - $105f7a Function106008: ; 106008 @@ -69244,7 +79462,19 @@ Function106094: ; 106094 ret ; 106095 -INCBIN "baserom.gbc", $106095, $1060b5 - $106095 +INCBIN "baserom.gbc", $106095, $1060a2 - $106095 + +Function1060a2: ; 1060a2 + ret +; 1060a3 + +INCBIN "baserom.gbc", $1060a3, $1060af - $1060a3 + +Function1060af: ; 1060af + ret +; 1060b0 + +INCBIN "baserom.gbc", $1060b0, $1060b5 - $1060b0 Function1060b5: ; 1060b5 ret @@ -69263,7 +79493,13 @@ Function1060c1: ; 1060c1 ret ; 1060c2 -INCBIN "baserom.gbc", $1060c2, $1060d3 - $1060c2 +INCBIN "baserom.gbc", $1060c2, $1060cd - $1060c2 + +Function1060cd: ; 1060cd + ret +; 1060ce + +INCBIN "baserom.gbc", $1060ce, $1060d3 - $1060ce Function1060d3: ; 1060d3 @@ -69509,7 +79745,50 @@ Function1062ff: ; 1062ff ret ; 10630f -INCBIN "baserom.gbc", $10630f, $106594 - $10630f +Function10630f: ; 10630f + xor a + ld [ScriptVar], a + ret +; 106314 + +INCBIN "baserom.gbc", $106314, $10632f - $106314 + +Function10632f: ; 10632f + or a + ret +; 106331 + +INCBIN "baserom.gbc", $106331, $106462 - $106331 + +Function106462: ; 106462 + ret +; 106463 + +INCBIN "baserom.gbc", $106463, $106464 - $106463 + +Function106464: ; 106464 + ld de, $5214 + ld hl, $9600 + ld bc, $3e01 + call Get2bpp + ld de, $5424 + ld hl, $9610 + ld bc, $3e01 + call Get2bpp + ld de, $6514 + ld hl, $9620 + ld c, $9 + ld b, $41 + call Get2bpp + ld de, $40b0 + ld hl, $96b0 + ld b, $f + call Get2bpp + callba Functionfb4cc + ret +; 10649b + +INCBIN "baserom.gbc", $10649b, $106594 - $10649b Function106594: ; 106594 @@ -69529,7 +79808,238 @@ INCBIN "baserom.gbc", $1065ad, $106dbc - $1065ad SECTION "bank42",ROMX,BANK[$42] -INCBIN "baserom.gbc", $108000, $109407 - $108000 +INCBIN "baserom.gbc", $108000, $108016 - $108000 + +Function108016: ; 108016 + ld a, $0 + ld [$cf65], a + ld de, $4021 + jp Function108089 +; 108021 + +INCBIN "baserom.gbc", $108021, $108089 - $108021 + +Function108089: ; 108089 + ld hl, BattleEnded + ld [hl], e + inc hl + ld [hl], d + ld a, [$ffde] + push af + xor a + ld [$ffde], a + ld hl, VramState + ld a, [hl] + push af + res 0, [hl] + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + call Function108157 +.asm_1080a6 + call Function10824b + jr nc, .asm_1080a6 + pop af + ld [Options], a + pop af + ld [VramState], a + pop af + ld [$ffde], a + ret +; 1080b7 + +INCBIN "baserom.gbc", $1080b7, $108157 - $1080b7 + +Function108157: ; 108157 + xor a + ld [$cf63], a + call WhiteBGMap + call ClearSprites + call ClearTileMap + call DisableLCD + call Function1081ad + call Function1081ca + call Functione51 + call Functione58 + call EnableLCD + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + callba Function8cf53 + xor a + ld hl, $c300 + ld [hli], a + ld [hl], $0 + call DelayFrame + ld a, [PlayerSDefLevel] + ld de, PlayerAccLevel + call Function108239 + ld a, [PlayerLightScreenCount] + ld de, PlayerReflectCount + call Function108239 + xor a + call Function108b98 + call Function108af4 + ret +; 1081ad + +Function1081ad: ; 1081ad + ld a, $1 + ld [rVBK], a + ld hl, VTiles0 + ld bc, $1800 + xor a + call ByteFill + ld a, $0 + ld [rVBK], a + ld hl, VTiles0 + ld bc, $1800 + xor a + call ByteFill + ret +; 1081ca + +Function1081ca: ; 1081ca + ld a, $1 + ld [rVBK], a + ld hl, VBGMap0 + ld bc, $0800 + ld a, $0 + call ByteFill + ld a, $0 + ld [rVBK], a + ld hl, VBGMap0 + ld bc, $0800 + ld a, $7f + call ByteFill + ret +; 1081e9 + +INCBIN "baserom.gbc", $1081e9, $108239 - $1081e9 + +Function108239: ; 108239 + push de + ld [$d265], a + call GetPokemonName + ld hl, StringBuffer1 + pop de + ld bc, $000b + call CopyBytes + ret +; 10824b + +Function10824b: ; 10824b + ld a, [$cf63] + bit 7, a + jr nz, .asm_10825a + call Function10827b + call DelayFrame + and a + ret + +.asm_10825a + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + call Functione51 + call Functione58 + callba Function106462 + callba Function106464 + scf + ret +; 10827b + +Function10827b: ; 10827b + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $428a + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 10828a + +INCBIN "baserom.gbc", $10828a, $108af4 - $10828a + +Function108af4: ; 108af4 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, [$cf65] + and $1 + jr z, .asm_108b1c + ld hl, $5187 + ld de, Unkn2Pals + ld bc, $0040 + call CopyBytes + ld hl, $5187 + ld de, OBPals + ld bc, $0040 + call CopyBytes + jr .asm_108b34 + +.asm_108b1c + ld hl, $5147 + ld de, Unkn2Pals + ld bc, $0040 + call CopyBytes + ld hl, $5147 + ld de, OBPals + ld bc, $0040 + call CopyBytes + +.asm_108b34 + pop af + ld [rSVBK], a + ld a, $e4 + call Functioncf8 + ld a, $e4 + call DmgToCgbBGPals + call DelayFrame + ret +; 108b45 + +INCBIN "baserom.gbc", $108b45, $108b98 - $108b45 + +Function108b98: ; 108b98 + ld d, a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, [$cf65] + and $1 + xor d + jr z, .asm_108bad + ld hl, $4ba0 + jr .asm_108bb0 + +.asm_108bad + ld hl, $4b98 + +.asm_108bb0 + ld de, $d038 + ld bc, $0040 + call CopyBytes + pop af + ld [rSVBK], a + ret +; 108bbd + +INCBIN "baserom.gbc", $108bbd, $109407 - $108bbd IntroLogoGFX: ; 109407 INCBIN "gfx/intro/logo.lz" @@ -69588,7 +80098,7 @@ Function109847: ; 109847 call $5a95 xor a ld [$cf66], a - ld hl, $d100 + ld hl, LYOverrides ld bc, Start xor a call ByteFill @@ -70199,7 +80709,193 @@ Function114243: ; 114243 jp [hl] ; 11425c -INCBIN "baserom.gbc", $11425c, $117a7f - $11425c +INCBIN "baserom.gbc", $11425c, $115d99 - $11425c + +Function115d99: ; 115d99 + ld de, $601a + ld hl, $8600 + ld bc, $4514 + call Get2bpp + xor a + ld [$c305], a + ld [$c306], a + ld [$c309], a + ld [$c30a], a + ld [$c30b], a + ld [$c30c], a + ld a, $10 + ld [$c307], a + ld a, $18 + ld [$c308], a + ret +; 115dc3 + +INCBIN "baserom.gbc", $115dc3, $115dd3 - $115dc3 + +Function115dd3: ; 115dd3 + ld a, [$c305] + and a + ret z + ld a, $a0 + ld hl, $c47c + ld bc, $0020 + call ByteFill + call Function115e22 + ld a, [$c309] + sla a + ld c, a + ld b, $0 + ld hl, $5e86 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + push de + pop hl + ld de, $c47c + ld a, [$c307] + ld c, a + ld a, [$c308] + ld b, a + ld a, [hli] +.asm_115e04 + push af + ld a, [hli] + add b + ld [de], a + inc de + ld a, [hli] + add c + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + pop af + dec a + jr nz, .asm_115e04 + ret +; 115e18 + +Function115e18: ; 115e18 + ld a, c + ld [$c30a], a + xor a + ld [$c30b], a + jr Function115e2b +; 115e22 + +Function115e22: ; 115e22 + ld hl, $c30c + dec [hl] + ret nz + ld hl, $c30b + inc [hl] + +Function115e2b: ; 115e2b + ld a, [$c30a] + sla a + ld c, a + ld b, $0 + ld hl, $5e59 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push de + pop hl + ld a, [$c30b] + sla a + ld c, a + ld b, $0 + add hl, bc + ld a, [hli] + cp $ff + jr nz, .asm_115e51 + xor a + ld [$c30b], a + jr Function115e2b + +.asm_115e51 + ld [$c309], a + ld a, [hl] + ld [$c30c], a + ret +; 115e59 + +INCBIN "baserom.gbc", $115e59, $11615a - $115e59 + +Function11615a: ; 11615a + xor a + ld [$c30d], a + ld [$c319], a + ld [$c310], a + ld [$c311], a + ld [$c312], a + ld [$c313], a + ld [$c314], a + ld [$c315], a + ld [$c318], a + ld [$c3f6], a + ld [$c3f8], a + ld [$c3f2], a + ld [$c3f4], a + ld a, $24 + ld [$c3f5], a + ld a, $7 + ld [$c3f7], a + ld a, $b0 + ld [$c30e], a + ld [$c3f1], a + ld a, $48 + ld [$c30f], a + ld [$c3f3], a + ret +; 11619d + +Function11619d: ; 11619d + ld a, [$c30d] + and a + ret z + ld a, [$c319] + cp $2 + jr c, .asm_1161b4 + ld a, $a0 + ld hl, Sprites + ld bc, $0064 + call ByteFill + +.asm_1161b4 + call Function1161b8 + ret +; 1161b8 + +Function1161b8: ; 1161b8 + ld a, [$c319] + ld e, a + ld d, $0 + ld hl, $61c7 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 1161c7 + +INCBIN "baserom.gbc", $1161c7, $117656 - $1161c7 + +Function117656: ; 117656 + callba GiveOddEgg + ret +; 11765d + +INCBIN "baserom.gbc", $11765d, $117a7f - $11765d ; everything from here to the end of the bank is related to the @@ -70551,7 +81247,384 @@ Function117cdd: ; 0x117cdd SECTION "bank46",ROMX,BANK[$46] -INCBIN "baserom.gbc", $118000, $118ba5 - $118000 +Function118000: ; 118000 + ld a, $1 + ld [$cd38], a + jr .asm_11800b + + xor a + ld [$cd38], a + +.asm_11800b + call Function1183cb + ld a, $18 + ld [$cd33], a + ld a, $19 + ld [$cd34], a + ld a, $4 + ld [$c3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_118024 + call Functiona57 + call Function118473 + ld a, [$cf66] + cp $1b + jr c, .asm_118037 + ld a, [$cd34] + ld [$cf66], a + +.asm_118037 + call Function1184a5 + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [$cf66] + ld hl, $cd33 + cp [hl] + jr nz, .asm_118024 + pop af + ld [rSVBK], a + call Function118452 + call Function222a + ret +; 11805f + +Function11805f: ; 11805f + ld a, $1 + ld [$cd38], a + call Function1183cb + ld a, $18 + ld [$cd33], a + ld a, $19 + ld [$cd34], a + ld a, $4 + ld [$c3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_11807d + call Functiona57 + call Function118473 + ld a, [$cf66] + cp $1b + jr c, .asm_118090 + ld a, [$cd34] + ld [$cf66], a + +.asm_118090 + call Function11857c + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [$cf66] + ld hl, $cd33 + cp [hl] + jr nz, .asm_11807d + pop af + ld [rSVBK], a + call Function118452 + call Function222a + ret +; 1180b8 + +INCBIN "baserom.gbc", $1180b8, $11811a - $1180b8 + +Function11811a: ; 11811a + ld a, 1 + ld [$cd38], a + jr Function118125 + +Function118121: ; 118121 + xor a + ld [$cd38], a + +Function118125: ; 118125 + call Function1183cb + ld a, $3 + ld [$cd33], a + ld a, $d + ld [$cd34], a + ld a, $4 + ld [$c3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_11813e + call Functiona57 + call Function118473 + ld a, [$cf66] + cp $f + jr c, .asm_118151 + ld a, [$cd34] + ld [$cf66], a + +.asm_118151 + call Function11854d + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [$cf66] + ld hl, $cd33 + cp [hl] + jr nz, .asm_11813e + xor a + ld [Unkn1Pals], a + pop af + ld [rSVBK], a + call Function118452 + call Function118180 + call Function222a + ret +; 118180 + +Function118180: ; 118180 + ld a, [ScriptVar] + and a + ret nz + ld a, [$cd38] + and a + ret z + ld a, $5 + call GetSRAMBank + ld hl, $cd69 + ld de, $a89c + ld bc, $0016 + call CopyBytes + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld de, $d202 + ld c, $96 + callba Function17d0b3 + jr c, .asm_1181d0 + ld de, $d202 + ld bc, $0196 + callba Function17d1e1 + jr c, .asm_1181d0 + ld hl, $d202 + ld de, $a8b2 + ld bc, $0096 + call CopyBytes +.asm_1181c9 + pop af + ld [rSVBK], a + call CloseSRAM + ret + +.asm_1181d0 + ld a, $d3 + ld [$c300], a + ld [ScriptVar], a + jr .asm_1181c9 +; 1181da + +Function1181da: ; 1181da + call Function1183cb + ld a, $2 + ld [$cd38], a + ld a, $21 + ld [$cd33], a + ld a, $22 + ld [$cd34], a + ld a, $4 + ld [$c3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_1181f8 + call Functiona57 + call Function118473 + ld a, [$cf66] + cp $28 + jr c, .asm_11820b + ld a, [$cd34] + ld [$cf66], a + +.asm_11820b + call Function1185c3 + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [$cf66] + ld hl, $cd33 + cp [hl] + jr nz, .asm_1181f8 + pop af + ld [rSVBK], a + call Function118452 + call Function222a + ret +; 118233 + +INCBIN "baserom.gbc", $118233, $1183cb - $118233 + +Function1183cb: ; 1183cb + di + ld a, [rIE] + ld [$cd32], a + call DoubleSpeed + xor a + ld [rIF], a + ld [$c300], a + ld [$c301], a + ld [$c302], a + ld [$cd80], a + ld [$cd65], a + ld [$cd66], a + ld [$cd67], a + ld [$cd68], a + ld [$c31a], a + ld [$cd89], a + ld [$cd8a], a + ld [$cd8b], a + ld [$c3ec], a + ld [$c3ed], a + ld [$c3ee], a + ld [$c3ef], a + ld hl, VramState + ld a, [hl] + ld [$cd7f], a + set 1, [hl] + ld a, $f + ld [rIE], a + ld a, $1 + ld [$ffc9], a + ld [$ffe9], a + ei + callba Function106462 + callba Function106464 + callba Function115d99 + callba Function11615a + ld a, $5 + call GetSRAMBank + xor a + ld [$bfff], a + call CloseSRAM + ret +; 118440 + +INCBIN "baserom.gbc", $118440, $118452 - $118440 + +Function118452: ; 118452 + di + xor a + ld [$ffc9], a + ld [$ffe9], a + ld [$ff9e], a + call NormalSpeed + xor a + ld [rIF], a + ld a, [$cd32] + ld [rIE], a + ei + ld a, [$cd7f] + ld [VramState], a + ld a, [$c300] + ld [ScriptVar], a + ret +; 118473 + +Function118473: ; 118473 + ld a, [$cd65] + and a + ret z + ld a, [$cd66] + inc a + ld [$cd66], a + cp $3c + ret nz + xor a + ld [$cd66], a + ld a, [$cd67] + inc a + ld [$cd67], a + cp $3c + ret nz + ld a, [$cd68] + inc a + ld [$cd68], a + cp $63 + jr z, .asm_1184a0 + xor a + ld [$cd67], a + ret + +.asm_1184a0 + xor a + ld [$cd65], a + ret +; 1184a5 + +Function1184a5: ; 1184a5 + ld a, [$cf66] + ld e, a + ld d, $0 + ld hl, $44b4 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 1184b4 + +INCBIN "baserom.gbc", $1184b4, $11854d - $1184b4 + +Function11854d: ; 11854d + ld a, [$cf66] + ld e, a + ld d, $0 + ld hl, $455c + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11855c + +INCBIN "baserom.gbc", $11855c, $11857c - $11855c + +Function11857c: ; 11857c + ld a, [$cf66] + ld e, a + ld d, $0 + ld hl, $458b + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11858b + +INCBIN "baserom.gbc", $11858b, $1185c3 - $11858b + +Function1185c3: ; 1185c3 + ld a, [$cf66] + ld e, a + ld d, $0 + ld hl, $45d2 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 1185d2 + +INCBIN "baserom.gbc", $1185d2, $118ba5 - $1185d2 ExchangeDownloadURL: ; 0x118ba5 ascii "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/exchange/index.txt" @@ -70578,7 +81651,22 @@ IndexDownloadURL: ; 0x118ce4 db $0 -INCBIN "baserom.gbc", $118d35, $11aa13 - $118d35 +INCBIN "baserom.gbc", $118d35, $11a8fa - $118d35 + +Function11a8fa: ; 11a8fa + ld a, [$c31a] + ld e, a + ld d, $0 + ld hl, $6909 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11a909 + +INCBIN "baserom.gbc", $11a909, $11aa13 - $11a909 UnknownText_0x11aa13: ; 0x11aa13 db $0, "SAVE FILE will be", $4f @@ -70670,15 +81758,628 @@ UnknownText_0x11ac0b: ; 0x11ac0b ; 0x11ac1f UnknownText_0x11ac1f: ; 0x11ac1f - text_from_ram $d099 + text_from_ram StringBuffer3 db $0, "'s ROOM", $4f db "@" - text_from_ram $d0ac + text_from_ram StringBuffer4 db $0, "?", $55 db "Please wait…", $57 ; 0x11ac3e -INCBIN "baserom.gbc", $11ac3e, $11b98f - $11ac3e +Function11ac3e: ; 11ac3e + call SpeechTextBox + call FadeToMenu + callab Function8e814 + call Function11ac51 + call Function2b3c + ret +; 11ac51 + +Function11ac51: ; 11ac51 + xor a + ld [hBGMapMode], a + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + ld a, [VramState] + push af + xor a + ld [VramState], a + ld a, [$ffaa] + push af + ld a, $1 + ld [$ffaa], a + xor a + ld [$ffde], a + ld [$cd49], a + ld [$cd4a], a + ld [$cd4c], a + ld [$cd4d], a + ld [$cd4e], a + call Function11ad1b + call DelayFrame +.asm_11ac82 + call Functiona57 + ld a, [$cf63] + bit 7, a + jr nz, .asm_11aca8 + call Function11b314 + call Function11acb7 + call Function11ad6e + ld a, $78 + ld [$c3b5], a + callba Function8cf7a + callba Function104061 + jr .asm_11ac82 + +.asm_11aca8 + call ClearSprites + pop af + ld [$ffaa], a + pop af + ld [VramState], a + pop af + ld [Options], a + ret +; 11acb7 + +Function11acb7: ; 11acb7 + ld hl, $7a44 + ld a, [$cd49] + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + add hl, bc + ld de, $c51e + ld a, [hli] + ld [de], a + ld de, $c52c + ld bc, $0007 + call CopyBytes + ld a, [$cd49] + inc a + ld [$cd49], a + ld a, [hl] + cp $ff + jr nz, .asm_11aceb + xor a + ld [$cd49], a + +.asm_11aceb + ld hl, $7b7d + ld a, [$cd4a] + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + add hl, bc + ld de, $c557 + ld bc, $0007 + call CopyBytes + ld a, [$cd4a] + inc a + ld [$cd4a], a + inc hl + ld a, [hl] + cp $ff + ret nz + xor a + ld [$cd4a], a + ret +; 11ad1b + +Function11ad1b: ; 11ad1b + call WhiteBGMap + call ClearSprites + call ClearTileMap + callba Function17c000 + ld a, [$cfa9] + ld [$cd82], a + dec a + ld [hConnectedMapWidth], a + ld a, $10 + ld [$c3b7], a + ld hl, $683f + ld a, $23 + ld e, $4 + rst FarCall + ld hl, $683f + ld a, $23 + ld e, $5 + rst FarCall + ld hl, PlayerSDefLevel + ld bc, $0115 + xor a + call ByteFill + xor a + ld [$cf63], a + ld [$cf64], a + ld [$cf65], a + ld [$cf66], a + ld [$cd30], a + ld a, $2 + ld [$c7d4], a + callba Function40bdc + ret +; 11ad6e + +Function11ad6e: ; 11ad6e + ld a, [$cf63] + ld hl, $6d78 + call Function11b239 + jp [hl] +; 11ad78 + +INCBIN "baserom.gbc", $11ad78, $11b239 - $11ad78 + +Function11b239: ; 11b239 + ld e, a + ld d, $0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ret +; 11b242 + +INCBIN "baserom.gbc", $11b242, $11b314 - $11b242 + +Function11b314: ; 11b314 + call Function11b31b + call Function11b3d9 + ret +; 11b31b + +Function11b31b: ; 11b31b + ld hl, $7350 + ld a, [$cf63] + cp $2 + jr c, .asm_11b349 + ld a, [$c7d1] + cp $4 + jr nc, .asm_11b344 + cp $3 + jr c, .asm_11b349 + ld a, [$cf63] + cp $2 + jr z, .asm_11b349 + cp $3 + jr z, .asm_11b349 + cp $6 + jr z, .asm_11b349 + ld bc, $737b + jr .asm_11b34c + +.asm_11b344 + ld bc, $7389 + jr .asm_11b34c + +.asm_11b349 + ld bc, $736d + +.asm_11b34c + call Function11b397 + ret +; 11b350 + +INCBIN "baserom.gbc", $11b350, $11b397 - $11b350 + +Function11b397: ; 11b397 + ld de, Sprites +.asm_11b39a + ld a, [hl] + cp $ff + ret z + ld a, [$c7d1] + and $7 + swap a + add [hl] + inc hl + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [bc] + inc bc + ld [de], a + inc de + ld a, $5 + ld [de], a + inc de + jr .asm_11b39a +; 11b3b6 + +INCBIN "baserom.gbc", $11b3b6, $11b3d9 - $11b3b6 + +Function11b3d9: ; 11b3d9 + ld de, $c470 + push de + ld a, [$c7d2] + dec a + ld e, a + ld a, [$c7d1] + ld hl, $c7d0 + add [hl] + cp e + jr z, .asm_11b40d + ld hl, $0000 + ld bc, $0070 + call AddNTimes + ld e, l + ld d, h + ld b, $0 + ld a, d + or e + jr z, .asm_11b40f + ld a, [$c7d2] + ld c, a +.asm_11b401 + ld a, e + sub c + ld e, a + ld a, d + sbc $0 + ld d, a + jr c, .asm_11b40f + inc b + jr .asm_11b401 + +.asm_11b40d + ld b, $70 + +.asm_11b40f + ld a, $15 + add b + pop hl + ld [hli], a + cp $41 + jr c, .asm_11b42b + ld a, [$cf63] + cp $4 + jr z, .asm_11b43b + cp $5 + jr z, .asm_11b43b + cp $7 + jr z, .asm_11b43b + cp $8 + jr z, .asm_11b43b + +.asm_11b42b + ld a, $9b + ld [hli], a + ld a, [$cd4c] + add $3c + ld [hli], a + ld a, [$cd4c] + add $1 + ld [hl], a + ret + +.asm_11b43b + ld a, $9b + ld [hli], a + ld a, $39 + ld [hli], a + xor a + ld [hl], a + ret +; 11b444 + +Function11b444: ; 11b444 + call Function11b44b + call Function11b45c + ret +; 11b44b + +Function11b44b: ; 11b44b + xor a + ld [$cf63], a + ld [$cf64], a + ld [$cf65], a + ld [$cf66], a + call UpdateTime + ret +; 11b45c + +Function11b45c: ; 11b45c +.asm_11b45c + call Function11b46a + call DelayFrame + ld a, [$cf63] + cp $4 + jr nz, .asm_11b45c + ret +; 11b46a + +Function11b46a: ; 11b46a + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $7479 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11b479 + +INCBIN "baserom.gbc", $11b479, $11b5e8 - $11b479 + +Function11b5e8: ; 11b5e8 + ld a, $0 + call GetSRAMBank + ld hl, $d4ba + ld de, EnemyMoveAnimation + ld bc, $0004 + call CopyBytes + call CloseSRAM + ld a, $5 + call GetSRAMBank + ld hl, EnemyMoveAnimation + ld de, $b08c + ld bc, $0004 + call CopyBytes + ld a, $2 + ld [$a800], a + ld a, [$a81f] + ld [$cd2a], a + ld a, [$a820] + ld [$cd2b], a + ld a, [$a821] + ld [$cd2c], a + ld a, [$a822] + ld [$cd2d], a + ld a, [$a823] + ld [$cd2e], a + ld a, [$a824] + ld [$cd2f], a + ld a, [$a825] + ld [$cd30], a + ld a, [$a826] + ld [$cd31], a + call CloseSRAM + call Function11b44b + call Function11b64c + ret +; 11b64c + +Function11b64c: ; 11b64c +.asm_11b64c + call Function11b65a + call DelayFrame + ld a, [$cf63] + cp $1 + jr nz, .asm_11b64c + ret +; 11b65a + +Function11b65a: ; 11b65a + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $7669 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11b669 + +INCBIN "baserom.gbc", $11b669, $11b7e5 - $11b669 + +Function11b7e5: ; 11b7e5 + ld a, [EnemyMovePP] + ld [PlayerLightScreenCount], a + ld [CurPartySpecies], a + ld a, [$cd81] + ld [$c74e], a + ld hl, $c63d + ld de, $c724 + ld bc, $0005 + call CopyBytes + ld a, $50 + ld [de], a + ld a, [PlayerMoveAccuracy] + ld [$c731], a + ld a, [PlayerMovePP] + ld [$c732], a + ld hl, $c622 + ld a, [hli] + ld [$c72f], a + ld a, [hl] + ld [$c730], a + ld bc, EnemyMovePP + callba Function4f301 + ld a, c + ld [$c733], a + call SpeechTextBox + call FadeToMenu + callba Function108016 + callba Function17d1f1 + ld a, $1 + ld [$d1e9], a + ld a, $2 + ld [InLinkBattle], a + callba Function421d8 + xor a + ld [InLinkBattle], a + callba Function14a58 + ld a, $5 + call GetSRAMBank + ld a, $5 + ld [$a800], a + call CloseSRAM + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call Function2147 + ld a, d + or e + jr z, .asm_11b872 + ld a, $1 + ld [de], a + +.asm_11b872 + call Function2b3c + call Function3d47 + ret +; 11b879 + +Function11b879: ; 11b879 + callba Function17089a + ld a, [ScriptVar] + and a + ret z + ld a, $5 + call GetSRAMBank + ld a, [$a800] + ld [ScriptVar], a + ld a, [$a890] + ld [$cd49], a + ld a, [$a891] + ld [$cd4a], a + ld a, [$a892] + ld [$cd4b], a + ld a, [$a893] + ld [$cd4c], a + call CloseSRAM + ld a, [ScriptVar] + and a + ret z + ld hl, $cd4c + ld a, [hRTCDayHi] + cp [hl] + ret nz + dec hl + ld a, [hRTCDayLo] + cp [hl] + ret nz + ld hl, $cd4a + ld a, [hRTCHours] + cp [hl] + jr nc, .asm_11b8d8 + ld a, $18 + sub [hl] + ld hl, hRTCHours + add [hl] + ld [$cd4c], a + ld a, [hRTCMinutes] + ld [$cd4b], a + xor a + ld [$cd4a], a + jr .asm_11b8e2 + +.asm_11b8d8 + ld a, [hRTCMinutes] + ld [$cd4b], a + ld a, [hRTCHours] + ld [$cd4c], a + +.asm_11b8e2 + xor a + ld l, a + ld h, a + ld b, a + ld d, a + ld a, [$cd4b] + ld e, a + ld a, [$cd4c] + ld c, $3c + call AddNTimes + add hl, de + push hl + xor a + ld l, a + ld h, a + ld b, a + ld d, a + ld a, [$cd49] + ld e, a + ld a, [$cd4a] + ld c, $3c + call AddNTimes + add hl, de + ld a, l + cpl + add $1 + ld e, a + ld a, h + cpl + adc $0 + ld d, a + pop hl + add hl, de + ld de, $ff88 + add hl, de + bit 7, h + ret z + ld a, $2 + ld [ScriptVar], a + ret +; 11b920 + +Function11b920: ; 11b920 + call Function11b44b + ld a, $5 + call GetSRAMBank + ld hl, $a81f + ld de, $c626 + ld bc, $0008 + call CopyBytes + call CloseSRAM + call Function118000 + ret +; 11b93b + +Function11b93b: ; 11b93b + ld a, $5 + call GetSRAMBank + xor a + ld [$a800], a + ld hl, $a823 + ld de, EnemyMoveAnimation + ld bc, $008f + call CopyBytes + call CloseSRAM + ld a, $8 + ld [BGMapBuffer], a + ld a, $c6 + ld [$cd21], a + ld a, $11 + ld [CreditsTimer], a + ld a, $c6 + ld [$cd23], a + ld a, $41 + ld [$cd24], a + ld a, $c6 + ld [$cd25], a + ld a, $46 + ld [$cd26], a + ld a, $c6 + ld [$cd27], a + ld a, $4b + ld [$cd28], a + ld a, $c6 + ld [$cd29], a + call Function11b98f + callba Function14a58 + ret +; 11b98f Function11b98f: ; 11b98f ld hl, PartyCount @@ -70778,7 +82479,15 @@ Function11b98f: ; 11b98f ret ; 11ba38 -INCBIN "baserom.gbc", $11ba38, $11bc9e - $11ba38 +Function11ba38: ; 11ba38 + callba Functione538 + ret c + xor a + ld [ScriptVar], a + ret +; 11ba44 + +INCBIN "baserom.gbc", $11ba44, $11bc9e - $11ba44 SECTION "bank47",ROMX,BANK[$47] @@ -70854,7 +82563,91 @@ Function11c000: ; 11c000 ret ; 11c05d -INCBIN "baserom.gbc", $11c05d, $11c0c6 - $11c05d +Function11c05d: ; 11c05d + ld a, e + or d + jr z, .asm_11c071 + ld a, e + and d + cp $ff + jr z, .asm_11c071 + push hl + call Function11c156 + pop hl + call PlaceString + and a + ret + +.asm_11c071 + ld c, l + ld b, h + scf + ret +; 11c075 + +Function11c075: ; 11c075 + push de + ld a, c + call Function11c254 + pop de + ld bc, $cd36 + call Function11c08f + ret +; 11c082 + +INCBIN "baserom.gbc", $11c082, $11c08f - $11c082 + +Function11c08f: ; 11c08f + ld l, e + ld h, d + push hl + ld a, $3 +.asm_11c094 + push af + ld a, [bc] + ld e, a + inc bc + ld a, [bc] + ld d, a + inc bc + push bc + call Function11c05d + jr c, .asm_11c0a2 + inc bc + +.asm_11c0a2 + ld l, c + ld h, b + pop bc + pop af + dec a + jr nz, .asm_11c094 + pop hl + ld de, $0028 + add hl, de + ld a, $3 +.asm_11c0b0 + push af + ld a, [bc] + ld e, a + inc bc + ld a, [bc] + ld d, a + inc bc + push bc + call Function11c05d + jr c, .asm_11c0be + inc bc + +.asm_11c0be + ld l, c + ld h, b + pop bc + pop af + dec a + jr nz, .asm_11c0b0 + ret +; 11c0c6 Function11c0c6: ; 11c0c6 @@ -71012,7 +82805,375 @@ Function11c156: ; 11c156 jr .asm_11c18f ; 11c1ab -INCBIN "baserom.gbc", $11c1ab, $11f686 - $11c1ab +Function11c1ab: ; 11c1ab + ld a, [$ffaa] + push af + ld a, $1 + ld [$ffaa], a + call Function11c1b9 + pop af + ld [$ffaa], a + ret +; 11c1b9 + +Function11c1b9: ; 11c1b9 + call Function11c1ca + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + call Function11c283 + pop af + ld [rSVBK], a + ret +; 11c1ca + +Function11c1ca: ; 11c1ca + xor a + ld [$cf63], a + ld [$cf64], a + ld [$cf65], a + ld [$cf66], a + ld [$cd23], a + ld [BGMapBuffer], a + ld [$cd21], a + ld [CreditsTimer], a + ld [$cd35], a + ld [$cd2b], a + ld a, $ff + ld [$cd24], a + ld a, [$cfa9] + dec a + call Function11c254 + call WhiteBGMap + call ClearSprites + call Functionfdb + call Function11d323 + call Function32f9 + call DisableLCD + ld hl, $567e + ld de, VTiles2 + ld bc, $0060 + call CopyBytes + ld hl, $56de + ld de, VTiles0 + call Decompress + call EnableLCD + callba Function104061 + callba Function8cf53 + callba Function1500c + callba Function40c30 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, PlayerSDefLevel + ld de, LYOverrides + ld bc, Start + call CopyBytes + pop af + ld [rSVBK], a + call Function11d4aa + call Function11d3ba + ret +; 11c254 + +Function11c254: ; 11c254 + push af + ld a, $4 + call GetSRAMBank + ld hl, $a007 + pop af + sla a + sla a + ld c, a + sla a + add c + ld c, a + ld b, $0 + add hl, bc + ld de, $cd36 + ld bc, $000c + call CopyBytes + call CloseSRAM + ret +; 11c277 + +INCBIN "baserom.gbc", $11c277, $11c283 - $11c277 + +Function11c283: ; 11c283 +.asm_11c283 + call Functiona57 + ld a, [hJoyPressed] + ld [hJoypadPressed], a + ld a, [$cf63] + bit 7, a + jr nz, .asm_11c2a2 + call Function11c2ac + callba Function8cf69 + callba Function104061 + jr .asm_11c283 + +.asm_11c2a2 + callba Function8cf53 + call ClearSprites + ret +; 11c2ac + +Function11c2ac: ; 11c2ac + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $42bb + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11c2bb + +INCBIN "baserom.gbc", $11c2bb, $11d323 - $11c2bb + +Function11d323: ; 11d323 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $533a + ld de, Unkn1Pals + ld bc, $0080 + call CopyBytes + pop af + ld [rSVBK], a + ret +; 11d33a + +INCBIN "baserom.gbc", $11d33a, $11d3ba - $11d33a + +Function11d3ba: ; 11d3ba + ld a, [rSVBK] + push af + ld hl, BattleMonSpclDef + ld a, $0 + ld [$cd2d], a + ld [hli], a + ld a, $d8 + ld [$cd2e], a + ld [hl], a + ld a, $fe + ld [$cd2f], a + ld a, $54 + ld [$cd30], a + ld a, $a8 + ld [$cd31], a + ld a, $c6 + ld [$cd32], a + ld a, $4a + ld [$cd33], a + ld a, $c6 + ld [$cd34], a + ld hl, $723c + ld a, $2d + +Function11d3ef: ; 11d3ef + push af + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + push hl + ld hl, Unkn1Pals + add hl, de + ld a, [$cd2d] + ld e, a + ld a, [$cd2e] + ld d, a + push bc +.asm_11d406 + ld a, $3 + ld [rSVBK], a + ld a, [hli] + push af + ld a, $5 + ld [rSVBK], a + pop af + ld [de], a + inc de + ld a, $3 + ld [rSVBK], a + ld a, [hli] + push af + ld a, $5 + ld [rSVBK], a + pop af + ld [de], a + inc de + dec bc + ld a, c + or b + jr nz, .asm_11d406 + ld a, [$cd2f] + ld l, a + ld a, [$cd30] + ld h, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, l + ld [$cd2f], a + ld a, h + ld [$cd30], a + push bc + pop hl + ld c, $0 +.asm_11d43d + ld a, [hl] + cp $ff + jr z, .asm_11d453 + call Function11d493 + jr nz, .asm_11d44a + inc hl + jr .asm_11d43d + +.asm_11d44a + ld a, [hli] + ld [de], a + inc de + xor a + ld [de], a + inc de + inc c + jr .asm_11d43d + +.asm_11d453 + pop hl + ld b, $0 + add hl, bc + push hl + pop bc + ld a, [$cd31] + ld l, a + ld a, [$cd32] + ld h, a + ld a, c + ld [hli], a + ld a, b + ld [hli], a + ld a, l + ld [$cd31], a + ld a, h + ld [$cd32], a + ld a, [$cd33] + ld l, a + ld a, [$cd34] + ld h, a + ld a, e + ld [$cd2d], a + ld [hli], a + ld a, d + ld [$cd2e], a + ld [hli], a + ld a, l + ld [$cd33], a + ld a, h + ld [$cd34], a + pop hl + pop af + dec a + jr z, .asm_11d48f + jp Function11d3ef + +.asm_11d48f + pop af + ld [rSVBK], a + ret +; 11d493 + +Function11d493: ; 11d493 + push hl + push bc + push de + dec a + ld hl, rSVBK + ld e, $1 + ld [hl], e + call CheckSeenMon + ld hl, rSVBK + ld e, $5 + ld [hl], e + pop de + pop bc + pop hl + ret +; 11d4aa + +Function11d4aa: ; 11d4aa + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld hl, $5aac + ld bc, $7220 + xor a + ld [$cd2d], a + inc a + ld [$cd2e], a + ld a, $e +.asm_11d4c1 + push af + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push hl + ld hl, $0005 + add hl, de + ld a, [bc] + inc bc + inc bc + push bc +.asm_11d4cf + push af + push hl + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + ld hl, Unkn1Pals + add hl, de + ld a, [$cd2d] + ld [hli], a + inc a + ld [$cd2d], a + ld a, [$cd2e] + ld [hl], a + pop hl + ld de, $0008 + add hl, de + pop af + dec a + jr nz, .asm_11d4cf + ld hl, $cd2d + xor a + ld [hli], a + inc [hl] + pop bc + pop hl + pop af + dec a + jr nz, .asm_11d4c1 + pop af + ld [rSVBK], a + ret +; 11d4fe + +INCBIN "baserom.gbc", $11d4fe, $11f686 - $11d4fe SECTION "bank48",ROMX,BANK[$48] @@ -71839,7 +84000,114 @@ INCBIN "gfx/pics/201r/back.lz" SECTION "bank5B",ROMX,BANK[$5B] -INCBIN "baserom.gbc", $16c000, $16d69a - $16c000 +INCBIN "baserom.gbc", $16c000, $16d421 - $16c000 + +Function16d421: ; 16d421 + ld de, $4fc1 + ld hl, VTiles2 + ld bc, $5b46 + call Get2bpp + ret +; 16d42e + +Function16d42e: ; 16d42e + ld hl, $5465 + ld de, TileMap + ld bc, $0168 + call CopyBytes + ret +; 16d43b + +INCBIN "baserom.gbc", $16d43b, $16d61d - $16d43b + +Function16d61d: ; 16d61d + ld h, d + ld l, e + push bc + push hl + call Function16d640 + pop hl + pop bc + ld de, $0939 + add hl, de + inc b + inc b + inc c + inc c + ld a, $7 +.asm_16d630 + push bc + push hl +.asm_16d632 + ld [hli], a + dec c + jr nz, .asm_16d632 + pop hl + ld de, $0014 + add hl, de + pop bc + dec b + jr nz, .asm_16d630 + ret +; 16d640 + +Function16d640: ; 16d640 + push hl + ld a, $30 + ld [hli], a + inc a + call Function16d66d + inc a + ld [hl], a + pop hl + ld de, $0014 + add hl, de +.asm_16d64f + push hl + ld a, $33 + ld [hli], a + ld a, $7f + call Function16d66d + ld [hl], $34 + pop hl + ld de, $0014 + add hl, de + dec b + jr nz, .asm_16d64f + ld a, $35 + ld [hli], a + ld a, $36 + call Function16d66d + ld [hl], $37 + ret +; 16d66d + +Function16d66d: ; 16d66d + ld d, c +.asm_16d66e + ld [hli], a + dec d + jr nz, .asm_16d66e + ret +; 16d673 + +Function16d673: ; 16d673 + call Function16d696 + call Function16d6ae + callba Function49856 + callba Functionfb60d + ld hl, $c5fe + ld de, $568f + call PlaceString + ret +; 16d68f + +INCBIN "baserom.gbc", $16d68f, $16d696 - $16d68f + +Function16d696: ; 16d696 + call Function16d421 + ret +; 16d69a Function16d69a: ; 16d69a @@ -71850,12 +84118,387 @@ Function16d69a: ; 16d69a ret ; 16d6a7 -INCBIN "baserom.gbc", $16d6a7, $16d7fe - $16d6a7 +Function16d6a7: ; 16d6a7 + callba Function49811 + ret +; 16d6ae + +Function16d6ae: ; 16d6ae + call Function16d42e + ld hl, $55cd + ld de, TileMap + ld bc, $0028 + call CopyBytes + ld hl, $55f5 + ld de, $c5e0 + ld bc, $0028 + call CopyBytes + ret +; 16d6ca + +Function16d6ca: ; 16d6ca + call Function16d61d + ret +; 16d6ce + +Function16d6ce: ; 16d6ce + call Function1d6e + call Function16d6e1 + callba Function87d + call Function1d7d + call Function3200 + ret +; 16d6e1 + +Function16d6e1: ; 16d6e1 + ld hl, $c56c + ld b, $1 + ld c, $a + ld a, $10 + call Predef + ld hl, $c581 + ld de, $5701 + call PlaceString + call WaitBGMap + call Function3200 + ld c, $32 + jp DelayFrames +; 16d701 + +INCBIN "baserom.gbc", $16d701, $16d70c - $16d701 + +Function16d70c: ; 16d70c + call Function16d725 + call Function16d713 + ret +; 16d713 + +Function16d713: ; 16d713 + push bc + push af + ld a, [$ffa9] + and $f0 + ld b, a + ld a, [hJoyPressed] + and $f + or b + ld b, a + pop af + ld a, b + pop bc + ld d, a + ret +; 16d725 + +Function16d725: ; 16d725 + ld hl, $cfa6 + res 7, [hl] + ld a, [hBGMapMode] + push af + call Function16d734 + pop af + ld [hBGMapMode], a + ret +; 16d734 + +Function16d734: ; 16d734 +.asm_16d734 + call Function16d77a + call Function16d759 + call Function16d76a + jr nc, .asm_16d758 + callba Function24270 + jr c, .asm_16d758 + ld a, [$cfa5] + bit 7, a + jr nz, .asm_16d758 + call Function16d713 + ld b, a + ld a, [$cfa8] + and b + jr z, .asm_16d734 + +.asm_16d758 + ret +; 16d759 + +Function16d759: ; 16d759 + ld a, [hOAMUpdate] + push af + ld a, $1 + ld [hOAMUpdate], a + call WaitBGMap + pop af + ld [hOAMUpdate], a + xor a + ld [hBGMapMode], a + ret +; 16d76a + +Function16d76a: ; 16d76a +.asm_16d76a + call RTC + call Function16d7e7 + ret c + ld a, [$cfa5] + bit 7, a + jr z, .asm_16d76a + and a + ret +; 16d77a + +Function16d77a: ; 16d77a + ld hl, $cfac + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hl] + cp $1f + jr nz, .asm_16d792 + ld a, [$cfab] + ld [hl], a + push hl + push bc + ld bc, $000b + add hl, bc + ld [hl], a + pop bc + pop hl + +.asm_16d792 + ld a, [$cfa1] + ld b, a + ld a, [$cfa2] + ld c, a + call Function1d05 + ld a, [$cfa7] + swap a + and $f + ld c, a + ld a, [$cfa9] + ld b, a + xor a + dec b + jr z, .asm_16d7b1 +.asm_16d7ad + add c + dec b + jr nz, .asm_16d7ad + +.asm_16d7b1 + ld c, $14 + call AddNTimes + ld a, [$cfa7] + and $f + ld c, a + ld a, [$cfaa] + ld b, a + xor a + dec b + jr z, .asm_16d7c8 +.asm_16d7c4 + add c + dec b + jr nz, .asm_16d7c4 + +.asm_16d7c8 + ld c, a + add hl, bc + ld a, [hl] + cp $1f + jr z, .asm_16d7de + ld [$cfab], a + ld [hl], $1f + push hl + push bc + ld bc, $000b + add hl, bc + ld [hl], $1f + pop bc + pop hl + +.asm_16d7de + ld a, l + ld [$cfac], a + ld a, h + ld [$cfad], a + ret +; 16d7e7 + +Function16d7e7: ; 16d7e7 + ld a, [$cfa5] + bit 6, a + jr z, .asm_16d7f4 + callba Function8cf62 + +.asm_16d7f4 + call Functiona57 + call Function16d713 + and a + ret z + scf + ret +; 16d7fe SECTION "bank5C",ROMX,BANK[$5C] -INCBIN "baserom.gbc", $170000, $170923 - $170000 +INCBIN "baserom.gbc", $170000, $1700b0 - $170000 + +Function1700b0: ; 1700b0 + call Function17021e + callba Function118121 + ret +; 1700ba + +Function1700ba: ; 1700ba + call Function17021e + callba Function11811a + ret +; 1700c4 + +INCBIN "baserom.gbc", $1700c4, $170114 - $1700c4 + +Function170114: ; 170114 + call Function17021e + call Function170121 + callba Function11805f + ret +; 170121 + +Function170121: ; 170121 + ld a, $5 + call GetSRAMBank + ld hl, $a948 + ld de, EnemyMoveAnimation + ld bc, $00f6 + call CopyBytes + call CloseSRAM + call Function170c8b + ret +; 170139 + +INCBIN "baserom.gbc", $170139, $170215 - $170139 + +Function170215: ; 170215 + xor a + ld [$cf63], a + call Function17022c + ret +; 17021d + +Function17021d: ; 17021d + ret +; 17021e + +Function17021e: ; 17021e + xor a + ld [$cf63], a + ld [$cf64], a + ld [$cf65], a + ld [$cf66], a + ret +; 17022c + +Function17022c: ; 17022c +.asm_17022c + call Function17023a + call DelayFrame + ld a, [$cf63] + cp $1 + jr nz, .asm_17022c + ret +; 17023a + +Function17023a: ; 17023a + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $4249 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 170249 + +INCBIN "baserom.gbc", $170249, $1704e1 - $170249 + +Function1704e1: ; 1704e1 + call SpeechTextBox + call FadeToMenu + call Function17021e + call Function1704f1 + call Function2b3c + ret +; 1704f1 + +Function1704f1: ; 1704f1 + call WhiteBGMap + call ClearSprites + call Functionfdb +.asm_1704fa + call Functiona57 + ld a, [$cf63] + bit 7, a + jr nz, .asm_17050f + call Function170510 + callba Function104061 + jr .asm_1704fa + +.asm_17050f + ret +; 170510 + +Function170510: ; 170510 + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $451f + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 17051f + +INCBIN "baserom.gbc", $17051f, $170687 - $17051f + +Function170687: ; 170687 + ld a, [ScriptVar] + ld e, a + ld d, $0 + ld hl, $4696 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 170696 + +INCBIN "baserom.gbc", $170696, $17089a - $170696 + +Function17089a: ; 17089a + ld a, [$cfcd] + and a + jr z, .asm_1708ad + callba Function14bcb + jr z, .asm_1708ab + xor a + jr .asm_1708ad + +.asm_1708ab + ld a, $1 + +.asm_1708ad + ld [ScriptVar], a + ret +; 1708b1 + +INCBIN "baserom.gbc", $1708b1, $170923 - $1708b1 Function170923: ; 170923 @@ -71871,7 +84514,85 @@ Function170923: ; 170923 ret ; 17093c -INCBIN "baserom.gbc", $17093c, $17367f - $17093c +INCBIN "baserom.gbc", $17093c, $170b44 - $17093c + +Function170b44: ; 170b44 + callba Function1f8000 + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld hl, $d10a + ld a, [hl] + dec a + ld c, a + ld b, $0 + pop af + ld [rSVBK], a + ld hl, $4b90 + add hl, bc + ld a, [hl] + ld [$cd49], a + ld a, [ScriptVar] + dec a + sla a + ld e, a + sla a + sla a + sla a + ld c, a + ld b, $0 + ld d, $0 + ld hl, MapObjects + add hl, bc + inc hl + ld a, [$cd49] + ld [hl], a + ld hl, UsedSprites + add hl, de + ld [hli], a + ld [$ffbd], a + ld a, [hl] + ld [$ffbe], a + callba Function143c8 + ret +; 170b90 + +INCBIN "baserom.gbc", $170b90, $170bd2 - $170b90 + +Function170bd2: ; 170bd2 + ret +; 170bd3 + +Function170bd3: ; 170bd3 + callba Function8b201 + jr c, .asm_170bde + xor a + jr .asm_170be0 + +.asm_170bde + ld a, $1 + +.asm_170be0 + ld [ScriptVar], a + ret +; 170be4 + +INCBIN "baserom.gbc", $170be4, $170c8b - $170be4 + +Function170c8b: ; 170c8b + ld hl, LastPlayerCounterMove + ld b, $5 +.asm_170c90 + ld a, [hl] + xor $ff + ld [hli], a + dec b + jr nz, .asm_170c90 + ret +; 170c98 + +INCBIN "baserom.gbc", $170c98, $17367f - $170c98 SECTION "bank5D",ROMX,BANK[$5D] @@ -71972,7 +84693,427 @@ Function17c000: ; 17c000 ret ; 17c083 -INCBIN "baserom.gbc", $17c083, $17f036 - $17c083 +INCBIN "baserom.gbc", $17c083, $17d0b3 - $17c083 + +Function17d0b3: ; 17d0b3 +.asm_17d0b3 + ld a, [de] + inc de + and a + jr z, .asm_17d0ee + cp $60 + jr nc, .asm_17d0ee + cp $4e + jr z, .asm_17d0ee + cp $50 + jr z, .asm_17d0ee + cp $5 + jr c, .asm_17d0ec + cp $14 + jr c, .asm_17d0ee + cp $19 + jr c, .asm_17d0ec + cp $1d + jr c, .asm_17d0ee + cp $26 + jr c, .asm_17d0ec + cp $35 + jr c, .asm_17d0ee + cp $3a + jr c, .asm_17d0ec + cp $3f + jr c, .asm_17d0ee + cp $40 + jr c, .asm_17d0ec + cp $49 + jr c, .asm_17d0ee + +.asm_17d0ec + scf + ret + +.asm_17d0ee + dec c + jr nz, .asm_17d0b3 + and a + ret +; 17d0f3 + +INCBIN "baserom.gbc", $17d0f3, $17d1e1 - $17d0f3 + +Function17d1e1: ; 17d1e1 +.asm_17d1e1 + ld a, [de] + inc de + cp $4e + jr nz, .asm_17d1ea + dec b + jr z, .asm_17d1ef + +.asm_17d1ea + dec c + jr nz, .asm_17d1e1 + and a + ret + +.asm_17d1ef + scf + ret +; 17d1f1 + +Function17d1f1: ; 17d1f1 + ld a, [CurPartySpecies] + dec a + call SetSeenAndCaughtMon + ld a, [CurPartySpecies] + cp $c9 + jr nz, .asm_17d223 + ld hl, PartyMon1DVs + ld a, [PartyCount] + dec a + ld bc, $0030 + call AddNTimes + ld a, $2d + call Predef + callab Functionfba18 + ld a, [$def4] + and a + jr nz, .asm_17d223 + ld a, [UnownLetter] + ld [$def4], a + +.asm_17d223 + ret +; 17d224 + +Function17d224: ; 17d224 + ld a, [ScriptVar] + and a + jr nz, .asm_17d234 + ld a, $4 + ld [ScriptVar], a + ld hl, $526a + jr .asm_17d23c + +.asm_17d234 + ld a, $4 + ld [ScriptVar], a + ld hl, $528f + +.asm_17d23c + call LoadMenuDataHeader + call Function17d246 + call Function1c17 + ret +; 17d246 + +Function17d246: ; 17d246 + call Function1d81 + jr c, .asm_17d264 + ld a, [ScriptVar] + cp $5 + jr nz, .asm_17d25d + ld a, [$cfa9] + cp $3 + ret z + jr c, .asm_17d25d + dec a + jr .asm_17d260 + +.asm_17d25d + ld a, [$cfa9] + +.asm_17d260 + ld [ScriptVar], a + ret + +.asm_17d264 + ld a, $4 + ld [ScriptVar], a + ret +; 17d26a + +INCBIN "baserom.gbc", $17d26a, $17d2b6 - $17d26a + +Function17d2b6: ; 17d2b6 + call Function17d2c0 + callba Function1181da + ret +; 17d2c0 + +Function17d2c0: ; 17d2c0 + xor a + ld [$cf63], a + ld [$cf64], a + ld [$cf65], a + ld [$cf66], a + ret +; 17d2ce + +Function17d2ce: ; 17d2ce + ld a, $5 + call GetSRAMBank + ld a, [$aa72] + call CloseSRAM + and a + jr nz, .asm_17d2e2 + ld a, $1 + ld [ScriptVar], a + ret + +.asm_17d2e2 + call Function17d314 + ret c + call SpeechTextBox + call FadeToMenu + ld a, [rSVBK] + push af + ld a, $4 + ld [rSVBK], a + call Function17d370 + call Function17d45a + pop af + ld [rSVBK], a + ld de, $0066 + ld a, e + ld [CurMusic], a + ld [MusicFadeIDLo], a + ld a, d + ld [MusicFadeIDHi], a + call StartMusic + call Function222a + call Function2b3c + ret +; 17d314 + +Function17d314: ; 17d314 + ld a, $5 + call GetSRAMBank + ld a, [$b1b1] + call CloseSRAM + cp $21 + jr nc, .asm_17d354 + ld a, $6 + call GetSRAMBank + ld l, $0 + ld h, l + ld de, $a006 + ld a, [$a004] + ld c, a + ld a, [$a005] + ld b, a +.asm_17d336 + push bc + ld a, [de] + inc de + ld c, a + ld b, $0 + add hl, bc + pop bc + dec bc + ld a, b + or c + jr nz, .asm_17d336 + ld a, [$a002] + cp l + jr nz, .asm_17d354 + ld a, [$a003] + cp h + jr nz, .asm_17d354 + call CloseSRAM + and a + ret + +.asm_17d354 + call CloseSRAM + ld a, $5 + call GetSRAMBank + xor a + ld hl, $aa73 + ld bc, $000c + call ByteFill + call CloseSRAM + ld a, $2 + ld [ScriptVar], a + scf + ret +; 17d370 + +Function17d370: ; 17d370 + xor a + ld [$cd77], a + ld [$cd78], a + ld [$cd79], a + dec a + ld [$cd6c], a + call WhiteBGMap + call ClearSprites + call Functionfdb + callba Function104061 + call DisableLCD + ld hl, $8ee0 + ld de, EnemyMoveAnimation + ld bc, $0010 + call CopyBytes + ld a, $1 + ld [rVBK], a + ld hl, $66fe + ld de, VTiles1 + ld bc, $0480 + call CopyBytes + xor a + ld hl, $97f0 + ld bc, $0010 + call ByteFill + ld hl, EnemyMoveAnimation + ld de, $8ee0 + ld bc, $0010 + call CopyBytes + xor a + ld [rVBK], a + ld hl, $6b7e + ld de, $9600 + ld bc, $0010 + call CopyBytes + call EnableLCD + call Function17d60b + ld a, $0 + ld [BGMapBuffer], a + ld a, $d0 + ld [$cd21], a + ld a, $6 + call GetSRAMBank + ld hl, $a006 + ld de, Unkn1Pals + ld bc, $1000 + call CopyBytes + call CloseSRAM + ret +; 17d3f6 + +INCBIN "baserom.gbc", $17d3f6, $17d45a - $17d3f6 + +Function17d45a: ; 17d45a +.asm_17d45a + call Functiona57 + ld a, [$cd77] + bit 7, a + jr nz, .asm_17d46f + call Function17d474 + callba Function104061 + jr .asm_17d45a + +.asm_17d46f + xor a + ld [ScriptVar], a + ret +; 17d474 + +Function17d474: ; 17d474 + ld a, [$cd77] + ld e, a + ld d, $0 + ld hl, $5483 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 17d483 + +INCBIN "baserom.gbc", $17d483, $17d60b - $17d483 + +Function17d60b: ; 17d60b + ld a, $5 + call GetSRAMBank + ld hl, $b1d3 + ld de, EnemyMoveAnimation + ld bc, $0020 + call CopyBytes + ld a, [$b1b1] + ld c, a + ld a, [$b1b2] + ld b, a + ld a, [$b1b3] + ld l, a + ld a, [$b1b4] + ld h, a + call CloseSRAM + ld a, $6 + call GetSRAMBank + ld de, $c708 + ld a, c + and a + jr z, .asm_17d684 +.asm_17d63b + push bc + ld a, l + ld [de], a + inc de + ld a, h + ld [de], a + inc de + ld bc, $000a + add hl, bc + pop bc + ld a, [hli] + ld [$cd4a], a + ld a, [hli] + ld [$cd49], a + push hl + push de + ld hl, EnemyMoveAnimation + ld e, b + ld d, $0 + add hl, de + ld a, [hli] + ld [$cd4b], a + ld a, [hl] + ld [$cd4c], a + pop de + pop hl + inc b + inc b + dec c + dec c + jr z, .asm_17d684 + push bc + push de + ld a, [$cd49] + ld c, a + ld a, [$cd4a] + ld b, a + ld a, [$cd4b] + ld e, a + ld a, [$cd4c] + ld d, a +.asm_17d67a + add hl, de + dec bc + ld a, c + or b + jr nz, .asm_17d67a + pop de + pop bc + jr .asm_17d63b + +.asm_17d684 + call CloseSRAM + ld a, $5 + call GetSRAMBank + ld hl, $c708 + ld de, $b1b3 + ld a, [$b1b1] + ld c, a + ld a, [$b1b2] + ld b, a + call CopyBytes + call CloseSRAM + ret +; 17d6a1 + +INCBIN "baserom.gbc", $17d6a1, $17f036 - $17d6a1 Function17f036: ; 17f036 @@ -71999,8 +85140,8 @@ Function17f047: ; 17f047 dec a push de ld e, a - ld d, $0 - ld hl, $7061 + ld d, 0 + ld hl, Table17f061 add hl, de add hl, de ld a, [hli] @@ -72013,7 +85154,1164 @@ Function17f047: ; 17f047 ret ; 17f061 -INCBIN "baserom.gbc", $17f061, $17ff6c - $17f061 +Table17f061: ; 17f061 + dw Function17f081 + dw Function17f0f8 + dw Function17f154 + dw Function17f181 + dw Function17f1d0 + dw Function17f220 + dw Function17f27b + dw Function17f2cb + dw Function17f2ff + dw Function17f334 + dw Function17f382 + dw Function17f3c9 + dw Function17f3f0 + dw Function17f41d + dw Function17f44f + dw Function17f44f +; 17f081 + +Function17f081: ; 17f081 + pop hl + call Function17f524 + jr c, .asm_17f09f + ld de, $0004 + add hl, de + ld a, [hli] + inc hl + inc hl + ld e, l + ld d, h + ld l, c + ld h, b + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + cp $50 + jr z, .asm_17f09d + and a + ret + +.asm_17f09d + scf + ret + +.asm_17f09f + push bc + ld de, $cd54 + ld bc, $0007 + call CopyBytes + pop bc + push hl + push bc + call Function17f4f6 + pop bc + ld a, [$cd54] + ld e, a + ld a, [$cd55] + ld d, a + add hl, de + ld e, l + ld d, h + ld l, c + ld h, b + push hl + ld a, [$cd56] + ld b, a + ld a, [$cd57] + ld c, a + call Function31a4 + ld a, l + ld [$cd52], a + ld a, h + ld [$cd53], a + ld a, [$cd59] + and a + jr z, .asm_17f0ee + ld c, a + ld a, [$cd57] + inc a + ld b, a + ld e, l + ld d, h + dec de +.asm_17f0e0 + ld a, c + cp b + jr z, .asm_17f0ea + ld a, [de] + dec de + ld [hld], a + dec b + jr .asm_17f0e0 + +.asm_17f0ea + ld a, [$cd5a] + ld [hl], a + +.asm_17f0ee + pop hl + ld a, [$cd58] + call Function17f50f + pop de + and a + ret +; 17f0f8 + +Function17f0f8: ; 17f0f8 + pop hl + call Function17f524 + jr c, .asm_17f114 + ld de, $0003 + add hl, de + ld a, [hli] + ld e, l + ld d, h + ld l, c + ld h, b + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + cp $50 + jr z, .asm_17f112 + and a + ret + +.asm_17f112 + scf + ret + +.asm_17f114 + push bc + ld de, $cd54 + ld bc, $0004 + call CopyBytes + pop bc + push hl + push bc + call Function17f4f6 + ld a, [$cd54] + ld e, a + ld a, [$cd55] + ld d, a + add hl, de + ld de, EnemyMoveAnimation + ld a, [$cd56] + ld c, a + ld b, $0 + call CopyBytes + ld a, $50 + ld [de], a + pop hl + ld de, EnemyMoveAnimation + call PlaceString + ld a, c + ld [$cd52], a + ld a, b + ld [$cd53], a + ld a, [$cd57] + call Function17f50f + pop de + and a + ret +; 17f154 + +Function17f154: ; 17f154 + pop hl + call Function17f524 + jr c, .asm_17f167 + inc hl + inc hl + ld e, l + ld d, h + ld a, [de] + cp $50 + jr z, .asm_17f165 + and a + ret + +.asm_17f165 + scf + ret + +.asm_17f167 + push bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + pop bc + push hl + push bc + call Function17f4f6 + add hl, de + ld c, l + ld b, h + pop de + callba Function11c08f + ld c, l + ld b, h + pop de + and a + ret +; 17f181 + +Function17f181: ; 17f181 + pop hl + call Function17f524 + jr c, .asm_17f19d + ld de, $0002 + add hl, de + ld a, [hli] + ld e, l + ld d, h + ld l, c + ld h, b + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + cp $50 + jr z, .asm_17f19b + and a + ret + +.asm_17f19b + scf + ret + +.asm_17f19d + push bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld [$cd54], a + pop bc + push hl + push bc + call Function17f4f6 + add hl, de + ld a, [hl] + ld c, a + ld de, EnemyMoveAnimation + callba Function48c63 + pop hl + ld de, EnemyMoveAnimation + call PlaceString + ld a, c + ld [$cd52], a + ld a, b + ld [$cd53], a + ld a, [$cd54] + call Function17f50f + pop de + and a + ret +; 17f1d0 + +Function17f1d0: ; 17f1d0 + pop hl + call Function17f524 + jr c, .asm_17f1ec + ld de, $0002 + add hl, de + ld a, [hli] + ld e, l + ld d, h + ld l, c + ld h, b + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + cp $50 + jr z, .asm_17f1ea + and a + ret + +.asm_17f1ea + scf + ret + +.asm_17f1ec + push bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld [$cd54], a + pop bc + push hl + push bc + call Function17f4f6 + add hl, de + ld a, [hl] + ld a, $1 + ld [rSVBK], a + ld [$d265], a + call GetPokemonName + pop hl + call PlaceString + ld a, c + ld [$cd52], a + ld a, b + ld [$cd53], a + ld a, $4 + ld [rSVBK], a + ld a, [$cd54] + call Function17f50f + pop de + and a + ret +; 17f220 + +Function17f220: ; 17f220 + pop hl + call Function17f524 + jr c, .asm_17f23c + ld de, $0002 + add hl, de + ld a, [hli] + ld e, l + ld d, h + ld l, c + ld h, b + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + cp $50 + jr z, .asm_17f23a + and a + ret + +.asm_17f23a + scf + ret + +.asm_17f23c + push bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld [$cd54], a + pop bc + push hl + push bc + call Function17f4f6 + add hl, de + ld a, [hl] + ld e, a + ld d, $0 + ld hl, $726e + add hl, de + add hl, de + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + pop hl + call PlaceString + ld a, c + ld [$cd52], a + ld a, b + ld [$cd53], a + ld a, [$cd54] + call Function17f50f + pop de + and a + ret +; 17f26e + +INCBIN "baserom.gbc", $17f26e, $17f27b - $17f26e + +Function17f27b: ; 17f27b + pop hl + call Function17f524 + jr c, .asm_17f297 + ld de, $0002 + add hl, de + ld a, [hli] + ld e, l + ld d, h + ld l, c + ld h, b + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + cp $50 + jr z, .asm_17f295 + and a + ret + +.asm_17f295 + scf + ret + +.asm_17f297 + push bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld [$cd54], a + pop bc + push hl + push bc + call Function17f4f6 + add hl, de + ld a, [hl] + ld a, $1 + ld [rSVBK], a + ld [$d265], a + call GetItemName + pop hl + call PlaceString + ld a, c + ld [$cd52], a + ld a, b + ld [$cd53], a + ld a, $4 + ld [rSVBK], a + ld a, [$cd54] + call Function17f50f + pop de + and a + ret +; 17f2cb + +Function17f2cb: ; 17f2cb + pop hl + push bc + ld a, [hli] + ld [$cd54], a + ld a, [hli] + ld [$cd55], a + ld a, [$cd2e] + inc a + ld [$cd56], a + pop bc + push hl + ld l, c + ld h, b + push hl + ld de, $cd56 + ld b, $1 + ld a, [$cd54] + ld c, a + call Function31a4 + ld a, l + ld [$cd52], a + ld a, h + ld [$cd53], a + pop hl + ld a, [$cd55] + call Function17f50f + pop de + and a + ret +; 17f2ff + +Function17f2ff: ; 17f2ff + pop hl + push bc + ld a, [hli] + ld [$cd54], a + pop bc + push hl + push bc + ld a, $1 + ld [rSVBK], a + ld hl, PlayerName + ld de, EnemyMoveAnimation + ld bc, $0006 + call CopyBytes + ld a, $4 + ld [rSVBK], a + pop hl + ld de, EnemyMoveAnimation + call PlaceString + ld a, c + ld [$cd52], a + ld a, b + ld [$cd53], a + ld a, [$cd54] + call Function17f50f + pop de + and a + ret +; 17f334 + +Function17f334: ; 17f334 + pop hl + push bc + ld a, [hli] + ld [$cd55], a + and $f + ld [$cd54], a + pop bc + push hl + ld l, c + ld h, b + push hl + ld a, [$cd55] + bit 7, a + jr nz, .asm_17f355 + ld a, $1 + call GetSRAMBank + ld a, [$be3f] + jr .asm_17f35d + +.asm_17f355 + ld a, $5 + call GetSRAMBank + ld a, [$b2f3] + +.asm_17f35d + ld c, a + call CloseSRAM + ld de, EnemyMoveAnimation + callba Function48c63 + pop hl + ld de, EnemyMoveAnimation + call PlaceString + ld a, c + ld [$cd52], a + ld a, b + ld [$cd53], a + ld a, [$cd54] + call Function17f50f + pop de + and a + ret +; 17f382 + +Function17f382: ; 17f382 + pop hl + push bc + ld a, [hli] + ld [$cd55], a + and $f + ld [$cd54], a + pop bc + push hl + push bc + ld l, c + ld h, b + ld a, [$cd55] + bit 7, a + jr nz, .asm_17f3a3 + ld a, $1 + call GetSRAMBank + ld de, $be40 + jr .asm_17f3ab + +.asm_17f3a3 + ld a, $5 + call GetSRAMBank + ld de, $b2f4 + +.asm_17f3ab + ld a, $82 + ld b, a + ld a, $3 + ld c, a + call PrintNum + call CloseSRAM + ld a, l + ld [$cd52], a + ld a, h + ld [$cd53], a + pop hl + ld a, [$cd54] + call Function17f50f + pop de + and a + ret +; 17f3c9 + +Function17f3c9: ; 17f3c9 + push bc + ld hl, $cd36 + ld de, $c708 + ld bc, $000c + call CopyBytes + pop de + ld c, $0 + callba Function11c075 + push hl + ld hl, $c708 + ld de, $cd36 + ld bc, $000c + call CopyBytes + pop bc + pop de + and a + ret +; 17f3f0 + +Function17f3f0: ; 17f3f0 + pop hl + push hl + ld a, [hli] + push af + push bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [de] + ld c, a + ld b, $0 + add hl, bc + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld hl, Unkn1Pals + add hl, de + ld e, l + ld d, h + pop hl + call PlaceString + pop af + ld e, a + ld d, $0 + pop hl + add hl, de + add hl, de + inc hl + inc hl + inc hl + ld e, l + ld d, h + ld l, c + ld h, b + scf + ret +; 17f41d + +Function17f41d: ; 17f41d + pop hl + ld a, [hli] + push hl + push af + ld l, c + ld h, b + ld bc, $3b60 + add hl, bc + ld de, $ffec + ld c, $1 +.asm_17f42c + ld a, h + and a + jr nz, .asm_17f435 + ld a, l + cp $14 + jr c, .asm_17f439 + +.asm_17f435 + add hl, de + inc c + jr .asm_17f42c + +.asm_17f439 + ld hl, TileMap + ld de, $0014 + ld a, c +.asm_17f440 + and a + jr z, .asm_17f447 + add hl, de + dec a + jr .asm_17f440 + +.asm_17f447 + pop af + ld e, a + ld d, $0 + add hl, de + pop de + and a + ret +; 17f44f + +Function17f44f: ; 17f44f + pop hl + call Function17f524 + jr c, .asm_17f46d + ld de, $0005 + add hl, de + ld a, [hli] + inc hl + inc hl + ld e, l + ld d, h + ld l, c + ld h, b + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + cp $50 + jr z, .asm_17f46b + and a + ret + +.asm_17f46b + scf + ret + +.asm_17f46d + push bc + ld de, $cd54 + ld bc, $0008 + call CopyBytes + pop bc + push hl + push bc + ld a, [$cd56] + cp $c0 + jr c, .asm_17f488 + ld a, [$cd54] + ld [rSVBK], a + jr .asm_17f48e + +.asm_17f488 + ld a, [$cd54] + call GetSRAMBank + +.asm_17f48e + ld a, [$cd55] + ld l, a + ld a, [$cd56] + ld h, a + ld de, EnemyMoveAnimation + ld a, [$cd57] + ld c, a + ld b, $0 + call CopyBytes + ld a, [$cd56] + cp $c0 + jr c, .asm_17f4af + ld a, $4 + ld [rSVBK], a + jr .asm_17f4b7 + +.asm_17f4af + call CloseSRAM + ld a, $6 + call GetSRAMBank + +.asm_17f4b7 + ld de, EnemyMoveAnimation + pop hl + push hl + ld a, [$cd57] + ld b, a + ld a, [$cd58] + ld c, a + call Function31a4 + ld a, l + ld [$cd52], a + ld a, h + ld [$cd53], a + ld a, [$cd5a] + and a + jr z, .asm_17f4ec + ld c, a + ld a, [$cd58] + inc a + ld b, a + ld e, l + ld d, h + dec de +.asm_17f4de + ld a, c + cp b + jr z, .asm_17f4e8 + ld a, [de] + dec de + ld [hld], a + dec b + jr .asm_17f4de + +.asm_17f4e8 + ld a, [$cd5b] + ld [hl], a + +.asm_17f4ec + pop hl + ld a, [$cd59] + call Function17f50f + pop de + and a + ret +; 17f4f6 + +Function17f4f6: ; 17f4f6 + ld a, [$cd6a] + ld l, a + ld a, [$cd6b] + ld h, a + ld a, [$cd47] + ld c, a + ld a, [BGMapPalBuffer] + ld b, a + ld a, [$cd2e] +.asm_17f509 + and a + ret z + dec a + add hl, bc + jr .asm_17f509 +; 17f50f + +Function17f50f: ; 17f50f + and a + jr z, .asm_17f519 + ld c, a + ld b, $0 + add hl, bc + ld c, l + ld b, h + ret + +.asm_17f519 + ld a, [$cd52] + ld c, a + ld l, a + ld a, [$cd53] + ld b, a + ld h, a + ret +; 17f524 + +Function17f524: ; 17f524 + push hl + push bc + push de + ld a, [$cd42] + dec a + ld b, a + ld a, [$cd2e] + cp b + jr z, .asm_17f53a + ld hl, $cd68 + cp [hl] +.asm_17f536 + pop de + pop bc + pop hl + ret + +.asm_17f53a + scf + jr .asm_17f536 +; 17f53d + +Function17f53d: ; 17f53d + call FadeToMenu + xor a + ld [$c303], a + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + call Function17f555 + pop af + ld [rSVBK], a + call Function2b4d + ret +; 17f555 + +Function17f555: ; 17f555 +.asm_17f555 + call Functiona57 + call Function17f5ae + ld a, [$c303] + bit 7, a + jr nz, .asm_17f56a + callba Function104000 + jr .asm_17f555 + +.asm_17f56a + call Function17f56e + ret +; 17f56e + +Function17f56e: ; 17f56e + ld a, [$c300] + cp $22 + jr z, .asm_17f597 + cp $31 + jr z, .asm_17f58a + cp $33 + ret nz + ld a, [$c301] + cp $1 + ret nz + ld a, [$c302] + cp $2 + ret nz + jr .asm_17f5a1 + +.asm_17f58a + ld a, [$c301] + cp $3 + ret nz + ld a, [$c302] + and a + ret nz + jr .asm_17f5a1 + +.asm_17f597 + ld a, [$c301] + and a + ret nz + ld a, [$c302] + and a + ret nz + +.asm_17f5a1 + ld a, $5 + call GetSRAMBank + xor a + ld [$aa4b], a + call CloseSRAM + ret +; 17f5ae + +Function17f5ae: ; 17f5ae + ld a, [$c303] + ld e, a + ld d, 0 + ld hl, Table17f5bd + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 17f5bd + +Table17f5bd: ; 17f5bd + dw Function17f5c3 + dw Function17ff23 + dw Function17f5d2 +; 17f5c3 + +Function17f5c3: ; 17f5c3 + call Function17f5e4 + callba Function2b5c + ld a, $1 + ld [$c303], a + ret +; 17f5d2 + +Function17f5d2: ; 17f5d2 + call Function17f5e4 + callba Function104000 + call Function32f9 + ld a, $1 + ld [$c303], a + ret +; 17f5e4 + +Function17f5e4: ; 17f5e4 + ld a, $8 + ld [MusicFade], a + ld de, MUSIC_NONE + ld a, e + ld [MusicFadeIDLo], a + ld a, d + ld [MusicFadeIDHi], a + ld a, " " + ld hl, TileMap + ld bc, $0168 + call ByteFill + ld a, $6 + ld hl, AttrMap + ld bc, $0168 + call ByteFill + ld hl, $c4b6 + ld b, $1 + ld c, $e + call Function3eea + ld hl, $c4f1 + ld b, $c + ld c, $10 + call Function3eea + ld hl, $c4cb + ld de, $76dc + call PlaceString + call Function17ff3c + jr nc, .asm_17f632 + ld hl, $c4d3 + call Function17f6b7 + +.asm_17f632 + ld a, [$c300] + cp $d0 + jr nc, .asm_17f684 + cp $10 + jr c, .asm_17f679 + sub $10 + cp $24 + jr nc, .asm_17f679 + ld e, a + ld d, $0 + ld hl, $7706 + add hl, de + add hl, de + ld a, [$c301] + ld e, a + ld a, [$c302] + ld d, a + ld a, [hli] + ld c, a + ld a, [hl] + ld h, a + ld l, c + ld a, [hli] + and a + jr z, .asm_17f679 + ld c, a +.asm_17f65d + ld a, [hli] + ld b, a + ld a, [hli] + cp $ff + jr nz, .asm_17f667 + cp b + jr z, .asm_17f66e + +.asm_17f667 + xor d + jr nz, .asm_17f674 + ld a, b + xor e + jr nz, .asm_17f674 + +.asm_17f66e + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + jr .asm_17f67d + +.asm_17f674 + inc hl + inc hl + dec c + jr nz, .asm_17f65d + +.asm_17f679 + ld a, $d9 + jr .asm_17f684 + +.asm_17f67d + ld hl, $c51a + call PlaceString + ret + +.asm_17f684 + sub $d0 + ld e, a + ld d, $0 + ld hl, $7699 + add hl, de + add hl, de + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + ld hl, $c51a + call PlaceString + ret +; 17f699 + +INCBIN "baserom.gbc", $17f699, $17f6b7 - $17f699 + +Function17f6b7: ; 17f6b7 + ld a, [$c300] + call Function17f6cd + inc hl + ld a, [$c302] + and $f + call Function17f6d8 + ld a, [$c301] + call Function17f6cd + ret +; 17f6cd + +Function17f6cd: ; 17f6cd + ld c, a + and $f0 + swap a + call Function17f6d8 + ld a, c + and $f + +Function17f6d8: ; 17f6d8 + add $f6 + ld [hli], a + ret +; 17f6dc + +INCBIN "baserom.gbc", $17f6dc, $17ff23 - $17f6dc + +Function17ff23: ; 17ff23 + ld a, [hJoyPressed] + and a + ret z + ld a, $8 + ld [MusicFade], a + ld a, [CurMusic] + ld [MusicFadeIDLo], a + xor a + ld [MusicFadeIDHi], a + ld hl, $c303 + set 7, [hl] + ret +; 17ff3c + +Function17ff3c: ; 17ff3c + nop + ld a, [$c300] + cp $d0 + ret c + ld hl, $c4d2 + ld de, $7f68 + call PlaceString + ld a, [$c300] + push af + sub $d0 + inc a + ld [$c300], a + ld hl, $c4d6 + ld de, $c300 + ld bc, $8103 + call PrintNum + pop af + ld [$c300], a + and a + ret +; 17ff68 + +INCBIN "baserom.gbc", $17ff68, $17ff6c - $17ff68 SECTION "bank60",ROMX,BANK[$60] @@ -72388,7 +86686,7 @@ RegionCheck: ; 0x1caea1 SECTION "bank73",ROMX,BANK[$73] - ; Pokedex entries III +; Pokedex entries III ; 129-192 PokedexEntries3: INCLUDE "stats/pokedex/entries_3.asm" @@ -72414,28 +86712,281 @@ UnownFont: ; 1dc000 INCBIN "gfx/misc/unown_font.2bpp" ; 1dc1b0 -INCBIN "baserom.gbc", $1dc1b0, $1dc5a1 - $1dc1b0 +INCBIN "baserom.gbc", $1dc1b0, $1dc381 - $1dc1b0 + +Function1dc381: ; 1dc381 + call WhiteBGMap + call ClearTileMap + call ClearSprites + xor a + ld [hBGMapMode], a + call Functione58 + ld de, $4591 + ld hl, $9710 + ld bc, $7701 + call Request1bpp + ld de, $4599 + ld hl, $96e0 + ld bc, $7701 + call Request1bpp + ld de, $4a90 + ld hl, $93f0 + ld bc, $3e01 + call Get2bpp + xor a + ld [MonType], a + callba Function5084a + ld hl, $c52c + ld b, $9 + ld c, $12 + call TextBox + ld hl, $c4d0 + ld a, [TempMonLevel] + call Function383d + ld hl, $c4d4 + ld [hl], $71 + inc hl + ld de, TempMonMaxHP + ld bc, $0203 + call PrintNum + ld a, [CurPartySpecies] + ld [$d265], a + ld [CurSpecies], a + ld hl, PartyMon1Nickname + call Function1dc50e + ld hl, $c4f8 + call PlaceString + ld hl, $c521 + ld [hl], $f3 + call GetPokemonName + ld hl, $c522 + call PlaceString + ld hl, $c4a8 + ld [hl], $74 + inc hl + ld [hl], $e8 + inc hl + ld de, $d265 + ld bc, $8103 + call PrintNum + ld hl, $c555 + ld de, $4550 + call PlaceString + ld hl, PartyMon1OT + call Function1dc50e + ld hl, $c558 + call PlaceString + ld hl, $c57d + ld de, $4559 + call PlaceString + ld hl, $c580 + ld de, TempMonID + ld bc, $8205 + call PrintNum + ld hl, $c5b9 + ld de, $4554 + call PlaceString + ld hl, $c5bf + ld a, [TempMonMove1] + call Function1dc51a + call Function1dc52c + ld hl, TempMonDVs + ld a, $2d + call Predef + ld hl, $c2c6 + xor a + ld [hl], a + ld a, [CurPartySpecies] + cp $c9 + jr z, .asm_1dc469 + inc [hl] + +.asm_1dc469 + ld hl, TileMap + call Function378b + call WaitBGMap + ld b, $3 + call GetSGBLayout + call Function32f9 + ret +; 1dc47b + +Function1dc47b: ; 1dc47b + call WhiteBGMap + call ClearTileMap + call ClearSprites + xor a + ld [hBGMapMode], a + call Functione58 + xor a + ld [MonType], a + callba Function5084a + ld hl, TileMap + ld b, $f + ld c, $12 + call TextBox + ld bc, $0014 + ld de, TileMap + ld hl, $c4b4 + call CopyBytes + ld hl, $c4a7 + ld a, [TempMonMove2] + call Function1dc51a + ld hl, $c4cf + ld a, [TempMonMove3] + call Function1dc51a + ld hl, $c4f7 + ld a, [TempMonMove4] + call Function1dc51a + ld hl, $c533 + ld de, $455d + call PlaceString + ld hl, $c53c + ld de, TempMonAtk + call Function1dc507 + ld hl, $c564 + ld de, TempMonDef + call Function1dc507 + ld hl, $c58c + ld de, TempMonSpclAtk + call Function1dc507 + ld hl, $c5b4 + ld de, TempMonSpclDef + call Function1dc507 + ld hl, $c5dc + ld de, TempMonSpd + call Function1dc507 + call WaitBGMap + ld b, $3 + call GetSGBLayout + call Function32f9 + ret +; 1dc507 + +Function1dc507: ; 1dc507 + ld bc, $0203 + call PrintNum + ret +; 1dc50e + +Function1dc50e: ; 1dc50e + ld bc, $000b + ld a, [CurPartyMon] + call AddNTimes + ld e, l + ld d, h + ret +; 1dc51a + +Function1dc51a: ; 1dc51a + and a + jr z, .asm_1dc525 + ld [$d265], a + call GetMoveName + jr .asm_1dc528 + +.asm_1dc525 + ld de, $4584 -Tileset26GFX: ; 0x1dc5a1 -Tileset32GFX: ; 0x1dc5a1 -Tileset33GFX: ; 0x1dc5a1 -Tileset34GFX: ; 0x1dc5a1 -Tileset35GFX: ; 0x1dc5a1 -Tileset36GFX: ; 0x1dc5a1 -INCBIN "gfx/tilesets/36.lz" -; 0x1dd1a8 +.asm_1dc528 + call PlaceString + ret +; 1dc52c + +Function1dc52c: ; 1dc52c + callba GetGender + ld a, $7f + jr c, .asm_1dc53c + ld a, $ef + jr nz, .asm_1dc53c + ld a, $f5 - db $00 +.asm_1dc53c + ld hl, $c4d9 + ld [hl], a + ld bc, TempMonDVs + callba CheckShininess + ret nc + ld hl, $c4da + ld [hl], $3f + ret +; 1dc550 + +INCBIN "baserom.gbc", $1dc550, $1dc5a1 - $1dc550 + +INCLUDE "tilesets/data_7.asm" + +INCBIN "baserom.gbc", $1dd6a9, $1dd702 - $1dd6a9 + +Function1dd702: ; 1dd702 + call Function1dd709 + call Functiona80 + ret +; 1dd709 + +Function1dd709: ; 1dd709 + call WhiteBGMap + call ClearTileMap + call ClearSprites + call DisableLCD + ld hl, $5805 + ld de, VTiles2 + call Decompress + ld hl, $5c4b + ld de, TileMap + ld bc, $0168 + call CopyBytes + ld de, $5760 + ld hl, $c506 + call PlaceString + ld de, $5767 + ld hl, $c513 + call PlaceString + ld de, PlayerName + ld hl, $c50d + call PlaceString + ld de, $5768 + ld hl, $c542 + call PlaceString + call EnableLCD + call WaitBGMap + ld b, $8 + call GetSGBLayout + call Function32f9 + call DelayFrame + ret +; 1dd760 -Tileset26Meta: ; 0x1dd1a9 -INCBIN "tilesets/26_metatiles.bin" -; 0x1dd5a9 +INCBIN "baserom.gbc", $1dd760, $1dd7ae - $1dd760 -Tileset26Coll: ; 0x1dd5a9 -INCBIN "tilesets/26_collision.bin" -; 0x1dd6a9 +Function1dd7ae: ; 1dd7ae + ld hl, TileMap + ld bc, $0168 + ld a, $7f + call ByteFill + ld hl, $5db3 + ld de, TileMap + ld bc, $0168 + call CopyBytes + ld de, $57fa + ld hl, $c4a8 + call PlaceString + ld de, $57f0 + ld hl, $c5cf + call PlaceString + ld hl, $c5d8 + ld de, GameTimeHours + ld bc, $0204 + call PrintNum + ld [hl], $67 + inc hl + ld de, GameTimeMinutes + ld bc, $8102 + call PrintNum + ret +; 1dd7f0 -INCBIN "baserom.gbc", $1dd6a9, $1ddf1c - $1dd6a9 +INCBIN "baserom.gbc", $1dd7f0, $1ddf1c - $1dd7f0 Function1ddf1c: ; 1ddf1c @@ -72529,7 +87080,7 @@ Function1de299: ; 1de299 DudeAutoInput_A: ; 1de29f db NO_INPUT, $50 - db BUTTON_A, $00 + db A_BUTTON, $00 db NO_INPUT, $ff ; end ; 1de2a5 @@ -72537,7 +87088,7 @@ DudeAutoInput_RightA: ; 1de2a5 db NO_INPUT, $08 db D_RIGHT, $00 db NO_INPUT, $08 - db BUTTON_A, $00 + db A_BUTTON, $00 db NO_INPUT, $ff ; end ; 1de2af @@ -72551,12 +87102,33 @@ DudeAutoInput_DownA: ; 1de2af db NO_INPUT, $fe db NO_INPUT, $fe db NO_INPUT, $fe - db BUTTON_A, $00 + db A_BUTTON, $00 db NO_INPUT, $ff ; end ; 1de2c5 -INCBIN "baserom.gbc", $1de2c5, $1de2e4 - $1de2c5 +Function1de2c5: ; 1de2c5 + ld hl, StringBuffer1 +.asm_1de2c8 + ld a, [hl] + cp $50 + jr z, .asm_1de2da + cp $25 + jr z, .asm_1de2d8 + cp $1f + jr z, .asm_1de2d8 + inc hl + jr .asm_1de2c8 + +.asm_1de2d8 + ld [hl], $22 + +.asm_1de2da + ld de, StringBuffer1 + ld hl, $c4a9 + call PlaceString + ret +; 1de2e4 PokegearGFX: ; 1de2e4 INCBIN "gfx/misc/pokegear.lz" @@ -72588,26 +87160,90 @@ Function1de5c8: ; 1de5c8 ret ; 1de5e6 -INCBIN "baserom.gbc", $1de5e6, $1df238 - $1de5e6 +INCBIN "baserom.gbc", $1de5e6, $1df1e6 - $1de5e6 + +Function1df1e6: ; 1df1e6 + ld b, $21 + ld h, d + ld l, e +.asm_1df1ea + ld a, [hl] + cp $dc + jr nz, .asm_1df1f3 + ld a, $d4 + jr .asm_1df1fd + +.asm_1df1f3 + sub $d4 + jr c, .asm_1df1fe + cp $3 + jr nc, .asm_1df1fe + add $cd +.asm_1df1fd + ld [hl], a -SECTION "bank78",ROMX,BANK[$78] +.asm_1df1fe + inc hl + dec b + jr nz, .asm_1df1ea + ret +; 1df203 + +Function1df203: ; 1df203 + ld b, $21 + ld h, d + ld l, e +.asm_1df207 + ld a, [hl] + cp $d4 + jr nz, .asm_1df210 + ld a, $dc + jr .asm_1df21a -Tileset33Meta: ; 0x1e0000 -INCBIN "tilesets/33_metatiles.bin" -; 0x1e0400 +.asm_1df210 + sub $cd + jr c, .asm_1df21b + cp $3 + jr nc, .asm_1df21b + add $d4 -Tileset34Meta: ; 0x1e0400 -INCBIN "tilesets/34_metatiles.bin" -; 0x1e0800 +.asm_1df21a + ld [hl], a -Tileset35Meta: ; 0x1e0800 -INCBIN "tilesets/35_metatiles.bin" -; 0x1e0c00 +.asm_1df21b + inc hl + dec b + jr nz, .asm_1df207 + ret +; 1df220 + +Function1df220: ; 1df220 + ld b, $21 + ld h, d + ld l, e +.asm_1df224 + ld a, [hl] + and $f0 + cp $d0 + jr nz, .asm_1df233 + ld a, [hl] + add $8 + and $f + or $d0 + ld [hl], a + +.asm_1df233 + inc hl + dec b + jr nz, .asm_1df224 + ret +; 1df238 + + +SECTION "bank78",ROMX,BANK[$78] -Tileset36Meta: ; 0x1e0c00 -INCBIN "tilesets/36_metatiles.bin" -; 0x1e1000 +INCLUDE "tilesets/data_8.asm" SECTION "bank79",ROMX,BANK[$79] diff --git a/maps/AzaleaGym.asm b/maps/AzaleaGym.asm index 73bb27e3c..dc30fa5be 100644 --- a/maps/AzaleaGym.asm +++ b/maps/AzaleaGym.asm @@ -9,7 +9,7 @@ AzaleaGym_MapScriptHeader: ; 0x18ec1c BugsyScript_0x18ec1e: ; 0x18ec1e faceplayer loadfont - checkbit1 $04be + checkbit1 EVENT_BEAT_BUGSY iftrue UnknownScript_0x18ec48 2writetext UnknownText_0x18ed0b closetext @@ -18,7 +18,7 @@ BugsyScript_0x18ec1e: ; 0x18ec1e loadtrainer BUGSY, 1 startbattle returnafterbattle - setbit1 $04be + setbit1 EVENT_BEAT_BUGSY loadfont 2writetext UnknownText_0x18ee14 playsound $009c @@ -27,17 +27,17 @@ BugsyScript_0x18ec1e: ; 0x18ec1e checkcode $7 2call UnknownScript_0x18ec73 UnknownScript_0x18ec48: ; 0x18ec48 - checkbit1 $0009 + checkbit1 EVENT_GOT_TM49_FURY_CUTTER iftrue UnknownScript_0x18ec6d - setbit1 $0464 - setbit1 $053c - setbit1 $053d - setbit1 $053e + setbit1 EVENT_BEAT_TWINS_AMY_AND_MAY + setbit1 EVENT_BEAT_BUG_CATCHER_BENNY + setbit1 EVENT_BEAT_BUG_CATCHER_AL + setbit1 EVENT_BEAT_BUG_CATCHER_JOSH 2writetext UnknownText_0x18ee2b keeptextopen verbosegiveitem TM_49, 1 iffalse UnknownScript_0x18ec71 - setbit1 $0009 + setbit1 EVENT_GOT_TM49_FURY_CUTTER 2writetext UnknownText_0x18eefa closetext loadmovesprites @@ -213,7 +213,7 @@ Bug_catcherJoshScript: ; 0x18ecde AzaleaGymGuyScript: ; 0x18ece6 faceplayer - checkbit1 $04be + checkbit1 EVENT_BEAT_BUGSY iftrue .AzaleaGymGuyWinScript loadfont 2writetext AzaleaGymGuyText diff --git a/maps/AzaleaTown.asm b/maps/AzaleaTown.asm index 04eda0034..96c7ce25c 100644 --- a/maps/AzaleaTown.asm +++ b/maps/AzaleaTown.asm @@ -59,9 +59,9 @@ UnknownScript_0x198049: ; 0x198049 closetext loadmovesprites setbit1 $06bf - checkbit1 $001c + checkbit1 EVENT_GOT_TOTODILE_FROM_ELM iftrue UnknownScript_0x198071 - checkbit1 $001d + checkbit1 EVENT_GOT_CHIKORITA_FROM_ELM iftrue UnknownScript_0x198081 winlosstext UnknownText_0x1981e6, UnknownText_0x19835b setlasttalked $b @@ -119,7 +119,7 @@ AzaleaRocketScript_0x1980ae: ; 0x1980ae GrampsScript_0x1980b1: ; 0x1980b1 faceplayer loadfont - checkbit1 $002b + checkbit1 EVENT_CLEARED_SLOWPOKE_WELL iftrue UnknownScript_0x1980bf 2writetext UnknownText_0x19841b closetext diff --git a/maps/BillsHouse.asm b/maps/BillsHouse.asm index a1647dcfe..af1495f73 100644 --- a/maps/BillsHouse.asm +++ b/maps/BillsHouse.asm @@ -11,23 +11,23 @@ GrampsScript_0x189538: ; 0x189538 loadfont checkbit1 $0000 iftrue UnknownScript_0x1896ba - checkbit1 $0324 + checkbit1 EVENT_GOT_THUNDERSTONE_FROM_BILLS_GRANDPA iftrue UnknownScript_0x1896c0 - checkbit1 $031a + checkbit1 EVENT_MET_BILLS_GRANDPA iftrue UnknownScript_0x189553 2writetext UnknownText_0x1896ce keeptextopen - setbit1 $031a + setbit1 EVENT_MET_BILLS_GRANDPA UnknownScript_0x189553: ; 0x189553 - checkbit1 $031f + checkbit1 EVENT_SHOWED_PICHU_TO_BILLS_GRANDPA iftrue UnknownScript_0x189697 - checkbit1 $031e + checkbit1 EVENT_SHOWED_GROWLITHE_VULPIX_TO_BILLS_GRANDPA iftrue UnknownScript_0x189680 - checkbit1 $031d + checkbit1 EVENT_SHOWED_STARYU_TO_BILLS_GRANDPA iftrue UnknownScript_0x189669 - checkbit1 $031c + checkbit1 EVENT_SHOWED_ODDISH_TO_BILLS_GRANDPA iftrue UnknownScript_0x189652 - checkbit1 $031b + checkbit1 EVENT_SHOWED_LICKITUNG_TO_BILLS_GRANDPA iftrue UnknownScript_0x18963b 2writetext UnknownText_0x1898c0 keeptextopen @@ -39,7 +39,7 @@ UnknownScript_0x189553: ; 0x189553 iffalse UnknownScript_0x1896aa if_not_equal LICKITUNG, UnknownScript_0x1896c6 2call UnknownScript_0x1896b0 - setbit1 $031b + setbit1 EVENT_SHOWED_LICKITUNG_TO_BILLS_GRANDPA 2jump UnknownScript_0x18963b ; 0x189592 @@ -54,7 +54,7 @@ UnknownScript_0x189592: ; 0x189592 iffalse UnknownScript_0x1896aa if_not_equal ODDISH, UnknownScript_0x1896c6 2call UnknownScript_0x1896b0 - setbit1 $031c + setbit1 EVENT_SHOWED_ODDISH_TO_BILLS_GRANDPA 2jump UnknownScript_0x189652 ; 0x1895b3 @@ -69,7 +69,7 @@ UnknownScript_0x1895b3: ; 0x1895b3 iffalse UnknownScript_0x1896aa if_not_equal STARYU, UnknownScript_0x1896c6 2call UnknownScript_0x1896b0 - setbit1 $031d + setbit1 EVENT_SHOWED_STARYU_TO_BILLS_GRANDPA 2jump UnknownScript_0x189669 ; 0x1895d4 @@ -86,7 +86,7 @@ UnknownScript_0x1895d4: ; 0x1895d4 iffalse UnknownScript_0x1896aa if_not_equal GROWLITHE, UnknownScript_0x1896c6 2call UnknownScript_0x1896b0 - setbit1 $031e + setbit1 EVENT_SHOWED_GROWLITHE_VULPIX_TO_BILLS_GRANDPA 2jump UnknownScript_0x189680 ; 0x1895f9 @@ -101,7 +101,7 @@ UnknownScript_0x1895f9: ; 0x1895f9 iffalse UnknownScript_0x1896aa if_not_equal VULPIX, UnknownScript_0x1896c6 2call UnknownScript_0x1896b0 - setbit1 $031e + setbit1 EVENT_SHOWED_GROWLITHE_VULPIX_TO_BILLS_GRANDPA 2jump UnknownScript_0x189680 ; 0x18961a @@ -116,53 +116,53 @@ UnknownScript_0x18961a: ; 0x18961a iffalse UnknownScript_0x1896aa if_not_equal PICHU, UnknownScript_0x1896c6 2call UnknownScript_0x1896b0 - setbit1 $031f + setbit1 EVENT_SHOWED_PICHU_TO_BILLS_GRANDPA 2jump UnknownScript_0x189697 ; 0x18963b UnknownScript_0x18963b: ; 0x18963b - checkbit1 $0320 + checkbit1 EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA iftrue UnknownScript_0x189592 2call UnknownScript_0x1896b5 verbosegiveitem EVERSTONE, 1 iffalse UnknownScript_0x1896cc - setbit1 $0320 + setbit1 EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA setbit1 $0000 loadmovesprites end ; 0x189652 UnknownScript_0x189652: ; 0x189652 - checkbit1 $0321 + checkbit1 EVENT_GOT_LEAF_STONE_FROM_BILLS_GRANDPA iftrue UnknownScript_0x1895b3 2call UnknownScript_0x1896b5 verbosegiveitem LEAF_STONE, 1 iffalse UnknownScript_0x1896cc - setbit1 $0321 + setbit1 EVENT_GOT_LEAF_STONE_FROM_BILLS_GRANDPA setbit1 $0000 loadmovesprites end ; 0x189669 UnknownScript_0x189669: ; 0x189669 - checkbit1 $0322 + checkbit1 EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA iftrue UnknownScript_0x1895d4 2call UnknownScript_0x1896b5 verbosegiveitem WATER_STONE, 1 iffalse UnknownScript_0x1896cc - setbit1 $0322 + setbit1 EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA setbit1 $0000 loadmovesprites end ; 0x189680 UnknownScript_0x189680: ; 0x189680 - checkbit1 $0323 + checkbit1 EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA iftrue UnknownScript_0x18961a 2call UnknownScript_0x1896b5 verbosegiveitem FIRE_STONE, 1 iffalse UnknownScript_0x1896cc - setbit1 $0323 + setbit1 EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA setbit1 $0000 loadmovesprites end @@ -172,7 +172,7 @@ UnknownScript_0x189697: ; 0x189697 2call UnknownScript_0x1896b5 verbosegiveitem THUNDERSTONE, 1 iffalse UnknownScript_0x1896cc - setbit1 $0324 + setbit1 EVENT_GOT_THUNDERSTONE_FROM_BILLS_GRANDPA loadmovesprites end ; 0x1896a5 diff --git a/maps/BlackthornCity.asm b/maps/BlackthornCity.asm index a366aed77..6b60c56fc 100644 --- a/maps/BlackthornCity.asm +++ b/maps/BlackthornCity.asm @@ -32,9 +32,9 @@ UnknownScript_0x1a46e5: ; 0x1a46e5 SuperNerdScript_0x1a46e8: ; 0x1a46e8 faceplayer loadfont - checkbit1 $04c4 + checkbit1 EVENT_BEAT_CLAIR iftrue UnknownScript_0x1a4702 - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x1a46fc 2writetext UnknownText_0x1a477a closetext @@ -67,7 +67,7 @@ GrampsScript_0x1a470b: ; 0x1a470b BlackBeltScript_0x1a470e: ; 0x1a470e faceplayer loadfont - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x1a471c 2writetext UnknownText_0x1a494a closetext @@ -97,21 +97,21 @@ CooltrainerFScript_0x1a4728: ; 0x1a4728 YoungsterScript_0x1a472b: ; 0x1a472b faceplayer loadfont - checkbit1 $006d + checkbit1 EVENT_GOT_SPELL_TAG_FROM_SANTOS iftrue UnknownScript_0x1a4759 checkcode $b if_not_equal SATURDAY, UnknownScript_0x1a475f - checkbit1 $006c + checkbit1 EVENT_MET_SANTOS_OF_SATURDAY iftrue UnknownScript_0x1a4746 2writetext UnknownText_0x1a4a27 keeptextopen - setbit1 $006c + setbit1 EVENT_MET_SANTOS_OF_SATURDAY UnknownScript_0x1a4746: ; 0x1a4746 2writetext UnknownText_0x1a4a57 keeptextopen verbosegiveitem SPELL_TAG, 1 iffalse UnknownScript_0x1a475d - setbit1 $006d + setbit1 EVENT_GOT_SPELL_TAG_FROM_SANTOS 2writetext UnknownText_0x1a4a6b closetext loadmovesprites diff --git a/maps/BlackthornGym1F.asm b/maps/BlackthornGym1F.asm index bcda61cf6..d86dde1bd 100644 --- a/maps/BlackthornGym1F.asm +++ b/maps/BlackthornGym1F.asm @@ -31,7 +31,7 @@ ClairScript_0x194e24: ; 0x194e24 loadfont checkbit2 $0022 iftrue UnknownScript_0x194e69 - checkbit1 $04c4 + checkbit1 EVENT_BEAT_CLAIR iftrue UnknownScript_0x194e63 2writetext UnknownText_0x194efa closetext @@ -40,16 +40,16 @@ ClairScript_0x194e24: ; 0x194e24 loadtrainer CLAIR, 1 startbattle returnafterbattle - setbit1 $04c4 + setbit1 EVENT_BEAT_CLAIR loadfont 2writetext UnknownText_0x19500e closetext loadmovesprites - setbit1 $054a - setbit1 $054b - setbit1 $054c - setbit1 $055d - setbit1 $055e + setbit1 EVENT_BEAT_COOLTRAINERM_PAUL + setbit1 EVENT_BEAT_COOLTRAINERM_CODY + setbit1 EVENT_BEAT_COOLTRAINERM_MIKE + setbit1 EVENT_BEAT_COOLTRAINERF_FRAN + setbit1 EVENT_BEAT_COOLTRAINERF_LOLA clearbit1 $0736 setbit1 $074c clearbit1 $074d @@ -64,7 +64,7 @@ UnknownScript_0x194e63: ; 0x194e63 ; 0x194e69 UnknownScript_0x194e69: ; 0x194e69 - checkbit1 $000f + checkbit1 EVENT_GOT_TM24_DRAGONBREATH iftrue UnknownScript_0x194e94 2writetext UnknownText_0x195196 keeptextopen @@ -75,7 +75,7 @@ UnknownScript_0x194e69: ; 0x194e69 playsound $0001 waitbutton itemnotify - setbit1 $000f + setbit1 EVENT_GOT_TM24_DRAGONBREATH 2writetext UnknownText_0x1951d1 keeptextopen 2jump UnknownScript_0x194e94 @@ -185,7 +185,7 @@ CooltrainerfLolaScript: ; 0x194ece BlackthornGymGuyScript: ; 0x194ed6 faceplayer loadfont - checkbit1 $04c4 + checkbit1 EVENT_BEAT_CLAIR iftrue .BlackthornGymGuyWinScript 2writetext BlackthornGymGuyText closetext diff --git a/maps/BrunosRoom.asm b/maps/BrunosRoom.asm index 9669b1090..261799f2d 100644 --- a/maps/BrunosRoom.asm +++ b/maps/BrunosRoom.asm @@ -24,11 +24,11 @@ UnknownScript_0x180997: ; 0x180997 ; 0x180998 UnknownScript_0x180998: ; 0x180998 - checkbit1 $030d + checkbit1 EVENT_KOGAS_ROOM_ENTRANCE_CLOSED iffalse UnknownScript_0x1809a2 changeblock $4, $e, $2a UnknownScript_0x1809a2: ; 0x1809a2 - checkbit1 $030e + checkbit1 EVENT_BRUNOS_ROOM_EXIT_OPEN iffalse UnknownScript_0x1809ac changeblock $4, $2, $16 UnknownScript_0x1809ac: ; 0x1809ac @@ -44,7 +44,7 @@ UnknownScript_0x1809ad: ; 0x1809ad reloadmappart loadmovesprites dotrigger $1 - setbit1 $030d + setbit1 EVENT_KOGAS_ROOM_ENTRANCE_CLOSED waitbutton end ; 0x1809c5 @@ -70,7 +70,7 @@ BrunoScript_0x1809c5: ; 0x1809c5 changeblock $4, $2, $16 reloadmappart loadmovesprites - setbit1 $030e + setbit1 EVENT_BRUNOS_ROOM_EXIT_OPEN waitbutton end ; 0x1809f3 diff --git a/maps/BurnedTower1F.asm b/maps/BurnedTower1F.asm index b15ead9d8..7d85aa5af 100644 --- a/maps/BurnedTower1F.asm +++ b/maps/BurnedTower1F.asm @@ -33,7 +33,7 @@ UnknownScript_0x185bf8: ; 0x185bf8 iftrue UnknownScript_0x185c02 changeblock $a, $8, $32 UnknownScript_0x185c02: ; 0x185c02 - checkbit1 $007b + checkbit1 EVENT_RELEASED_THE_BEASTS iftrue UnknownScript_0x185c0c changeblock $6, $e, $9 UnknownScript_0x185c0c: ; 0x185c0c @@ -66,9 +66,9 @@ UnknownScript_0x185c25: ; 0x185c25 2writetext UnknownText_0x185cd9 closetext loadmovesprites - checkbit1 $001c + checkbit1 EVENT_GOT_TOTODILE_FROM_ELM iftrue UnknownScript_0x185c60 - checkbit1 $001d + checkbit1 EVENT_GOT_CHIKORITA_FROM_ELM iftrue UnknownScript_0x185c70 winlosstext UnknownText_0x185d9b, UnknownText_0x185e2c setlasttalked $4 diff --git a/maps/BurnedTowerB1F.asm b/maps/BurnedTowerB1F.asm index 9788884da..54645c58f 100644 --- a/maps/BurnedTowerB1F.asm +++ b/maps/BurnedTowerB1F.asm @@ -23,7 +23,7 @@ UnknownScript_0x18615f: ; 0x18615f ; 0x186160 UnknownScript_0x186160: ; 0x186160 - checkbit1 $007b + checkbit1 EVENT_RELEASED_THE_BEASTS iftrue UnknownScript_0x18616a changeblock $6, $e, $2 UnknownScript_0x18616a: ; 0x18616a @@ -80,11 +80,11 @@ UnknownScript_0x18616b: ; 0x18616b waitbutton special $003d dotrigger $1 - setbit1 $007b + setbit1 EVENT_RELEASED_THE_BEASTS special $0069 domaptrigger GROUP_ECRUTEAK_GYM, MAP_ECRUTEAK_GYM, $1 domaptrigger GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, $1 - clearbit1 $07ae + clearbit1 EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY setbit1 $07a8 clearbit1 $07a9 setbit1 $0764 diff --git a/maps/CeladonCafe.asm b/maps/CeladonCafe.asm index fa44d4a09..19beea7f3 100644 --- a/maps/CeladonCafe.asm +++ b/maps/CeladonCafe.asm @@ -92,7 +92,7 @@ MapCeladonCafeSignpost0Script: ; 0x730ad ; 0x730b0 MapCeladonCafeSignpost1Script: ; 0x730b0 - checkbit1 $00f9 + checkbit1 EVENT_FOUND_LEFTOVERS_IN_CELADON_CAFE iftrue UnknownScript_0x730db giveitem LEFTOVERS, $1 iffalse UnknownScript_0x730cd @@ -103,7 +103,7 @@ MapCeladonCafeSignpost1Script: ; 0x730b0 waitbutton itemnotify loadmovesprites - setbit1 $00f9 + setbit1 EVENT_FOUND_LEFTOVERS_IN_CELADON_CAFE end ; 0x730cd diff --git a/maps/CeladonGameCorner.asm b/maps/CeladonGameCorner.asm index 12d01a398..8d5927f83 100644 --- a/maps/CeladonGameCorner.asm +++ b/maps/CeladonGameCorner.asm @@ -47,7 +47,7 @@ FishingGuruScript_0x72139: ; 0x72139 FisherScript_0x72144: ; 0x72144 faceplayer loadfont - checkbit1 $00ce + checkbit1 EVENT_GOT_COINS_FROM_GAMBLER_AT_CELADON iftrue .UnknownScript_0x72169 2writetext UnknownText_0x722dc keeptextopen @@ -58,7 +58,7 @@ FisherScript_0x72144: ; 0x72144 stringtotext .coinname, $1 2call .UnknownScript_0x72172 givecoins 18 - setbit1 $00ce + setbit1 EVENT_GOT_COINS_FROM_GAMBLER_AT_CELADON .UnknownScript_0x72169 ; 0x72169 2writetext UnknownText_0x72345 closetext diff --git a/maps/CeladonGym.asm b/maps/CeladonGym.asm index 20fffeacf..1a2abe435 100644 --- a/maps/CeladonGym.asm +++ b/maps/CeladonGym.asm @@ -19,23 +19,23 @@ ErikaScript_0x72a6a: ; 0x72a6a startbattle returnafterbattle setbit1 $04c8 - setbit1 $051d - setbit1 $0490 - setbit1 $04ba - setbit1 $0468 + setbit1 EVENT_BEAT_LASS_MICHELLE + setbit1 EVENT_BEAT_PICNICKER_TANYA + setbit1 EVENT_BEAT_BEAUTY_JULIA + setbit1 EVENT_BEAT_TWINS_JO_AND_ZOE loadfont 2writetext UnknownText_0x72c96 playsound $009c waitbutton setbit2 $0026 UnknownScript_0x72a9b: ; 0x72a9b - checkbit1 $00dc + checkbit1 EVENT_GOT_TM19_GIGA_DRAIN iftrue UnknownScript_0x72aae 2writetext UnknownText_0x72cb0 keeptextopen verbosegiveitem TM_19, 1 iffalse UnknownScript_0x72aae - setbit1 $00dc + setbit1 EVENT_GOT_TM19_GIGA_DRAIN UnknownScript_0x72aae: ; 0x72aae 2writetext UnknownText_0x72d8f closetext diff --git a/maps/CeladonMansion3F.asm b/maps/CeladonMansion3F.asm index 359ce3d4b..012f05e51 100644 --- a/maps/CeladonMansion3F.asm +++ b/maps/CeladonMansion3F.asm @@ -28,14 +28,14 @@ UnknownScript_0x7167e: ; 0x7167e 2writetext UnknownText_0x71763 closetext loadmovesprites - setbit1 $00d6 + setbit1 EVENT_ENABLE_DIPLOMA_PRINTING end ; 0x71696 GymGuyScript_0x71696: ; 0x71696 faceplayer loadfont - checkbit1 $00d6 + checkbit1 EVENT_ENABLE_DIPLOMA_PRINTING iftrue UnknownScript_0x716a4 2writetext UnknownText_0x717b4 closetext diff --git a/maps/CeladonMansionRoofHouse.asm b/maps/CeladonMansionRoofHouse.asm index 49bdbd44c..a79e9a3bb 100644 --- a/maps/CeladonMansionRoofHouse.asm +++ b/maps/CeladonMansionRoofHouse.asm @@ -9,7 +9,7 @@ CeladonMansionRoofHouse_MapScriptHeader: ; 0x71afb PharmacistScript_0x71afd: ; 0x71afd faceplayer loadfont - checkbit1 $00da + checkbit1 EVENT_GOT_TM03_CURSE iftrue UnknownScript_0x71b21 2writetext UnknownText_0x71b27 keeptextopen @@ -26,7 +26,7 @@ UnknownScript_0x71b14: ; 0x71b14 keeptextopen verbosegiveitem TM_03, 1 iffalse UnknownScript_0x71b25 - setbit1 $00da + setbit1 EVENT_GOT_TM03_CURSE UnknownScript_0x71b21: ; 0x71b21 2writetext UnknownText_0x71db3 closetext diff --git a/maps/CeruleanCity.asm b/maps/CeruleanCity.asm index 86a934390..b3d4dede2 100644 --- a/maps/CeruleanCity.asm +++ b/maps/CeruleanCity.asm @@ -18,7 +18,7 @@ UnknownScript_0x184005: ; 0x184005 CooltrainerMScript_0x184009: ; 0x184009 faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x184017 2writetext UnknownText_0x1840bc closetext @@ -72,9 +72,9 @@ CooltrainerFScript_0x18402a: ; 0x18402a FisherScript_0x18404a: ; 0x18404a faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x184058 - checkbit1 $00cb + checkbit1 EVENT_MET_ROCKET_GRUNT_AT_CERULEAN_GYM iftrue UnknownScript_0x18405e UnknownScript_0x184058: ; 0x184058 2writetext UnknownText_0x18424e diff --git a/maps/CeruleanGym.asm b/maps/CeruleanGym.asm index 907c75f98..319944032 100644 --- a/maps/CeruleanGym.asm +++ b/maps/CeruleanGym.asm @@ -42,7 +42,7 @@ UnknownScript_0x1883de: ; 0x1883de applymovement $2, MovementData_0x1884e8 playsound $0023 disappear $2 - setbit1 $00cb + setbit1 EVENT_MET_ROCKET_GRUNT_AT_CERULEAN_GYM clearbit1 $076c clearbit1 $076e dotrigger $0 @@ -68,10 +68,10 @@ MistyScript_0x188432: ; 0x188432 loadtrainer MISTY, 1 startbattle returnafterbattle - setbit1 $04c6 - setbit1 $03f9 - setbit1 $03fa - setbit1 $05a8 + setbit1 EVENT_BEAT_MISTY + setbit1 EVENT_BEAT_SWIMMERF_DIANA + setbit1 EVENT_BEAT_SWIMMERF_BRIANA + setbit1 EVENT_BEAT_SWIMMERM_PARKER loadfont 2writetext UnknownText_0x188768 playsound $009c @@ -174,7 +174,7 @@ SwimmermParkerScript: ; 0x18849a CeruleanGymGuyScript: ; 0x1884a2 faceplayer loadfont - checkbit1 $04c6 + checkbit1 EVENT_BEAT_MISTY iftrue .CeruleanGymGuyWinScript 2writetext CeruleanGymGuyText closetext diff --git a/maps/CharcoalKiln.asm b/maps/CharcoalKiln.asm index fa98ab51d..ef8f92b2a 100644 --- a/maps/CharcoalKiln.asm +++ b/maps/CharcoalKiln.asm @@ -9,9 +9,9 @@ CharcoalKiln_MapScriptHeader: ; 0x18dd18 BlackBeltScript_0x18dd1a: ; 0x18dd1a faceplayer loadfont - checkbit1 $0010 + checkbit1 EVENT_GOT_HM01_CUT iftrue UnknownScript_0x18dd34 - checkbit1 $002b + checkbit1 EVENT_CLEARED_SLOWPOKE_WELL iftrue UnknownScript_0x18dd2e 2writetext UnknownText_0x18dd74 closetext @@ -36,9 +36,9 @@ UnknownScript_0x18dd34: ; 0x18dd34 YoungsterScript_0x18dd3a: ; 0x18dd3a faceplayer loadfont - checkbit1 $005e + checkbit1 EVENT_GOT_CHARCOAL_IN_CHARCOAL_KILN iftrue UnknownScript_0x18dd5d - checkbit1 $0010 + checkbit1 EVENT_GOT_HM01_CUT iftrue UnknownScript_0x18dd4e 2writetext UnknownText_0x18dee0 closetext @@ -51,7 +51,7 @@ UnknownScript_0x18dd4e: ; 0x18dd4e keeptextopen verbosegiveitem CHARCOAL, 1 iffalse UnknownScript_0x18dd61 - setbit1 $005e + setbit1 EVENT_GOT_CHARCOAL_IN_CHARCOAL_KILN loadmovesprites end ; 0x18dd5d diff --git a/maps/CherrygroveCity.asm b/maps/CherrygroveCity.asm index 2e31ffec3..884ca2eae 100644 --- a/maps/CherrygroveCity.asm +++ b/maps/CherrygroveCity.asm @@ -87,7 +87,7 @@ UnknownScript_0x19c01f: ; 0x19c01f applymovement $2, MovementData_0x19c1cb playsound $001f disappear $2 - clearbit1 $06ff + clearbit1 EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE waitbutton end @@ -123,9 +123,9 @@ UnknownScript_0x19c0ae: ; 0x19c0ae 2writetext UnknownText_0x19c4e2 closetext loadmovesprites - checkbit1 $001c + checkbit1 EVENT_GOT_TOTODILE_FROM_ELM iftrue UnknownScript_0x19c0ee - checkbit1 $001d + checkbit1 EVENT_GOT_CHIKORITA_FROM_ELM iftrue UnknownScript_0x19c104 winlosstext UnknownText_0x19c57f, UnknownText_0x19c5e6 setlasttalked $3 @@ -228,13 +228,13 @@ UnknownScript_0x19c168: ; 0x19c168 FisherScript_0x19c16e: ; 0x19c16e faceplayer loadfont - checkbit1 $004d + checkbit1 EVENT_GOT_MYSTIC_WATER_IN_CHERRYGROVE iftrue UnknownScript_0x19c183 2writetext UnknownText_0x19c766 keeptextopen verbosegiveitem MYSTIC_WATER, 1 iffalse UnknownScript_0x19c187 - setbit1 $004d + setbit1 EVENT_GOT_MYSTIC_WATER_IN_CHERRYGROVE UnknownScript_0x19c183: ; 0x19c183 2writetext UnknownText_0x19c7c1 closetext diff --git a/maps/CherrygroveMart.asm b/maps/CherrygroveMart.asm index 03c8f821c..441dacd51 100644 --- a/maps/CherrygroveMart.asm +++ b/maps/CherrygroveMart.asm @@ -8,7 +8,7 @@ CherrygroveMart_MapScriptHeader: ; 0x196808 ClerkScript_0x19680a: ; 0x19680a loadfont - checkbit1 $001f + checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM iftrue UnknownScript_0x196817 pokemart $0, $0000 loadmovesprites @@ -24,7 +24,7 @@ UnknownScript_0x196817: ; 0x196817 CooltrainerMScript_0x19681d: ; 0x19681d faceplayer loadfont - checkbit1 $001f + checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM iftrue UnknownScript_0x19682b 2writetext UnknownText_0x196834 closetext diff --git a/maps/CherrygrovePokeCenter1F.asm b/maps/CherrygrovePokeCenter1F.asm index dd3704143..368d5a146 100644 --- a/maps/CherrygrovePokeCenter1F.asm +++ b/maps/CherrygrovePokeCenter1F.asm @@ -21,7 +21,7 @@ GentlemanScript_0x196973: ; 0x196973 TeacherScript_0x196976: ; 0x196976 faceplayer loadfont - checkbit1 $001f + checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM iftrue UnknownScript_0x196984 2writetext UnknownText_0x1969f1 closetext diff --git a/maps/CianwoodCity.asm b/maps/CianwoodCity.asm index 9662b256d..527be1bf1 100644 --- a/maps/CianwoodCity.asm +++ b/maps/CianwoodCity.asm @@ -45,7 +45,7 @@ UnknownScript_0x1a001e: ; 0x1a001e disappear $d pause 10 dotrigger $0 - clearbit1 $07af + clearbit1 EVENT_SAW_SUICUNE_ON_ROUTE_42 domaptrigger GROUP_ROUTE_42, MAP_ROUTE_42, $1 checkbit1 $0333 iftrue UnknownScript_0x1a0083 @@ -81,11 +81,11 @@ UnknownScript_0x1a0083: ; 0x1a0083 PokefanFScript_0x1a0084: ; 0x1a0084 faceplayer loadfont - checkbit1 $0011 + checkbit1 EVENT_GOT_HM02_FLY iftrue UnknownScript_0x1a00ad 2writetext UnknownText_0x1a00f1 keeptextopen - checkbit1 $04c2 + checkbit1 EVENT_BEAT_CHUCK iftrue UnknownScript_0x1a009c 2writetext UnknownText_0x1a0163 closetext @@ -98,7 +98,7 @@ UnknownScript_0x1a009c: ; 0x1a009c keeptextopen verbosegiveitem HM_02, 1 iffalse UnknownScript_0x1a00b1 - setbit1 $0011 + setbit1 EVENT_GOT_HM02_FLY 2writetext UnknownText_0x1a021d keeptextopen UnknownScript_0x1a00ad: ; 0x1a00ad diff --git a/maps/CianwoodGym.asm b/maps/CianwoodGym.asm index 78e86e053..5b34e53b1 100644 --- a/maps/CianwoodGym.asm +++ b/maps/CianwoodGym.asm @@ -9,7 +9,7 @@ CianwoodGym_MapScriptHeader: ; 0x9d60d ChuckScript_0x9d60f: ; 0x9d60f faceplayer loadfont - checkbit1 $04c2 + checkbit1 EVENT_BEAT_CHUCK iftrue UnknownScript_0x9d656 2writetext UnknownText_0x9d6f9 closetext @@ -33,7 +33,7 @@ ChuckScript_0x9d60f: ; 0x9d60f loadtrainer CHUCK, 1 startbattle returnafterbattle - setbit1 $04c2 + setbit1 EVENT_BEAT_CHUCK loadfont 2writetext UnknownText_0x9d835 playsound $009c @@ -42,17 +42,17 @@ ChuckScript_0x9d60f: ; 0x9d60f checkcode $7 2call UnknownScript_0x9d681 UnknownScript_0x9d656: ; 0x9d656 - checkbit1 $000a + checkbit1 EVENT_GOT_TM01_DYNAMICPUNCH iftrue UnknownScript_0x9d67b - setbit1 $04a5 - setbit1 $04a7 - setbit1 $04a8 - setbit1 $04aa + setbit1 EVENT_BEAT_BLACKBELT_YOSHI + setbit1 EVENT_BEAT_BLACKBELT_LAO + setbit1 EVENT_BEAT_BLACKBELT_NOB + setbit1 EVENT_BEAT_BLACKBELT_LUNG 2writetext UnknownText_0x9d84d keeptextopen verbosegiveitem TM_01, 1 iffalse UnknownScript_0x9d67f - setbit1 $000a + setbit1 EVENT_GOT_TM01_DYNAMICPUNCH 2writetext UnknownText_0x9d8da closetext loadmovesprites diff --git a/maps/CianwoodPharmacy.asm b/maps/CianwoodPharmacy.asm index 674ea5931..4f8bb2a49 100644 --- a/maps/CianwoodPharmacy.asm +++ b/maps/CianwoodPharmacy.asm @@ -16,7 +16,7 @@ UnknownScript_0x9df9d: ; 0x9df9d PharmacistScript_0x9df9e: ; 0x9df9e faceplayer loadfont - checkbit1 $0023 + checkbit1 EVENT_GOT_SECRETPOTION_FROM_PHARMACY iftrue UnknownScript_0x9dfc4 checkbit1 $0037 iffalse UnknownScript_0x9dfc4 @@ -27,7 +27,7 @@ PharmacistScript_0x9df9e: ; 0x9df9e playsound $0091 waitbutton itemnotify - setbit1 $0023 + setbit1 EVENT_GOT_SECRETPOTION_FROM_PHARMACY 2writetext UnknownText_0x9e070 closetext loadmovesprites diff --git a/maps/CianwoodPokeCenter1F.asm b/maps/CianwoodPokeCenter1F.asm index a8f3ff202..54cd87573 100644 --- a/maps/CianwoodPokeCenter1F.asm +++ b/maps/CianwoodPokeCenter1F.asm @@ -16,7 +16,7 @@ LassScript_0x9dbd2: ; 0x9dbd2 CianwoodGymGuyScript: ; 0x9dbd5 faceplayer - checkbit1 $04c2 + checkbit1 EVENT_BEAT_CHUCK iftrue .CianwoodGymGuyWinScript loadfont 2writetext CianwoodGymGuyText diff --git a/maps/CopycatsHouse1F.asm b/maps/CopycatsHouse1F.asm index 07b90ec65..89f2835e7 100644 --- a/maps/CopycatsHouse1F.asm +++ b/maps/CopycatsHouse1F.asm @@ -13,7 +13,7 @@ PokefanMScript_0x18ad13: ; 0x18ad13 PokefanFScript_0x18ad16: ; 0x18ad16 faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x18ad24 2writetext UnknownText_0x18ad95 closetext diff --git a/maps/CopycatsHouse2F.asm b/maps/CopycatsHouse2F.asm index 6a63af393..eb85b9e77 100644 --- a/maps/CopycatsHouse2F.asm +++ b/maps/CopycatsHouse2F.asm @@ -27,9 +27,9 @@ UnknownScript_0x18aeb0: ; 0x18aeb0 CopycatScript_0x18aeb1: ; 0x18aeb1 faceplayer - checkbit1 $00d1 + checkbit1 EVENT_GOT_PASS_FROM_COPYCAT iftrue UnknownScript_0x18af6f - checkbit1 $00d0 + checkbit1 EVENT_RETURNED_LOST_ITEM_TO_COPYCAT iftrue UnknownScript_0x18af5b checkitem LOST_ITEM iftrue UnknownScript_0x18af4a @@ -47,7 +47,7 @@ UnknownScript_0x18aed4: ; 0x18aed4 variablesprite $b, $60 UnknownScript_0x18aedc: ; 0x18aedc special $005e - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x18af16 loadfont checkbit2 $0063 @@ -109,7 +109,7 @@ UnknownScript_0x18af39: ; 0x18af39 2writetext UnknownText_0x18b116 closetext loadmovesprites - setbit1 $00cf + setbit1 EVENT_MET_COPYCAT_FOUND_OUT_ABOUT_LOST_ITEM end ; 0x18af4a @@ -118,7 +118,7 @@ UnknownScript_0x18af4a: ; 0x18af4a 2writetext UnknownText_0x18b17f keeptextopen takeitem LOST_ITEM, 1 - setbit1 $00d0 + setbit1 EVENT_RETURNED_LOST_ITEM_TO_COPYCAT clearbit1 $0773 2jump UnknownScript_0x18af5c ; 0x18af5b @@ -130,7 +130,7 @@ UnknownScript_0x18af5c: ; 0x18af5c keeptextopen verbosegiveitem PASS, 1 iffalse UnknownScript_0x18afba - setbit1 $00d1 + setbit1 EVENT_GOT_PASS_FROM_COPYCAT 2writetext UnknownText_0x18b214 closetext loadmovesprites diff --git a/maps/DanceTheatre.asm b/maps/DanceTheatre.asm index d99010d75..3f4f2656b 100644 --- a/maps/DanceTheatre.asm +++ b/maps/DanceTheatre.asm @@ -156,17 +156,17 @@ GentlemanScript_0x994c6: ; 0x994c6 loadfont 2writetext UnknownText_0x9980a keeptextopen - checkbit1 $0012 + checkbit1 EVENT_GOT_HM03_SURF iftrue UnknownScript_0x99515 - checkbit1 $04df + checkbit1 EVENT_BEAT_KIMONO_GIRL_NAOKO iffalse UnknownScript_0x994f3 - checkbit1 $04e0 + checkbit1 EVENT_BEAT_KIMONO_GIRL_SAYO iffalse UnknownScript_0x994f3 - checkbit1 $04e1 + checkbit1 EVENT_BEAT_KIMONO_GIRL_ZUKI iffalse UnknownScript_0x994f3 - checkbit1 $04e2 + checkbit1 EVENT_BEAT_KIMONO_GIRL_KUNI iffalse UnknownScript_0x994f3 - checkbit1 $04e3 + checkbit1 EVENT_BEAT_KIMONO_GIRL_MIKI iffalse UnknownScript_0x994f3 2jump UnknownScript_0x99505 ; 0x994f3 @@ -191,7 +191,7 @@ UnknownScript_0x99505: ; 0x99505 2writetext UnknownText_0x9991a keeptextopen verbosegiveitem HM_03, 1 - setbit1 $0012 + setbit1 EVENT_GOT_HM03_SURF 2writetext UnknownText_0x9999b closetext loadmovesprites diff --git a/maps/DarkCaveBlackthornEntrance.asm b/maps/DarkCaveBlackthornEntrance.asm index 04357d05d..cc87b799a 100644 --- a/maps/DarkCaveBlackthornEntrance.asm +++ b/maps/DarkCaveBlackthornEntrance.asm @@ -9,13 +9,13 @@ DarkCaveBlackthornEntrance_MapScriptHeader: ; 0x18c71e PharmacistScript_0x18c720: ; 0x18c720 faceplayer loadfont - checkbit1 $0072 + checkbit1 EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE iftrue UnknownScript_0x18c735 2writetext UnknownText_0x18c73f keeptextopen verbosegiveitem BLACKGLASSES, 1 iffalse UnknownScript_0x18c739 - setbit1 $0072 + setbit1 EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE UnknownScript_0x18c735: ; 0x18c735 2writetext UnknownText_0x18c80c closetext diff --git a/maps/DayCare.asm b/maps/DayCare.asm index a3799b9fe..2c05823e4 100644 --- a/maps/DayCare.asm +++ b/maps/DayCare.asm @@ -27,7 +27,7 @@ UnknownScript_0x62f88: ; 0x62f88 GrampsScript_0x62f8f: ; 0x62f8f faceplayer loadfont - checkbit1 $033e + checkbit1 EVENT_GOT_ODD_EGG iftrue UnknownScript_0x62fbd 2writetext UnknownText_0x630ce keeptextopen @@ -42,7 +42,7 @@ GrampsScript_0x62f8f: ; 0x62f8f 2writetext UnknownText_0x631c3 closetext loadmovesprites - setbit1 $033e + setbit1 EVENT_GOT_ODD_EGG end ; 0x62fb6 diff --git a/maps/DragonShrine.asm b/maps/DragonShrine.asm index f2bdbc4ce..28ef72a6d 100644 --- a/maps/DragonShrine.asm +++ b/maps/DragonShrine.asm @@ -201,7 +201,7 @@ ElderScript_0x18d1a5: ; 0x18d1a5 iftrue UnknownScript_0x18d1ff checkbit1 $00bd iffalse UnknownScript_0x18d1c5 - checkbit1 $0319 + checkbit1 EVENT_BEAT_RIVAL_IN_MT_MOON iftrue UnknownScript_0x18d1f3 2writetext UnknownText_0x18d724 closetext diff --git a/maps/DragonsDenB1F.asm b/maps/DragonsDenB1F.asm index 8319b8b02..44e852f01 100644 --- a/maps/DragonsDenB1F.asm +++ b/maps/DragonsDenB1F.asm @@ -23,7 +23,7 @@ UnknownScript_0x18c89e: ; 0x18c89e ; 0x18c89f UnknownScript_0x18c89f: ; 0x18c89f - checkbit1 $0319 + checkbit1 EVENT_BEAT_RIVAL_IN_MT_MOON iftrue UnknownScript_0x18c8a8 disappear $4 return @@ -62,7 +62,7 @@ UnknownScript_0x18c8b8: ; 0x18c8b8 playsound $0001 waitbutton itemnotify - setbit1 $000f + setbit1 EVENT_GOT_TM24_DRAGONBREATH 2writetext UnknownText_0x18ca0d keeptextopen 2writetext UnknownText_0x18caf1 diff --git a/maps/EcruteakCity.asm b/maps/EcruteakCity.asm index ec560c2c3..62318f36e 100644 --- a/maps/EcruteakCity.asm +++ b/maps/EcruteakCity.asm @@ -34,7 +34,7 @@ LassScript_0x1a4012: ; 0x1a4012 LassScript_0x1a4015: ; 0x1a4015 faceplayer loadfont - checkbit1 $007b + checkbit1 EVENT_RELEASED_THE_BEASTS iftrue UnknownScript_0x1a4023 2writetext UnknownText_0x1a421a closetext @@ -52,7 +52,7 @@ UnknownScript_0x1a4023: ; 0x1a4023 FisherScript_0x1a4029: ; 0x1a4029 faceplayer loadfont - checkbit1 $0020 + checkbit1 EVENT_JASMINE_RETURNED_TO_GYM iftrue UnknownScript_0x1a4037 2writetext UnknownText_0x1a42ac closetext diff --git a/maps/EcruteakGym.asm b/maps/EcruteakGym.asm index cd3db22f0..b6e49ac57 100644 --- a/maps/EcruteakGym.asm +++ b/maps/EcruteakGym.asm @@ -22,7 +22,7 @@ UnknownScript_0x99d57: ; 0x99d57 MortyScript_0x99d58: ; 0x99d58 faceplayer loadfont - checkbit1 $04c0 + checkbit1 EVENT_BEAT_MORTY iftrue UnknownScript_0x99d8c 2writetext UnknownText_0x99e65 closetext @@ -31,7 +31,7 @@ MortyScript_0x99d58: ; 0x99d58 loadtrainer MORTY, 1 startbattle returnafterbattle - setbit1 $04c0 + setbit1 EVENT_BEAT_MORTY loadfont 2writetext UnknownText_0x9a043 playsound $009c @@ -43,17 +43,17 @@ MortyScript_0x99d58: ; 0x99d58 setbit1 $0766 setbit1 $0767 UnknownScript_0x99d8c: ; 0x99d8c - checkbit1 $000c + checkbit1 EVENT_GOT_TM30_SHADOW_BALL iftrue UnknownScript_0x99db1 - setbit1 $0415 - setbit1 $0416 - setbit1 $058b - setbit1 $058c + setbit1 EVENT_BEAT_SAGE_JEFFREY + setbit1 EVENT_BEAT_SAGE_PING + setbit1 EVENT_BEAT_MEDIUM_MARTHA + setbit1 EVENT_BEAT_MEDIUM_GRACE 2writetext UnknownText_0x9a059 keeptextopen verbosegiveitem TM_30, 1 iffalse UnknownScript_0x99db5 - setbit1 $000c + setbit1 EVENT_GOT_TM30_SHADOW_BALL 2writetext UnknownText_0x9a0ec closetext loadmovesprites @@ -218,7 +218,7 @@ MediumGraceScript: ; 0x99e31 EcruteakGymGuyScript: ; 0x99e39 faceplayer loadfont - checkbit1 $04c0 + checkbit1 EVENT_BEAT_MORTY iftrue .EcruteakGymGuyWinScript 2writetext EcruteakGymGuyText closetext diff --git a/maps/EcruteakHouse.asm b/maps/EcruteakHouse.asm index b67c8fa9e..0356d9dc8 100644 --- a/maps/EcruteakHouse.asm +++ b/maps/EcruteakHouse.asm @@ -23,11 +23,11 @@ UnknownScript_0x9800e: ; 0x9800e ; 0x9800f UnknownScript_0x9800f: ; 0x9800f - checkbit1 $0335 + checkbit1 EVENT_FOUGHT_SUICUNE iftrue UnknownScript_0x98033 - checkbit1 $0334 + checkbit1 EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER iftrue UnknownScript_0x98033 - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x98022 return ; 0x98022 @@ -77,7 +77,7 @@ UnknownScript_0x98061: ; 0x98061 SageScript_0x98062: ; 0x98062 faceplayer loadfont - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x9807c checkbit2 $001e iftrue UnknownScript_0x98076 @@ -95,7 +95,7 @@ UnknownScript_0x98076: ; 0x98076 ; 0x9807c UnknownScript_0x9807c: ; 0x9807c - checkbit1 $0334 + checkbit1 EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER iftrue UnknownScript_0x980a4 checkbit1 $0000 iftrue UnknownScript_0x980aa @@ -135,7 +135,7 @@ UnknownScript_0x980aa: ; 0x980aa SageScript_0x980b0: ; 0x980b0 faceplayer loadfont - checkbit1 $0078 + checkbit1 EVENT_GOT_CLEAR_BELL iftrue UnknownScript_0x980be 2writetext UnknownText_0x9840b closetext diff --git a/maps/EcruteakItemfinderHouse.asm b/maps/EcruteakItemfinderHouse.asm index b3b192323..b340e9fd4 100644 --- a/maps/EcruteakItemfinderHouse.asm +++ b/maps/EcruteakItemfinderHouse.asm @@ -9,7 +9,7 @@ EcruteakItemfinderHouse_MapScriptHeader: ; 0x9a5f9 CooltrainerMScript_0x9a5fb: ; 0x9a5fb faceplayer loadfont - checkbit1 $005a + checkbit1 EVENT_GOT_ITEMFINDER iftrue UnknownScript_0x9a614 2writetext UnknownText_0x9a63c yesorno @@ -17,7 +17,7 @@ CooltrainerMScript_0x9a5fb: ; 0x9a5fb 2writetext UnknownText_0x9a6b5 keeptextopen verbosegiveitem ITEMFINDER, 1 - setbit1 $005a + setbit1 EVENT_GOT_ITEMFINDER UnknownScript_0x9a614: ; 0x9a614 2writetext UnknownText_0x9a70e closetext diff --git a/maps/ElmsLab.asm b/maps/ElmsLab.asm index f94e297c5..d567846ff 100644 --- a/maps/ElmsLab.asm +++ b/maps/ElmsLab.asm @@ -98,21 +98,21 @@ UnknownScript_0x78ba5: ; 0x78ba5 ProfElmScript: ; 0x78be0 faceplayer loadfont - checkbit1 $0024 + checkbit1 EVENT_GOT_SS_TICKET_FROM_ELM iftrue UnknownScript_0x78bee checkbit1 $0044 iftrue ElmGiveTicketScript UnknownScript_0x78bee: ; 0x78bee - checkbit1 $007c + checkbit1 EVENT_GOT_MASTER_BALL_FROM_ELM iftrue UnknownScript_0x78bfa checkbit2 $0022 iftrue ElmGiveMasterBallScript UnknownScript_0x78bfa: ; 0x78bfa - checkbit1 $0056 + checkbit1 EVENT_GOT_EVERSTONE_FROM_ELM iftrue UnknownScript_0x78e16 - checkbit1 $0055 + checkbit1 EVENT_SHOWED_TOGEPI_TO_ELM iftrue UnknownScript_0x78e03 - checkbit1 $0077 + checkbit1 EVENT_TOLD_ELM_ABOUT_TOGEPI_OVER_THE_PHONE iffalse UnknownScript_0x78c35 writebyte TOGEPI special $0043 @@ -137,20 +137,20 @@ UnknownScript_0x78c22: ; 0x78c22 ; 0x78c35 UnknownScript_0x78c35: ; 0x78c35 - checkbit1 $002d + checkbit1 EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE iffalse UnknownScript_0x78c41 - checkbit1 $0054 + checkbit1 EVENT_TOGEPI_HATCHED iftrue UnknownScript_0x78c22 UnknownScript_0x78c41: ; 0x78c41 - checkbit1 $002d ; why are we checking it again? + checkbit1 EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE ; why are we checking it again? iftrue ElmWaitingEggHatchScript checkbit2 $001b iftrue ElmAideHasEggScript - checkbit1 $001f + checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM iftrue ElmStudyingEggScript - checkbit1 $001e + checkbit1 EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON iftrue ElmAfterTheftScript - checkbit1 $001a + checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM iftrue ElmDescribesMrPokemonScript 2writetext UnknownText_0x79375 closetext @@ -169,7 +169,7 @@ LabTryToLeaveScript: ; 0x78c65 ; 0x78c73 CyndaquilPokeBallScript: ; 0x78c73 - checkbit1 $001a + checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM iftrue LookAtElmPokeBallScript spriteface $2, $0 refreshscreen $0 @@ -182,7 +182,7 @@ CyndaquilPokeBallScript: ; 0x78c73 yesorno iffalse DidntChooseStarterScript disappear $4 - setbit1 $001b + setbit1 EVENT_GOT_CYNDAQUIL_FROM_ELM 2writetext ChoseStarterText keeptextopen waitbutton @@ -200,7 +200,7 @@ CyndaquilPokeBallScript: ; 0x78c73 ; 0x78cb5 TotodilePokeBallScript: ; 0x78cb5 - checkbit1 $001a + checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM iftrue LookAtElmPokeBallScript spriteface $2, $0 refreshscreen $0 @@ -213,7 +213,7 @@ TotodilePokeBallScript: ; 0x78cb5 yesorno iffalse DidntChooseStarterScript disappear $5 - setbit1 $001c + setbit1 EVENT_GOT_TOTODILE_FROM_ELM 2writetext ChoseStarterText keeptextopen waitbutton @@ -229,7 +229,7 @@ TotodilePokeBallScript: ; 0x78cb5 ; 0x78cf1 ChikoritaPokeBallScript: ; 0x78cf1 - checkbit1 $001a + checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM iftrue LookAtElmPokeBallScript spriteface $2, $0 refreshscreen $0 @@ -242,7 +242,7 @@ ChikoritaPokeBallScript: ; 0x78cf1 yesorno iffalse DidntChooseStarterScript disappear $6 - setbit1 $001d + setbit1 EVENT_GOT_CHIKORITA_FROM_ELM 2writetext ChoseStarterText keeptextopen waitbutton @@ -287,7 +287,7 @@ ElmDirectionsScript: ; 0x78d33 2writetext ElmDirectionsText3 closetext loadmovesprites - setbit1 $001a + setbit1 EVENT_GOT_A_POKEMON_FROM_ELM setbit1 $06be dotrigger $5 domaptrigger GROUP_NEW_BARK_TOWN, MAP_NEW_BARK_TOWN, $1 @@ -311,7 +311,7 @@ LookAtElmPokeBallScript: ; 0x78d6d MapElmsLabSignpost0Script: ; 0x78d74 loadfont - checkbit1 $001a + checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM iftrue UnknownScript_0x78d81 2writetext UnknownText_0x79690 closetext @@ -361,7 +361,7 @@ ElmAfterTheftScript: ; 0x78da2 keeptextopen 2writetext ElmAfterTheftText5 keeptextopen - setbit1 $001f + setbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM setbit2 $0010 domaptrigger GROUP_ROUTE_29, MAP_ROUTE_29, $1 clearbit1 $0715 @@ -399,7 +399,7 @@ ShowElmTogepiScript: ; 0x78dee closetext loadmovesprites showemote $0, $2, 15 - setbit1 $0055 + setbit1 EVENT_SHOWED_TOGEPI_TO_ELM loadfont 2writetext ShowElmTogepiText2 keeptextopen @@ -413,7 +413,7 @@ UnknownScript_0x78e03: ; 0x78e03 2writetext ElmGiveEverstoneText2 closetext loadmovesprites - setbit1 $0056 + setbit1 EVENT_GOT_EVERSTONE_FROM_ELM end ; 0x78e16 @@ -430,7 +430,7 @@ ElmGiveMasterBallScript: ; 0x78e1c keeptextopen verbosegiveitem MASTER_BALL, 1 iffalse .notdone - setbit1 $007c + setbit1 EVENT_GOT_MASTER_BALL_FROM_ELM 2writetext ElmGiveMasterBallText2 closetext .notdone @@ -442,7 +442,7 @@ ElmGiveTicketScript: ; 0x78e2f 2writetext ElmGiveTicketText1 keeptextopen verbosegiveitem S_S_TICKET, 1 - setbit1 $0024 + setbit1 EVENT_GOT_SS_TICKET_FROM_ELM 2writetext ElmGiveTicketText2 closetext loadmovesprites @@ -560,11 +560,11 @@ UnknownScript_0x78ee2: ; 0x78ee2 ElmsAideScript: ; 0x78ee6 faceplayer loadfont - checkbit1 $002d + checkbit1 EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE iftrue UnknownScript_0x78f0c - checkbit1 $001f + checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM iftrue UnknownScript_0x78f06 - checkbit1 $001e + checkbit1 EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON iftrue UnknownScript_0x78f00 2writetext UnknownText_0x79f65 closetext @@ -617,7 +617,7 @@ MapElmsLabSignpost14Script: ; 0x78f33 loadfont checkbit2 $0043 iftrue UnknownScript_0x78f49 - checkbit1 $0043 + checkbit1 EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON iftrue UnknownScript_0x78f43 2jump UnknownScript_0x78f49 ; 0x78f43 diff --git a/maps/FastShipCabins.asm b/maps/FastShipCabins.asm index 4e3ef010b..7eaf4f1de 100644 --- a/maps/FastShipCabins.asm +++ b/maps/FastShipCabins.asm @@ -80,7 +80,7 @@ UnknownScript_0x75f09: ; 0x75f09 GentlemanScript_0x75f1f: ; 0x75f1f faceplayer loadfont - checkbit1 $0071 + checkbit1 EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA iftrue UnknownScript_0x75f67 checkbit1 $0732 iftrue UnknownScript_0x75f58 @@ -96,7 +96,7 @@ UnknownScript_0x75f37: ; 0x75f37 keeptextopen verbosegiveitem METAL_COAT, 1 iffalse UnknownScript_0x75f44 - setbit1 $0071 + setbit1 EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA UnknownScript_0x75f44: ; 0x75f44 loadmovesprites waitbutton @@ -116,7 +116,7 @@ UnknownScript_0x75f58: ; 0x75f58 keeptextopen verbosegiveitem METAL_COAT, 1 iffalse UnknownScript_0x75f65 - setbit1 $0071 + setbit1 EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA UnknownScript_0x75f65: ; 0x75f65 loadmovesprites end diff --git a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm index 4e3ef010b..7eaf4f1de 100644 --- a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm +++ b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm @@ -80,7 +80,7 @@ UnknownScript_0x75f09: ; 0x75f09 GentlemanScript_0x75f1f: ; 0x75f1f faceplayer loadfont - checkbit1 $0071 + checkbit1 EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA iftrue UnknownScript_0x75f67 checkbit1 $0732 iftrue UnknownScript_0x75f58 @@ -96,7 +96,7 @@ UnknownScript_0x75f37: ; 0x75f37 keeptextopen verbosegiveitem METAL_COAT, 1 iffalse UnknownScript_0x75f44 - setbit1 $0071 + setbit1 EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA UnknownScript_0x75f44: ; 0x75f44 loadmovesprites waitbutton @@ -116,7 +116,7 @@ UnknownScript_0x75f58: ; 0x75f58 keeptextopen verbosegiveitem METAL_COAT, 1 iffalse UnknownScript_0x75f65 - setbit1 $0071 + setbit1 EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA UnknownScript_0x75f65: ; 0x75f65 loadmovesprites end diff --git a/maps/FuchsiaGym.asm b/maps/FuchsiaGym.asm index 4364525fe..e7bd0f9cf 100644 --- a/maps/FuchsiaGym.asm +++ b/maps/FuchsiaGym.asm @@ -19,7 +19,7 @@ JanineScript_0x195db9: ; 0x195db9 loadtrainer JANINE, 1 startbattle returnafterbattle - setbit1 $04c9 + setbit1 EVENT_BEAT_JANINE setbit1 $0517 setbit1 $051a setbit1 $0482 @@ -41,13 +41,13 @@ UnknownScript_0x195e00: ; 0x195e00 faceplayer loadfont UnknownScript_0x195e02: ; 0x195e02 - checkbit1 $00dd + checkbit1 EVENT_GOT_TM06_TOXIC iftrue UnknownScript_0x195e15 2writetext UnknownText_0x196002 keeptextopen verbosegiveitem TM_06, 1 iffalse UnknownScript_0x195e15 - setbit1 $00dd + setbit1 EVENT_GOT_TM06_TOXIC UnknownScript_0x195e15: ; 0x195e15 2writetext UnknownText_0x196074 closetext @@ -206,7 +206,7 @@ UnknownScript_0x195efd: ; 0x195efd FuchsiaGymGuyScript: ; 0x195f03 faceplayer loadfont - checkbit1 $04c9 + checkbit1 EVENT_BEAT_JANINE iftrue .FuchsiaGymGuyWinScript 2writetext FuchsiaGymGuyText closetext diff --git a/maps/GoldenrodBikeShop.asm b/maps/GoldenrodBikeShop.asm index e31454948..f45d769b5 100644 --- a/maps/GoldenrodBikeShop.asm +++ b/maps/GoldenrodBikeShop.asm @@ -13,7 +13,7 @@ UnknownScript_0x5474f: ; 0x5474f ClerkScript_0x54750: ; 0x54750 faceplayer loadfont - checkbit1 $005b + checkbit1 EVENT_GOT_BICYCLE iftrue UnknownScript_0x54775 2writetext UnknownText_0x54787 yesorno @@ -27,7 +27,7 @@ ClerkScript_0x54750: ; 0x54750 waitbutton itemnotify setbit2 $0014 - setbit1 $005b + setbit1 EVENT_GOT_BICYCLE UnknownScript_0x54775: ; 0x54775 2writetext UnknownText_0x5485f closetext diff --git a/maps/GoldenrodBillsHouse.asm b/maps/GoldenrodBillsHouse.asm index 2c938011f..955721ea0 100644 --- a/maps/GoldenrodBillsHouse.asm +++ b/maps/GoldenrodBillsHouse.asm @@ -9,7 +9,7 @@ GoldenrodBillsHouse_MapScriptHeader: ; 0x54be2 BillScript_0x54be4: ; 0x54be4 faceplayer loadfont - checkbit1 $004f + checkbit1 EVENT_GOT_EEVEE iftrue UnknownScript_0x54c1f 2writetext UnknownText_0x54c74 yesorno @@ -23,7 +23,7 @@ BillScript_0x54be4: ; 0x54be4 playsound $0002 waitbutton givepoke EEVEE, 20, 0, 0 - setbit1 $004f + setbit1 EVENT_GOT_EEVEE 2writetext UnknownText_0x54dc1 closetext loadmovesprites diff --git a/maps/GoldenrodCity.asm b/maps/GoldenrodCity.asm index d0eecc9e3..0644c1cb2 100644 --- a/maps/GoldenrodCity.asm +++ b/maps/GoldenrodCity.asm @@ -174,7 +174,7 @@ YoungsterScript_0x1989e6: ; 0x1989e6 CooltrainerFScript_0x1989e9: ; 0x1989e9 faceplayer loadfont - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x1989f7 2writetext UnknownText_0x198ae6 closetext diff --git a/maps/GoldenrodDeptStore5F.asm b/maps/GoldenrodDeptStore5F.asm index ed991d26e..3558f5d28 100644 --- a/maps/GoldenrodDeptStore5F.asm +++ b/maps/GoldenrodDeptStore5F.asm @@ -25,15 +25,15 @@ UnknownScript_0x56099: ; 0x56099 ClerkScript_0x5609c: ; 0x5609c faceplayer loadfont - checkbit1 $005f + checkbit1 EVENT_GOT_TM02_HEADBUTT iftrue UnknownScript_0x560ad - checkbit1 $004b + checkbit1 EVENT_GOT_TM08_ROCK_SMASH iftrue UnknownScript_0x560c2 2jump UnknownScript_0x560b6 ; 0x560ad UnknownScript_0x560ad: ; 0x560ad - checkbit1 $004b + checkbit1 EVENT_GOT_TM08_ROCK_SMASH iftrue UnknownScript_0x560c8 2jump UnknownScript_0x560bc ; 0x560b6 diff --git a/maps/GoldenrodFlowerShop.asm b/maps/GoldenrodFlowerShop.asm index 51153e393..a4282f5cd 100644 --- a/maps/GoldenrodFlowerShop.asm +++ b/maps/GoldenrodFlowerShop.asm @@ -7,9 +7,9 @@ GoldenrodFlowerShop_MapScriptHeader: ; 0x5535b ; 0x5535d TeacherScript_0x5535d: ; 0x5535d - checkbit1 $002a + checkbit1 EVENT_FOUGHT_SUDOWOODO iftrue UnknownScript_0x5538f - checkbit1 $005c + checkbit1 EVENT_GOT_SQUIRTBOTTLE iftrue UnknownScript_0x55399 checkbit1 $00b9 iffalse UnknownScript_0x5539f @@ -22,7 +22,7 @@ TeacherScript_0x5535d: ; 0x5535d 2writetext UnknownText_0x554c2 keeptextopen verbosegiveitem SQUIRTBOTTLE, 1 - setbit1 $005c + setbit1 EVENT_GOT_SQUIRTBOTTLE loadmovesprites setbit1 $0769 clearbit1 $0768 @@ -53,9 +53,9 @@ UnknownScript_0x5539f: ; 0x5539f LassScript_0x553a2: ; 0x553a2 faceplayer loadfont - checkbit1 $002a + checkbit1 EVENT_FOUGHT_SUDOWOODO iftrue UnknownScript_0x553c5 - checkbit1 $005c + checkbit1 EVENT_GOT_SQUIRTBOTTLE iftrue UnknownScript_0x553bf 2writetext UnknownText_0x55561 closetext diff --git a/maps/GoldenrodGym.asm b/maps/GoldenrodGym.asm index 33e6a1895..88d4a61f5 100644 --- a/maps/GoldenrodGym.asm +++ b/maps/GoldenrodGym.asm @@ -20,7 +20,7 @@ UnknownScript_0x5400b: ; 0x5400b WhitneyScript_0x5400c: ; 0x5400c faceplayer - checkbit1 $04bf + checkbit1 EVENT_BEAT_WHITNEY iftrue UnknownScript_0x54037 loadfont 2writetext UnknownText_0x54122 @@ -30,16 +30,16 @@ WhitneyScript_0x5400c: ; 0x5400c loadtrainer WHITNEY, 1 startbattle returnafterbattle - setbit1 $04bf - setbit1 $0028 + setbit1 EVENT_BEAT_WHITNEY + setbit1 EVENT_MADE_WHITNEY_CRY dotrigger $1 - setbit1 $04ad - setbit1 $04ae - setbit1 $0515 - setbit1 $0516 + setbit1 EVENT_BEAT_BEAUTY_VICTORIA + setbit1 EVENT_BEAT_BEAUTY_SAMANTHA + setbit1 EVENT_BEAT_LASS_CARRIE + setbit1 EVENT_BEAT_LASS_BRIDGET UnknownScript_0x54037: ; 0x54037 loadfont - checkbit1 $0028 + checkbit1 EVENT_MADE_WHITNEY_CRY iffalse UnknownScript_0x54044 2writetext UnknownText_0x541f4 closetext @@ -48,7 +48,7 @@ UnknownScript_0x54037: ; 0x54037 ; 0x54044 UnknownScript_0x54044: ; 0x54044 - checkbit1 $000b + checkbit1 EVENT_GOT_TM45_ATTRACT iftrue UnknownScript_0x54077 checkbit2 $001d iftrue UnknownScript_0x54064 @@ -66,7 +66,7 @@ UnknownScript_0x54064: ; 0x54064 keeptextopen verbosegiveitem TM_45, 1 iffalse UnknownScript_0x5407b - setbit1 $000b + setbit1 EVENT_GOT_TM45_ATTRACT 2writetext UnknownText_0x54302 closetext loadmovesprites @@ -134,7 +134,7 @@ WhitneyCriesScript: ; 0x540a0 loadmovesprites applymovement $4, BridgetWalksAwayMovement dotrigger $0 - clearbit1 $0028 + clearbit1 EVENT_MADE_WHITNEY_CRY end ; 0x540bb @@ -227,7 +227,7 @@ BeautySamanthaScript: ; 0x540ef GoldenrodGymGuyScript: ; 0x540f7 faceplayer - checkbit1 $04bf + checkbit1 EVENT_BEAT_WHITNEY iftrue .GoldenrodGymGuyWinScript loadfont 2writetext GoldenrodGymGuyText diff --git a/maps/GoldenrodMagnetTrainStation.asm b/maps/GoldenrodMagnetTrainStation.asm index 1b305969f..952a7d1f4 100644 --- a/maps/GoldenrodMagnetTrainStation.asm +++ b/maps/GoldenrodMagnetTrainStation.asm @@ -16,7 +16,7 @@ UnknownScript_0x550eb: ; 0x550eb OfficerScript_0x550ec: ; 0x550ec faceplayer loadfont - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x550fa 2writetext UnknownText_0x55160 closetext diff --git a/maps/GoldenrodPokeCenter1F.asm b/maps/GoldenrodPokeCenter1F.asm index e871c383b..d5bf6ab80 100644 --- a/maps/GoldenrodPokeCenter1F.asm +++ b/maps/GoldenrodPokeCenter1F.asm @@ -18,7 +18,7 @@ UnknownScript_0x60f94: ; 0x60f94 ; 0x60f9e UnknownScript_0x60f9e: ; 0x60f9e - checkbit1 $0340 + checkbit1 EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER iftrue UnknownScript_0x60fd8 playsound $0023 moveperson $3, $0, $7 @@ -31,8 +31,8 @@ UnknownScript_0x60f9e: ; 0x60f9e 2writetext UnknownText_0x622f0 closetext verbosegiveitem GS_BALL, 1 - setbit1 $0340 - setbit1 $00be + setbit1 EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER + setbit1 EVENT_CAN_GIVE_GS_BALL_TO_KURT 2writetext UnknownText_0x62359 closetext loadmovesprites @@ -52,7 +52,7 @@ UnknownScript_0x60fd9: ; 0x60fd9 ; 0x60fe3 UnknownScript_0x60fe3: ; 0x60fe3 - checkbit1 $0340 + checkbit1 EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER iftrue UnknownScript_0x6101d playsound $0023 moveperson $3, $0, $7 @@ -65,8 +65,8 @@ UnknownScript_0x60fe3: ; 0x60fe3 2writetext UnknownText_0x622f0 closetext verbosegiveitem GS_BALL, 1 - setbit1 $0340 - setbit1 $00be + setbit1 EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER + setbit1 EVENT_CAN_GIVE_GS_BALL_TO_KURT 2writetext UnknownText_0x62359 closetext loadmovesprites diff --git a/maps/HallOfFame.asm b/maps/HallOfFame.asm index a4c955064..a0cace60f 100644 --- a/maps/HallOfFame.asm +++ b/maps/HallOfFame.asm @@ -42,7 +42,7 @@ UnknownScript_0x181454: ; 0x181454 clearbit1 $0738 domaptrigger GROUP_SPROUT_TOWER_3F, MAP_SPROUT_TOWER_3F, $1 special $001b - checkbit1 $0024 + checkbit1 EVENT_GOT_SS_TICKET_FROM_ELM iftrue UnknownScript_0x181497 specialphonecall $5 UnknownScript_0x181497: ; 0x181497 diff --git a/maps/IcePathB1F.asm b/maps/IcePathB1F.asm index f09402904..5d51fcf32 100644 --- a/maps/IcePathB1F.asm +++ b/maps/IcePathB1F.asm @@ -38,25 +38,25 @@ StoneTable_0x7e4c7: ; 0x7e4c7 UnknownScript_0x7e4d8: ; 0x7e4d8 disappear 2 - clearbit1 $070d + clearbit1 EVENT_BOULDER_IN_ICE_PATH_1 2jump UnknownScript_0x7e4f8 ; 0x7e4e0 UnknownScript_0x7e4e0: ; 0x7e4e0 disappear 3 - clearbit1 $070e + clearbit1 EVENT_BOULDER_IN_ICE_PATH_2 2jump UnknownScript_0x7e4f8 ; 0x7e4e8 UnknownScript_0x7e4e8: ; 0x7e4e8 disappear 4 - clearbit1 $070f + clearbit1 EVENT_BOULDER_IN_ICE_PATH_3 2jump UnknownScript_0x7e4f8 ; 0x7e4f0 UnknownScript_0x7e4f0: ; 0x7e4f0 disappear 5 - clearbit1 $0710 + clearbit1 EVENT_BOULDER_IN_ICE_PATH_4 2jump UnknownScript_0x7e4f8 ; 0x7e4f8 diff --git a/maps/IlexForest.asm b/maps/IlexForest.asm index 9e8baa9fa..280d1f9a2 100644 --- a/maps/IlexForest.asm +++ b/maps/IlexForest.asm @@ -11,7 +11,7 @@ IlexForest_MapScriptHeader: ; 0x6eafe ; 0x6eb03 UnknownScript_0x6eb03: ; 0x6eb03 - checkbit1 $0010 + checkbit1 EVENT_GOT_HM01_CUT iftrue UnknownScript_0x6eb34 copybytetovar FarfetchdPosition if_equal $1, UnknownScript_0x6eb35 @@ -373,12 +373,12 @@ UnknownScript_0x6eda1: ; 0x6eda1 BlackBeltScript_0x6edae: ; 0x6edae faceplayer loadfont - checkbit1 $0010 + checkbit1 EVENT_GOT_HM01_CUT iftrue UnknownScript_0x6edd8 2writetext UnknownText_0x6f099 keeptextopen verbosegiveitem HM_01, 1 - setbit1 $0010 + setbit1 EVENT_GOT_HM01_CUT 2writetext UnknownText_0x6f141 closetext loadmovesprites @@ -401,13 +401,13 @@ UnknownScript_0x6edd8: ; 0x6edd8 RockerScript_0x6edde: ; 0x6edde faceplayer loadfont - checkbit1 $005f + checkbit1 EVENT_GOT_TM02_HEADBUTT iftrue UnknownScript_0x6edf3 2writetext UnknownText_0x6f21b keeptextopen verbosegiveitem TM_02, 1 iffalse UnknownScript_0x6edf7 - setbit1 $005f + setbit1 EVENT_GOT_TM02_HEADBUTT UnknownScript_0x6edf3: ; 0x6edf3 2writetext UnknownText_0x6f26d closetext diff --git a/maps/IndigoPlateauPokeCenter1F.asm b/maps/IndigoPlateauPokeCenter1F.asm index 1b1274b47..892d9dd16 100644 --- a/maps/IndigoPlateauPokeCenter1F.asm +++ b/maps/IndigoPlateauPokeCenter1F.asm @@ -25,26 +25,26 @@ UnknownScript_0x18000a: ; 0x18000a domaptrigger GROUP_LANCES_ROOM, MAP_LANCES_ROOM, $0 domaptrigger GROUP_HALL_OF_FAME, MAP_HALL_OF_FAME, $0 clearbit1 $0309 - clearbit1 $030a - clearbit1 $030b - clearbit1 $030c - clearbit1 $030d - clearbit1 $030e - clearbit1 $030f - clearbit1 $0310 - clearbit1 $0311 + clearbit1 EVENT_WILLS_ROOM_EXIT_OPEN + clearbit1 EVENT_WILLS_ROOM_ENTRANCE_CLOSED + clearbit1 EVENT_KOGAS_ROOM_EXIT_OPEN + clearbit1 EVENT_KOGAS_ROOM_ENTRANCE_CLOSED + clearbit1 EVENT_BRUNOS_ROOM_EXIT_OPEN + clearbit1 EVENT_KARENS_ROOM_ENTRANCE_CLOSED + clearbit1 EVENT_KARENS_ROOM_EXIT_OPEN + clearbit1 EVENT_LANCES_ROOM_ENTRANCE_CLOSED clearbit1 $0312 clearbit1 $05b8 clearbit1 $05b9 clearbit1 $05ba - clearbit1 $05bb - clearbit1 $05bc + clearbit1 EVENT_BEAT_ELITE_4_KAREN + clearbit1 EVENT_BEAT_CHAMPION_LANCE setbit1 $075f return ; 0x180053 UnknownScript_0x180053: ; 0x180053 - checkbit1 $0319 + checkbit1 EVENT_BEAT_RIVAL_IN_MT_MOON iffalse UnknownScript_0x18012b checkbit2 $005d iftrue UnknownScript_0x18012b @@ -67,7 +67,7 @@ UnknownScript_0x180053: ; 0x180053 ; 0x180094 UnknownScript_0x180094: ; 0x180094 - checkbit1 $0319 + checkbit1 EVENT_BEAT_RIVAL_IN_MT_MOON iffalse UnknownScript_0x18012b checkbit2 $005d iftrue UnknownScript_0x18012b @@ -91,9 +91,9 @@ UnknownScript_0x1800ce: ; 0x1800ce closetext loadmovesprites setbit1 $077b - checkbit1 $001c + checkbit1 EVENT_GOT_TOTODILE_FROM_ELM iftrue UnknownScript_0x1800f3 - checkbit1 $001d + checkbit1 EVENT_GOT_CHIKORITA_FROM_ELM iftrue UnknownScript_0x180103 winlosstext UnknownText_0x180295, UnknownText_0x1802fd setlasttalked $5 diff --git a/maps/KarensRoom.asm b/maps/KarensRoom.asm index d6af8bce0..cf0219ffc 100644 --- a/maps/KarensRoom.asm +++ b/maps/KarensRoom.asm @@ -24,11 +24,11 @@ UnknownScript_0x180bc0: ; 0x180bc0 ; 0x180bc1 UnknownScript_0x180bc1: ; 0x180bc1 - checkbit1 $030f + checkbit1 EVENT_KARENS_ROOM_ENTRANCE_CLOSED iffalse UnknownScript_0x180bcb changeblock $4, $e, $2a UnknownScript_0x180bcb: ; 0x180bcb - checkbit1 $0310 + checkbit1 EVENT_KARENS_ROOM_EXIT_OPEN iffalse UnknownScript_0x180bd5 changeblock $4, $2, $16 UnknownScript_0x180bd5: ; 0x180bd5 @@ -44,7 +44,7 @@ UnknownScript_0x180bd6: ; 0x180bd6 reloadmappart loadmovesprites dotrigger $1 - setbit1 $030f + setbit1 EVENT_KARENS_ROOM_ENTRANCE_CLOSED waitbutton end ; 0x180bee @@ -52,7 +52,7 @@ UnknownScript_0x180bd6: ; 0x180bd6 KarenScript_0x180bee: ; 0x180bee faceplayer loadfont - checkbit1 $05bb + checkbit1 EVENT_BEAT_ELITE_4_KAREN iftrue UnknownScript_0x180c1c 2writetext UnknownText_0x180c27 closetext @@ -61,7 +61,7 @@ KarenScript_0x180bee: ; 0x180bee loadtrainer KAREN, 1 startbattle returnafterbattle - setbit1 $05bb + setbit1 EVENT_BEAT_ELITE_4_KAREN loadfont 2writetext UnknownText_0x180d29 closetext @@ -70,7 +70,7 @@ KarenScript_0x180bee: ; 0x180bee changeblock $4, $2, $16 reloadmappart loadmovesprites - setbit1 $0310 + setbit1 EVENT_KARENS_ROOM_EXIT_OPEN waitbutton end ; 0x180c1c diff --git a/maps/KogasRoom.asm b/maps/KogasRoom.asm index e2395373e..7fba3dde1 100644 --- a/maps/KogasRoom.asm +++ b/maps/KogasRoom.asm @@ -24,11 +24,11 @@ UnknownScript_0x18072c: ; 0x18072c ; 0x18072d UnknownScript_0x18072d: ; 0x18072d - checkbit1 $030b + checkbit1 EVENT_WILLS_ROOM_ENTRANCE_CLOSED iffalse UnknownScript_0x180737 changeblock $4, $e, $2a UnknownScript_0x180737: ; 0x180737 - checkbit1 $030c + checkbit1 EVENT_KOGAS_ROOM_EXIT_OPEN iffalse UnknownScript_0x180741 changeblock $4, $2, $16 UnknownScript_0x180741: ; 0x180741 @@ -44,7 +44,7 @@ UnknownScript_0x180742: ; 0x180742 reloadmappart loadmovesprites dotrigger $1 - setbit1 $030b + setbit1 EVENT_WILLS_ROOM_ENTRANCE_CLOSED waitbutton end ; 0x18075a @@ -70,7 +70,7 @@ KogaScript_0x18075a: ; 0x18075a changeblock $4, $2, $16 reloadmappart loadmovesprites - setbit1 $030c + setbit1 EVENT_KOGAS_ROOM_EXIT_OPEN waitbutton end ; 0x180788 diff --git a/maps/KrissHouse1F.asm b/maps/KrissHouse1F.asm index 20e0dbfcc..3c6641e9e 100644 --- a/maps/KrissHouse1F.asm +++ b/maps/KrissHouse1F.asm @@ -131,11 +131,11 @@ MomScript_0x7a582: ; 0x7a582 loadfont checkbit1 $0076 iftrue UnknownScript_0x7a5af - checkbit1 $0040 + checkbit1 EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST iftrue UnknownScript_0x7a5b8 - checkbit1 $001f + checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM iftrue UnknownScript_0x7a5b5 - checkbit1 $001a + checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM iftrue UnknownScript_0x7a5a9 2writetext UnknownText_0x7a8b5 closetext @@ -160,7 +160,7 @@ UnknownScript_0x7a5af: ; 0x7a5af UnknownScript_0x7a5b5: ; 0x7a5b5 setbit1 $0076 UnknownScript_0x7a5b8: ; 0x7a5b8 - setbit1 $0040 + setbit1 EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST special $0022 closetext loadmovesprites diff --git a/maps/KrissHouse2F.asm b/maps/KrissHouse2F.asm index 6a6394238..1d4a33040 100644 --- a/maps/KrissHouse2F.asm +++ b/maps/KrissHouse2F.asm @@ -64,9 +64,9 @@ MapKrissHouse2FSignpost4Script: ; 0x7abd8 ; 0x7abda MapKrissHouse2FSignpost2Script: ; 0x7abda - checkbit1 $001a + checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM iftrue UnknownScript_0x7ac07 - checkbit1 $0325 + checkbit1 EVENT_LISTENED_TO_RADIO_IN_NEIGHBORS_HOUSE iftrue UnknownScript_0x7ac0a playmusic $001d loadfont @@ -80,7 +80,7 @@ MapKrissHouse2FSignpost2Script: ; 0x7abda 2writetext UnknownText_0x7ac84 pause 45 loadmovesprites - setbit1 $0325 + setbit1 EVENT_LISTENED_TO_RADIO_IN_NEIGHBORS_HOUSE end ; 0x7ac07 diff --git a/maps/KrissNeighborsHouse.asm b/maps/KrissNeighborsHouse.asm index 5fdf07c71..313678348 100644 --- a/maps/KrissNeighborsHouse.asm +++ b/maps/KrissNeighborsHouse.asm @@ -19,9 +19,9 @@ MapKrissNeighborsHouseSignpost1Script: ; 0x7acf4 ; 0x7acf7 MapKrissNeighborsHouseSignpost2Script: ; 0x7acf7 - checkbit1 $001a + checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM iftrue UnknownScript_0x7ad24 - checkbit1 $0325 + checkbit1 EVENT_LISTENED_TO_RADIO_IN_NEIGHBORS_HOUSE iftrue UnknownScript_0x7ad27 playmusic $001d loadfont @@ -35,7 +35,7 @@ MapKrissNeighborsHouseSignpost2Script: ; 0x7acf7 2writetext UnknownText_0x7ae9b pause 45 loadmovesprites - setbit1 $0325 + setbit1 EVENT_LISTENED_TO_RADIO_IN_NEIGHBORS_HOUSE end ; 0x7ad24 diff --git a/maps/KurtsHouse.asm b/maps/KurtsHouse.asm index df8ec978c..53920eede 100644 --- a/maps/KurtsHouse.asm +++ b/maps/KurtsHouse.asm @@ -11,7 +11,7 @@ KurtsHouse_MapScriptHeader: ; 0x18e14f ; 0x18e154 UnknownScript_0x18e154: ; 0x18e154 - checkbit1 $002b + checkbit1 EVENT_CLEARED_SLOWPOKE_WELL iffalse UnknownScript_0x18e177 checkbit1 $00c0 iftrue UnknownScript_0x18e177 @@ -38,7 +38,7 @@ KurtScript_0x18e178: ; 0x18e178 loadfont checkbit1 $0035 iftrue UnknownScript_0x18e1cc - checkbit1 $002b + checkbit1 EVENT_CLEARED_SLOWPOKE_WELL iftrue UnknownScript_0x18e1bf 2writetext UnknownText_0x18e473 closetext @@ -91,7 +91,7 @@ UnknownScript_0x18e1cc: ; 0x18e1cc iftrue UnknownScript_0x18e322 checkbit1 $025e iftrue UnknownScript_0x18e338 - checkbit1 $00be + checkbit1 EVENT_CAN_GIVE_GS_BALL_TO_KURT iftrue UnknownScript_0x18e34e UnknownScript_0x18e202: ; 0x18e202 checkbit1 $0001 @@ -317,7 +317,7 @@ UnknownScript_0x18e378: ; 0x18e378 closetext loadmovesprites setbit1 $00c0 - clearbit1 $00be + clearbit1 EVENT_CAN_GIVE_GS_BALL_TO_KURT clearbit1 $00bf special $006a pause 20 @@ -388,7 +388,7 @@ TwinScript_0x18e3ed: ; 0x18e3ed iftrue UnknownScript_0x18e420 checkbit1 $0030 iftrue UnknownScript_0x18e427 - checkbit1 $002b + checkbit1 EVENT_CLEARED_SLOWPOKE_WELL iftrue UnknownScript_0x18e419 checkbit1 $06fa iftrue UnknownScript_0x18e420 diff --git a/maps/LakeofRage.asm b/maps/LakeofRage.asm index 6e4e71be9..f11687473 100644 --- a/maps/LakeofRage.asm +++ b/maps/LakeofRage.asm @@ -42,7 +42,7 @@ UnknownScript_0x7001f: ; 0x7001f ; 0x70022 LanceScript_0x70022: ; 0x70022 - checkbit1 $0026 + checkbit1 EVENT_REFUSED_TO_HELP_LANCE_AT_LAKE_OF_RAGE iftrue UnknownScript_0x70057 loadfont 2writetext UnknownText_0x70157 @@ -59,7 +59,7 @@ UnknownScript_0x70035: ; 0x70035 applymovement $2, MovementData_0x70155 disappear $2 clearbit1 $06d5 - setbit1 $0060 + setbit1 EVENT_DECIDED_TO_HELP_LANCE domaptrigger GROUP_MAHOGANY_MART_1F, MAP_MAHOGANY_MART_1F, $1 end ; 0x7004e @@ -68,7 +68,7 @@ UnknownScript_0x7004e: ; 0x7004e 2writetext UnknownText_0x70371 closetext loadmovesprites - setbit1 $0026 + setbit1 EVENT_REFUSED_TO_HELP_LANCE_AT_LAKE_OF_RAGE end ; 0x70057 @@ -110,7 +110,7 @@ UnknownScript_0x7007a: ; 0x7007a GrampsScript_0x7008e: ; 0x7008e faceplayer loadfont - checkbit1 $0022 + checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT iftrue UnknownScript_0x7009c 2writetext UnknownText_0x703f8 closetext @@ -140,7 +140,7 @@ MapLakeofRageSignpost0Script: ; 0x700a8 MapLakeofRageSignpost1Script: ; 0x700ab loadfont 2writetext UnknownText_0x70903 - checkbit1 $0022 + checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT iftrue UnknownScript_0x700b8 closetext loadmovesprites @@ -273,21 +273,21 @@ CooltrainerfLoisScript: ; 0x70106 SuperNerdScript_0x7010e: ; 0x7010e faceplayer loadfont - checkbit1 $006b + checkbit1 EVENT_GOT_BLACKBELT_FROM_WESLEY iftrue UnknownScript_0x7013c checkcode $b if_not_equal WEDNESDAY, UnknownScript_0x70142 - checkbit1 $006a + checkbit1 EVENT_MET_WESLEY_OF_WEDNESDAY iftrue UnknownScript_0x70129 2writetext UnknownText_0x70784 keeptextopen - setbit1 $006a + setbit1 EVENT_MET_WESLEY_OF_WEDNESDAY UnknownScript_0x70129: ; 0x70129 2writetext UnknownText_0x707dd keeptextopen verbosegiveitem BLACKBELT, 1 iffalse UnknownScript_0x70140 - setbit1 $006b + setbit1 EVENT_GOT_BLACKBELT_FROM_WESLEY 2writetext UnknownText_0x7080b closetext loadmovesprites diff --git a/maps/LakeofRageHiddenPowerHouse.asm b/maps/LakeofRageHiddenPowerHouse.asm index 783275c69..cc50000ec 100644 --- a/maps/LakeofRageHiddenPowerHouse.asm +++ b/maps/LakeofRageHiddenPowerHouse.asm @@ -9,13 +9,13 @@ LakeofRageHiddenPowerHouse_MapScriptHeader: ; 0x19a525 FisherScript_0x19a527: ; 0x19a527 faceplayer loadfont - checkbit1 $0058 + checkbit1 EVENT_GOT_TM10_HIDDEN_POWER iftrue UnknownScript_0x19a542 2writetext UnknownText_0x19a54b keeptextopen verbosegiveitem TM_10, 1 iffalse UnknownScript_0x19a546 - setbit1 $0058 + setbit1 EVENT_GOT_TM10_HIDDEN_POWER 2writetext UnknownText_0x19a5de closetext loadmovesprites diff --git a/maps/LakeofRageMagikarpHouse.asm b/maps/LakeofRageMagikarpHouse.asm index f044ef9dd..a89867a4d 100644 --- a/maps/LakeofRageMagikarpHouse.asm +++ b/maps/LakeofRageMagikarpHouse.asm @@ -13,7 +13,7 @@ FishingGuruScript_0x19a6ae: ; 0x19a6ae iftrue UnknownScript_0x19a6fe checkbit1 $0039 iftrue UnknownScript_0x19a6e0 - checkbit1 $0022 + checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT iftrue UnknownScript_0x19a6d7 checkbit1 $0038 iftrue UnknownScript_0x19a6d1 diff --git a/maps/LancesRoom.asm b/maps/LancesRoom.asm index 4db16287d..30773e254 100644 --- a/maps/LancesRoom.asm +++ b/maps/LancesRoom.asm @@ -24,7 +24,7 @@ UnknownScript_0x180e3d: ; 0x180e3d ; 0x180e3e UnknownScript_0x180e3e: ; 0x180e3e - checkbit1 $0311 + checkbit1 EVENT_LANCES_ROOM_ENTRANCE_CLOSED iffalse UnknownScript_0x180e48 changeblock $4, $16, $34 UnknownScript_0x180e48: ; 0x180e48 @@ -44,7 +44,7 @@ UnknownScript_0x180e53: ; 0x180e53 reloadmappart loadmovesprites dotrigger $1 - setbit1 $0311 + setbit1 EVENT_LANCES_ROOM_ENTRANCE_CLOSED end ; 0x180e6a @@ -69,7 +69,7 @@ UnknownScript_0x180e7b: ; 0x180e7b startbattle reloadmapmusic returnafterbattle - setbit1 $05bc + setbit1 EVENT_BEAT_CHAMPION_LANCE loadfont 2writetext UnknownText_0x181132 closetext @@ -78,7 +78,7 @@ UnknownScript_0x180e7b: ; 0x180e7b changeblock $4, $0, $b reloadmappart loadmovesprites - setbit1 $0311 + setbit1 EVENT_LANCES_ROOM_ENTRANCE_CLOSED musicfadeout $0038, $10 pause 30 showemote $0, $2, 15 diff --git a/maps/LavRadioTower1F.asm b/maps/LavRadioTower1F.asm index d009b2f5e..8069343f2 100644 --- a/maps/LavRadioTower1F.asm +++ b/maps/LavRadioTower1F.asm @@ -23,7 +23,7 @@ GentlemanScript_0x7ee6c: ; 0x7ee6c loadfont checkbit2 $0003 iftrue .UnknownScript_0x7ee8e - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue .UnknownScript_0x7ee80 2writetext UnknownText_0x7effb closetext diff --git a/maps/LavenderPokeCenter1F.asm b/maps/LavenderPokeCenter1F.asm index 91229efef..e1a7f591e 100644 --- a/maps/LavenderPokeCenter1F.asm +++ b/maps/LavenderPokeCenter1F.asm @@ -21,7 +21,7 @@ TeacherScript_0x7e6a6: ; 0x7e6a6 YoungsterScript_0x7e6a9: ; 0x7e6a9 faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x7e6b7 2writetext UnknownText_0x7e779 closetext diff --git a/maps/MahoganyGym.asm b/maps/MahoganyGym.asm index ed98ad765..9356cdc84 100644 --- a/maps/MahoganyGym.asm +++ b/maps/MahoganyGym.asm @@ -9,7 +9,7 @@ MahoganyGym_MapScriptHeader: ; 0x199a9c PryceScript_0x199a9e: ; 0x199a9e faceplayer loadfont - checkbit1 $04c3 + checkbit1 EVENT_BEAT_PRYCE iftrue UnknownScript_0x199ac8 2writetext UnknownText_0x199b8d closetext @@ -18,7 +18,7 @@ PryceScript_0x199a9e: ; 0x199a9e loadtrainer PRYCE, 1 startbattle returnafterbattle - setbit1 $04c3 + setbit1 EVENT_BEAT_PRYCE loadfont 2writetext UnknownText_0x199d3b playsound $009c @@ -27,18 +27,18 @@ PryceScript_0x199a9e: ; 0x199a9e checkcode $7 2call UnknownScript_0x199af6 UnknownScript_0x199ac8: ; 0x199ac8 - checkbit1 $000e + checkbit1 EVENT_GOT_TM16_ICY_WIND iftrue UnknownScript_0x199af0 - setbit1 $0592 - setbit1 $0593 - setbit1 $040e - setbit1 $040f - setbit1 $0410 + setbit1 EVENT_BEAT_SKIER_ROXANNE + setbit1 EVENT_BEAT_SKIER_CLARISSA + setbit1 EVENT_BEAT_BOARDER_RONALD + setbit1 EVENT_BEAT_BOARDER_BRAD + setbit1 EVENT_BEAT_BOARDER_DOUGLAS 2writetext UnknownText_0x199d55 keeptextopen verbosegiveitem TM_16, 1 iffalse UnknownScript_0x199af4 - setbit1 $000e + setbit1 EVENT_GOT_TM16_ICY_WIND 2writetext UnknownText_0x199def closetext loadmovesprites @@ -215,7 +215,7 @@ BoarderDouglasScript: ; 0x199b61 MahoganyGymGuyScript: ; 0x199b69 faceplayer loadfont - checkbit1 $04c3 + checkbit1 EVENT_BEAT_PRYCE iftrue .MahoganyGymGuyWinScript 2writetext MahoganyGymGuyText closetext diff --git a/maps/MahoganyMart1F.asm b/maps/MahoganyMart1F.asm index c5ef6464a..a81b0bfa1 100644 --- a/maps/MahoganyMart1F.asm +++ b/maps/MahoganyMart1F.asm @@ -24,7 +24,7 @@ UnknownScript_0x6c357: ; 0x6c357 ; 0x6c35b UnknownScript_0x6c35b: ; 0x6c35b - checkbit1 $02e2 + checkbit1 EVENT_UNCOVERED_STAIRCASE_IN_MAHOGANY_MART iftrue UnknownScript_0x6c362 return ; 0x6c362 @@ -37,7 +37,7 @@ UnknownScript_0x6c362: ; 0x6c362 PharmacistScript_0x6c367: ; 0x6c367 faceplayer loadfont - checkbit1 $0060 + checkbit1 EVENT_DECIDED_TO_HELP_LANCE iftrue UnknownScript_0x6c375 pokemart $0, $000f loadmovesprites @@ -54,7 +54,7 @@ UnknownScript_0x6c375: ; 0x6c375 BlackBeltScript_0x6c37b: ; 0x6c37b faceplayer loadfont - checkbit1 $0060 + checkbit1 EVENT_DECIDED_TO_HELP_LANCE iftrue UnknownScript_0x6c389 2writetext UnknownText_0x6c494 closetext @@ -99,7 +99,7 @@ UnknownScript_0x6c38f: ; 0x6c38f changeblock $6, $2, $1e reloadmappart loadmovesprites - setbit1 $02e2 + setbit1 EVENT_UNCOVERED_STAIRCASE_IN_MAHOGANY_MART spriteface $4, $2 loadfont 2writetext UnknownText_0x6c5ba diff --git a/maps/MahoganyTown.asm b/maps/MahoganyTown.asm index a3ab060f0..89a51f4e0 100644 --- a/maps/MahoganyTown.asm +++ b/maps/MahoganyTown.asm @@ -42,7 +42,7 @@ UnknownScript_0x190013: ; 0x190013 PokefanMScript_0x19002e: ; 0x19002e faceplayer UnknownScript_0x19002f: ; 0x19002f - checkbit1 $0022 + checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT iftrue UnknownScript_0x190039 2call UnknownScript_0x190040 end @@ -100,7 +100,7 @@ UnknownScript_0x190078: ; 0x190078 GrampsScript_0x19007e: ; 0x19007e faceplayer loadfont - checkbit1 $0022 + checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT iftrue UnknownScript_0x19008c 2writetext UnknownText_0x1901e5 closetext diff --git a/maps/ManiasHouse.asm b/maps/ManiasHouse.asm index f69abb947..6ffc2d3b8 100644 --- a/maps/ManiasHouse.asm +++ b/maps/ManiasHouse.asm @@ -9,9 +9,9 @@ ManiasHouse_MapScriptHeader: ; 0x9d276 RockerScript_0x9d278: ; 0x9d278 faceplayer loadfont - checkbit1 $0046 + checkbit1 EVENT_MANIA_TOOK_SHUCKIE_OR_LET_YOU_KEEP_HIM iftrue UnknownScript_0x9d2fa - checkbit1 $0045 + checkbit1 EVENT_GOT_SHUCKIE iftrue UnknownScript_0x9d2a4 2writetext UnknownText_0x9d303 yesorno @@ -25,7 +25,7 @@ RockerScript_0x9d278: ; 0x9d278 playsound $0091 waitbutton loadmovesprites - setbit1 $0045 + setbit1 EVENT_GOT_SHUCKIE end ; 0x9d2a4 @@ -64,7 +64,7 @@ UnknownScript_0x9d2bc: ; 0x9d2bc 2writetext UnknownText_0x9d4b1 closetext loadmovesprites - setbit1 $0046 + setbit1 EVENT_MANIA_TOOK_SHUCKIE_OR_LET_YOU_KEEP_HIM end ; 0x9d2df @@ -79,7 +79,7 @@ UnknownScript_0x9d2e5: ; 0x9d2e5 2writetext UnknownText_0x9d4e3 closetext loadmovesprites - setbit1 $0046 + setbit1 EVENT_MANIA_TOOK_SHUCKIE_OR_LET_YOU_KEEP_HIM end ; 0x9d2ee diff --git a/maps/MountMoon.asm b/maps/MountMoon.asm index 44b3cf538..f3c760189 100644 --- a/maps/MountMoon.asm +++ b/maps/MountMoon.asm @@ -30,9 +30,9 @@ UnknownScript_0x7408e: ; 0x7408e 2writetext UnknownText_0x74105 closetext loadmovesprites - checkbit1 $001c + checkbit1 EVENT_GOT_TOTODILE_FROM_ELM iftrue UnknownScript_0x740c3 - checkbit1 $001d + checkbit1 EVENT_GOT_CHIKORITA_FROM_ELM iftrue UnknownScript_0x740d3 winlosstext UnknownText_0x7419d, UnknownText_0x742e0 setlasttalked $2 @@ -72,7 +72,7 @@ UnknownScript_0x740e3: ; 0x740e3 applymovement $2, MovementData_0x740fd disappear $2 dotrigger $1 - setbit1 $0319 + setbit1 EVENT_BEAT_RIVAL_IN_MT_MOON playmapmusic end ; 0x740f9 diff --git a/maps/MountMortarB1F.asm b/maps/MountMortarB1F.asm index c316904c3..02f12f2ee 100644 --- a/maps/MountMortarB1F.asm +++ b/maps/MountMortarB1F.asm @@ -9,7 +9,7 @@ MountMortarB1F_MapScriptHeader: ; 0x7e1f4 BlackBeltScript_0x7e1f6: ; 0x7e1f6 faceplayer loadfont - checkbit1 $0061 + checkbit1 EVENT_GOT_TYROGUE_FROM_KIYO iftrue UnknownScript_0x7e231 checkbit1 $04a9 iftrue UnknownScript_0x7e217 @@ -32,7 +32,7 @@ UnknownScript_0x7e217: ; 0x7e217 playsound $0002 waitbutton givepoke TYROGUE, 10, 0, 0 - setbit1 $0061 + setbit1 EVENT_GOT_TYROGUE_FROM_KIYO UnknownScript_0x7e231: ; 0x7e231 2writetext UnknownText_0x7e36a closetext diff --git a/maps/MrPokemonsHouse.asm b/maps/MrPokemonsHouse.asm index 8b80af737..c3677dea2 100644 --- a/maps/MrPokemonsHouse.asm +++ b/maps/MrPokemonsHouse.asm @@ -36,7 +36,7 @@ UnknownScript_0x196e56: ; 0x196e56 playsound $0091 waitbutton itemnotify - setbit1 $001e + setbit1 EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON blackoutmod GROUP_CHERRYGROVE_CITY, MAP_CHERRYGROVE_CITY 2writetext UnknownText_0x196feb keeptextopen @@ -56,7 +56,7 @@ GentlemanScript_0x196e97: ; 0x196e97 loadfont checkitem RED_SCALE iftrue UnknownScript_0x196eb0 - checkbit1 $001f + checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM iftrue UnknownScript_0x196eaa 2writetext UnknownText_0x197134 closetext @@ -136,9 +136,9 @@ UnknownScript_0x196ec9: ; 0x196ec9 domaptrigger GROUP_ELMS_LAB, MAP_ELMS_LAB, $3 specialphonecall $2 clearbit1 $0702 - checkbit1 $001c + checkbit1 EVENT_GOT_TOTODILE_FROM_ELM iftrue UnknownScript_0x196f49 - checkbit1 $001d + checkbit1 EVENT_GOT_CHIKORITA_FROM_ELM iftrue UnknownScript_0x196f4d setbit1 $0641 end diff --git a/maps/MrPsychicsHouse.asm b/maps/MrPsychicsHouse.asm index 64f3fbfda..e760c3f99 100644 --- a/maps/MrPsychicsHouse.asm +++ b/maps/MrPsychicsHouse.asm @@ -9,13 +9,13 @@ MrPsychicsHouse_MapScriptHeader: ; 0x18a778 FishingGuruScript_0x18a77a: ; 0x18a77a faceplayer loadfont - checkbit1 $00e3 + checkbit1 EVENT_GOT_TM29_PSYCHIC iftrue UnknownScript_0x18a78f 2writetext UnknownText_0x18a798 keeptextopen verbosegiveitem TM_29, 1 iffalse UnknownScript_0x18a793 - setbit1 $00e3 + setbit1 EVENT_GOT_TM29_PSYCHIC UnknownScript_0x18a78f: ; 0x18a78f 2writetext UnknownText_0x18a7bb closetext diff --git a/maps/NationalPark.asm b/maps/NationalPark.asm index 8a6c6335d..f11a8f429 100644 --- a/maps/NationalPark.asm +++ b/maps/NationalPark.asm @@ -17,13 +17,13 @@ PokefanFScript_0x5c005: ; 0x5c005 TeacherScript_0x5c008: ; 0x5c008 faceplayer loadfont - checkbit1 $0057 + checkbit1 EVENT_GOT_QUICK_CLAW iftrue UnknownScript_0x5c01d 2writetext UnknownText_0x5c265 keeptextopen verbosegiveitem QUICK_CLAW, 1 iffalse UnknownScript_0x5c021 - setbit1 $0057 + setbit1 EVENT_GOT_QUICK_CLAW UnknownScript_0x5c01d: ; 0x5c01d 2writetext UnknownText_0x5c30d closetext @@ -122,13 +122,13 @@ UnknownScript_0x5c088: ; 0x5c088 if_equal $1, UnknownScript_0x5c0b9 if_equal $0, UnknownScript_0x5c0bf UnknownScript_0x5c0a7: ; 0x5c0a7 - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x5c0f3 UnknownScript_0x5c0ad: ; 0x5c0ad checkbit1 $0044 iftrue UnknownScript_0x5c0e6 UnknownScript_0x5c0b3: ; 0x5c0b3 - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x5c0d9 UnknownScript_0x5c0b9: ; 0x5c0b9 checkbit2 $0047 @@ -271,11 +271,11 @@ PokefanfBeverly1Script: ; 0x5c138 iftrue UnknownScript_0x5c19b checkpoke MARILL iffalse UnknownScript_0x5c189 - checkbit1 $0261 + checkbit1 EVENT_SHOWED_BEVERLY_MARILL iftrue UnknownScript_0x5c160 2writetext UnknownText_0x5c5bd keeptextopen - setbit1 $0261 + setbit1 EVENT_SHOWED_BEVERLY_MARILL 2call UnknownScript_0x5c18f 2jump UnknownScript_0x5c163 ; 0x5c160 diff --git a/maps/NewBarkTown.asm b/maps/NewBarkTown.asm index 5d9afe0d2..e6e643abf 100644 --- a/maps/NewBarkTown.asm +++ b/maps/NewBarkTown.asm @@ -80,11 +80,11 @@ UnknownScript_0x1a8041: ; 0x1a8041 TeacherScript_0x1a806f: ; 0x1a806f faceplayer loadfont - checkbit1 $0040 + checkbit1 EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST iftrue UnknownScript_0x1a8095 - checkbit1 $001f + checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM iftrue UnknownScript_0x1a808f - checkbit1 $001a + checkbit1 EVENT_GOT_A_POKEMON_FROM_ELM iftrue UnknownScript_0x1a8089 2writetext UnknownText_0x1a80f7 closetext diff --git a/maps/OlivineCafe.asm b/maps/OlivineCafe.asm index 417df164f..e5c31f9f5 100644 --- a/maps/OlivineCafe.asm +++ b/maps/OlivineCafe.asm @@ -9,12 +9,12 @@ OlivineCafe_MapScriptHeader: ; 0x9c8bf SailorScript_0x9c8c1: ; 0x9c8c1 faceplayer loadfont - checkbit1 $0013 + checkbit1 EVENT_GOT_HM04_STRENGTH iftrue UnknownScript_0x9c8d3 2writetext UnknownText_0x9c8df keeptextopen verbosegiveitem HM_04, 1 - setbit1 $0013 + setbit1 EVENT_GOT_HM04_STRENGTH UnknownScript_0x9c8d3: ; 0x9c8d3 2writetext UnknownText_0x9c965 closetext diff --git a/maps/OlivineGoodRodHouse.asm b/maps/OlivineGoodRodHouse.asm index 181ec09b3..26d128460 100644 --- a/maps/OlivineGoodRodHouse.asm +++ b/maps/OlivineGoodRodHouse.asm @@ -9,7 +9,7 @@ OlivineGoodRodHouse_MapScriptHeader: ; 0x9c719 FishingGuruScript_0x9c71b: ; 0x9c71b faceplayer loadfont - checkbit1 $0018 + checkbit1 EVENT_GOT_GOOD_ROD iftrue UnknownScript_0x9c740 2writetext UnknownText_0x9c749 yesorno @@ -20,7 +20,7 @@ FishingGuruScript_0x9c71b: ; 0x9c71b 2writetext UnknownText_0x9c807 closetext loadmovesprites - setbit1 $0018 + setbit1 EVENT_GOT_GOOD_ROD end ; 0x9c73a diff --git a/maps/OlivineGym.asm b/maps/OlivineGym.asm index fad06da3f..df750359f 100644 --- a/maps/OlivineGym.asm +++ b/maps/OlivineGym.asm @@ -9,7 +9,7 @@ OlivineGym_MapScriptHeader: ; 0x9c12d JasmineScript_0x9c12f: ; 0x9c12f faceplayer loadfont - checkbit1 $04c1 + checkbit1 EVENT_BEAT_JASMINE iftrue UnknownScript_0x9c159 2writetext UnknownText_0x9c1b9 closetext @@ -18,7 +18,7 @@ JasmineScript_0x9c12f: ; 0x9c12f loadtrainer JASMINE, 1 startbattle returnafterbattle - setbit1 $04c1 + setbit1 EVENT_BEAT_JASMINE loadfont 2writetext UnknownText_0x9c33a playsound $009c @@ -27,13 +27,13 @@ JasmineScript_0x9c12f: ; 0x9c12f checkcode $7 2call UnknownScript_0x9c178 UnknownScript_0x9c159: ; 0x9c159 - checkbit1 $000d + checkbit1 EVENT_GOT_TM23_IRON_TAIL iftrue UnknownScript_0x9c172 2writetext UnknownText_0x9c354 keeptextopen verbosegiveitem TM_23, 1 iffalse UnknownScript_0x9c176 - setbit1 $000d + setbit1 EVENT_GOT_TM23_IRON_TAIL 2writetext UnknownText_0x9c3a5 closetext loadmovesprites @@ -64,9 +64,9 @@ UnknownScript_0x9c184: ; 0x9c184 OlivineGymGuyScript: ; 0x9c187 faceplayer - checkbit1 $04c1 + checkbit1 EVENT_BEAT_JASMINE iftrue .OlivineGymGuyWinScript - checkbit1 $0020 + checkbit1 EVENT_JASMINE_RETURNED_TO_GYM iffalse .OlivineGymGuyPreScript loadfont 2writetext OlivineGymGuyText diff --git a/maps/OlivineLighthouse2F.asm b/maps/OlivineLighthouse2F.asm index af121bc9d..defcbb4d6 100644 --- a/maps/OlivineLighthouse2F.asm +++ b/maps/OlivineLighthouse2F.asm @@ -90,13 +90,13 @@ UnknownScript_0x5afc7: ; 0x5afc7 if_equal $1, UnknownScript_0x5afee if_equal $0, UnknownScript_0x5aff4 UnknownScript_0x5afe2: ; 0x5afe2 - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x5b01b UnknownScript_0x5afe8: ; 0x5afe8 checkbit1 $0044 iftrue UnknownScript_0x5b00e UnknownScript_0x5afee: ; 0x5afee - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x5b001 UnknownScript_0x5aff4: ; 0x5aff4 loadtrainer SAILOR, HUEY1 @@ -130,7 +130,7 @@ UnknownScript_0x5b01b: ; 0x5b01b startbattle returnafterbattle clearbit2 $0066 - checkbit1 $0337 + checkbit1 EVENT_HUEY_PROTEIN iftrue UnknownScript_0x5b03f checkbit1 $0265 iftrue UnknownScript_0x5b03e @@ -151,7 +151,7 @@ UnknownScript_0x5b03f: ; 0x5b03f closetext verbosegiveitem PROTEIN, 1 iffalse UnknownScript_0x5b06f - clearbit1 $0337 + clearbit1 EVENT_HUEY_PROTEIN setbit1 $0265 2jump UnknownScript_0x5b05f ; 0x5b053 @@ -192,7 +192,7 @@ UnknownScript_0x5b06b: ; 0x5b06b ; 0x5b06f UnknownScript_0x5b06f: ; 0x5b06f - setbit1 $0337 + setbit1 EVENT_HUEY_PROTEIN jumpstd $0021 end ; 0x5b076 diff --git a/maps/OlivineLighthouse6F.asm b/maps/OlivineLighthouse6F.asm index a6551b84f..6ecb4230d 100644 --- a/maps/OlivineLighthouse6F.asm +++ b/maps/OlivineLighthouse6F.asm @@ -64,7 +64,7 @@ UnknownScript_0x60bab: ; 0x60bab 2writetext UnknownText_0x60e6c closetext loadmovesprites - setbit1 $0020 + setbit1 EVENT_JASMINE_RETURNED_TO_GYM clearbit1 $06d3 checkcode $9 if_equal $0, UnknownScript_0x60c17 @@ -107,7 +107,7 @@ UnknownScript_0x60c39: ; 0x60c39 MonsterScript_0x60c3a: ; 0x60c3a faceplayer loadfont - checkbit1 $0020 + checkbit1 EVENT_JASMINE_RETURNED_TO_GYM iftrue UnknownScript_0x60c51 2writetext UnknownText_0x60f03 writebyte AMPHAROS diff --git a/maps/OlivinePort.asm b/maps/OlivinePort.asm index c07301471..6819babd3 100644 --- a/maps/OlivinePort.asm +++ b/maps/OlivinePort.asm @@ -49,15 +49,15 @@ SailorScript_0x748c0: ; 0x748c0 iffalse UnknownScript_0x7490a clearbit1 $073a setbit1 $073b - clearbit1 $0557 - clearbit1 $0567 - clearbit1 $049b - clearbit1 $04b2 - clearbit1 $0445 - clearbit1 $0589 - clearbit1 $057b - clearbit1 $0459 - clearbit1 $04ac + clearbit1 EVENT_BEAT_COOLTRAINERM_SEAN + clearbit1 EVENT_BEAT_COOLTRAINERF_CAROL + clearbit1 EVENT_BEAT_GENTLEMAN_EDWARD + clearbit1 EVENT_BEAT_BEAUTY_CASSIE + clearbit1 EVENT_BEAT_PSYCHIC_RODNEY + clearbit1 EVENT_BEAT_SUPER_NERD_SHAWN + clearbit1 EVENT_BEAT_SAILOR_GARRETT + clearbit1 EVENT_BEAT_FISHER_JONAH + clearbit1 EVENT_BEAT_BLACKBELT_WAI UnknownScript_0x7490a: ; 0x7490a clearbit1 $002f appear $2 diff --git a/maps/PewterCity.asm b/maps/PewterCity.asm index 1db609539..5f41c2a05 100644 --- a/maps/PewterCity.asm +++ b/maps/PewterCity.asm @@ -26,12 +26,12 @@ BugCatcherScript_0x18c00c: ; 0x18c00c GrampsScript_0x18c00f: ; 0x18c00f faceplayer loadfont - checkbit1 $0079 + checkbit1 EVENT_GOT_SILVER_WING iftrue UnknownScript_0x18c023 2writetext UnknownText_0x18c0c6 keeptextopen verbosegiveitem SILVER_WING, 1 - setbit1 $0079 + setbit1 EVENT_GOT_SILVER_WING loadmovesprites end ; 0x18c023 diff --git a/maps/PewterGym.asm b/maps/PewterGym.asm index 608c6886c..427a77195 100644 --- a/maps/PewterGym.asm +++ b/maps/PewterGym.asm @@ -18,8 +18,8 @@ BrockScript_0x1a2864: ; 0x1a2864 loadtrainer BROCK, 1 startbattle returnafterbattle - setbit1 $04c5 - setbit1 $042b + setbit1 EVENT_BEAT_BROCK + setbit1 EVENT_BEAT_CAMPER_JERRY loadfont 2writetext UnknownText_0x1a2a3d playsound $009c @@ -70,7 +70,7 @@ CamperJerryScript: ; 0x1a28a4 PewterGymGuyScript: ; 0x1a28ac faceplayer loadfont - checkbit1 $04c5 + checkbit1 EVENT_BEAT_BROCK iftrue .PewterGymGuyWinScript 2writetext PewterGymGuyText closetext diff --git a/maps/PokeCenter2F.asm b/maps/PokeCenter2F.asm index 63aa75f5c..6f9503fb6 100644 --- a/maps/PokeCenter2F.asm +++ b/maps/PokeCenter2F.asm @@ -77,7 +77,7 @@ UnknownScript_0x192895: ; 0x192895 ; 0x19289d LinkReceptionistScript_0x19289d: ; 0x19289d - checkbit1 $001f + checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM iffalse UnknownScript_0x19288d loadfont 2writetext UnknownText_0x192e3a @@ -190,7 +190,7 @@ UnknownScript_0x19294a: ; 0x19294a ; 0x192952 LinkReceptionistScript_0x192952: ; 0x192952 - checkbit1 $001f + checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM iffalse UnknownScript_0x192895 loadfont 2writetext UnknownText_0x192de0 diff --git a/maps/PokemonFanClub.asm b/maps/PokemonFanClub.asm index ba8b2fe06..f2b4e8b62 100644 --- a/maps/PokemonFanClub.asm +++ b/maps/PokemonFanClub.asm @@ -9,9 +9,9 @@ PokemonFanClub_MapScriptHeader: ; 0x1917e7 GentlemanScript_0x1917e9: ; 0x1917e9 faceplayer loadfont - checkbit1 $00d4 + checkbit1 EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT iftrue UnknownScript_0x191815 - checkbit1 $00d3 + checkbit1 EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT_BUT_BAG_WAS_FULL iftrue UnknownScript_0x191802 2writetext UnknownText_0x191881 yesorno @@ -23,7 +23,7 @@ UnknownScript_0x191802: ; 0x191802 keeptextopen verbosegiveitem RARE_CANDY, 1 iffalse UnknownScript_0x19181f - setbit1 $00d4 + setbit1 EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT 2writetext UnknownText_0x191a72 closetext loadmovesprites @@ -52,9 +52,9 @@ ReceptionistScript_0x191821: ; 0x191821 FisherScript_0x191824: ; 0x191824 faceplayer loadfont - checkbit1 $00d2 + checkbit1 EVENT_GOT_LOST_ITEM_FROM_FAN_CLUB iftrue UnknownScript_0x19185f - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x191838 2writetext UnknownText_0x191ba0 closetext @@ -64,7 +64,7 @@ FisherScript_0x191824: ; 0x191824 UnknownScript_0x191838: ; 0x191838 2writetext UnknownText_0x191bff - checkbit1 $00cf + checkbit1 EVENT_MET_COPYCAT_FOUND_OUT_ABOUT_LOST_ITEM iftrue UnknownScript_0x191844 closetext loadmovesprites @@ -83,7 +83,7 @@ UnknownScript_0x191844: ; 0x191844 playsound $0091 waitbutton itemnotify - setbit1 $00d2 + setbit1 EVENT_GOT_LOST_ITEM_FROM_FAN_CLUB loadmovesprites end ; 0x19185f diff --git a/maps/PowerPlant.asm b/maps/PowerPlant.asm index 8fe259a32..9247de7a8 100644 --- a/maps/PowerPlant.asm +++ b/maps/PowerPlant.asm @@ -45,9 +45,9 @@ UnknownScript_0x188dc5: ; 0x188dc5 OfficerScript_0x188df5: ; 0x188df5 faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x188e0f - checkbit1 $00ca + checkbit1 EVENT_MET_MANAGER_AT_POWER_PLANT iftrue UnknownScript_0x188e09 2writetext UnknownText_0x188ee0 closetext @@ -72,7 +72,7 @@ UnknownScript_0x188e0f: ; 0x188e0f GymGuyScript_0x188e15: ; 0x188e15 faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x188e23 2writetext UnknownText_0x188fcf closetext @@ -90,7 +90,7 @@ UnknownScript_0x188e23: ; 0x188e23 GymGuyScript_0x188e29: ; 0x188e29 faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x188e37 2writetext UnknownText_0x189079 closetext @@ -108,7 +108,7 @@ UnknownScript_0x188e37: ; 0x188e37 OfficerScript_0x188e3d: ; 0x188e3d faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x188e4b 2writetext UnknownText_0x18910e closetext @@ -126,7 +126,7 @@ UnknownScript_0x188e4b: ; 0x188e4b GymGuyScript_0x188e51: ; 0x188e51 faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x188e5f 2writetext UnknownText_0x1891c2 closetext @@ -144,18 +144,18 @@ UnknownScript_0x188e5f: ; 0x188e5f FisherScript_0x188e65: ; 0x188e65 faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x188eac checkitem MACHINE_PART iftrue UnknownScript_0x188e93 - checkbit1 $00ca + checkbit1 EVENT_MET_MANAGER_AT_POWER_PLANT iftrue UnknownScript_0x188e8d 2writetext UnknownText_0x189264 closetext loadmovesprites - setbit1 $00ca + setbit1 EVENT_MET_MANAGER_AT_POWER_PLANT clearbit1 $076d - clearbit1 $00fb + clearbit1 EVENT_FOUND_MACHINE_PART_IN_CERULEAN_GYM domaptrigger GROUP_CERULEAN_GYM, MAP_CERULEAN_GYM, $1 dotrigger $1 end @@ -172,20 +172,20 @@ UnknownScript_0x188e93: ; 0x188e93 2writetext UnknownText_0x18936e keeptextopen takeitem MACHINE_PART, 1 - setbit1 $00c9 + setbit1 EVENT_RETURNED_MACHINE_PART clearbit1 $0772 setbit1 $0771 setbit1 $076c - setbit1 $00cd + setbit1 EVENT_RESTORED_POWER_TO_KANTO clearbit1 $0749 UnknownScript_0x188eac: ; 0x188eac - checkbit1 $00df + checkbit1 EVENT_GOT_TM07_ZAP_CANNON iftrue UnknownScript_0x188ec5 2writetext UnknownText_0x1893c4 keeptextopen verbosegiveitem TM_07, 1 iffalse UnknownScript_0x188ec3 - setbit1 $00df + setbit1 EVENT_GOT_TM07_ZAP_CANNON 2writetext UnknownText_0x1893f4 closetext UnknownScript_0x188ec3: ; 0x188ec3 diff --git a/maps/RadioTower2F.asm b/maps/RadioTower2F.asm index 97c295dc4..cc9f529f8 100644 --- a/maps/RadioTower2F.asm +++ b/maps/RadioTower2F.asm @@ -170,7 +170,7 @@ BuenaScript_0x5d775: ; 0x5d775 loadfont checkbit2 $0013 iftrue UnknownScript_0x5d865 - checkbit1 $033d + checkbit1 EVENT_MET_BUENA iffalse UnknownScript_0x5d800 checkbit2 $0060 iftrue UnknownScript_0x5d82f @@ -231,7 +231,7 @@ UnknownScript_0x5d7be: ; 0x5d7be UnknownScript_0x5d800: ; 0x5d800 2writetext UnknownText_0x5dcf4 keeptextopen - setbit1 $033d + setbit1 EVENT_MET_BUENA verbosegiveitem BLUE_CARD, 1 UnknownScript_0x5d80a: ; 0x5d80a 2writetext UnknownText_0x5de10 @@ -239,7 +239,7 @@ UnknownScript_0x5d80a: ; 0x5d80a loadmovesprites checkcellnum $25 iftrue UnknownScript_0x5d81a - checkbit1 $033c + checkbit1 EVENT_BUENA_OFFERED_HER_PHONE_NUMBER iftrue UnknownScript_0x5d8cc UnknownScript_0x5d81a: ; 0x5d81a spriteface $b, $3 @@ -263,7 +263,7 @@ UnknownScript_0x5d82f: ; 0x5d82f loadmovesprites checkcellnum $25 iftrue UnknownScript_0x5d83f - checkbit1 $033c + checkbit1 EVENT_BUENA_OFFERED_HER_PHONE_NUMBER iftrue UnknownScript_0x5d8cc UnknownScript_0x5d83f: ; 0x5d83f spriteface $b, $3 @@ -303,7 +303,7 @@ UnknownScript_0x5d86b: ; 0x5d86b loadmovesprites checkcellnum $25 iftrue UnknownScript_0x5d87b - checkbit1 $029e + checkbit1 EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD iftrue UnknownScript_0x5d8cc UnknownScript_0x5d87b: ; 0x5d87b spriteface $b, $3 @@ -316,7 +316,7 @@ UnknownScript_0x5d87f: ; 0x5d87f loadmovesprites checkcellnum $25 iftrue UnknownScript_0x5d88f - checkbit1 $029e + checkbit1 EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD iftrue UnknownScript_0x5d8cc UnknownScript_0x5d88f: ; 0x5d88f spriteface $b, $3 @@ -329,7 +329,7 @@ UnknownScript_0x5d893: ; 0x5d893 loadmovesprites checkcellnum $25 iftrue UnknownScript_0x5d8a3 - checkbit1 $033c + checkbit1 EVENT_BUENA_OFFERED_HER_PHONE_NUMBER iftrue UnknownScript_0x5d8cc UnknownScript_0x5d8a3: ; 0x5d8a3 end @@ -343,11 +343,11 @@ UnknownScript_0x5d8a4: ; 0x5d8a4 pause 15 spriteface $0, $1 pause 15 - checkbit1 $029e + checkbit1 EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD iftrue UnknownScript_0x5d8cc showemote $0, $b, 15 - setbit1 $029e - setbit1 $033c + setbit1 EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD + setbit1 EVENT_BUENA_OFFERED_HER_PHONE_NUMBER loadfont 2writetext UnknownText_0x5e1ee 2jump UnknownScript_0x5d8d0 diff --git a/maps/RadioTower3F.asm b/maps/RadioTower3F.asm index 4d6b7b71f..6037234c6 100644 --- a/maps/RadioTower3F.asm +++ b/maps/RadioTower3F.asm @@ -11,7 +11,7 @@ RadioTower3F_MapScriptHeader: ; 0x5e53e ; 0x5e543 UnknownScript_0x5e543: ; 0x5e543 - checkbit1 $0025 + checkbit1 EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER iftrue UnknownScript_0x5e54a return ; 0x5e54a @@ -29,7 +29,7 @@ SuperNerdScript_0x5e553: ; 0x5e553 GymGuyScript_0x5e556: ; 0x5e556 faceplayer loadfont - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x5e564 2writetext UnknownText_0x5e682 closetext @@ -47,11 +47,11 @@ UnknownScript_0x5e564: ; 0x5e564 CooltrainerFScript_0x5e56a: ; 0x5e56a faceplayer loadfont - checkbit1 $0047 + checkbit1 EVENT_GOT_SUNNY_DAY_FROM_RADIO_TOWER iftrue UnknownScript_0x5e59d - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x5e58a - checkbit1 $0025 + checkbit1 EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER iftrue UnknownScript_0x5e584 2writetext UnknownText_0x5e754 closetext @@ -74,7 +74,7 @@ UnknownScript_0x5e58a: ; 0x5e58a 2writetext UnknownText_0x5e821 closetext loadmovesprites - setbit1 $0047 + setbit1 EVENT_GOT_SUNNY_DAY_FROM_RADIO_TOWER end ; 0x5e59d @@ -206,7 +206,7 @@ MapRadioTower3FSignpost2Script: ; 0x5e5f3 loadfont 2writetext UnknownText_0x5eaa4 closetext - checkbit1 $0025 + checkbit1 EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER iftrue UnknownScript_0x5e603 checkitem CARD_KEY iftrue UnknownScript_0x5e605 @@ -218,7 +218,7 @@ UnknownScript_0x5e603: ; 0x5e603 UnknownScript_0x5e605: ; 0x5e605 2writetext UnknownText_0x5eabc closetext - setbit1 $0025 + setbit1 EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER playsound $001f changeblock $e, $2, $2a changeblock $e, $4, $1 diff --git a/maps/RadioTower4F.asm b/maps/RadioTower4F.asm index 85443e0f7..5300c23b2 100644 --- a/maps/RadioTower4F.asm +++ b/maps/RadioTower4F.asm @@ -13,9 +13,9 @@ FisherScript_0x5eb82: ; 0x5eb82 TeacherScript_0x5eb85: ; 0x5eb85 faceplayer loadfont - checkbit1 $0048 + checkbit1 EVENT_GOT_PINK_BOW_FROM_MARY iftrue UnknownScript_0x5ebac - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x5eb99 2writetext UnknownText_0x5ec68 closetext @@ -31,7 +31,7 @@ UnknownScript_0x5eb99: ; 0x5eb99 2writetext UnknownText_0x5ecef closetext loadmovesprites - setbit1 $0048 + setbit1 EVENT_GOT_PINK_BOW_FROM_MARY end ; 0x5ebac diff --git a/maps/RadioTower5F.asm b/maps/RadioTower5F.asm index 4f95cc170..4f0588598 100644 --- a/maps/RadioTower5F.asm +++ b/maps/RadioTower5F.asm @@ -54,7 +54,7 @@ UnknownScript_0x60011: ; 0x60011 GentlemanScript_0x60046: ; 0x60046 faceplayer loadfont - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x60054 2writetext UnknownText_0x60246 closetext @@ -122,7 +122,7 @@ UnknownScript_0x6006e: ; 0x6006e pause 15 special $0032 setbit1 $0571 - setbit1 $0021 + setbit1 EVENT_CLEARED_RADIO_TOWER clearbit2 $0013 setbit1 $06cc setbit1 $06cd @@ -148,7 +148,7 @@ UnknownScript_0x6006e: ; 0x6006e loadmovesprites dotrigger $2 domaptrigger GROUP_ECRUTEAK_HOUSE, MAP_ECRUTEAK_HOUSE, $0 - setbit1 $0078 + setbit1 EVENT_GOT_CLEAR_BELL setbit1 $0761 2jump UnknownScript_0x600f1 ; 0x600f1 diff --git a/maps/RedsHouse1F.asm b/maps/RedsHouse1F.asm index c52c06ffa..266fbb3c7 100644 --- a/maps/RedsHouse1F.asm +++ b/maps/RedsHouse1F.asm @@ -16,12 +16,12 @@ UnknownScript_0x19aea2: ; 0x19aea2 RedsMomScript_0x19aea3: ; 0x19aea3 faceplayer loadfont - checkbit1 $00cc + checkbit1 EVENT_MET_REDS_MOM iftrue UnknownScript_0x19aeb4 2writetext UnknownText_0x19aec0 closetext loadmovesprites - setbit1 $00cc + setbit1 EVENT_MET_REDS_MOM end ; 0x19aeb4 diff --git a/maps/Route10PokeCenter1F.asm b/maps/Route10PokeCenter1F.asm index 177781e77..c44e702b5 100644 --- a/maps/Route10PokeCenter1F.asm +++ b/maps/Route10PokeCenter1F.asm @@ -17,7 +17,7 @@ GentlemanScript_0x188bd7: ; 0x188bd7 GymGuyScript_0x188bda: ; 0x188bda faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x188be8 2writetext UnknownText_0x188c26 closetext diff --git a/maps/Route12SuperRodHouse.asm b/maps/Route12SuperRodHouse.asm index 063aece9a..33df4505a 100644 --- a/maps/Route12SuperRodHouse.asm +++ b/maps/Route12SuperRodHouse.asm @@ -9,7 +9,7 @@ Route12SuperRodHouse_MapScriptHeader: ; 0x7f482 FishingGuruScript_0x7f484: ; 0x7f484 faceplayer loadfont - checkbit1 $0019 + checkbit1 EVENT_GOT_SUPER_ROD iftrue UnknownScript_0x7f4a0 2writetext UnknownText_0x7f4af yesorno @@ -18,7 +18,7 @@ FishingGuruScript_0x7f484: ; 0x7f484 keeptextopen verbosegiveitem SUPER_ROD, 1 iffalse UnknownScript_0x7f4aa - setbit1 $0019 + setbit1 EVENT_GOT_SUPER_ROD UnknownScript_0x7f4a0: ; 0x7f4a0 2writetext UnknownText_0x7f57c closetext diff --git a/maps/Route25.asm b/maps/Route25.asm index 4b4b87435..9aa6a9a6e 100644 --- a/maps/Route25.asm +++ b/maps/Route25.asm @@ -280,13 +280,13 @@ CooltrainerMScript_0x19efac: ; 0x19efac loadfont checkbit1 $0558 iftrue UnknownScript_0x19efda - checkbit1 $00d8 + checkbit1 EVENT_CLEARED_NUGGET_BRIDGE iftrue UnknownScript_0x19efc7 2writetext UnknownText_0x19f43b keeptextopen verbosegiveitem NUGGET, 1 iffalse UnknownScript_0x19efde - setbit1 $00d8 + setbit1 EVENT_CLEARED_NUGGET_BRIDGE UnknownScript_0x19efc7: ; 0x19efc7 2writetext UnknownText_0x19f49d closetext diff --git a/maps/Route26.asm b/maps/Route26.asm index d6507166c..29df4ac92 100644 --- a/maps/Route26.asm +++ b/maps/Route26.asm @@ -91,7 +91,7 @@ UnknownScript_0x1a4d79: ; 0x1a4d79 if_equal $1, UnknownScript_0x1a4d96 if_equal $0, UnknownScript_0x1a4d9c UnknownScript_0x1a4d90: ; 0x1a4d90 - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x1a4db6 UnknownScript_0x1a4d96: ; 0x1a4d96 checkbit1 $0044 @@ -242,7 +242,7 @@ UnknownScript_0x1a4e35: ; 0x1a4e35 if_equal $1, UnknownScript_0x1a4e52 if_equal $0, UnknownScript_0x1a4e58 UnknownScript_0x1a4e4c: ; 0x1a4e4c - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x1a4e72 UnknownScript_0x1a4e52: ; 0x1a4e52 checkbit1 $0044 diff --git a/maps/Route27.asm b/maps/Route27.asm index a90d87176..5f5de922b 100644 --- a/maps/Route27.asm +++ b/maps/Route27.asm @@ -132,7 +132,7 @@ UnknownScript_0x1a08ff: ; 0x1a08ff if_equal $1, UnknownScript_0x1a091c if_equal $0, UnknownScript_0x1a0922 UnknownScript_0x1a0916: ; 0x1a0916 - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x1a093c UnknownScript_0x1a091c: ; 0x1a091c checkbit1 $0044 @@ -334,7 +334,7 @@ UnknownScript_0x1a09e9: ; 0x1a09e9 if_equal $1, UnknownScript_0x1a0a06 if_equal $0, UnknownScript_0x1a0a0c UnknownScript_0x1a0a00: ; 0x1a0a00 - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x1a0a26 UnknownScript_0x1a0a06: ; 0x1a0a06 checkbit1 $0044 diff --git a/maps/Route27SandstormHouse.asm b/maps/Route27SandstormHouse.asm index 2a2072d32..2de720eac 100644 --- a/maps/Route27SandstormHouse.asm +++ b/maps/Route27SandstormHouse.asm @@ -9,7 +9,7 @@ Route27SandstormHouse_MapScriptHeader: ; 0x7b392 GrannyScript_0x7b394: ; 0x7b394 faceplayer loadfont - checkbit1 $0075 + checkbit1 EVENT_GOT_TM37_SANDSTORM iftrue UnknownScript_0x7b3b7 special $0059 2writetext UnknownText_0x7b3c6 @@ -23,7 +23,7 @@ UnknownScript_0x7b3aa: ; 0x7b3aa keeptextopen verbosegiveitem TM_37, 1 iffalse UnknownScript_0x7b3bb - setbit1 $0075 + setbit1 EVENT_GOT_TM37_SANDSTORM UnknownScript_0x7b3b7: ; 0x7b3b7 2writetext UnknownText_0x7b48f closetext diff --git a/maps/Route28FamousSpeechHouse.asm b/maps/Route28FamousSpeechHouse.asm index fe897806b..3dc744a33 100644 --- a/maps/Route28FamousSpeechHouse.asm +++ b/maps/Route28FamousSpeechHouse.asm @@ -16,13 +16,13 @@ UnknownScript_0x1ae657: ; 0x1ae657 CooltrainerFScript_0x1ae658: ; 0x1ae658 faceplayer loadfont - checkbit1 $0074 + checkbit1 EVENT_GOT_TM47_STEEL_WING iftrue UnknownScript_0x1ae66f 2writetext UnknownText_0x1ae682 keeptextopen verbosegiveitem TM_47, 1 iffalse UnknownScript_0x1ae66d - setbit1 $0074 + setbit1 EVENT_GOT_TM47_STEEL_WING UnknownScript_0x1ae66d: ; 0x1ae66d loadmovesprites end diff --git a/maps/Route29.asm b/maps/Route29.asm index 14ee63449..a6f5e2e92 100644 --- a/maps/Route29.asm +++ b/maps/Route29.asm @@ -42,7 +42,7 @@ UnknownScript_0x1a0f6d: ; 0x1a0f6d showemote $0, $2, 15 applymovement $2, MovementData_0x1a108d spriteface $0, $2 - setbit1 $0041 + setbit1 EVENT_DUDE_TALKED_TO_YOU loadfont 2writetext UnknownText_0x1a10df yesorno @@ -59,7 +59,7 @@ UnknownScript_0x1a0f6d: ; 0x1a0f6d closetext loadmovesprites dotrigger $0 - setbit1 $0042 + setbit1 EVENT_LEARNED_TO_CATCH_POKEMON end ; 0x1a0fa3 @@ -68,7 +68,7 @@ UnknownScript_0x1a0fa3: ; 0x1a0fa3 showemote $0, $2, 15 applymovement $2, MovementData_0x1a1094 spriteface $0, $2 - setbit1 $0041 + setbit1 EVENT_DUDE_TALKED_TO_YOU loadfont 2writetext UnknownText_0x1a10df yesorno @@ -85,7 +85,7 @@ UnknownScript_0x1a0fa3: ; 0x1a0fa3 closetext loadmovesprites dotrigger $0 - setbit1 $0042 + setbit1 EVENT_LEARNED_TO_CATCH_POKEMON end ; 0x1a0fd9 @@ -112,9 +112,9 @@ CooltrainerMScript_0x1a0ff1: ; 0x1a0ff1 loadfont checkcode $10 if_equal $0, UnknownScript_0x1a101c - checkbit1 $0042 + checkbit1 EVENT_LEARNED_TO_CATCH_POKEMON iftrue UnknownScript_0x1a101c - checkbit1 $001f + checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM iffalse UnknownScript_0x1a101c 2writetext UnknownText_0x1a11e3 yesorno @@ -126,7 +126,7 @@ CooltrainerMScript_0x1a0ff1: ; 0x1a0ff1 2writetext UnknownText_0x1a114d closetext loadmovesprites - setbit1 $0042 + setbit1 EVENT_LEARNED_TO_CATCH_POKEMON end ; 0x1a101c @@ -180,21 +180,21 @@ UnknownScript_0x1a1043: ; 0x1a1043 TeacherScript_0x1a1049: ; 0x1a1049 faceplayer loadfont - checkbit1 $0065 + checkbit1 EVENT_GOT_PINK_BOW_FROM_TUSCANY iftrue UnknownScript_0x1a1077 checkcode $b if_not_equal TUESDAY, UnknownScript_0x1a107d - checkbit1 $0064 + checkbit1 EVENT_MET_TUSCANY_OF_TUESDAY iftrue UnknownScript_0x1a1064 2writetext UnknownText_0x1a13b2 keeptextopen - setbit1 $0064 + setbit1 EVENT_MET_TUSCANY_OF_TUESDAY UnknownScript_0x1a1064: ; 0x1a1064 2writetext UnknownText_0x1a142f keeptextopen verbosegiveitem PINK_BOW, 1 iffalse UnknownScript_0x1a107b - setbit1 $0065 + setbit1 EVENT_GOT_PINK_BOW_FROM_TUSCANY 2writetext UnknownText_0x1a146f closetext loadmovesprites diff --git a/maps/Route30.asm b/maps/Route30.asm index 58eb0d93f..ddf2dffd4 100644 --- a/maps/Route30.asm +++ b/maps/Route30.asm @@ -88,7 +88,7 @@ UnknownScript_0x1a16ff: ; 0x1a16ff checkbit1 $0044 iftrue UnknownScript_0x1a174b UnknownScript_0x1a1705: ; 0x1a1705 - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x1a173e UnknownScript_0x1a170b: ; 0x1a170b checkbit2 $0047 @@ -137,7 +137,7 @@ UnknownScript_0x1a174b: ; 0x1a174b startbattle returnafterbattle clearbit2 $006b - checkbit1 $0338 + checkbit1 EVENT_JOEY_HP_UP iftrue UnknownScript_0x1a176f checkbit1 $0266 iftrue UnknownScript_0x1a176e @@ -158,7 +158,7 @@ UnknownScript_0x1a176f: ; 0x1a176f closetext verbosegiveitem HP_UP, 1 iffalse UnknownScript_0x1a179f - clearbit1 $0338 + clearbit1 EVENT_JOEY_HP_UP setbit1 $0266 2jump UnknownScript_0x1a178f ; 0x1a1783 @@ -199,7 +199,7 @@ UnknownScript_0x1a179b: ; 0x1a179b ; 0x1a179f UnknownScript_0x1a179f: ; 0x1a179f - setbit1 $0338 + setbit1 EVENT_JOEY_HP_UP jumpstd $0021 end ; 0x1a17a6 @@ -270,7 +270,7 @@ Bug_catcherDonScript: ; 0x1a17ca YoungsterScript_0x1a17d2: ; 0x1a17d2 faceplayer loadfont - checkbit1 $001f + checkbit1 EVENT_GAVE_MYSTERY_EGG_TO_ELM iftrue UnknownScript_0x1a17e0 2writetext UnknownText_0x1a1a6a closetext diff --git a/maps/Route30BerrySpeechHouse.asm b/maps/Route30BerrySpeechHouse.asm index 0c9c59b5e..52437a0c9 100644 --- a/maps/Route30BerrySpeechHouse.asm +++ b/maps/Route30BerrySpeechHouse.asm @@ -9,13 +9,13 @@ Route30BerrySpeechHouse_MapScriptHeader: ; 0x196d62 PokefanMScript_0x196d64: ; 0x196d64 faceplayer loadfont - checkbit1 $0027 + checkbit1 EVENT_GOT_BERRY_FROM_ROUTE_30_HOUSE iftrue UnknownScript_0x196d79 2writetext UnknownText_0x196d82 keeptextopen verbosegiveitem BERRY, 1 iffalse UnknownScript_0x196d7d - setbit1 $0027 + setbit1 EVENT_GOT_BERRY_FROM_ROUTE_30_HOUSE UnknownScript_0x196d79: ; 0x196d79 2writetext UnknownText_0x196dec closetext diff --git a/maps/Route31.asm b/maps/Route31.asm index 34f03fc6d..0948f2464 100644 --- a/maps/Route31.asm +++ b/maps/Route31.asm @@ -11,7 +11,7 @@ Route31_MapScriptHeader: ; 0x1a5437 ; 0x1a543c UnknownScript_0x1a543c: ; 0x1a543c - checkbit1 $0040 + checkbit1 EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST iffalse UnknownScript_0x1a5443 return ; 0x1a5443 @@ -84,7 +84,7 @@ UnknownScript_0x1a54b2: ; 0x1a54b2 checkbit1 $0044 iftrue UnknownScript_0x1a54fe UnknownScript_0x1a54b8: ; 0x1a54b8 - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x1a54f1 UnknownScript_0x1a54be: ; 0x1a54be checkbit2 $0049 @@ -138,13 +138,13 @@ UnknownScript_0x1a54fe: ; 0x1a54fe UnknownScript_0x1a5507: ; 0x1a5507 2call UnknownScript_0x1a5568 - checkbit1 $032b + checkbit1 EVENT_WADE_HAS_BERRY iftrue UnknownScript_0x1a5522 - checkbit1 $032c + checkbit1 EVENT_WADE_HAS_PSNCUREBERRY iftrue UnknownScript_0x1a552b - checkbit1 $032d + checkbit1 EVENT_WADE_HAS_PRZCUREBERRY iftrue UnknownScript_0x1a5534 - checkbit1 $032e + checkbit1 EVENT_WADE_HAS_BITTER_BERRY iftrue UnknownScript_0x1a553d UnknownScript_0x1a5522: ; 0x1a5522 verbosegiveitem BERRY, 1 @@ -224,9 +224,9 @@ UnknownScript_0x1a556c: ; 0x1a556c FisherScript_0x1a5570: ; 0x1a5570 faceplayer loadfont - checkbit1 $0053 + checkbit1 EVENT_GOT_TM50_NIGHTMARE iftrue UnknownScript_0x1a55af - checkbit1 $0050 + checkbit1 EVENT_GOT_KENYA iftrue UnknownScript_0x1a5584 2writetext UnknownText_0x1a56d9 closetext @@ -246,10 +246,10 @@ UnknownScript_0x1a5584: ; 0x1a5584 keeptextopen 2writetext UnknownText_0x1a57ba keeptextopen - setbit1 $0051 + setbit1 EVENT_GAVE_KENYA verbosegiveitem TM_50, 1 iffalse UnknownScript_0x1a55b3 - setbit1 $0053 + setbit1 EVENT_GOT_TM50_NIGHTMARE UnknownScript_0x1a55af: ; 0x1a55af 2writetext UnknownText_0x1a5896 closetext diff --git a/maps/Route32.asm b/maps/Route32.asm index 2651777e9..8a16abafe 100644 --- a/maps/Route32.asm +++ b/maps/Route32.asm @@ -43,11 +43,11 @@ CooltrainerMScript_0x19046f: ; 0x19046f faceplayer UnknownScript_0x190470: ; 0x190470 loadfont - checkbit1 $005d + checkbit1 EVENT_GOT_MIRACLE_SEED_IN_ROUTE_32 iftrue UnknownScript_0x1904a5 checkbit2 $001b iffalse UnknownScript_0x19049f - checkbit1 $002d + checkbit1 EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE iftrue UnknownScript_0x19048f 2writetext UnknownText_0x1907ab closetext @@ -67,7 +67,7 @@ UnknownScript_0x19048f: ; 0x19048f keeptextopen verbosegiveitem MIRACLE_SEED, 1 iffalse UnknownScript_0x1904a9 - setbit1 $005d + setbit1 EVENT_GOT_MIRACLE_SEED_IN_ROUTE_32 2jump UnknownScript_0x1904a5 ; 0x19049f @@ -106,13 +106,13 @@ UnknownScript_0x1904ab: ; 0x1904ab FisherScript_0x1904ce: ; 0x1904ce faceplayer loadfont - checkbit1 $004e + checkbit1 EVENT_GOT_TM05_ROAR iftrue UnknownScript_0x1904e3 2writetext UnknownText_0x191133 keeptextopen verbosegiveitem TM_05, 1 iffalse UnknownScript_0x1904e7 - setbit1 $004e + setbit1 EVENT_GOT_TM05_ROAR UnknownScript_0x1904e3: ; 0x1904e3 2writetext UnknownText_0x19118c closetext @@ -266,7 +266,7 @@ UnknownScript_0x19057d: ; 0x19057d if_equal $1, UnknownScript_0x1905ae if_equal $0, UnknownScript_0x1905b4 UnknownScript_0x19059c: ; 0x19059c - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x1905e8 UnknownScript_0x1905a2: ; 0x1905a2 checkbit1 $0044 @@ -453,10 +453,10 @@ UnknownScript_0x19068c: ; 0x19068c checkbit1 $0044 iftrue UnknownScript_0x1906d8 UnknownScript_0x190692: ; 0x190692 - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x1906cb UnknownScript_0x190698: ; 0x190698 - checkbit1 $0022 + checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT iftrue UnknownScript_0x1906be UnknownScript_0x19069e: ; 0x19069e checkbit2 $0048 @@ -630,21 +630,21 @@ Bird_keeperPeterScript: ; 0x190731 LassScript_0x190739: ; 0x190739 faceplayer loadfont - checkbit1 $0063 + checkbit1 EVENT_GOT_POISON_BARB_FROM_FRIEDA iftrue UnknownScript_0x190767 checkcode $b if_not_equal FRIDAY, UnknownScript_0x19076d - checkbit1 $0062 + checkbit1 EVENT_MET_FRIEDA_OF_FRIDAY iftrue UnknownScript_0x190754 2writetext UnknownText_0x1911c1 keeptextopen - setbit1 $0062 + setbit1 EVENT_MET_FRIEDA_OF_FRIDAY UnknownScript_0x190754: ; 0x190754 2writetext UnknownText_0x191204 keeptextopen verbosegiveitem POISON_BARB, 1 iffalse UnknownScript_0x19076b - setbit1 $0063 + setbit1 EVENT_GOT_POISON_BARB_FROM_FRIEDA 2writetext UnknownText_0x191222 closetext loadmovesprites diff --git a/maps/Route32PokeCenter1F.asm b/maps/Route32PokeCenter1F.asm index 59adccc64..472b65c34 100644 --- a/maps/Route32PokeCenter1F.asm +++ b/maps/Route32PokeCenter1F.asm @@ -13,7 +13,7 @@ NurseScript_0x69b52: ; 0x69b52 FishingGuruScript_0x69b55: ; 0x69b55 faceplayer loadfont - checkbit1 $0017 + checkbit1 EVENT_GOT_OLD_ROD iftrue UnknownScript_0x69b7a 2writetext UnknownText_0x69b83 yesorno @@ -24,7 +24,7 @@ FishingGuruScript_0x69b55: ; 0x69b55 2writetext UnknownText_0x69c1b closetext loadmovesprites - setbit1 $0017 + setbit1 EVENT_GOT_OLD_ROD end ; 0x69b74 diff --git a/maps/Route33.asm b/maps/Route33.asm index cd81e5d19..fb3bd84bf 100644 --- a/maps/Route33.asm +++ b/maps/Route33.asm @@ -70,13 +70,13 @@ UnknownScript_0x1ac051: ; 0x1ac051 if_equal $1, UnknownScript_0x1ac082 if_equal $0, UnknownScript_0x1ac088 UnknownScript_0x1ac070: ; 0x1ac070 - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x1ac0bc UnknownScript_0x1ac076: ; 0x1ac076 checkbit1 $0044 iftrue UnknownScript_0x1ac0af UnknownScript_0x1ac07c: ; 0x1ac07c - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x1ac0a2 UnknownScript_0x1ac082: ; 0x1ac082 checkbit2 $0047 diff --git a/maps/Route34.asm b/maps/Route34.asm index 4eee05525..8bdd35677 100644 --- a/maps/Route34.asm +++ b/maps/Route34.asm @@ -146,7 +146,7 @@ UnknownScript_0x780bd: ; 0x780bd if_equal $1, UnknownScript_0x780ee if_equal $0, UnknownScript_0x780f4 UnknownScript_0x780dc: ; 0x780dc - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x78128 UnknownScript_0x780e2: ; 0x780e2 checkbit1 $0044 @@ -303,13 +303,13 @@ UnknownScript_0x7819f: ; 0x7819f if_equal $1, UnknownScript_0x781d0 if_equal $0, UnknownScript_0x781d6 UnknownScript_0x781be: ; 0x781be - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x7820a UnknownScript_0x781c4: ; 0x781c4 checkbit1 $0044 iftrue UnknownScript_0x781fd UnknownScript_0x781ca: ; 0x781ca - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x781f0 UnknownScript_0x781d0: ; 0x781d0 checkbit2 $0049 @@ -560,7 +560,7 @@ TrainerCooltrainerfIrene: ; 0x782b8 CooltrainerfIreneScript: ; 0x782c4 talkaftercancel loadfont - checkbit1 $0070 + checkbit1 EVENT_GOT_SOFT_SAND_FROM_KATE iftrue UnknownScript_0x782d2 2writetext UnknownText_0x7877f closetext @@ -598,7 +598,7 @@ TrainerCooltrainerfJenn: ; 0x782d8 CooltrainerfJennScript: ; 0x782e4 talkaftercancel loadfont - checkbit1 $0070 + checkbit1 EVENT_GOT_SOFT_SAND_FROM_KATE iftrue UnknownScript_0x782f2 2writetext UnknownText_0x78836 closetext @@ -636,13 +636,13 @@ TrainerCooltrainerfKate: ; 0x782f8 CooltrainerfKateScript: ; 0x78304 talkaftercancel loadfont - checkbit1 $0070 + checkbit1 EVENT_GOT_SOFT_SAND_FROM_KATE iftrue UnknownScript_0x78319 2writetext UnknownText_0x788e2 keeptextopen verbosegiveitem SOFT_SAND, 1 iffalse UnknownScript_0x7831d - setbit1 $0070 + setbit1 EVENT_GOT_SOFT_SAND_FROM_KATE UnknownScript_0x78319: ; 0x78319 2writetext UnknownText_0x7892b closetext diff --git a/maps/Route34IlexForestGate.asm b/maps/Route34IlexForestGate.asm index 60da81b17..dc9a16e59 100644 --- a/maps/Route34IlexForestGate.asm +++ b/maps/Route34IlexForestGate.asm @@ -48,13 +48,13 @@ TeacherScript_0x62d63: ; 0x62d63 loadfont checkbit1 $00c0 iftrue UnknownScript_0x62d84 - checkbit1 $007a + checkbit1 EVENT_GOT_TM12_SWEET_SCENT iftrue UnknownScript_0x62d7e 2writetext UnknownText_0x62d9d keeptextopen verbosegiveitem TM_12, 1 iffalse UnknownScript_0x62d82 - setbit1 $007a + setbit1 EVENT_GOT_TM12_SWEET_SCENT UnknownScript_0x62d7e: ; 0x62d7e 2writetext UnknownText_0x62df6 closetext diff --git a/maps/Route35.asm b/maps/Route35.asm index 74f8d8741..713d2ecb5 100644 --- a/maps/Route35.asm +++ b/maps/Route35.asm @@ -292,7 +292,7 @@ UnknownScript_0x19c9bb: ; 0x19c9bb if_equal $1, UnknownScript_0x19c9ec if_equal $0, UnknownScript_0x19c9f2 UnknownScript_0x19c9da: ; 0x19c9da - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x19ca26 UnknownScript_0x19c9e0: ; 0x19c9e0 checkbit1 $0044 diff --git a/maps/Route35Goldenrodgate.asm b/maps/Route35Goldenrodgate.asm index b67f859a5..0fbd6d2af 100644 --- a/maps/Route35Goldenrodgate.asm +++ b/maps/Route35Goldenrodgate.asm @@ -9,11 +9,11 @@ Route35Goldenrodgate_MapScriptHeader: ; 0x69d35 OfficerScript_0x69d37: ; 0x69d37 faceplayer loadfont - checkbit1 $0052 + checkbit1 EVENT_GOT_HP_UP_FROM_RANDY iftrue UnknownScript_0x69d92 - checkbit1 $0051 + checkbit1 EVENT_GAVE_KENYA iftrue UnknownScript_0x69d85 - checkbit1 $0050 + checkbit1 EVENT_GOT_KENYA iftrue UnknownScript_0x69d73 2writetext UnknownText_0x69ddd yesorno @@ -28,7 +28,7 @@ OfficerScript_0x69d37: ; 0x69d37 waitbutton givepoke SPEAROW, 10, 0, 1, GiftSpearowName, GiftSpearowOTName givepokeitem GiftSpearowMail - setbit1 $0050 + setbit1 EVENT_GOT_KENYA UnknownScript_0x69d73: ; 0x69d73 2writetext UnknownText_0x69ed6 closetext @@ -55,7 +55,7 @@ UnknownScript_0x69d85: ; 0x69d85 keeptextopen verbosegiveitem HP_UP, 1 iffalse UnknownScript_0x69d96 - setbit1 $0052 + setbit1 EVENT_GOT_HP_UP_FROM_RANDY UnknownScript_0x69d92: ; 0x69d92 2writetext UnknownText_0x69fd9 closetext @@ -77,7 +77,7 @@ GiftSpearowOTName: ; 0x69dbf PokefanFScript_0x69dc6: ; 0x69dc6 faceplayer loadfont - checkbit1 $002a + checkbit1 EVENT_FOUGHT_SUDOWOODO iftrue UnknownScript_0x69dd4 2writetext UnknownText_0x6a00a closetext diff --git a/maps/Route36.asm b/maps/Route36.asm index a7525ea81..032135784 100644 --- a/maps/Route36.asm +++ b/maps/Route36.asm @@ -44,7 +44,7 @@ UnknownScript_0x19401b: ; 0x19401b spriteface $0, $0 pause 10 dotrigger $0 - clearbit1 $07ae + clearbit1 EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY domaptrigger GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, $1 end ; 0x19403c @@ -81,7 +81,7 @@ WateredWeirdTreeScript: ; 0x194053 loadmovesprites loadpokedata SUDOWOODO, 20 startbattle - setbit1 $002a + setbit1 EVENT_FOUGHT_SUDOWOODO if_equal $2, UnknownScript_0x19407b disappear $4 variablesprite $4, $26 @@ -137,9 +137,9 @@ UnknownScript_0x1940b3: ; 0x1940b3 FisherScript_0x1940b9: ; 0x1940b9 faceplayer loadfont - checkbit1 $004b + checkbit1 EVENT_GOT_TM08_ROCK_SMASH iftrue UnknownScript_0x1940da - checkbit1 $002a + checkbit1 EVENT_FOUGHT_SUDOWOODO iftrue UnknownScript_0x1940cd 2writetext UnknownText_0x19446f closetext @@ -152,7 +152,7 @@ UnknownScript_0x1940cd: ; 0x1940cd keeptextopen verbosegiveitem TM_08, 1 iffalse UnknownScript_0x1940de - setbit1 $004b + setbit1 EVENT_GOT_TM08_ROCK_SMASH UnknownScript_0x1940da: ; 0x1940da 2writetext UnknownText_0x19452c closetext @@ -164,7 +164,7 @@ UnknownScript_0x1940de: ; 0x1940de LassScript_0x1940e0: ; 0x1940e0 faceplayer loadfont - checkbit1 $002a + checkbit1 EVENT_FOUGHT_SUDOWOODO iftrue UnknownScript_0x1940ee 2writetext UnknownText_0x194626 closetext @@ -239,7 +239,7 @@ UnknownScript_0x194140: ; 0x194140 if_equal $1, UnknownScript_0x194171 if_equal $0, UnknownScript_0x194177 UnknownScript_0x19415f: ; 0x19415f - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x1941ab UnknownScript_0x194165: ; 0x194165 checkbit1 $0044 @@ -384,21 +384,21 @@ PsychicMarkScript: ; 0x1941f9 YoungsterScript_0x194201: ; 0x194201 faceplayer loadfont - checkbit1 $0067 + checkbit1 EVENT_GOT_HARD_STONE_FROM_ARTHUR iftrue UnknownScript_0x19422f checkcode $b if_not_equal THURSDAY, UnknownScript_0x194235 - checkbit1 $0066 + checkbit1 EVENT_MET_ARTHUR_OF_THURSDAY iftrue UnknownScript_0x19421c 2writetext UnknownText_0x194800 keeptextopen - setbit1 $0066 + setbit1 EVENT_MET_ARTHUR_OF_THURSDAY UnknownScript_0x19421c: ; 0x19421c 2writetext UnknownText_0x19482d keeptextopen verbosegiveitem HARD_STONE, 1 iffalse UnknownScript_0x194233 - setbit1 $0067 + setbit1 EVENT_GOT_HARD_STONE_FROM_ARTHUR 2writetext UnknownText_0x194847 closetext loadmovesprites diff --git a/maps/Route37.asm b/maps/Route37.asm index f3ede525c..c70e38521 100644 --- a/maps/Route37.asm +++ b/maps/Route37.asm @@ -112,15 +112,15 @@ PsychicGregScript: ; 0x1a8db7 BugCatcherScript_0x1a8dbf: ; 0x1a8dbf faceplayer loadfont - checkbit1 $0069 + checkbit1 EVENT_GOT_MAGNET_FROM_SUNNY iftrue UnknownScript_0x1a8dfa checkcode $b if_not_equal SUNDAY, UnknownScript_0x1a8e00 - checkbit1 $0068 + checkbit1 EVENT_MET_SUNNY_OF_SUNDAY iftrue UnknownScript_0x1a8dda 2writetext UnknownText_0x1a8fc8 keeptextopen - setbit1 $0068 + setbit1 EVENT_MET_SUNNY_OF_SUNDAY UnknownScript_0x1a8dda: ; 0x1a8dda checkbit2 $0063 iftrue UnknownScript_0x1a8de7 @@ -135,7 +135,7 @@ UnknownScript_0x1a8de7: ; 0x1a8de7 UnknownScript_0x1a8deb: ; 0x1a8deb verbosegiveitem MAGNET, 1 iffalse UnknownScript_0x1a8dfe - setbit1 $0069 + setbit1 EVENT_GOT_MAGNET_FROM_SUNNY 2writetext UnknownText_0x1a905a closetext loadmovesprites diff --git a/maps/Route38.asm b/maps/Route38.asm index b22c26417..fd6a9ab6c 100644 --- a/maps/Route38.asm +++ b/maps/Route38.asm @@ -124,13 +124,13 @@ UnknownScript_0x1a1d82: ; 0x1a1d82 if_equal $1, UnknownScript_0x1a1db3 if_equal $0, UnknownScript_0x1a1db9 UnknownScript_0x1a1da1: ; 0x1a1da1 - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x1a1ded UnknownScript_0x1a1da7: ; 0x1a1da7 checkbit1 $0044 iftrue UnknownScript_0x1a1de0 UnknownScript_0x1a1dad: ; 0x1a1dad - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x1a1dd3 UnknownScript_0x1a1db3: ; 0x1a1db3 checkbit2 $0045 @@ -295,13 +295,13 @@ UnknownScript_0x1a1e75: ; 0x1a1e75 if_equal $1, UnknownScript_0x1a1ea6 if_equal $0, UnknownScript_0x1a1eac UnknownScript_0x1a1e94: ; 0x1a1e94 - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x1a1ee0 UnknownScript_0x1a1e9a: ; 0x1a1e9a checkbit1 $0044 iftrue UnknownScript_0x1a1ed3 UnknownScript_0x1a1ea0: ; 0x1a1ea0 - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x1a1ec6 UnknownScript_0x1a1ea6: ; 0x1a1ea6 checkbit2 $0049 diff --git a/maps/Route39.asm b/maps/Route39.asm index e454282af..ad255cd9b 100644 --- a/maps/Route39.asm +++ b/maps/Route39.asm @@ -45,11 +45,11 @@ PokefanmDerek1Script: ; 0x1a5b0b iftrue UnknownScript_0x1a5b6e checkpoke PIKACHU iffalse UnknownScript_0x1a5b5c - checkbit1 $028d + checkbit1 EVENT_SHOWED_DEREK_PIKACHU iftrue UnknownScript_0x1a5b33 2writetext UnknownText_0x1a5cf8 keeptextopen - setbit1 $028d + setbit1 EVENT_SHOWED_DEREK_PIKACHU 2call UnknownScript_0x1a5b62 2jump UnknownScript_0x1a5b36 ; 0x1a5b33 diff --git a/maps/Route39Barn.asm b/maps/Route39Barn.asm index af20dd5c3..e937bcc0b 100644 --- a/maps/Route39Barn.asm +++ b/maps/Route39Barn.asm @@ -9,7 +9,7 @@ Route39Barn_MapScriptHeader: ; 0x9cc74 TwinScript_0x9cc76: ; 0x9cc76 faceplayer loadfont - checkbit1 $003d + checkbit1 EVENT_HEALED_MOOMOO iftrue UnknownScript_0x9cc87 2writetext UnknownText_0x9cd2e closetext @@ -29,7 +29,7 @@ UnknownScript_0x9cc87: ; 0x9cc87 TwinScript_0x9cc90: ; 0x9cc90 faceplayer loadfont - checkbit1 $003d + checkbit1 EVENT_HEALED_MOOMOO iftrue UnknownScript_0x9cca1 2writetext UnknownText_0x9cd2e closetext @@ -48,14 +48,14 @@ UnknownScript_0x9cca1: ; 0x9cca1 TaurosScript_0x9ccaa: ; 0x9ccaa loadfont - checkbit1 $003d + checkbit1 EVENT_HEALED_MOOMOO iftrue UnknownScript_0x9cd25 2writetext UnknownText_0x9cd70 writebyte MILTANK special $005f keeptextopen 2writetext UnknownText_0x9cd80 - checkbit1 $003f + checkbit1 EVENT_TALKED_TO_FARMER_ABOUT_MOOMOO iftrue UnknownScript_0x9ccc6 closetext loadmovesprites @@ -109,7 +109,7 @@ UnknownScript_0x9cd04: ; 0x9cd04 2writetext UnknownText_0x9ce1b closetext loadmovesprites - setbit1 $003d + setbit1 EVENT_HEALED_MOOMOO end ; 0x9cd19 diff --git a/maps/Route39Farmhouse.asm b/maps/Route39Farmhouse.asm index 546f714c7..cef97e8da 100644 --- a/maps/Route39Farmhouse.asm +++ b/maps/Route39Farmhouse.asm @@ -9,12 +9,12 @@ Route39Farmhouse_MapScriptHeader: ; 0x9ceb2 PokefanMScript_0x9ceb4: ; 0x9ceb4 faceplayer loadfont - checkbit1 $003d + checkbit1 EVENT_HEALED_MOOMOO iftrue UnknownScript_0x9cec5 2writetext UnknownText_0x9cf38 closetext loadmovesprites - setbit1 $003f + setbit1 EVENT_TALKED_TO_FARMER_ABOUT_MOOMOO end ; 0x9cec5 @@ -71,9 +71,9 @@ UnknownScript_0x9cf08: ; 0x9cf08 PokefanFScript_0x9cf0e: ; 0x9cf0e faceplayer loadfont - checkbit1 $003e + checkbit1 EVENT_GOT_TM13_SNORE_FROM_MOOMOO_FARM iftrue UnknownScript_0x9cf2f - checkbit1 $003d + checkbit1 EVENT_HEALED_MOOMOO iftrue UnknownScript_0x9cf22 2writetext UnknownText_0x9d0f6 closetext @@ -86,7 +86,7 @@ UnknownScript_0x9cf22: ; 0x9cf22 keeptextopen verbosegiveitem TM_13, 1 iffalse UnknownScript_0x9cf33 - setbit1 $003e + setbit1 EVENT_GOT_TM13_SNORE_FROM_MOOMOO_FARM UnknownScript_0x9cf2f: ; 0x9cf2f 2writetext UnknownText_0x9d1c7 closetext diff --git a/maps/Route40.asm b/maps/Route40.asm index eb5b5e82f..6b03735d1 100644 --- a/maps/Route40.asm +++ b/maps/Route40.asm @@ -164,21 +164,21 @@ StandingYoungsterScript_0x1a61d6: ; 0x1a61d6 BuenaScript_0x1a61d9: ; 0x1a61d9 faceplayer loadfont - checkbit1 $006f + checkbit1 EVENT_GOT_SHARP_BEAK_FROM_MONICA iftrue UnknownScript_0x1a6207 checkcode $b if_not_equal MONDAY, UnknownScript_0x1a620d - checkbit1 $006e + checkbit1 EVENT_MET_MONICA_OF_MONDAY iftrue UnknownScript_0x1a61f4 2writetext UnknownText_0x1a6606 keeptextopen - setbit1 $006e + setbit1 EVENT_MET_MONICA_OF_MONDAY UnknownScript_0x1a61f4: ; 0x1a61f4 2writetext UnknownText_0x1a6636 keeptextopen verbosegiveitem SHARP_BEAK, 1 iffalse UnknownScript_0x1a620b - setbit1 $006f + setbit1 EVENT_GOT_SHARP_BEAK_FROM_MONICA 2writetext UnknownText_0x1a666c closetext loadmovesprites diff --git a/maps/Route42.asm b/maps/Route42.asm index 0e48522fe..186e01268 100644 --- a/maps/Route42.asm +++ b/maps/Route42.asm @@ -26,7 +26,7 @@ UnknownScript_0x1a9218: ; 0x1a9218 disappear $a pause 10 dotrigger $0 - clearbit1 $07b0 + clearbit1 EVENT_SAW_SUICUNE_ON_ROUTE_36 domaptrigger GROUP_ROUTE_36, MAP_ROUTE_36, $1 end ; 0x1a9233 @@ -90,13 +90,13 @@ UnknownScript_0x1a927f: ; 0x1a927f if_equal $1, UnknownScript_0x1a92a6 if_equal $0, UnknownScript_0x1a92ac UnknownScript_0x1a929a: ; 0x1a929a - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x1a92d3 UnknownScript_0x1a92a0: ; 0x1a92a0 checkbit1 $0044 iftrue UnknownScript_0x1a92c6 UnknownScript_0x1a92a6: ; 0x1a92a6 - checkbit1 $0022 + checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT iftrue UnknownScript_0x1a92b9 UnknownScript_0x1a92ac: ; 0x1a92ac loadtrainer FISHER, TULLY1 diff --git a/maps/Route43.asm b/maps/Route43.asm index 6ccc95809..749bed109 100644 --- a/maps/Route43.asm +++ b/maps/Route43.asm @@ -11,7 +11,7 @@ Route43_MapScriptHeader: ; 0x19d04c ; 0x19d051 UnknownScript_0x19d051: ; 0x19d051 - checkbit1 $0022 + checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT iftrue UnknownScript_0x19d05c domaptrigger GROUP_ROUTE_43_GATE, MAP_ROUTE_43_GATE, $0 return @@ -137,13 +137,13 @@ UnknownScript_0x19d0cf: ; 0x19d0cf if_equal $1, UnknownScript_0x19d0f6 if_equal $0, UnknownScript_0x19d0fc UnknownScript_0x19d0ea: ; 0x19d0ea - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x19d123 UnknownScript_0x19d0f0: ; 0x19d0f0 checkbit1 $0044 iftrue UnknownScript_0x19d116 UnknownScript_0x19d0f6: ; 0x19d0f6 - checkbit1 $0022 + checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT iftrue UnknownScript_0x19d109 UnknownScript_0x19d0fc: ; 0x19d0fc loadtrainer POKEMANIAC, BRENT1 @@ -305,11 +305,11 @@ PicnickerTiffany3Script: ; 0x19d17c iftrue UnknownScript_0x19d245 checkpoke CLEFAIRY iffalse UnknownScript_0x19d233 - checkbit1 $0293 + checkbit1 EVENT_SHOWED_TIFFANY_CLEFAIRY iftrue UnknownScript_0x19d1aa 2writetext UnknownText_0x19d618 keeptextopen - setbit1 $0293 + setbit1 EVENT_SHOWED_TIFFANY_CLEFAIRY 2call UnknownScript_0x19d239 2jump UnknownScript_0x19d1ad ; 0x19d1aa @@ -334,13 +334,13 @@ UnknownScript_0x19d1c1: ; 0x19d1c1 if_equal $1, UnknownScript_0x19d1e8 if_equal $0, UnknownScript_0x19d1ee UnknownScript_0x19d1dc: ; 0x19d1dc - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x19d215 UnknownScript_0x19d1e2: ; 0x19d1e2 checkbit1 $0044 iftrue UnknownScript_0x19d208 UnknownScript_0x19d1e8: ; 0x19d1e8 - checkbit1 $0021 + checkbit1 EVENT_CLEARED_RADIO_TOWER iftrue UnknownScript_0x19d1fb UnknownScript_0x19d1ee: ; 0x19d1ee loadtrainer PICNICKER, TIFFANY3 diff --git a/maps/Route43Gate.asm b/maps/Route43Gate.asm index d70a8fdf8..f6947da9e 100644 --- a/maps/Route43Gate.asm +++ b/maps/Route43Gate.asm @@ -24,7 +24,7 @@ UnknownScript_0x19abc9: ; 0x19abc9 ; 0x19abca UnknownScript_0x19abca: ; 0x19abca - checkbit1 $0022 + checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT iftrue UnknownScript_0x19abd5 domaptrigger GROUP_ROUTE_43, MAP_ROUTE_43, $0 return @@ -124,13 +124,13 @@ RocketScript_0x19ac82: ; 0x19ac82 OfficerScript_0x19ac85: ; 0x19ac85 faceplayer loadfont - checkbit1 $0059 + checkbit1 EVENT_GOT_TM36_SLUDGE_BOMB iftrue UnknownScript_0x19ac9c 2writetext UnknownText_0x19ad9b keeptextopen verbosegiveitem TM_36, 1 iffalse UnknownScript_0x19aca0 - setbit1 $0059 + setbit1 EVENT_GOT_TM36_SLUDGE_BOMB loadmovesprites end ; 0x19ac9c diff --git a/maps/Route43MahoganyGate.asm b/maps/Route43MahoganyGate.asm index d7ae9dbb9..168e5a6d8 100644 --- a/maps/Route43MahoganyGate.asm +++ b/maps/Route43MahoganyGate.asm @@ -9,7 +9,7 @@ Route43MahoganyGate_MapScriptHeader: ; 0x19ab09 OfficerScript_0x19ab0b: ; 0x19ab0b faceplayer loadfont - checkbit1 $0022 + checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT iftrue UnknownScript_0x19ab19 2writetext UnknownText_0x19ab1f closetext diff --git a/maps/Route44.asm b/maps/Route44.asm index b4af61ca6..d94cccfbd 100644 --- a/maps/Route44.asm +++ b/maps/Route44.asm @@ -62,7 +62,7 @@ UnknownScript_0x19d86a: ; 0x19d86a if_equal $1, UnknownScript_0x19d887 if_equal $0, UnknownScript_0x19d88d UnknownScript_0x19d881: ; 0x19d881 - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x19d8a7 UnknownScript_0x19d887: ; 0x19d887 checkbit1 $0044 @@ -90,7 +90,7 @@ UnknownScript_0x19d8a7: ; 0x19d8a7 startbattle returnafterbattle clearbit2 $0079 - checkbit1 $0339 + checkbit1 EVENT_VANCE_CARBOS iftrue UnknownScript_0x19d8cb checkbit1 $0267 iftrue UnknownScript_0x19d8ca @@ -111,7 +111,7 @@ UnknownScript_0x19d8cb: ; 0x19d8cb closetext verbosegiveitem CARBOS, 1 iffalse UnknownScript_0x19d903 - clearbit1 $0339 + clearbit1 EVENT_VANCE_CARBOS setbit1 $0267 2jump UnknownScript_0x19d8eb ; 0x19d8df @@ -162,7 +162,7 @@ UnknownScript_0x19d8ff: ; 0x19d8ff ; 0x19d903 UnknownScript_0x19d903: ; 0x19d903 - setbit1 $0339 + setbit1 EVENT_VANCE_CARBOS jumpstd $0021 end ; 0x19d90a @@ -259,7 +259,7 @@ UnknownScript_0x19d96e: ; 0x19d96e if_equal $1, UnknownScript_0x19d98b if_equal $0, UnknownScript_0x19d991 UnknownScript_0x19d985: ; 0x19d985 - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x19d9ab UnknownScript_0x19d98b: ; 0x19d98b checkbit1 $0044 @@ -292,11 +292,11 @@ UnknownScript_0x19d9ab: ; 0x19d9ab UnknownScript_0x19d9b4: ; 0x19d9b4 2call UnknownScript_0x19d8fb - checkbit1 $032f + checkbit1 EVENT_WILTON_HAS_ULTRA_BALL iftrue UnknownScript_0x19d9c9 - checkbit1 $0330 + checkbit1 EVENT_WILTON_HAS_GREAT_BALL iftrue UnknownScript_0x19d9d2 - checkbit1 $0331 + checkbit1 EVENT_WILTON_HAS_POKE_BALL iftrue UnknownScript_0x19d9db UnknownScript_0x19d9c9: ; 0x19d9c9 verbosegiveitem ULTRA_BALL, 1 diff --git a/maps/Route45.asm b/maps/Route45.asm index a42c05485..f4468f997 100644 --- a/maps/Route45.asm +++ b/maps/Route45.asm @@ -134,7 +134,7 @@ UnknownScript_0x19e13b: ; 0x19e13b ; 0x19e13f UnknownScript_0x19e13f: ; 0x19e13f - setbit1 $033a + setbit1 EVENT_PARRY_IRON jumpstd $0021 end ; 0x19e146 @@ -258,7 +258,7 @@ UnknownScript_0x19e1b8: ; 0x19e1b8 if_equal $1, UnknownScript_0x19e1d5 if_equal $0, UnknownScript_0x19e1db UnknownScript_0x19e1cf: ; 0x19e1c - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x19e1f5 UnknownScript_0x19e1d5: ; 0x19e1d5 checkbit1 $0044 @@ -286,7 +286,7 @@ UnknownScript_0x19e1f5: ; 0x19e1f5 startbattle returnafterbattle clearbit2 $007b - checkbit1 $033a + checkbit1 EVENT_PARRY_IRON iftrue UnknownScript_0x19e219 checkbit1 $0268 iftrue UnknownScript_0x19e218 @@ -307,7 +307,7 @@ UnknownScript_0x19e219: ; 0x19e219 closetext verbosegiveitem IRON, 1 iffalse UnknownScript_0x19e13f - clearbit1 $033a + clearbit1 EVENT_PARRY_IRON setbit1 $0268 2jump UnknownScript_0x19e127 ; 0x19e22d diff --git a/maps/Route46.asm b/maps/Route46.asm index d192a2275..2203faeba 100644 --- a/maps/Route46.asm +++ b/maps/Route46.asm @@ -91,7 +91,7 @@ UnknownScript_0x1a96da: ; 0x1a96da if_equal $1, UnknownScript_0x1a96f7 if_equal $0, UnknownScript_0x1a96fd UnknownScript_0x1a96f1: ; 0x1a96f1 - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x1a9717 UnknownScript_0x1a96f7: ; 0x1a96f7 checkbit1 $0044 @@ -119,7 +119,7 @@ UnknownScript_0x1a9717: ; 0x1a9717 startbattle returnafterbattle clearbit2 $007c - checkbit1 $033b + checkbit1 EVENT_ERIN_CALCIUM iftrue UnknownScript_0x1a973b checkbit1 $0269 iftrue UnknownScript_0x1a973a @@ -140,7 +140,7 @@ UnknownScript_0x1a973b: ; 0x1a973b closetext verbosegiveitem CALCIUM, 1 iffalse UnknownScript_0x1a976b - clearbit1 $033b + clearbit1 EVENT_ERIN_CALCIUM setbit1 $0269 2jump UnknownScript_0x1a975b ; 0x1a974f @@ -181,7 +181,7 @@ UnknownScript_0x1a9767: ; 0x1a9767 ; 0x1a976b UnknownScript_0x1a976b: ; 0x1a976b - setbit1 $033b + setbit1 EVENT_ERIN_CALCIUM jumpstd $002b end ; 0x1a9772 diff --git a/maps/Route5CleanseTagSpeechHouse.asm b/maps/Route5CleanseTagSpeechHouse.asm index 535fe4d6e..918c411d7 100644 --- a/maps/Route5CleanseTagSpeechHouse.asm +++ b/maps/Route5CleanseTagSpeechHouse.asm @@ -9,13 +9,13 @@ Route5CleanseTagSpeechHouse_MapScriptHeader: ; 0x18b632 GrannyScript_0x18b634: ; 0x18b634 faceplayer loadfont - checkbit1 $00db + checkbit1 EVENT_GOT_CLEANSE_TAG iftrue UnknownScript_0x18b649 2writetext UnknownText_0x18b655 keeptextopen verbosegiveitem CLEANSE_TAG, 1 iffalse UnknownScript_0x18b64d - setbit1 $00db + setbit1 EVENT_GOT_CLEANSE_TAG UnknownScript_0x18b649: ; 0x18b649 2writetext UnknownText_0x18b6a7 closetext diff --git a/maps/Route6SaffronGate.asm b/maps/Route6SaffronGate.asm index 7ebb3b07e..380f9fbd8 100644 --- a/maps/Route6SaffronGate.asm +++ b/maps/Route6SaffronGate.asm @@ -16,7 +16,7 @@ UnknownScript_0x1926e9: ; 0x1926e9 OfficerScript_0x1926ea: ; 0x1926ea faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x1926f8 2writetext UnknownText_0x1926fe closetext diff --git a/maps/Route7SaffronGate.asm b/maps/Route7SaffronGate.asm index 127cd2d32..0ded4568b 100644 --- a/maps/Route7SaffronGate.asm +++ b/maps/Route7SaffronGate.asm @@ -9,7 +9,7 @@ Route7SaffronGate_MapScriptHeader: ; 0x73516 OfficerScript_0x73518: ; 0x73518 faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x73526 2writetext UnknownText_0x7352c closetext diff --git a/maps/RuinsofAlphAerodactylChamber.asm b/maps/RuinsofAlphAerodactylChamber.asm index 514ea95e7..62739b4a9 100644 --- a/maps/RuinsofAlphAerodactylChamber.asm +++ b/maps/RuinsofAlphAerodactylChamber.asm @@ -15,7 +15,7 @@ RuinsofAlphAerodactylChamber_MapScriptHeader: ; 0x58da0 ; 0x58dad UnknownScript_0x58dad: ; 0x58dad - checkbit1 $0329 + checkbit1 EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER iftrue UnknownScript_0x58db4 end ; 0x58db4 @@ -30,7 +30,7 @@ UnknownScript_0x58db8: ; 0x58db8 ; 0x58db9 UnknownScript_0x58db9: ; 0x58db9 - checkbit1 $0329 + checkbit1 EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER iftrue UnknownScript_0x58dc3 changeblock $4, $0, $2e UnknownScript_0x58dc3: ; 0x58dc3 @@ -106,7 +106,7 @@ MapRuinsofAlphAerodactylChamberSignpost4Script: ; 0x58e2a ; 0x58e35 MapRuinsofAlphAerodactylChamberSignpost5Script: ; 0x58e35 - checkbit1 $0329 + checkbit1 EVENT_WALL_OPENED_IN_AERODACTYL_CHAMBER iftrue UnknownScript_0x58e46 loadfont 2writetext UnknownText_0x58e81 diff --git a/maps/RuinsofAlphHoOhChamber.asm b/maps/RuinsofAlphHoOhChamber.asm index b860edc79..512f0a37c 100644 --- a/maps/RuinsofAlphHoOhChamber.asm +++ b/maps/RuinsofAlphHoOhChamber.asm @@ -16,7 +16,7 @@ RuinsofAlphHoOhChamber_MapScriptHeader: ; 0x58560 UnknownScript_0x5856d: ; 0x5856d special $008d - checkbit1 $0326 + checkbit1 EVENT_WALL_OPENED_IN_HO_OH_CHAMBER iftrue UnknownScript_0x58577 end ; 0x58577 @@ -31,7 +31,7 @@ UnknownScript_0x5857b: ; 0x5857b ; 0x5857c UnknownScript_0x5857c: ; 0x5857c - checkbit1 $0326 + checkbit1 EVENT_WALL_OPENED_IN_HO_OH_CHAMBER iftrue UnknownScript_0x58586 changeblock $4, $0, $2e UnknownScript_0x58586: ; 0x58586 @@ -107,7 +107,7 @@ MapRuinsofAlphHoOhChamberSignpost4Script: ; 0x585ed ; 0x585f8 MapRuinsofAlphHoOhChamberSignpost5Script: ; 0x585f8 - checkbit1 $0326 + checkbit1 EVENT_WALL_OPENED_IN_HO_OH_CHAMBER iftrue UnknownScript_0x58609 loadfont 2writetext UnknownText_0x58644 diff --git a/maps/RuinsofAlphInnerChamber.asm b/maps/RuinsofAlphInnerChamber.asm index eae1298a5..3ef70d6bd 100644 --- a/maps/RuinsofAlphInnerChamber.asm +++ b/maps/RuinsofAlphInnerChamber.asm @@ -28,7 +28,7 @@ UnknownScript_0x58f6e: ; 0x58f6e closetext loadmovesprites dotrigger $0 - setbit1 $002e + setbit1 EVENT_MADE_UNOWN_APPEAR_IN_RUINS clearbit1 $078e end ; 0x58f7d diff --git a/maps/RuinsofAlphKabutoChamber.asm b/maps/RuinsofAlphKabutoChamber.asm index bfe05a7a0..b96862cc3 100644 --- a/maps/RuinsofAlphKabutoChamber.asm +++ b/maps/RuinsofAlphKabutoChamber.asm @@ -15,7 +15,7 @@ RuinsofAlphKabutoChamber_MapScriptHeader: ; 0x5871e ; 0x5872b UnknownScript_0x5872b: ; 0x5872b - checkbit1 $0327 + checkbit1 EVENT_WALL_OPENED_IN_KABUTO_CHAMBER iftrue UnknownScript_0x58732 end ; 0x58732 @@ -33,7 +33,7 @@ UnknownScript_0x58736: ; 0x58736 ; 0x58737 UnknownScript_0x58737: ; 0x58737 - checkbit1 $0327 + checkbit1 EVENT_WALL_OPENED_IN_KABUTO_CHAMBER iftrue UnknownScript_0x58741 changeblock $4, $0, $2e UnknownScript_0x58741: ; 0x58741 @@ -101,7 +101,7 @@ ScientistScript_0x587a8: ; 0x587a8 loadfont checkcode $e if_equal 26, UnknownScript_0x587cf - checkbit1 $0327 + checkbit1 EVENT_WALL_OPENED_IN_KABUTO_CHAMBER iftrue UnknownScript_0x587c9 checkbit1 $02a1 iffalse UnknownScript_0x587c0 @@ -147,7 +147,7 @@ MapRuinsofAlphKabutoChamberSignpost4Script: ; 0x587db ; 0x587e6 MapRuinsofAlphKabutoChamberSignpost5Script: ; 0x587e6 - checkbit1 $0327 + checkbit1 EVENT_WALL_OPENED_IN_KABUTO_CHAMBER iftrue UnknownScript_0x587f7 loadfont 2writetext UnknownText_0x58ad9 diff --git a/maps/RuinsofAlphOmanyteChamber.asm b/maps/RuinsofAlphOmanyteChamber.asm index f66ceed62..a904b7118 100644 --- a/maps/RuinsofAlphOmanyteChamber.asm +++ b/maps/RuinsofAlphOmanyteChamber.asm @@ -16,7 +16,7 @@ RuinsofAlphOmanyteChamber_MapScriptHeader: ; 0x58bdc UnknownScript_0x58be9: ; 0x58be9 special $0084 - checkbit1 $0328 + checkbit1 EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER iftrue UnknownScript_0x58bf3 end ; 0x58bf3 @@ -31,7 +31,7 @@ UnknownScript_0x58bf7: ; 0x58bf7 ; 0x58bf8 UnknownScript_0x58bf8: ; 0x58bf8 - checkbit1 $0328 + checkbit1 EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER iftrue UnknownScript_0x58c02 changeblock $4, $0, $2e UnknownScript_0x58c02: ; 0x58c02 @@ -107,7 +107,7 @@ MapRuinsofAlphOmanyteChamberSignpost4Script: ; 0x58c69 ; 0x58c74 MapRuinsofAlphOmanyteChamberSignpost5Script: ; 0x58c74 - checkbit1 $0328 + checkbit1 EVENT_WALL_OPENED_IN_OMANYTE_CHAMBER iftrue UnknownScript_0x58c85 loadfont 2writetext UnknownText_0x58cc0 diff --git a/maps/RuinsofAlphOutside.asm b/maps/RuinsofAlphOutside.asm index 088f0dda9..4658d2d61 100644 --- a/maps/RuinsofAlphOutside.asm +++ b/maps/RuinsofAlphOutside.asm @@ -25,7 +25,7 @@ UnknownScript_0x5800e: ; 0x5800e UnknownScript_0x5800f: ; 0x5800f checkbit2 $000c iftrue UnknownScript_0x5802c - checkbit1 $002e + checkbit1 EVENT_MADE_UNOWN_APPEAR_IN_RUINS iftrue UnknownScript_0x5801e 2jump UnknownScript_0x5802c ; 0x5801e diff --git a/maps/RuinsofAlphResearchCenter.asm b/maps/RuinsofAlphResearchCenter.asm index b7dca96d7..0ab3ff03d 100644 --- a/maps/RuinsofAlphResearchCenter.asm +++ b/maps/RuinsofAlphResearchCenter.asm @@ -90,7 +90,7 @@ ScientistScript_0x591e5: ; 0x591e5 if_equal 26, UnknownScript_0x5920b checkbit2 $000c iftrue UnknownScript_0x59205 - checkbit1 $002e + checkbit1 EVENT_MADE_UNOWN_APPEAR_IN_RUINS iftrue UnknownScript_0x591ff 2writetext UnknownText_0x593ed closetext @@ -125,7 +125,7 @@ ScientistScript_0x59214: ; 0x59214 loadfont checkcode $e if_equal 26, UnknownScript_0x5922e - checkbit1 $002e + checkbit1 EVENT_MADE_UNOWN_APPEAR_IN_RUINS iftrue UnknownScript_0x59228 2writetext UnknownText_0x5954f closetext diff --git a/maps/SafariZoneWardensHome.asm b/maps/SafariZoneWardensHome.asm index b912a31da..aac403aa0 100644 --- a/maps/SafariZoneWardensHome.asm +++ b/maps/SafariZoneWardensHome.asm @@ -9,12 +9,12 @@ SafariZoneWardensHome_MapScriptHeader: ; 0x1965c4 LassScript_0x1965c6: ; 0x1965c6 faceplayer loadfont - checkbit1 $00d9 + checkbit1 EVENT_TALKED_TO_WARDENS_GRANDDAUGHTER iftrue UnknownScript_0x1965d7 2writetext UnknownText_0x1965e6 closetext loadmovesprites - setbit1 $00d9 + setbit1 EVENT_TALKED_TO_WARDENS_GRANDDAUGHTER end ; 0x1965d7 diff --git a/maps/SaffronCity.asm b/maps/SaffronCity.asm index 265101997..5b045eff1 100644 --- a/maps/SaffronCity.asm +++ b/maps/SaffronCity.asm @@ -18,7 +18,7 @@ UnknownScript_0x199326: ; 0x199326 LassScript_0x19932a: ; 0x19932a faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x199338 2writetext UnknownText_0x19938d closetext @@ -36,7 +36,7 @@ UnknownScript_0x199338: ; 0x199338 PokefanMScript_0x19933e: ; 0x19933e faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x19934c 2writetext UnknownText_0x199460 closetext @@ -62,7 +62,7 @@ CooltrainerFScript_0x199355: ; 0x199355 FisherScript_0x199358: ; 0x199358 faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x199366 2writetext UnknownText_0x1995fc closetext diff --git a/maps/SaffronGym.asm b/maps/SaffronGym.asm index f2ce9daa5..52499a2f7 100644 --- a/maps/SaffronGym.asm +++ b/maps/SaffronGym.asm @@ -18,11 +18,11 @@ SabrinaScript_0x189c2e: ; 0x189c2e loadtrainer SABRINA, 1 startbattle returnafterbattle - setbit1 $04ca - setbit1 $0590 - setbit1 $0591 - setbit1 $043b - setbit1 $0444 + setbit1 EVENT_BEAT_SABRINA + setbit1 EVENT_BEAT_MEDIUM_REBECCA + setbit1 EVENT_BEAT_MEDIUM_DORIS + setbit1 EVENT_BEAT_PSYCHIC_FRANKLIN + setbit1 EVENT_BEAT_PSYCHIC_JARED loadfont 2writetext UnknownText_0x189e95 playsound $009c @@ -160,7 +160,7 @@ PsychicJaredScript: ; 0x189cb3 SaffronGymGuyScript: ; 0x189cbb faceplayer loadfont - checkbit1 $04ca + checkbit1 EVENT_BEAT_SABRINA iftrue .SaffronGymGuyWinScript 2writetext SaffronGymGuyText closetext diff --git a/maps/SaffronPokeCenter1F.asm b/maps/SaffronPokeCenter1F.asm index f2ac5defa..41b028d5b 100644 --- a/maps/SaffronPokeCenter1F.asm +++ b/maps/SaffronPokeCenter1F.asm @@ -23,7 +23,7 @@ UnknownScript_0x18a489: ; 0x18a489 FisherScript_0x18a48c: ; 0x18a48c faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x18a49a 2writetext UnknownText_0x18a5d3 closetext diff --git a/maps/SaffronTrainStation.asm b/maps/SaffronTrainStation.asm index 3208e63b7..897f702d7 100644 --- a/maps/SaffronTrainStation.asm +++ b/maps/SaffronTrainStation.asm @@ -16,7 +16,7 @@ UnknownScript_0x18a81d: ; 0x18a81d OfficerScript_0x18a81e: ; 0x18a81e faceplayer loadfont - checkbit1 $00cd + checkbit1 EVENT_RESTORED_POWER_TO_KANTO iftrue UnknownScript_0x18a82c 2writetext UnknownText_0x18a8a9 closetext @@ -77,7 +77,7 @@ UnknownScript_0x18a862: ; 0x18a862 GymGuyScript_0x18a875: ; 0x18a875 faceplayer loadfont - checkbit1 $00c9 + checkbit1 EVENT_RETURNED_MACHINE_PART iftrue UnknownScript_0x18a883 2writetext UnknownText_0x18a9ca closetext diff --git a/maps/SeafoamGym.asm b/maps/SeafoamGym.asm index 618707efb..cd0405e3b 100644 --- a/maps/SeafoamGym.asm +++ b/maps/SeafoamGym.asm @@ -50,12 +50,12 @@ UnknownScript_0x1ab52b: ; 0x1ab52b SeafoamGymGuyScript: ; 0x1ab531 faceplayer loadfont - checkbit1 $00d5 + checkbit1 EVENT_TALKED_TO_SEAFOAM_GYM_GUY_ONCE iftrue .TalkedToSeafoamGymGuyScript 2writetext SeafoamGymGuyWinText closetext loadmovesprites - setbit1 $00d5 + setbit1 EVENT_TALKED_TO_SEAFOAM_GYM_GUY_ONCE end .TalkedToSeafoamGymGuyScript diff --git a/maps/SilphCo1F.asm b/maps/SilphCo1F.asm index 72c5e2f88..614b3eb8d 100644 --- a/maps/SilphCo1F.asm +++ b/maps/SilphCo1F.asm @@ -13,13 +13,13 @@ ReceptionistScript_0x18abe5: ; 0x18abe5 OfficerScript_0x18abe8: ; 0x18abe8 faceplayer loadfont - checkbit1 $00de + checkbit1 EVENT_GOT_UP_GRADE iftrue UnknownScript_0x18abfd 2writetext UnknownText_0x18ac36 keeptextopen verbosegiveitem UP_GRADE, 1 iffalse UnknownScript_0x18ac01 - setbit1 $00de + setbit1 EVENT_GOT_UP_GRADE UnknownScript_0x18abfd: ; 0x18abfd 2writetext UnknownText_0x18aca8 closetext diff --git a/maps/SlowpokeWellB1F.asm b/maps/SlowpokeWellB1F.asm index 0c3cda606..245bdbc29 100644 --- a/maps/SlowpokeWellB1F.asm +++ b/maps/SlowpokeWellB1F.asm @@ -81,7 +81,7 @@ GruntM1Script: ; 0x5a5f8 2writetext KurtLeaveSlowpokeWellText closetext loadmovesprites - setbit1 $002b + setbit1 EVENT_CLEARED_SLOWPOKE_WELL variablesprite $6, $4 domaptrigger GROUP_AZALEA_TOWN, MAP_AZALEA_TOWN, $1 clearbit1 $06f3 diff --git a/maps/SlowpokeWellB2F.asm b/maps/SlowpokeWellB2F.asm index 9c6bb4bbf..45b3201fe 100644 --- a/maps/SlowpokeWellB2F.asm +++ b/maps/SlowpokeWellB2F.asm @@ -9,13 +9,13 @@ SlowpokeWellB2F_MapScriptHeader: ; 0x5ad09 GymGuyScript_0x5ad0b: ; 0x5ad0b faceplayer loadfont - checkbit1 $0073 + checkbit1 EVENT_GOT_KINGS_ROCK_IN_SLOWPOKE_WELL iftrue UnknownScript_0x5ad22 2writetext UnknownText_0x5ad2a keeptextopen verbosegiveitem KINGS_ROCK, 1 iffalse UnknownScript_0x5ad20 - setbit1 $0073 + setbit1 EVENT_GOT_KINGS_ROCK_IN_SLOWPOKE_WELL UnknownScript_0x5ad20: ; 0x5ad20 loadmovesprites end diff --git a/maps/SproutTower3F.asm b/maps/SproutTower3F.asm index df943fa56..0f935bb74 100644 --- a/maps/SproutTower3F.asm +++ b/maps/SproutTower3F.asm @@ -63,7 +63,7 @@ UnknownScript_0x184947: ; 0x184947 SageLiScript: ; 0x1849a6 faceplayer loadfont - checkbit1 $0014 + checkbit1 EVENT_GOT_HM05_FLASH iftrue UnknownScript_0x1849d1 2writetext SageLiSeenText closetext @@ -76,8 +76,8 @@ SageLiScript: ; 0x1849a6 2writetext UnknownText_0x184cc2 keeptextopen verbosegiveitem HM_05, 1 - setbit1 $0014 - setbit1 $0419 + setbit1 EVENT_GOT_HM05_FLASH + setbit1 EVENT_BEAT_SAGE_LI 2writetext UnknownText_0x184d13 closetext loadmovesprites diff --git a/maps/TeamRocketBaseB1F.asm b/maps/TeamRocketBaseB1F.asm index 8039cd4d5..30b163509 100644 --- a/maps/TeamRocketBaseB1F.asm +++ b/maps/TeamRocketBaseB1F.asm @@ -23,7 +23,7 @@ UnknownScript_0x6c65b: ; 0x6c65b ; 0x6c65e SecurityCamera1a: ; 0x6c65e - checkbit1 $02e4 + checkbit1 EVENT_SECURITY_CAMERA_1 iftrue NoSecurityCamera 2call PlaySecurityCameraSounds checkbit1 $06da @@ -44,12 +44,12 @@ SecurityCamera1a: ; 0x6c65e applymovement $2, SecurityCameraMovement1 2call TrainerCameraGrunt2 if_equal $1, NoSecurityCamera - setbit1 $02e4 + setbit1 EVENT_SECURITY_CAMERA_1 end ; 0x6c6a7 SecurityCamera1b: ; 0x6c6a7 - checkbit1 $02e4 + checkbit1 EVENT_SECURITY_CAMERA_1 iftrue NoSecurityCamera 2call PlaySecurityCameraSounds checkbit1 $06da @@ -70,12 +70,12 @@ SecurityCamera1b: ; 0x6c6a7 applymovement $2, SecurityCameraMovement1 2call TrainerCameraGrunt2 if_equal $1, NoSecurityCamera - setbit1 $02e4 + setbit1 EVENT_SECURITY_CAMERA_1 end ; 0x6c6f0 SecurityCamera2a: ; 0x6c6f0 - checkbit1 $02e5 + checkbit1 EVENT_SECURITY_CAMERA_2 iftrue NoSecurityCamera 2call PlaySecurityCameraSounds checkbit1 $06da @@ -97,12 +97,12 @@ SecurityCamera2a: ; 0x6c6f0 applymovement $2, SecurityCameraMovement3 2call TrainerCameraGrunt2 if_equal $1, NoSecurityCamera - setbit1 $02e5 + setbit1 EVENT_SECURITY_CAMERA_2 end ; 0x6c73c SecurityCamera2b: ; 0x6c73c - checkbit1 $02e5 + checkbit1 EVENT_SECURITY_CAMERA_2 iftrue NoSecurityCamera 2call PlaySecurityCameraSounds checkbit1 $06da @@ -124,12 +124,12 @@ SecurityCamera2b: ; 0x6c73c applymovement $2, SecurityCameraMovement5 2call TrainerCameraGrunt2 if_equal $1, NoSecurityCamera - setbit1 $02e5 + setbit1 EVENT_SECURITY_CAMERA_2 end ; 0x6c788 SecurityCamera3a: ; 0x6c788 - checkbit1 $02e6 + checkbit1 EVENT_SECURITY_CAMERA_3 iftrue NoSecurityCamera 2call PlaySecurityCameraSounds checkbit1 $06da @@ -151,12 +151,12 @@ SecurityCamera3a: ; 0x6c788 applymovement $2, SecurityCameraMovement6 2call TrainerCameraGrunt2 if_equal $1, NoSecurityCamera - setbit1 $02e6 + setbit1 EVENT_SECURITY_CAMERA_3 end ; 0x6c7d4 SecurityCamera3b: ; 0x6c7d4 - checkbit1 $02e6 + checkbit1 EVENT_SECURITY_CAMERA_3 iftrue NoSecurityCamera 2call PlaySecurityCameraSounds checkbit1 $06da @@ -178,12 +178,12 @@ SecurityCamera3b: ; 0x6c7d4 applymovement $2, SecurityCameraMovement7 2call TrainerCameraGrunt2 if_equal $1, NoSecurityCamera - setbit1 $02e6 + setbit1 EVENT_SECURITY_CAMERA_3 end ; 0x6c820 SecurityCamera4: ; 0x6c820 - checkbit1 $02e7 + checkbit1 EVENT_SECURITY_CAMERA_4 iftrue NoSecurityCamera 2call PlaySecurityCameraSounds checkbit1 $06da @@ -205,12 +205,12 @@ SecurityCamera4: ; 0x6c820 applymovement $2, SecurityCameraMovement8 2call TrainerCameraGrunt2 if_equal $1, NoSecurityCamera - setbit1 $02e7 + setbit1 EVENT_SECURITY_CAMERA_4 end ; 0x6c86c SecurityCamera5: ; 0x6c86c - checkbit1 $02e8 + checkbit1 EVENT_SECURITY_CAMERA_5 iftrue NoSecurityCamera 2call PlaySecurityCameraSounds checkbit1 $06da @@ -232,7 +232,7 @@ SecurityCamera5: ; 0x6c86c applymovement $2, SecurityCameraMovement9 2call TrainerCameraGrunt2 if_equal $1, NoSecurityCamera - setbit1 $02e8 + setbit1 EVENT_SECURITY_CAMERA_5 end ; 0x6c8b8 @@ -284,179 +284,179 @@ PlaySecurityCameraSounds: ; 0x6c8e3 ; 0x6c900 ExplodingTrap1: ; 0x6c900 - checkbit1 $02e9 + checkbit1 EVENT_EXPLODING_TRAP_1 iftrue NoExplodingTrap 2call KoffingExplodingTrap returnafterbattle - setbit1 $02e9 + setbit1 EVENT_EXPLODING_TRAP_1 end ExplodingTrap2: ; 0x6c90e - checkbit1 $02ea + checkbit1 EVENT_EXPLODING_TRAP_2 iftrue NoExplodingTrap 2call VoltorbExplodingTrap returnafterbattle - setbit1 $02ea + setbit1 EVENT_EXPLODING_TRAP_2 end ExplodingTrap3: ; 0x6c91c - checkbit1 $02eb + checkbit1 EVENT_EXPLODING_TRAP_3 iftrue NoExplodingTrap 2call GeodudeExplodingTrap returnafterbattle - setbit1 $02eb + setbit1 EVENT_EXPLODING_TRAP_3 end ExplodingTrap4: ; 0x6c92a - checkbit1 $02ec + checkbit1 EVENT_EXPLODING_TRAP_4 iftrue NoExplodingTrap 2call VoltorbExplodingTrap returnafterbattle - setbit1 $02ec + setbit1 EVENT_EXPLODING_TRAP_4 end ExplodingTrap5: ; 0x6c938 - checkbit1 $02ed + checkbit1 EVENT_EXPLODING_TRAP_5 iftrue NoExplodingTrap 2call GeodudeExplodingTrap returnafterbattle - setbit1 $02ed + setbit1 EVENT_EXPLODING_TRAP_5 end ExplodingTrap6: ; 0x6c946 - checkbit1 $02ee + checkbit1 EVENT_EXPLODING_TRAP_6 iftrue NoExplodingTrap 2call KoffingExplodingTrap returnafterbattle - setbit1 $02ee + setbit1 EVENT_EXPLODING_TRAP_6 end ExplodingTrap7: ; 0x6c954 - checkbit1 $02ef + checkbit1 EVENT_EXPLODING_TRAP_7 iftrue NoExplodingTrap 2call VoltorbExplodingTrap returnafterbattle - setbit1 $02ef + setbit1 EVENT_EXPLODING_TRAP_7 end ExplodingTrap8: ; 0x6c962 - checkbit1 $02f0 + checkbit1 EVENT_EXPLODING_TRAP_8 iftrue NoExplodingTrap 2call KoffingExplodingTrap returnafterbattle - setbit1 $02f0 + setbit1 EVENT_EXPLODING_TRAP_8 end ExplodingTrap9: ; 0x6c970 - checkbit1 $02f1 + checkbit1 EVENT_EXPLODING_TRAP_9 iftrue NoExplodingTrap 2call KoffingExplodingTrap returnafterbattle - setbit1 $02f1 + setbit1 EVENT_EXPLODING_TRAP_9 end ExplodingTrap10: ; 0x6c97e - checkbit1 $02f2 + checkbit1 EVENT_EXPLODING_TRAP_10 iftrue NoExplodingTrap 2call VoltorbExplodingTrap returnafterbattle - setbit1 $02f2 + setbit1 EVENT_EXPLODING_TRAP_10 end ExplodingTrap11: ; 0x6c98c - checkbit1 $02f3 + checkbit1 EVENT_EXPLODING_TRAP_11 iftrue NoExplodingTrap 2call GeodudeExplodingTrap returnafterbattle - setbit1 $02f3 + setbit1 EVENT_EXPLODING_TRAP_11 end ExplodingTrap12: ; 0x6c99a - checkbit1 $02f4 + checkbit1 EVENT_EXPLODING_TRAP_12 iftrue NoExplodingTrap 2call GeodudeExplodingTrap returnafterbattle - setbit1 $02f4 + setbit1 EVENT_EXPLODING_TRAP_12 end ExplodingTrap13: ; 0x6c9a8 - checkbit1 $02f5 + checkbit1 EVENT_EXPLODING_TRAP_13 iftrue NoExplodingTrap 2call GeodudeExplodingTrap returnafterbattle - setbit1 $02f5 + setbit1 EVENT_EXPLODING_TRAP_13 end ExplodingTrap14: ; 0x6c9b6 - checkbit1 $02f6 + checkbit1 EVENT_EXPLODING_TRAP_14 iftrue NoExplodingTrap 2call KoffingExplodingTrap returnafterbattle - setbit1 $02f6 + setbit1 EVENT_EXPLODING_TRAP_14 end ExplodingTrap15: ; 0x6c9c4 - checkbit1 $02f7 + checkbit1 EVENT_EXPLODING_TRAP_15 iftrue NoExplodingTrap 2call VoltorbExplodingTrap returnafterbattle - setbit1 $02f7 + setbit1 EVENT_EXPLODING_TRAP_15 end ExplodingTrap16: ; 0x6c9d2 - checkbit1 $02f8 + checkbit1 EVENT_EXPLODING_TRAP_16 iftrue NoExplodingTrap 2call KoffingExplodingTrap returnafterbattle - setbit1 $02f8 + setbit1 EVENT_EXPLODING_TRAP_16 end ExplodingTrap17: ; 0x6c9e0 - checkbit1 $02f9 + checkbit1 EVENT_EXPLODING_TRAP_17 iftrue NoExplodingTrap 2call VoltorbExplodingTrap returnafterbattle - setbit1 $02f9 + setbit1 EVENT_EXPLODING_TRAP_17 end ExplodingTrap18: ; 0x6c9ee - checkbit1 $02fa + checkbit1 EVENT_EXPLODING_TRAP_18 iftrue NoExplodingTrap 2call GeodudeExplodingTrap returnafterbattle - setbit1 $02fa + setbit1 EVENT_EXPLODING_TRAP_18 end ExplodingTrap19: ; 0x6c9fc - checkbit1 $02fb + checkbit1 EVENT_EXPLODING_TRAP_19 iftrue NoExplodingTrap 2call GeodudeExplodingTrap returnafterbattle - setbit1 $02fb + setbit1 EVENT_EXPLODING_TRAP_19 end ExplodingTrap20: ; 0x6ca0a - checkbit1 $02fc + checkbit1 EVENT_EXPLODING_TRAP_20 iftrue NoExplodingTrap 2call VoltorbExplodingTrap returnafterbattle - setbit1 $02fc + setbit1 EVENT_EXPLODING_TRAP_20 end ExplodingTrap21: ; 0x6ca18 - checkbit1 $02fd + checkbit1 EVENT_EXPLODING_TRAP_21 iftrue NoExplodingTrap 2call KoffingExplodingTrap returnafterbattle - setbit1 $02fd + setbit1 EVENT_EXPLODING_TRAP_21 end ExplodingTrap22: ; 0x6ca26 - checkbit1 $02fe + checkbit1 EVENT_EXPLODING_TRAP_22 iftrue NoExplodingTrap 2call VoltorbExplodingTrap returnafterbattle - setbit1 $02fe + setbit1 EVENT_EXPLODING_TRAP_22 end VoltorbExplodingTrap: ; 0x6ca34 @@ -561,18 +561,18 @@ MapTeamRocketBaseB1FSignpost7Script: ; 0x6ca99 MapTeamRocketBaseB1FSignpost0Script: ; 0x6ca9c loadfont - checkbit1 $02e3 + checkbit1 EVENT_TURNED_OFF_SECURITY_CAMERAS iftrue UnknownScript_0x6cabe 2writetext UnknownText_0x6cdad playsound $0021 closetext loadmovesprites - setbit1 $02e3 - setbit1 $02e4 - setbit1 $02e5 - setbit1 $02e6 - setbit1 $02e7 - setbit1 $02e8 + setbit1 EVENT_TURNED_OFF_SECURITY_CAMERAS + setbit1 EVENT_SECURITY_CAMERA_1 + setbit1 EVENT_SECURITY_CAMERA_2 + setbit1 EVENT_SECURITY_CAMERA_3 + setbit1 EVENT_SECURITY_CAMERA_4 + setbit1 EVENT_SECURITY_CAMERA_5 end ; 0x6cabe diff --git a/maps/TeamRocketBaseB2F.asm b/maps/TeamRocketBaseB2F.asm index c0ef3fa76..229dbddcc 100644 --- a/maps/TeamRocketBaseB2F.asm +++ b/maps/TeamRocketBaseB2F.asm @@ -33,7 +33,7 @@ UnknownScript_0x6cf88: ; 0x6cf88 ; 0x6cf89 UnknownScript_0x6cf89: ; 0x6cf89 - checkbit1 $0300 + checkbit1 EVENT_OPENED_DOOR_TO_ROCKET_HIDEOUT_TRANSMITTER iftrue UnknownScript_0x6cf90 return ; 0x6cf90 @@ -349,7 +349,7 @@ UnknownScript_0x6d184: ; 0x6d184 2writetext UnknownText_0x6d809 keeptextopen verbosegiveitem HM_06, 1 - setbit1 $0015 + setbit1 EVENT_GOT_HM06_WHIRLPOOL 2writetext UnknownText_0x6d8f8 closetext loadmovesprites @@ -361,18 +361,18 @@ UnknownScript_0x6d184: ; 0x6d184 spriteface $0, $0 applymovement $4, MovementData_0x6d283 disappear $4 - setbit1 $0022 + setbit1 EVENT_CLEARED_ROCKET_HIDEOUT clearbit2 $000e setbit1 $06dc setbit1 $0757 dotrigger $3 clearbit1 $0735 - setbit1 $02e3 - setbit1 $02e4 - setbit1 $02e5 - setbit1 $02e6 - setbit1 $02e7 - setbit1 $02e8 + setbit1 EVENT_TURNED_OFF_SECURITY_CAMERAS + setbit1 EVENT_SECURITY_CAMERA_1 + setbit1 EVENT_SECURITY_CAMERA_2 + setbit1 EVENT_SECURITY_CAMERA_3 + setbit1 EVENT_SECURITY_CAMERA_4 + setbit1 EVENT_SECURITY_CAMERA_5 end ; 0x6d1d7 @@ -384,7 +384,7 @@ MapTeamRocketBaseB2FSignpostPtr1: ; 0x6d1d7 MapTeamRocketBaseB2FSignpost1Script: ; 0x6d1db loadfont - checkbit1 $02ff + checkbit1 EVENT_LEARNED_HAIL_GIOVANNI iftrue UnknownScript_0x6d1e8 2writetext UnknownText_0x6dd39 closetext @@ -399,14 +399,14 @@ UnknownScript_0x6d1e8: ; 0x6d1e8 changeblock $e, $c, $7 reloadmappart loadmovesprites - setbit1 $0300 + setbit1 EVENT_OPENED_DOOR_TO_ROCKET_HIDEOUT_TRANSMITTER waitbutton end ; 0x6d1fa MapTeamRocketBaseB2FSignpost21Script: ; 0x6d1fa loadfont - checkbit1 $0022 + checkbit1 EVENT_CLEARED_ROCKET_HIDEOUT iftrue UnknownScript_0x6d207 2writetext UnknownText_0x6dda7 closetext diff --git a/maps/TeamRocketBaseB3F.asm b/maps/TeamRocketBaseB3F.asm index 0fd031fdc..9e89313b5 100644 --- a/maps/TeamRocketBaseB3F.asm +++ b/maps/TeamRocketBaseB3F.asm @@ -125,7 +125,7 @@ MoltresScript_0x6e091: ; 0x6e091 2writetext UnknownText_0x6e585 closetext loadmovesprites - setbit1 $02ff + setbit1 EVENT_LEARNED_HAIL_GIOVANNI end ; 0x6e09b diff --git a/maps/TinTower1F.asm b/maps/TinTower1F.asm index 2eb1a5a98..5f927fb36 100644 --- a/maps/TinTower1F.asm +++ b/maps/TinTower1F.asm @@ -26,7 +26,7 @@ UnknownScript_0x18502e: ; 0x18502e ; 0x18502f UnknownScript_0x18502f: ; 0x18502f - checkbit1 $0336 + checkbit1 EVENT_GOT_RAINBOW_WING iftrue UnknownScript_0x185047 checkbit1 $0044 iffalse UnknownScript_0x185050 @@ -35,7 +35,7 @@ UnknownScript_0x18502f: ; 0x18502f clearbit1 $07c5 setbit1 $07b6 UnknownScript_0x185047: ; 0x185047 - checkbit1 $0317 + checkbit1 EVENT_FOUGHT_HO_OH iffalse UnknownScript_0x18504f appear $5 UnknownScript_0x18504f: ; 0x18504f @@ -43,7 +43,7 @@ UnknownScript_0x18504f: ; 0x18504f ; 0x185050 UnknownScript_0x185050: ; 0x185050 - checkbit1 $0335 + checkbit1 EVENT_FOUGHT_SUICUNE iftrue UnknownScript_0x185077 appear $2 writebyte RAIKOU @@ -79,7 +79,7 @@ UnknownScript_0x185077: ; 0x185077 ; 0x185084 UnknownScript_0x185084: ; 0x185084 - checkbit1 $0336 + checkbit1 EVENT_GOT_RAINBOW_WING iftrue UnknownScript_0x18508e changeblock $a, $2, $9 UnknownScript_0x18508e: ; 0x18508e @@ -126,15 +126,15 @@ UnknownScript_0x1850d7: ; 0x1850d7 startbattle reloadmapmusic disappear $2 - setbit1 $0335 - setbit1 $07af + setbit1 EVENT_FOUGHT_SUICUNE + setbit1 EVENT_SAW_SUICUNE_ON_ROUTE_42 domaptrigger GROUP_ROUTE_42, MAP_ROUTE_42, $0 - setbit1 $07b0 + setbit1 EVENT_SAW_SUICUNE_ON_ROUTE_36 domaptrigger GROUP_ROUTE_36, MAP_ROUTE_36, $0 - setbit1 $07ae + setbit1 EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY domaptrigger GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, $0 dotrigger $1 - clearbit1 $07b7 + clearbit1 EVENT_SET_WHEN_FOUGHT_HO_OH returnafterbattle pause 20 spriteface $0, $0 @@ -186,7 +186,7 @@ SageScript_0x185179: ; 0x185179 ; 0x18517c SageScript_0x18517c: ; 0x18517c - checkbit1 $0317 + checkbit1 EVENT_FOUGHT_HO_OH iftrue UnknownScript_0x185185 jumptextfaceplayer UnknownText_0x1855ee ; 0x185185 @@ -198,9 +198,9 @@ UnknownScript_0x185185: ; 0x185185 SageScript_0x185188: ; 0x185188 faceplayer loadfont - checkbit1 $0317 + checkbit1 EVENT_FOUGHT_HO_OH iftrue UnknownScript_0x1851b6 - checkbit1 $0336 + checkbit1 EVENT_GOT_RAINBOW_WING iftrue UnknownScript_0x1851b0 2writetext UnknownText_0x185629 keeptextopen @@ -212,7 +212,7 @@ SageScript_0x185188: ; 0x185188 playsound $001b changeblock $a, $2, $20 reloadmappart - setbit1 $0336 + setbit1 EVENT_GOT_RAINBOW_WING loadmovesprites loadfont UnknownScript_0x1851b0: ; 0x1851b0 @@ -230,7 +230,7 @@ UnknownScript_0x1851b6: ; 0x1851b6 ; 0x1851bc SageScript_0x1851bc: ; 0x1851bc - checkbit1 $0317 + checkbit1 EVENT_FOUGHT_HO_OH iftrue UnknownScript_0x1851c5 jumptextfaceplayer UnknownText_0x185654 ; 0x1851c5 diff --git a/maps/TinTowerRoof.asm b/maps/TinTowerRoof.asm index 409ffaa98..c30744c0b 100644 --- a/maps/TinTowerRoof.asm +++ b/maps/TinTowerRoof.asm @@ -11,7 +11,7 @@ TinTowerRoof_MapScriptHeader: ; 0x7722b ; 0x77230 UnknownScript_0x77230: ; 0x77230 - checkbit1 $0317 + checkbit1 EVENT_FOUGHT_HO_OH iftrue UnknownScript_0x77241 checkitem RAINBOW_WING iftrue UnknownScript_0x7723e @@ -35,13 +35,13 @@ HoOhScript_0x77244: ; 0x77244 cry HO_OH pause 15 loadmovesprites - setbit1 $0317 + setbit1 EVENT_FOUGHT_HO_OH writecode $3, $a loadpokedata HO_OH, 60 startbattle disappear $2 returnafterbattle - setbit1 $07b7 + setbit1 EVENT_SET_WHEN_FOUGHT_HO_OH end ; 0x77260 diff --git a/maps/UndergroundPathSwitchRoomEntrances.asm b/maps/UndergroundPathSwitchRoomEntrances.asm index 8b9dbed3c..36b951d59 100644 --- a/maps/UndergroundPathSwitchRoomEntrances.asm +++ b/maps/UndergroundPathSwitchRoomEntrances.asm @@ -23,51 +23,51 @@ UnknownScript_0x7c9f6: ; 0x7c9f6 ; 0x7c9f7 UnknownScript_0x7c9f7: ; 0x7c9f7 - checkbit1 $02d7 + checkbit1 EVENT_SWITCH_4 iffalse UnknownScript_0x7ca01 changeblock $10, $6, $2d UnknownScript_0x7ca01: ; 0x7ca01 - checkbit1 $02d8 + checkbit1 EVENT_SWITCH_5 iffalse UnknownScript_0x7ca0b changeblock $a, $6, $2d UnknownScript_0x7ca0b: ; 0x7ca0b - checkbit1 $02d9 + checkbit1 EVENT_SWITCH_6 iffalse UnknownScript_0x7ca15 changeblock $2, $6, $2d UnknownScript_0x7ca15: ; 0x7ca15 - checkbit1 $02da + checkbit1 EVENT_SWITCH_7 iffalse UnknownScript_0x7ca1f changeblock $2, $a, $2d UnknownScript_0x7ca1f: ; 0x7ca15 - checkbit1 $02db + checkbit1 EVENT_SWITCH_8 iffalse UnknownScript_0x7ca29 changeblock $a, $a, $2d UnknownScript_0x7ca29: ; 0x7ca29 - checkbit1 $02dc + checkbit1 EVENT_SWITCH_9 iffalse UnknownScript_0x7ca33 changeblock $10, $a, $2d UnknownScript_0x7ca33: ; 0x7ca33 - checkbit1 $02dd + checkbit1 EVENT_SWITCH_10 iffalse UnknownScript_0x7ca41 changeblock $c, $6, $2a changeblock $c, $8, $2d UnknownScript_0x7ca41: ; 0x7ca41 - checkbit1 $02de + checkbit1 EVENT_SWITCH_11 iffalse UnknownScript_0x7ca4f changeblock $6, $6, $2a changeblock $6, $8, $2d UnknownScript_0x7ca4f: ; 0x7ca4f - checkbit1 $02df + checkbit1 EVENT_SWITCH_12 iffalse UnknownScript_0x7ca5d changeblock $c, $a, $2a changeblock $c, $c, $2d UnknownScript_0x7ca5d: ; 0x7ca5d - checkbit1 $02e0 + checkbit1 EVENT_SWITCH_13 iffalse UnknownScript_0x7ca6b changeblock $6, $a, $2a changeblock $6, $c, $2d UnknownScript_0x7ca6b: ; 0x7ca6b - checkbit1 $02e1 + checkbit1 EVENT_SWITCH_14 iffalse UnknownScript_0x7ca79 changeblock $12, $a, $2a changeblock $12, $c, $2d @@ -135,9 +135,9 @@ UnknownScript_0x7cae1: ; 0x7cae1 closetext loadmovesprites setbit1 $06c1 - checkbit1 $001c + checkbit1 EVENT_GOT_TOTODILE_FROM_ELM iftrue UnknownScript_0x7cb09 - checkbit1 $001d + checkbit1 EVENT_GOT_CHIKORITA_FROM_ELM iftrue UnknownScript_0x7cb19 winlosstext UnknownText_0x7cf5d, UnknownText_0x7d102 setlasttalked $c @@ -355,7 +355,7 @@ MapUndergroundPathSwitchRoomEntrancesSignpost0Script: ; 0x7cbab loadfont 2writetext UnknownText_0x7d554 keeptextopen - checkbit1 $02d3 + checkbit1 EVENT_SWITCH_1 iftrue UnknownScript_0x7cbcb 2writetext UnknownText_0x7d617 yesorno @@ -363,7 +363,7 @@ MapUndergroundPathSwitchRoomEntrancesSignpost0Script: ; 0x7cbab copybytetovar UndergroundSwitchPositions addvar $1 copyvartobyte UndergroundSwitchPositions - setbit1 $02d3 + setbit1 EVENT_SWITCH_1 2jump UnknownScript_0x7cc8d ; 0x7cbcb @@ -374,7 +374,7 @@ UnknownScript_0x7cbcb: ; 0x7cbcb copybytetovar UndergroundSwitchPositions addvar -1 copyvartobyte UndergroundSwitchPositions - clearbit1 $02d3 + clearbit1 EVENT_SWITCH_1 2jump UnknownScript_0x7cc8d ; 0x7cbe0 @@ -382,7 +382,7 @@ MapUndergroundPathSwitchRoomEntrancesSignpost1Script: ; 0x7cbe0 loadfont 2writetext UnknownText_0x7d643 keeptextopen - checkbit1 $02d4 + checkbit1 EVENT_SWITCH_2 iftrue UnknownScript_0x7cc00 2writetext UnknownText_0x7d617 yesorno @@ -390,7 +390,7 @@ MapUndergroundPathSwitchRoomEntrancesSignpost1Script: ; 0x7cbe0 copybytetovar UndergroundSwitchPositions addvar $2 copyvartobyte UndergroundSwitchPositions - setbit1 $02d4 + setbit1 EVENT_SWITCH_2 2jump UnknownScript_0x7cc8d ; 0x7cc00 @@ -401,7 +401,7 @@ UnknownScript_0x7cc00: ; 0x7cc00 copybytetovar UndergroundSwitchPositions addvar -2 copyvartobyte UndergroundSwitchPositions - clearbit1 $02d4 + clearbit1 EVENT_SWITCH_2 2jump UnknownScript_0x7cc8d ; 0x7cc15 @@ -409,7 +409,7 @@ MapUndergroundPathSwitchRoomEntrancesSignpost2Script: ; 0x7cc15 loadfont 2writetext UnknownText_0x7d65a keeptextopen - checkbit1 $02d5 + checkbit1 EVENT_SWITCH_3 iftrue UnknownScript_0x7cc35 2writetext UnknownText_0x7d617 yesorno @@ -417,7 +417,7 @@ MapUndergroundPathSwitchRoomEntrancesSignpost2Script: ; 0x7cc15 copybytetovar UndergroundSwitchPositions addvar $3 copyvartobyte UndergroundSwitchPositions - setbit1 $02d5 + setbit1 EVENT_SWITCH_3 2jump UnknownScript_0x7cc8d ; 0x7cc35 @@ -428,7 +428,7 @@ UnknownScript_0x7cc35: ; 0x7cc35 copybytetovar UndergroundSwitchPositions addvar -3 copyvartobyte UndergroundSwitchPositions - clearbit1 $02d5 + clearbit1 EVENT_SWITCH_3 2jump UnknownScript_0x7cc8d ; 0x7cc4a @@ -436,17 +436,17 @@ MapUndergroundPathSwitchRoomEntrancesSignpost3Script: ; 0x7cc4a loadfont 2writetext UnknownText_0x7d671 keeptextopen - checkbit1 $02d6 + checkbit1 EVENT_EMERGENCY_SWITCH iftrue UnknownScript_0x7cc70 2writetext UnknownText_0x7d617 yesorno iffalse UnknownScript_0x7cc8b writebyte $7 copyvartobyte UndergroundSwitchPositions - setbit1 $02d6 - setbit1 $02d3 - setbit1 $02d4 - setbit1 $02d5 + setbit1 EVENT_EMERGENCY_SWITCH + setbit1 EVENT_SWITCH_1 + setbit1 EVENT_SWITCH_2 + setbit1 EVENT_SWITCH_3 2jump UnknownScript_0x7cc8d ; 0x7cc70 @@ -456,10 +456,10 @@ UnknownScript_0x7cc70: ; 0x7cc70 iffalse UnknownScript_0x7cc8b writebyte $0 copyvartobyte UndergroundSwitchPositions - clearbit1 $02d6 - clearbit1 $02d3 - clearbit1 $02d4 - clearbit1 $02d5 + clearbit1 EVENT_EMERGENCY_SWITCH + clearbit1 EVENT_SWITCH_1 + clearbit1 EVENT_SWITCH_2 + clearbit1 EVENT_SWITCH_3 2jump UnknownScript_0x7cc8d ; 0x7cc8b @@ -602,143 +602,143 @@ UnknownScript_0x7cd79: ; 0x7cd79 UnknownScript_0x7cda5: ; 0x7cda5 changeblock $10, $6, $2d - setbit1 $02d7 + setbit1 EVENT_SWITCH_4 end ; 0x7cdad UnknownScript_0x7cdad: ; 0x7cdad changeblock $a, $6, $2d - setbit1 $02d8 + setbit1 EVENT_SWITCH_5 end ; 0x7cdb5 UnknownScript_0x7cdb5: ; 0x7cdb5 changeblock $2, $6, $2d - setbit1 $02d9 + setbit1 EVENT_SWITCH_6 end ; 0x7cdbd UnknownScript_0x7cdbd: ; 0x7cdbd changeblock $2, $a, $2d - setbit1 $02da + setbit1 EVENT_SWITCH_7 end ; 0x7cdc5 UnknownScript_0x7cdc5: ; 0x7cdc5 changeblock $a, $a, $2d - setbit1 $02db + setbit1 EVENT_SWITCH_8 end ; 0x7cdcd UnknownScript_0x7cdcd: ; 0x7cdcd changeblock $10, $a, $2d - setbit1 $02dc + setbit1 EVENT_SWITCH_9 end ; 0x7cdd5 UnknownScript_0x7cdd5: ; 0x7cdd5 changeblock $c, $6, $2a changeblock $c, $8, $2d - setbit1 $02dd + setbit1 EVENT_SWITCH_10 end ; 0x7cde1 UnknownScript_0x7cde1: ; 0x7cde1 changeblock $6, $6, $2a changeblock $6, $8, $2d - setbit1 $02de + setbit1 EVENT_SWITCH_11 end ; 0x7cded UnknownScript_0x7cded: ; 0x7cded changeblock $c, $a, $2a changeblock $c, $c, $2d - setbit1 $02df + setbit1 EVENT_SWITCH_12 end ; 0x7cdf9 UnknownScript_0x7cdf9: ; 0x7cdf9 changeblock $6, $a, $2a changeblock $6, $c, $2d - setbit1 $02e0 + setbit1 EVENT_SWITCH_13 end ; 0x7ce05 UnknownScript_0x7ce05: ; 0x7ce05 changeblock $12, $a, $2a changeblock $12, $c, $2d - setbit1 $02e1 + setbit1 EVENT_SWITCH_14 end ; 0x7ce11 UnknownScript_0x7ce11: ; 0x7ce11 changeblock $10, $6, $3e - clearbit1 $02d7 + clearbit1 EVENT_SWITCH_4 end ; 0x7ce19 UnknownScript_0x7ce19: ; 0x7ce19 changeblock $a, $6, $3e - clearbit1 $02d8 + clearbit1 EVENT_SWITCH_5 end ; 0x7ce21 UnknownScript_0x7ce21: ; 0x7ce21 changeblock $2, $6, $3e - clearbit1 $02d9 + clearbit1 EVENT_SWITCH_6 end ; 0x7ce29 UnknownScript_0x7ce29: ; 0x7ce29 changeblock $2, $a, $3e - clearbit1 $02da + clearbit1 EVENT_SWITCH_7 end ; 0x7ce31 UnknownScript_0x7ce31: ; 0x7ce31 changeblock $a, $a, $3e - clearbit1 $02db + clearbit1 EVENT_SWITCH_8 end ; 0x7ce39 UnknownScript_0x7ce39: ; 0x7ce39 changeblock $10, $a, $3e - clearbit1 $02dc + clearbit1 EVENT_SWITCH_9 end ; 0x7ce41 UnknownScript_0x7ce41: ; 0x7ce41 changeblock $c, $6, $3f changeblock $c, $8, $3d - clearbit1 $02dd + clearbit1 EVENT_SWITCH_10 end ; 0x7ce4d UnknownScript_0x7ce4d: ; 0x7ce4d changeblock $6, $6, $3f changeblock $6, $8, $3d - clearbit1 $02de + clearbit1 EVENT_SWITCH_11 end ; 0x7ce59 UnknownScript_0x7ce59: ; 0x7ce59 changeblock $c, $a, $3f changeblock $c, $c, $3d - clearbit1 $02df + clearbit1 EVENT_SWITCH_12 end ; 0x7ce65 UnknownScript_0x7ce65: ; 0x7ce65 changeblock $6, $a, $3f changeblock $6, $c, $3d - clearbit1 $02e0 + clearbit1 EVENT_SWITCH_13 end ; 0x7ce71 UnknownScript_0x7ce71: ; 0x7ce71 changeblock $12, $a, $3f changeblock $12, $c, $3d - clearbit1 $02e1 + clearbit1 EVENT_SWITCH_14 end ; 0x7ce7d diff --git a/maps/UndergroundWarehouse.asm b/maps/UndergroundWarehouse.asm index 43420ee05..f20f78273 100644 --- a/maps/UndergroundWarehouse.asm +++ b/maps/UndergroundWarehouse.asm @@ -11,21 +11,21 @@ UndergroundWarehouse_MapScriptHeader: ; 0x7d94b ; 0x7d950 UnknownScript_0x7d950: ; 0x7d950 - clearbit1 $02d3 - clearbit1 $02d4 - clearbit1 $02d5 - clearbit1 $02d6 - clearbit1 $02d7 - clearbit1 $02d8 - clearbit1 $02d9 - clearbit1 $02da - clearbit1 $02db - clearbit1 $02dc - clearbit1 $02dd - clearbit1 $02de - clearbit1 $02df - clearbit1 $02e0 - clearbit1 $02e1 + clearbit1 EVENT_SWITCH_1 + clearbit1 EVENT_SWITCH_2 + clearbit1 EVENT_SWITCH_3 + clearbit1 EVENT_EMERGENCY_SWITCH + clearbit1 EVENT_SWITCH_4 + clearbit1 EVENT_SWITCH_5 + clearbit1 EVENT_SWITCH_6 + clearbit1 EVENT_SWITCH_7 + clearbit1 EVENT_SWITCH_8 + clearbit1 EVENT_SWITCH_9 + clearbit1 EVENT_SWITCH_10 + clearbit1 EVENT_SWITCH_11 + clearbit1 EVENT_SWITCH_12 + clearbit1 EVENT_SWITCH_13 + clearbit1 EVENT_SWITCH_14 writebyte $0 copyvartobyte UndergroundSwitchPositions return diff --git a/maps/VermilionCity.asm b/maps/VermilionCity.asm index ef2aff882..69ba933e6 100644 --- a/maps/VermilionCity.asm +++ b/maps/VermilionCity.asm @@ -60,7 +60,7 @@ UnknownScript_0x1aa9ab: ; 0x1aa9ab loadpokedata SNORLAX, 50 startbattle disappear $6 - setbit1 $0750 + setbit1 EVENT_FOUGHT_SNORLAX returnafterbattle end ; 0x1aa9c2 diff --git a/maps/VermilionGym.asm b/maps/VermilionGym.asm index c671d3571..1988a1588 100644 --- a/maps/VermilionGym.asm +++ b/maps/VermilionGym.asm @@ -18,10 +18,10 @@ SurgeScript_0x1920a5: ; 0x1920a5 loadtrainer LT_SURGE, 1 startbattle returnafterbattle - setbit1 $04c7 - setbit1 $049c - setbit1 $0494 - setbit1 $0497 + setbit1 EVENT_BEAT_LTSURGE + setbit1 EVENT_BEAT_GENTLEMAN_GREGORY + setbit1 EVENT_BEAT_GUITARIST_VINCENT + setbit1 EVENT_BEAT_JUGGLER_HORTON loadfont 2writetext UnknownText_0x192277 playsound $009c @@ -130,7 +130,7 @@ JugglerHortonScript: ; 0x192113 VermilionGymGuyScript: ; 0x19211b faceplayer loadfont - checkbit1 $04c7 + checkbit1 EVENT_BEAT_LTSURGE iftrue .VermilionGymGuyWinScript 2writetext VermilionGymGuyText closetext diff --git a/maps/VermilionPokeCenter1F.asm b/maps/VermilionPokeCenter1F.asm index 0a10c04dc..4bf949b10 100644 --- a/maps/VermilionPokeCenter1F.asm +++ b/maps/VermilionPokeCenter1F.asm @@ -13,7 +13,7 @@ NurseScript_0x191603: ; 0x191603 FishingGuruScript_0x191606: ; 0x191606 faceplayer loadfont - checkbit1 $0750 + checkbit1 EVENT_FOUGHT_SNORLAX iftrue UnknownScript_0x191614 2writetext UnknownText_0x191620 closetext diff --git a/maps/VermilionPort.asm b/maps/VermilionPort.asm index 86a55a1b8..c541f77b2 100644 --- a/maps/VermilionPort.asm +++ b/maps/VermilionPort.asm @@ -61,16 +61,16 @@ SailorScript_0x74dc4: ; 0x74dc4 waitbutton setbit1 $073a clearbit1 $073b - clearbit1 $04eb - clearbit1 $042f - clearbit1 $0540 - clearbit1 $0493 - clearbit1 $04d4 - clearbit1 $04dd - clearbit1 $057c - clearbit1 $05b7 - clearbit1 $0476 - clearbit1 $0477 + clearbit1 EVENT_BEAT_POKEMANIAC_ETHAN + clearbit1 EVENT_BEAT_BURGLAR_COREY + clearbit1 EVENT_BEAT_BUG_CATCHER_KEN + clearbit1 EVENT_BEAT_GUITARIST_CLYDE + clearbit1 EVENT_BEAT_POKEFANM_JEREMY + clearbit1 EVENT_BEAT_POKEFANF_GEORGIA + clearbit1 EVENT_BEAT_SAILOR_KENNETH + clearbit1 EVENT_BEAT_TEACHER_SHIRLEY + clearbit1 EVENT_BEAT_SCHOOLBOY_NATE + clearbit1 EVENT_BEAT_SCHOOLBOY_RICKY setbit1 $002f appear $2 domaptrigger GROUP_FAST_SHIP_1F, MAP_FAST_SHIP_1F, $1 diff --git a/maps/VictoryRoad.asm b/maps/VictoryRoad.asm index 0109fcc92..86f94969c 100644 --- a/maps/VictoryRoad.asm +++ b/maps/VictoryRoad.asm @@ -57,9 +57,9 @@ UnknownScript_0x744d4: ; 0x744d4 closetext loadmovesprites setbit1 $06c2 - checkbit1 $001c + checkbit1 EVENT_GOT_TOTODILE_FROM_ELM iftrue UnknownScript_0x744ff - checkbit1 $001d + checkbit1 EVENT_GOT_CHIKORITA_FROM_ELM iftrue UnknownScript_0x7450f winlosstext UnknownText_0x7463d, UnknownText_0x747aa setlasttalked $2 diff --git a/maps/VioletGym.asm b/maps/VioletGym.asm index 502daee05..9c4a862f2 100644 --- a/maps/VioletGym.asm +++ b/maps/VioletGym.asm @@ -9,7 +9,7 @@ VioletGym_MapScriptHeader: ; 0x683c0 FalknerScript_0x683c2: ; 0x683c2 faceplayer loadfont - checkbit1 $04bd + checkbit1 EVENT_BEAT_FALKNER iftrue UnknownScript_0x683ec 2writetext UnknownText_0x68473 closetext @@ -18,7 +18,7 @@ FalknerScript_0x683c2: ; 0x683c2 loadtrainer FALKNER, 1 startbattle returnafterbattle - setbit1 $04bd + setbit1 EVENT_BEAT_FALKNER loadfont 2writetext UnknownText_0x685af playsound $009c @@ -27,17 +27,17 @@ FalknerScript_0x683c2: ; 0x683c2 checkcode $7 2call UnknownScript_0x68418 UnknownScript_0x683ec: ; 0x683ec - checkbit1 $0008 + checkbit1 EVENT_GOT_TM31_MUD_SLAP iftrue UnknownScript_0x68412 - setbit1 $03fb - setbit1 $03fc + setbit1 EVENT_BEAT_BIRD_KEEPER_ROD + setbit1 EVENT_BEAT_BIRD_KEEPER_ABE domaptrigger GROUP_ELMS_LAB, MAP_ELMS_LAB, $2 specialphonecall $3 2writetext UnknownText_0x685c8 keeptextopen verbosegiveitem TM_31, 1 iffalse UnknownScript_0x68416 - setbit1 $0008 + setbit1 EVENT_GOT_TM31_MUD_SLAP 2writetext UnknownText_0x68648 closetext loadmovesprites @@ -127,7 +127,7 @@ Bird_keeperAbeScript: ; 0x68447 VioletGymGuyScript: ; 0x6844f faceplayer loadfont - checkbit1 $04bd + checkbit1 EVENT_BEAT_FALKNER iftrue .VioletGymGuyWinScript 2writetext VioletGymGuyText closetext diff --git a/maps/VioletPokeCenter1F.asm b/maps/VioletPokeCenter1F.asm index 0ed13e26b..1fba9bb62 100644 --- a/maps/VioletPokeCenter1F.asm +++ b/maps/VioletPokeCenter1F.asm @@ -13,7 +13,7 @@ NurseScript_0x694c9: ; 0x694c9 ScientistScript_0x694cc: ; 0x694cc faceplayer loadfont - checkbit1 $002c + checkbit1 EVENT_REFUSED_TO_TAKE_EGG_FROM_ELMS_AIDE iftrue UnknownScript_0x6953a 2writetext UnknownText_0x69555 UnknownScript_0x694d7: ; 0x694d7 @@ -24,9 +24,9 @@ UnknownScript_0x694d7: ; 0x694d7 giveegg TOGEPI, 5 stringtotext .eggname, $1 2call UnknownScript_0x69527 - setbit1 $002d - clearbit1 $0701 - clearbit1 $0054 + setbit1 EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE + clearbit1 EVENT_ELMS_AIDE_IN_LAB + clearbit1 EVENT_TOGEPI_HATCHED domaptrigger GROUP_ROUTE_32, MAP_ROUTE_32, $1 2writetext UnknownText_0x695c5 closetext @@ -70,7 +70,7 @@ UnknownScript_0x69531: ; 0x69531 2writetext UnknownText_0x696f2 closetext loadmovesprites - setbit1 $002c + setbit1 EVENT_REFUSED_TO_TAKE_EGG_FROM_ELMS_AIDE end ; 0x6953a diff --git a/maps/ViridianCity.asm b/maps/ViridianCity.asm index 489208241..e16dad94c 100644 --- a/maps/ViridianCity.asm +++ b/maps/ViridianCity.asm @@ -55,13 +55,13 @@ UnknownScript_0x1a9a6f: ; 0x1a9a6f FisherScript_0x1a9a75: ; 0x1a9a75 faceplayer loadfont - checkbit1 $00e0 + checkbit1 EVENT_GOT_TM42_DREAM_EATER iftrue UnknownScript_0x1a9a8a 2writetext UnknownText_0x1a9cc4 keeptextopen verbosegiveitem TM_42, 1 iffalse UnknownScript_0x1a9a8e - setbit1 $00e0 + setbit1 EVENT_GOT_TM42_DREAM_EATER UnknownScript_0x1a9a8a: ; 0x1a9a8a 2writetext UnknownText_0x1a9d86 closetext diff --git a/maps/ViridianGym.asm b/maps/ViridianGym.asm index 393940f7b..b8f733bb3 100644 --- a/maps/ViridianGym.asm +++ b/maps/ViridianGym.asm @@ -18,7 +18,7 @@ BlueScript_0x9aa26: ; 0x9aa26 loadtrainer BLUE, 1 startbattle returnafterbattle - setbit1 $04cc + setbit1 EVENT_BEAT_BLUE loadfont 2writetext UnknownText_0x9ac0f playsound $009c @@ -40,7 +40,7 @@ UnknownScript_0x9aa51: ; 0x9aa51 ViridianGymGuyScript: ; 0x9aa57 faceplayer loadfont - checkbit1 $04cc + checkbit1 EVENT_BEAT_BLUE iftrue .ViridianGymGuyWinScript 2writetext ViridianGymGuyText closetext diff --git a/maps/WarehouseEntrance.asm b/maps/WarehouseEntrance.asm index ad83746d1..ba083e7ff 100644 --- a/maps/WarehouseEntrance.asm +++ b/maps/WarehouseEntrance.asm @@ -15,28 +15,28 @@ WarehouseEntrance_MapScriptHeader: ; 0x7c038 ; 0x7c043 UnknownScript_0x7c043: ; 0x7c043 - clearbit1 $02d3 - clearbit1 $02d4 - clearbit1 $02d5 - clearbit1 $02d6 - clearbit1 $02d7 - clearbit1 $02d8 - clearbit1 $02d9 - clearbit1 $02da - clearbit1 $02db - clearbit1 $02dc - clearbit1 $02dd - clearbit1 $02de - clearbit1 $02df - clearbit1 $02e0 - clearbit1 $02e1 + clearbit1 EVENT_SWITCH_1 + clearbit1 EVENT_SWITCH_2 + clearbit1 EVENT_SWITCH_3 + clearbit1 EVENT_EMERGENCY_SWITCH + clearbit1 EVENT_SWITCH_4 + clearbit1 EVENT_SWITCH_5 + clearbit1 EVENT_SWITCH_6 + clearbit1 EVENT_SWITCH_7 + clearbit1 EVENT_SWITCH_8 + clearbit1 EVENT_SWITCH_9 + clearbit1 EVENT_SWITCH_10 + clearbit1 EVENT_SWITCH_11 + clearbit1 EVENT_SWITCH_12 + clearbit1 EVENT_SWITCH_13 + clearbit1 EVENT_SWITCH_14 writebyte $0 copyvartobyte UndergroundSwitchPositions return ; 0x7c076 UnknownScript_0x7c076: ; 0x7c076 - checkbit1 $0049 + checkbit1 EVENT_USED_BASEMENT_KEY iffalse UnknownScript_0x7c07d return ; 0x7c07d @@ -470,7 +470,7 @@ UnknownScript_0x7c2cd: ; 0x7c2cd MapWarehouseEntranceSignpost0Script: ; 0x7c2d6 loadfont - checkbit1 $0049 + checkbit1 EVENT_USED_BASEMENT_KEY iftrue UnknownScript_0x7c2fa checkitem BASEMENT_KEY iftrue UnknownScript_0x7c2e8 @@ -488,7 +488,7 @@ UnknownScript_0x7c2e8: ; 0x7c2e8 changeblock $12, $6, $2e reloadmappart loadmovesprites - setbit1 $0049 + setbit1 EVENT_USED_BASEMENT_KEY end ; 0x7c2fa diff --git a/maps/WhirlIslandLugiaChamber.asm b/maps/WhirlIslandLugiaChamber.asm index 8b394ea22..1b002757b 100644 --- a/maps/WhirlIslandLugiaChamber.asm +++ b/maps/WhirlIslandLugiaChamber.asm @@ -11,7 +11,7 @@ WhirlIslandLugiaChamber_MapScriptHeader: ; 0x18c4ff ; 0x18c504 UnknownScript_0x18c504: ; 0x18c504 - checkbit1 $0318 + checkbit1 EVENT_FOUGHT_LUGIA iftrue UnknownScript_0x18c515 checkitem SILVER_WING iftrue UnknownScript_0x18c512 @@ -35,7 +35,7 @@ LugiaScript_0x18c518: ; 0x18c518 cry LUGIA pause 15 loadmovesprites - setbit1 $0318 + setbit1 EVENT_FOUGHT_LUGIA writecode $3, $a loadpokedata LUGIA, 60 startbattle diff --git a/maps/WillsRoom.asm b/maps/WillsRoom.asm index e59a1ac62..8089c469e 100644 --- a/maps/WillsRoom.asm +++ b/maps/WillsRoom.asm @@ -28,7 +28,7 @@ UnknownScript_0x1804cb: ; 0x1804cb iffalse UnknownScript_0x1804d5 changeblock $4, $e, $2a UnknownScript_0x1804d5: ; 0x1804d5 - checkbit1 $030a + checkbit1 EVENT_WILLS_ROOM_EXIT_OPEN iffalse UnknownScript_0x1804df changeblock $4, $2, $16 UnknownScript_0x1804df: ; 0x1804df @@ -70,7 +70,7 @@ WillScript_0x1804f8: ; 0x1804f8 changeblock $4, $2, $16 reloadmappart loadmovesprites - setbit1 $030a + setbit1 EVENT_WILLS_ROOM_EXIT_OPEN waitbutton end ; 0x180526 diff --git a/maps/WiseTriosRoom.asm b/maps/WiseTriosRoom.asm index 79dce2d5e..f99817aac 100644 --- a/maps/WiseTriosRoom.asm +++ b/maps/WiseTriosRoom.asm @@ -23,9 +23,9 @@ UnknownScript_0x98573: ; 0x98573 ; 0x98574 UnknownScript_0x98574: ; 0x98574 - checkbit1 $0335 + checkbit1 EVENT_FOUGHT_SUICUNE iftrue UnknownScript_0x98593 - checkbit1 $0334 + checkbit1 EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER iftrue UnknownScript_0x9858c checkitem CLEAR_BELL iftrue UnknownScript_0x9858c @@ -152,7 +152,7 @@ TrainerSageKoji: ; 0x985ec ; 0x985f8 SageKojiScript: ; 0x985f8 - checkbit1 $0334 + checkbit1 EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER iftrue UnknownScript_0x9861b pause 10 showemote $0, $7, 20 @@ -164,7 +164,7 @@ SageKojiScript: ; 0x985f8 loadmovesprites applymovement $7, MovementData_0x98628 spriteface $7, $1 - setbit1 $0334 + setbit1 EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER dotrigger $1 end ; 0x9861b diff --git a/maps/blockdata_1.asm b/maps/blockdata_1.asm new file mode 100644 index 000000000..ddd7b6e3a --- /dev/null +++ b/maps/blockdata_1.asm @@ -0,0 +1,308 @@ +Route32_BlockData: ; 0xa8000 + INCBIN "maps/Route32.blk" +; 0xa81c2 + +Route40_BlockData: ; 0xa81c2 + INCBIN "maps/Route40.blk" +; 0xa8276 + +Route36_BlockData: ; 0xa8276 + INCBIN "maps/Route36.blk" +; 0xa8384 + +Route44_BlockData: ; 0xa8384 + INCBIN "maps/Route44.blk" +; 0xa8492 + +Route28_BlockData: ; 0xa8492 + INCBIN "maps/Route28.blk" +; 0xa8546 + +BetaHerosHouse_BlockData: ; 0xa8546 + INCBIN "maps/BetaHerosHouse.blk" +; 0xa8552 + +CeladonCity_BlockData: ; 0xa8552 + INCBIN "maps/CeladonCity.blk" +; 0xa86ba + +SaffronCity_BlockData: ; 0xa86ba + INCBIN "maps/SaffronCity.blk" +; 0xa8822 + +Route2_BlockData: ; 0xa8822 + INCBIN "maps/Route2.blk" +; 0xa8930 + +ElmsHouse_BlockData: ; 0xa8930 + INCBIN "maps/ElmsHouse.blk" +; 0xa8940 + +BetaSproutTower1_BlockData: ; 0xa8940 + INCBIN "maps/BetaSproutTower1.blk" +; 0xa899a + +Route11_BlockData: ; 0xa899a + INCBIN "maps/Route11.blk" +; 0xa8a4e + +BetaSproutTower5_BlockData: ; 0xa8a4e + INCBIN "maps/BetaSproutTower5.blk" +; 0xa8aa8 + +Route15_BlockData: ; 0xa8aa8 + INCBIN "maps/Route15.blk" +; 0xa8b5c + +BetaSproutTower9_BlockData: ; 0xa8b5c + INCBIN "maps/BetaSproutTower9.blk" +; 0xa8b80 + +Route19_BlockData: ; 0xa8b80 + INCBIN "maps/Route19.blk" +; 0xa8c34 + +BetaBlackthornCity_BlockData: ; 0xa8c34 + INCBIN "maps/BetaBlackthornCity.blk" +; 0xa8d9c + +Route10South_BlockData: ; 0xa8d9c + INCBIN "maps/Route10South.blk" +; 0xa8df6 + +CinnabarPokeCenter2FBeta_BlockData: ; 0xa8df6 + INCBIN "maps/CinnabarPokeCenter2FBeta.blk" +; 0xa8e16 + +Route41_BlockData: ; 0xa8e16 + INCBIN "maps/Route41.blk" +; 0xa90b9 + +Route33_BlockData: ; 0xa90b9 + INCBIN "maps/Route33.blk" +; 0xa9113 + +Route45_BlockData: ; 0xa9113 + INCBIN "maps/Route45.blk" +; 0xa92d5 + +Route29_BlockData: ; 0xa92d5 + INCBIN "maps/Route29.blk" +; 0xa93e3 + +Route37_BlockData: ; 0xa93e3 + INCBIN "maps/Route37.blk" +; 0xa943d + +LavenderTown_BlockData: ; 0xa943d + INCBIN "maps/LavenderTown.blk" +; 0xa9497 + +PalletTown_BlockData: ; 0xa9497 + INCBIN "maps/PalletTown.blk" +; 0xa94f1 + +Route25_BlockData: ; 0xa94f1 + INCBIN "maps/Route25.blk" +; 0xa95ff + +Route24_BlockData: ; 0xa95ff + INCBIN "maps/Route24.blk" +; 0xa9659 + +BetaVioletCity_BlockData: ; 0xa9659 + INCBIN "maps/BetaVioletCity.blk" +; 0xa97c1 + +Route3_BlockData: ; 0xa97c1 + INCBIN "maps/Route3.blk" +; 0xa98cf + +PewterCity_BlockData: ; 0xa98cf + INCBIN "maps/PewterCity.blk" +; 0xa9a37 + +BetaIlexForest_BlockData: ; 0xa9a37 + INCBIN "maps/BetaIlexForest.blk" +; 0xa9b9f + +BetaSproutTower2_BlockData: ; 0xa9b9f + INCBIN "maps/BetaSproutTower2.blk" +; 0xa9bf9 + +Route12_BlockData: ; 0xa9bf9 + INCBIN "maps/Route12.blk" +; 0xa9d07 + +BetaGoldenrodCity_BlockData: ; 0xa9d07 + INCBIN "maps/BetaGoldenrodCity.blk" +; 0xa9e6f + +Route20_BlockData: ; 0xa9e6f + INCBIN "maps/Route20.blk" +; 0xa9f7d + +BetaSproutTower6_BlockData: ; 0xa9f7d + INCBIN "maps/BetaSproutTower6.blk" +; 0xa9fd7 + +BetaPokecenterMainHouse_BlockData: ; 0xa9fd7 + INCBIN "maps/BetaPokecenterMainHouse.blk" +; 0xa9ff7 + +Route30_BlockData: ; 0xa9ff7 + INCBIN "maps/Route30.blk" +; 0xaa105 + +Route26_BlockData: ; 0xaa105 + INCBIN "maps/Route26.blk" +; 0xaa321 + +Route42_BlockData: ; 0xaa321 + INCBIN "maps/Route42.blk" +; 0xaa42f + +Route34_BlockData: ; 0xaa42f + INCBIN "maps/Route34.blk" +; 0xaa53d + +Route46_BlockData: ; 0xaa53d + INCBIN "maps/Route46.blk" +; 0xaa5f1 + +FuchsiaCity_BlockData: ; 0xaa5f1 + INCBIN "maps/FuchsiaCity.blk" +; 0xaa759 + +Route38_BlockData: ; 0xaa759 + INCBIN "maps/Route38.blk" +; 0xaa80d + +BetaCianwoodCity_BlockData: ; 0xaa80d + INCBIN "maps/BetaCianwoodCity.blk" +; 0xaa867 + +OlivineVoltorbHouse_BlockData: ; 0xaa867 + INCBIN "maps/OlivineVoltorbHouse.blk" +; 0xaa877 + +SafariZoneFuchsiaGateBeta_BlockData: ; 0xaa877 + INCBIN "maps/SafariZoneFuchsiaGateBeta.blk" +; 0xaa88b + +BetaTeakCity_BlockData: ; 0xaa88b + INCBIN "maps/BetaTeakCity.blk" +; 0xaa9f3 + +BetaCherrygroveCity_BlockData: ; 0xaa9f3 + INCBIN "maps/BetaCherrygroveCity.blk" +; 0xaaa4d + +CinnabarIsland_BlockData: ; 0xaaa4d + INCBIN "maps/CinnabarIsland.blk" +; 0xaaaa7 + +Route4_BlockData: ; 0xaaaa7 + INCBIN "maps/Route4.blk" +; 0xaab5b + +Route8_BlockData: ; 0xaab5b + INCBIN "maps/Route8.blk" +; 0xaac0f + +BetaSproutTower3_BlockData: ; 0xaac0f + INCBIN "maps/BetaSproutTower3.blk" +; 0xaac69 + +ViridianCity_BlockData: ; 0xaac69 + INCBIN "maps/ViridianCity.blk" +; 0xaadd1 + +Route13_BlockData: ; 0xaadd1 + INCBIN "maps/Route13.blk" +; 0xaaedf + +Route21_BlockData: ; 0xaaedf + INCBIN "maps/Route21.blk" +; 0xaaf93 + +BetaSproutTower7_BlockData: ; 0xaaf93 + INCBIN "maps/BetaSproutTower7.blk" +; 0xaafed + +Route17_BlockData: ; 0xaafed + INCBIN "maps/Route17.blk" +; 0xab1af + +BetaMahoganyTown_BlockData: ; 0xab1af + INCBIN "maps/BetaMahoganyTown.blk" +; 0xab209 + +Route31_BlockData: ; 0xab209 + INCBIN "maps/Route31.blk" +; 0xab2bd + +Route27_BlockData: ; 0xab2bd + INCBIN "maps/Route27.blk" +; 0xab425 + +Route35_BlockData: ; 0xab425 + INCBIN "maps/Route35.blk" +; 0xab4d9 + +Route43_BlockData: ; 0xab4d9 + INCBIN "maps/Route43.blk" +; 0xab5e7 + +Route39_BlockData: ; 0xab5e7 + INCBIN "maps/Route39.blk" +; 0xab69b + +KrissHouse1F_BlockData: ; 0xab69b + INCBIN "maps/KrissHouse1F.blk" +; 0xab6af + +Route38EcruteakGate_BlockData: ; 0xab6af + INCBIN "maps/Route38EcruteakGate.blk" +; 0xab6c3 + +BetaAzaleaTown_BlockData: ; 0xab6c3 + INCBIN "maps/BetaAzaleaTown.blk" +; 0xab82b + +VermilionCity_BlockData: ; 0xab82b + INCBIN "maps/VermilionCity.blk" +; 0xab993 + +BetaOlivineCity_BlockData: ; 0xab993 + INCBIN "maps/BetaOlivineCity.blk" +; 0xabafb + +BetaNewBarkTown_BlockData: ; 0xabafb + INCBIN "maps/BetaNewBarkTown.blk" +; 0xabb55 + +ElmsLab_BlockData: ; 0xabb55 + INCBIN "maps/ElmsLab.blk" +; 0xabb73 + +CeruleanCity_BlockData: ; 0xabb73 + INCBIN "maps/CeruleanCity.blk" +; 0xabcdb + +Route1_BlockData: ; 0xabcdb + INCBIN "maps/Route1.blk" +; 0xabd8f + +Route5_BlockData: ; 0xabd8f + INCBIN "maps/Route5.blk" +; 0xabde9 + +Route9_BlockData: ; 0xabde9 + INCBIN "maps/Route9.blk" +; 0xabef7 + +Route22_BlockData: ; 0xabef7 + INCBIN "maps/Route22.blk" +; 0xabfab + diff --git a/maps/blockdata_2.asm b/maps/blockdata_2.asm new file mode 100644 index 000000000..6e0059d2a --- /dev/null +++ b/maps/blockdata_2.asm @@ -0,0 +1,552 @@ +Route14_BlockData: ; 0xac000 + INCBIN "maps/Route14.blk" +; 0xac0b4 + +BetaSproutTower8_BlockData: ; 0xac0b4 + INCBIN "maps/BetaSproutTower8.blk" +; 0xac10e + +OlivineMart_BlockData: ; 0xac10e + INCBIN "maps/OlivineMart.blk" +; 0xac126 + +Route10North_BlockData: ; 0xac126 + INCBIN "maps/Route10North.blk" +; 0xac180 + +BetaLakeOfRage_BlockData: ; 0xac180 + INCBIN "maps/BetaLakeOfRage.blk" +; 0xac2e8 + +OlivinePokeCenter1F_BlockData: ; 0xac2e8 + INCBIN "maps/OlivinePokeCenter1F.blk" +; 0xac2fc + +BetaPewterMuseumOfScience1F_BlockData: ; 0xac2fc + INCBIN "maps/BetaPewterMuseumOfScience1F.blk" +; 0xac324 + +BetaPewterMuseumOfScience2F_BlockData: ; 0xac324 + INCBIN "maps/BetaPewterMuseumOfScience2F.blk" +; 0xac340 + +EarlsPokemonAcademy_BlockData: ; 0xac340 + INCBIN "maps/EarlsPokemonAcademy.blk" +; 0xac360 + +BetaCinnabarIslandPokemonLabHallway_BlockData: ; 0xac360 + INCBIN "maps/BetaCinnabarIslandPokemonLabHallway.blk" +; 0xac384 + +BetaCinnabarIslandPokemonLabRoom1_BlockData: ; 0xac384 + INCBIN "maps/BetaCinnabarIslandPokemonLabRoom1.blk" +; 0xac394 + +BetaCinnabarIslandPokemonLabRoom2_BlockData: ; 0xac394 + INCBIN "maps/BetaCinnabarIslandPokemonLabRoom2.blk" +; 0xac3a4 + +BetaCinnabarIslandPokemonLabRoom3_BlockData: ; 0xac3a4 + INCBIN "maps/BetaCinnabarIslandPokemonLabRoom3.blk" +; 0xac3b4 + +GoldenrodDeptStore1F_BlockData: ; 0xac3b4 + INCBIN "maps/GoldenrodDeptStore1F.blk" +; 0xac3d4 + +GoldenrodDeptStore2F_BlockData: ; 0xac3d4 + INCBIN "maps/GoldenrodDeptStore2F.blk" +; 0xac3f4 + +GoldenrodDeptStore3F_BlockData: ; 0xac3f4 + INCBIN "maps/GoldenrodDeptStore3F.blk" +; 0xac414 + +GoldenrodDeptStore4F_BlockData: ; 0xac414 + INCBIN "maps/GoldenrodDeptStore4F.blk" +; 0xac434 + +GoldenrodDeptStore5F_BlockData: ; 0xac434 + INCBIN "maps/GoldenrodDeptStore5F.blk" +; 0xac454 + +GoldenrodDeptStore6F_BlockData: ; 0xac454 + INCBIN "maps/GoldenrodDeptStore6F.blk" +; 0xac474 + +GoldenrodDeptStoreElevator_BlockData: ; 0xac474 + INCBIN "maps/GoldenrodDeptStoreElevator.blk" +; 0xac478 + +CeladonMansion1F_BlockData: ; 0xac478 + INCBIN "maps/CeladonMansion1F.blk" +; 0xac48c + +CeladonMansion2F_BlockData: ; 0xac48c + INCBIN "maps/CeladonMansion2F.blk" +; 0xac4a0 + +CeladonMansion3F_BlockData: ; 0xac4a0 + INCBIN "maps/CeladonMansion3F.blk" +; 0xac4b4 + +CeladonMansionRoof_BlockData: ; 0xac4b4 + INCBIN "maps/CeladonMansionRoof.blk" +; 0xac4c8 + +BetaHouse_BlockData: ; 0xac4c8 + INCBIN "maps/BetaHouse.blk" +; 0xac4d8 + +CeladonGameCorner_BlockData: ; 0xac4d8 + INCBIN "maps/CeladonGameCorner.blk" +; 0xac51e + +CeladonGameCornerPrizeRoom_BlockData: ; 0xac51e + INCBIN "maps/CeladonGameCornerPrizeRoom.blk" +; 0xac527 + +Colosseum_BlockData: ; 0xac527 + INCBIN "maps/Colosseum.blk" +; 0xac53b + +TradeCenter_BlockData: ; 0xac53b + INCBIN "maps/TradeCenter.blk" +; 0xac54f + +EcruteakLugiaSpeechHouse_BlockData: ; 0xac54f + INCBIN "maps/EcruteakLugiaSpeechHouse.blk" +; 0xac55f + +BetaCave_BlockData: ; 0xac55f + INCBIN "maps/BetaCave.blk" +; 0xac5b9 + +UnionCaveB1F_BlockData: ; 0xac5b9 + INCBIN "maps/UnionCaveB1F.blk" +; 0xac66d + +UnionCaveB2F_BlockData: ; 0xac66d + INCBIN "maps/UnionCaveB2F.blk" +; 0xac721 + +UnionCave1F_BlockData: ; 0xac721 + INCBIN "maps/UnionCave1F.blk" +; 0xac7d5 + +NationalPark_BlockData: ; 0xac7d5 + INCBIN "maps/NationalPark.blk" +; 0xac9f1 + +Route6UndergroundEntrance_BlockData: ; 0xac9f1 + INCBIN "maps/Route6UndergroundEntrance.blk" +; 0xaca01 + +BetaPokecenterTradeStation_BlockData: ; 0xaca01 + INCBIN "maps/BetaPokecenterTradeStation.blk" +; 0xaca11 + +KurtsHouse_BlockData: ; 0xaca11 + INCBIN "maps/KurtsHouse.blk" +; 0xaca31 + +GoldenrodMagnetTrainStation_BlockData: ; 0xaca31 + INCBIN "maps/GoldenrodMagnetTrainStation.blk" +; 0xaca8b + +RuinsofAlphOutside_BlockData: ; 0xaca8b + INCBIN "maps/RuinsofAlphOutside.blk" +; 0xacb3f + +BetaAlphRuinUnsolvedPuzzleRoom_BlockData: ; 0xacb3f + INCBIN "maps/BetaAlphRuinUnsolvedPuzzleRoom.blk" +; 0xacb53 + +RuinsofAlphInnerChamber_BlockData: ; 0xacb53 + INCBIN "maps/RuinsofAlphInnerChamber.blk" +; 0xacbdf + +RuinsofAlphHoOhChamber_BlockData: ; 0xacbdf + INCBIN "maps/RuinsofAlphHoOhChamber.blk" +; 0xacbf3 + +SproutTower1F_BlockData: ; 0xacbf3 + INCBIN "maps/SproutTower1F.blk" +; 0xacc43 + +BetaSproutTowerCutOut1_BlockData: ; 0xacc43 + INCBIN "maps/BetaSproutTowerCutOut1.blk" +; 0xacc4d + +SproutTower2F_BlockData: ; 0xacc4d + INCBIN "maps/SproutTower2F.blk" +; 0xacc9d + +BetaSproutTowerCutOut2_BlockData: ; 0xacc9d + INCBIN "maps/BetaSproutTowerCutOut2.blk" +; 0xacca7 + +SproutTower3F_BlockData: ; 0xacca7 + INCBIN "maps/SproutTower3F.blk" +; 0xaccf7 + +BetaSproutTowerCutOut3_BlockData: ; 0xaccf7 + INCBIN "maps/BetaSproutTowerCutOut3.blk" +; 0xacd01 + +RadioTower1F_BlockData: ; 0xacd01 + INCBIN "maps/RadioTower1F.blk" +; 0xacd25 + +RadioTower2F_BlockData: ; 0xacd25 + INCBIN "maps/RadioTower2F.blk" +; 0xacd49 + +RadioTower3F_BlockData: ; 0xacd49 + INCBIN "maps/RadioTower3F.blk" +; 0xacd6d + +RadioTower4F_BlockData: ; 0xacd6d + INCBIN "maps/RadioTower4F.blk" +; 0xacd91 + +RadioTower5F_BlockData: ; 0xacd91 + INCBIN "maps/RadioTower5F.blk" +; 0xacdb5 + +NewBarkTown_BlockData: ; 0xacdb5 + INCBIN "maps/NewBarkTown.blk" +; 0xace0f + +CherrygroveCity_BlockData: ; 0xace0f + INCBIN "maps/CherrygroveCity.blk" +; 0xacec3 + +VioletCity_BlockData: ; 0xacec3 + INCBIN "maps/VioletCity.blk" +; 0xad02b + +AzaleaTown_BlockData: ; 0xad02b + INCBIN "maps/AzaleaTown.blk" +; 0xad0df + +CianwoodCity_BlockData: ; 0xad0df + INCBIN "maps/CianwoodCity.blk" +; 0xad274 + +GoldenrodCity_BlockData: ; 0xad274 + INCBIN "maps/GoldenrodCity.blk" +; 0xad3dc + +OlivineCity_BlockData: ; 0xad3dc + INCBIN "maps/OlivineCity.blk" +; 0xad544 + +EcruteakCity_BlockData: ; 0xad544 + INCBIN "maps/EcruteakCity.blk" +; 0xad6ac + +MahoganyTown_BlockData: ; 0xad6ac + INCBIN "maps/MahoganyTown.blk" +; 0xad706 + +LakeofRage_BlockData: ; 0xad706 + INCBIN "maps/LakeofRage.blk" +; 0xad86e + +BlackthornCity_BlockData: ; 0xad86e + INCBIN "maps/BlackthornCity.blk" +; 0xad9d6 + +SilverCaveOutside_BlockData: ; 0xad9d6 + INCBIN "maps/SilverCaveOutside.blk" +; 0xadb3e + +Route6_BlockData: ; 0xadb3e + INCBIN "maps/Route6.blk" +; 0xadb98 + +Route7_BlockData: ; 0xadb98 + INCBIN "maps/Route7.blk" +; 0xadbf2 + +Route16_BlockData: ; 0xadbf2 + INCBIN "maps/Route16.blk" +; 0xadc4c + +Route18_BlockData: ; 0xadc4c + INCBIN "maps/Route18.blk" +; 0xadca6 + +WarehouseEntrance_BlockData: ; 0xadca6 + INCBIN "maps/WarehouseEntrance.blk" +; 0xaddb4 + +UndergroundPathSwitchRoomEntrances_BlockData: ; 0xaddb4 + INCBIN "maps/UndergroundPathSwitchRoomEntrances.blk" +; 0xadec2 + +GoldenrodDeptStoreB1F_BlockData: ; 0xadec2 + INCBIN "maps/GoldenrodDeptStoreB1F.blk" +; 0xadf1c + +UndergroundWarehouse_BlockData: ; 0xadf1c + INCBIN "maps/UndergroundWarehouse.blk" +; 0xadf76 + +BetaElevator_BlockData: ; 0xadf76 + INCBIN "maps/BetaElevator.blk" +; 0xadf8f + +TinTower1F_BlockData: ; 0xadf8f + INCBIN "maps/TinTower1F.blk" +; 0xadfe9 + +TinTower2F_BlockData: ; 0xadfe9 + INCBIN "maps/TinTower2F.blk" +; 0xae043 + +TinTower3F_BlockData: ; 0xae043 + INCBIN "maps/TinTower3F.blk" +; 0xae09d + +TinTower4F_BlockData: ; 0xae09d + INCBIN "maps/TinTower4F.blk" +; 0xae0f7 + +TinTower5F_BlockData: ; 0xae0f7 + INCBIN "maps/TinTower5F.blk" +; 0xae151 + +TinTower6F_BlockData: ; 0xae151 + INCBIN "maps/TinTower6F.blk" +; 0xae1ab + +TinTower7F_BlockData: ; 0xae1ab + INCBIN "maps/TinTower7F.blk" +; 0xae205 + +TinTower8F_BlockData: ; 0xae205 + INCBIN "maps/TinTower8F.blk" +; 0xae25f + +TinTower9F_BlockData: ; 0xae25f + INCBIN "maps/TinTower9F.blk" +; 0xae2b9 + +TinTowerRoof_BlockData: ; 0xae2b9 + INCBIN "maps/TinTowerRoof.blk" +; 0xae313 + +BurnedTower1F_BlockData: ; 0xae313 + INCBIN "maps/BurnedTower1F.blk" +; 0xae36d + +BurnedTowerB1F_BlockData: ; 0xae36d + INCBIN "maps/BurnedTowerB1F.blk" +; 0xae3c7 + +BetaCaveTestMap_BlockData: ; 0xae3c7 + INCBIN "maps/BetaCaveTestMap.blk" +; 0xae4d5 + +MountMortar1FOutside_BlockData: ; 0xae4d5 + INCBIN "maps/MountMortar1FOutside.blk" +; 0xae63d + +MountMortar1FInside_BlockData: ; 0xae63d + INCBIN "maps/MountMortar1FInside.blk" +; 0xae859 + +MountMortar2FInside_BlockData: ; 0xae859 + INCBIN "maps/MountMortar2FInside.blk" +; 0xae9c1 + +MountMortarB1F_BlockData: ; 0xae9c1 + INCBIN "maps/MountMortarB1F.blk" +; 0xaeb29 + +IcePath1F_BlockData: ; 0xaeb29 + INCBIN "maps/IcePath1F.blk" +; 0xaec91 + +IcePathB1F_BlockData: ; 0xaec91 + INCBIN "maps/IcePathB1F.blk" +; 0xaed45 + +IcePathB2FMahoganySide_BlockData: ; 0xaed45 + INCBIN "maps/IcePathB2FMahoganySide.blk" +; 0xaed9f + +IcePathB2FBlackthornSide_BlockData: ; 0xaed9f + INCBIN "maps/IcePathB2FBlackthornSide.blk" +; 0xaedcc + +IcePathB3F_BlockData: ; 0xaedcc + INCBIN "maps/IcePathB3F.blk" +; 0xaee26 + +WhirlIslandNW_BlockData: ; 0xaee26 + INCBIN "maps/WhirlIslandNW.blk" +; 0xaee53 + +WhirlIslandNE_BlockData: ; 0xaee53 + INCBIN "maps/WhirlIslandNE.blk" +; 0xaeead + +WhirlIslandSW_BlockData: ; 0xaeead + INCBIN "maps/WhirlIslandSW.blk" +; 0xaef07 + +WhirlIslandCave_BlockData: ; 0xaef07 + INCBIN "maps/WhirlIslandCave.blk" +; 0xaef34 + +WhirlIslandSE_BlockData: ; 0xaef34 + INCBIN "maps/WhirlIslandSE.blk" +; 0xaef61 + +WhirlIslandB1F_BlockData: ; 0xaef61 + INCBIN "maps/WhirlIslandB1F.blk" +; 0xaf0c9 + +WhirlIslandB2F_BlockData: ; 0xaf0c9 + INCBIN "maps/WhirlIslandB2F.blk" +; 0xaf17d + +WhirlIslandLugiaChamber_BlockData: ; 0xaf17d + INCBIN "maps/WhirlIslandLugiaChamber.blk" +; 0xaf1d7 + +SilverCaveRoom1_BlockData: ; 0xaf1d7 + INCBIN "maps/SilverCaveRoom1.blk" +; 0xaf28b + +SilverCaveRoom2_BlockData: ; 0xaf28b + INCBIN "maps/SilverCaveRoom2.blk" +; 0xaf399 + +SilverCaveRoom3_BlockData: ; 0xaf399 + INCBIN "maps/SilverCaveRoom3.blk" +; 0xaf44d + +BetaRocketHideout1_BlockData: ; 0xaf44d + INCBIN "maps/BetaRocketHideout1.blk" +; 0xaf55b + +BetaRocketHideout2_BlockData: ; 0xaf55b + INCBIN "maps/BetaRocketHideout2.blk" +; 0xaf669 + +BetaEmptyHouse_BlockData: ; 0xaf669 + INCBIN "maps/BetaEmptyHouse.blk" +; 0xaf777 + +BetaRocketHideout3_BlockData: ; 0xaf777 + INCBIN "maps/BetaRocketHideout3.blk" +; 0xaf885 + +MahoganyMart1F_BlockData: ; 0xaf885 + INCBIN "maps/MahoganyMart1F.blk" +; 0xaf895 + +TeamRocketBaseB1F_BlockData: ; 0xaf895 + INCBIN "maps/TeamRocketBaseB1F.blk" +; 0xaf91c + +TeamRocketBaseB2F_BlockData: ; 0xaf91c + INCBIN "maps/TeamRocketBaseB2F.blk" +; 0xaf9a3 + +TeamRocketBaseB3F_BlockData: ; 0xaf9a3 + INCBIN "maps/TeamRocketBaseB3F.blk" +; 0xafa2a + +BetaRoute23EarlyVersion_BlockData: ; 0xafa2a + INCBIN "maps/BetaRoute23EarlyVersion.blk" +; 0xafa84 + +IndigoPlateauPokeCenter1F_BlockData: ; 0xafa84 + INCBIN "maps/IndigoPlateauPokeCenter1F.blk" +; 0xafac3 + +WillsRoom_BlockData: ; 0xafac3 + INCBIN "maps/WillsRoom.blk" +; 0xafaf0 + +KogasRoom_BlockData: ; 0xafaf0 + INCBIN "maps/KogasRoom.blk" +; 0xafb1d + +BrunosRoom_BlockData: ; 0xafb1d + INCBIN "maps/BrunosRoom.blk" +; 0xafb4a + +KarensRoom_BlockData: ; 0xafb4a + INCBIN "maps/KarensRoom.blk" +; 0xafb77 + +AzaleaGym_BlockData: ; 0xafb77 + INCBIN "maps/AzaleaGym.blk" +; 0xafb9f + +VioletGym_BlockData: ; 0xafb9f + INCBIN "maps/VioletGym.blk" +; 0xafbc7 + +GoldenrodGym_BlockData: ; 0xafbc7 + INCBIN "maps/GoldenrodGym.blk" +; 0xafc21 + +EcruteakGym_BlockData: ; 0xafc21 + INCBIN "maps/EcruteakGym.blk" +; 0xafc4e + +MahoganyGym_BlockData: ; 0xafc4e + INCBIN "maps/MahoganyGym.blk" +; 0xafc7b + +OlivineGym_BlockData: ; 0xafc7b + INCBIN "maps/OlivineGym.blk" +; 0xafca3 + +BetaUnknown_BlockData: ; 0xafca3 + INCBIN "maps/BetaUnknown.blk" +; 0xafcb7 + +CianwoodGym_BlockData: ; 0xafcb7 + INCBIN "maps/CianwoodGym.blk" +; 0xafce4 + +BlackthornGym1F_BlockData: ; 0xafce4 + INCBIN "maps/BlackthornGym1F.blk" +; 0xafd11 + +BlackthornGym2F_BlockData: ; 0xafd11 + INCBIN "maps/BlackthornGym2F.blk" +; 0xafd3e + +OlivineLighthouse1F_BlockData: ; 0xafd3e + INCBIN "maps/OlivineLighthouse1F.blk" +; 0xafd98 + +OlivineLighthouse2F_BlockData: ; 0xafd98 + INCBIN "maps/OlivineLighthouse2F.blk" +; 0xafdf2 + +OlivineLighthouse3F_BlockData: ; 0xafdf2 + INCBIN "maps/OlivineLighthouse3F.blk" +; 0xafe4c + +OlivineLighthouse4F_BlockData: ; 0xafe4c + INCBIN "maps/OlivineLighthouse4F.blk" +; 0xafea6 + +OlivineLighthouse5F_BlockData: ; 0xafea6 + INCBIN "maps/OlivineLighthouse5F.blk" +; 0xaff00 + +OlivineLighthouse6F_BlockData: ; 0xaff00 + INCBIN "maps/OlivineLighthouse6F.blk" +; 0xaff5a + diff --git a/maps/blockdata_3.asm b/maps/blockdata_3.asm new file mode 100644 index 000000000..261406e84 --- /dev/null +++ b/maps/blockdata_3.asm @@ -0,0 +1,348 @@ +BetaCave2_BlockData: ; 0xb0000 + INCBIN "maps/BetaCave2.blk" +; 0xb0023 + +SlowpokeWellB1F_BlockData: ; 0xb0023 + INCBIN "maps/SlowpokeWellB1F.blk" +; 0xb007d + +SlowpokeWellB2F_BlockData: ; 0xb007d + INCBIN "maps/SlowpokeWellB2F.blk" +; 0xb00d7 + +IlexForest_BlockData: ; 0xb00d7 + INCBIN "maps/IlexForest.blk" +; 0xb026c + +DarkCaveVioletEntrance_BlockData: ; 0xb026c + INCBIN "maps/DarkCaveVioletEntrance.blk" +; 0xb03d4 + +DarkCaveBlackthornEntrance_BlockData: ; 0xb03d4 + INCBIN "maps/DarkCaveBlackthornEntrance.blk" +; 0xb04e2 + +RuinsofAlphResearchCenter_BlockData: ; 0xb04e2 + INCBIN "maps/RuinsofAlphResearchCenter.blk" +; 0xb04f2 + +GoldenrodBikeShop_BlockData: ; 0xb04f2 + INCBIN "maps/GoldenrodBikeShop.blk" +; 0xb0502 + +DanceTheatre_BlockData: ; 0xb0502 + INCBIN "maps/DanceTheatre.blk" +; 0xb052c + +EcruteakHouse_BlockData: ; 0xb052c + INCBIN "maps/EcruteakHouse.blk" +; 0xb0586 + +GoldenrodGameCorner_BlockData: ; 0xb0586 + INCBIN "maps/GoldenrodGameCorner.blk" +; 0xb05cc + +Route35NationalParkgate_BlockData: ; 0xb05cc + INCBIN "maps/Route35NationalParkgate.blk" +; 0xb05dc + +Route36NationalParkgate_BlockData: ; 0xb05dc + INCBIN "maps/Route36NationalParkgate.blk" +; 0xb05f0 + +FastShip1F_BlockData: ; 0xb05f0 + INCBIN "maps/FastShip1F.blk" +; 0xb0680 + +FastShipB1F_BlockData: ; 0xb0680 + INCBIN "maps/FastShipB1F.blk" +; 0xb0700 + +BetaSsAquaInsideCutOut_BlockData: ; 0xb0700 + INCBIN "maps/BetaSsAquaInsideCutOut.blk" +; 0xb0710 + +FastShipCabins_NNW_NNE_NE_BlockData: ; 0xb0710 + INCBIN "maps/FastShipCabins_NNW_NNE_NE.blk" +; 0xb0750 + +FastShipCabins_SW_SSW_NW_BlockData: ; 0xb0750 + INCBIN "maps/FastShipCabins_SW_SSW_NW.blk" +; 0xb0790 + +FastShipCabins_SE_SSE_CaptainsCabin_BlockData: ; 0xb0790 + INCBIN "maps/FastShipCabins_SE_SSE_CaptainsCabin.blk" +; 0xb07e5 + +OlivinePort_BlockData: ; 0xb07e5 + INCBIN "maps/OlivinePort.blk" +; 0xb0899 + +VermilionPort_BlockData: ; 0xb0899 + INCBIN "maps/VermilionPort.blk" +; 0xb094d + +OlivineCafe_BlockData: ; 0xb094d + INCBIN "maps/OlivineCafe.blk" +; 0xb095d + +KrissHouse2F_BlockData: ; 0xb095d + INCBIN "maps/KrissHouse2F.blk" +; 0xb0969 + +SaffronTrainStation_BlockData: ; 0xb0969 + INCBIN "maps/SaffronTrainStation.blk" +; 0xb09c3 + +CeruleanGym_BlockData: ; 0xb09c3 + INCBIN "maps/CeruleanGym.blk" +; 0xb09eb + +VermilionGym_BlockData: ; 0xb09eb + INCBIN "maps/VermilionGym.blk" +; 0xb0a18 + +SaffronGym_BlockData: ; 0xb0a18 + INCBIN "maps/SaffronGym.blk" +; 0xb0a72 + +PowerPlant_BlockData: ; 0xb0a72 + INCBIN "maps/PowerPlant.blk" +; 0xb0acc + +PokemonFanClub_BlockData: ; 0xb0acc + INCBIN "maps/PokemonFanClub.blk" +; 0xb0ae0 + +FightingDojo_BlockData: ; 0xb0ae0 + INCBIN "maps/FightingDojo.blk" +; 0xb0afe + +SilphCo1F_BlockData: ; 0xb0afe + INCBIN "maps/SilphCo1F.blk" +; 0xb0b1e + +ViridianGym_BlockData: ; 0xb0b1e + INCBIN "maps/ViridianGym.blk" +; 0xb0b4b + +TrainerHouse1F_BlockData: ; 0xb0b4b + INCBIN "maps/TrainerHouse1F.blk" +; 0xb0b6e + +TrainerHouseB1F_BlockData: ; 0xb0b6e + INCBIN "maps/TrainerHouseB1F.blk" +; 0xb0b96 + +RedsHouse1F_BlockData: ; 0xb0b96 + INCBIN "maps/RedsHouse1F.blk" +; 0xb0ba6 + +RedsHouse2F_BlockData: ; 0xb0ba6 + INCBIN "maps/RedsHouse2F.blk" +; 0xb0bb6 + +OaksLab_BlockData: ; 0xb0bb6 + INCBIN "maps/OaksLab.blk" +; 0xb0bd4 + +MrFujisHouse_BlockData: ; 0xb0bd4 + INCBIN "maps/MrFujisHouse.blk" +; 0xb0be8 + +LavRadioTower1F_BlockData: ; 0xb0be8 + INCBIN "maps/LavRadioTower1F.blk" +; 0xb0c10 + +SilverCaveItemRooms_BlockData: ; 0xb0c10 + INCBIN "maps/SilverCaveItemRooms.blk" +; 0xb0c6a + +DayCare_BlockData: ; 0xb0c6a + INCBIN "maps/DayCare.blk" +; 0xb0c7e + +SoulHouse_BlockData: ; 0xb0c7e + INCBIN "maps/SoulHouse.blk" +; 0xb0c92 + +PewterGym_BlockData: ; 0xb0c92 + INCBIN "maps/PewterGym.blk" +; 0xb0cb5 + +CeladonGym_BlockData: ; 0xb0cb5 + INCBIN "maps/CeladonGym.blk" +; 0xb0ce2 + +BetaHouse2_BlockData: ; 0xb0ce2 + INCBIN "maps/BetaHouse2.blk" +; 0xb0cf6 + +CeladonCafe_BlockData: ; 0xb0cf6 + INCBIN "maps/CeladonCafe.blk" +; 0xb0d0e + +BetaCeladonMansion_BlockData: ; 0xb0d0e + INCBIN "maps/BetaCeladonMansion.blk" +; 0xb0d26 + +RockTunnel1F_BlockData: ; 0xb0d26 + INCBIN "maps/RockTunnel1F.blk" +; 0xb0e34 + +RockTunnelB1F_BlockData: ; 0xb0e34 + INCBIN "maps/RockTunnelB1F.blk" +; 0xb0f42 + +DiglettsCave_BlockData: ; 0xb0f42 + INCBIN "maps/DiglettsCave.blk" +; 0xb0ff6 + +MountMoon_BlockData: ; 0xb0ff6 + INCBIN "maps/MountMoon.blk" +; 0xb107d + +SeafoamGym_BlockData: ; 0xb107d + INCBIN "maps/SeafoamGym.blk" +; 0xb1091 + +MrPokemonsHouse_BlockData: ; 0xb1091 + INCBIN "maps/MrPokemonsHouse.blk" +; 0xb10a1 + +VictoryRoadGate_BlockData: ; 0xb10a1 + INCBIN "maps/VictoryRoadGate.blk" +; 0xb10fb + +OlivinePortPassage_BlockData: ; 0xb10fb + INCBIN "maps/OlivinePortPassage.blk" +; 0xb1155 + +FuchsiaGym_BlockData: ; 0xb1155 + INCBIN "maps/FuchsiaGym.blk" +; 0xb1182 + +SafariZoneBeta_BlockData: ; 0xb1182 + INCBIN "maps/SafariZoneBeta.blk" +; 0xb1236 + +Underground_BlockData: ; 0xb1236 + INCBIN "maps/Underground.blk" +; 0xb1260 + +Route39Barn_BlockData: ; 0xb1260 + INCBIN "maps/Route39Barn.blk" +; 0xb1270 + +VictoryRoad_BlockData: ; 0xb1270 + INCBIN "maps/VictoryRoad.blk" +; 0xb13d8 + +Route23_BlockData: ; 0xb13d8 + INCBIN "maps/Route23.blk" +; 0xb1432 + +LancesRoom_BlockData: ; 0xb1432 + INCBIN "maps/LancesRoom.blk" +; 0xb146e + +HallOfFame_BlockData: ; 0xb146e + INCBIN "maps/HallOfFame.blk" +; 0xb1491 + +CopycatsHouse1F_BlockData: ; 0xb1491 + INCBIN "maps/CopycatsHouse1F.blk" +; 0xb14a1 + +CopycatsHouse2F_BlockData: ; 0xb14a1 + INCBIN "maps/CopycatsHouse2F.blk" +; 0xb14b0 + +GoldenrodFlowerShop_BlockData: ; 0xb14b0 + INCBIN "maps/GoldenrodFlowerShop.blk" +; 0xb14c0 + +MountMoonSquare_BlockData: ; 0xb14c0 + INCBIN "maps/MountMoonSquare.blk" +; 0xb1547 + +WiseTriosRoom_BlockData: ; 0xb1547 + INCBIN "maps/WiseTriosRoom.blk" +; 0xb1557 + +DragonsDen1F_BlockData: ; 0xb1557 + INCBIN "maps/DragonsDen1F.blk" +; 0xb1584 + +DragonsDenB1F_BlockData: ; 0xb1584 + INCBIN "maps/DragonsDenB1F.blk" +; 0xb16ec + +TohjoFalls_BlockData: ; 0xb16ec + INCBIN "maps/TohjoFalls.blk" +; 0xb1773 + +RuinsofAlphHoOhItemRoom_BlockData: ; 0xb1773 + INCBIN "maps/RuinsofAlphHoOhItemRoom.blk" +; 0xb1787 + +RuinsofAlphHoOhWordRoom_BlockData: ; 0xb1787 + INCBIN "maps/RuinsofAlphHoOhWordRoom.blk" +; 0xb17ff + +RuinsofAlphKabutoWordRoom_BlockData: ; 0xb17ff + INCBIN "maps/RuinsofAlphKabutoWordRoom.blk" +; 0xb1845 + +RuinsofAlphOmanyteWordRoom_BlockData: ; 0xb1845 + INCBIN "maps/RuinsofAlphOmanyteWordRoom.blk" +; 0xb1895 + +RuinsofAlphAerodactylWordRoom_BlockData: ; 0xb1895 + INCBIN "maps/RuinsofAlphAerodactylWordRoom.blk" +; 0xb18db + +DragonShrine_BlockData: ; 0xb18db + INCBIN "maps/DragonShrine.blk" +; 0xb18f4 + +BattleTower1F_BlockData: ; 0xb18f4 + INCBIN "maps/BattleTower1F.blk" +; 0xb191c + +BattleTowerBattleRoom_BlockData: ; 0xb191c + INCBIN "maps/BattleTowerBattleRoom.blk" +; 0xb192c + +GoldenrodPokeComCenter2FMobile_BlockData: ; 0xb192c + INCBIN "maps/GoldenrodPokeComCenter2FMobile.blk" +; 0xb1a2c + +MobileTradeRoomMobile_BlockData: ; 0xb1a2c + INCBIN "maps/MobileTradeRoomMobile.blk" +; 0xb1a40 + +MobileBattleRoom_BlockData: ; 0xb1a40 + INCBIN "maps/MobileBattleRoom.blk" +; 0xb1a54 + +BattleTowerHallway_BlockData: ; 0xb1a54 + INCBIN "maps/BattleTowerHallway.blk" +; 0xb1a6a + +BattleTowerElevator_BlockData: ; 0xb1a6a + INCBIN "maps/BattleTowerElevator.blk" +; 0xb1a6e + +BattleTowerOutside_BlockData: ; 0xb1a6e + INCBIN "maps/BattleTowerOutside.blk" +; 0xb1afa + +BetaBlank_BlockData: ; 0xb1afa + INCBIN "maps/BetaBlank.blk" +; 0xb1b22 + +GoldenrodDeptStoreRoof_BlockData: ; 0xb1b22 + INCBIN "maps/GoldenrodDeptStoreRoof.blk" +; 0xb1b42 + diff --git a/predef/cgb.asm b/predef/cgb.asm new file mode 100644 index 000000000..aadc66a3d --- /dev/null +++ b/predef/cgb.asm @@ -0,0 +1,922 @@ +; Replaces the functionality of sgb.asm to work with CGB hardware. + +CheckCGB: ; 8d55 + ld a, [hCGB] + and a + ret +; 8d59 + +Function8d59: ; 8d59 + ld a, b + cp $ff + jr nz, .asm_8d61 + ld a, [SGBPredef] + +.asm_8d61 + cp $fc + jp z, Function96f3 + call Function9673 + ld l, a + ld h, 0 + add hl, hl + ld de, Table8d7a + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld de, Function8d79 + push de + jp [hl] +; 8d79 + +Function8d79: ; 8d79 + ret +; 8d7a + +Table8d7a: ; 8d7a + dw Function8db8 + dw Function8ddb + dw Function8eb9 + dw Function8edb + dw Function8f70 + dw Function906e + dw Function90f8 + dw Function9122 + dw Function91ad + dw Function91c8 + dw Function91d1 + dw Function91e4 + dw Function9228 + dw Function9251 + dw Function9373 + dw Function93a6 + dw Function93ba + dw Function9195 + dw Function9499 + dw Function94d0 + dw Function93d3 + dw Function9289 + dw Function903e + dw Function8fca + dw Function925e + dw Function94fa + dw Function9529 + dw Function9555 + dw Function9578 + dw Function9591 + dw Function9542 +; 8db8 + +Function8db8: ; 8db8 + ld hl, $5c67 + ld de, $d000 + ld c, $4 + call $5615 + ld hl, $5c67 + ld de, $d020 + ld c, $4 + call $5615 + ld hl, $5c67 + ld de, MartPointer + ld c, $2 + call $5615 + jr Function8e23 + +Function8ddb: ; 8ddb + ld de, $d000 + call Function9729 + push hl + call Function9643 + call Function973a + push hl + call Function9643 + ld a, [EnemyHPPal] + ld l, a + ld h, $0 + add hl, hl + add hl, hl + ld bc, $68be + add hl, bc + call Function9643 + ld a, [PlayerHPPal] + ld l, a + ld h, $0 + add hl, hl + add hl, hl + ld bc, $68be + add hl, bc + call Function9643 + ld hl, $68ca + call Function9643 + ld de, MartPointer + pop hl + call Function9643 + pop hl + call Function9643 + ld a, $1 + ld [SGBPredef], a + call Function96a4 + +Function8e23: ; 8e23 + call Function8e85 + ld hl, AttrMap + ld bc, $0168 + ld a, $2 + call ByteFill + ld hl, $ce29 + ld bc, $080a + ld a, $0 + call Function9663 + ld hl, $cde3 + ld bc, $070a + ld a, $1 + call Function9663 + ld hl, AttrMap + ld bc, $040a + ld a, $2 + call Function9663 + ld hl, $ce6f + ld bc, $050a + ld a, $3 + call Function9663 + ld hl, $cebf + ld bc, $0109 + ld a, $4 + call Function9663 + ld hl, $cec9 + ld bc, $0078 + ld a, $7 + call ByteFill + ld hl, $579c + ld de, $d050 + ld bc, $0030 + ld a, $5 + call FarCopyWRAM + call Function96b3 + ret +; 8e85 + + +Function8e85: ; 8e85 + ld a, $40 + ld hl, $4dc0 + rst FarCall + ld hl, $7311 + jr nc, .asm_8e93 + ld hl, $7309 + +.asm_8e93 + ld de, $d038 + ld bc, $0008 + ld a, $5 + call FarCopyWRAM + ret +; 8e9f + +Function8e9f: ; 8e9f + callba Function100dc0 + ld hl, $7311 + jr nc, .asm_8ead + ld hl, $7309 + +.asm_8ead + ld de, $d000 + ld bc, $0008 + ld a, $5 + call FarCopyWRAM + ret +; 8eb9 + +Function8eb9: ; 8eb9 + ld a, [PlayerGender] + bit 0, a + jr z, .asm_8ec5 + ld hl, $7759 + jr .asm_8ec8 + +.asm_8ec5 + ld hl, $7729 + +.asm_8ec8 + ld de, $d000 + ld bc, $0030 + ld a, $5 + call FarCopyWRAM + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 8edb + +Function8edb: ; 8edb + ld de, $d000 + ld a, [$cda1] + ld l, a + ld h, $0 + add hl, hl + add hl, hl + ld bc, $68be + add hl, bc + call Function9643 + ld a, [CurPartySpecies] + ld bc, TempMonDVs + call Function974b + call Function9643 + ld hl, $68ca + call Function9643 + ld hl, $4f52 + ld de, $d018 + ld bc, $0018 + ld a, $5 + call FarCopyWRAM + call Function9699 + ld hl, AttrMap + ld bc, $0814 + ld a, $1 + call Function9663 + ld hl, $cf23 + ld bc, $000a + ld a, $2 + call ByteFill + ld hl, $ce4a + ld bc, $0202 + ld a, $3 + call Function9663 + ld hl, $ce4c + ld bc, $0202 + ld a, $4 + call Function9663 + ld hl, $ce4e + ld bc, $0202 + ld a, $5 + call Function9663 + call Function96b3 + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 8f52 + +INCBIN "baserom.gbc", $8f52, $8f70 - $8f52 + +Function8f70: ; 8f70 + ld de, Unkn1Pals + ld a, $1d + call Function9625 + call Function9630 + ld a, [CurPartySpecies] + cp $ff + jr nz, .asm_8f8a + ld hl, $4fba + call Function9630 + jr .asm_8f90 + +.asm_8f8a + call Function9775 + call Function9643 + +.asm_8f90 + call Function9699 + ld hl, $cdee + ld bc, $0707 + ld a, $1 + call Function9663 + call Function971a + ld hl, $4fc2 + ld de, $d078 + ld bc, $0008 + ld a, $5 + call FarCopyWRAM + call Function96b3 + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 8fba + +INCBIN "baserom.gbc", $8fba, $8fca - $8fba + +Function8fca: ; 8fca + ld de, Unkn1Pals + ld a, $1d + call Function9625 + call Function9630 + ld a, [CurPartySpecies] + cp $ff + jr nz, .asm_8fe4 + ld hl, $5036 + call Function9630 + jr .asm_8fed + +.asm_8fe4 + ld bc, TempMonDVs + call Function974b + call Function9643 + +.asm_8fed + call Function9699 + ld hl, $ce2a + ld bc, $0707 + ld a, $1 + call Function9663 + call Function971a + call Function96b3 + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 9009 + +INCBIN "baserom.gbc", $9009, $903e - $9009 + +Function903e: ; 903e + ld de, Unkn1Pals + ld a, $1d + call Function9625 + call Function9630 + ld a, [CurPartySpecies] + call Function9775 + call Function9643 + call Function9699 + ld hl, $ce44 + ld bc, $0707 + ld a, $1 + call Function9663 + call Function971a + call Function96b3 + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 906e + +Function906e: ; 906e + ld hl, $77a9 + ld de, Unkn1Pals + ld bc, $0080 + ld a, $5 + call FarCopyWRAM + call Function9699 + ld hl, $ce01 + ld bc, $0a03 + ld a, $2 + call Function9663 + ld hl, $ce12 + ld bc, $0a03 + ld a, $2 + call Function9663 + ld hl, $ce29 + ld bc, $0603 + ld a, $3 + call Function9663 + ld hl, $ce3a + ld bc, $0603 + ld a, $3 + call Function9663 + ld hl, $ce51 + ld bc, $0203 + ld a, $4 + call Function9663 + ld hl, $ce62 + ld bc, $0203 + ld a, $4 + call Function9663 + ld hl, $ce05 + ld bc, $020c + ld a, $1 + call Function9663 + ld hl, $ce04 + ld bc, $0a01 + ld a, $1 + call Function9663 + ld hl, $ce11 + ld bc, $0a01 + ld a, $1 + call Function9663 + ld hl, $cec9 + ld bc, $0078 + ld a, $7 + call ByteFill + call Function96b3 + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 90f8 + +Function90f8: ; 90f8 + ld hl, $5ca7 + call Function9610 + call Function9699 + ld de, Unkn2Pals + ld a, $3c + call Function9625 + call Function9630 + ld hl, $ce51 + ld bc, $0c14 + ld a, $1 + call Function9663 + call Function96b3 + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 9122 + +Function9122: ; 9122 + ld b, $0 + ld hl, $512d + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 912d + +INCBIN "baserom.gbc", $912d, $9195 - $912d + +Function9195: ; 9195 + ld hl, $7789 + ld de, Unkn1Pals + ld bc, $0028 + ld a, $5 + call FarCopyWRAM + call Function96a4 + call Function9699 + call Function96b3 + ret +; 91ad + +Function91ad: ; 91ad + ld hl, $7641 + ld de, Unkn1Pals + ld bc, $0080 + ld a, $5 + call FarCopyWRAM + ld hl, $5cb7 + call Function9610 + call Function9699 + call Function96b3 + ret +; 91c8 + +Function91c8: ; 91c8 + call Functionb1de + ld a, $9 + ld [SGBPredef], a + ret +; 91d1 + +Function91d1: ; 91d1 + ld hl, $5c57 + call Function9610 + call Function8e9f + call Function8e85 + call Function971a + call Function96b3 + ret +; 91e4 + +Function91e4: ; 91e4 + ld de, Unkn1Pals + ld a, c + and a + jr z, .asm_91f5 + ld a, $1a + call Function9625 + call Function9630 + jr .asm_921a + +.asm_91f5 + ld hl, PartyMon1DVs + ld bc, $0030 + ld a, [CurPartyMon] + call AddNTimes + ld c, l + ld b, h + ld a, [PlayerHPPal] + call Function974b + call Function9643 + ld hl, $579c + ld de, $d050 + ld bc, $0030 + ld a, $5 + call FarCopyWRAM + +.asm_921a + call Function9699 + call Function96b3 + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 9228 + +Function9228: ; 9228 + ld hl, $76f1 + ld de, Unkn1Pals + ld bc, $0028 + ld a, $5 + call FarCopyWRAM + ld hl, $7719 + ld de, Unkn2Pals + ld bc, $0010 + ld a, $5 + call FarCopyWRAM + ld a, $8 + ld [SGBPredef], a + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 9251 + +Function9251: ; 9251 + ld hl, $5cb7 + call Function9610 + call Function9699 + call Function96b3 + ret +; 925e + +Function925e: ; 925e + ld hl, $5bc7 + call Function9610 + ld de, Unkn2Pals + ld a, $4c + call Function9625 + call Function9630 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Unkn2Pals + ld a, $1f + ld [hli], a + ld a, $0 + ld [hl], a + pop af + ld [rSVBK], a + call Function9699 + call Function96b3 + ret +; 9289 + +Function9289: ; 9289 + ld de, Unkn1Pals + xor a + call Function976b + call Function9643 + ld a, $1 + call Function976b + call Function9643 + ld a, $3 + call Function976b + call Function9643 + ld a, $2 + call Function976b + call Function9643 + ld a, $4 + call Function976b + call Function9643 + ld a, $7 + call Function976b + call Function9643 + ld a, $6 + call Function976b + call Function9643 + ld a, $5 + call Function976b + call Function9643 + ld a, $24 + call Function9625 + call Function9630 + ld hl, AttrMap + ld bc, $0168 + ld a, [PlayerGender] + and a + ld a, $1 + jr z, .asm_92e3 + ld a, $0 + +.asm_92e3 + call ByteFill + ld hl, $cdfb + ld bc, $0705 + ld a, [PlayerGender] + and a + ld a, $0 + jr z, .asm_92f6 + ld a, $1 + +.asm_92f6 + call Function9663 + ld hl, $cdff + ld [hl], $1 + ld hl, $ceb7 + ld bc, $0204 + ld a, $1 + call Function9663 + ld hl, $cebb + ld bc, $0204 + ld a, $2 + call Function9663 + ld hl, $cebf + ld bc, $0204 + ld a, $3 + call Function9663 + ld hl, $cec3 + ld bc, $0204 + ld a, $4 + call Function9663 + ld hl, $cef3 + ld bc, $0204 + ld a, $5 + call Function9663 + ld hl, $cef7 + ld bc, $0204 + ld a, $6 + call Function9663 + ld hl, $cefb + ld bc, $0204 + ld a, $7 + call Function9663 + ld a, [PlayerGender] + and a + push af + jr z, .asm_935d + ld hl, $ceff + ld bc, $0204 + ld a, $1 + call Function9663 + +.asm_935d + pop af + ld c, $0 + jr nz, .asm_9363 + inc c + +.asm_9363 + ld a, c + ld hl, $cdff + ld [hl], a + call Function96b3 + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 9373 + +Function9373: ; 9373 + ld de, Unkn1Pals + ld a, $10 + call Function9625 + call Function9630 + ld a, [PlayerHPPal] + ld l, a + ld h, $0 + add hl, hl + add hl, hl + ld bc, $68be + add hl, bc + call Function9643 + call Function9699 + ld hl, $cdf8 + ld bc, $0209 + ld a, $1 + call Function9663 + call Function96b3 + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 93a6 + +Function93a6: ; 93a6 + ld hl, $5c47 + call Function9610 + call Function9699 + call Function96b3 + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 93ba + +Function93ba: ; 93ba + ld de, Unkn1Pals + ld a, $1d + call Function9625 + call Function9630 + call Function9699 + call Function96b3 + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 93d3 + +Function93d3: ; 93d3 + ld a, [BattleType] + cp $3 + jr z, .asm_93e6 + ld a, [PlayerGender] + bit 0, a + jr z, .asm_93e6 + ld hl, $5469 + jr .asm_93e9 + +.asm_93e6 + ld hl, $5439 + +.asm_93e9 + ld de, Unkn1Pals + ld bc, $0040 + ld a, $5 + call FarCopyWRAM + call Function9699 + ld hl, AttrMap + ld bc, $010a + ld a, $1 + call Function9663 + ld hl, $cde3 + ld bc, $010a + ld a, $2 + call Function9663 + ld hl, $ce08 + ld bc, $0901 + ld a, $3 + call Function9663 + ld hl, $ce65 + ld bc, $0305 + ld a, $4 + call Function9663 + ld hl, $ce15 + ld bc, $0305 + ld a, $5 + call Function9663 + call Function96b3 + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 9439 + +INCBIN "baserom.gbc", $9439, $9499 - $9439 + +Function9499: ; 9499 + call Function91c8 + ld de, $0014 + ld hl, AttrMap + ld a, [$cf82] +.asm_94a5 + and a + jr z, .asm_94ac + dec a + add hl, de + jr .asm_94a5 + +.asm_94ac + ld a, [$cf83] + ld e, a + ld d, $0 + add hl, de + ld a, [$cf82] + ld b, a + ld a, [$cf84] + inc a + sub b + ld b, a + ld a, [$cf83] + ld c, a + ld a, [$cf85] + sub c + inc a + ld c, a + ld a, $0 + call Function9663 + call Function96b3 + ret +; 94d0 + +Function94d0: ; 94d0 + ld hl, $5ba7 + call Function9610 + call Function9699 + ld hl, $ce29 + ld bc, $0a14 + ld a, $2 + call Function9663 + ld hl, $ce51 + ld bc, $0614 + ld a, $1 + call Function9663 + call Function96b3 + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 94fa + +Function94fa: ; 94fa + ld de, Unkn1Pals + ld a, $4e + call Function9625 + call Function9630 + ld hl, $5521 + ld de, Unkn2Pals + call Function9630 + ld hl, $5521 + ld de, $d048 + call Function9630 + call Function9699 + call Function96b3 + call Function96a4 + ret +; 9521 + +INCBIN "baserom.gbc", $9521, $9529 - $9521 + +Function9529: ; 9529 + ld de, Unkn1Pals + ld a, [CurPartySpecies] + ld bc, TempMonDVs + call Function974b + call Function9643 + call Function9699 + call Function96b3 + call Function96a4 + ret +; 9542 + +Function9542: ; 9542 + ld de, Unkn1Pals + ld a, [CurPartySpecies] + call Function9775 + call Function9643 + call Function9699 + call Function96b3 + ret +; 9555 + +Function9555: ; 9555 + ld hl, $5cc7 + call Function9610 + ld hl, $7681 + ld de, Unkn2Pals + ld bc, $0008 + ld a, $5 + call FarCopyWRAM + ld de, $d078 + ld a, $1c + call Function9625 + call Function9630 + call Function9699 + ret +; 9578 + +Function9578: ; 9578 + ld de, Unkn1Pals + ld a, [CurPartySpecies] + ld bc, TempMonDVs + call Function9764 + call Function9643 + call Function9699 + call Function96b3 + call Function96a4 + ret +; 9591 + +Function9591: ; 9591 + ld hl, $55e0 + ld de, Unkn1Pals + ld bc, $0010 + ld a, $5 + call FarCopyWRAM + call Function96a4 + call Function9699 + ld hl, $ce68 + ld bc, $080e + ld a, $1 + call Function9663 + ld hl, $ce3e + ld bc, $0112 + ld a, $1 + call Function9663 + ld hl, $cf1a + ld bc, $0112 + ld a, $1 + call Function9663 + ld hl, AttrMap + ld bc, $1102 + ld a, $1 + call Function9663 + ld hl, $ce4f + ld bc, $0c01 + ld a, $1 + call Function9663 + call Function96b3 + ret +; 95e0 + diff --git a/predef/sgb.asm b/predef/sgb.asm new file mode 100644 index 000000000..323a0fbb7 --- /dev/null +++ b/predef/sgb.asm @@ -0,0 +1,591 @@ +Function864c: ; 864c +; LoadSGBLayout + call CheckCGB + jp nz, Function8d59 + + ld a, b + cp $ff + jr nz, .asm_865a + ld a, [SGBPredef] + +.asm_865a + cp $fc + jp z, Function8ade + ld l, a + ld h, 0 + add hl, hl + ld de, Table866f + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld de, Function8a60 + push de + jp [hl] +; 866f + +Table866f: ; 866f + dw Function86ad + dw Function86b4 + dw Function875c + dw Function8763 + dw Function87b2 + dw Function8852 + dw Function8859 + dw Function8867 + dw Function8860 + dw Function88b1 + dw Function87ab + dw Function88cd + dw Function8884 + dw Function891a + dw Function873c + dw Function8897 + dw Function882a + dw Function889e + dw Function8928 + dw Function8890 + dw Function884b + dw Function891a + dw Function8823 + dw Function87e9 + dw Function8921 + dw Function89a6 + dw Function89ad + dw Function89d9 + dw Function89e0 + dw Function8860 + dw Function8969 +; 86ad + +Function86ad: ; 86ad + ld hl, $5c66 + ld de, $5aa6 + ret +; 86b4 + +Function86b4: ; 86b4 + ld hl, $5aa6 + call Function9809 + ld hl, $5ce6 + ld de, $cda9 + ld bc, $0010 + call CopyBytes + ld a, [PlayerHPPal] + ld l, a + ld h, $0 + add hl, hl + add hl, hl + ld de, $68be + add hl, de + ld a, [hli] + ld [$cdac], a + ld a, [hli] + ld [$cdad], a + ld a, [hli] + ld [$cdae], a + ld a, [hl] + ld [$cdaf], a + ld a, [EnemyHPPal] + ld l, a + ld h, $0 + add hl, hl + add hl, hl + ld de, $68be + add hl, de + ld a, [hli] + ld [$cdb2], a + ld a, [hli] + ld [$cdb3], a + ld a, [hli] + ld [$cdb4], a + ld a, [hl] + ld [$cdb5], a + ld hl, $5cf6 + ld de, $cdb9 + ld bc, $0010 + call CopyBytes + call Function9729 + ld a, [hli] + ld [$cdbc], a + ld a, [hli] + ld [$cdbd], a + ld a, [hli] + ld [$cdbe], a + ld a, [hl] + ld [$cdbf], a + call Function973a + ld a, [hli] + ld [$cdc2], a + ld a, [hli] + ld [$cdc3], a + ld a, [hli] + ld [$cdc4], a + ld a, [hl] + ld [$cdc5], a + ld hl, $cda9 + ld de, $cdb9 + ld a, $1 + ld [SGBPredef], a + ret +; 873c + +Function873c: ; 873c + ld hl, $5bd6 + ld de, $cda9 + ld bc, $0010 + call CopyBytes + ld hl, $cdaa + ld [hl], $10 + inc hl + inc hl + ld a, [PlayerHPPal] + add $2f + ld [hl], a + ld hl, $cda9 + ld de, $5ad6 + ret +; 875c + +Function875c: ; 875c + ld hl, $5c76 + ld de, $5a86 + ret +; 8763 + +Function8763: ; 8763 + ld hl, $5ce6 + ld de, $cda9 + ld bc, $0010 + call CopyBytes + ld a, [$cda1] + ld l, a + ld h, $0 + add hl, hl + add hl, hl + ld de, $68be + add hl, de + ld a, [hli] + ld [$cdac], a + ld a, [hli] + ld [$cdad], a + ld a, [hli] + ld [$cdae], a + ld a, [hl] + ld [$cdaf], a + ld a, [CurPartySpecies] + ld bc, TempMonDVs + call Function974b + ld a, [hli] + ld [$cdb2], a + ld a, [hli] + ld [$cdb3], a + ld a, [hli] + ld [$cdb4], a + ld a, [hl] + ld [$cdb5], a + ld hl, $cda9 + ld de, $5ac6 + ret +; 87ab + +Function87ab: ; 87ab + ld hl, $5c56 + ld de, $cdaa + ret +; 87b2 + +Function87b2: ; 87b2 + ld hl, $5ce6 + ld de, $cda9 + ld bc, $0010 + call CopyBytes + ld hl, $cdac + ld [hl], $9f + inc hl + ld [hl], $2a + inc hl + ld [hl], $5a + inc hl + ld [hl], $19 + ld a, [CurPartySpecies] + call Function9775 + ld a, [hli] + ld [$cdb2], a + ld a, [hli] + ld [$cdb3], a + ld a, [hli] + ld [$cdb4], a + ld a, [hl] + ld [$cdb5], a + ld hl, $cda9 + ld de, $5ae6 + ret +; 87e9 + +Function87e9: ; 87e9 + ld hl, $5ce6 + ld de, $cda9 + ld bc, $0010 + call CopyBytes + ld hl, $cdac + ld [hl], $9f + inc hl + ld [hl], $2a + inc hl + ld [hl], $5a + inc hl + ld [hl], $19 + ld a, [CurPartySpecies] + ld bc, TempMonDVs + call Function974b + ld a, [hli] + ld [$cdb2], a + ld a, [hli] + ld [$cdb3], a + ld a, [hli] + ld [$cdb4], a + ld a, [hl] + ld [$cdb5], a + ld hl, $cda9 + ld de, $5ae6 + ret +; 8823 + +Function8823: ; 8823 + call Function87b2 + ld de, $5af6 + ret +; 882a + +Function882a: ; 882a + ld hl, $5ce6 + ld de, $cda9 + ld bc, $0010 + call CopyBytes + ld hl, $cdac + ld [hl], $9f + inc hl + ld [hl], $2a + inc hl + ld [hl], $5a + inc hl + ld [hl], $19 + ld hl, $cda9 + ld de, $5a86 + ret +; 884b + +Function884b: ; 884b + ld hl, $5c36 + ld de, $5a86 + ret +; 8852 + +Function8852: ; 8852 + ld hl, $5c96 + ld de, $5b06 + ret +; 8859 + +Function8859: ; 8859 + ld hl, $5ca6 + ld de, $5b76 + ret +; 8860 + +Function8860: ; 8860 + ld hl, $5cb6 + ld de, $5a86 + ret +; 8867 + +Function8867: ; 8867 + ld b, $0 + ld hl, $4878 + add hl, bc + add hl, bc + add hl, bc + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + ret +; 8878 + +INCBIN "baserom.gbc", $8878, $8884 - $8878 + +Function8884: ; 8884 + ld hl, $5b96 + ld de, $5b56 + ld a, $8 + ld [SGBPredef], a + ret +; 8890 + +Function8890: ; 8890 + ld hl, $5ba6 + ld de, $5b86 + ret +; 8897 + +Function8897: ; 8897 + ld hl, $5c46 + ld de, $5a86 + ret +; 889e + +Function889e: ; 889e + ld hl, $5a86 + ld de, PlayerLightScreenCount + ld bc, $0010 + call CopyBytes + ld hl, $5bb6 + ld de, $5a86 + ret +; 88b1 + +Function88b1: ; 88b1 + ld hl, $5bd6 + ld de, $cda9 + ld bc, $0010 + call CopyBytes + call Function8a0c + ld hl, $cdaa + ld [hld], a + ld de, $5a86 + ld a, $9 + ld [SGBPredef], a + ret +; 88cd + +Function88cd: ; 88cd + push bc + ld hl, $5ce6 + ld de, $cda9 + ld bc, $0010 + call CopyBytes + pop bc + ld a, c + and a + jr z, .asm_88ef + ld hl, $cdac + ld [hl], $e7 + inc hl + ld [hl], $1c + inc hl + ld [hl], $62 + inc hl + ld [hl], $c + jr .asm_8913 + +.asm_88ef + ld hl, PartyMon1DVs + ld bc, $0030 + ld a, [CurPartyMon] + call AddNTimes + ld c, l + ld b, h + ld a, [PlayerHPPal] + call Function974b + ld a, [hli] + ld [$cdac], a + ld a, [hli] + ld [$cdad], a + ld a, [hli] + ld [$cdae], a + ld a, [hl] + ld [$cdaf], a + +.asm_8913 + ld hl, $cda9 + ld de, $5a86 + ret +; 891a + +Function891a: ; 891a + ld hl, $5cb6 + ld de, $5a86 + ret +; 8921 + +Function8921: ; 8921 + ld hl, $5bc6 + ld de, $5a86 + ret +; 8928 + +Function8928: ; 8928 + ld hl, $5bd6 + ld de, $cda9 + ld bc, $0010 + call CopyBytes + ld hl, $5a86 + ld de, $cdb9 + ld bc, $0010 + call CopyBytes + call Function8a0c + ld hl, $cdaa + ld [hl], a + ld hl, $cdac + ld [hl], $2e + ld hl, $cdbc + ld a, $5 + ld [hli], a + ld a, [$cf83] + ld [hli], a + ld a, [$cf82] + ld [hli], a + ld a, [$cf85] + ld [hli], a + ld a, [$cf84] + ld [hl], a + ld hl, $cda9 + ld de, $cdb9 + ret +; 8969 + +Function8969: ; 8969 + ld hl, $5ce6 + ld de, $cda9 + ld bc, $0010 + call CopyBytes + ld a, [CurPartySpecies] + ld l, a + ld h, $0 + add hl, hl + add hl, hl + add hl, hl + ld de, $68ce + add hl, de + ld a, [$cf65] + and $3 + sla a + sla a + ld c, a + ld b, $0 + add hl, bc + ld a, [hli] + ld [$cdac], a + ld a, [hli] + ld [$cdad], a + ld a, [hli] + ld [$cdae], a + ld a, [hl] + ld [$cdaf], a + ld hl, $cda9 + ld de, $5a86 + ret +; 89a6 + +Function89a6: ; 89a6 + ld hl, $5cd6 + ld de, $5a86 + ret +; 89ad + +Function89ad: ; 89ad + ld hl, $5ce6 + ld de, $cda9 + ld bc, $0010 + call CopyBytes + ld a, [CurPartySpecies] + ld bc, TempMonDVs + call Function974b + ld a, [hli] + ld [$cdac], a + ld a, [hli] + ld [$cdad], a + ld a, [hli] + ld [$cdae], a + ld a, [hl] + ld [$cdaf], a + ld hl, $cda9 + ld de, $5a86 + ret +; 89d9 + +Function89d9: ; 89d9 + ld hl, $5cc6 + ld de, $5a86 + ret +; 89e0 + +Function89e0: ; 89e0 + ld hl, $5ce6 + ld de, $cda9 + ld bc, $0010 + call CopyBytes + ld a, [CurPartySpecies] + ld bc, TempMonDVs + call Function9764 + ld a, [hli] + ld [$cdac], a + ld a, [hli] + ld [$cdad], a + ld a, [hli] + ld [$cdae], a + ld a, [hl] + ld [$cdaf], a + ld hl, $cda9 + ld de, $5a86 + ret +; 8a0c + +Function8a0c: ; 8a0c + ld a, [TimeOfDayPal] + cp $2 + jr c, .asm_8a16 + ld a, $19 + ret + +.asm_8a16 + ld a, [$d19a] + cp $2 + jr z, .asm_8a39 + cp $4 + jr z, .asm_8a3c + cp $7 + jr z, .asm_8a3c + cp $5 + jr z, .asm_8a3f + cp $6 + jr z, .asm_8a42 + ld a, [MapGroup] + ld e, a + ld d, $0 + ld hl, $4a45 + add hl, de + ld a, [hl] + ret + +.asm_8a39 + ld a, $0 + ret + +.asm_8a3c + ld a, $18 + ret + +.asm_8a3f + ld a, $6 + ret + +.asm_8a42 + ld a, $3 + ret +; 8a45 + +INCBIN "baserom.gbc", $8a45, $8a60 - $8a45 + +Function8a60: ; 8a60 + push de + call Function9809 + pop hl + jp Function9809 +; 8a68 + diff --git a/rst.asm b/rst.asm new file mode 100644 index 000000000..d5bac0915 --- /dev/null +++ b/rst.asm @@ -0,0 +1,38 @@ +; rst vectors + +SECTION "rst0",ROM0[0] + di + jp Start + +SECTION "rst8",ROM0[FarCall] + jp FarCall_hl + +SECTION "rst10",ROM0[Bankswitch] + ld [hROMBank], a + ld [MBC3RomBank], a + ret + +SECTION "rst18",ROM0[$18] + rst $38 + +SECTION "rst20",ROM0[$20] + rst $38 + +SECTION "rst28",ROM0[JumpTable] + push de + ld e, a + ld d, 0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + pop de + jp [hl] + +; SECTION "rst30",ROM0[$30] +; rst30 is midst rst28 + +SECTION "rst38",ROM0[$38] + rst $38 + diff --git a/stats/odd_eggs.asm b/stats/odd_eggs.asm index 6922a2de7..68062ec3b 100644 --- a/stats/odd_eggs.asm +++ b/stats/odd_eggs.asm @@ -45,7 +45,7 @@ GiveOddEgg: ; 1fb4b6 ld a, $ff ld [$d107], a ld hl, NumItems - call Function2f53 + call TossItem ld a, EGG ld [$cd2a], a ld a, $29 diff --git a/text/types.asm b/text/types.asm new file mode 100644 index 000000000..0addaaf6e --- /dev/null +++ b/text/types.asm @@ -0,0 +1,162 @@ +PrintMonTypes: ; 5090d +; Print both types of CurSpecies on the stats screen at hl. + + push hl + call GetBaseData + pop hl + + push hl + ld a, [BaseType1] + call .PrintType + + ld a, [BaseType1] + ld b, a + ld a, [BaseType2] + cp b + pop hl + jr z, .HideSecondType + +; Next row + ld bc, 20 + add hl, bc + +.PrintType + ld b, a + jr PrintType + +.HideSecondType +; This doesn't actually do anything. + ld a, " " + ld bc, 20 - 3 + add hl, bc + ld [hl], a + inc bc + add hl, bc + ld bc, 5 + jp ByteFill +; 5093a + +PrintMoveType: ; 5093a +; Print the type of move b at hl. + + push hl + ld a, b + dec a + ld bc, Move2 - Move1 + ld hl, Moves + call AddNTimes + ld de, StringBuffer1 + ld a, BANK(Moves) + call FarCopyBytes + ld a, [StringBuffer1 + PlayerMoveType - PlayerMoveStruct] + pop hl + + ld b, a +; 50953 + +PrintType: ; 50953 +; Print type b at hl. + ld a, b + + push hl + add a + ld hl, TypeNames + ld e, a + ld d, 0 + add hl, de + ld a, [hli] + ld e, a + ld d, [hl] + pop hl + + jp PlaceString +; 50964 + + +GetTypeName: ; 50964 +; Copy the name of type $d265 to StringBuffer1. + ld a, [$d265] + ld hl, TypeNames + ld e, a + ld d, 0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld de, StringBuffer1 + ld bc, $000d + jp CopyBytes +; 5097b + + +TypeNames: ; 5097b + dw Normal + dw Fighting + dw Flying + dw Poison + dw Ground + dw Rock + dw Bird + dw Bug + dw Ghost + dw Steel + dw Normal + dw Normal + dw Normal + dw Normal + dw Normal + dw Normal + dw Normal + dw Normal + dw Normal + dw UnknownType + dw Fire + dw Water + dw Grass + dw Electric + dw Psychic + dw Ice + 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 + diff --git a/tilesets/data_1.asm b/tilesets/data_1.asm new file mode 100644 index 000000000..1124b3f2e --- /dev/null +++ b/tilesets/data_1.asm @@ -0,0 +1,51 @@ +Tileset03GFX: ; 0x18000 +INCBIN "gfx/tilesets/03.lz" +; 0x18606 + +Tileset03Meta: ; 0x18606 +INCBIN "tilesets/03_metatiles.bin" +; 0x18e06 + +Tileset03Coll: ; 0x18e06 +INCBIN "tilesets/03_collision.bin" +; 0x19006 + +Tileset00GFX: ; 0x19006 +Tileset01GFX: ; 0x19006 +INCBIN "gfx/tilesets/01.lz" +; 0x19c0e + +Tileset00Meta: ; 0x19c0e +Tileset01Meta: ; 0x19c0e +INCBIN "tilesets/01_metatiles.bin" +; 0x1a40e + +Tileset00Coll: ; 0x1a40e +Tileset01Coll: ; 0x1a40e +INCBIN "tilesets/01_collision.bin" +; 0x1a60e + +Tileset29GFX: ; 0x1a60e +INCBIN "gfx/tilesets/29.lz" +; 0x1af3e + +Tileset29Meta: ; 0x1af3e +INCBIN "tilesets/29_metatiles.bin" +; 0x1b33e + +Tileset29Coll: ; 0x1b33e +INCBIN "tilesets/29_collision.bin" +; 0x1b43e + +Tileset20GFX: ; 0x1b43e +INCBIN "gfx/tilesets/20.lz" +; 0x1b8fe + +Tileset20Meta: ; 0x1b8fe +INCBIN "tilesets/20_metatiles.bin" +; 0x1bcfe + +Tileset20Coll: ; 0x1bcfe +INCBIN "tilesets/20_collision.bin" +; 0x1bdfe + diff --git a/tilesets/data_2.asm b/tilesets/data_2.asm new file mode 100644 index 000000000..a04f0c56b --- /dev/null +++ b/tilesets/data_2.asm @@ -0,0 +1,62 @@ +Tileset07GFX: ; 0x1c30c +INCBIN "gfx/tilesets/07.lz" +; 0x1c73c + +Tileset07Meta: ; 0x1c73c +INCBIN "tilesets/07_metatiles.bin" +; 0x1cb3c + +Tileset07Coll: ; 0x1cb3c +INCBIN "tilesets/07_collision.bin" +; 0x1cc3c + +Tileset09GFX: ; 0x1cc3c +INCBIN "gfx/tilesets/09.lz" +; 0x1d04c + +Tileset09Meta: ; 0x1d04c +INCBIN "tilesets/09_metatiles.bin" +; 0x1d44c + +Tileset09Coll: ; 0x1d44c +INCBIN "tilesets/09_collision.bin" +; 0x1d54c + +Tileset06GFX: ; 0x1d54c +INCBIN "gfx/tilesets/06.lz" +; 0x1d92c + +Tileset06Meta: ; 0x1d92c +INCBIN "tilesets/06_metatiles.bin" +; 0x1dd2c + +Tileset06Coll: ; 0x1dd2c +INCBIN "tilesets/06_collision.bin" +; 0x1de2c + +Tileset13GFX: ; 0x1de2c +INCBIN "gfx/tilesets/13.lz" +; 0x1e58c + +Tileset13Meta: ; 0x1e58c +INCBIN "tilesets/13_metatiles.bin" +; 0x1e98c + +Tileset13Coll: ; 0x1e98c +INCBIN "tilesets/13_collision.bin" +; 0x1ea8c + +Tileset24GFX: ; 0x1ea8c +INCBIN "gfx/tilesets/24.lz" +; 0x1ee1c + +Tileset24Meta: ; 0x1ee1c +Tileset30Meta: ; 0x1ee1c +INCBIN "tilesets/30_metatiles.bin" +; 0x1f21c + +Tileset24Coll: ; 0x1f21c +Tileset30Coll: ; 0x1f21c +INCBIN "tilesets/30_collision.bin" +; 0x1f31c + diff --git a/tilesets/data_3.asm b/tilesets/data_3.asm new file mode 100644 index 000000000..337573d20 --- /dev/null +++ b/tilesets/data_3.asm @@ -0,0 +1,65 @@ +Tileset23GFX: ; 0x20181 +INCBIN "gfx/tilesets/23.lz" +; 0x206e1 + +Tileset23Meta: ; 0x206e1 +INCBIN "tilesets/23_metatiles.bin" +; 0x20ae1 + +Tileset23Coll: ; 0x20ae1 +INCBIN "tilesets/23_collision.bin" +; 0x20be1 + +Tileset10GFX: ; 0x20be1 +INCBIN "gfx/tilesets/10.lz" +; 0x213e1 + +Tileset10Meta: ; 0x213e1 +INCBIN "tilesets/10_metatiles.bin" +; 0x217e1 + +Tileset10Coll: ; 0x217e1 +INCBIN "tilesets/10_collision.bin" +; 0x218e1 + +Tileset12GFX: ; 0x218e1 +INCBIN "gfx/tilesets/12.lz" +; 0x22031 + +Tileset12Meta: ; 0x22031 +INCBIN "tilesets/12_metatiles.bin" +; 0x22431 + +Tileset12Coll: ; 0x22431 +INCBIN "tilesets/12_collision.bin" +; 0x22531 + +Tileset14GFX: ; 0x22531 +INCBIN "gfx/tilesets/14.lz" +; 0x22af1 + +Tileset14Meta: ; 0x22af1 +INCBIN "tilesets/14_metatiles.bin" +; 0x22ef1 + +Tileset14Coll: ; 0x22ef1 +INCBIN "tilesets/14_collision.bin" +; 0x22ff1 + +Tileset17GFX: ; 0x22ff1 +INCBIN "gfx/tilesets/17.lz" +; 0x23391 + +Tileset17Meta: ; 0x23391 +INCBIN "tilesets/17_metatiles.bin" +; 0x23791 + +Tileset17Coll: ; 0x23791 +INCBIN "tilesets/17_collision.bin" +; 0x23891 + +; todo +Tileset31Meta: ; 0x23891 +INCBIN "tilesets/31_metatiles.bin" +; 0x23b11 + diff --git a/tilesets/data_4.asm b/tilesets/data_4.asm new file mode 100644 index 000000000..9b05877cb --- /dev/null +++ b/tilesets/data_4.asm @@ -0,0 +1,52 @@ +Tileset15GFX: ; 0x30000 +INCBIN "gfx/tilesets/15.lz" +; 0x304e0 + +Tileset15Meta: ; 0x304e0 +INCBIN "tilesets/15_metatiles.bin" +; 0x308e0 + +Tileset15Coll: ; 0x308e0 +INCBIN "tilesets/15_collision.bin" +; 0x309e0 + +Tileset25GFX: ; 0x309e0 +INCBIN "gfx/tilesets/25.lz" +; 0x30e80 + +Tileset25Meta: ; 0x30e80 +INCBIN "tilesets/25_metatiles.bin" +; 0x31280 + +Tileset25Coll: ; 0x31280 +INCBIN "tilesets/25_collision.bin" +; 0x31380 + +Tileset27GFX: ; 0x31380 +INCBIN "gfx/tilesets/27.lz" +; 0x318e0 + +Tileset27Meta: ; 0x318e0 +INCBIN "tilesets/27_metatiles.bin" +; 0x31ce0 + +Tileset27Coll: ; 0x31ce0 +INCBIN "tilesets/27_collision.bin" +; 0x31de0 + +Tileset28GFX: ; 0x31de0 +INCBIN "gfx/tilesets/28.lz" +; 0x321b0 + +Tileset28Meta: ; 0x321b0 +INCBIN "tilesets/28_metatiles.bin" +; 0x325b0 + +Tileset28Coll: ; 0x325b0 +INCBIN "tilesets/28_collision.bin" +; 0x326b0 + +Tileset30GFX: ; 0x326b0 +INCBIN "gfx/tilesets/30.lz" +; 0x329f0 + diff --git a/tilesets/data_5.asm b/tilesets/data_5.asm new file mode 100644 index 000000000..00cc1b956 --- /dev/null +++ b/tilesets/data_5.asm @@ -0,0 +1,61 @@ +Tileset21GFX: ; 0xb4000 +INCBIN "gfx/tilesets/21.lz" +; 0xb48a0 + +Tileset21Meta: ; 0xb48a0 +INCBIN "tilesets/21_metatiles.bin" +; 0xb4ca0 + +Tileset21Coll: ; 0xb4ca0 +INCBIN "tilesets/21_collision.bin" +; 0xb4da0 + +Tileset22GFX: ; 0xb4da0 +INCBIN "gfx/tilesets/22.lz" +; 0xb50e0 + +Tileset22Meta: ; 0xb50e0 +INCBIN "tilesets/22_metatiles.bin" +; 0xb54e0 + +Tileset22Coll: ; 0xb54e0 +INCBIN "tilesets/22_collision.bin" +; 0xb55e0 + +Tileset08GFX: ; 0xb55e0 +INCBIN "gfx/tilesets/08.lz" +; 0xb59e0 + +Tileset08Meta: ; 0xb59e0 +INCBIN "tilesets/08_metatiles.bin" +; 0xb5de0 + +Tileset08Coll: ; 0xb5de0 +INCBIN "tilesets/08_collision.bin" +; 0xb5ee0 + +Tileset02GFX: ; 0xb5ee0 +Tileset04GFX: ; 0xb5ee0 +INCBIN "gfx/tilesets/04.lz" +; 0xb6ae8 + +Tileset02Meta: ; 0xb6ae8 +INCBIN "tilesets/02_metatiles.bin" +; 0xb72e8 + +Tileset02Coll: ; 0xb72e8 +INCBIN "tilesets/02_collision.bin" +; 0xb74e8 + +Tileset16GFX: ; 0xb74e8 +INCBIN "gfx/tilesets/16.lz" +; 0xb79a8 + +Tileset16Meta: ; 0xb79a8 +INCBIN "tilesets/16_metatiles.bin" +; 0xb7da8 + +Tileset16Coll: ; 0xb7da8 +INCBIN "tilesets/16_collision.bin" +; 0xb7ea8 + diff --git a/tilesets/data_6.asm b/tilesets/data_6.asm new file mode 100644 index 000000000..93d3b75af --- /dev/null +++ b/tilesets/data_6.asm @@ -0,0 +1,76 @@ +Tileset31GFX: ; 0xdc000 +INCBIN "gfx/tilesets/31.lz" +; 0xdc3d0 + +Tileset18GFX: ; 0xdc3d0 +INCBIN "gfx/tilesets/18.lz" +; 0xdcc50 + +Tileset18Meta: ; 0xdcc50 +INCBIN "tilesets/18_metatiles.bin" +; 0xdd050 + +Tileset18Coll: ; 0xdd050 +INCBIN "tilesets/18_collision.bin" +; 0xdd150 + +Tileset05GFX: ; 0xdd150 +INCBIN "gfx/tilesets/05.lz" +; 0xdd600 + +Tileset05Meta: ; 0xdd600 +INCBIN "tilesets/05_metatiles.bin" +; 0xdda00 + +Tileset05Coll: ; 0xdda00 +INCBIN "tilesets/05_collision.bin" +; 0xddb00 + +Tileset19GFX: ; 0xddb00 +INCBIN "gfx/tilesets/19.lz" +; 0xddf70 + +Tileset19Meta: ; 0xddf70 +INCBIN "tilesets/19_metatiles.bin" +; 0xde370 + +Tileset19Coll: ; 0xde370 +INCBIN "tilesets/19_collision.bin" +; 0xde470 + +Tileset31Coll: ; 0xde470 +INCBIN "tilesets/31_collision.bin" +; 0xde570 + +Tileset11GFX: ; 0xde570 +INCBIN "gfx/tilesets/11.lz" +; 0xde990 + +Tileset11Meta: ; 0xde990 +INCBIN "tilesets/11_metatiles.bin" +; 0xded90 + +Tileset11Coll: ; 0xded90 +INCBIN "tilesets/11_collision.bin" +; 0xdee90 + +Tileset04Meta: ; 0xdee90 +INCBIN "tilesets/04_metatiles.bin" +; 0xdf690 + +Tileset04Coll: ; 0xdf690 +INCBIN "tilesets/04_collision.bin" +; 0xdf890 + +Tileset32Meta: ; 0xdf890 +INCBIN "tilesets/32_metatiles.bin" +; 0xdfc90 + +Tileset32Coll: ; 0xdfc90 +Tileset33Coll: ; 0xdfc90 +Tileset34Coll: ; 0xdfc90 +Tileset35Coll: ; 0xdfc90 +Tileset36Coll: ; 0xdfc90 +INCBIN "tilesets/36_collision.bin" +; 0xdfd90 + diff --git a/tilesets/data_7.asm b/tilesets/data_7.asm new file mode 100644 index 000000000..206551811 --- /dev/null +++ b/tilesets/data_7.asm @@ -0,0 +1,17 @@ +Tileset26GFX: ; 0x1dc5a1 +Tileset32GFX: ; 0x1dc5a1 +Tileset33GFX: ; 0x1dc5a1 +Tileset34GFX: ; 0x1dc5a1 +Tileset35GFX: ; 0x1dc5a1 +Tileset36GFX: ; 0x1dc5a1 +INCBIN "gfx/tilesets/36.lz" +; 0x1dd1a9 + +Tileset26Meta: ; 0x1dd1a9 +INCBIN "tilesets/26_metatiles.bin" +; 0x1dd5a9 + +Tileset26Coll: ; 0x1dd5a9 +INCBIN "tilesets/26_collision.bin" +; 0x1dd6a9 + diff --git a/tilesets/data_8.asm b/tilesets/data_8.asm new file mode 100644 index 000000000..82fe6b873 --- /dev/null +++ b/tilesets/data_8.asm @@ -0,0 +1,16 @@ +Tileset33Meta: ; 0x1e0000 +INCBIN "tilesets/33_metatiles.bin" +; 0x1e0400 + +Tileset34Meta: ; 0x1e0400 +INCBIN "tilesets/34_metatiles.bin" +; 0x1e0800 + +Tileset35Meta: ; 0x1e0800 +INCBIN "tilesets/35_metatiles.bin" +; 0x1e0c00 + +Tileset36Meta: ; 0x1e0c00 +INCBIN "tilesets/36_metatiles.bin" +; 0x1e1000 + diff --git a/tilesets/palette_maps.asm b/tilesets/palette_maps.asm new file mode 100644 index 000000000..a7ef63c43 --- /dev/null +++ b/tilesets/palette_maps.asm @@ -0,0 +1,129 @@ +Tileset03PalMap: ; 0x4c075 +INCBIN "tilesets/03_palette_map.bin" +; 0x4c0e5 + +Tileset00PalMap: ; 0x4c0e5 +Tileset01PalMap: ; 0x4c0e5 +INCBIN "tilesets/01_palette_map.bin" +; 0x4c155 + +Tileset02PalMap: ; 0x4c155 +INCBIN "tilesets/02_palette_map.bin" +; 0x4c1c5 + +Tileset05PalMap: ; 0x4c1c5 +INCBIN "tilesets/05_palette_map.bin" +; 0x4c235 + +Tileset06PalMap: ; 0x4c235 +INCBIN "tilesets/06_palette_map.bin" +; 0x4c2a5 + +Tileset07PalMap: ; 0x4c2a5 +INCBIN "tilesets/07_palette_map.bin" +; 0x4c315 + +Tileset08PalMap: ; 0x4c315 +INCBIN "tilesets/08_palette_map.bin" +; 0x4c385 + +Tileset09PalMap: ; 0x4c385 +INCBIN "tilesets/09_palette_map.bin" +; 0x4c3f5 + +Tileset10PalMap: ; 0x4c3f5 +INCBIN "tilesets/10_palette_map.bin" +; 0x4c465 + +Tileset11PalMap: ; 0x4c465 +INCBIN "tilesets/11_palette_map.bin" +; 0x4c4d5 + +Tileset12PalMap: ; 0x4c4d5 +INCBIN "tilesets/12_palette_map.bin" +; 0x4c545 + +Tileset13PalMap: ; 0x4c545 +INCBIN "tilesets/13_palette_map.bin" +; 0x4c5b5 + +Tileset14PalMap: ; 0x4c5b5 +INCBIN "tilesets/14_palette_map.bin" +; 0x4c625 + +Tileset15PalMap: ; 0x4c625 +INCBIN "tilesets/15_palette_map.bin" +; 0x4c695 + +Tileset16PalMap: ; 0x4c695 +INCBIN "tilesets/16_palette_map.bin" +; 0x4c705 + +Tileset23PalMap: ; 0x4c705 +INCBIN "tilesets/23_palette_map.bin" +; 0x4c775 + +Tileset24PalMap: ; 0x4c775 +Tileset30PalMap: ; 0x4c775 +INCBIN "tilesets/30_palette_map.bin" +; 0x4c7e5 + +Tileset25PalMap: ; 0x4c7e5 +INCBIN "tilesets/25_palette_map.bin" +; 0x4c855 + +Tileset26PalMap: ; 0x4c855 +Tileset32PalMap: ; 0x4c855 +Tileset33PalMap: ; 0x4c855 +Tileset34PalMap: ; 0x4c855 +Tileset35PalMap: ; 0x4c855 +Tileset36PalMap: ; 0x4c855 +INCBIN "tilesets/36_palette_map.bin" +; 0x4c8c5 + +Tileset27PalMap: ; 0x4c8c5 +INCBIN "tilesets/27_palette_map.bin" +; 0x4c935 + +Tileset17PalMap: ; 0x4c935 +INCBIN "tilesets/17_palette_map.bin" +; 0x4c9a5 + +Tileset28PalMap: ; 0x4c9a5 +INCBIN "tilesets/28_palette_map.bin" +; 0x4ca15 + +Tileset18PalMap: ; 0x4ca15 +INCBIN "tilesets/18_palette_map.bin" +; 0x4ca85 + +Tileset19PalMap: ; 0x4ca85 +INCBIN "tilesets/19_palette_map.bin" +; 0x4caf5 + +Tileset20PalMap: ; 0x4caf5 +INCBIN "tilesets/20_palette_map.bin" +; 0x4cb65 + +INCBIN "baserom.gbc", $4cb65, $4cbd5-$4cb65 + +Tileset29PalMap: ; 0x4cbd5 +INCBIN "tilesets/29_palette_map.bin" +; 0x4cc45 + +Tileset31PalMap: ; 0x4cc45 +INCBIN "tilesets/31_palette_map.bin" +; 0x4ccb5 + +Tileset21PalMap: ; 0x4ccb5 +INCBIN "tilesets/21_palette_map.bin" +; 0x4cd25 + +Tileset22PalMap: ; 0x4cd25 +INCBIN "tilesets/22_palette_map.bin" +; 0x4cd95 + +Tileset04PalMap: ; 0x4cd95 +INCBIN "tilesets/04_palette_map.bin" +; 0x4ce05 + diff --git a/tilesets/tileset_headers.asm b/tilesets/tileset_headers.asm new file mode 100644 index 000000000..52829a427 --- /dev/null +++ b/tilesets/tileset_headers.asm @@ -0,0 +1,298 @@ +Tileset00: ; 0x4d596 + dbw BANK(Tileset00GFX), Tileset00GFX + dbw BANK(Tileset00Meta), Tileset00Meta + dbw BANK(Tileset00Coll), Tileset00Coll + dw Tileset00Anim + dw $0000 + dw Tileset00PalMap + +Tileset01: ; 0x4d5a5 + dbw BANK(Tileset01GFX), Tileset01GFX + dbw BANK(Tileset01Meta), Tileset01Meta + dbw BANK(Tileset01Coll), Tileset01Coll + dw Tileset01Anim + dw $0000 + dw Tileset01PalMap + +Tileset02: ; 0x4d5b4 + dbw BANK(Tileset02GFX), Tileset02GFX + dbw BANK(Tileset02Meta), Tileset02Meta + dbw BANK(Tileset02Coll), Tileset02Coll + dw Tileset02Anim + dw $0000 + dw Tileset02PalMap + +Tileset03: ; 0x4d5c3 + dbw BANK(Tileset03GFX), Tileset03GFX + dbw BANK(Tileset03Meta), Tileset03Meta + dbw BANK(Tileset03Coll), Tileset03Coll + dw Tileset03Anim + dw $0000 + dw Tileset03PalMap + +Tileset04: ; 0x4d5d2 + dbw BANK(Tileset04GFX), Tileset04GFX + dbw BANK(Tileset04Meta), Tileset04Meta + dbw BANK(Tileset04Coll), Tileset04Coll + dw Tileset04Anim + dw $0000 + dw Tileset04PalMap + +Tileset05: ; 0x4d5e1 + dbw BANK(Tileset05GFX), Tileset05GFX + dbw BANK(Tileset05Meta), Tileset05Meta + dbw BANK(Tileset05Coll), Tileset05Coll + dw Tileset05Anim + dw $0000 + dw Tileset05PalMap + +Tileset06: ; 0x4d5f0 + dbw BANK(Tileset06GFX), Tileset06GFX + dbw BANK(Tileset06Meta), Tileset06Meta + dbw BANK(Tileset06Coll), Tileset06Coll + dw Tileset06Anim + dw $0000 + dw Tileset06PalMap + +Tileset07: ; 0x4d5ff + dbw BANK(Tileset07GFX), Tileset07GFX + dbw BANK(Tileset07Meta), Tileset07Meta + dbw BANK(Tileset07Coll), Tileset07Coll + dw Tileset07Anim + dw $0000 + dw Tileset07PalMap + +Tileset08: ; 0x4d60e + dbw BANK(Tileset08GFX), Tileset08GFX + dbw BANK(Tileset08Meta), Tileset08Meta + dbw BANK(Tileset08Coll), Tileset08Coll + dw Tileset08Anim + dw $0000 + dw Tileset08PalMap + +Tileset09: ; 0x4d61d + dbw BANK(Tileset09GFX), Tileset09GFX + dbw BANK(Tileset09Meta), Tileset09Meta + dbw BANK(Tileset09Coll), Tileset09Coll + dw Tileset09Anim + dw $0000 + dw Tileset09PalMap + +Tileset10: ; 0x4d62c + dbw BANK(Tileset10GFX), Tileset10GFX + dbw BANK(Tileset10Meta), Tileset10Meta + dbw BANK(Tileset10Coll), Tileset10Coll + dw Tileset10Anim + dw $0000 + dw Tileset10PalMap + +Tileset11: ; 0x4d63b + dbw BANK(Tileset11GFX), Tileset11GFX + dbw BANK(Tileset11Meta), Tileset11Meta + dbw BANK(Tileset11Coll), Tileset11Coll + dw Tileset11Anim + dw $0000 + dw Tileset11PalMap + +Tileset12: ; 0x4d64a + dbw BANK(Tileset12GFX), Tileset12GFX + dbw BANK(Tileset12Meta), Tileset12Meta + dbw BANK(Tileset12Coll), Tileset12Coll + dw Tileset12Anim + dw $0000 + dw Tileset12PalMap + +Tileset13: ; 0x4d659 + dbw BANK(Tileset13GFX), Tileset13GFX + dbw BANK(Tileset13Meta), Tileset13Meta + dbw BANK(Tileset13Coll), Tileset13Coll + dw Tileset13Anim + dw $0000 + dw Tileset13PalMap + +Tileset14: ; 0x4d668 + dbw BANK(Tileset14GFX), Tileset14GFX + dbw BANK(Tileset14Meta), Tileset14Meta + dbw BANK(Tileset14Coll), Tileset14Coll + dw Tileset14Anim + dw $0000 + dw Tileset14PalMap + +Tileset15: ; 0x4d677 + dbw BANK(Tileset15GFX), Tileset15GFX + dbw BANK(Tileset15Meta), Tileset15Meta + dbw BANK(Tileset15Coll), Tileset15Coll + dw Tileset15Anim + dw $0000 + dw Tileset15PalMap + +Tileset16: ; 0x4d686 + dbw BANK(Tileset16GFX), Tileset16GFX + dbw BANK(Tileset16Meta), Tileset16Meta + dbw BANK(Tileset16Coll), Tileset16Coll + dw Tileset16Anim + dw $0000 + dw Tileset16PalMap + +Tileset17: ; 0x4d695 + dbw BANK(Tileset17GFX), Tileset17GFX + dbw BANK(Tileset17Meta), Tileset17Meta + dbw BANK(Tileset17Coll), Tileset17Coll + dw Tileset17Anim + dw $0000 + dw Tileset17PalMap + +Tileset18: ; 0x4d6a4 + dbw BANK(Tileset18GFX), Tileset18GFX + dbw BANK(Tileset18Meta), Tileset18Meta + dbw BANK(Tileset18Coll), Tileset18Coll + dw Tileset18Anim + dw $0000 + dw Tileset18PalMap + +Tileset19: ; 0x4d6b3 + dbw BANK(Tileset19GFX), Tileset19GFX + dbw BANK(Tileset19Meta), Tileset19Meta + dbw BANK(Tileset19Coll), Tileset19Coll + dw Tileset19Anim + dw $0000 + dw Tileset19PalMap + +Tileset20: ; 0x4d6c2 + dbw BANK(Tileset20GFX), Tileset20GFX + dbw BANK(Tileset20Meta), Tileset20Meta + dbw BANK(Tileset20Coll), Tileset20Coll + dw Tileset20Anim + dw $0000 + dw Tileset20PalMap + +Tileset21: ; 0x4d6d1 + dbw BANK(Tileset21GFX), Tileset21GFX + dbw BANK(Tileset21Meta), Tileset21Meta + dbw BANK(Tileset21Coll), Tileset21Coll + dw Tileset21Anim + dw $0000 + dw Tileset21PalMap + +Tileset22: ; 0x4d6e0 + dbw BANK(Tileset22GFX), Tileset22GFX + dbw BANK(Tileset22Meta), Tileset22Meta + dbw BANK(Tileset22Coll), Tileset22Coll + dw Tileset22Anim + dw $0000 + dw Tileset22PalMap + +Tileset23: ; 0x4d6ef + dbw BANK(Tileset23GFX), Tileset23GFX + dbw BANK(Tileset23Meta), Tileset23Meta + dbw BANK(Tileset23Coll), Tileset23Coll + dw Tileset23Anim + dw $0000 + dw Tileset23PalMap + +Tileset24: ; 0x4d6fe + dbw BANK(Tileset24GFX), Tileset24GFX + dbw BANK(Tileset24Meta), Tileset24Meta + dbw BANK(Tileset24Coll), Tileset24Coll + dw Tileset24Anim + dw $0000 + dw Tileset24PalMap + +Tileset25: ; 0x4d70d + dbw BANK(Tileset25GFX), Tileset25GFX + dbw BANK(Tileset25Meta), Tileset25Meta + dbw BANK(Tileset25Coll), Tileset25Coll + dw Tileset25Anim + dw $0000 + dw Tileset25PalMap + +Tileset26: ; 0x4d71c + dbw BANK(Tileset26GFX), Tileset26GFX + dbw BANK(Tileset26Meta), Tileset26Meta + dbw BANK(Tileset26Coll), Tileset26Coll + dw Tileset26Anim + dw $0000 + dw Tileset26PalMap + +Tileset27: ; 0x4d72b + dbw BANK(Tileset27GFX), Tileset27GFX + dbw BANK(Tileset27Meta), Tileset27Meta + dbw BANK(Tileset27Coll), Tileset27Coll + dw Tileset27Anim + dw $0000 + dw Tileset27PalMap + +Tileset28: ; 0x4d73a + dbw BANK(Tileset28GFX), Tileset28GFX + dbw BANK(Tileset28Meta), Tileset28Meta + dbw BANK(Tileset28Coll), Tileset28Coll + dw Tileset28Anim + dw $0000 + dw Tileset28PalMap + +Tileset29: ; 0x4d749 + dbw BANK(Tileset29GFX), Tileset29GFX + dbw BANK(Tileset29Meta), Tileset29Meta + dbw BANK(Tileset29Coll), Tileset29Coll + dw Tileset29Anim + dw $0000 + dw Tileset29PalMap + +Tileset30: ; 0x4d758 + dbw BANK(Tileset30GFX), Tileset30GFX + dbw BANK(Tileset30Meta), Tileset30Meta + dbw BANK(Tileset30Coll), Tileset30Coll + dw Tileset30Anim + dw $0000 + dw Tileset30PalMap + +Tileset31: ; 0x4d767 + dbw BANK(Tileset31GFX), Tileset31GFX + dbw BANK(Tileset31Meta), Tileset31Meta + dbw BANK(Tileset31Coll), Tileset31Coll + dw Tileset31Anim + dw $0000 + dw Tileset31PalMap + +Tileset32: ; 0x4d776 + dbw BANK(Tileset32GFX), Tileset32GFX + dbw BANK(Tileset32Meta), Tileset32Meta + dbw BANK(Tileset32Coll), Tileset32Coll + dw Tileset32Anim + dw $0000 + dw Tileset32PalMap + +Tileset33: ; 0x4d785 + dbw BANK(Tileset33GFX), Tileset33GFX + dbw BANK(Tileset33Meta), Tileset33Meta + dbw BANK(Tileset33Coll), Tileset33Coll + dw Tileset33Anim + dw $0000 + dw Tileset33PalMap + +Tileset34: ; 0x4d794 + dbw BANK(Tileset34GFX), Tileset34GFX + dbw BANK(Tileset34Meta), Tileset34Meta + dbw BANK(Tileset34Coll), Tileset34Coll + dw Tileset34Anim + dw $0000 + dw Tileset34PalMap + +Tileset35: ; 0x4d7a3 + dbw BANK(Tileset35GFX), Tileset35GFX + dbw BANK(Tileset35Meta), Tileset35Meta + dbw BANK(Tileset35Coll), Tileset35Coll + dw Tileset35Anim + dw $0000 + dw Tileset35PalMap + +Tileset36: ; 0x4d7b2 + dbw BANK(Tileset36GFX), Tileset36GFX + dbw BANK(Tileset36Meta), Tileset36Meta + dbw BANK(Tileset36Coll), Tileset36Coll + dw Tileset36Anim + dw $0000 + dw Tileset36PalMap + +; 0x4d7c1 + diff --git a/trainers/dvs.asm b/trainers/dvs.asm new file mode 100644 index 000000000..2277c7872 --- /dev/null +++ b/trainers/dvs.asm @@ -0,0 +1,93 @@ +GetTrainerDVs: ; 270c4 +; Return the DVs of OtherTrainerClass in bc + + push hl + ld a, [OtherTrainerClass] + dec a + ld c, a + ld b, 0 + + ld hl, TrainerClassDVs + add hl, bc + add hl, bc + + ld a, [hli] + ld b, a + ld c, [hl] + + pop hl + ret +; 270d6 + +TrainerClassDVs: ; 270d6 + ; Atk Spd + ; Def Spc + db $9A, $77 ; falkner + db $88, $88 ; bugsy + db $98, $88 ; whitney + db $98, $88 ; morty + db $98, $88 ; pryce + db $98, $88 ; jasmine + db $98, $88 ; chuck + db $7C, $DD ; clair + db $DD, $DD ; rival1 + db $98, $88 ; pokemon prof + db $DC, $DD ; will + db $DC, $DD ; cal + db $DC, $DD ; bruno + db $7F, $DF ; karen + db $DC, $DD ; koga + db $DC, $DD ; champion + db $98, $88 ; brock + db $78, $88 ; misty + db $98, $88 ; lt surge + db $98, $88 ; scientist + db $78, $88 ; erika + db $98, $88 ; youngster + db $98, $88 ; schoolboy + db $98, $88 ; bird keeper + db $58, $88 ; lass + db $98, $88 ; janine + db $D8, $C8 ; cooltrainerm + db $7C, $C8 ; cooltrainerf + db $69, $C8 ; beauty + db $98, $88 ; pokemaniac + db $D8, $A8 ; gruntm + db $98, $88 ; gentleman + db $98, $88 ; skier + db $68, $88 ; teacher + db $7D, $87 ; sabrina + db $98, $88 ; bug catcher + db $98, $88 ; fisher + db $98, $88 ; swimmerm + db $78, $88 ; swimmerf + db $98, $88 ; sailor + db $98, $88 ; super nerd + db $98, $88 ; rival2 + db $98, $88 ; guitarist + db $A8, $88 ; hiker + db $98, $88 ; biker + db $98, $88 ; blaine + db $98, $88 ; burglar + db $98, $88 ; firebreather + db $98, $88 ; juggler + db $98, $88 ; blackbelt + db $D8, $A8 ; executivem + db $98, $88 ; psychic + db $6A, $A8 ; picnicker + db $98, $88 ; camper + db $7E, $A8 ; executivef + db $98, $88 ; sage + db $78, $88 ; medium + db $98, $88 ; boarder + db $98, $88 ; pokefanm + db $68, $8A ; kimono girl + db $68, $A8 ; twins + db $6D, $88 ; pokefanf + db $FD, $DE ; red + db $9D, $DD ; blue + db $98, $88 ; officer + db $7E, $A8 ; gruntf + db $98, $88 ; mysticalman +; 2715c + @@ -477,7 +477,10 @@ BattleMonType1: ; c64a BattleMonType2: ; c64b ds 1 - ds 23 + ds 10 + +OTName: ; c656 + ds 13 CurOTMon: ; c663 ds 1 @@ -585,6 +588,7 @@ PlayerPerishCount: ; c677 ds 1 PlayerFuryCutterCount: ; c678 ds 1 +PlayerProtectCount: ; c679 ds 1 EnemyRolloutCount: ; c67a @@ -600,6 +604,7 @@ EnemyPerishCount: ; c67f ds 1 EnemyFuryCutterCount: ; c680 ds 1 +EnemyProtectCount: ; c681 ds 1 PlayerDamageTaken: ; c682 @@ -829,7 +834,23 @@ WILDMON EQU 4 CurSpecies: ; cf60 ds 1 - ds $13 + ds 6 + +Requested2bpp: ; cf67 + ds 1 +Requested2bppSource: ; cf68 + ds 2 +Requested2bppDest: ; cf6a + ds 2 + +Requested1bpp: ; cf6c + ds 1 +Requested1bppSource: ; cf6d + ds 2 +Requested1bppDest: ; cf6f + ds 2 + + ds 3 MenuSelection:; cf74 ds 1 @@ -844,7 +865,14 @@ TextDelayFrames: ; cfb2 VBlankOccurred: ; cfb3 ds 1 - ds 8 +PredefID: ; cfb4 + ds 1 +PredefTemp: ; cfb5 + ds 2 +PredefAddress: ; cfb7 + ds 2 + + ds 3 GameTimerPause: ; cfbc ; bit 0 @@ -1176,25 +1204,25 @@ EastConnectionWindow: ; d1d7 ds 2 -TileSetHeader: -TileSetBank: ; d1d9 +TilesetHeader: +TilesetBank: ; d1d9 ds 1 -TileSetAddress: ; d1da +TilesetAddress: ; d1da ds 2 -TileSetBlocksBank: ; d1dc +TilesetBlocksBank: ; d1dc ds 1 -TileSetBlocksAddress: ; d1dd +TilesetBlocksAddress: ; d1dd ds 2 -TileSetCollisionBank: ; d1df +TilesetCollisionBank: ; d1df ds 1 -TileSetCollisionAddress: ; d1e0 +TilesetCollisionAddress: ; d1e0 ds 2 -TileSetAnim: ; d1e2 +TilesetAnim: ; d1e2 ; bank 3f ds 2 ; unused ; d1e4 ds 2 -TileSetPalettes: ; d1e6 +TilesetPalettes: ; d1e6 ; bank 3f ds 2 @@ -2000,12 +2028,12 @@ PartyMon6Nickname: ; de78 PartyMonNicknamesEnd SECTION "Pokedex",WRAMX[$de99],BANK[1] -PokedexSeen: ; de99 - ds 32 -EndPokedexSeen: -PokedexCaught: ; deb9 +PokedexCaught: ; de99 ds 32 EndPokedexCaught: +PokedexSeen: ; deb9 + ds 32 +EndPokedexSeen: UnownDex: ; ded9 ds 26 UnlockedUnowns: ; def3 |