Options menu, some mobile fns
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
|
||||
PALPACKET_LENGTH EQU $10
|
||||
INCLUDE "predef/sgb.asm"
|
||||
|
||||
SHINY_ATK_BIT EQU 5
|
||||
@@ -89,7 +89,7 @@ Function8aa4: ; 8aa4
|
||||
push bc
|
||||
ld hl, PalPacket_9ce6
|
||||
ld de, wcda9
|
||||
ld bc, PalPacket_9cf6 - PalPacket_9ce6
|
||||
ld bc, PALPACKET_LENGTH
|
||||
call CopyBytes
|
||||
pop bc
|
||||
pop de
|
||||
@@ -232,7 +232,7 @@ Function8b81: ; 8b81
|
||||
push af
|
||||
ld hl, PalPacket_9ce6
|
||||
ld de, wcda9
|
||||
ld bc, $0010
|
||||
ld bc, PALPACKET_LENGTH
|
||||
call CopyBytes
|
||||
pop af
|
||||
call Function9775
|
||||
@@ -437,7 +437,7 @@ endr
|
||||
push hl
|
||||
ld hl, PalPacket_9ce6
|
||||
ld de, wcda9
|
||||
ld bc, $0010
|
||||
ld bc, PALPACKET_LENGTH
|
||||
call CopyBytes
|
||||
pop hl
|
||||
rept 2
|
||||
@@ -792,7 +792,7 @@ Function974b: ; 974b
|
||||
and a
|
||||
jp nz, Function97f9
|
||||
ld a, [wPlayerSpriteSetupFlags]
|
||||
bit 2, a
|
||||
bit 2, a ; transformed to male
|
||||
jr nz, .male
|
||||
ld a, [PlayerGender]
|
||||
and a
|
||||
@@ -1212,7 +1212,7 @@ Function99d8: ; 99d8
|
||||
ld a, $e4
|
||||
ld [rBGP], a
|
||||
ld de, VTiles1
|
||||
ld bc, $0140
|
||||
ld bc, 20 tiles
|
||||
call CopyData
|
||||
ld b, $12
|
||||
.asm_99ea
|
||||
@@ -1367,6 +1367,7 @@ BlkPacket_9b86: ; 9a86
|
||||
; 9b96
|
||||
|
||||
; 9b96
|
||||
|
||||
PalPacket_9b96: db $51, $48, $00, $49, $00, $4a, $00, $4b, $00, $00, $00, $00, $00, $00, $00, $00
|
||||
PalPacket_9ba6: db $51, $2b, $00, $24, $00, $20, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
|
||||
PalPacket_9bb6: db $51, $41, $00, $42, $00, $43, $00, $44, $00, $00, $00, $00, $00, $00, $00, $00
|
||||
|
@@ -3053,7 +3053,7 @@ Function57bc: ; 57bc
|
||||
ret
|
||||
|
||||
.ok
|
||||
ld a, 0
|
||||
ld a, PERSON_ACTION_00
|
||||
ld [PlayerAction], a
|
||||
ret
|
||||
; 57ca
|
||||
|
565
engine/options_menu.asm
Executable file
565
engine/options_menu.asm
Executable file
@@ -0,0 +1,565 @@
|
||||
_OptionsMenu: ; e41d0
|
||||
ld hl, hInMenu
|
||||
ld a, [hl]
|
||||
push af
|
||||
ld [hl], $1
|
||||
call ClearBGPalettes
|
||||
hlcoord 0, 0
|
||||
ld b, $10
|
||||
ld c, $12
|
||||
call TextBox
|
||||
hlcoord 2, 2
|
||||
ld de, StringOptions
|
||||
call PlaceString
|
||||
xor a
|
||||
ld [wJumptableIndex], a
|
||||
ld c, $6 ; number of items on the menu minus 1 (for cancel)
|
||||
|
||||
.print_text_loop ; this next will display the settings of each option when the menu is opened
|
||||
push bc
|
||||
xor a
|
||||
ld [hJoyLast], a
|
||||
call GetOptionPointer
|
||||
pop bc
|
||||
ld hl, wJumptableIndex
|
||||
inc [hl]
|
||||
dec c
|
||||
jr nz, .print_text_loop
|
||||
|
||||
call UpdateFrame
|
||||
xor a
|
||||
ld [wJumptableIndex], a
|
||||
inc a
|
||||
ld [hBGMapMode], a
|
||||
call WaitBGMap
|
||||
ld b, SCGB_08
|
||||
call GetSGBLayout
|
||||
call SetPalettes
|
||||
|
||||
.joypad_loop
|
||||
call JoyTextDelay
|
||||
ld a, [hJoyPressed]
|
||||
and START | B_BUTTON
|
||||
jr nz, .ExitOptions
|
||||
call OptionsControl
|
||||
jr c, .dpad
|
||||
call GetOptionPointer
|
||||
jr c, .ExitOptions
|
||||
|
||||
.dpad
|
||||
call Functione455c
|
||||
ld c, 3
|
||||
call DelayFrames
|
||||
jr .joypad_loop
|
||||
|
||||
.ExitOptions
|
||||
ld de, SFX_TRANSACTION
|
||||
call PlaySFX
|
||||
call WaitSFX
|
||||
pop af
|
||||
ld [hInMenu], a
|
||||
ret
|
||||
; e4241
|
||||
|
||||
StringOptions: ; e4241
|
||||
db "TEXT SPEED<LNBRK>"
|
||||
db " :<LNBRK>"
|
||||
db "BATTLE SCENE<LNBRK>"
|
||||
db " :<LNBRK>"
|
||||
db "BATTLE STYLE<LNBRK>"
|
||||
db " :<LNBRK>"
|
||||
db "SOUND<LNBRK>"
|
||||
db " :<LNBRK>"
|
||||
db "PRINT<LNBRK>"
|
||||
db " :<LNBRK>"
|
||||
db "MENU ACCOUNT<LNBRK>"
|
||||
db " :<LNBRK>"
|
||||
db "FRAME<LNBRK>"
|
||||
db " :TYPE<LNBRK>"
|
||||
db "CANCEL@"
|
||||
; e42d6
|
||||
|
||||
|
||||
GetOptionPointer: ; e42d6
|
||||
ld a, [wJumptableIndex] ; load the cursor position to a
|
||||
ld e, a ; copy it to de
|
||||
ld d, 0
|
||||
ld hl, .Pointers
|
||||
rept 2
|
||||
add hl, de
|
||||
endr
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
jp [hl] ; jump to the code of the current highlighted item
|
||||
; e42e5
|
||||
|
||||
.Pointers
|
||||
dw Options_TextSpeed
|
||||
dw Options_BattleScene
|
||||
dw Options_BattleStyle
|
||||
dw Options_Sound
|
||||
dw Options_Print
|
||||
dw Options_MenuAccount
|
||||
dw Options_Frame
|
||||
dw Options_Cancel
|
||||
; e42f5
|
||||
|
||||
|
||||
Options_TextSpeed: ; e42f5
|
||||
call GetTextSpeed
|
||||
ld a, [hJoyPressed]
|
||||
bit D_LEFT_F, a
|
||||
jr nz, .LeftPressed
|
||||
bit D_RIGHT_F, a
|
||||
jr z, .NonePressed
|
||||
ld a, c ; right pressed
|
||||
cp SLOW_TEXT
|
||||
jr c, .Increase
|
||||
ld c, FAST_TEXT +- 1
|
||||
|
||||
.Increase
|
||||
inc c
|
||||
ld a, e
|
||||
jr .Save
|
||||
|
||||
.LeftPressed
|
||||
ld a, c
|
||||
and a
|
||||
jr nz, .Decrease
|
||||
ld c, SLOW_TEXT + 1
|
||||
|
||||
.Decrease
|
||||
dec c
|
||||
ld a, d
|
||||
|
||||
.Save
|
||||
ld b, a
|
||||
ld a, [Options]
|
||||
and $f0
|
||||
or b
|
||||
ld [Options], a
|
||||
|
||||
.NonePressed
|
||||
ld b, 0
|
||||
ld hl, .Strings
|
||||
rept 2
|
||||
add hl, bc
|
||||
endr
|
||||
ld e, [hl]
|
||||
inc hl
|
||||
ld d, [hl]
|
||||
hlcoord 11, 3
|
||||
call PlaceString
|
||||
and a
|
||||
ret
|
||||
; e4331
|
||||
|
||||
.Strings
|
||||
dw .Fast
|
||||
dw .Mid
|
||||
dw .Slow
|
||||
|
||||
.Fast
|
||||
db "FAST@"
|
||||
.Mid
|
||||
db "MID @"
|
||||
.Slow
|
||||
db "SLOW@"
|
||||
; e4346
|
||||
|
||||
|
||||
GetTextSpeed: ; e4346
|
||||
ld a, [Options] ; This converts the number of frames, to 0, 1, 2 representing speed
|
||||
and 7
|
||||
cp 5 ; 5 frames of delay is slow
|
||||
jr z, .slow
|
||||
cp 1 ; 1 frame of delay is fast
|
||||
jr z, .fast
|
||||
ld c, MED_TEXT ; set it to mid if not one of the above
|
||||
lb de, 1, 5
|
||||
ret
|
||||
|
||||
.slow
|
||||
ld c, SLOW_TEXT
|
||||
lb de, 3, 1
|
||||
ret
|
||||
|
||||
.fast
|
||||
ld c, FAST_TEXT
|
||||
lb de, 5, 3
|
||||
ret
|
||||
; e4365
|
||||
|
||||
|
||||
Options_BattleScene: ; e4365
|
||||
ld hl, Options
|
||||
ld a, [hJoyPressed]
|
||||
bit D_LEFT_F, a
|
||||
jr nz, .LeftPressed
|
||||
bit D_RIGHT_F, a
|
||||
jr z, .NonePressed
|
||||
bit BATTLE_SCENE, [hl]
|
||||
jr nz, .ToggleOn
|
||||
jr .ToggleOff
|
||||
|
||||
.LeftPressed
|
||||
bit BATTLE_SCENE, [hl]
|
||||
jr z, .ToggleOff
|
||||
jr .ToggleOn
|
||||
|
||||
.NonePressed
|
||||
bit BATTLE_SCENE, [hl]
|
||||
jr z, .ToggleOn
|
||||
jr .ToggleOff
|
||||
|
||||
.ToggleOn
|
||||
res BATTLE_SCENE, [hl]
|
||||
ld de, .On
|
||||
jr .Display
|
||||
|
||||
.ToggleOff
|
||||
set BATTLE_SCENE, [hl]
|
||||
ld de, .Off
|
||||
|
||||
.Display
|
||||
hlcoord 11, 5
|
||||
call PlaceString
|
||||
and a
|
||||
ret
|
||||
; e4398
|
||||
|
||||
.On
|
||||
db "ON @"
|
||||
.Off
|
||||
db "OFF@"
|
||||
; e43a0
|
||||
|
||||
|
||||
Options_BattleStyle: ; e43a0
|
||||
ld hl, Options
|
||||
ld a, [hJoyPressed]
|
||||
bit D_LEFT_F, a
|
||||
jr nz, .LeftPressed
|
||||
bit D_RIGHT_F, a
|
||||
jr z, .NonePressed
|
||||
bit BATTLE_SHIFT, [hl]
|
||||
jr nz, .ToggleShift
|
||||
jr .ToggleSet
|
||||
|
||||
.LeftPressed
|
||||
bit BATTLE_SHIFT, [hl]
|
||||
jr z, .ToggleSet
|
||||
jr .ToggleShift
|
||||
|
||||
.NonePressed
|
||||
bit BATTLE_SHIFT, [hl]
|
||||
jr nz, .ToggleSet
|
||||
|
||||
.ToggleShift
|
||||
res BATTLE_SHIFT, [hl]
|
||||
ld de, .Shift
|
||||
jr .Display
|
||||
|
||||
.ToggleSet
|
||||
set BATTLE_SHIFT, [hl]
|
||||
ld de, .Set
|
||||
|
||||
.Display
|
||||
hlcoord 11, 7
|
||||
call PlaceString
|
||||
and a
|
||||
ret
|
||||
; e43d1
|
||||
|
||||
.Shift
|
||||
db "SHIFT@"
|
||||
.Set
|
||||
db "SET @"
|
||||
; e43dd
|
||||
|
||||
|
||||
Options_Sound: ; e43dd
|
||||
ld hl, Options
|
||||
ld a, [hJoyPressed]
|
||||
bit D_LEFT_F, a
|
||||
jr nz, .LeftPressed
|
||||
bit D_RIGHT_F, a
|
||||
jr z, .NonePressed
|
||||
bit STEREO, [hl]
|
||||
jr nz, .SetMono
|
||||
jr .SetStereo
|
||||
|
||||
.LeftPressed
|
||||
bit STEREO, [hl]
|
||||
jr z, .SetStereo
|
||||
jr .SetMono
|
||||
|
||||
.NonePressed
|
||||
bit STEREO, [hl]
|
||||
jr nz, .ToggleStereo
|
||||
jr .ToggleMono
|
||||
|
||||
.SetMono
|
||||
res STEREO, [hl]
|
||||
call RestartMapMusic
|
||||
|
||||
.ToggleMono
|
||||
ld de, .Mono
|
||||
jr .Display
|
||||
|
||||
.SetStereo
|
||||
set STEREO, [hl]
|
||||
call RestartMapMusic
|
||||
|
||||
.ToggleStereo
|
||||
ld de, .Stereo
|
||||
|
||||
.Display
|
||||
hlcoord 11, 9
|
||||
call PlaceString
|
||||
and a
|
||||
ret
|
||||
; e4416
|
||||
|
||||
.Mono
|
||||
db "MONO @"
|
||||
.Stereo
|
||||
db "STEREO@"
|
||||
; e4424
|
||||
|
||||
|
||||
Options_Print: ; e4424
|
||||
call GetPrinterSetting
|
||||
ld a, [hJoyPressed]
|
||||
bit D_LEFT_F, a
|
||||
jr nz, .LeftPressed
|
||||
bit D_RIGHT_F, a
|
||||
jr z, .NonePressed
|
||||
ld a, c
|
||||
cp 4
|
||||
jr c, .Increase
|
||||
ld c, -1
|
||||
|
||||
.Increase
|
||||
inc c
|
||||
ld a, e
|
||||
jr .Save
|
||||
|
||||
.LeftPressed
|
||||
ld a, c
|
||||
and a
|
||||
jr nz, .Decrease
|
||||
ld c, 5
|
||||
|
||||
.Decrease
|
||||
dec c
|
||||
ld a, d
|
||||
|
||||
.Save
|
||||
ld b, a
|
||||
ld [GBPrinter], a
|
||||
|
||||
.NonePressed
|
||||
ld b, $0
|
||||
ld hl, .Strings
|
||||
rept 2
|
||||
add hl, bc
|
||||
endr
|
||||
ld e, [hl]
|
||||
inc hl
|
||||
ld d, [hl]
|
||||
hlcoord 11, 11
|
||||
call PlaceString
|
||||
and a
|
||||
ret
|
||||
; e445a
|
||||
|
||||
.Strings
|
||||
dw .Lightest
|
||||
dw .Lighter
|
||||
dw .Normal
|
||||
dw .Darker
|
||||
dw .Darkest
|
||||
|
||||
.Lightest
|
||||
db "LIGHTEST@"
|
||||
.Lighter
|
||||
db "LIGHTER @"
|
||||
.Normal
|
||||
db "NORMAL @"
|
||||
.Darker
|
||||
db "DARKER @"
|
||||
.Darkest
|
||||
db "DARKEST @"
|
||||
; e4491
|
||||
|
||||
|
||||
GetPrinterSetting: ; e4491
|
||||
ld a, [GBPrinter] ; converts from the stored printer setting to 0,1,2,3,4
|
||||
and a
|
||||
jr z, .IsLightest
|
||||
cp PRINT_LIGHTER
|
||||
jr z, .IsLight
|
||||
cp PRINT_DARKER
|
||||
jr z, .IsDark
|
||||
cp PRINT_DARKEST
|
||||
jr z, .IsDarkest
|
||||
ld c, 2 ; normal if none of the above
|
||||
lb de, PRINT_LIGHTER, PRINT_DARKER ; the 2 values next to this setting
|
||||
ret
|
||||
|
||||
.IsLightest
|
||||
ld c, 0
|
||||
lb de, PRINT_DARKEST, PRINT_LIGHTER ; the 2 values next to this setting
|
||||
ret
|
||||
|
||||
.IsLight
|
||||
ld c, 1
|
||||
lb de, PRINT_LIGHTEST, PRINT_NORMAL ; the 2 values next to this setting
|
||||
ret
|
||||
|
||||
.IsDark
|
||||
ld c, 3
|
||||
lb de, PRINT_NORMAL, PRINT_DARKEST ; the 2 values next to this setting
|
||||
ret
|
||||
|
||||
.IsDarkest
|
||||
ld c, 4
|
||||
lb de, PRINT_DARKER, PRINT_LIGHTEST ; the 2 values next to this setting
|
||||
ret
|
||||
; e44c1
|
||||
|
||||
Options_MenuAccount: ; e44c1
|
||||
ld hl, Options2
|
||||
ld a, [hJoyPressed]
|
||||
bit D_LEFT_F, a
|
||||
jr nz, .LeftPressed
|
||||
bit D_RIGHT_F, a
|
||||
jr z, .NonePressed
|
||||
bit MENU_ACCOUNT, [hl]
|
||||
jr nz, .ToggleOff
|
||||
jr .ToggleOn
|
||||
|
||||
.LeftPressed
|
||||
bit MENU_ACCOUNT, [hl]
|
||||
jr z, .ToggleOn
|
||||
jr .ToggleOff
|
||||
|
||||
.NonePressed
|
||||
bit MENU_ACCOUNT, [hl]
|
||||
jr nz, .ToggleOn
|
||||
|
||||
.ToggleOff
|
||||
res MENU_ACCOUNT, [hl]
|
||||
ld de, .Off
|
||||
jr .Display
|
||||
|
||||
.ToggleOn
|
||||
set MENU_ACCOUNT, [hl]
|
||||
ld de, .On
|
||||
|
||||
.Display
|
||||
hlcoord 11, 13
|
||||
call PlaceString
|
||||
and a
|
||||
ret
|
||||
; e44f2
|
||||
|
||||
.Off
|
||||
db "OFF@"
|
||||
.On
|
||||
db "ON @"
|
||||
; e44fa
|
||||
|
||||
|
||||
Options_Frame: ; e44fa
|
||||
ld hl, TextBoxFrame
|
||||
ld a, [hJoyPressed]
|
||||
bit D_LEFT_F, a
|
||||
jr nz, .LeftPressed
|
||||
bit D_RIGHT_F, a
|
||||
jr nz, .RightPressed
|
||||
and a
|
||||
ret
|
||||
|
||||
.RightPressed
|
||||
ld a, [hl]
|
||||
inc a
|
||||
jr .Save
|
||||
|
||||
.LeftPressed
|
||||
ld a, [hl]
|
||||
dec a
|
||||
|
||||
.Save
|
||||
and $7
|
||||
ld [hl], a
|
||||
UpdateFrame: ; e4512
|
||||
ld a, [TextBoxFrame]
|
||||
hlcoord 16, 15 ; where on the screen the number is drawn
|
||||
add "1"
|
||||
ld [hl], a
|
||||
call LoadFontsExtra
|
||||
and a
|
||||
ret
|
||||
; e4520
|
||||
|
||||
Options_Cancel: ; e4520
|
||||
ld a, [hJoyPressed]
|
||||
and A_BUTTON
|
||||
jr nz, .Exit
|
||||
and a
|
||||
ret
|
||||
|
||||
.Exit
|
||||
scf
|
||||
ret
|
||||
; e452a
|
||||
|
||||
OptionsControl: ; e452a
|
||||
ld hl, wJumptableIndex
|
||||
ld a, [hJoyLast]
|
||||
cp D_DOWN
|
||||
jr z, .DownPressed
|
||||
cp D_UP
|
||||
jr z, .UpPressed
|
||||
and a
|
||||
ret
|
||||
|
||||
.DownPressed
|
||||
ld a, [hl] ; load the cursor position to a
|
||||
cp $7 ; maximum number of items in option menu
|
||||
jr nz, .CheckFive
|
||||
ld [hl], $0
|
||||
scf
|
||||
ret
|
||||
|
||||
.CheckFive ; I have no idea why this exists...
|
||||
cp $5
|
||||
jr nz, .Increase
|
||||
ld [hl], $5
|
||||
|
||||
.Increase
|
||||
inc [hl]
|
||||
scf
|
||||
ret
|
||||
|
||||
.UpPressed
|
||||
ld a, [hl]
|
||||
cp $6
|
||||
jr nz, .NotSix
|
||||
ld [hl], $5 ; Another thing where I'm not sure why it exists
|
||||
scf
|
||||
ret
|
||||
|
||||
.NotSix
|
||||
and a
|
||||
jr nz, .Decrease
|
||||
ld [hl], $8 ; number of option items +1
|
||||
|
||||
.Decrease
|
||||
dec [hl]
|
||||
scf
|
||||
ret
|
||||
; e455c
|
@@ -402,3 +402,263 @@ PlacesAndPeopleName: db "Places & People@"
|
||||
LetsAllSingName: db "Let's All Sing!@"
|
||||
PokeFluteStationName: db "# FLUTE@"
|
||||
; 9191c
|
||||
|
||||
|
||||
Function9191c: ; 9191c
|
||||
ld hl, Options
|
||||
ld a, [hl]
|
||||
push af
|
||||
set 4, [hl]
|
||||
ld a, [hInMenu]
|
||||
push af
|
||||
ld a, $1
|
||||
ld [hInMenu], a
|
||||
ld a, [VramState]
|
||||
push af
|
||||
xor a
|
||||
ld [VramState], a
|
||||
call ClearBGPalettes
|
||||
call ClearTileMap
|
||||
call ClearSprites
|
||||
call DisableLCD
|
||||
call Function90c4e
|
||||
callba Function8cf53
|
||||
ld a, 8
|
||||
call SkipMusic
|
||||
ld a, $e3
|
||||
ld [rLCDC], a
|
||||
call Function90d56
|
||||
ld [wd002], a
|
||||
ld [wd003], a
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
call Function91a04
|
||||
call Function3200
|
||||
ld a, [wd002]
|
||||
call Function9106a
|
||||
ld a, [wd003]
|
||||
call Function91098
|
||||
ld a, c
|
||||
ld [wd004], a
|
||||
ld a, b
|
||||
ld [wd005], a
|
||||
ld b, SCGB_02
|
||||
call GetSGBLayout
|
||||
call SetPalettes
|
||||
ld a, [hCGB]
|
||||
and a
|
||||
jr z, .asm_9198b
|
||||
ld a, $e4
|
||||
call Functioncf8
|
||||
call DelayFrame
|
||||
|
||||
.asm_9198b
|
||||
ld a, [wd002]
|
||||
cp KANTO_LANDMARK
|
||||
jr nc, .asm_9199b
|
||||
ld d, KANTO_LANDMARK - 1
|
||||
ld e, 1
|
||||
call Function919b0
|
||||
jr .asm_919a1
|
||||
|
||||
.asm_9199b
|
||||
call Function910e8
|
||||
call Function919b0
|
||||
|
||||
.asm_919a1
|
||||
pop af
|
||||
ld [VramState], a
|
||||
pop af
|
||||
ld [hInMenu], a
|
||||
pop af
|
||||
ld [Options], a
|
||||
call ClearBGPalettes
|
||||
ret
|
||||
; 919b0
|
||||
|
||||
Function919b0: ; 919b0
|
||||
.asm_919b0
|
||||
call JoyTextDelay
|
||||
ld hl, hJoyPressed
|
||||
ld a, [hl]
|
||||
and B_BUTTON
|
||||
ret nz
|
||||
ld hl, hJoyLast
|
||||
ld a, [hl]
|
||||
and D_UP
|
||||
jr nz, .asm_919d4
|
||||
ld a, [hl]
|
||||
and D_DOWN
|
||||
jr nz, .asm_919e1
|
||||
.asm_919c7
|
||||
push de
|
||||
callba Function8cf69
|
||||
pop de
|
||||
call DelayFrame
|
||||
jr .asm_919b0
|
||||
|
||||
.asm_919d4
|
||||
ld hl, wd003
|
||||
ld a, [hl]
|
||||
cp d
|
||||
jr c, .asm_919de
|
||||
ld a, e
|
||||
dec a
|
||||
ld [hl], a
|
||||
|
||||
.asm_919de
|
||||
inc [hl]
|
||||
jr .asm_919ec
|
||||
|
||||
.asm_919e1
|
||||
ld hl, wd003
|
||||
ld a, [hl]
|
||||
cp e
|
||||
jr nz, .asm_919eb
|
||||
ld a, d
|
||||
inc a
|
||||
ld [hl], a
|
||||
|
||||
.asm_919eb
|
||||
dec [hl]
|
||||
|
||||
.asm_919ec
|
||||
push de
|
||||
ld a, [wd003]
|
||||
call Function910b4
|
||||
ld a, [wd004]
|
||||
ld c, a
|
||||
ld a, [wd005]
|
||||
ld b, a
|
||||
ld a, [wd003]
|
||||
call Function910d4
|
||||
pop de
|
||||
jr .asm_919c7
|
||||
; 91a04
|
||||
|
||||
Function91a04: ; 91a04
|
||||
ld a, [wd002]
|
||||
cp KANTO_LANDMARK
|
||||
jr nc, .asm_91a0f
|
||||
ld e, $0
|
||||
jr .asm_91a11
|
||||
|
||||
.asm_91a0f
|
||||
ld e, $1
|
||||
|
||||
.asm_91a11
|
||||
callba Function91ae1
|
||||
ld a, $7
|
||||
ld bc, 6
|
||||
hlcoord 1, 0
|
||||
call ByteFill
|
||||
hlcoord 0, 0
|
||||
ld [hl], $6
|
||||
hlcoord 7, 0
|
||||
ld [hl], $17
|
||||
hlcoord 7, 1
|
||||
ld [hl], $16
|
||||
hlcoord 7, 2
|
||||
ld [hl], $26
|
||||
ld a, $7
|
||||
ld bc, NAME_LENGTH
|
||||
hlcoord 8, 2
|
||||
call ByteFill
|
||||
hlcoord 19, 2
|
||||
ld [hl], $17
|
||||
ld a, [wd003]
|
||||
call Function910b4
|
||||
callba TownMapPals
|
||||
ret
|
||||
; 91a53
|
||||
|
||||
PlayRadio: ; 91a53
|
||||
ld hl, Options
|
||||
ld a, [hl]
|
||||
push af
|
||||
set 4, [hl]
|
||||
call .PlayStation
|
||||
ld c, 100
|
||||
call DelayFrames
|
||||
.loop
|
||||
call JoyTextDelay
|
||||
ld a, [hJoyPressed]
|
||||
and A_BUTTON | B_BUTTON
|
||||
jr nz, .stop
|
||||
ld a, [wc6da]
|
||||
ld l, a
|
||||
ld a, [wc6db]
|
||||
ld h, a
|
||||
ld a, [wc6d9]
|
||||
and a
|
||||
jr z, .zero
|
||||
rst FarCall
|
||||
|
||||
.zero
|
||||
call DelayFrame
|
||||
jr .loop
|
||||
|
||||
.stop
|
||||
pop af
|
||||
ld [Options], a
|
||||
call Function91492
|
||||
ret
|
||||
; 91a87
|
||||
|
||||
.PlayStation: ; 91a87
|
||||
ld a, -1
|
||||
ld [EnemyTurnsTaken], a
|
||||
ld hl, .StationPointers
|
||||
ld d, $0
|
||||
rept 2
|
||||
add hl, de
|
||||
endr
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ld de, .jump_return
|
||||
push de
|
||||
jp [hl]
|
||||
|
||||
.jump_return
|
||||
push de
|
||||
hlcoord 0, 12
|
||||
lb bc, 4, 18
|
||||
call TextBox
|
||||
hlcoord 1, 14
|
||||
ld [hl], $72
|
||||
pop de
|
||||
hlcoord 2, 14
|
||||
call PlaceString
|
||||
ld h, b
|
||||
ld l, c
|
||||
ld [hl], $73
|
||||
call WaitBGMap
|
||||
ret
|
||||
; 91ab9
|
||||
|
||||
.StationPointers: ; 91ab9
|
||||
dw .OakOrPnP
|
||||
dw LoadStation_OaksPokemonTalk
|
||||
dw LoadStation_PokedexShow
|
||||
dw LoadStation_PokemonMusic
|
||||
dw LoadStation_LuckyChannel
|
||||
dw LoadStation_UnownRadio
|
||||
dw LoadStation_PlacesAndPeople
|
||||
dw LoadStation_LetsAllSing
|
||||
dw LoadStation_RocketRadio
|
||||
; 91acb
|
||||
|
||||
.OakOrPnP: ; 91acb
|
||||
call IsInJohto
|
||||
and a
|
||||
jr nz, .kanto
|
||||
call UpdateTime
|
||||
ld a, [TimeOfDay]
|
||||
and a
|
||||
jp z, LoadStation_PokedexShow
|
||||
jp LoadStation_OaksPokemonTalk
|
||||
|
||||
.kanto
|
||||
jp LoadStation_PlacesAndPeople
|
||||
; 91ae1
|
||||
|
@@ -160,7 +160,7 @@ SpecialsPointers:: ; c029
|
||||
add_special Function17d2b6
|
||||
add_special Function17d2ce
|
||||
add_special Function17f53d
|
||||
add_special Function103612
|
||||
add_special AskMobileOrCable
|
||||
add_special SpecialHoOhChamber
|
||||
add_special Function102142
|
||||
add_special Special_CelebiShrineEvent
|
||||
@@ -180,7 +180,7 @@ SpecialsPointers:: ; c029
|
||||
add_special Mobile_HealParty
|
||||
add_special RefreshSprites
|
||||
add_special Function1037c2
|
||||
add_special Function10630f
|
||||
add_special Mobile_DummyReturnFalse
|
||||
add_special Function103780
|
||||
add_special Function10387b
|
||||
add_special Function4ae12
|
||||
|
@@ -1,3 +1,17 @@
|
||||
Function91ae1: ; 91ae1
|
||||
ld a, e
|
||||
and a
|
||||
jr nz, .kanto
|
||||
call Function91ff2
|
||||
call FillJohtoMap
|
||||
ret
|
||||
|
||||
.kanto
|
||||
call Function91ff2
|
||||
call FillKantoMap
|
||||
ret
|
||||
; 91af3
|
||||
|
||||
_FlyMap: ; 91af3
|
||||
call ClearBGPalettes
|
||||
call ClearTileMap
|
||||
@@ -419,14 +433,18 @@ Function91d11: ; 91d11
|
||||
ld [hBGMapMode], a
|
||||
ld a, $1
|
||||
ld [hInMenu], a
|
||||
|
||||
ld de, GFX_922d1
|
||||
ld hl, VTiles0 tile $7f
|
||||
lb bc, BANK(GFX_922d1), 1
|
||||
call Request2bpp ; actually 1bpp
|
||||
|
||||
call Function91ed0
|
||||
|
||||
ld hl, VTiles0 tile $78
|
||||
ld c, $4
|
||||
call Request2bpp
|
||||
|
||||
call Function91ff2
|
||||
call FillKantoMap
|
||||
call Function91de9
|
||||
@@ -445,27 +463,27 @@ Function91d11: ; 91d11
|
||||
ld [hBGMapMode], a
|
||||
xor a
|
||||
call Function91e1e
|
||||
.asm_91d6e
|
||||
.loop
|
||||
call JoyTextDelay
|
||||
ld hl, hJoyPressed
|
||||
ld a, [hl]
|
||||
and A_BUTTON | B_BUTTON
|
||||
jr nz, .asm_91d8f
|
||||
jr nz, .a_b
|
||||
ld a, [hJoypadDown]
|
||||
and SELECT
|
||||
jr nz, .asm_91d87
|
||||
jr nz, .select
|
||||
call Function91d9b
|
||||
call Function91dcd
|
||||
jr .asm_91d8a
|
||||
jr .next
|
||||
|
||||
.asm_91d87
|
||||
.select
|
||||
call Function91e5a
|
||||
|
||||
.asm_91d8a
|
||||
.next
|
||||
call DelayFrame
|
||||
jr .asm_91d6e
|
||||
jr .loop
|
||||
|
||||
.asm_91d8f
|
||||
.a_b
|
||||
call ClearSprites
|
||||
pop af
|
||||
ld [wd003], a
|
||||
@@ -914,3 +932,137 @@ GFX_922e1: ; 922e1
|
||||
INCBIN "gfx/unknown/0922e1.2bpp"
|
||||
GFX_92301: ; 92301
|
||||
INCBIN "gfx/unknown/092301.2bpp"
|
||||
Function92311: ; unreferenced
|
||||
xor a
|
||||
ld [wd002], a
|
||||
call ClearBGPalettes
|
||||
call ClearTileMap
|
||||
call ClearSprites
|
||||
ld hl, hInMenu
|
||||
ld a, [hl]
|
||||
push af
|
||||
ld [hl], $1
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
callba Function8cf53
|
||||
call Function91ff2
|
||||
ld de, GFX_922e1
|
||||
ld hl, VTiles2 tile $30
|
||||
lb bc, BANK(GFX_922e1), 6
|
||||
call Request1bpp
|
||||
call FillKantoMap
|
||||
call TownMapBubble
|
||||
call TownMapPals
|
||||
ld hl, VBGMap1
|
||||
call TownMapBGUpdate
|
||||
call FillJohtoMap
|
||||
call TownMapBubble
|
||||
call TownMapPals
|
||||
ld hl, VBGMap0
|
||||
call TownMapBGUpdate
|
||||
call TownMapMon
|
||||
ld a, c
|
||||
ld [wd003], a
|
||||
ld a, b
|
||||
ld [wd004], a
|
||||
ld b, SCGB_02
|
||||
call GetSGBLayout
|
||||
call SetPalettes
|
||||
.loop
|
||||
call JoyTextDelay
|
||||
ld hl, hJoyPressed
|
||||
ld a, [hl]
|
||||
and B_BUTTON
|
||||
jr nz, .pressedB
|
||||
ld a, [hl]
|
||||
and A_BUTTON
|
||||
jr nz, .pressedA
|
||||
call Function923b8
|
||||
call GetMapCursorCoordinates
|
||||
callba Function8cf69
|
||||
call DelayFrame
|
||||
jr .loop
|
||||
|
||||
.pressedB
|
||||
ld a, -1
|
||||
jr .asm_9239f
|
||||
|
||||
.pressedA
|
||||
ld a, [wd002]
|
||||
ld l, a
|
||||
ld h, 0
|
||||
add hl, hl
|
||||
ld de, Flypoints + 1
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
|
||||
.asm_9239f
|
||||
ld [wd002], a
|
||||
pop af
|
||||
ld [hInMenu], a
|
||||
call ClearBGPalettes
|
||||
ld a, $90
|
||||
ld [hWY], a
|
||||
xor a
|
||||
ld [hBGMapAddress], a
|
||||
ld a, VBGMap0 / $100
|
||||
ld [hBGMapAddress + 1], a
|
||||
ld a, [wd002]
|
||||
ld e, a
|
||||
ret
|
||||
; 923b8
|
||||
|
||||
Function923b8: ; 923b8
|
||||
ld hl, hJoyLast
|
||||
ld a, [hl]
|
||||
and D_DOWN | D_RIGHT
|
||||
jr nz, .asm_923c6
|
||||
ld a, [hl]
|
||||
and D_UP | D_LEFT
|
||||
jr nz, .asm_923d3
|
||||
ret
|
||||
|
||||
.asm_923c6
|
||||
ld hl, wd002
|
||||
ld a, [hl]
|
||||
cp FLY_INDIGO
|
||||
jr c, .asm_923d0
|
||||
ld [hl], -1
|
||||
.asm_923d0
|
||||
inc [hl]
|
||||
jr .asm_923dd
|
||||
|
||||
.asm_923d3
|
||||
ld hl, wd002
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr nz, .asm_923dc
|
||||
ld [hl], FLY_INDIGO + 1
|
||||
.asm_923dc
|
||||
dec [hl]
|
||||
|
||||
.asm_923dd
|
||||
ld a, [wd002]
|
||||
cp KANTO_FLYPOINT
|
||||
jr c, .johto
|
||||
|
||||
call FillKantoMap
|
||||
xor a
|
||||
ld b, $9c
|
||||
jr .asm_923f3
|
||||
|
||||
.johto
|
||||
call FillJohtoMap
|
||||
ld a, $90
|
||||
ld b, $98
|
||||
|
||||
.asm_923f3
|
||||
ld [hWY], a
|
||||
ld a, b
|
||||
ld [hBGMapAddress + 1], a
|
||||
call TownMapBubble
|
||||
call WaitBGMap
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
ret
|
||||
; 92402
|
1057
engine/wildmons.asm
Executable file
1057
engine/wildmons.asm
Executable file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user