Further split bank 4

This commit is contained in:
PikalaxALT
2015-11-11 16:11:08 -05:00
parent b522b0f165
commit 91068077f0
41 changed files with 5044 additions and 5035 deletions

View File

@@ -190,7 +190,7 @@ DoEggStep:: ; 16f3e
OverworldHatchEgg:: ; 16f5e
call ResetWindow
call LoadPartyMenuDataHeader
call LoadStandardMenuDataHeader
call Function16f70
call Function2b4d
call RestartMapMusic
@@ -324,7 +324,7 @@ Function16f7a: ; 16f7a (5:6f7a)
ld [MonType], a
push de
ld b, $0
callba Function116c1
callba NamingScreen
pop hl
ld de, StringBuffer1
call InitName

View File

@@ -38,7 +38,7 @@ RestartClock: ; 20021 (8:4021)
ld a, [hl]
push af
set NO_TEXT_SCROLL, [hl]
call LoadPartyMenuDataHeader
call LoadStandardMenuDataHeader
call ClearTileMap
ld hl, .Text_SetWithControlPad
call PrintText

View File

@@ -1078,7 +1078,7 @@ PlayerEventScriptPointers: ; 96c0c
dba UnknownScript_0x96c4d ; 4
dba WarpToNewMapScript ; 5
dba FallIntoMapScript ; 6
dba UnknownScript_0x124c8 ; 7
dba Script_OverworldWhiteout ; 7
dba HatchEggScript ; 8
dba UnknownScript_0x96c4f ; 9
dba Invalid_0x96c2d ; 10

View File

@@ -161,7 +161,7 @@ Function4e703: ; 4e703
Function4e708: ; 4e708
call GetBaseData
hlcoord 7, 2
jp Function3786
jp PrepMonFrontpic
; 4e711
Function4e711: ; 4e711

266
engine/healmachineanim.asm Executable file
View File

@@ -0,0 +1,266 @@
HealMachineAnim: ; 12324
; If you have no Pokemon, don't change the buffer. This can lead to some glitchy effects if you have no Pokemon.
ld a, [PartyCount]
and a
ret z
; The location of the healing machine relative to the player is stored in ScriptVar.
; 0: Up and left (Pokemon Center)
; 1: Left (Elm's Lab)
; 2: Up (Hall of Fame)
ld a, [ScriptVar]
ld [Buffer1], a
ld a, [rOBP1]
ld [Buffer2], a
call .DoJumptableFunctions
ld a, [Buffer2]
call Functiond24
ret
; 1233e
.DoJumptableFunctions: ; 1233e
xor a
ld [wd1ec], a
.jumpable_loop
ld a, [Buffer1]
ld e, a
ld d, 0
ld hl, .Pointers
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [wd1ec]
ld e, a
inc a
ld [wd1ec], a
add hl, de
ld a, [hl]
cp 5
jr z, .finish
ld hl, .Jumptable
rst JumpTable
jr .jumpable_loop
.finish
ret
; 12365
.Pointers: ; 12365
dw .Pokecenter
dw .ElmLab
dw .HallOfFame
; 1236b
.Pokecenter: ; 1236b
db 0, 1, 3, 5
.ElmLab: ; 1236f
db 0, 1, 3, 5
.HallOfFame: ; 12373
db 0, 2, 4, 5
; 12377
.Jumptable: ; 12377
dw .LoadGFX
dw .PC_LoadBallsOntoMachine
dw .HOF_LoadBallsOntoMachine
dw .PlayHealMusic
dw .HOF_PlaySFX
dw .dummy_5 ; never encountered
; 12383
.LoadGFX: ; 12383
call .LoadPalettes
ld de, .HealMachineGFX
ld hl, VTiles0 tile $7c
lb bc, BANK(.HealMachineGFX), $2
call Request2bpp
ret
; 12393
.PC_LoadBallsOntoMachine: ; 12393
ld hl, Sprites + $80
ld de, .PC_ElmsLab_TileMap
call .PlaceHealingMachineTile
call .PlaceHealingMachineTile
jr .LoadBallsOntoMachine
.HOF_LoadBallsOntoMachine: ; 123a1
ld hl, Sprites + $80
ld de, .HOF_TileMap
.LoadBallsOntoMachine: ; 123a7
ld a, [PartyCount]
ld b, a
.party_loop
call .PlaceHealingMachineTile
push de
ld de, SFX_SECOND_PART_OF_ITEMFINDER
call PlaySFX
pop de
ld c, 30
call DelayFrames
dec b
jr nz, .party_loop
ret
; 123bf
.PlayHealMusic: ; 123bf
ld de, MUSIC_HEAL
call PlayMusic
jp .FlashPalettes8Times
; 123c8
.HOF_PlaySFX: ; 123c8
ld de, SFX_GAME_FREAK_LOGO_GS
call PlaySFX
call .FlashPalettes8Times
call WaitSFX
ld de, SFX_BOOT_PC
call PlaySFX
ret
; 123db
.dummy_5: ; 123db
ret
; 123dc
.PC_ElmsLab_TileMap: ; 123dc
db $20, $22, $7c, $16
db $20, $26, $7c, $16
db $26, $20, $7d, $16
db $26, $28, $7d, $36
db $2b, $20, $7d, $16
db $2b, $28, $7d, $36
db $30, $20, $7d, $16
db $30, $28, $7d, $36
; 123fc
.HealMachineGFX: ; 123fc
INCBIN "gfx/unknown/0123fc.2bpp"
; 1241c
.HOF_TileMap: ; 1241c
db $3c, $51, $7d, $16
db $3c, $56, $7d, $16
db $3b, $4d, $7d, $16
db $3b, $5a, $7d, $16
db $39, $49, $7d, $16
db $39, $5d, $7d, $16
; 12434
.LoadPalettes: ; 12434
call IsCGB
jr nz, .cgb
ld a, %11100000
ld [rOBP1], a
ret
.cgb
ld hl, .palettes
ld de, OBPals + 8 * 6
ld bc, 8
ld a, $5
call FarCopyWRAM
ld a, $1
ld [hCGBPalUpdate], a
ret
; 12451
.palettes: ; 12451
RGB 31, 31, 31
RGB 31, 19, 10
RGB 31, 07, 01
RGB 00, 00, 00
; 12459
.FlashPalettes8Times: ; 12459
ld c, $8
.palette_loop
push bc
call .FlashPalettes
ld c, 10
call DelayFrames
pop bc
dec c
jr nz, .palette_loop
ret
; 12469
.FlashPalettes: ; 12469
call IsCGB
jr nz, .go
ld a, [rOBP1]
xor %00101000
ld [rOBP1], a
ret
.go
ld a, [rSVBK]
push af
ld a, $5
ld [rSVBK], a
ld hl, OBPals + 8 * 6
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
push de
ld c, $3
.palette_loop_2
ld a, [hli]
ld e, a
ld a, [hld]
ld d, a
dec hl
ld a, d
ld [hld], a
ld a, e
ld [hli], a
rept 3
inc hl
endr
dec c
jr nz, .palette_loop_2
pop de
dec hl
ld a, d
ld [hld], a
ld a, e
ld [hl], a
pop af
ld [rSVBK], a
ld a, $1
ld [hCGBPalUpdate], a
ret
; 124a3
.PlaceHealingMachineTile: ; 124a3
push bc
ld a, [Buffer1]
lb bc, $10, $20
cp $1 ; ElmsLab
jr z, .okay
lb bc, $00, $00
.okay
ld a, [de]
add c
inc de
ld [hli], a
ld a, [de]
add b
inc de
ld [hli], a
ld a, [de]
inc de
ld [hli], a
ld a, [de]
inc de
ld [hli], a
pop bc
ret
; 124c1

View File

@@ -1676,7 +1676,7 @@ Function28b87: ; 28b87
ld hl, UnknownText_0x28eb8
bccoord 1, 14
call PlaceWholeStringInBoxAtOnce
call LoadPartyMenuDataHeader
call LoadStandardMenuDataHeader
hlcoord 10, 7
ld b, $3
ld c, $7

View File

@@ -36,7 +36,7 @@ MartDialog: ; 15a61
HerbShop: ; 15a6e
call FarReadMart
call LoadPartyMenuDataHeader
call LoadStandardMenuDataHeader
ld hl, Text_HerbShop_Intro
call MartTextBox
call BuyMenu
@@ -50,7 +50,7 @@ BargainShop: ; 15a84
ld de, BargainShopData
call LoadMartPointer
call ReadMart
call LoadPartyMenuDataHeader
call LoadStandardMenuDataHeader
ld hl, Text_BargainShop_Intro
call MartTextBox
call BuyMenu
@@ -69,7 +69,7 @@ BargainShop: ; 15a84
Pharmacist: ; 15aae
call FarReadMart
call LoadPartyMenuDataHeader
call LoadStandardMenuDataHeader
ld hl, UnknownText_0x15e90
call MartTextBox
call BuyMenu
@@ -90,7 +90,7 @@ RooftopSale: ; 15ac4
.ok
call LoadMartPointer
call ReadMart
call LoadPartyMenuDataHeader
call LoadStandardMenuDataHeader
ld hl, Text_Mart_HowMayIHelpYou
call MartTextBox
call BuyMenu
@@ -175,7 +175,7 @@ StandardMart: ; 15b47
; 15b62
.HowMayIHelpYou: ; 15b62
call LoadPartyMenuDataHeader
call LoadStandardMenuDataHeader
ld hl, Text_Mart_HowMayIHelpYou
call PrintText
ld a, $1 ; top menu
@@ -183,7 +183,7 @@ StandardMart: ; 15b47
; 15b6e
.TopMenu: ; 15b6e
ld hl, MenuDataHeader_0x15f88
ld hl, MenuDataHeader_BuySell
call CopyMenuDataHeader
call InterpretMenu2
jr c, .quit
@@ -228,7 +228,7 @@ StandardMart: ; 15b47
; 15baf
.AnythingElse: ; 15baf
call LoadPartyMenuDataHeader
call LoadStandardMenuDataHeader
ld hl, Text_Mart_AnythingElse
call PrintText
ld a, $1 ; top menu
@@ -472,7 +472,7 @@ endr
BuyMenuLoop: ; 15cef
callba Function24ae8
call UpdateSprites
ld hl, MenuDataHeader_0x15e18
ld hl, MenuDataHeader_Buy
call CopyMenuDataHeader
ld a, [wd045]
ld [wMenuCursorBuffer], a
@@ -643,19 +643,19 @@ Text_Mart_CostsThisMuch: ; 0x15e13
db "@"
; 0x15e18
MenuDataHeader_0x15e18: ; 0x15e18
MenuDataHeader_Buy: ; 0x15e18
db $40 ; flags
db 03, 01 ; start coords
db 11, 19 ; end coords
dw MenuData2_0x15e20
dw .menudata2
db 1 ; default option
; 0x15e20
MenuData2_0x15e20: ; 0x15e20
db $30 ; flags
.menudata2: ; 0x15e20
db $30 ; pointers
db 4, 8 ; rows, columns
db 1 ; horizontal spacing
dbw 0, OBPals + 8 * 6
dbw 0, CurMart
dba PlaceMenuItemName
dba .PrintBCDPrices
dba Function244c3
@@ -929,16 +929,16 @@ Text_Mart_HowMayIHelpYou: ; 0x15f83
db "@"
; 0x15f88
MenuDataHeader_0x15f88: ; 0x15f88
MenuDataHeader_BuySell: ; 0x15f88
db $40 ; flags
db 00, 00 ; start coords
db 08, 07 ; end coords
dw MenuData2_0x15f90
dw .menudata2
db 1 ; default option
; 0x15f90
MenuData2_0x15f90: ; 0x15f90
db $80 ; flags
.menudata2: ; 0x15f90
db $80 ; strings
db 3 ; items
db "BUY@"
db "SELL@"

959
engine/namingscreen.asm Executable file

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
Function14a1a: ; 14a1a
call LoadPartyMenuDataHeader
call LoadStandardMenuDataHeader
callba Function5e9a
call SpeechTextBox
call UpdateSprites

View File

@@ -1560,8 +1560,8 @@ Script_returnafterbattle: ; 0x97459
and $3f
cp $1
jr nz, .notblackedout ; 0x97466 $8
ld b, BANK(UnknownScript_0x124c1)
ld hl, UnknownScript_0x124c1
ld b, BANK(Script_BattleWhiteout)
ld hl, Script_BattleWhiteout
jp ScriptJump
.notblackedout
@@ -2884,9 +2884,9 @@ Script_blackoutmod: ; 0x97a78
; map_id (MapIdParam)
call GetScriptByte
ld [wdcb2], a
ld [wLastSpawnMapGroup], a
call GetScriptByte
ld [wdcb3], a
ld [wLastSpawnMapNumber], a
ret
; 0x97a85

191
engine/selectmenu.asm Executable file
View File

@@ -0,0 +1,191 @@
SelectMenu:: ; 13327
call CheckRegisteredItem
jr c, .NotRegistered
jp UseRegisteredItem
.NotRegistered
call LoadFont
ld b, BANK(ItemMayBeRegisteredText)
ld hl, ItemMayBeRegisteredText
call MapTextbox
call CloseText
jp LoadMoveSprites
; 13340
ItemMayBeRegisteredText: ; 13340
text_jump UnknownText_0x1c1cf3
db "@"
; 13345
CheckRegisteredItem: ; 13345
ld a, [WhichRegisteredItem]
and a
jr z, .NoRegisteredItem
and REGISTERED_POCKET
rlca
rlca
ld hl, .Pockets
rst JumpTable
ret
.Pockets
dw .CheckItem
dw .CheckBall
dw .CheckKeyItem
dw .CheckTMHM
.CheckItem
ld hl, NumItems
call .CheckRegisteredNo
jr c, .NoRegisteredItem
inc hl
ld e, a
ld d, 0
rept 2
add hl, de
endr
call .IsSameItem
jr c, .NoRegisteredItem
and a
ret
.CheckKeyItem
ld a, [RegisteredItem]
ld hl, KeyItems
ld de, 1
call IsInArray
jr nc, .NoRegisteredItem
ld a, [RegisteredItem]
ld [CurItem], a
and a
ret
.CheckBall
ld hl, NumBalls
call .CheckRegisteredNo
jr nc, .NoRegisteredItem
inc hl
ld e, a
ld d, 0
rept 2
add hl, de
endr
call .IsSameItem
jr c, .NoRegisteredItem
ret
.CheckTMHM
jr .NoRegisteredItem
.NoRegisteredItem
xor a
ld [WhichRegisteredItem], a
ld [RegisteredItem], a
scf
ret
; 133a6
.CheckRegisteredNo ; 133a6
ld a, [WhichRegisteredItem]
and REGISTERED_NUMBER
dec a
cp [hl]
jr nc, .NotEnoughItems
ld [wd107], a
and a
ret
.NotEnoughItems
scf
ret
; 133b6
.IsSameItem ; 133b6
ld a, [RegisteredItem]
cp [hl]
jr nz, .NotSameItem
ld [CurItem], a
and a
ret
.NotSameItem
scf
ret
; 133c3
UseRegisteredItem: ; 133c3
callba CheckItemMenu
ld a, [wItemAttributeParamBuffer]
ld hl, .SwitchTo
rst JumpTable
ret
.SwitchTo
dw .CantUse
dw .NoFunction
dw .NoFunction
dw .NoFunction
dw .Current
dw .Party
dw .Overworld
; 133df
.NoFunction ; 133df
call LoadFont
call CantUseItem
call LoadMoveSprites
and a
ret
; 133ea
.Current ; 133ea
call LoadFont
call DoItemEffect
call LoadMoveSprites
and a
ret
; 133f5
.Party ; 133f5
call ResetWindow
call FadeToMenu
call DoItemEffect
call Function2b3c
call LoadMoveSprites
and a
ret
; 13406
.Overworld ; 13406
call ResetWindow
ld a, 1
ld [wd0ef], a
call DoItemEffect
xor a
ld [wd0ef], a
ld a, [wd0ec]
cp 1
jr nz, ._cantuse
scf
ld a, HMENURETURN_SCRIPT
ld [hMenuReturn], a
ret
; 13422
.CantUse ; 13422
call ResetWindow
._cantuse
call CantUseItem
call LoadMoveSprites
and a
ret
; 1342d

View File

@@ -42,7 +42,7 @@ SpecialsPointers:: ; c029
; Map Events
add_special BugContestJudging
add_special CheckPartyFullAfterContest
add_special CheckFirstMonFainted
add_special ContestDropOffMons
add_special ContestReturnMons
add_special Special_GiveParkBalls
add_special Special_CheckMagikarpLength

1970
engine/startmenu.asm Executable file

File diff suppressed because it is too large Load Diff

113
engine/tmhm.asm Executable file
View File

@@ -0,0 +1,113 @@
CanLearnTMHMMove: ; 11639
ld a, [CurPartySpecies]
ld [CurSpecies], a
call GetBaseData
ld hl, BaseTMHM
push hl
ld a, [wd262]
ld b, a
ld c, 0
ld hl, TMHMMoves
.loop
ld a, [hli]
and a
jr z, .end
cp b
jr z, .asm_11659
inc c
jr .loop
.asm_11659
pop hl
ld b, CHECK_FLAG
push de
ld d, 0
predef FlagPredef
pop de
ret
.end
pop hl
ld c, 0
ret
; 1166a
GetTMHMMove: ; 1166a
ld a, [wd265]
dec a
ld hl, TMHMMoves
ld b, 0
ld c, a
add hl, bc
ld a, [hl]
ld [wd265], a
ret
; 1167a
TMHMMoves: ; 1167a
db DYNAMICPUNCH
db HEADBUTT
db CURSE
db ROLLOUT
db ROAR
db TOXIC
db ZAP_CANNON
db ROCK_SMASH
db PSYCH_UP
db HIDDEN_POWER
db SUNNY_DAY
db SWEET_SCENT
db SNORE
db BLIZZARD
db HYPER_BEAM
db ICY_WIND
db PROTECT
db RAIN_DANCE
db GIGA_DRAIN
db ENDURE
db FRUSTRATION
db SOLARBEAM
db IRON_TAIL
db DRAGONBREATH
db THUNDER
db EARTHQUAKE
db RETURN
db DIG
db PSYCHIC_M
db SHADOW_BALL
db MUD_SLAP
db DOUBLE_TEAM
db ICE_PUNCH
db SWAGGER
db SLEEP_TALK
db SLUDGE_BOMB
db SANDSTORM
db FIRE_BLAST
db SWIFT
db DEFENSE_CURL
db THUNDERPUNCH
db DREAM_EATER
db DETECT
db REST
db ATTRACT
db THIEF
db STEEL_WING
db FIRE_PUNCH
db FURY_CUTTER
db NIGHTMARE
db CUT
db FLY
db SURF
db STRENGTH
db FLASH
db WHIRLPOOL
db WATERFALL
; Move tutor
db FLAMETHROWER
db THUNDERBOLT
db ICE_BEAM
db 0 ; end
; 116b7