diff options
| author | PikalaxALT <PikalaxALT@gmail.com> | 2015-11-19 23:38:16 -0500 | 
|---|---|---|
| committer | PikalaxALT <PikalaxALT@gmail.com> | 2015-11-19 23:38:16 -0500 | 
| commit | b02305625920d42649587d6ba6504777dcac25a0 (patch) | |
| tree | 7e2b307dcd9d1589d3764df11d9bbec3247d36d3 | |
| parent | 93a129eb6dc261faccaf2b2d58daf3db204ab3ba (diff) | |
engine/stats_screen.asm
| -rw-r--r-- | contents.asm | 2 | ||||
| -rwxr-xr-x | engine/stats_screen.asm | 1150 | ||||
| -rw-r--r-- | main.asm | 1212 | ||||
| -rw-r--r-- | misc/mobile_22.asm | 28 | ||||
| -rw-r--r-- | wram.asm | 6 | 
5 files changed, 1203 insertions, 1195 deletions
| diff --git a/contents.asm b/contents.asm index 0d55c2dcd..c13fffc7b 100644 --- a/contents.asm +++ b/contents.asm @@ -48,6 +48,8 @@ PIC_POINTERS              EQU $48  UNOWN_PIC_POINTERS        EQU $49  TRAINER_PIC_POINTERS      EQU $4A +PICS_FIX                  EQU $36 +  PICS_1                    EQU $48  PICS_2                    EQU $49  PICS_3                    EQU $4A diff --git a/engine/stats_screen.asm b/engine/stats_screen.asm new file mode 100755 index 000000000..11c6f61ce --- /dev/null +++ b/engine/stats_screen.asm @@ -0,0 +1,1150 @@ +Function4dc7b: ; 4dc7b (13:5c7b) +	ld a, [wLinkMode] +	cp LINK_MOBILE +	jr nz, StatsScreenInit + +	ld a, [wBattleMode] ; wd22d (aliases: EnemyMonEnd) +	and a +	jr z, StatsScreenInit +	jr Function4dc8f + +StatsScreenInit: ; 4dc8a +	ld hl, StatsScreenMain +	jr StatsScreenInit_gotaddress + +Function4dc8f: ; 4dc8f +	ld hl, StatsScreenBattle +	jr StatsScreenInit_gotaddress + +StatsScreenInit_gotaddress: ; 4dc94 +	ld a, [hMapAnims] +	push af +	xor a +	ld [hMapAnims], a ; disable overworld tile animations +	ld a, [wc2c6] ; whether sprite is to be mirrorred +	push af +	ld a, [wJumptableIndex] +	ld b, a +	ld a, [wcf64] +	ld c, a + +	push bc +	push hl +	call ClearBGPalettes +	call ClearTileMap +	call UpdateSprites +	callba Functionfb53e +	pop hl +	call _hl_ +	call ClearBGPalettes +	call ClearTileMap +	pop bc + +	; restore old values +	ld a, b +	ld [wJumptableIndex], a +	ld a, c +	ld [wcf64], a +	pop af +	ld [wc2c6], a +	pop af +	ld [hMapAnims], a +	ret +; 0x4dcd2 + +StatsScreenMain: ; 0x4dcd2 +	xor a +	ld [wJumptableIndex], a +	; stupid interns +	ld [wcf64], a +	ld a, [wcf64] +	and $fc +	or $1 +	ld [wcf64], a +.loop ; 4dce3 +	ld a, [wJumptableIndex] +	and $7f +	ld hl, StatsScreenPointerTable +	rst JumpTable +	call Function4dd3a ; check for keys? +	ld a, [wJumptableIndex] +	bit 7, a +	jr z, .loop +	ret +; 0x4dcf7 + +StatsScreenBattle: ; 4dcf7 +	xor a +	ld [wJumptableIndex], a +	; stupid interns +	ld [wcf64], a +	ld a, [wcf64] +	and $fc +	or $1 +	ld [wcf64], a +.loop +	callba Function100dd2 +	ld a, [wJumptableIndex] +	and $7f +	ld hl, StatsScreenPointerTable +	rst JumpTable +	call Function4dd3a +	callba Function100dfd +	jr c, .exit +	ld a, [wJumptableIndex] +	bit 7, a +	jr z, .loop + +.exit +	ret +; 4dd2a + +StatsScreenPointerTable: ; 4dd2a +	dw MonStatsInit ; regular pokémon +	dw EggStatsInit ; egg +	dw StatsScreenWaitCry +	dw Function4ddac +	dw Function4ddc6 +	dw StatsScreenWaitCry +	dw Function4ddd6 +	dw Function4dd6c +; 4dd3a + + +Function4dd3a: ; 4dd3a (13:5d3a) +	ld hl, wcf64 +	bit 6, [hl] +	jr nz, .asm_4dd49 +	bit 5, [hl] +	jr nz, .asm_4dd56 +	call DelayFrame +	ret +.asm_4dd49 +	callba Functiond00b4 +	jr nc, .asm_4dd56 +	ld hl, wcf64 +	res 6, [hl] +.asm_4dd56 +	ld hl, wcf64 +	res 5, [hl] +	callba Function10402d +	ret + +Function4dd62: ; 4dd62 (13:5d62) +	ld a, [wJumptableIndex] +	and $80 +	or h +	ld [wJumptableIndex], a +	ret + +Function4dd6c: ; 4dd6c (13:5d6c) +	ld hl, wJumptableIndex +	set 7, [hl] +	ret + +MonStatsInit: ; 4dd72 (13:5d72) +	ld hl, wcf64 +	res 6, [hl] +	call ClearBGPalettes +	call ClearTileMap +	callba Function10402d +	call Function4ddf2 +	ld a, [CurPartySpecies] +	cp EGG +	jr z, .asm_4dd9b +	call Function4deea +	ld hl, wcf64 +	set 4, [hl] +	ld h, $4 +	call Function4dd62 +	ret +.asm_4dd9b +	ld h, $1 +	call Function4dd62 +	ret + +EggStatsInit: ; 4dda1 +	call EggStatsScreen +	ld a, [wJumptableIndex] +	inc a +	ld [wJumptableIndex], a +	ret +; 0x4ddac + + +Function4ddac: ; 4ddac (13:5dac) +	call Function4de2c +	jr nc, .asm_4ddb7 +	ld h, $0 +	call Function4dd62 +	ret +.asm_4ddb7 +	bit 0, a +	jr nz, .asm_4ddc0 +	and $c3 +	jp Function4de54 +.asm_4ddc0 +	ld h, $7 +	call Function4dd62 +	ret + +Function4ddc6: ; 4ddc6 (13:5dc6) +	call Function4dfb6 +	ld hl, wcf64 +	res 4, [hl] +	ld a, [wJumptableIndex] +	inc a +	ld [wJumptableIndex], a +	ret + +Function4ddd6: ; 4ddd6 (13:5dd6) +	call Function4de2c +	jr nc, .asm_4dde1 +	ld h, $0 +	call Function4dd62 +	ret + +.asm_4dde1 +	and $f3 +	jp Function4de54 + +StatsScreenWaitCry: ; 4dde6 (13:5de6) +	call IsSFXPlaying +	ret nc +	ld a, [wJumptableIndex] +	inc a +	ld [wJumptableIndex], a +	ret + +Function4ddf2: ; 4ddf2 (13:5df2) +	ld a, [MonType] +	cp BREEDMON +	jr nz, .asm_4de10 +	ld a, [wd018_Mon] +	ld [CurSpecies], a +	call GetBaseData +	ld hl, wd018_Mon +	ld de, TempMon +	ld bc, PARTYMON_STRUCT_LENGTH +	call CopyBytes +	jr .asm_4de2a +.asm_4de10 +	callba CopyPkmnToTempMon +	ld a, [CurPartySpecies] +	cp EGG +	jr z, .asm_4de2a +	ld a, [MonType] +	cp BOXMON +	jr c, .asm_4de2a +	callba Function50890 +.asm_4de2a +	and a +	ret + +Function4de2c: ; 4de2c (13:5e2c) +	call GetJoypad +	ld a, [MonType] +	cp BREEDMON +	jr nz, .notbreedmon +	push hl +	push de +	push bc +	callba Functione2f95 +	pop bc +	pop de +	pop hl +	ld a, [wcf73] +	and $c0 +	jr nz, .set_carry +	ld a, [wcf73] +	jr .clear_flags + +.notbreedmon +	ld a, [hJoyPressed] +.clear_flags +	and a +	ret + +.set_carry +	scf +	ret + +Function4de54: ; 4de54 (13:5e54) +	push af +	ld a, [wcf64] +	and $3 +	ld c, a +	pop af +	bit 1, a +	jp nz, Function4dee4 +	bit 5, a +	jr nz, .asm_4dec7 +	bit 4, a +	jr nz, .asm_4debd +	bit 0, a +	jr nz, .asm_4deb8 +	bit 6, a +	jr nz, .asm_4dea0 +	bit 7, a +	jr nz, .asm_4de77 +	jr .asm_4dece +.asm_4de77 +	ld a, [MonType] +	cp BOXMON +	jr nc, .asm_4dece +	and a +	ld a, [PartyCount] +	jr z, .asm_4de87 +	ld a, [OTPartyCount] +.asm_4de87 +	ld b, a +	ld a, [CurPartyMon] +	inc a +	cp b +	jr z, .asm_4dece +	ld [CurPartyMon], a +	ld b, a +	ld a, [MonType] +	and a +	jr nz, .asm_4dede +	ld a, b +	inc a +	ld [wd0d8], a +	jr .asm_4dede +.asm_4dea0 +	ld a, [CurPartyMon] +	and a +	jr z, .asm_4dece +	dec a +	ld [CurPartyMon], a +	ld b, a +	ld a, [MonType] +	and a +	jr nz, .asm_4dede +	ld a, b +	inc a +	ld [wd0d8], a +	jr .asm_4dede +.asm_4deb8 +	ld a, c +	cp $3 +	jr z, Function4dee4 +.asm_4debd +	inc c +	ld a, $3 +	cp c +	jr nc, .asm_4decf +	ld c, $1 +	jr .asm_4decf +.asm_4dec7 +	dec c +	jr nz, .asm_4decf +	ld c, $3 +	jr .asm_4decf +.asm_4dece +	ret +.asm_4decf +	ld a, [wcf64] +	and $fc +	or c +	ld [wcf64], a +	ld h, $4 +	call Function4dd62 +	ret +.asm_4dede +	ld h, $0 +	call Function4dd62 +	ret + +Function4dee4: ; 4dee4 (13:5ee4) +	ld h, $7 +	call Function4dd62 +	ret + +Function4deea: ; 4deea (13:5eea) +	call Function4df45 +	xor a +	ld [hBGMapMode], a +	ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo) +	ld [wd265], a +	ld [CurSpecies], a +	hlcoord 8, 0 +	ld [hl], "№" +	inc hl +	ld [hl], "." +	inc hl +	hlcoord 10, 0 +	lb bc, PRINTNUM_LEADINGZEROS | 1, 3 +	ld de, wd265 +	call PrintNum +	hlcoord 14, 0 +	call PrintLevel +	ld hl, Unknown_4df77 +	call Function4e528 +	call Function4e505 +	hlcoord 8, 2 +	call PlaceString +	hlcoord 18, 0 +	call Function4df66 +	hlcoord 9, 4 +	ld a, "/" +	ld [hli], a +	ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo) +	ld [wd265], a +	call GetPokemonName +	call PlaceString +	call Function4df8f +	call Function4df9b +	call Function4dfa6 +	ret + +Function4df45: ; 4df45 (13:5f45) +	ld hl, TempMonHP +	ld a, [hli] +	ld b, a +	ld c, [hl] +	ld hl, TempMonMaxHP +	ld a, [hli] +	ld d, a +	ld e, [hl] +	callba DrawPartyMenuHPBar +	ld hl, wcda1 +	call SetHPPal +	ld b, SCGB_03 +	call GetSGBLayout +	call DelayFrame +	ret + +Function4df66: ; 4df66 (13:5f66) +	push hl +	callba GetGender +	pop hl +	ret c +	ld a, "♂" +	jr nz, .got_gender +	ld a, "♀" +.got_gender +	ld [hl], a +	ret +; 4df77 (13:5f77) + +Unknown_4df77: ; 4df77 +	dw PartyMonNicknames +	dw OTPartyMonNicknames +	dw sBoxMonNicknames +	dw wd002 +; 4df7f + +Function4df7f: ; 4df7f +	hlcoord 7, 0 +	ld bc, SCREEN_WIDTH +	ld d, SCREEN_HEIGHT +.loop +	ld a, $31 +	ld [hl], a +	add hl, bc +	dec d +	jr nz, .loop +	ret +; 4df8f + +Function4df8f: ; 4df8f (13:5f8f) +	hlcoord 0, 7 +	ld b, SCREEN_WIDTH +	ld a, "_" +.loop +	ld [hli], a +	dec b +	jr nz, .loop +	ret + +Function4df9b: ; 4df9b (13:5f9b) +	hlcoord 12, 6 +	ld [hl], "◀" +	hlcoord 19, 6 +	ld [hl], "▶" +	ret + +Function4dfa6: ; 4dfa6 (13:5fa6) +	ld bc, TempMonDVs +	callba CheckShininess +	ret nc +	hlcoord 19, 0 +	ld [hl], "<SHINY>" +	ret + +Function4dfb6: ; 4dfb6 (13:5fb6) +	ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo) +	ld [wd265], a +	ld [CurSpecies], a +	xor a +	ld [hBGMapMode], a +	call Function4dfda +	call Function4e002 +	call Function4dfed +	ld hl, wcf64 +	bit 4, [hl] +	jr nz, .asm_4dfd6 +	call SetPalettes +	ret + +.asm_4dfd6 +	call Function4e226 +	ret + +Function4dfda: ; 4dfda (13:5fda) +	ld a, [wcf64] +	and $3 +	ld c, a +	call Function4e4cd +	hlcoord 0, 8 +	lb bc, 10, 20 +	call ClearBox +	ret + +Function4dfed: ; 4dfed (13:5fed) +	ld a, [wcf64] +	and $3 +	ld c, a +	callba Function8c8a +	call DelayFrame +	ld hl, wcf64 +	set 5, [hl] +	ret + +Function4e002: ; 4e002 (13:6002) +	ld a, [wcf64] +	and $3 +	dec a +	ld hl, Jumptable_4e00d +	rst JumpTable +	ret + +Jumptable_4e00d: ; 4e00d (13:600d) +	dw Function4e013 +	dw Function4e147 +	dw Function4e1ae + + +Function4e013: ; 4e013 (13:6013) +	hlcoord 0, 9 +	ld b, $0 +	predef DrawPlayerHP +	hlcoord 8, 9 +	ld [hl], $41 +	ld de, String_4e119 +	hlcoord 0, 12 +	call PlaceString +	ld a, [TempMonPokerusStatus] +	ld b, a +	and $f +	jr nz, .asm_4e055 +	ld a, b +	and $f0 +	jr z, .asm_4e03d +	hlcoord 8, 8 +	ld [hl], $e8 +.asm_4e03d +	ld a, [MonType] +	cp $2 +	jr z, .asm_4e060 +	hlcoord 6, 13 +	push hl +	ld de, TempMonStatus +	predef PlaceStatusString +	pop hl +	jr nz, .asm_4e066 +	jr .asm_4e060 +.asm_4e055 +	ld de, String_4e142 +	hlcoord 1, 13 +	call PlaceString +	jr .asm_4e066 +.asm_4e060 +	ld de, String_4e127 +	call PlaceString +.asm_4e066 +	hlcoord 1, 15 +	predef PrintMonTypes +	hlcoord 9, 8 +	ld de, $14 +	ld b, $a +	ld a, $31 +.asm_4e078 +	ld [hl], a +	add hl, de +	dec b +	jr nz, .asm_4e078 +	ld de, String_4e12b +	hlcoord 10, 9 +	call PlaceString +	hlcoord 17, 14 +	call Function4e0d3 +	hlcoord 13, 10 +	lb bc, 3, 7 +	ld de, TempMonExp +	call PrintNum +	call Function4e0e7 +	hlcoord 13, 13 +	lb bc, 3, 7 +	ld de, Buffer1 ; wd1ea (aliases: MagikarpLength) +	call PrintNum +	ld de, String_4e136 +	hlcoord 10, 12 +	call PlaceString +	ld de, String_4e13f +	hlcoord 14, 14 +	call PlaceString +	hlcoord 11, 16 +	ld a, [TempMonLevel] +	ld b, a +	ld de, TempMonExp + 2 +	predef FillInExpBar +	hlcoord 10, 16 +	ld [hl], $40 +	hlcoord 19, 16 +	ld [hl], $41 +	ret + +Function4e0d3: ; 4e0d3 (13:60d3) +	ld a, [TempMonLevel] +	push af +	cp MAX_LEVEL +	jr z, .asm_4e0df +	inc a +	ld [TempMonLevel], a +.asm_4e0df +	call PrintLevel +	pop af +	ld [TempMonLevel], a +	ret + +Function4e0e7: ; 4e0e7 (13:60e7) +	ld a, [TempMonLevel] +	cp MAX_LEVEL +	jr z, .asm_4e111 +	inc a +	ld d, a +	callba CalcExpAtLevel +rept 2 +	ld hl, TempMonExp + 2 +endr +	ld a, [$ffb6] +	sub [hl] +	dec hl +	ld [wd1ec], a +	ld a, [$ffb5] +	sbc [hl] +	dec hl +	ld [Buffer2], a ; wd1eb (aliases: MovementType) +	ld a, [hQuotient] +	sbc [hl] +	ld [Buffer1], a ; wd1ea (aliases: MagikarpLength) +	ret +.asm_4e111 +	ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength) +	xor a +rept 2 +	ld [hli], a +endr +	ld [hl], a +	ret +; 4e119 (13:6119) + +String_4e119: ; 4e119 +	db   "STATUS/" +	next "TYPE/@" +; 4e127 + +String_4e127: ; 4e127 +	db "OK @" +; 4e12b + +String_4e12b: ; 4e12b +	db "EXP POINTS@" +; 4e136 + +String_4e136: ; 4e136 +	db "LEVEL UP@" +; 4e13f + +String_4e13f: ; 4e13f +	db "TO@" +; 4e142 + +String_4e142: ; 4e142 +	db "#RUS@" +; 4e147 + +Function4e147: ; 4e147 (13:6147) +	ld de, String_4e1a0 +	hlcoord 0, 8 +	call PlaceString +	call Function4e189 +	hlcoord 8, 8 +	call PlaceString +	ld de, String_4e1a9 +	hlcoord 0, 10 +	call PlaceString +	ld hl, TempMonMoves +	ld de, wListMoves_MoveIndicesBuffer +	ld bc, NUM_MOVES +	call CopyBytes +	hlcoord 8, 10 +	ld a, SCREEN_WIDTH * 2 +	ld [Buffer1], a +	predef ListMoves +	hlcoord 12, 11 +	ld a, $28 +	ld [Buffer1], a +	predef Function50c50 +	ret + +Function4e189: ; 4e189 (13:6189) +	ld de, String_4e1a5 +	ld a, [TempMonItem] +	and a +	ret z +	ld b, a +	callba Function28771 +	ld a, b +	ld [wd265], a +	call GetItemName +	ret +; 4e1a0 (13:61a0) + +String_4e1a0: ; 4e1a0 +	db "ITEM@" +; 4e1a5 + +String_4e1a5: ; 4e1a5 +	db "---@" +; 4e1a9 + +String_4e1a9: ; 4e1a9 +	db "MOVE@" +; 4e1ae + +Function4e1ae: ; 4e1ae (13:61ae) +	call Function4e1cc +	hlcoord 10, 8 +	ld de, $14 +	ld b, $a +	ld a, $31 +.asm_4e1bb +	ld [hl], a +	add hl, de +	dec b +	jr nz, .asm_4e1bb +	hlcoord 11, 8 +	ld bc, $6 +	predef PrintTempMonStats +	ret + +Function4e1cc: ; 4e1cc (13:61cc) +	ld de, IDNoString +	hlcoord 0, 9 +	call PlaceString +	ld de, OTString +	hlcoord 0, 12 +	call PlaceString +	hlcoord 2, 10 +	lb bc, PRINTNUM_LEADINGZEROS | 2, 5 +	ld de, TempMonID +	call PrintNum +	ld hl, Unknown_4e216 +	call Function4e528 +	call Function4e505 +	callba CheckNickErrors +	hlcoord 2, 13 +	call PlaceString +	ld a, [TempMonCaughtGender] +	and a +	jr z, .asm_4e215 +	cp $7f +	jr z, .asm_4e215 +	and $80 +	ld a, "♂" +	jr z, .asm_4e211 +	ld a, "♀" +.asm_4e211 +	hlcoord 9, 13 +	ld [hl], a +.asm_4e215 +	ret +; 4e216 (13:6216) + +Unknown_4e216: ; 4e216 +	dw PartyMonOT +	dw OTPartyMonOT +	dw sBoxMonOT +	dw wd00d +; 4e21e + +IDNoString: ; 4e21e +	db $73, "№.@" + +OTString: ; 4e222 +	db "OT/@" +; 4e226 + + +Function4e226: ; 4e226 (13:6226) +	ld hl, TempMonDVs +	predef GetUnownLetter +	call Function4e2ad +	jr c, .asm_4e238 +	and a +	jr z, .asm_4e23f +	jr .asm_4e246 +.asm_4e238 +	call Function4e271 +	call SetPalettes +	ret +.asm_4e23f +	call Function4e253 +	call SetPalettes +	ret +.asm_4e246 +	call SetPalettes +	call Function4e253 +	ld a, [CurPartySpecies] +	call PlayCry2 +	ret + +Function4e253: ; 4e253 (13:6253) +	ld hl, wcf64 +	set 5, [hl] +	ld a, [CurPartySpecies] +	cp UNOWN +	jr z, .asm_4e266 +	hlcoord 0, 0 +	call PrepMonFrontpic +	ret +.asm_4e266 +	xor a +	ld [wc2c6], a +	hlcoord 0, 0 +	call _PrepMonFrontpic +	ret + +Function4e271: ; 4e271 (13:6271) +	ld a, [CurPartySpecies] +	cp UNOWN +	jr z, .asm_4e281 +	ld a, $1 +	ld [wc2c6], a +	call Function4e289 +	ret +.asm_4e281 +	xor a +	ld [wc2c6], a +	call Function4e289 +	ret + +Function4e289: ; 4e289 (13:6289) +	ld a, [CurPartySpecies] +	call IsAPokemon +	ret c +	call Function4e307 +	ld de, VTiles2 tile $00 +	predef Function5108b +	hlcoord 0, 0 +	ld d, $0 +	ld e, $2 +	predef LoadMonAnimation +	ld hl, wcf64 +	set 6, [hl] +	ret + +Function4e2ad: ; 4e2ad (13:62ad) +	ld a, [MonType] +	ld hl, .Jumptable +	rst JumpTable +	ret + +.Jumptable: ; 4e2b5 (13:62b5) +	dw Function4e2bf +	dw Function4e2cf +	dw Function4e2d1 +	dw Function4e2ed +	dw Function4e301 + + +Function4e2bf: ; 4e2bf (13:62bf) +	ld a, [CurPartyMon] +	ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) +	ld bc, PARTYMON_STRUCT_LENGTH +	call AddNTimes +	ld b, h +	ld c, l +	jr Function4e2f2 + +Function4e2cf: ; 4e2cf (13:62cf) +	xor a +	ret + +Function4e2d1: ; 4e2d1 (13:62d1) +	ld hl, sBoxMons +	ld bc, PARTYMON_STRUCT_LENGTH +	ld a, [CurPartyMon] +	call AddNTimes +	ld b, h +	ld c, l +	ld a, BANK(sBoxMons) +	call GetSRAMBank +	call Function4e2f2 +	push af +	call CloseSRAM +	pop af +	ret + +Function4e2ed: ; 4e2ed (13:62ed) +	ld bc, TempMonSpecies ; wd10e (aliases: TempMon) +	jr Function4e2f2 ; utterly pointless + +Function4e2f2: ; 4e2f2 (13:62f2) +	ld a, [CurPartySpecies] +	cp EGG +	jr z, .egg +	call CheckFaintedFrzSlp +	jr c, Function4e305 +.egg +	xor a +	scf +	ret + +Function4e301: ; 4e301 (13:6301) +	ld a, $1 +	and a +	ret +Function4e305: ; 4e305 (13:6305) +	xor a +	ret + +Function4e307: ; 4e307 (13:6307) +	nop +	push hl +	push de +	push bc +	push af +	call DelayFrame +	ld a, [rVBK] +	push af +	ld a, $1 +	ld [rVBK], a +	ld de, TextBoxSpaceGFX +	lb bc, BANK(TextBoxSpaceGFX), 1 +	ld hl, VTiles2 tile $7f +	call Get2bpp +	pop af +	ld [rVBK], a +	pop af +	pop bc +	pop de +	pop hl +	ret +; 4e32a (13:632a) + +Unknown_4e32a: ; 4e32a +; A blank tile? +	ds 16 +; 4e33a + +EggStatsScreen: ; 4e33a +	xor a +	ld [hBGMapMode], a +	ld hl, wcda1 +	call SetHPPal +	ld b, SCGB_03 +	call GetSGBLayout +	call Function4df8f +	ld de, EggString +	hlcoord 8, 1 +	call PlaceString +	ld de, IDNoString +	hlcoord 8, 3 +	call PlaceString +	ld de, OTString +	hlcoord 8, 5 +	call PlaceString +	ld de, FiveQMarkString +	hlcoord 11, 3 +	call PlaceString +	ld de, FiveQMarkString +	hlcoord 11, 5 +	call PlaceString +	ld a, [TempMonHappiness] ; egg status +	ld de, EggSoonString +	cp $6 +	jr c, .picked +	ld de, EggCloseString +	cp $b +	jr c, .picked +	ld de, EggMoreTimeString +	cp $29 +	jr c, .picked +	ld de, EggALotMoreTimeString +.picked +	hlcoord 1, 9 +	call PlaceString +	ld hl, wcf64 +	set 5, [hl] +	call SetPalettes ; pals +	call DelayFrame +	hlcoord 0, 0 +	call PrepMonFrontpic +	callba Function10402d +	call Function4e497 + +	ld a, [TempMonHappiness] +	cp 6 +	ret nc +	ld de, SFX_2_BOOPS +	call PlaySFX +	ret +; 0x4e3c0 + +EggString: ; 4e3c0 +	db "EGG@" + +FiveQMarkString: ; 4e3c4 +	db "?????@" + +EggSoonString: ; 0x4e3ca +	db   "It's making sounds" +	next "inside. It's going" +	next "to hatch soon!@" + +EggCloseString: ; 0x4e3fd +	db   "It moves around" +	next "inside sometimes." +	next "It must be close" +	next "to hatching.@" + +EggMoreTimeString: ; 0x4e43d +	db   "Wonder what's" +	next "inside? It needs" +	next "more time, though.@" + +EggALotMoreTimeString: ; 0x4e46e +	db   "This EGG needs a" +	next "lot more time to" +	next "hatch.@" +; 0x4e497 + + +Function4e497: ; 4e497 (13:6497) +	call Function4e2ad +	ret nc +	ld a, [TempMonHappiness] +	ld e, $7 +	cp $6 +	jr c, .asm_4e4ab +	ld e, $8 +	cp $b +	jr c, .asm_4e4ab +	ret +.asm_4e4ab +	push de +	ld a, $1 +	ld [wc2c6], a +	call Function4e307 +	ld de, VTiles2 tile $00 +	predef Function5108b +	pop de +	hlcoord 0, 0 +	ld d, $0 +	predef LoadMonAnimation +	ld hl, wcf64 +	set 6, [hl] +	ret + +Function4e4cd: ; 4e4cd (13:64cd) +	hlcoord 13, 5 +	ld a, $36 +	call .load_square +	hlcoord 15, 5 +	ld a, $36 +	call .load_square +	hlcoord 17, 5 +	ld a, $36 +	call .load_square +	ld a, c +	cp $2 +	ld a, $3a +	hlcoord 13, 5 +	jr c, .load_square +	hlcoord 15, 5 +	jr z, .load_square +	hlcoord 17, 5 +.load_square: ; 4e4f7 (13:64f7) +	push bc +	ld [hli], a +	inc a +	ld [hld], a +	ld bc, SCREEN_WIDTH +	add hl, bc +	inc a +	ld [hli], a +	inc a +	ld [hl], a +	pop bc +	ret + +Function4e505: ; 4e505 (13:6505) +	ld de, StringBuffer1 +	ld bc, PKMN_NAME_LENGTH +	jr .okay ; uuterly pointless +.okay +	ld a, [MonType] +	cp BOXMON +	jr nz, .partymon +	ld a, BANK(sBoxMonNicknames) +	call GetSRAMBank +	push de +	call CopyBytes +	pop de +	call CloseSRAM +	ret + +.partymon +	push de +	call CopyBytes +	pop de +	ret + +Function4e528: ; 4e528 (13:6528) +	ld a, [MonType] +	add a +	ld c, a +	ld b, 0 +	add hl, bc +	ld a, [hli] +	ld h, [hl] +	ld l, a +	ld a, [MonType] +	cp $3 +	ret z +	ld a, [CurPartyMon] +	jp SkipNames + + +CheckFaintedFrzSlp: ; 4e53f +	ld hl, MON_HP +	add hl, bc +	ld a, [hli] +	or [hl] +	jr z, .fainted_frz_slp +	ld hl, MON_STATUS +	add hl, bc +	ld a, [hl] +	and (1 << FRZ) | SLP +	jr nz, .fainted_frz_slp +	and a +	ret + +.fainted_frz_slp +	scf +	ret +; 4e554 @@ -20233,11 +20233,11 @@ CheckPartyFullAfterContest: ; 4d9e5  	xor a  	ld [CurPartyMon], a  	ld hl, wContestMon -	ld de, wd018 +	ld de, wd018_Mon  	ld bc, BOXMON_STRUCT_LENGTH  	call CopyBytes  	ld hl, PlayerName -	ld de, wd00d +	ld de, wd00d_MonOT  	ld bc, NAME_LENGTH  	call CopyBytes  	callab Function51322 @@ -20249,9 +20249,9 @@ CheckPartyFullAfterContest: ; 4d9e5  	jr c, .Box_SkipNickname  	ld a, BOXMON  	ld [MonType], a -	ld de, wd050 +	ld de, wd050_MonNick  	callab InitNickname -	ld hl, wd050 +	ld hl, wd050_MonNick  .Box_SkipNickname  	ld a, BANK(sBoxMonNicknames) @@ -20538,1157 +20538,7 @@ RetroactivelyIgnoreEggs: ; 4dc67  ; 4dc7b -Function4dc7b: ; 4dc7b (13:5c7b) -	ld a, [wLinkMode] -	cp LINK_MOBILE -	jr nz, StatsScreenInit - -	ld a, [wBattleMode] ; wd22d (aliases: EnemyMonEnd) -	and a -	jr z, StatsScreenInit -	jr Function4dc8f - -StatsScreenInit: ; 4dc8a -	ld hl, StatsScreenMain -	jr StatsScreenInit_gotaddress - -Function4dc8f: ; 4dc8f -	ld hl, StatsScreenBattle -	jr StatsScreenInit_gotaddress - -StatsScreenInit_gotaddress: ; 4dc94 -	ld a, [hMapAnims] -	push af -	xor a -	ld [hMapAnims], a ; disable overworld tile animations -	ld a, [wc2c6] ; whether sprite is to be mirrorred -	push af -	ld a, [wJumptableIndex] -	ld b, a -	ld a, [wcf64] -	ld c, a - -	push bc -	push hl -	call ClearBGPalettes -	call ClearTileMap -	call UpdateSprites -	callba Functionfb53e -	pop hl -	call _hl_ -	call ClearBGPalettes -	call ClearTileMap -	pop bc - -	; restore old values -	ld a, b -	ld [wJumptableIndex], a -	ld a, c -	ld [wcf64], a -	pop af -	ld [wc2c6], a -	pop af -	ld [hMapAnims], a -	ret -; 0x4dcd2 - -StatsScreenMain: ; 0x4dcd2 -	xor a -	ld [wJumptableIndex], a -	; stupid interns -	ld [wcf64], a -	ld a, [wcf64] -	and $fc -	or $1 -	ld [wcf64], a -.loop ; 4dce3 -	ld a, [wJumptableIndex] -	and $7f -	ld hl, StatsScreenPointerTable -	rst JumpTable -	call Function4dd3a ; check for keys? -	ld a, [wJumptableIndex] -	bit 7, a -	jr z, .loop -	ret -; 0x4dcf7 - -StatsScreenBattle: ; 4dcf7 -	xor a -	ld [wJumptableIndex], a -	; stupid interns -	ld [wcf64], a -	ld a, [wcf64] -	and $fc -	or $1 -	ld [wcf64], a -.loop -	callba Function100dd2 -	ld a, [wJumptableIndex] -	and $7f -	ld hl, StatsScreenPointerTable -	rst JumpTable -	call Function4dd3a -	callba Function100dfd -	jr c, .exit -	ld a, [wJumptableIndex] -	bit 7, a -	jr z, .loop - -.exit -	ret -; 4dd2a - -StatsScreenPointerTable: ; 4dd2a -	dw MonStatsInit ; regular pokémon -	dw EggStatsInit ; egg -	dw StatsScreenWaitCry -	dw Function4ddac -	dw Function4ddc6 -	dw StatsScreenWaitCry -	dw Function4ddd6 -	dw Function4dd6c -; 4dd3a - - -Function4dd3a: ; 4dd3a (13:5d3a) -	ld hl, wcf64 -	bit 6, [hl] -	jr nz, .asm_4dd49 -	bit 5, [hl] -	jr nz, .asm_4dd56 -	call DelayFrame -	ret -.asm_4dd49 -	callba Functiond00b4 -	jr nc, .asm_4dd56 -	ld hl, wcf64 -	res 6, [hl] -.asm_4dd56 -	ld hl, wcf64 -	res 5, [hl] -	callba Function10402d -	ret - -Function4dd62: ; 4dd62 (13:5d62) -	ld a, [wJumptableIndex] -	and $80 -	or h -	ld [wJumptableIndex], a -	ret - -Function4dd6c: ; 4dd6c (13:5d6c) -	ld hl, wJumptableIndex -	set 7, [hl] -	ret - -MonStatsInit: ; 4dd72 (13:5d72) -	ld hl, wcf64 -	res 6, [hl] -	call ClearBGPalettes -	call ClearTileMap -	callba Function10402d -	call Function4ddf2 -	ld a, [CurPartySpecies] -	cp EGG -	jr z, .asm_4dd9b -	call Function4deea -	ld hl, wcf64 -	set 4, [hl] -	ld h, $4 -	call Function4dd62 -	ret -.asm_4dd9b -	ld h, $1 -	call Function4dd62 -	ret - -EggStatsInit: ; 4dda1 -	call EggStatsScreen -	ld a, [wJumptableIndex] -	inc a -	ld [wJumptableIndex], a -	ret -; 0x4ddac - - -Function4ddac: ; 4ddac (13:5dac) -	call Function4de2c -	jr nc, .asm_4ddb7 -	ld h, $0 -	call Function4dd62 -	ret -.asm_4ddb7 -	bit 0, a -	jr nz, .asm_4ddc0 -	and $c3 -	jp Function4de54 -.asm_4ddc0 -	ld h, $7 -	call Function4dd62 -	ret - -Function4ddc6: ; 4ddc6 (13:5dc6) -	call Function4dfb6 -	ld hl, wcf64 -	res 4, [hl] -	ld a, [wJumptableIndex] -	inc a -	ld [wJumptableIndex], a -	ret - -Function4ddd6: ; 4ddd6 (13:5dd6) -	call Function4de2c -	jr nc, .asm_4dde1 -	ld h, $0 -	call Function4dd62 -	ret - -.asm_4dde1 -	and $f3 -	jp Function4de54 - -StatsScreenWaitCry: ; 4dde6 (13:5de6) -	call IsSFXPlaying -	ret nc -	ld a, [wJumptableIndex] -	inc a -	ld [wJumptableIndex], a -	ret - -Function4ddf2: ; 4ddf2 (13:5df2) -	ld a, [MonType] -	cp BREEDMON -	jr nz, .asm_4de10 -	ld a, [wd018] -	ld [CurSpecies], a -	call GetBaseData -	ld hl, wd018 -	ld de, TempMon -	ld bc, PARTYMON_STRUCT_LENGTH -	call CopyBytes -	jr .asm_4de2a -.asm_4de10 -	callba CopyPkmnToTempMon -	ld a, [CurPartySpecies] -	cp EGG -	jr z, .asm_4de2a -	ld a, [MonType] -	cp BOXMON -	jr c, .asm_4de2a -	callba Function50890 -.asm_4de2a -	and a -	ret - -Function4de2c: ; 4de2c (13:5e2c) -	call GetJoypad -	ld a, [MonType] -	cp BREEDMON -	jr nz, .notbreedmon -	push hl -	push de -	push bc -	callba Functione2f95 -	pop bc -	pop de -	pop hl -	ld a, [wcf73] -	and $c0 -	jr nz, .set_carry -	ld a, [wcf73] -	jr .clear_flags - -.notbreedmon -	ld a, [hJoyPressed] -.clear_flags -	and a -	ret - -.set_carry -	scf -	ret - -Function4de54: ; 4de54 (13:5e54) -	push af -	ld a, [wcf64] -	and $3 -	ld c, a -	pop af -	bit 1, a -	jp nz, Function4dee4 -	bit 5, a -	jr nz, .asm_4dec7 -	bit 4, a -	jr nz, .asm_4debd -	bit 0, a -	jr nz, .asm_4deb8 -	bit 6, a -	jr nz, .asm_4dea0 -	bit 7, a -	jr nz, .asm_4de77 -	jr .asm_4dece -.asm_4de77 -	ld a, [MonType] -	cp BOXMON -	jr nc, .asm_4dece -	and a -	ld a, [PartyCount] -	jr z, .asm_4de87 -	ld a, [OTPartyCount] -.asm_4de87 -	ld b, a -	ld a, [CurPartyMon] -	inc a -	cp b -	jr z, .asm_4dece -	ld [CurPartyMon], a -	ld b, a -	ld a, [MonType] -	and a -	jr nz, .asm_4dede -	ld a, b -	inc a -	ld [wd0d8], a -	jr .asm_4dede -.asm_4dea0 -	ld a, [CurPartyMon] -	and a -	jr z, .asm_4dece -	dec a -	ld [CurPartyMon], a -	ld b, a -	ld a, [MonType] -	and a -	jr nz, .asm_4dede -	ld a, b -	inc a -	ld [wd0d8], a -	jr .asm_4dede -.asm_4deb8 -	ld a, c -	cp $3 -	jr z, Function4dee4 -.asm_4debd -	inc c -	ld a, $3 -	cp c -	jr nc, .asm_4decf -	ld c, $1 -	jr .asm_4decf -.asm_4dec7 -	dec c -	jr nz, .asm_4decf -	ld c, $3 -	jr .asm_4decf -.asm_4dece -	ret -.asm_4decf -	ld a, [wcf64] -	and $fc -	or c -	ld [wcf64], a -	ld h, $4 -	call Function4dd62 -	ret -.asm_4dede -	ld h, $0 -	call Function4dd62 -	ret - -Function4dee4: ; 4dee4 (13:5ee4) -	ld h, $7 -	call Function4dd62 -	ret - -Function4deea: ; 4deea (13:5eea) -	call Function4df45 -	xor a -	ld [hBGMapMode], a -	ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo) -	ld [wd265], a -	ld [CurSpecies], a -	hlcoord 8, 0 -	ld [hl], "№" -	inc hl -	ld [hl], "." -	inc hl -	hlcoord 10, 0 -	lb bc, PRINTNUM_LEADINGZEROS | 1, 3 -	ld de, wd265 -	call PrintNum -	hlcoord 14, 0 -	call PrintLevel -	ld hl, Unknown_4df77 -	call Function4e528 -	call Function4e505 -	hlcoord 8, 2 -	call PlaceString -	hlcoord 18, 0 -	call Function4df66 -	hlcoord 9, 4 -	ld a, "/" -	ld [hli], a -	ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo) -	ld [wd265], a -	call GetPokemonName -	call PlaceString -	call Function4df8f -	call Function4df9b -	call Function4dfa6 -	ret - -Function4df45: ; 4df45 (13:5f45) -	ld hl, TempMonHP -	ld a, [hli] -	ld b, a -	ld c, [hl] -	ld hl, TempMonMaxHP -	ld a, [hli] -	ld d, a -	ld e, [hl] -	callba DrawPartyMenuHPBar -	ld hl, wcda1 -	call SetHPPal -	ld b, SCGB_03 -	call GetSGBLayout -	call DelayFrame -	ret - -Function4df66: ; 4df66 (13:5f66) -	push hl -	callba GetGender -	pop hl -	ret c -	ld a, "♂" -	jr nz, .got_gender -	ld a, "♀" -.got_gender -	ld [hl], a -	ret -; 4df77 (13:5f77) - -Unknown_4df77: ; 4df77 -	dw PartyMonNicknames -	dw OTPartyMonNicknames -	dw sBoxMonNicknames -	dw wd002 -; 4df7f - -Function4df7f: ; 4df7f -	hlcoord 7, 0 -	ld bc, SCREEN_WIDTH -	ld d, SCREEN_HEIGHT -.loop -	ld a, $31 -	ld [hl], a -	add hl, bc -	dec d -	jr nz, .loop -	ret -; 4df8f - -Function4df8f: ; 4df8f (13:5f8f) -	hlcoord 0, 7 -	ld b, SCREEN_WIDTH -	ld a, "_" -.loop -	ld [hli], a -	dec b -	jr nz, .loop -	ret - -Function4df9b: ; 4df9b (13:5f9b) -	hlcoord 12, 6 -	ld [hl], "◀" -	hlcoord 19, 6 -	ld [hl], "▶" -	ret - -Function4dfa6: ; 4dfa6 (13:5fa6) -	ld bc, TempMonDVs -	callba CheckShininess -	ret nc -	hlcoord 19, 0 -	ld [hl], "<SHINY>" -	ret - -Function4dfb6: ; 4dfb6 (13:5fb6) -	ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo) -	ld [wd265], a -	ld [CurSpecies], a -	xor a -	ld [hBGMapMode], a -	call Function4dfda -	call Function4e002 -	call Function4dfed -	ld hl, wcf64 -	bit 4, [hl] -	jr nz, .asm_4dfd6 -	call SetPalettes -	ret - -.asm_4dfd6 -	call Function4e226 -	ret - -Function4dfda: ; 4dfda (13:5fda) -	ld a, [wcf64] -	and $3 -	ld c, a -	call Function4e4cd -	hlcoord 0, 8 -	lb bc, 10, 20 -	call ClearBox -	ret - -Function4dfed: ; 4dfed (13:5fed) -	ld a, [wcf64] -	and $3 -	ld c, a -	callba Function8c8a -	call DelayFrame -	ld hl, wcf64 -	set 5, [hl] -	ret - -Function4e002: ; 4e002 (13:6002) -	ld a, [wcf64] -	and $3 -	dec a -	ld hl, Jumptable_4e00d -	rst JumpTable -	ret - -Jumptable_4e00d: ; 4e00d (13:600d) -	dw Function4e013 -	dw Function4e147 -	dw Function4e1ae - - -Function4e013: ; 4e013 (13:6013) -	hlcoord 0, 9 -	ld b, $0 -	predef DrawPlayerHP -	hlcoord 8, 9 -	ld [hl], $41 -	ld de, String_4e119 -	hlcoord 0, 12 -	call PlaceString -	ld a, [TempMonPokerusStatus] -	ld b, a -	and $f -	jr nz, .asm_4e055 -	ld a, b -	and $f0 -	jr z, .asm_4e03d -	hlcoord 8, 8 -	ld [hl], $e8 -.asm_4e03d -	ld a, [MonType] -	cp $2 -	jr z, .asm_4e060 -	hlcoord 6, 13 -	push hl -	ld de, TempMonStatus -	predef PlaceStatusString -	pop hl -	jr nz, .asm_4e066 -	jr .asm_4e060 -.asm_4e055 -	ld de, String_4e142 -	hlcoord 1, 13 -	call PlaceString -	jr .asm_4e066 -.asm_4e060 -	ld de, String_4e127 -	call PlaceString -.asm_4e066 -	hlcoord 1, 15 -	predef PrintMonTypes -	hlcoord 9, 8 -	ld de, $14 -	ld b, $a -	ld a, $31 -.asm_4e078 -	ld [hl], a -	add hl, de -	dec b -	jr nz, .asm_4e078 -	ld de, String_4e12b -	hlcoord 10, 9 -	call PlaceString -	hlcoord 17, 14 -	call Function4e0d3 -	hlcoord 13, 10 -	lb bc, 3, 7 -	ld de, TempMonExp -	call PrintNum -	call Function4e0e7 -	hlcoord 13, 13 -	lb bc, 3, 7 -	ld de, Buffer1 ; wd1ea (aliases: MagikarpLength) -	call PrintNum -	ld de, String_4e136 -	hlcoord 10, 12 -	call PlaceString -	ld de, String_4e13f -	hlcoord 14, 14 -	call PlaceString -	hlcoord 11, 16 -	ld a, [TempMonLevel] -	ld b, a -	ld de, TempMonExp + 2 -	predef FillInExpBar -	hlcoord 10, 16 -	ld [hl], $40 -	hlcoord 19, 16 -	ld [hl], $41 -	ret - -Function4e0d3: ; 4e0d3 (13:60d3) -	ld a, [TempMonLevel] -	push af -	cp MAX_LEVEL -	jr z, .asm_4e0df -	inc a -	ld [TempMonLevel], a -.asm_4e0df -	call PrintLevel -	pop af -	ld [TempMonLevel], a -	ret - -Function4e0e7: ; 4e0e7 (13:60e7) -	ld a, [TempMonLevel] -	cp MAX_LEVEL -	jr z, .asm_4e111 -	inc a -	ld d, a -	callba CalcExpAtLevel -rept 2 -	ld hl, TempMonExp + 2 -endr -	ld a, [$ffb6] -	sub [hl] -	dec hl -	ld [wd1ec], a -	ld a, [$ffb5] -	sbc [hl] -	dec hl -	ld [Buffer2], a ; wd1eb (aliases: MovementType) -	ld a, [hQuotient] -	sbc [hl] -	ld [Buffer1], a ; wd1ea (aliases: MagikarpLength) -	ret -.asm_4e111 -	ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength) -	xor a -rept 2 -	ld [hli], a -endr -	ld [hl], a -	ret -; 4e119 (13:6119) - -String_4e119: ; 4e119 -	db   "STATUS/" -	next "TYPE/@" -; 4e127 - -String_4e127: ; 4e127 -	db "OK @" -; 4e12b - -String_4e12b: ; 4e12b -	db "EXP POINTS@" -; 4e136 - -String_4e136: ; 4e136 -	db "LEVEL UP@" -; 4e13f - -String_4e13f: ; 4e13f -	db "TO@" -; 4e142 - -String_4e142: ; 4e142 -	db "#RUS@" -; 4e147 - -Function4e147: ; 4e147 (13:6147) -	ld de, String_4e1a0 -	hlcoord 0, 8 -	call PlaceString -	call Function4e189 -	hlcoord 8, 8 -	call PlaceString -	ld de, String_4e1a9 -	hlcoord 0, 10 -	call PlaceString -	ld hl, TempMonMoves -	ld de, wListMoves_MoveIndicesBuffer -	ld bc, NUM_MOVES -	call CopyBytes -	hlcoord 8, 10 -	ld a, SCREEN_WIDTH * 2 -	ld [Buffer1], a -	predef ListMoves -	hlcoord 12, 11 -	ld a, $28 -	ld [Buffer1], a -	predef Function50c50 -	ret - -Function4e189: ; 4e189 (13:6189) -	ld de, String_4e1a5 -	ld a, [TempMonItem] -	and a -	ret z -	ld b, a -	callba Function28771 -	ld a, b -	ld [wd265], a -	call GetItemName -	ret -; 4e1a0 (13:61a0) - -String_4e1a0: ; 4e1a0 -	db "ITEM@" -; 4e1a5 - -String_4e1a5: ; 4e1a5 -	db "---@" -; 4e1a9 - -String_4e1a9: ; 4e1a9 -	db "MOVE@" -; 4e1ae - -Function4e1ae: ; 4e1ae (13:61ae) -	call Function4e1cc -	hlcoord 10, 8 -	ld de, $14 -	ld b, $a -	ld a, $31 -.asm_4e1bb -	ld [hl], a -	add hl, de -	dec b -	jr nz, .asm_4e1bb -	hlcoord 11, 8 -	ld bc, $6 -	predef PrintTempMonStats -	ret - -Function4e1cc: ; 4e1cc (13:61cc) -	ld de, IDNoString -	hlcoord 0, 9 -	call PlaceString -	ld de, OTString -	hlcoord 0, 12 -	call PlaceString -	hlcoord 2, 10 -	lb bc, PRINTNUM_LEADINGZEROS | 2, 5 -	ld de, TempMonID -	call PrintNum -	ld hl, Unknown_4e216 -	call Function4e528 -	call Function4e505 -	callba CheckNickErrors -	hlcoord 2, 13 -	call PlaceString -	ld a, [TempMonCaughtGender] -	and a -	jr z, .asm_4e215 -	cp $7f -	jr z, .asm_4e215 -	and $80 -	ld a, "♂" -	jr z, .asm_4e211 -	ld a, "♀" -.asm_4e211 -	hlcoord 9, 13 -	ld [hl], a -.asm_4e215 -	ret -; 4e216 (13:6216) - -Unknown_4e216: ; 4e216 -	dw PartyMonOT -	dw OTPartyMonOT -	dw sBoxMonOT -	dw wd00d -; 4e21e - -IDNoString: ; 4e21e -	db $73, "№.@" - -OTString: ; 4e222 -	db "OT/@" -; 4e226 - - -Function4e226: ; 4e226 (13:6226) -	ld hl, TempMonDVs -	predef GetUnownLetter -	call Function4e2ad -	jr c, .asm_4e238 -	and a -	jr z, .asm_4e23f -	jr .asm_4e246 -.asm_4e238 -	call Function4e271 -	call SetPalettes -	ret -.asm_4e23f -	call Function4e253 -	call SetPalettes -	ret -.asm_4e246 -	call SetPalettes -	call Function4e253 -	ld a, [CurPartySpecies] -	call PlayCry2 -	ret - -Function4e253: ; 4e253 (13:6253) -	ld hl, wcf64 -	set 5, [hl] -	ld a, [CurPartySpecies] -	cp UNOWN -	jr z, .asm_4e266 -	hlcoord 0, 0 -	call PrepMonFrontpic -	ret -.asm_4e266 -	xor a -	ld [wc2c6], a -	hlcoord 0, 0 -	call _PrepMonFrontpic -	ret - -Function4e271: ; 4e271 (13:6271) -	ld a, [CurPartySpecies] -	cp UNOWN -	jr z, .asm_4e281 -	ld a, $1 -	ld [wc2c6], a -	call Function4e289 -	ret -.asm_4e281 -	xor a -	ld [wc2c6], a -	call Function4e289 -	ret - -Function4e289: ; 4e289 (13:6289) -	ld a, [CurPartySpecies] -	call IsAPokemon -	ret c -	call Function4e307 -	ld de, VTiles2 tile $00 -	predef Function5108b -	hlcoord 0, 0 -	ld d, $0 -	ld e, $2 -	predef LoadMonAnimation -	ld hl, wcf64 -	set 6, [hl] -	ret - -Function4e2ad: ; 4e2ad (13:62ad) -	ld a, [MonType] -	ld hl, Jumptable_4e2b5 -	rst JumpTable -	ret - -Jumptable_4e2b5: ; 4e2b5 (13:62b5) -	dw Function4e2bf -	dw Function4e2cf -	dw Function4e2d1 -	dw Function4e2ed -	dw Function4e301 - - -Function4e2bf: ; 4e2bf (13:62bf) -	ld a, [CurPartyMon] -	ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) -	ld bc, PARTYMON_STRUCT_LENGTH -	call AddNTimes -	ld b, h -	ld c, l -	jr Function4e2f2 - -Function4e2cf: ; 4e2cf (13:62cf) -	xor a -	ret - -Function4e2d1: ; 4e2d1 (13:62d1) -	ld hl, sBoxMons -	ld bc, $30 -	ld a, [CurPartyMon] -	call AddNTimes -	ld b, h -	ld c, l -	ld a, $1 -	call GetSRAMBank -	call Function4e2f2 -	push af -	call CloseSRAM -	pop af -	ret - -Function4e2ed: ; 4e2ed (13:62ed) -	ld bc, TempMonSpecies ; wd10e (aliases: TempMon) -	jr Function4e2f2 - -Function4e2f2: ; 4e2f2 (13:62f2) -	ld a, [CurPartySpecies] -	cp EGG -	jr z, .asm_4e2fe -	call CheckFaintedFrzSlp -	jr c, Function4e305 -.asm_4e2fe -	xor a -	scf -	ret - -Function4e301: ; 4e301 (13:6301) -	ld a, $1 -	and a -	ret -Function4e305: ; 4e305 (13:6305) -	xor a -	ret - -Function4e307: ; 4e307 (13:6307) -	nop -	push hl -	push de -	push bc -	push af -	call DelayFrame -	ld a, [rVBK] -	push af -	ld a, $1 -	ld [rVBK], a -	ld de, TextBoxSpaceGFX -	lb bc, BANK(TextBoxSpaceGFX), 1 -	ld hl, VTiles2 tile $7f -	call Get2bpp -	pop af -	ld [rVBK], a -	pop af -	pop bc -	pop de -	pop hl -	ret -; 4e32a (13:632a) - -Unknown_4e32a: ; 4e32a -; A blank tile? -	ds 16 -; 4e33a - -EggStatsScreen: ; 4e33a -	xor a -	ld [hBGMapMode], a -	ld hl, wcda1 -	call SetHPPal -	ld b, SCGB_03 -	call GetSGBLayout -	call Function4df8f -	ld de, EggString -	hlcoord 8, 1 -	call PlaceString -	ld de, IDNoString -	hlcoord 8, 3 -	call PlaceString -	ld de, OTString -	hlcoord 8, 5 -	call PlaceString -	ld de, FiveQMarkString -	hlcoord 11, 3 -	call PlaceString -	ld de, FiveQMarkString -	hlcoord 11, 5 -	call PlaceString -	ld a, [TempMonHappiness] ; egg status -	ld de, EggSoonString -	cp $6 -	jr c, .picked -	ld de, EggCloseString -	cp $b -	jr c, .picked -	ld de, EggMoreTimeString -	cp $29 -	jr c, .picked -	ld de, EggALotMoreTimeString -.picked -	hlcoord 1, 9 -	call PlaceString -	ld hl, wcf64 -	set 5, [hl] -	call SetPalettes ; pals -	call DelayFrame -	hlcoord 0, 0 -	call PrepMonFrontpic -	callba Function10402d -	call Function4e497 - -	ld a, [TempMonHappiness] -	cp 6 -	ret nc -	ld de, SFX_2_BOOPS -	call PlaySFX -	ret -; 0x4e3c0 - -EggString: ; 4e3c0 -	db "EGG@" - -FiveQMarkString: ; 4e3c4 -	db "?????@" - -EggSoonString: ; 0x4e3ca -	db   "It's making sounds" -	next "inside. It's going" -	next "to hatch soon!@" - -EggCloseString: ; 0x4e3fd -	db   "It moves around" -	next "inside sometimes." -	next "It must be close" -	next "to hatching.@" - -EggMoreTimeString: ; 0x4e43d -	db   "Wonder what's" -	next "inside? It needs" -	next "more time, though.@" - -EggALotMoreTimeString: ; 0x4e46e -	db   "This EGG needs a" -	next "lot more time to" -	next "hatch.@" -; 0x4e497 - - -Function4e497: ; 4e497 (13:6497) -	call Function4e2ad -	ret nc -	ld a, [TempMonHappiness] -	ld e, $7 -	cp $6 -	jr c, .asm_4e4ab -	ld e, $8 -	cp $b -	jr c, .asm_4e4ab -	ret -.asm_4e4ab -	push de -	ld a, $1 -	ld [wc2c6], a -	call Function4e307 -	ld de, VTiles2 tile $00 -	predef Function5108b -	pop de -	hlcoord 0, 0 -	ld d, $0 -	predef LoadMonAnimation -	ld hl, wcf64 -	set 6, [hl] -	ret - -Function4e4cd: ; 4e4cd (13:64cd) -	hlcoord 13, 5 -	ld a, $36 -	call Function4e4f7 -	hlcoord 15, 5 -	ld a, $36 -	call Function4e4f7 -	hlcoord 17, 5 -	ld a, $36 -	call Function4e4f7 -	ld a, c -	cp $2 -	ld a, $3a -	hlcoord 13, 5 -	jr c, Function4e4f7 -	hlcoord 15, 5 -	jr z, Function4e4f7 -	hlcoord 17, 5 - -Function4e4f7: ; 4e4f7 (13:64f7) -	push bc -	ld [hli], a -	inc a -	ld [hld], a -	ld bc, $14 -	add hl, bc -	inc a -	ld [hli], a -	inc a -	ld [hl], a -	pop bc -	ret - -Function4e505: ; 4e505 (13:6505) -	ld de, StringBuffer1 -	ld bc, $b -	jr .asm_4e50d -.asm_4e50d -	ld a, [MonType] -	cp BOXMON -	jr nz, .asm_4e522 -	ld a, BANK(sBoxMonNicknames) -	call GetSRAMBank -	push de -	call CopyBytes -	pop de -	call CloseSRAM -	ret -.asm_4e522 -	push de -	call CopyBytes -	pop de -	ret - -Function4e528: ; 4e528 (13:6528) -	ld a, [MonType] -	add a -	ld c, a -	ld b, 0 -	add hl, bc -	ld a, [hli] -	ld h, [hl] -	ld l, a -	ld a, [MonType] -	cp $3 -	ret z -	ld a, [CurPartyMon] -	jp SkipNames - - -CheckFaintedFrzSlp: ; 4e53f -	ld hl, MON_HP -	add hl, bc -	ld a, [hli] -	or [hl] -	jr z, .fainted_frz_slp -	ld hl, MON_STATUS -	add hl, bc -	ld a, [hl] -	and (1 << FRZ) | SLP -	jr nz, .fainted_frz_slp -	and a -	ret - -.fainted_frz_slp -	scf -	ret -; 4e554 - +INCLUDE "engine/stats_screen.asm"  CatchTutorial:: ; 4e554  	ld a, [BattleType] @@ -22010,7 +20860,7 @@ CopyPkmnToTempMon: ; 5084a  Function5088b: ; 5088b -	ld bc, wd018 +	ld bc, wd018_Mon  	jr Function50893  ; 50890 @@ -22976,7 +21826,7 @@ _SwitchPartyMons:  	ld [Buffer2], a ; wd1eb (aliases: MovementType)  	cp b  	jr z, .skip -	call .SwapPartymonViaSRAM +	call .SwapMonAndMail  	ld a, [wd1ec]  	call .ClearSprite  	ld a, [Buffer2] ; wd1eb (aliases: MovementType) @@ -23007,7 +21857,7 @@ _SwitchPartyMons:  	call WaitPlaySFX  	ret -.SwapPartymonViaSRAM: ; 50f62 (14:4f62) +.SwapMonAndMail: ; 50f62 (14:4f62)  	push hl  	push de  	push bc @@ -23261,7 +22111,7 @@ Function51103: ; 51103  	ld b, a  	call Get2bpp  	pop hl -	ld de, 7 * 7 * $10 +	ld de, 7 * 7 tiles  	add hl, de  	push hl  	ld a, $1 @@ -23269,17 +22119,17 @@ Function51103: ; 51103  	call GetFarWRAMByte  	pop hl  	and $f -	ld de, w6_d000 + $800 + 5 * 5 * $10 +	ld de, w6_d800 + 5 * 5 tiles  	ld c, 5 * 5  	cp 5 -	jr z, .asm_5113b -	ld de, w6_d000 + $800 + 6 * 6 * $10 +	jr z, .got_dims +	ld de, w6_d800 + 6 * 6 tiles  	ld c, 6 * 6  	cp 6 -	jr z, .asm_5113b -	ld de, w6_d000 + $800 + 7 * 7 * $10 +	jr z, .got_dims +	ld de, w6_d800 + 7 * 7 tiles  	ld c, 7 * 7 -.asm_5113b +.got_dims  	push hl  	push bc @@ -23376,10 +22226,10 @@ FixPicBank: ; 511c5  ; This is a thing for some reason.  	push hl  	push bc -	sub PICS_1 - $36 +	sub PICS_1 - PICS_FIX  	ld c, a  	ld b, 0 -	ld hl, Unknown_511d4 +	ld hl, .PicsBanks  	add hl, bc  	ld a, [hl]  	pop bc @@ -23387,7 +22237,7 @@ FixPicBank: ; 511c5  	ret  ; 511d4 -Unknown_511d4: ; 511d4 +.PicsBanks: ; 511d4  	db PICS_1  	db PICS_2  	db PICS_3 @@ -23513,28 +22363,28 @@ Function5127c: ; 5127c  	jr z, .asm_512a8  	ld a, c  	cp 7 * 7 -	ld de, 7 * 7 * $10 -	jr z, .asm_51296 +	ld de, 7 * 7 tiles +	jr z, .got_dims  	cp 6 * 6 -	ld de, 6 * 6 * $10 -	jr z, .asm_51296 -	ld de, 5 * 5 * $10 +	ld de, 6 * 6 tiles +	jr z, .got_dims +	ld de, 5 * 5 tiles -.asm_51296 +.got_dims  	ld a, [hl]  	ld b, $0  	ld c, $8 -.asm_5129b +.loop  	rra  	rl b  	dec c -	jr nz, .asm_5129b +	jr nz, .loop  	ld a, b  	ld [hli], a  	dec de  	ld a, e  	or d -	jr nz, .asm_51296 +	jr nz, .got_dims  .asm_512a8  	pop bc @@ -23648,13 +22498,13 @@ Function51322: ; 51322  	ld [wd265], a  	ld hl, sBoxMons  	ld bc, BOXMON_STRUCT_LENGTH -	ld de, wd018 +	ld de, wd018_Mon  	call Function513e0 -	ld hl, wd01a +	ld hl, wd018_MonMoves  	ld de, TempMonMoves  	ld bc, NUM_MOVES  	call CopyBytes -	ld hl, wd02f +	ld hl, wd018_MonPP  	ld de, TempMonPP  	ld bc, NUM_MOVES  	call CopyBytes @@ -23686,7 +22536,7 @@ Function5138b: ; 5138b  	ld [wd265], a  	ld hl, PartyMons  	ld bc, PARTYMON_STRUCT_LENGTH -	ld de, wd018 +	ld de, wd018_Mon  	call Function513e0  	ret  ; 513cb diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm index 3fc378924..4e4efec93 100644 --- a/misc/mobile_22.asm +++ b/misc/mobile_22.asm @@ -665,9 +665,10 @@ Function894dc: ; 894dc  	push af  	ld a, 5  	ld [rSVBK], a +  	ld c, d  	ld b, 0 -	ld hl, Unknown_89509 +	ld hl, .PalettePointers  rept 2  	add hl, bc  endr @@ -675,25 +676,26 @@ endr  	ld h, [hl]  	ld l, a  	ld de, wMapPals -	ld bc, 24 +	ld bc, 3 palettes  	call CopyBytes -	ld hl, Palette_89557 -	ld de, wd018 -	ld bc, 24 +	ld hl, .Pals345 +	ld de, wMapPals + 3 palettes +	ld bc, 3 palettes  	call CopyBytes +  	pop af  	ld [rSVBK], a  	pop bc  	ret  ; 89509 -Unknown_89509: ; 89509 -	dw Palette_8950f -	dw Palette_89527 -	dw Palette_8953f +.PalettePointers: ; 89509 +	dw .Pals012a +	dw .Pals012b +	dw .Pals012c  ; 8950f -Palette_8950f: ; 8950f +.Pals012a: ; 8950f  	RGB 31, 31, 31  	RGB 10, 17, 13  	RGB 10, 08, 22 @@ -709,7 +711,7 @@ Palette_8950f: ; 8950f  	RGB 10, 17, 13  	RGB 00, 00, 00 -Palette_89527: ; 89527 +.Pals012b: ; 89527  	RGB 31, 31, 31  	RGB 30, 22, 11  	RGB 31, 08, 15 @@ -725,7 +727,7 @@ Palette_89527: ; 89527  	RGB 30, 22, 11  	RGB 00, 00, 00 -Palette_8953f: ; 8953f +.Pals012c: ; 8953f  	RGB 31, 31, 31  	RGB 15, 20, 26  	RGB 25, 07, 20 @@ -741,7 +743,7 @@ Palette_8953f: ; 8953f  	RGB 15, 20, 26  	RGB 00, 00, 00 -Palette_89557: ; 89557 +.Pals345: ; 89557  	RGB 31, 31, 31  	RGB 31, 31, 31  	RGB 31, 13, 00 @@ -1536,6 +1536,8 @@ wd016:: ds 1  wMartItem8BCD::  wd017:: ds 1 +	ds wd00d - @ +wd00d_MonOT:: ds NAME_LENGTH  wd018_Mon:: party_struct wd018_Mon  	ds wd018_Mon - @ @@ -1620,6 +1622,7 @@ MenuItemsListEnd::  wTempTrainerHeaderEnd::  wd04e:: ds 2  wOaksPkmnTalkPkmnNameBuffer:: +wd050_MonNick::  wd050:: ds PKMN_NAME_LENGTH +- 1  wd05a:: ds 12  wd066:: ds 10 @@ -2998,7 +3001,8 @@ SECTION "WRAM 6", WRAMX, BANK [6]  w6_d000:: ds $400  w6_d400:: ds $200 -w6_d600:: ds $600 +w6_d600:: ds $200 +w6_d800::  INCLUDE "sram.asm" | 
