mirror of https://github.com/pret/pokecrystal.git
1839 lines
27 KiB
NASM
Executable File
1839 lines
27 KiB
NASM
Executable File
InitMobileProfile: ; 4802f (12:402f)
|
|
xor a
|
|
set 6, a
|
|
ld [wd002], a
|
|
ld hl, wd003
|
|
set 0, [hl]
|
|
ld a, c
|
|
and a
|
|
call z, InitCrystalData
|
|
call ClearBGPalettes
|
|
call Function48d3d
|
|
ld a, [wd479]
|
|
bit 1, a
|
|
jr z, .not_yet_initialized
|
|
ld a, [wd003]
|
|
set 0, a
|
|
set 1, a
|
|
set 2, a
|
|
set 3, a
|
|
ld [wd003], a
|
|
.not_yet_initialized
|
|
call Function486bf
|
|
call LoadFontsExtra
|
|
ld de, MobileUpArrowGFX
|
|
ld hl, vTiles2 tile $10
|
|
lb bc, BANK(MobileUpArrowGFX), 1
|
|
call Request1bpp
|
|
ld de, MobileDownArrowGFX
|
|
ld hl, vTiles2 tile $11
|
|
lb bc, BANK(MobileDownArrowGFX), 1
|
|
call Request1bpp
|
|
call Function4a3a7
|
|
call ClearBGPalettes
|
|
ld a, [wd002]
|
|
bit 6, a
|
|
jr z, .asm_4808a
|
|
call Function48689
|
|
jr .asm_480d7
|
|
.asm_4808a
|
|
ld a, $5
|
|
ld [MusicFade], a
|
|
ld a, LOW(MUSIC_MOBILE_ADAPTER_MENU)
|
|
ld [MusicFadeID], a
|
|
ld a, HIGH(MUSIC_MOBILE_ADAPTER_MENU)
|
|
ld [MusicFadeID + 1], a
|
|
ld c, 20
|
|
call DelayFrames
|
|
ld b, $1
|
|
call GetMysteryGift_MobileAdapterLayout
|
|
call ClearBGPalettes
|
|
hlcoord 0, 0
|
|
ld b, 2
|
|
ld c, 20
|
|
call ClearBox
|
|
hlcoord 0, 1
|
|
ld a, $c
|
|
ld [hl], a
|
|
ld bc, $13
|
|
add hl, bc
|
|
ld [hl], a
|
|
ld de, MobileProfileString
|
|
hlcoord 1, 1
|
|
call PlaceString
|
|
hlcoord 0, 2
|
|
ld b, $a
|
|
ld c, $12
|
|
call Function48cdc
|
|
hlcoord 2, 4
|
|
ld de, MobileString_Gender
|
|
call PlaceString
|
|
.asm_480d7
|
|
hlcoord 2, 6
|
|
ld de, MobileString_Age
|
|
call PlaceString
|
|
hlcoord 2, 8
|
|
ld de, MobileString_Address
|
|
call PlaceString
|
|
hlcoord 2, 10
|
|
ld de, MobileString_ZipCode
|
|
call PlaceString
|
|
hlcoord 2, 12
|
|
ld de, MobileString_OK
|
|
call PlaceString
|
|
ld a, [wd002]
|
|
bit 6, a
|
|
jr nz, .asm_48113
|
|
ld a, [wPlayerGender]
|
|
ld hl, Strings_484fb
|
|
call GetNthString
|
|
ld d, h
|
|
ld e, l
|
|
hlcoord 11, 4
|
|
call PlaceString
|
|
.asm_48113
|
|
hlcoord 11, 6
|
|
call Function487ec
|
|
ld a, [wd474]
|
|
dec a
|
|
ld hl, Prefectures
|
|
call GetNthString
|
|
ld d, h
|
|
ld e, l
|
|
hlcoord 11, 8
|
|
call PlaceString
|
|
hlcoord 11, 10
|
|
call Function489ea
|
|
hlcoord 0, 14
|
|
ld b, $2
|
|
ld c, $12
|
|
call TextBox
|
|
hlcoord 1, 16
|
|
ld de, MobileString_PersonalInfo
|
|
call PlaceString
|
|
call Function48187
|
|
call WaitBGMap2
|
|
call SetPalettes
|
|
call StaticMenuJoypad
|
|
ld hl, wMenuCursorY
|
|
ld b, [hl]
|
|
push bc
|
|
jr asm_4815f
|
|
|
|
Function48157: ; 48157 (12:4157)
|
|
call ScrollingMenuJoypad
|
|
ld hl, wMenuCursorY
|
|
ld b, [hl]
|
|
push bc
|
|
asm_4815f: ; 4815f (12:415f)
|
|
bit A_BUTTON_F, a
|
|
jp nz, Function4820d
|
|
ld b, a
|
|
ld a, [wd002]
|
|
bit 6, a
|
|
jr z, .dont_check_b_button
|
|
ld hl, wd479
|
|
bit 1, [hl]
|
|
jr z, .dont_check_b_button
|
|
bit B_BUTTON_F, b
|
|
jr nz, .b_button
|
|
.dont_check_b_button
|
|
jp Function48272
|
|
|
|
.b_button
|
|
call ClearBGPalettes
|
|
call Function48d30
|
|
pop bc
|
|
call ClearTileMap
|
|
ld a, $ff
|
|
ret
|
|
|
|
Function48187: ; 48187 (12:4187)
|
|
ld a, [wd479]
|
|
bit 1, a
|
|
jr nz, .asm_481f1
|
|
ld a, [wd003]
|
|
ld d, a
|
|
call Function48725
|
|
jr c, .asm_481a2
|
|
lb bc, 1, 4
|
|
hlcoord 2, 12
|
|
call ClearBox
|
|
jr .asm_481ad
|
|
.asm_481a2
|
|
push de
|
|
hlcoord 2, 12
|
|
ld de, MobileString_OK
|
|
call PlaceString
|
|
pop de
|
|
.asm_481ad
|
|
ld a, [wd002]
|
|
bit 6, a
|
|
jr nz, .asm_481c1
|
|
bit 0, d
|
|
jr nz, .asm_481c1
|
|
lb bc, 1, 8
|
|
hlcoord 11, 4
|
|
call ClearBox
|
|
.asm_481c1
|
|
bit 1, d
|
|
jr nz, .asm_481ce
|
|
lb bc, 1, 8
|
|
hlcoord 11, 6
|
|
call ClearBox
|
|
.asm_481ce
|
|
bit 2, d
|
|
jr nz, .asm_481db
|
|
lb bc, 2, 8
|
|
hlcoord 11, 7
|
|
call ClearBox
|
|
.asm_481db
|
|
bit 3, d
|
|
jr nz, .asm_481f1
|
|
ld a, [wd479]
|
|
bit 0, a
|
|
jr nz, .asm_481f8
|
|
lb bc, 1, 8
|
|
hlcoord 11, 10
|
|
call ClearBox
|
|
jr .asm_48201
|
|
.asm_481f1
|
|
ld a, [wd479]
|
|
bit 0, a
|
|
jr nz, .asm_48201
|
|
.asm_481f8
|
|
hlcoord 11, 10
|
|
ld de, .String_TellLater
|
|
call PlaceString
|
|
.asm_48201
|
|
ret
|
|
; 48202 (12:4202)
|
|
|
|
.String_TellLater: ; 48202
|
|
db "Tell Later@"
|
|
; 4820d
|
|
|
|
Function4820d: ; 4820d (12:420d)
|
|
call PlaceHollowCursor
|
|
ld hl, wMenuCursorY
|
|
ld a, [hl]
|
|
push af
|
|
ld a, [wd002]
|
|
bit 6, a
|
|
jr z, .asm_4821f
|
|
pop af
|
|
inc a
|
|
push af
|
|
.asm_4821f
|
|
pop af
|
|
cp $1
|
|
jr z, asm_4828d
|
|
cp $2
|
|
jp z, Function4876f
|
|
cp $3
|
|
jp z, Function48304
|
|
cp $4
|
|
jp z, Function488d3
|
|
ld a, $2
|
|
call MenuClickSound
|
|
ld a, [wd002]
|
|
bit 6, a
|
|
jr z, .asm_4825c
|
|
jr .asm_4825c
|
|
; 48241 (12:4241)
|
|
|
|
hlcoord 1, 15
|
|
ld b, $2
|
|
ld c, $12
|
|
call ClearBox
|
|
ld de, MobileString_ProfileChanged
|
|
hlcoord 1, 16
|
|
call PlaceString
|
|
call WaitBGMap
|
|
ld c, 48
|
|
call DelayFrames
|
|
|
|
.asm_4825c
|
|
call ClearBGPalettes
|
|
call Function48d30
|
|
pop bc
|
|
call ClearTileMap
|
|
ld b, SCGB_DIPLOMA
|
|
call GetSGBLayout
|
|
ld hl, wd479
|
|
set 1, [hl]
|
|
xor a
|
|
ret
|
|
|
|
Function48272: ; 48272 (12:4272)
|
|
jp Function4840c
|
|
; 48275 (12:4275)
|
|
|
|
MobileString_PersonalInfo: ; 48275
|
|
db "Personal Info@"
|
|
; 48283
|
|
|
|
Function48283: ; 48283 (12:4283)
|
|
lb bc, 2, 18
|
|
hlcoord 1, 15
|
|
call ClearBox
|
|
ret
|
|
|
|
asm_4828d: ; 4828d (12:428d)
|
|
call Function48283
|
|
hlcoord 1, 16
|
|
ld de, MobileDesc_Gender
|
|
call PlaceString
|
|
ld hl, MenuDataHeader_0x484f1
|
|
call LoadMenuDataHeader
|
|
call Function4873c
|
|
hlcoord 11, 2
|
|
ld b, $4
|
|
ld c, $7
|
|
call Function48cdc
|
|
hlcoord 13, 4
|
|
ld de, String_484fb
|
|
call PlaceString
|
|
hlcoord 13, 6
|
|
ld de, String_484ff
|
|
call PlaceString
|
|
call WaitBGMap
|
|
ld a, [wPlayerGender]
|
|
inc a
|
|
ld [wMenuCursorBuffer], a
|
|
call StaticMenuJoypad
|
|
call PlayClickSFX
|
|
call ExitMenu
|
|
bit 0, a
|
|
jp z, Function4840c
|
|
ld hl, wMenuCursorY
|
|
ld a, [hl]
|
|
ld hl, Strings_484fb
|
|
cp $1
|
|
jr z, .asm_482ed
|
|
.asm_482e1
|
|
ld a, [hli]
|
|
cp $50
|
|
jr nz, .asm_482e1
|
|
ld a, $1
|
|
ld [wPlayerGender], a
|
|
jr .asm_482f1
|
|
.asm_482ed
|
|
xor a
|
|
ld [wPlayerGender], a
|
|
.asm_482f1
|
|
ld d, h
|
|
ld e, l
|
|
hlcoord 11, 4
|
|
call PlaceString
|
|
ld a, [wd003]
|
|
set 0, a
|
|
ld [wd003], a
|
|
jp Function4840c
|
|
|
|
Function48304: ; 48304 (12:4304)
|
|
call Function48283
|
|
hlcoord 1, 16
|
|
ld de, MobileDesc_Address
|
|
call PlaceString
|
|
ld hl, MenuDataHeader_0x48504
|
|
call LoadMenuDataHeader
|
|
ld hl, MenuDataHeader_0x48513
|
|
call LoadMenuDataHeader
|
|
hlcoord 10, 0
|
|
ld b, $c
|
|
ld c, $8
|
|
call Function48cdc
|
|
ld a, [wMenuCursorBuffer]
|
|
ld b, a
|
|
ld a, [wMenuScrollPosition]
|
|
ld c, a
|
|
push bc
|
|
ld a, [wd474]
|
|
dec a
|
|
cp $29
|
|
jr c, .asm_4833f
|
|
sub $29
|
|
inc a
|
|
ld [wMenuCursorBuffer], a
|
|
ld a, $29
|
|
.asm_4833f
|
|
ld [wMenuScrollPosition], a
|
|
farcall Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
|
|
.asm_48348
|
|
call ScrollingMenu
|
|
ld de, $629
|
|
call Function48383
|
|
jr c, .asm_48348
|
|
ld d, a
|
|
pop bc
|
|
ld a, b
|
|
ld [wMenuCursorBuffer], a
|
|
ld a, c
|
|
ld [wMenuScrollPosition], a
|
|
ld a, d
|
|
push af
|
|
call ExitMenu
|
|
call ExitMenu
|
|
pop af
|
|
ld a, [hJoyPressed]
|
|
bit 0, a
|
|
jr z, .asm_48377
|
|
call Function483bb
|
|
ld a, [wd003]
|
|
set 2, a
|
|
ld [wd003], a
|
|
.asm_48377
|
|
call Function48187
|
|
farcall Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
|
|
jp Function4840c
|
|
|
|
Function48383: ; 48383 (12:4383)
|
|
push bc
|
|
push af
|
|
bit 5, a
|
|
jr nz, .asm_48390
|
|
bit 4, a
|
|
jr nz, .asm_4839f
|
|
and a
|
|
jr .asm_483b7
|
|
.asm_48390
|
|
ld a, [wMenuScrollPosition]
|
|
sub d
|
|
ld [wMenuScrollPosition], a
|
|
jr nc, .asm_483af
|
|
xor a
|
|
ld [wMenuScrollPosition], a
|
|
jr .asm_483af
|
|
.asm_4839f
|
|
ld a, [wMenuScrollPosition]
|
|
add d
|
|
ld [wMenuScrollPosition], a
|
|
cp e
|
|
jr c, .asm_483af
|
|
ld a, e
|
|
ld [wMenuScrollPosition], a
|
|
jr .asm_483af
|
|
.asm_483af
|
|
ld hl, wMenuCursorY
|
|
ld a, [hl]
|
|
ld [wMenuCursorBuffer], a
|
|
scf
|
|
.asm_483b7
|
|
pop bc
|
|
ld a, b
|
|
pop bc
|
|
ret
|
|
|
|
Function483bb: ; 483bb (12:43bb)
|
|
ld hl, wScrollingMenuCursorPosition
|
|
ld a, [hl]
|
|
inc a
|
|
ld [wd474], a
|
|
dec a
|
|
ld b, a
|
|
ld hl, Prefectures
|
|
.asm_483c8
|
|
and a
|
|
jr z, .asm_483d5
|
|
.asm_483cb
|
|
ld a, [hli]
|
|
cp "@"
|
|
jr nz, .asm_483cb
|
|
ld a, b
|
|
dec a
|
|
ld b, a
|
|
jr .asm_483c8
|
|
.asm_483d5
|
|
ld d, h
|
|
ld e, l
|
|
ld b, $2
|
|
ld c, $8
|
|
hlcoord 11, 7
|
|
call ClearBox
|
|
hlcoord 11, 8
|
|
call PlaceString
|
|
ret
|
|
; 483e8 (12:43e8)
|
|
|
|
Function483e8: ; 483e8
|
|
push de
|
|
ld hl, Prefectures
|
|
ld a, [MenuSelection]
|
|
cp $ff
|
|
jr nz, .asm_483f8
|
|
ld hl, Wakayama ; last string
|
|
jr .asm_48405
|
|
|
|
.asm_483f8
|
|
ld d, a
|
|
and a
|
|
jr z, .asm_48405
|
|
.asm_483fc
|
|
ld a, [hli]
|
|
cp "@"
|
|
jr nz, .asm_483fc
|
|
ld a, d
|
|
dec a
|
|
jr .asm_483f8
|
|
|
|
.asm_48405
|
|
ld d, h
|
|
ld e, l
|
|
pop hl
|
|
call PlaceString
|
|
ret
|
|
; 4840c
|
|
|
|
Function4840c: ; 4840c (12:440c)
|
|
call Function48187
|
|
call Function48283
|
|
hlcoord 1, 16
|
|
ld de, MobileString_PersonalInfo
|
|
call PlaceString
|
|
call Function486bf
|
|
pop bc
|
|
ld hl, wMenuCursorY
|
|
ld [hl], b
|
|
ld a, [wd002]
|
|
bit 6, a
|
|
jr nz, .narrower_box
|
|
ld b, 9
|
|
ld c, 1
|
|
hlcoord 1, 4
|
|
call ClearBox
|
|
jp Function48157
|
|
|
|
.narrower_box
|
|
ld b, 7
|
|
ld c, 1
|
|
hlcoord 1, 6
|
|
call ClearBox
|
|
jp Function48157
|
|
|
|
Mobile12_Bin2Dec: ; 48444 (12:4444)
|
|
push bc
|
|
push af
|
|
push de
|
|
push hl
|
|
ld hl, .DigitStrings
|
|
.loop
|
|
and a
|
|
jr z, .got_string
|
|
inc hl
|
|
inc hl
|
|
dec a
|
|
jr .loop
|
|
.got_string
|
|
ld d, h
|
|
ld e, l
|
|
pop hl
|
|
call PlaceString
|
|
pop de
|
|
pop af
|
|
pop bc
|
|
ret
|
|
; 4845d (12:445d)
|
|
|
|
.DigitStrings: ; 4845d
|
|
; 4845d
|
|
db "0@"
|
|
db "1@"
|
|
db "2@"
|
|
db "3@"
|
|
db "4@"
|
|
db "5@"
|
|
db "6@"
|
|
db "7@"
|
|
db "8@"
|
|
db "9@"
|
|
; 48471
|
|
|
|
MobileProfileString: db " Mobile Profile@"
|
|
MobileString_Gender: db "Gender@"
|
|
MobileString_Age: db "Age@"
|
|
MobileString_Address: db "Address@"
|
|
MobileString_ZipCode: db "Zip Code@"
|
|
MobileString_OK: db "OK@"
|
|
MobileString_ProfileChanged: db "Profile Changed@"
|
|
MobileDesc_Gender: db "Boy or girl?@"
|
|
MobileDesc_Age: db "How old are you?@"
|
|
MobileDesc_Address: db "Where do you live?@"
|
|
MobileDesc_ZipCode: db "Your zip code?@"
|
|
; 484f1
|
|
|
|
MenuDataHeader_0x484f1: ; 0x484f1
|
|
db MENU_BACKUP_TILES ; flags
|
|
menu_coords 11, 2, SCREEN_WIDTH - 1, 7
|
|
dw MenuData2_0x484f9
|
|
db 1 ; default option
|
|
; 0x484f9
|
|
|
|
MenuData2_0x484f9: ; 0x484f9
|
|
db STATICMENU_CURSOR | STATICMENU_WRAP ; flags
|
|
db 2 ; items
|
|
Strings_484fb:
|
|
String_484fb: db "Boy@"
|
|
String_484ff: db "Girl@"
|
|
; 0x48504
|
|
|
|
MenuDataHeader_0x48504: ; 0x48504
|
|
db MENU_BACKUP_TILES ; flags
|
|
menu_coords 10, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1
|
|
|
|
MenuDataHeader_0x48509: ; 0x48509
|
|
db MENU_BACKUP_TILES ; flags
|
|
menu_coords 10, 5, SCREEN_WIDTH - 1, 7
|
|
|
|
MenuDataHeader_0x4850e: ; 0x4850e
|
|
db MENU_BACKUP_TILES ; flags
|
|
menu_coords 10, 9, SCREEN_WIDTH - 1, TEXTBOX_Y - 1
|
|
|
|
MenuDataHeader_0x48513: ; 0x48513
|
|
db MENU_BACKUP_TILES ; flags
|
|
menu_coords 11, 1, 18, 12
|
|
dw MenuData2_0x4851b
|
|
db 1 ; default option
|
|
; 0x4851b
|
|
|
|
MenuData2_0x4851b: ; 0x4851b
|
|
db SCROLLINGMENU_DISPLAY_ARROWS | SCROLLINGMENU_ENABLE_RIGHT | SCROLLINGMENU_ENABLE_LEFT | SCROLLINGMENU_CALL_FUNCTION1_CANCEL ; flags
|
|
db 6 ; items
|
|
|
|
Unknown_4851d: ; 4851d
|
|
db $00, $01, $12, $2b, $45, $12, $e8, $43, $00, $00, $00, $00, $00, $00, $2e, $00, $01, $02, $03, $04
|
|
db $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, $10, $11, $12, $13, $14, $15, $16, $17, $18
|
|
db $19, $1a, $1b, $1c, $1d, $1e, $1f, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c
|
|
db $2d, $ff
|
|
|
|
Prefectures:
|
|
Aichi: db "あいちけん@" ; Aichi
|
|
Aomori: db "あおもりけん@" ; Aomori
|
|
Akita: db "あきたけん@" ; Akita
|
|
Ishikawa: db "いしかわけん@" ; Ishikawa
|
|
Ibaraki: db "いばらきけん@" ; Ibaraki
|
|
Iwate: db "いわてけん@" ; Iwate
|
|
Ehime: db "えひめけん@" ; Ehime
|
|
Oita: db "おおいたけん@" ; Oita
|
|
Osakafu: db "おおさかふ@" ; Osakafu
|
|
Okayama: db "おかやまけん@" ; Okayama
|
|
Okinawa: db "おきなわけん@" ; Okinawa
|
|
Kagawa: db "かがわけん@" ; Kagawa
|
|
Kagoshima: db "かごしまけん@" ; Kagoshima
|
|
Kanagawa: db "かながわけん@" ; Kanagawa
|
|
Gifu: db "ぎふけん@" ; Gifu
|
|
Kyotofu: db "きょうとふ@" ; Kyotofu
|
|
Kumamoto: db "くまもとけん@" ; Kumamoto
|
|
Gunma: db "ぐんまけん@" ; Gunma
|
|
Kochi: db "こうちけん@" ; Kochi
|
|
Saitama: db "さいたまけん@" ; Saitama
|
|
Saga: db "さがけん@" ; Saga
|
|
Shiga: db "しがけん@" ; Shiga
|
|
Shizuoka: db "しずおかけん@" ; Shizuoka
|
|
Shimane: db "しまねけん@" ; Shimane
|
|
Chiba: db "ちばけん@" ; Chiba
|
|
Tokyo: db "とうきょうと@" ; Tokyo
|
|
Tokushima: db "とくしまけん@" ; Tokushima
|
|
Tochigi: db "とちぎけん@" ; Tochigi
|
|
Tottori: db "とっとりけん@" ; Tottori
|
|
Toyama: db "とやまけん@" ; Toyama
|
|
Nagasaki: db "ながさきけん@" ; Nagasaki
|
|
Nagano: db "ながのけん@" ; Nagano
|
|
Naraken: db "ならけん@" ; Naraken
|
|
Niigata: db "にいがたけん@" ; Niigata
|
|
Hyogo: db "ひょうごけん@" ; Hyogo
|
|
Hiroshima: db "ひろしまけん@" ; Hiroshima
|
|
Fukui: db "ふくいけん@" ; Fukui
|
|
Fukuoka: db "ふくおかけん@" ; Fukuoka
|
|
Fukushima: db "ふくしまけん@" ; Fukushima
|
|
Hokkaido: db "ほっかいどう@" ; Hokkaido
|
|
Mie: db "みえけん@" ; Mie
|
|
Miyagi: db "みやぎけん@" ; Miyagi
|
|
Miyazaki: db "みやざきけん@" ; Miyazaki
|
|
Yamagata: db "やまがたけん@" ; Yamagata
|
|
Yamaguchi: db "やまぐちけん@" ; Yamaguchi
|
|
Yamanashi: db "やまなしけん@" ; Yamanashi
|
|
Wakayama: db "わかやまけん@" ; Wakayama
|
|
; 48689
|
|
|
|
Function48689: ; 48689 (12:4689)
|
|
ld c, 7
|
|
call DelayFrames
|
|
ld b, $1
|
|
call GetMysteryGift_MobileAdapterLayout
|
|
call ClearBGPalettes
|
|
hlcoord 0, 0
|
|
ld b, 4
|
|
ld c, SCREEN_WIDTH
|
|
call ClearBox
|
|
hlcoord 0, 2
|
|
ld a, $c
|
|
ld [hl], a
|
|
ld bc, SCREEN_WIDTH - 1
|
|
add hl, bc
|
|
ld [hl], a
|
|
ld de, MobileProfileString
|
|
hlcoord 1, 2
|
|
call PlaceString
|
|
hlcoord 0, 4
|
|
ld b, $8
|
|
ld c, $12
|
|
call Function48cdc
|
|
ret
|
|
|
|
Function486bf: ; 486bf (12:46bf)
|
|
ld hl, w2DMenuCursorInitY
|
|
ld a, [wd002]
|
|
bit 6, a
|
|
jr nz, .start_at_6
|
|
ld a, 4
|
|
ld [hli], a
|
|
jr .got_init_y
|
|
|
|
.start_at_6
|
|
ld a, 6
|
|
ld [hli], a
|
|
.got_init_y
|
|
ld a, 1
|
|
ld [hli], a ; init x
|
|
ld a, [wd002]
|
|
bit 6, a
|
|
jr nz, .check_wd479
|
|
call Function48725
|
|
ld a, 4
|
|
jr nc, .got_num_rows_1
|
|
ld a, 5
|
|
.got_num_rows_1
|
|
ld [hli], a
|
|
jr .got_num_rows_2
|
|
|
|
.check_wd479
|
|
ld a, [wd479]
|
|
bit 1, a
|
|
jr nz, .four_rows
|
|
call Function48725
|
|
jr c, .four_rows
|
|
ld a, 3
|
|
ld [hli], a
|
|
jr .got_num_rows_2
|
|
|
|
.four_rows
|
|
ld a, 4
|
|
ld [hli], a
|
|
.got_num_rows_2
|
|
ld a, 1
|
|
ld [hli], a ; num cols
|
|
ld [hl], 0 ; flags 1
|
|
set 5, [hl]
|
|
inc hl
|
|
xor a
|
|
ld [hli], a ; flags 2
|
|
ld a, $20
|
|
ld [hli], a ; cursor offsets
|
|
ld a, A_BUTTON
|
|
add D_UP
|
|
add D_DOWN
|
|
push af
|
|
ld a, [wd002]
|
|
bit 6, a
|
|
jr z, .got_joypad_mask
|
|
pop af
|
|
add B_BUTTON
|
|
push af
|
|
.got_joypad_mask
|
|
pop af
|
|
ld [hli], a
|
|
ld a, $1
|
|
ld [hli], a ; cursor y
|
|
ld [hli], a ; cursor x
|
|
xor a
|
|
ld [hli], a ; off char
|
|
ld [hli], a ; cursor tile
|
|
ld [hli], a ; cursor tile + 1
|
|
ret
|
|
|
|
Function48725: ; 48725 (12:4725)
|
|
; ld a, [wd003]
|
|
; and $f
|
|
; cp $f
|
|
; jr nz, .clear_carry
|
|
; scf
|
|
; ret
|
|
; .clear_carry
|
|
; and a
|
|
; ret
|
|
|
|
ld a, [wd003]
|
|
bit 0, a
|
|
jr z, .clear_carry
|
|
bit 1, a
|
|
jr z, .clear_carry
|
|
bit 2, a
|
|
jr z, .clear_carry
|
|
bit 3, a
|
|
jr z, .clear_carry
|
|
scf
|
|
ret
|
|
|
|
.clear_carry
|
|
and a
|
|
ret
|
|
|
|
Function4873c: ; 4873c (12:473c)
|
|
ld hl, w2DMenuCursorInitY
|
|
ld a, 4
|
|
ld [hli], a
|
|
ld a, 12
|
|
ld [hli], a ; init x
|
|
ld a, 2
|
|
ld [hli], a ; num rows
|
|
ld a, 1
|
|
ld [hli], a ; num cols
|
|
ld [hl], 0 ; flags 1
|
|
set 5, [hl]
|
|
inc hl
|
|
xor a
|
|
ld [hli], a ; flags 2
|
|
ln a, 2, 0
|
|
ld [hli], a ; cursor offsets
|
|
ld a, A_BUTTON
|
|
add B_BUTTON
|
|
ld [hli], a ; joypad filter
|
|
; ld a, [wPlayerGender]
|
|
; xor 1
|
|
; inc a
|
|
ld a, [wPlayerGender]
|
|
and a
|
|
jr z, .male
|
|
ld a, 2
|
|
jr .okay_gender
|
|
|
|
.male
|
|
ld a, 1
|
|
.okay_gender
|
|
ld [hli], a ; cursor y
|
|
ld a, $1
|
|
ld [hli], a ; cursor x
|
|
xor a
|
|
ld [hli], a ; off char
|
|
ld [hli], a ; cursor tile
|
|
ld [hli], a ; cursor tile + 1
|
|
ret
|
|
|
|
Function4876f: ; 4876f (12:476f)
|
|
call Function48283
|
|
hlcoord 1, 16
|
|
ld de, MobileDesc_Age
|
|
call PlaceString
|
|
ld hl, MenuDataHeader_0x48509
|
|
call LoadMenuDataHeader
|
|
ld a, [hInMenu]
|
|
push af
|
|
ld a, $1
|
|
ld [hInMenu], a
|
|
hlcoord 10, 5
|
|
ld b, $1
|
|
ld c, $8
|
|
call Function48cdc
|
|
call WaitBGMap
|
|
ld a, [wd473]
|
|
and a
|
|
jr z, .asm_487ab
|
|
cp $64
|
|
jr z, .asm_487b2
|
|
hlcoord 12, 5
|
|
ld [hl], $10
|
|
hlcoord 12, 7
|
|
ld [hl], $11
|
|
jr .asm_487b7
|
|
.asm_487ab
|
|
hlcoord 12, 5
|
|
ld [hl], $10
|
|
jr .asm_487b7
|
|
.asm_487b2
|
|
hlcoord 12, 7
|
|
ld [hl], $11
|
|
.asm_487b7
|
|
hlcoord 11, 6
|
|
call Function487ec
|
|
ld c, 10
|
|
call DelayFrames
|
|
ld a, [wd473]
|
|
push af
|
|
.asm_487c6
|
|
call JoyTextDelay
|
|
call Function4880e
|
|
jr nc, .asm_487c6
|
|
ld a, $1
|
|
call MenuClickSound
|
|
pop bc
|
|
jr nz, .asm_487da
|
|
ld a, b
|
|
ld [wd473], a
|
|
.asm_487da
|
|
ld a, [wd473]
|
|
call ExitMenu
|
|
hlcoord 11, 6
|
|
call Function487ec
|
|
pop af
|
|
ld [hInMenu], a
|
|
jp Function4840c
|
|
|
|
Function487ec: ; 487ec (12:47ec)
|
|
push hl
|
|
ld de, wd473
|
|
call Function487ff
|
|
pop hl
|
|
rept 4
|
|
inc hl
|
|
endr
|
|
ld de, String_4880d
|
|
call PlaceString
|
|
ret
|
|
|
|
Function487ff: ; 487ff (12:47ff)
|
|
push hl
|
|
ld a, " "
|
|
ld [hli], a
|
|
ld [hl], a
|
|
pop hl
|
|
ld b, PRINTNUM_LEADINGZEROS | 1
|
|
ld c, 3
|
|
call PrintNum
|
|
ret
|
|
; 4880d (12:480d)
|
|
|
|
String_4880d: ; 4880d
|
|
db "@"
|
|
; 4880e
|
|
|
|
Function4880e: ; 4880e (12:480e)
|
|
ld a, [hJoyPressed]
|
|
and A_BUTTON
|
|
jp nz, Function488b9
|
|
ld a, [hJoyPressed]
|
|
and B_BUTTON
|
|
jp nz, Function488b4
|
|
ld hl, hJoyLast
|
|
ld a, [hl]
|
|
and D_UP
|
|
jr nz, .asm_48843
|
|
ld a, [hl]
|
|
and D_DOWN
|
|
jr nz, .asm_48838
|
|
ld a, [hl]
|
|
and D_LEFT
|
|
jr nz, .asm_4884f
|
|
ld a, [hl]
|
|
and D_RIGHT
|
|
jr nz, .asm_4885f
|
|
call DelayFrame
|
|
and a
|
|
ret
|
|
.asm_48838
|
|
ld hl, wd473
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .asm_48840
|
|
dec a
|
|
.asm_48840
|
|
ld [hl], a
|
|
jr .asm_4886f
|
|
.asm_48843
|
|
ld hl, wd473
|
|
ld a, [hl]
|
|
cp $64
|
|
jr nc, .asm_4884c
|
|
inc a
|
|
.asm_4884c
|
|
ld [hl], a
|
|
jr .asm_4886f
|
|
.asm_4884f
|
|
ld a, [wd473]
|
|
cp $5b
|
|
jr c, .asm_48858
|
|
ld a, $5a
|
|
.asm_48858
|
|
add $a
|
|
ld [wd473], a
|
|
jr .asm_4886f
|
|
.asm_4885f
|
|
ld a, [wd473]
|
|
cp $a
|
|
jr nc, .asm_48868
|
|
ld a, $a
|
|
.asm_48868
|
|
sub $a
|
|
ld [wd473], a
|
|
jr .asm_4886f
|
|
.asm_4886f
|
|
ld a, [wd473]
|
|
and a
|
|
jr z, .asm_48887
|
|
cp $64
|
|
jr z, .asm_48898
|
|
jr z, .asm_488a7
|
|
hlcoord 12, 5
|
|
ld [hl], $10
|
|
hlcoord 12, 7
|
|
ld [hl], $11
|
|
jr .asm_488a7
|
|
.asm_48887
|
|
hlcoord 10, 5
|
|
ld b, $1
|
|
ld c, $8
|
|
call Function48cdc
|
|
hlcoord 12, 5
|
|
ld [hl], $10
|
|
jr .asm_488a7
|
|
.asm_48898
|
|
hlcoord 10, 5
|
|
ld b, $1
|
|
ld c, $8
|
|
call Function48cdc
|
|
hlcoord 12, 7
|
|
ld [hl], $11
|
|
.asm_488a7
|
|
hlcoord 11, 6
|
|
call Function487ec
|
|
call WaitBGMap
|
|
ld a, $1
|
|
and a
|
|
ret
|
|
|
|
Function488b4: ; 488b4 (12:48b4)
|
|
ld a, $0
|
|
and a
|
|
scf
|
|
ret
|
|
|
|
Function488b9: ; 488b9 (12:48b9)
|
|
ld a, [wd003]
|
|
set 1, a
|
|
ld [wd003], a
|
|
scf
|
|
ret
|
|
; 488c3 (12:48c3)
|
|
|
|
MobileUpArrowGFX: ; 488c3
|
|
INCBIN "gfx/mobile/up_arrow.2bpp"
|
|
|
|
MobileDownArrowGFX: ; 488cb
|
|
INCBIN "gfx/mobile/down_arrow.2bpp"
|
|
|
|
Function488d3: ; 488d3 (12:48d3)
|
|
call Function48283
|
|
hlcoord 1, 16
|
|
ld de, MobileDesc_ZipCode
|
|
call PlaceString
|
|
call Function48a3a
|
|
jp c, Function4840c
|
|
ld hl, MenuDataHeader_0x4850e
|
|
call LoadMenuDataHeader
|
|
ld a, [hInMenu]
|
|
push af
|
|
ld a, $1
|
|
ld [hInMenu], a
|
|
hlcoord 10, 9
|
|
ld b, $1
|
|
ld c, $8
|
|
call Function48cdc
|
|
ld a, [wd475]
|
|
and $f
|
|
ld d, $0
|
|
hlcoord 11, 10
|
|
call Function489ea
|
|
call WaitBGMap
|
|
ld a, [wd475]
|
|
ld b, a
|
|
ld a, [wd476]
|
|
ld c, a
|
|
ld a, [wd477]
|
|
ld d, a
|
|
ld a, [wd478]
|
|
ld e, a
|
|
push de
|
|
push bc
|
|
ld d, $0
|
|
ld b, $0
|
|
|
|
asm_48922: ; 48922 (12:4922)
|
|
push bc
|
|
call JoyTextDelay
|
|
ld a, [hJoyDown]
|
|
and a
|
|
jp z, Function4896e
|
|
bit 0, a
|
|
jp nz, Function4896e
|
|
bit 1, a
|
|
jp nz, Function4896e
|
|
ld a, [wd002]
|
|
and %11001111
|
|
res 7, a
|
|
ld [wd002], a
|
|
pop bc
|
|
inc b
|
|
ld a, b
|
|
cp $5
|
|
push bc
|
|
jr c, .asm_4894c
|
|
pop bc
|
|
ld b, $4
|
|
push bc
|
|
.asm_4894c
|
|
pop bc
|
|
push bc
|
|
ld a, b
|
|
cp $4
|
|
jr nz, asm_48972
|
|
ld c, 10
|
|
call DelayFrames
|
|
jr asm_48972
|
|
; 4895a (12:495a)
|
|
|
|
Function4895a: ; 4895a
|
|
ld a, [hJoyPressed]
|
|
and a
|
|
jr z, .asm_48965
|
|
pop bc
|
|
ld b, $1
|
|
push bc
|
|
jr asm_48972
|
|
|
|
.asm_48965
|
|
ld a, [hJoyLast]
|
|
and a
|
|
jr z, asm_48972
|
|
|
|
pop bc
|
|
ld b, $1
|
|
push bc
|
|
|
|
Function4896e: ; 4896e (12:496e)
|
|
pop bc
|
|
ld b, $0
|
|
push bc
|
|
|
|
asm_48972: ; 48972 (12:4972)
|
|
call Function48ab5
|
|
push af
|
|
cp $f0
|
|
jr z, .asm_48994
|
|
cp $f
|
|
jr nz, .asm_48988
|
|
ld a, [wd002]
|
|
set 7, a
|
|
and $cf
|
|
ld [wd002], a
|
|
.asm_48988
|
|
hlcoord 11, 10
|
|
ld b, $0
|
|
ld c, d
|
|
add hl, bc
|
|
ld b, $3
|
|
call Function48c11
|
|
.asm_48994
|
|
call WaitBGMap
|
|
pop af
|
|
pop bc
|
|
jr nc, asm_48922
|
|
jr nz, .asm_489b1
|
|
pop bc
|
|
ld a, b
|
|
ld [wd475], a
|
|
ld a, c
|
|
ld [wd476], a
|
|
pop bc
|
|
ld a, b
|
|
ld [wd477], a
|
|
ld a, c
|
|
ld [wd478], a
|
|
jr .asm_489c5
|
|
.asm_489b1
|
|
push af
|
|
ld a, [wd479]
|
|
set 0, a
|
|
ld [wd479], a
|
|
ld a, [wd003]
|
|
set 3, a
|
|
ld [wd003], a
|
|
pop af
|
|
pop bc
|
|
pop bc
|
|
.asm_489c5
|
|
push af
|
|
push bc
|
|
push de
|
|
push hl
|
|
ld a, $1
|
|
call MenuClickSound
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
pop af
|
|
call ExitMenu
|
|
hlcoord 11, 10
|
|
call Function489ea
|
|
hlcoord 11, 9
|
|
lb bc, 1, 8
|
|
call ClearBox
|
|
pop af
|
|
ld [hInMenu], a
|
|
jp Function4840c
|
|
|
|
Function489ea: ; 489ea (12:49ea)
|
|
push de
|
|
ld a, [wd475]
|
|
and $f
|
|
call Mobile12_Bin2Dec
|
|
ld a, [wd476]
|
|
and $f0
|
|
swap a
|
|
inc hl
|
|
call Mobile12_Bin2Dec
|
|
ld a, [wd476]
|
|
and $f
|
|
inc hl
|
|
call Mobile12_Bin2Dec
|
|
inc hl
|
|
ld de, String_48a38
|
|
call PlaceString
|
|
ld a, [wd477]
|
|
and $f0
|
|
swap a
|
|
inc hl
|
|
call Mobile12_Bin2Dec
|
|
ld a, [wd477]
|
|
and $f
|
|
inc hl
|
|
call Mobile12_Bin2Dec
|
|
ld a, [wd478]
|
|
and $f0
|
|
swap a
|
|
inc hl
|
|
call Mobile12_Bin2Dec
|
|
ld a, [wd478]
|
|
and $f
|
|
inc hl
|
|
call Mobile12_Bin2Dec
|
|
pop de
|
|
ret
|
|
; 48a38 (12:4a38)
|
|
|
|
String_48a38: ; 48a38
|
|
db "-@"
|
|
; 48a3a
|
|
|
|
Function48a3a: ; 48a3a (12:4a3a)
|
|
ld hl, MenuDataHeader_0x48a9c
|
|
call LoadMenuDataHeader
|
|
call Function4873c
|
|
ld a, $a
|
|
ld [w2DMenuCursorInitY], a
|
|
ld a, $b
|
|
ld [w2DMenuCursorInitX], a
|
|
ld a, $1
|
|
ld [wMenuCursorY], a
|
|
hlcoord 10, 8
|
|
ld b, $4
|
|
ld c, $8
|
|
call Function48cdc
|
|
hlcoord 12, 10
|
|
ld de, String_48aa1
|
|
call PlaceString
|
|
call StaticMenuJoypad
|
|
push af
|
|
call PlayClickSFX
|
|
call ExitMenu
|
|
pop af
|
|
bit 1, a
|
|
jp nz, Function48a9a
|
|
ld a, [wMenuCursorY]
|
|
cp $1
|
|
jr z, .asm_48a98
|
|
ld a, [wd003]
|
|
set 3, a
|
|
ld [wd003], a
|
|
ld a, [wd479]
|
|
res 0, a
|
|
ld [wd479], a
|
|
xor a
|
|
ld bc, $4
|
|
ld hl, wd475
|
|
call ByteFill
|
|
jr Function48a9a
|
|
.asm_48a98
|
|
and a
|
|
ret
|
|
|
|
Function48a9a: ; 48a9a (12:4a9a)
|
|
scf
|
|
ret
|
|
; 48a9c (12:4a9c)
|
|
|
|
MenuDataHeader_0x48a9c: ; 0x48a9c
|
|
db MENU_BACKUP_TILES ; flags
|
|
menu_coords 10, 8, SCREEN_WIDTH - 1, 13
|
|
|
|
String_48aa1: ; 48aa1
|
|
db "Tell Now"
|
|
next "Tell Later@"
|
|
; 48ab5
|
|
|
|
|
|
Function48ab5: ; 48ab5 (12:4ab5)
|
|
ld a, [hJoyPressed]
|
|
and A_BUTTON
|
|
jp nz, Function48c0f
|
|
ld a, [hJoyPressed]
|
|
and B_BUTTON
|
|
jp nz, Function48c0d
|
|
ld a, d
|
|
and a
|
|
jr z, .asm_48adf
|
|
cp $1
|
|
jr z, .asm_48ae7
|
|
cp $2
|
|
jr z, .asm_48af1
|
|
cp $3
|
|
jr z, .asm_48af9
|
|
cp $4
|
|
jr z, .asm_48b03
|
|
cp $5
|
|
jr z, .asm_48b0b
|
|
cp $6
|
|
jr .asm_48b15
|
|
.asm_48adf
|
|
ld hl, wd475
|
|
ld a, [hl]
|
|
and $f
|
|
jr .asm_48b1d
|
|
.asm_48ae7
|
|
ld hl, wd476
|
|
ld a, [hl]
|
|
swap a
|
|
or $f0
|
|
jr .asm_48b1d
|
|
.asm_48af1
|
|
ld hl, wd476
|
|
ld a, [hl]
|
|
and $f
|
|
jr .asm_48b1d
|
|
.asm_48af9
|
|
ld hl, wd477
|
|
ld a, [hl]
|
|
swap a
|
|
or $f0
|
|
jr .asm_48b1d
|
|
.asm_48b03
|
|
ld hl, wd477
|
|
ld a, [hl]
|
|
and $f
|
|
jr .asm_48b1d
|
|
.asm_48b0b
|
|
ld hl, wd478
|
|
ld a, [hl]
|
|
swap a
|
|
or $f0
|
|
jr .asm_48b1d
|
|
.asm_48b15
|
|
ld hl, wd478
|
|
ld a, [hl]
|
|
and $f
|
|
jr .asm_48b1d
|
|
.asm_48b1d
|
|
push hl
|
|
push af
|
|
ld e, $0
|
|
hlcoord 11, 10
|
|
ld a, d
|
|
.asm_48b25
|
|
and a
|
|
jr z, .asm_48b2c
|
|
inc e
|
|
dec a
|
|
jr .asm_48b25
|
|
.asm_48b2c
|
|
ld hl, hJoyLast
|
|
ld a, [hl]
|
|
and D_UP
|
|
jr nz, .asm_48b8d
|
|
ld a, [hl]
|
|
and D_DOWN
|
|
jr nz, .asm_48b55
|
|
ld a, [hl]
|
|
and D_LEFT
|
|
jp nz, Function48bd7
|
|
ld a, [hl]
|
|
and D_RIGHT
|
|
jr nz, .asm_48b9d
|
|
hlcoord 11, 10
|
|
call Function489ea
|
|
ld a, [wd002]
|
|
bit 7, a
|
|
jr nz, .asm_48b51
|
|
.asm_48b51
|
|
pop bc
|
|
pop bc
|
|
and a
|
|
ret
|
|
.asm_48b55
|
|
pop af
|
|
ld b, a
|
|
and $f
|
|
and a
|
|
ld a, b
|
|
jr nz, .asm_48b61
|
|
and $f0
|
|
add $a
|
|
.asm_48b61
|
|
dec a
|
|
.asm_48b62
|
|
push de
|
|
push af
|
|
hlcoord 10, 9
|
|
ld b, $1
|
|
ld c, $8
|
|
call Function48cdc
|
|
pop af
|
|
pop de
|
|
hlcoord 11, 10
|
|
ld b, a
|
|
ld a, d
|
|
cp $3
|
|
jr c, .asm_48b7a
|
|
inc hl
|
|
.asm_48b7a
|
|
ld a, b
|
|
pop hl
|
|
bit 7, a
|
|
jr z, .asm_48b85
|
|
call Function48c4d
|
|
jr .asm_48b88
|
|
.asm_48b85
|
|
call Function48c5a
|
|
.asm_48b88
|
|
ld a, $f0
|
|
jp Function48c00
|
|
.asm_48b8d
|
|
pop af
|
|
ld b, a
|
|
and $f
|
|
cp $9
|
|
ld a, b
|
|
jr c, .asm_48b9a
|
|
and $f0
|
|
add $ff
|
|
.asm_48b9a
|
|
inc a
|
|
jr .asm_48b62
|
|
.asm_48b9d
|
|
push de
|
|
hlcoord 10, 9
|
|
ld b, $1
|
|
ld c, $8
|
|
call Function48cdc
|
|
pop de
|
|
ld a, d
|
|
cp $6
|
|
jr nc, .asm_48baf
|
|
inc d
|
|
.asm_48baf
|
|
pop af
|
|
pop hl
|
|
ld b, a
|
|
ld a, d
|
|
cp $6
|
|
ld a, b
|
|
jr z, .asm_48bc4
|
|
bit 7, a
|
|
jr nz, .asm_48bc4
|
|
inc hl
|
|
ld a, [hl]
|
|
swap a
|
|
and $f
|
|
jr asm_48bc7
|
|
.asm_48bc4
|
|
ld a, [hl]
|
|
and $f
|
|
|
|
asm_48bc7: ; 48bc7 (12:4bc7)
|
|
hlcoord 11, 10
|
|
push af
|
|
ld a, d
|
|
cp $3
|
|
pop bc
|
|
ld a, b
|
|
jr c, .asm_48bd3
|
|
inc hl
|
|
.asm_48bd3
|
|
ld a, $f
|
|
jr Function48c00
|
|
|
|
Function48bd7: ; 48bd7 (12:4bd7)
|
|
push de
|
|
hlcoord 10, 9
|
|
ld b, $1
|
|
ld c, $8
|
|
call Function48cdc
|
|
pop de
|
|
ld a, d
|
|
and a
|
|
pop af
|
|
pop hl
|
|
ld b, a
|
|
ld a, d
|
|
and a
|
|
ld a, b
|
|
jr z, .asm_48bf3
|
|
bit 7, a
|
|
jr z, .asm_48bf8
|
|
dec d
|
|
dec hl
|
|
.asm_48bf3
|
|
ld a, [hl]
|
|
and $f
|
|
jr asm_48bc7
|
|
.asm_48bf8
|
|
dec d
|
|
ld a, [hl]
|
|
swap a
|
|
and $f
|
|
jr asm_48bc7
|
|
|
|
Function48c00: ; 48c00 (12:4c00)
|
|
push af
|
|
hlcoord 11, 10
|
|
call Function489ea
|
|
ld a, $1
|
|
and a
|
|
pop bc
|
|
ld a, b
|
|
ret
|
|
|
|
Function48c0d: ; 48c0d (12:4c0d)
|
|
xor a
|
|
and a
|
|
|
|
Function48c0f: ; 48c0f (12:4c0f)
|
|
scf
|
|
ret
|
|
|
|
Function48c11: ; 48c11 (12:4c11)
|
|
ld a, [wd002]
|
|
bit 7, a
|
|
jr z, .asm_48c20
|
|
ld a, d
|
|
cp $3
|
|
jr c, .asm_48c1e
|
|
inc hl
|
|
.asm_48c1e
|
|
ld [hl], $7f
|
|
.asm_48c20
|
|
ld a, [wd002]
|
|
swap a
|
|
and $3
|
|
inc a
|
|
cp b
|
|
jr nz, .asm_48c40
|
|
ld a, [wd002]
|
|
bit 7, a
|
|
jr z, .asm_48c3a
|
|
res 7, a
|
|
ld [wd002], a
|
|
xor a
|
|
jr .asm_48c40
|
|
.asm_48c3a
|
|
set 7, a
|
|
ld [wd002], a
|
|
xor a
|
|
.asm_48c40
|
|
swap a
|
|
ld b, a
|
|
ld a, [wd002]
|
|
and $cf
|
|
or b
|
|
ld [wd002], a
|
|
ret
|
|
|
|
Function48c4d: ; 48c4d (12:4c4d)
|
|
swap a
|
|
and $f0
|
|
push af
|
|
ld a, [hl]
|
|
and $f
|
|
ld [hl], a
|
|
pop af
|
|
or [hl]
|
|
ld [hl], a
|
|
ret
|
|
|
|
Function48c5a: ; 48c5a (12:4c5a)
|
|
push af
|
|
ld a, [hl]
|
|
and $f0
|
|
ld [hl], a
|
|
pop af
|
|
or [hl]
|
|
ld [hl], a
|
|
ret
|
|
|
|
Function48c63: ; 48c63
|
|
ld a, "@"
|
|
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, "@"
|
|
ld b, 7
|
|
.asm_48c76
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .asm_48c76
|
|
ld hl, Prefectures
|
|
ld a, c
|
|
call GetNthString
|
|
.asm_48c81
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hl]
|
|
cp "@"
|
|
jr nz, .asm_48c81
|
|
and a
|
|
pop de
|
|
ret
|
|
|
|
.asm_48c8c
|
|
scf
|
|
ret
|
|
; 48c8e
|
|
|
|
Unreferenced_Function48c8e: ; 48c8e
|
|
ld hl, wd019 + $11
|
|
ld d, h
|
|
ld e, l
|
|
farcall Function48c63
|
|
hlcoord 10, 7
|
|
call PlaceString
|
|
call WaitBGMap
|
|
ret
|
|
; 48ca3
|
|
|
|
Function48ca3: ; 48ca3
|
|
push af
|
|
push bc
|
|
push de
|
|
push hl
|
|
ld b, 0
|
|
ld c, 0
|
|
ld d, 0
|
|
.asm_48cad
|
|
cp 100
|
|
jr c, .asm_48cb6
|
|
sub 100
|
|
inc b
|
|
jr .asm_48cad
|
|
|
|
.asm_48cb6
|
|
cp 10
|
|
jr c, .asm_48cbf
|
|
sub 10
|
|
inc c
|
|
jr .asm_48cb6
|
|
|
|
.asm_48cbf
|
|
cp 1
|
|
jr c, .asm_48cc7
|
|
dec a
|
|
inc d
|
|
jr .asm_48cbf
|
|
|
|
.asm_48cc7
|
|
ld a, b
|
|
call Mobile12_Bin2Dec
|
|
inc hl
|
|
ld a, c
|
|
call Mobile12_Bin2Dec
|
|
inc hl
|
|
ld a, d
|
|
call Mobile12_Bin2Dec
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
pop af
|
|
ret
|
|
; 48cda
|
|
|
|
Function48cda: ; 48cda (12:4cda)
|
|
ld h, d
|
|
ld l, e
|
|
|
|
Function48cdc: ; 48cdc (12:4cdc)
|
|
push bc
|
|
push hl
|
|
call Function48cfd
|
|
pop hl
|
|
pop bc
|
|
ld de, AttrMap - TileMap
|
|
add hl, de
|
|
inc b
|
|
inc b
|
|
inc c
|
|
inc c
|
|
ld a, $0
|
|
.asm_48ced
|
|
push bc
|
|
push hl
|
|
.asm_48cef
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .asm_48cef
|
|
pop hl
|
|
ld de, $14
|
|
add hl, de
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_48ced
|
|
ret
|
|
|
|
Function48cfd: ; 48cfd (12:4cfd)
|
|
push hl
|
|
ld a, $4
|
|
ld [hli], a
|
|
inc a
|
|
call Function48d2a
|
|
inc a
|
|
ld [hl], a
|
|
pop hl
|
|
ld de, $14
|
|
add hl, de
|
|
.asm_48d0c
|
|
push hl
|
|
ld a, $7
|
|
ld [hli], a
|
|
ld a, $7f
|
|
call Function48d2a
|
|
ld [hl], $8
|
|
pop hl
|
|
ld de, $14
|
|
add hl, de
|
|
dec b
|
|
jr nz, .asm_48d0c
|
|
ld a, $9
|
|
ld [hli], a
|
|
ld a, $a
|
|
call Function48d2a
|
|
ld [hl], $b
|
|
ret
|
|
|
|
Function48d2a: ; 48d2a (12:4d2a)
|
|
ld d, c
|
|
.asm_48d2b
|
|
ld [hli], a
|
|
dec d
|
|
jr nz, .asm_48d2b
|
|
ret
|
|
|
|
Function48d30: ; 48d30 (12:4d30)
|
|
ld hl, wd475
|
|
call Function48d4a
|
|
ld hl, wd477
|
|
call Function48d4a
|
|
ret
|
|
|
|
Function48d3d: ; 48d3d (12:4d3d)
|
|
ld hl, wd475
|
|
call Function48d94
|
|
ld hl, wd477
|
|
call Function48d94
|
|
ret
|
|
|
|
Function48d4a: ; 48d4a (12:4d4a)
|
|
inc hl
|
|
ld a, [hl]
|
|
ld b, a
|
|
and $f
|
|
ld c, a
|
|
srl b
|
|
srl b
|
|
srl b
|
|
srl b
|
|
push bc
|
|
ld c, 10
|
|
ld a, b
|
|
call SimpleMultiply
|
|
pop bc
|
|
add c
|
|
ld [hld], a
|
|
xor a
|
|
ld [hMultiplicand + 0], a
|
|
ld [hMultiplicand + 1], a
|
|
ld a, [hl]
|
|
srl a
|
|
srl a
|
|
srl a
|
|
srl a
|
|
ld c, 10
|
|
call SimpleMultiply
|
|
ld b, a
|
|
ld a, [hli]
|
|
and $f
|
|
add b
|
|
ld [hMultiplicand + 2], a
|
|
ld a, 100
|
|
ld [hMultiplier], a
|
|
call Multiply
|
|
ld a, [hProduct + 2]
|
|
ld b, a
|
|
ld a, [hProduct + 3]
|
|
ld c, a
|
|
ld e, [hl]
|
|
add e
|
|
ld c, a
|
|
ld a, b
|
|
adc $0
|
|
ld b, a
|
|
ld a, c
|
|
ld [hld], a
|
|
ld [hl], b
|
|
ret
|
|
|
|
Function48d94: ; 48d94 (12:4d94)
|
|
xor a
|
|
ld [hDividend + 0], a
|
|
ld [hDividend + 1], a
|
|
ld a, [hli]
|
|
ld [hDividend + 0], a
|
|
ld a, [hl]
|
|
ld [hDividend + 1], a
|
|
ld a, 100
|
|
ld [hDivisor], a
|
|
ld b, 2
|
|
call Divide
|
|
ld a, [hRemainder]
|
|
ld c, 10
|
|
call SimpleDivide
|
|
sla b
|
|
sla b
|
|
sla b
|
|
sla b
|
|
or b
|
|
ld [hld], a
|
|
ld a, [hQuotient + 2]
|
|
ld c, 10
|
|
call SimpleDivide
|
|
sla b
|
|
sla b
|
|
sla b
|
|
sla b
|
|
or b
|
|
ld [hl], a
|
|
ret
|