This commit is contained in:
YamaArashi 2015-07-18 20:49:52 -07:00
parent b96ef8d2d4
commit c169073eed
61 changed files with 743 additions and 612 deletions

View file

@ -12,7 +12,7 @@ PKMNLeaguePC: ; 0x7657e
ld [hTilesetType], a
ld [W_SPRITEFLIPPED], a
ld [wUpdateSpritesEnabled], a
ld [wTrainerScreenX], a
ld [wHoFTeamIndex2], a
ld [wHoFTeamNo], a
ld a, [wNumHoFTeams]
ld b, a
@ -27,13 +27,13 @@ PKMNLeaguePC: ; 0x7657e
ld hl, wHoFTeamNo
inc [hl]
push bc
ld a, [wTrainerScreenX]
ld [wHoFMonSpecies], a
ld a, [wHoFTeamIndex2]
ld [wHoFTeamIndex], a
callba LoadHallOfFameTeams
call LeaguePCShowTeam
pop bc
jr c, .doneShowingTeams
ld hl, wTrainerScreenX
ld hl, wHoFTeamIndex2
inc [hl]
ld a, [hl]
cp b

View file

@ -1,17 +1,16 @@
MainMenu: ; 5af2 (1:5af2)
; Check save file
call Func_5bff
call InitOptions
xor a
ld [wd08a],a
ld [wOptionsInitialized],a
inc a
ld [wd088],a
call Func_609e
jr nc,.next0
ld [wSaveFileStatus],a
call CheckForPlayerNameInSRAM
jr nc,.mainMenuLoop
; Predef 52 loads the save from SRAM to RAM
predef LoadSAV
.next0
.mainMenuLoop
ld c,20
call DelayFrames
xor a ; LINK_STATE_NONE
@ -30,9 +29,10 @@ MainMenu: ; 5af2 (1:5af2)
call LoadFontTilePatterns
ld hl,wd730
set 6,[hl]
ld a,[wd088]
ld a,[wSaveFileStatus]
cp a,1
jr z,.next1
jr z,.noSaveFile
; there's a save file
coord hl, 0, 0
ld b,6
ld c,13
@ -41,7 +41,7 @@ MainMenu: ; 5af2 (1:5af2)
ld de,ContinueText
call PlaceString
jr .next2
.next1
.noSaveFile
coord hl, 0, 0
ld b,4
ld c,13
@ -63,31 +63,33 @@ MainMenu: ; 5af2 (1:5af2)
ld [wTopMenuItemY],a
ld a,$B
ld [wMenuWatchedKeys],a
ld a,[wd088]
ld a,[wSaveFileStatus]
ld [wMaxMenuItem],a
call HandleMenuInput
bit 1,a
jp nz,LoadTitlescreenGraphics ; load title screen (gfx and arrangement)
bit 1,a ; pressed B?
jp nz,DisplayTitleScreen ; if so, go back to the title screen
ld c,20
call DelayFrames
ld a,[wCurrentMenuItem]
ld b,a
ld a,[wd088]
ld a,[wSaveFileStatus]
cp a,2
jp z,.next3
inc b ; adjust MenuArrow_Counter
.next3
jp z,.skipInc
; If there's no save file, increment the current menu item so that the numbers
; are the same whether or not there's a save file.
inc b
.skipInc
ld a,b
and a
jr z,.next4 ; if press_A on Continue
jr z,.choseContinue
cp a,1
jp z,Func_5d52 ; if press_A on NewGame
call DisplayOptionMenu ; if press_a on Options
jp z,StartNewGame
call DisplayOptionMenu
ld a,1
ld [wd08a],a
jp .next0
.next4
call ContinueGame
ld [wOptionsInitialized],a
jp .mainMenuLoop
.choseContinue
call DisplayContinueGameInfo
ld hl,wd126
set 5,[hl]
.inputLoop
@ -100,7 +102,7 @@ MainMenu: ; 5af2 (1:5af2)
bit 0,a
jr nz,.pressedA
bit 1,a
jp nz,.next0 ; pressedB
jp nz,.mainMenuLoop ; pressed B
jr .inputLoop
.pressedA
call GBPalWhiteOutWithDelay3
@ -122,10 +124,10 @@ MainMenu: ; 5af2 (1:5af2)
call SpecialWarpIn
jp SpecialEnterMap
Func_5bff: ; 5bff (1:5bff)
ld a,1
InitOptions: ; 5bff (1:5bff)
ld a,1 ; no delay
ld [wLetterPrintingDelayFlags],a
ld a,3
ld a,3 ; medium speed
ld [W_OPTIONS],a
ret
@ -301,7 +303,7 @@ LinkCanceledText: ; 5d4d (1:5d4d)
TX_FAR _LinkCanceledText
db "@"
Func_5d52: ; 5d52 (1:5d52)
StartNewGame: ; 5d52 (1:5d52)
ld hl, wd732
res 1, [hl]
call OakSpeech
@ -337,12 +339,12 @@ CableClubOptionsText: ; 5d97 (1:5d97)
db "COLOSSEUM", $4e
db "CANCEL@"
ContinueGame: ; 5db5 (1:5db5)
DisplayContinueGameInfo: ; 5db5 (1:5db5)
xor a
ld [H_AUTOBGTRANSFERENABLED], a
coord hl, 4, 7
ld b, $8
ld c, $e
ld b, 8
ld c, 14
call TextBoxBorder
coord hl, 5, 9
ld de, SaveScreenInfoText
@ -351,12 +353,12 @@ ContinueGame: ; 5db5 (1:5db5)
ld de, wPlayerName
call PlaceString
coord hl, 17, 11
call Func_5e2f
call PrintNumBadges
coord hl, 16, 13
call Func_5e42
call PrintNumOwnedMons
coord hl, 13, 15
call Func_5e55
ld a, $1
call PrintPlayTime
ld a, 1
ld [H_AUTOBGTRANSFERENABLED], a
ld c, 30
jp DelayFrames
@ -377,17 +379,17 @@ PrintSaveScreenText: ; 5def (1:5def)
ld de, wPlayerName
call PlaceString
coord hl, 17, 4
call Func_5e2f
call PrintNumBadges
coord hl, 16, 6
call Func_5e42
call PrintNumOwnedMons
coord hl, 13, 8
call Func_5e55
call PrintPlayTime
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
ld c, 30
jp DelayFrames
Func_5e2f: ; 5e2f (1:5e2f)
PrintNumBadges: ; 5e2f (1:5e2f)
push hl
ld hl, W_OBTAINEDBADGES
ld b, $1
@ -397,7 +399,7 @@ Func_5e2f: ; 5e2f (1:5e2f)
ld bc, $102
jp PrintNumber
Func_5e42: ; 5e42 (1:5e42)
PrintNumOwnedMons: ; 5e42 (1:5e42)
push hl
ld hl, wPokedexOwned
ld b, wPokedexOwnedEnd - wPokedexOwned
@ -407,7 +409,7 @@ Func_5e42: ; 5e42 (1:5e42)
ld bc, $103
jp PrintNumber
Func_5e55: ; 5e55 (1:5e55)
PrintPlayTime: ; 5e55 (1:5e55)
ld de, W_PLAYTIMEHOURS + 1
ld bc, $103
call PrintNumber
@ -678,28 +680,32 @@ TextSpeedOptionData: ; 6096 (1:6096)
db 7 ; default X coordinate (Medium)
db $ff ; terminator
Func_609e: ; 609e (1:609e)
ld a, $a
ld [$0], a
CheckForPlayerNameInSRAM: ; 609e (1:609e)
; Check if the player name data in SRAM has a string terminator character
; (indicating that a name may have been saved there) and return whether it does
; in carry.
ld a, SRAM_ENABLE
ld [MBC1SRamEnable], a
ld a, $1
ld [$6000], a
ld [$4000], a
ld [MBC1SRamBankingMode], a
ld [MBC1SRamBank], a
ld b, $b
ld hl, $a598
.asm_60b0
ld hl, sPlayerName
.loop
ld a, [hli]
cp $50
jr z, .asm_60c1
cp "@"
jr z, .found
dec b
jr nz, .asm_60b0
jr nz, .loop
; not found
xor a
ld [$0], a
ld [$6000], a
ld [MBC1SRamEnable], a
ld [MBC1SRamBankingMode], a
and a
ret
.asm_60c1
.found
xor a
ld [$0], a
ld [$6000], a
ld [MBC1SRamEnable], a
ld [MBC1SRamBankingMode], a
scf
ret

View file

@ -71,8 +71,8 @@ HandlePokedexSideMenu: ; 4006d (10:406d)
ld [wd11e],a
ld a,[wd11e]
push af
ld a,[wWhichTrade]
push af
ld a,[wDexMaxSeenMon]
push af ; this doesn't need to be preserved
ld hl,wPokedexSeen
call IsPokemonBitSet
ld b,2
@ -108,7 +108,7 @@ HandlePokedexSideMenu: ; 4006d (10:406d)
ld b,1
.exitSideMenu
pop af
ld [wWhichTrade],a
ld [wDexMaxSeenMon],a
pop af
ld [wd11e],a
pop af
@ -207,7 +207,7 @@ HandlePokedexListMenu: ; 40111 (10:4111)
jr .maxSeenPokemonLoop
.storeMaxSeenPokemon
ld a,b
ld [wWhichTrade],a ; max seen pokemon
ld [wDexMaxSeenMon],a
.loop
xor a
ld [H_AUTOBGTRANSFERENABLED],a
@ -218,7 +218,7 @@ HandlePokedexListMenu: ; 40111 (10:4111)
ld a,[wListScrollOffset]
ld [wd11e],a
ld d,7
ld a,[wWhichTrade]
ld a,[wDexMaxSeenMon]
cp a,7
jr nc,.printPokemonLoop
ld d,a
@ -294,9 +294,9 @@ HandlePokedexListMenu: ; 40111 (10:4111)
bit 7,a ; was Down pressed?
jr z,.checkIfRightPressed
.downPressed ; scroll down one row
ld a,[wWhichTrade]
ld a,[wDexMaxSeenMon]
cp a,7
jp c,.loop
jp c,.loop ; can't if the list is shorter than 7
sub a,7
ld b,a
ld a,[wListScrollOffset]
@ -309,9 +309,9 @@ HandlePokedexListMenu: ; 40111 (10:4111)
bit 4,a ; was Right pressed?
jr z,.checkIfLeftPressed
.rightPressed ; scroll down 7 rows
ld a,[wWhichTrade]
ld a,[wDexMaxSeenMon]
cp a,7
jp c,.loop
jp c,.loop ; can't if the list is shorter than 7
sub a,6
ld b,a
ld a,[wListScrollOffset]

View file

@ -231,18 +231,24 @@ HandlePrizeChoice: ; 528c6 (14:68c6)
pop af
ld b,a
call GivePokemon
; If either the party or box was full, wait after displaying message.
push af
ld a,[wccd3] ; XXX is there room?
ld a,[wAddedToParty]
and a
call z,WaitForTextScrollButtonPress
pop af
; If the mon couldn't be given to the player (because both the party and box
; were full), return without subtracting coins.
ret nc
.SubtractCoins
call LoadCoinsToSubtract
ld hl,hCoins + 1
ld de,wPlayerCoins + 1
ld c,$02 ; how many bytes
predef SubBCDPredef ; subtract coins (BCD daa operations)
predef SubBCDPredef
jp PrintPrizePrice
.BagFull
ld hl,PrizeRoomBagIsFullTextPtr

View file

@ -297,8 +297,8 @@ StatusScreen2: ; 12b57 (4:6b57)
push af
xor a
ld [hTilesetType], a
ld [$ffba], a
ld bc, $0005
ld [H_AUTOBGTRANSFERENABLED], a
ld bc, NUM_MOVES + 1
ld hl, wMoves
call FillMemory
ld hl, wLoadedMonMoves
@ -307,13 +307,13 @@ StatusScreen2: ; 12b57 (4:6b57)
call CopyData
callab FormatMovesString
coord hl, 9, 2
ld bc, $050a
lb bc, 5, 10
call ClearScreenArea ; Clear under name
coord hl, 19, 3
ld [hl], $78
coord hl, 0, 8
ld b, $8
ld c, $12
ld b, 8
ld c, 18
call TextBoxBorder ; Draw move container
coord hl, 2, 9
ld de, wMovesString
@ -387,9 +387,9 @@ StatusScreen2: ; 12b57 (4:6b57)
jr nz, .PrintPP
.PPDone
coord hl, 9, 3
ld de, EXPPointsText
ld de, StatusScreenExpText
call PlaceString
ld a, [wLoadedMonLevel] ; level
ld a, [wLoadedMonLevel]
push af
cp MAX_LEVEL
jr z, .Level100
@ -407,11 +407,11 @@ StatusScreen2: ; 12b57 (4:6b57)
coord hl, 12, 4
ld bc, $0307
call PrintNumber ; exp
call .asm_12c86
call CalcExpToLevelUp
ld de, wLoadedMonExp
coord hl, 7, 6
ld bc, $0307
call PrintNumber
call PrintNumber ; exp needed to level up
coord hl, 9, 0
call StatusScreen_ClearName
coord hl, 9, 1
@ -422,7 +422,7 @@ StatusScreen2: ; 12b57 (4:6b57)
coord hl, 9, 1
call PlaceString
ld a, $1
ld [$ffba], a
ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
call WaitForTextScrollButtonPress ; wait for button
pop af
@ -433,25 +433,26 @@ StatusScreen2: ; 12b57 (4:6b57)
ld [$ff24], a
call GBPalWhiteOut
jp ClearScreen
.asm_12c86 ; This does some magic with lvl/exp?
ld a, [wLoadedMonLevel] ; Load level
CalcExpToLevelUp: ; 12c86 (4:6c86)
ld a, [wLoadedMonLevel]
cp MAX_LEVEL
jr z, .asm_12ca7 ; If 100
jr z, .atMaxLevel
inc a
ld d, a
callab CalcExperience
ld hl, wLoadedMonExp + 2
ld a, [$ff98]
ld a, [hExperience + 2]
sub [hl]
ld [hld], a
ld a, [$ff97]
ld a, [hExperience + 1]
sbc [hl]
ld [hld], a
ld a, [$ff96]
ld a, [hExperience]
sbc [hl]
ld [hld], a
ret
.asm_12ca7
.atMaxLevel
ld hl, wLoadedMonExp
xor a
ld [hli], a
@ -459,11 +460,9 @@ StatusScreen2: ; 12b57 (4:6b57)
ld [hl], a
ret
EXPPointsText: ; 12caf (4:6caf)
db "EXP POINTS", $4e
LevelUpText: ; 12cba (4:6cba)
db "LEVEL UP@"
StatusScreenExpText: ; 12caf (4:6caf)
db "EXP POINTS"
next "LEVEL UP@"
StatusScreen_ClearName: ; 12cc3 (4:6cc3)
ld bc, 10