Added a bunch of constants for the bitflags of each kind of menu. Some are slightly vague or too long, but I'm not sure how to else name them.
1846 lines
27 KiB
NASM
Executable File
1846 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
|
|
db 02, 11 ; start coords
|
|
db 07, 19 ; end coords
|
|
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
|
|
db 00, 10 ; start coords
|
|
db 17, 19 ; end coords
|
|
|
|
MenuDataHeader_0x48509: ; 0x48509
|
|
db MENU_BACKUP_TILES ; flags
|
|
db 05, 10 ; start coords
|
|
db 07, 19 ; end coords
|
|
|
|
MenuDataHeader_0x4850e: ; 0x4850e
|
|
db MENU_BACKUP_TILES ; flags
|
|
db 09, 10 ; start coords
|
|
db 11, 19 ; end coords
|
|
|
|
MenuDataHeader_0x48513: ; 0x48513
|
|
db MENU_BACKUP_TILES ; flags
|
|
db 01, 11 ; start coords
|
|
db 12, 18 ; end coords
|
|
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
|
|
db 08, 10 ; start coords
|
|
db 13, 19 ; end coord
|
|
|
|
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
|
|
|
|
Function48c8e: ; 48c8e
|
|
; unreferenced
|
|
ld hl, $d02a
|
|
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
|