Options menu, some mobile fns

This commit is contained in:
PikalaxALT 2015-11-16 16:01:45 -05:00
parent 4b5424368f
commit 435b0cf686
25 changed files with 2237 additions and 2162 deletions

View File

@ -1172,7 +1172,7 @@ BattleAnimCmd_BeatUp: ; cc776 (33:4776)
.done
pop af
ld [CurPartySpecies], a ; CurPartySpecies
ld b, $1
ld b, SCGB_01
call GetSGBLayout
pop af
ld [rSVBK], a

View File

@ -3146,7 +3146,7 @@ LostBattle: ; 3d38e
jr nz, .LostLinkBattle
; Greyscale
ld b, 0
ld b, SCGB_00
call GetSGBLayout
call SetPalettes
jr .end
@ -7375,7 +7375,7 @@ FinishBattleAnim: ; 3ee27
push bc
push de
push hl
ld b, $1
ld b, SCGB_01
call GetSGBLayout
call SetPalettes
call DelayFrame
@ -8510,7 +8510,7 @@ BattleIntro: ; 3f4dd
callba ClearBattleRAM
call InitEnemy
call BackUpVBGMap2
ld b, $0
ld b, SCGB_00
call GetSGBLayout
ld hl, rLCDC
res 6, [hl]
@ -8936,7 +8936,7 @@ Function3f836: ; 3f836
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
call Function3200
ld b, $8
ld b, SCGB_08
call GetSGBLayout
call SetPalettes
ld c, $8
@ -9438,7 +9438,7 @@ InitBattleDisplay: ; 3fb6c
ld [rWY], a
call WaitBGMap
call HideSprites
ld b, $1
ld b, SCGB_01
call GetSGBLayout
call SetPalettes
ld a, $90
@ -9488,7 +9488,7 @@ GetTrainerBackpic: ; 3fbff
; What gender are we?
ld a, [wPlayerSpriteSetupFlags]
bit 2, a
bit 2, a ; transformed to male
jr nz, .Chris
ld a, [PlayerGender]
bit 0, a

View File

@ -8966,7 +8966,7 @@ BattleCommand_BatonPass: ; 379c9
hlcoord 1, 0
lb bc, 4, 10
call ClearBox
ld b, 1
ld b, SCGB_01
call GetSGBLayout
call SetPalettes
call BatonPass_LinkPlayerSwitch

View File

@ -28,4 +28,5 @@ INCLUDE "constants/deco_constants.asm"
INCLUDE "constants/radio_constants.asm"
INCLUDE "constants/sprite_constants.asm"
INCLUDE "constants/tilemap_constants.asm"
INCLUDE "constants/cgb_constants.asm"
INCLUDE "constants/battle_tower_constants.asm"

32
constants/cgb_constants.asm Executable file
View File

@ -0,0 +1,32 @@
const_def
const SCGB_00
const SCGB_01
const SCGB_02
const SCGB_03
const SCGB_04
const SCGB_05
const SCGB_06
const SCGB_07
const SCGB_08
const SCGB_09
const SCGB_0A
const SCGB_0B
const SCGB_0C
const SCGB_0D
const SCGB_0E
const SCGB_0F
const SCGB_10
const SCGB_11
const SCGB_12
const SCGB_13
const SCGB_14
const SCGB_15
const SCGB_16
const SCGB_17
const SCGB_18
const SCGB_19
const SCGB_1A
const SCGB_1B
const SCGB_1C
const SCGB_1D
const SCGB_1E

View File

@ -46,15 +46,25 @@ CHECK_FLAG EQU 2
; joypad
const_def
const A_BUTTON_F
const B_BUTTON_F
const SELECT_F
const START_F
const D_RIGHT_F
const D_LEFT_F
const D_UP_F
const D_DOWN_F
NO_INPUT EQU %00000000
A_BUTTON EQU %00000001
B_BUTTON EQU %00000010
SELECT EQU %00000100
START EQU %00001000
D_RIGHT EQU %00010000
D_LEFT EQU %00100000
D_UP EQU %01000000
D_DOWN EQU %10000000
A_BUTTON EQU 1 << A_BUTTON_F
B_BUTTON EQU 1 << B_BUTTON_F
SELECT EQU 1 << SELECT_F
START EQU 1 << START_F
D_RIGHT EQU 1 << D_RIGHT_F
D_LEFT EQU 1 << D_LEFT_F
D_UP EQU 1 << D_UP_F
D_DOWN EQU 1 << D_DOWN_F
BUTTONS EQU A_BUTTON | B_BUTTON | SELECT | START
D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN

View File

@ -7,10 +7,25 @@ BREEDMON EQU 3
WILDMON EQU 4
; Options: ; cfcc
FAST_TEXT EQU 0
MED_TEXT EQU 1
SLOW_TEXT EQU 2
NO_TEXT_SCROLL EQU 4
; bits
STEREO EQU 5
BATTLE_SHIFT EQU 6
BATTLE_SCENE EQU 7
; Options2:
MENU_ACCOUNT EQU 0
; GBPrinter:
PRINT_LIGHTEST EQU $00
PRINT_LIGHTER EQU $20
PRINT_NORMAL EQU $40
PRINT_DARKER EQU $60
PRINT_DARKEST EQU $7f
; WalkingDirection: ; d043
STANDING EQU -1
DOWN EQU 0

View File

@ -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

View File

@ -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
View 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

View File

@ -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

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

2143
main.asm

File diff suppressed because it is too large Load Diff

View File

@ -9,11 +9,11 @@ NurseScript_0x18820f:
jumpstd pokecenternurse
SuperNerdScript_0x188212:
special Function10630f
iftrue UnknownScript_0x18821b
special Mobile_DummyReturnFalse
iftrue .mobile
jumptextfaceplayer UnknownText_0x188221
UnknownScript_0x18821b:
.mobile:
jumptextfaceplayer UnknownText_0x18828c
GymGuyScript_0x18821e:

View File

@ -56,11 +56,11 @@ NurseScript_0x98eb0:
jumpstd pokecenternurse
PokefanMScript_0x98eb3:
special Function10630f
iftrue UnknownScript_0x98ebc
special Mobile_DummyReturnFalse
iftrue .mobile
jumptextfaceplayer UnknownText_0x99155
UnknownScript_0x98ebc:
.mobile:
jumptextfaceplayer UnknownText_0x991aa
CooltrainerFScript_0x98ebf:

View File

@ -30,11 +30,11 @@ FastShip1F_MapScriptHeader:
blackoutmod FAST_SHIP_CABINS_SW_SSW_NW
clearevent EVENT_FAST_SHIP_HAS_ARRIVED
checkevent EVENT_FAST_SHIP_FIRST_TIME
iftrue .Vermilion
iftrue .SkipGrandpa
dotrigger $2
end
.Vermilion:
.SkipGrandpa:
dotrigger $0
end
@ -115,10 +115,10 @@ SailorScript_0x751d0:
SailorScript_0x751e4:
jumptextfaceplayer UnknownText_0x753c0
UnknownScript_0x751e7:
WorriedGrandpaTriggerRight:
moveperson $5, $14, $6
UnknownScript_0x751eb:
WorriedGrandpaTriggerLeft:
appear $5
applymovement $5, MovementData_0x7521b
playsound SFX_TACKLE
@ -287,7 +287,7 @@ FastShip1F_MapEventHeader:
.Warps:
db 12
warp_def $1, $19, 255, FAST_SHIP_1F
warp_def $1, $19, -1, FAST_SHIP_1F
warp_def $8, $1b, 1, FAST_SHIP_CABINS_NNW_NNE_NE
warp_def $8, $17, 2, FAST_SHIP_CABINS_NNW_NNE_NE
warp_def $8, $13, 3, FAST_SHIP_CABINS_NNW_NNE_NE
@ -302,8 +302,8 @@ FastShip1F_MapEventHeader:
.XYTriggers:
db 2
xy_trigger 2, $6, $18, $0, UnknownScript_0x751eb, $0, $0
xy_trigger 2, $6, $19, $0, UnknownScript_0x751e7, $0, $0
xy_trigger 2, $6, $18, $0, WorriedGrandpaTriggerLeft, $0, $0
xy_trigger 2, $6, $19, $0, WorriedGrandpaTriggerRight, $0, $0
.Signposts:
db 0

View File

@ -43,15 +43,15 @@ TrainerGuitaristClyde:
GuitaristClydeScript:
talkaftercancel
special Function10630f
iftrue UnknownScript_0x75aa5
special Mobile_DummyReturnFalse
iftrue .mobile
loadfont
writetext UnknownText_0x75d65
closetext
loadmovesprites
end
UnknownScript_0x75aa5:
.mobile:
loadfont
writetext UnknownText_0x75cfe
closetext

View File

@ -72,10 +72,10 @@ LinkReceptionistScript_Trade:
writetext Text_TradeReceptionistIntro
yesorno
iffalse .Cancel
special Function10630f
special Mobile_DummyReturnFalse ; always returns false
iffalse .NoMobile
writetext Text_TradeReceptionistMobile
special Function103612
special AskMobileOrCable
iffalse .Cancel
if_equal $1, .Mobile
.NoMobile:
@ -174,10 +174,10 @@ LinkReceptionistScript_Battle:
writetext Text_BattleReceptionistIntro
yesorno
iffalse .Cancel
special Function10630f
special Mobile_DummyReturnFalse ; always returns false
iffalse .NoMobile
writetext Text_BattleReceptionistMobile
special Function103612
special AskMobileOrCable
iffalse .Cancel
if_equal $1, .Mobile
.NoMobile:

View File

@ -68,11 +68,11 @@ LassScript_0x1a61c4:
jumptextfaceplayer UnknownText_0x1a6429
PokefanMScript_0x1a61c7:
special Function10630f
iftrue UnknownScript_0x1a61d0
special Mobile_DummyReturnFalse
iftrue .mobile
jumptextfaceplayer UnknownText_0x1a646a
UnknownScript_0x1a61d0:
.mobile:
jumptextfaceplayer UnknownText_0x1a649b
LassScript_0x1a61d3:

View File

@ -9,24 +9,24 @@ NurseScript_0x18a47d:
jumpstd pokecenternurse
TeacherScript_0x18a480:
special Function10630f
iftrue UnknownScript_0x18a489
special Mobile_DummyReturnFalse
iftrue .mobile
jumptextfaceplayer UnknownText_0x18a4a3
UnknownScript_0x18a489:
.mobile:
jumptextfaceplayer UnknownText_0x18a532
FisherScript_0x18a48c:
faceplayer
loadfont
checkevent EVENT_RETURNED_MACHINE_PART
iftrue UnknownScript_0x18a49a
iftrue .SolvedKantoPowerCrisis
writetext UnknownText_0x18a5d3
closetext
loadmovesprites
end
UnknownScript_0x18a49a:
.SolvedKantoPowerCrisis:
writetext UnknownText_0x18a62e
closetext
loadmovesprites

View File

@ -7686,9 +7686,9 @@ Unknown_1035d7: ; 1035d7
dw Unknown_103608
dw Unknown_1035fe
dw Function103612
dw Function103612
dw Function103612
dw AskMobileOrCable
dw AskMobileOrCable
dw AskMobileOrCable
Unknown_1035e7: ; 1035e7
dwcoord 0, 6
@ -7719,18 +7719,18 @@ Unknown_103608: ; 103608
db 2, 2, 3
; 103612
Function103612: ; 103612
AskMobileOrCable: ; 103612
ld hl, MenuDataHeader_103640
call LoadMenuDataHeader
ld a, [wdc40]
and $f
jr z, .asm_103622
jr z, .skip_load
ld [wMenuCursorBuffer], a
.asm_103622
.skip_load
call InterpretMenu2
call WriteBackup
jr c, .asm_10363b
jr c, .pressed_b
ld a, [MenuSelection2]
ld [ScriptVar], a
ld c, a
@ -7740,7 +7740,7 @@ Function103612: ; 103612
ld [wdc40], a
ret
.asm_10363b
.pressed_b
xor a
ld [ScriptVar], a
ret

View File

@ -743,7 +743,9 @@ endr
ret
; 10630f
Function10630f: ; 10630f
; functions related to the cable club and various NPC scripts referencing mobile communications
Mobile_DummyReturnFalse: ; 10630f
xor a
ld [ScriptVar], a
ret
@ -766,8 +768,10 @@ MobileFn_106314: mobile ; 106314
Function10632f: ; 10632f
or a
mobile
ret
Function106331: ; 106331 - called by Mobile_DummyReturnFalse in Crystal-J
; check ~[4:b000] == [7:a800]
ld a, $4
call GetSRAMBank
ld a, [$b000]
@ -781,17 +785,22 @@ Function10632f: ; 10632f
call CloseSRAM
ld a, c
cp b
jr nz, .asm_106359
jr nz, .nope
; check [7:a800] != 0
and a
jr z, .asm_106359
and $8f
jr z, .nope
; check !([7:a800] & %01110000)
and %10001111
cp c
jr nz, .asm_106359
jr nz, .nope
ld c, a
scf
ret
.asm_106359
.nope
xor a
ld c, a
ret

View File

@ -146,7 +146,7 @@ Function8e23: ; 8e23
ld a, $4
call FillBoxCGB
hlcoord 0, 12, AttrMap
ld bc, $0078
ld bc, 6 * SCREEN_WIDTH
ld a, $7
call ByteFill
ld hl, Palettes_979c