shithub: pokecrystal

ref: 84959e35b53c12159084b3ab9ae077b71f9972ba
dir: /mobile/mobile_5e.asm/

View raw version
MobileCardGFX::
INCBIN "gfx/mobile/card.2bpp"

ChrisSilhouetteGFX::
INCBIN "gfx/mobile/chris_silhouette.2bpp"

KrisSilhouetteGFX::
INCBIN "gfx/mobile/kris_silhouette.2bpp"

MobileCard2GFX::
INCBIN "gfx/mobile/card_2.2bpp"

CardLargeSpriteGFX::
INCBIN "gfx/mobile/card_large_sprite.2bpp"

CardFolderGFX::
INCBIN "gfx/mobile/card_folder.2bpp"

CardSpriteGFX::
INCBIN "gfx/mobile/card_sprite.2bpp"

Function17a68f::
	call Function17a6a8
	call Function17a751
	ld hl, $d088
	bit 5, [hl]
	jr z, .asm_17a6a6
	ld de, wStringBuffer1 ; $d073
	push de
	call Function17a721
	pop de
	xor a
	ret

.asm_17a6a6
	scf
	ret

Function17a6a8:
	push de
	push bc
	ld hl, wStringBuffer2 ; $d086
	ld bc, $a
	xor a
	call ByteFill
	ld hl, wBuffer1
	ld bc, $10
	ld a, $ff
	call ByteFill
	pop bc
	ld a, c
	and a
	jr z, .asm_17a6c9
	ld hl, $d088
	set 4, [hl]
.asm_17a6c9
	pop de
	call Function17a6f5
	call Function17aba0
	farcall Function106464
	call Function17ac0c
	farcall HDMATransferAttrmapAndTilemapToWRAMBank3
	call Function17abcf
	farcall LoadOW_BGPal7
	farcall Function49420
	call SetPalettes
	call DelayFrame
	ret

Function17a6f5:
	ld hl, wBuffer1
	ld c, $0
	ld b, $8
.asm_17a6fc
	ld a, [de]
	call Function17a713
	jr c, .asm_17a70e
	ld a, [de]
	swap a
	call Function17a713
	jr c, .asm_17a70e
	inc de
	dec b
	jr nz, .asm_17a6fc
.asm_17a70e
	ld a, c
	ld [$d08c], a
	ret

Function17a713:
	and $f
	cp $a
	jr nc, .asm_17a71d
	ld [hli], a
	inc c
	and a
	ret

.asm_17a71d
	ld [hl], $ff
	scf
	ret

Function17a721:
	push de
	ld h, d
	ld l, e
	ld bc, $8
	ld a, $ff
	call ByteFill
	pop de
	ld hl, wBuffer1
	ld b, $8
.asm_17a732
	ld c, $0
	ld a, [hli]
	cp $a
	jr nc, .asm_17a748
	ld c, a
	ld a, [hli]
	cp $a
	jr nc, .asm_17a74c
	swap a
	or c
	ld [de], a
	inc de
	dec b
	jr nz, .asm_17a732
	ret

.asm_17a748
	ld a, $ff
	ld [de], a
	ret

.asm_17a74c
	ld a, $f0
	or c
	ld [de], a
	ret

Function17a751:
	xor a
	ld [$d087], a
.asm_17a755
	call Function17a781
	call Function17a7ae
	call Function17a97b
	call Function17a770
	call Function17a78f
	ld hl, $d08f
	inc [hl]
	ld a, [$d087]
	bit 7, a
	jr z, .asm_17a755
	ret

Function17a770:
	ldh a, [hOAMUpdate]
	push af
	ld a, $1
	ldh [hOAMUpdate], a
	call HideSprites
	call Function17a9cb
	pop af
	ldh [hOAMUpdate], a
	ret

Function17a781:
	ldh a, [hInMenu]
	push af
	ld a, $1
	ldh [hInMenu], a
	call JoyTextDelay
	pop af
	ldh [hInMenu], a
	ret

Function17a78f:
	ld hl, $d088
	bit 7, [hl]
	res 7, [hl]
	jr nz, .asm_17a79f
	farcall HDMATransferTilemapToWRAMBank3
	ret

.asm_17a79f
	farcall ReloadMapPart
	ret

Function17a7a6:
	ld a, [$d087]
	inc a
	ld [$d087], a
	ret

Function17a7ae:
	ld a, [$d087]
	ld hl, Jumptable_17a7b6
	rst JumpTable
	ret

Jumptable_17a7b6:
	dw Function17a7c2
	dw Function17a7cd
	dw Function17a7d8
	dw Function17a7ff
	dw Function17a81a
	dw Function17a7f4

Function17a7c2:
	ld a, $4
	call Function17aad3
	ld a, $1
	ld [$d087], a
	ret

Function17a7cd:
	call Function17a83c
	call Function17a8ae
	ret c
	call Function17a848
	ret

Function17a7d8:
	call Function17a83c
	call Function17a848
	ld hl, $d08b
	dec [hl]
	ret nz
	call Function17ac1d
	call Function17ac2a
	ld hl, $d088
	set 7, [hl]
	ld a, $1
	ld [$d087], a
	ret

Function17a7f4:
	ld hl, $d08b
	dec [hl]
	ret nz
	ld hl, $d087
	set 7, [hl]
	ret

Function17a7ff:
	ld hl, $d08b
	dec [hl]
	ret nz
	call Function17ac1d
	call Function17ac2a
	ld hl, $d088
	set 7, [hl]
	ld hl, $d088
	set 5, [hl]
	ld hl, $d087
	set 7, [hl]
	ret

Function17a81a:
	call IsSFXPlaying
	ret nc
	ldh a, [hJoyPressed]
	and $3
	ret z
	call ExitMenu
	call Function17ac1d
	call Function17ac2a
	ld hl, $d088
	set 7, [hl]
	ld hl, $d088
	res 6, [hl]
	ld a, $1
	ld [$d087], a
	ret

Function17a83c:
	ldh a, [hJoyLast]
	and $f0
	ld c, a
	ldh a, [hJoyPressed]
	and $b
	or c
	ld c, a
	ret

Function17a848:
	ld a, c
	and $60
	cp $60
	jr z, .asm_17a876
	ld a, c
	and $50
	cp $50
	jr z, .asm_17a87d
	ld a, c
	and $a0
	cp $a0
	jr z, .asm_17a884
	ld a, c
	and $90
	cp $90
	jr z, .asm_17a88b
	bit 6, c
	jr nz, .asm_17a892
	bit 7, c
	jr nz, .asm_17a899
	bit 5, c
	jr nz, .asm_17a8a0
	bit 4, c
	jr nz, .asm_17a8a7
	xor a
	ret

.asm_17a876
	ld a, $9
	call Function17aad0
	scf
	ret

.asm_17a87d
	ld a, $a
	call Function17aad0
	scf
	ret

.asm_17a884
	ld a, $b
	call Function17aad0
	scf
	ret

.asm_17a88b
	ld a, $c
	call Function17aad0
	scf
	ret

.asm_17a892
	ld a, $5
	call Function17aad0
	scf
	ret

.asm_17a899
	ld a, $6
	call Function17aad0
	scf
	ret

.asm_17a8a0
	ld a, $7
	call Function17aad0
	scf
	ret

.asm_17a8a7
	ld a, $8
	call Function17aad0
	scf
	ret

Function17a8ae:
	bit 1, c
	jr nz, .asm_17a8bc
	bit 0, c
	jr nz, .asm_17a8cc
	bit 3, c
	jr nz, .asm_17a8d7
	xor a
	ret

.asm_17a8bc
	ld a, $b
	ld [$d08a], a
	call Function17aa98
	call Function17a943
	call Function17aa88
	scf
	ret

.asm_17a8cc
	call Function17aad7
	call Function17aa98
	call Function17a8de
	scf
	ret

.asm_17a8d7
	ld a, $c
	call Function17aad3
	scf
	ret

Function17a8de:
	ld a, $2
	call Function17aae0
	ld a, [hl]
	cp $f1
	jr z, .asm_17a8fd
	cp $f0
	jr z, .asm_17a904
	cp $f2
	jr z, .asm_17a911
	ld e, a
	call Function17a964
	ld a, $2
	ld [$d087], a
	call Function17aa88
	ret

.asm_17a8fd
	call Function17a943
	call Function17aa88
	ret

.asm_17a904
	call Function17aad7
	call Function17aa98
	call Function17a91e
	call Function17aa88
	ret

.asm_17a911
	call Function17aa98
	ld a, $5
	ld [$d087], a
	xor a
	call Function17aa88
	ret

Function17a91e:
	ld a, [$d08c]
	cp $7
	jr c, .asm_17a92c
	ld a, $3
	ld [$d087], a
	xor a
	ret

.asm_17a92c
	call LoadStandardMenuHeader
	call Function17a99e
	ld hl, $d088
	set 7, [hl]
	ld hl, $d088
	set 6, [hl]
	ld a, $4
	ld [$d087], a
	scf
	ret

Function17a943:
	ld a, [$d08c]
	and a
	jr z, .asm_17a95d
	dec a
	ld [$d08c], a
	ld c, a
	ld b, $0
	ld hl, wBuffer1
	add hl, bc
	ld [hl], $ff
	ld a, $2
	ld [$d087], a
	and a
	ret

.asm_17a95d
	ld a, $5
	ld [$d087], a
	xor a
	ret

Function17a964:
	ld a, [$d08c]
	cp $10
	jr nc, .asm_17a979
	ld c, a
	ld b, $0
	inc a
	ld [$d08c], a
	ld hl, wBuffer1
	add hl, bc
	ld [hl], e
	and a
	ret

.asm_17a979
	scf
	ret

Function17a97b:
	hlcoord 1, 1
	lb bc, 2, 18
	call ClearBox
	hlcoord 3, 2
	ld de, wBuffer1
	ld a, [$d08c]
	and a
	ret z
	ld c, a
.asm_17a990
	ld a, [de]
	inc de
	cp $a
	jr nc, .asm_17a99d
	add $f6
	ld [hli], a
	dec c
	jr nz, .asm_17a990
	ret

.asm_17a99d
	ret

Function17a99e:
	hlcoord 0, 12
	ld b, $4
	ld c, $12
	call Function17ac46
	hlcoord 2, 14
	ld de, String_17a9b2
	call PlaceString
	ret

String_17a9b2:
	db   "でんわばんごうが ただしく"
	next "はいって いません!"
	db   "@"

Function17a9cb:
	ld de, wVirtualOAM ; $c400
	ld hl, $d088
	bit 6, [hl]
	jr nz, .bit_6_set
	call Function17a9e3
	call Function17aa22
	call Function17a9f5
	ret

.bit_6_set
	call Function17a9e3
	ret

Function17a9e3:
	ld a, $3
	ld [$d08e], a
	ld hl, Unknown_17aa77
	ld b, $8
	ld c, $8
	ld a, $5
	call Function17aa4a
	ret

Function17a9f5:
	ld a, [$d08c]
	cp $10
	ret nc
	ld a, [$d08f]
	swap a
	and $1
	add $1
	ld [$d08e], a
	ld a, [$d08c]
	cp $10
	jr c, .okay
	dec a
.okay
	ld c, $8
	call SimpleMultiply
	add $18
	ld b, a
	ld c, $11
	ld hl, Unknown_17aa72
	ld a, $4
	call Function17aa4a
	ret

Function17aa22:
	ld a, $0
	ld [$d08e], a
	push de
	ld a, $3
	call Function17aae0
	add a
	add a
	add a
	add $0
	push af
	ld a, $4
	call Function17aae0
	add a
	add a
	add a
	add $8
	ld c, a
	pop af
	ld b, a
	pop de
	ld a, $0
	ld hl, Unknown_17aa77
	call Function17aa4a
	ret

Function17aa4a:
	ld [$d08d], a
	ld a, b
	add $8
	ld b, a
	ld a, c
	add $10
	ld c, a
	ld a, [hli]
.loop
	push af
	ld a, [hli]
	add c
	ld [de], a
	inc de
	ld a, [hli]
	add b
	ld [de], a
	inc de
	ld a, [$d08d]
	add [hl]
	inc hl
	ld [de], a
	inc de
	ld a, [$d08e]
	or [hl]
	inc hl
	ld [de], a
	inc de
	pop af
	dec a
	jr nz, .loop
	ret

Unknown_17aa72:
	db 1
	db 0, 0, 0, 0

Unknown_17aa77:
	db 4
	db 0, 0, 0, 0
	db 0, 8, 1, 0
	db 8, 0, 2, 0
	db 8, 8, 3, 0

Function17aa88:
	jr c, asm_17aa91
	ld de, SFX_SWITCH_POKEMON
	call PlaySFX
	ret

asm_17aa91:
	ld de, SFX_WRONG
	call PlaySFX
	ret

Function17aa98:
	ld a, $5
	ld [$d08b], a
	call Function17aaa9
	call Function17aac3
	ld hl, $d088
	set 7, [hl]
	ret

Function17aaa9:
	ld a, $3
	call Function17aae3
	ld c, a
	ld b, $0
	hlcoord 0, 0, wAttrmap
	add hl, bc
	push hl
	ld a, $4
	call Function17aae3
	ld bc, $14
	pop hl
	call AddNTimes
	ret

Function17aac3:
	ld a, $b
	push hl
	ld [hli], a
	ld [hli], a
	pop hl
	ld de, SCREEN_WIDTH
	add hl, de
	ld [hli], a
	ld [hli], a
	ret

Function17aad0:
	call Function17aae0

Function17aad3:
	ld [$d089], a
	ret

Function17aad7:
	push af
	ld a, [$d089]
	ld [$d08a], a
	pop af
	ret

Function17aae0:
	call Function17aad7

Function17aae3:
	push af
	ld a, [$d08a]
	ld bc, $d
	ld hl, Unknown_17aaf7
	call AddNTimes
	pop af
	ld c, a
	ld b, $0
	add hl, bc
	ld a, [hl]
	ret

Unknown_17aaf7:
	db $0, $0, $1, $6, $5, $9, $3, $2, $1, $2, $1, $2, $4
	db $0, $0, $2, $9, $5, $a, $4, $0, $2, $a, $a, $3, $5
	db $0, $0, $3, $c, $5, $b, $5, $1, $0, $1, $0, $4, $0
	db $0, $0, $4, $6, $8, $0, $6, $5, $4, $5, $1, $5, $7
	db $0, $0, $5, $9, $8, $1, $7, $3, $5, $0, $2, $6, $8
	db $0, $0, $6, $c, $8, $2, $8, $4, $3, $1, $3, $7, $3
	db $0, $0, $7, $6, $b, $3, $9, $8, $7, $8, $4, $8, $a
	db $0, $0, $8, $9, $b, $4, $a, $6, $8, $3, $5, $9, $b
	db $0, $0, $9, $c, $b, $5, $b, $7, $6, $4, $6, $a, $6
	db $0, $0,$f2, $6, $e, $6, $0, $c, $a, $c, $7, $c, $0
	db $0, $0, $0, $9, $e, $7, $1, $9, $b, $6, $8, $1, $1
	db $0, $0,$f1, $c, $e, $8, $2, $a, $c, $7, $c, $2, $c
	db $0, $0,$f0,$10, $e, $c, $c, $b, $9, $b, $9, $b, $9

Function17aba0:
	ldh a, [rVBK]
	push af
	ld a, $1
	ldh [rVBK], a

	ld hl, vTiles5 tile $00
	ld de, DialpadGFX
	lb bc, BANK(DialpadGFX), $80 ; includes first 4 tiles of DialpadCursorGFX
	call Get2bpp

	pop af
	ldh [rVBK], a

	ld hl, vTiles0 tile $00
	ld de, DialpadCursorGFX
	lb bc, BANK(DialpadCursorGFX), 5
	call Get2bpp

	ld hl, vTiles0 tile $05
	ld de, MobileDialingGFX
	lb bc, BANK(MobileDialingGFX), 4
	call Get2bpp
	ret

Function17abcf:
	ldh a, [rSVBK]
	push af
	ld a, BANK(wBGPals1)
	ldh [rSVBK], a

	ld hl, Palette_17ac55
	ld de, wBGPals1 ; $d000
	ld bc, 6 palettes
	call CopyBytes

	ld hl, Palette_17ac95
	ld de, wOBPals1
	ld bc, 8 palettes
	call CopyBytes

	ld hl, Palette_17b4b5
	ld de, wOBPals1 palette 1
	ld bc, 2 palettes
	call CopyBytes

	ld hl, MapObjectPals palette 1
	ld de, wOBPals1 palette 3
	ld bc, 1 palettes
	ld a, BANK(MapObjectPals)
	call FarCopyBytes

	pop af
	ldh [rSVBK], a
	ret

Function17ac0c:
	call Function17ac1d
	call Function17ac2a
	hlcoord 0, 0
	ld b, 2
	ld c, SCREEN_WIDTH - 2
	call Function17ac46
	ret

Function17ac1d:
	ld hl, DialpadTilemap
	decoord 0, 4
	ld bc, (SCREEN_HEIGHT - 4) * SCREEN_WIDTH
	call CopyBytes
	ret

Function17ac2a:
	ld hl, DialpadAttrmap
	decoord 0, 4, wAttrmap
	ld bc, (SCREEN_HEIGHT - 4) * SCREEN_WIDTH
	call CopyBytes
	hlcoord 0, 4, wAttrmap
	ld bc, (SCREEN_HEIGHT - 4) * SCREEN_WIDTH
.loop
	ld a, [hl]
	or $8
	ld [hli], a
	dec bc
	ld a, b
	or c
	jr nz, .loop
	ret

Function17ac46:
	ld a, [$d088]
	bit 4, a
	jr nz, .bit_4_set
	call Textbox
	ret

.bit_4_set
	call Function3eea
	ret

Palette_17ac55:
	RGB  0,  0,  0
	RGB  9, 10, 25
	RGB 16, 19, 31
	RGB 31, 31, 31

	RGB  5, 11,  9
	RGB  7, 14, 12
	RGB 17, 24, 22
	RGB 28, 31, 31

	RGB  0,  0,  0
	RGB  3,  0, 10
	RGB  3,  3, 16
	RGB  6,  8, 25

	RGB  5, 11,  9
	RGB 28, 31, 31
	RGB  7, 14, 12
	RGB 17, 24, 22

	RGB  0,  0,  0
	RGB  5,  2, 16
	RGB  8,  8, 26
	RGB 13,  9, 17

	RGB  0,  0,  0
	RGB  0,  0,  0
	RGB  0,  0,  0
	RGB  0,  0,  0

	RGB  0,  0,  0
	RGB  0,  0,  0
	RGB  0,  0,  0
	RGB  0,  0,  0

	RGB  0,  0,  0
	RGB  0,  0,  0
	RGB  0,  0,  0
	RGB  0,  0,  0

Palette_17ac95:
	RGB 31, 31, 31
	RGB  4,  3,  3
	RGB 31, 13,  0
	RGB 31, 31, 31

	RGB 31, 31, 31
	RGB  0,  0,  0
	RGB 31, 31, 31
	RGB 31, 31, 31

	RGB 31,  0,  0
	RGB 16,  3,  0
	RGB 28, 19, 11
	RGB 31, 31, 31

	RGB 31, 16,  0
	RGB  9,  6,  4
	RGB 31, 16,  0
	RGB 31, 24,  0

	RGB 31, 18,  6
	RGB  0,  3,  0
	RGB  0,  9,  0
	RGB  0, 12,  0

	RGB  0, 16,  0
	RGB  0, 22,  0
	RGB  0, 25,  0
	RGB  0, 27,  0

	RGB  0, 31,  0
	RGB  3, 31,  0
	RGB  8, 31,  0
	RGB 14, 31,  0

	RGB 16, 31,  0
	RGB 22, 31,  0
	RGB 27, 31,  0
	RGB 31, 31,  0

DialpadTilemap:
INCBIN "gfx/mobile/dialpad.tilemap"

DialpadAttrmap:
INCBIN "gfx/mobile/dialpad.attrmap"

DialpadGFX:
INCBIN "gfx/mobile/dialpad.2bpp"

DialpadCursorGFX:
INCBIN "gfx/mobile/dialpad_cursor.2bpp"

Palette_17b4b5:
	RGB  2,  6, 10
	RGB 24, 30, 29

MobileCardListGFX::
INCBIN "gfx/mobile/card_list.2bpp"