Add virtual leveling.

This commit is contained in:
Randy Thiemann 2023-11-13 02:25:08 +01:00
parent 29eea6a428
commit fd5b4fd26e
5 changed files with 459 additions and 424 deletions

Binary file not shown.

View File

@ -301,7 +301,7 @@ ROM0 bank #0:
$2663 = UpdateGradeSHIR.disqualify $2663 = UpdateGradeSHIR.disqualify
$2672 = UpdateGradeSHIR.l1000 $2672 = UpdateGradeSHIR.l1000
$2688 = UpdateGradeSHIR.l500 $2688 = UpdateGradeSHIR.l500
SECTION: $269e-$2a80 ($03e3 bytes) ["Level Functions"] SECTION: $269e-$2a9a ($03fd bytes) ["Level Functions"]
$269e = LevelInit $269e = LevelInit
$270e = SpecialLevelInit $270e = SpecialLevelInit
$271c = SpecialLevelInit.jumps $271c = SpecialLevelInit.jumps
@ -345,255 +345,257 @@ ROM0 bank #0:
$2a39 = TriggerKillScreen $2a39 = TriggerKillScreen
$2a5b = GetSection $2a5b = GetSection
$2a6c = GetSectionBCD $2a6c = GetSectionBCD
$2a75 = SkipSection $2a75 = GetAdjustedSection
SECTION: $2a81-$2d36 ($02b6 bytes) ["Grading Data"] $2a86 = GetAdjustedSectionBCD
$2a81 = sTGM1GradeScores $2a8f = SkipSection
$2aa3 = sTGM3InternalGradeSystem SECTION: $2a9b-$2d50 ($02b6 bytes) ["Grading Data"]
$2b43 = sTGM3GradeBoosts $2a9b = sTGM1GradeScores
$2b62 = sTGM3LevelMultiplier $2abd = sTGM3InternalGradeSystem
$2b66 = sTGM3BaselineCOOL $2b5d = sTGM3GradeBoosts
$2b6f = sTGM3REGRETConditions $2b7c = sTGM3LevelMultiplier
$2b83 = sDMGTGrading $2b80 = sTGM3BaselineCOOL
$2c37 = sDMGTGaugeLUT $2b89 = sTGM3REGRETConditions
SECTION: $2d37-$2fd6 ($02a0 bytes) ["SFX Functions"] $2b9d = sDMGTGrading
$2d37 = SFXInit $2c51 = sDMGTGaugeLUT
$2d59 = SFXPopQueue SECTION: $2d51-$2ff0 ($02a0 bytes) ["SFX Functions"]
$2d6e = SFXPushQueue $2d51 = SFXInit
$2d7f = SFXProcessQueue $2d73 = SFXPopQueue
$2d90 = !0 $2d88 = SFXPushQueue
$2dab = !1 $2d99 = SFXProcessQueue
$2dad = SFXTriggerNoise $2daa = !0
$2dba = !2 $2dc5 = !1
$2dc7 = !3 $2dc7 = SFXTriggerNoise
$2dd3 = SFXEnqueue $2dd4 = !2
$2de8 = SFXEnqueue.findsfx $2de1 = !3
$2dfd = !4 $2ded = SFXEnqueue
$2e0d = !5 $2e02 = SFXEnqueue.findsfx
$2e1d = !6 $2e17 = !4
$2e2d = !7 $2e27 = !5
$2e3d = !8 $2e37 = !6
$2e4d = !9 $2e47 = !7
$2e5d = !10 $2e57 = !8
$2e6d = !11 $2e67 = !9
$2e7d = !12 $2e77 = !10
$2e8d = !13 $2e87 = !11
$2e9d = !14 $2e97 = !12
$2ead = !15 $2ea7 = !13
$2ebd = !16 $2eb7 = !14
$2ecd = !17 $2ec7 = !15
$2edd = !18 $2ed7 = !16
$2eec = !19 $2ee7 = !17
$2efb = !20 $2ef7 = !18
$2f0a = !21 $2f06 = !19
$2f19 = !22 $2f15 = !20
$2f27 = !23 $2f24 = !21
$2f35 = !24 $2f33 = !22
$2f42 = SFXKill $2f41 = !23
$2f75 = SFXPlayNoise $2f4f = !24
$2f80 = SFXPlayNoise.noisereg $2f5c = SFXKill
$2f8d = !25 $2f8f = SFXPlayNoise
$2f97 = SFXPlayNoise.savenoiseplayhead $2f9a = SFXPlayNoise.noisereg
$2fa0 = SFXPlay $2fa7 = !25
$2fab = !26 $2fb1 = SFXPlayNoise.savenoiseplayhead
$2fae = SFXPlay.play $2fba = SFXPlay
$2fba = SFXPlay.getRegister $2fc5 = !26
$2fc4 = !27 $2fc8 = SFXPlay.play
$2fce = SFXPlay.savePlayhead $2fd4 = SFXPlay.getRegister
SECTION: $2fd7-$3207 ($0231 bytes) ["RNG Functions"] $2fde = !27
$2fd7 = HarvestEntropy $2fe8 = SFXPlay.savePlayhead
$2fdd = HarvestEntropy.loop SECTION: $2ff1-$3221 ($0231 bytes) ["RNG Functions"]
$2ffe = RNGInit $2ff1 = HarvestEntropy
$3034 = !0 $2ff7 = HarvestEntropy.loop
$3064 = RNGInit.complexinit $3018 = RNGInit
$307b = !1 $304e = !0
$3096 = ShiftHistory $307e = RNGInit.complexinit
$30b3 = GetNextHellPiece $3095 = !1
$30b8 = GetNextTGM1Piece $30b0 = ShiftHistory
$30bb = !2 $30cd = GetNextHellPiece
$30d3 = !3 $30d2 = GetNextTGM1Piece
$30d5 = GetNextTGM2Piece $30d5 = !2
$30d8 = !4 $30ed = !3
$30f0 = !5 $30ef = GetNextTGM2Piece
$30f2 = GetNextNesPiece $30f2 = !4
$3100 = GetNextTGM3Piece $310a = !5
$3103 = !6 $310c = GetNextNesPiece
$3126 = !7 $311a = GetNextTGM3Piece
$3129 = !8 $311d = !6
$3139 = !9 $3140 = !7
$3143 = !10 $3143 = !8
$3151 = !11 $3153 = !9
$3160 = !12 $315d = !10
$316c = !13 $316b = !11
$3178 = !14 $317a = !12
$3184 = !15 $3186 = !13
$3190 = !16 $3192 = !14
$319c = !17 $319e = !15
$31a8 = !18 $31aa = !16
$31b7 = GetNextPiece $31b6 = !17
$31c5 = GetNextPiece.nextpiecejumps $31c2 = !18
$31d4 = Next35Piece $31d1 = GetNextPiece
$31d4 = !19 $31df = GetNextPiece.nextpiecejumps
$31de = Next7Piece $31ee = Next35Piece
$31de = !20 $31ee = !19
$31e8 = NextByte $31f8 = Next7Piece
SECTION: $3208-$33cf ($01c8 bytes) ["Hi Score Functions"] $31f8 = !20
$3208 = CheckAndAddHiscore $3202 = NextByte
$3212 = CheckAndAddHiscore.checkloop SECTION: $3222-$33e9 ($01c8 bytes) ["Hi Score Functions"]
$3217 = CheckAndAddHiscore.checkgrade $3222 = CheckAndAddHiscore
$3220 = CheckAndAddHiscore.oldgraded $322c = CheckAndAddHiscore.checkloop
$322f = CheckAndAddHiscore.oldungraded $3231 = CheckAndAddHiscore.checkgrade
$3236 = CheckAndAddHiscore.checklevel $323a = CheckAndAddHiscore.oldgraded
$325b = CheckAndAddHiscore.checkscore $3249 = CheckAndAddHiscore.oldungraded
$329e = CheckAndAddHiscore.notbetter $3250 = CheckAndAddHiscore.checklevel
$32ab = CheckAndAddHiscore.better $3275 = CheckAndAddHiscore.checkscore
$32ad = InsertHiScore $32b8 = CheckAndAddHiscore.notbetter
$32ad = InsertHiScore.copylower $32c5 = CheckAndAddHiscore.better
$32be = InsertHiScore.copyupper $32c7 = InsertHiScore
$32cb = !0 $32c7 = InsertHiScore.copylower
$32df = InsertHiScore.findrow $32d8 = InsertHiScore.copyupper
$32ec = !1 $32e5 = !0
$32f0 = InsertHiScore.insert $32f9 = InsertHiScore.findrow
$3349 = InsertHiScore.persist $3306 = !1
$335a = GetHiScoreEntry $330a = InsertHiScore.insert
$336f = !2 $3363 = InsertHiScore.persist
$3373 = GetHiScoreEntry.store $3374 = GetHiScoreEntry
$337c = InitTargetHSTable $3389 = !2
$3387 = InitTargetHSTable.jumps $338d = GetHiScoreEntry.store
$339c = InitTargetHSTable.dmgt $3396 = InitTargetHSTable
$33a1 = InitTargetHSTable.tgm1 $33a1 = InitTargetHSTable.jumps
$33a6 = InitTargetHSTable.tgm3 $33b6 = InitTargetHSTable.dmgt
$33ab = InitTargetHSTable.deat $33bb = InitTargetHSTable.tgm1
$33b0 = InitTargetHSTable.shir $33c0 = InitTargetHSTable.tgm3
$33b5 = InitTargetHSTable.chil $33c5 = InitTargetHSTable.deat
$33ba = InitTargetHSTable.myco $33ca = InitTargetHSTable.shir
$33bd = InitTargetHSTable.store $33cf = InitTargetHSTable.chil
SECTION: $33d0-$3519 ($014a bytes) ["Progress Data"] $33d4 = InitTargetHSTable.myco
$33d0 = sProgressData $33d7 = InitTargetHSTable.store
SECTION: $351a-$3659 ($0140 bytes) ["Hi Score Data"] SECTION: $33ea-$3533 ($014a bytes) ["Progress Data"]
$351a = sHiscoreDefaultData $33ea = sProgressData
SECTION: $365a-$378d ($0134 bytes) ["Input Functions"] SECTION: $3534-$3673 ($0140 bytes) ["Hi Score Data"]
$365a = InputInit $3534 = sHiscoreDefaultData
$366c = GetInput SECTION: $3674-$37a7 ($0134 bytes) ["Input Functions"]
$366c = GetInput.btns $3674 = InputInit
$3679 = GetInput.readA $3686 = GetInput
$367d = GetInput.setA $3686 = GetInput.btns
$3688 = GetInput.clearA $3693 = GetInput.readA
$368b = GetInput.readB $3697 = GetInput.setA
$368f = GetInput.setB $36a2 = GetInput.clearA
$369a = GetInput.clearB $36a5 = GetInput.readB
$369d = GetInput.readSelect $36a9 = GetInput.setB
$36a1 = GetInput.setSelect $36b4 = GetInput.clearB
$36ac = GetInput.clearSelect $36b7 = GetInput.readSelect
$36af = GetInput.readStart $36bb = GetInput.setSelect
$36b3 = GetInput.setStart $36c6 = GetInput.clearSelect
$36be = GetInput.clearStart $36c9 = GetInput.readStart
$36c1 = GetInput.dpad $36cd = GetInput.setStart
$36ce = GetInput.readUp $36d8 = GetInput.clearStart
$36d2 = GetInput.setUp $36db = GetInput.dpad
$36dd = GetInput.clearUp $36e8 = GetInput.readUp
$36e0 = GetInput.readDown $36ec = GetInput.setUp
$36e4 = GetInput.setDown $36f7 = GetInput.clearUp
$36ef = GetInput.clearDown $36fa = GetInput.readDown
$36f2 = GetInput.readLeft $36fe = GetInput.setDown
$36f6 = GetInput.setLeft $3709 = GetInput.clearDown
$3701 = GetInput.clearLeft $370c = GetInput.readLeft
$3704 = GetInput.readRight $3710 = GetInput.setLeft
$3708 = GetInput.setRight $371b = GetInput.clearLeft
$3713 = GetInput.clearRight $371e = GetInput.readRight
$3716 = GetInput.priorities $3722 = GetInput.setRight
$3723 = GetInput.jumps $372d = GetInput.clearRight
$3732 = GetInput.dlru $3730 = GetInput.priorities
$3745 = GetInput.ulrd $373d = GetInput.jumps
$3758 = GetInput.lrud $374c = GetInput.dlru
$3765 = GetInput.udlr $375f = GetInput.ulrd
$3772 = GetInput.zeroud $3772 = GetInput.lrud
$3778 = GetInput.zerolr $377f = GetInput.udlr
$377e = GetInput.zerolrd $378c = GetInput.zeroud
$3786 = GetInput.zerolru $3792 = GetInput.zerolr
SECTION: $378e-$386d ($00e0 bytes) ["Score Functions"] $3798 = GetInput.zerolrd
$378e = ScoreInit $37a0 = GetInput.zerolru
$37b6 = IncreaseScore SECTION: $37a8-$3887 ($00e0 bytes) ["Score Functions"]
$37ee = IncreaseScore.doConvert $37a8 = ScoreInit
$37f0 = !0 $37d0 = IncreaseScore
$3806 = IncreaseScore.carry $3808 = IncreaseScore.doConvert
$3808 = IncreaseScore.postConvert $380a = !0
$3815 = !1 $3820 = IncreaseScore.carry
$381c = IncreaseScore.preAddDigit $3822 = IncreaseScore.postConvert
$3844 = IncreaseScore.addDigit $382f = !1
$385a = IncreaseScore.nextDigit $3836 = IncreaseScore.preAddDigit
SECTION: $386e-$3938 ($00cb bytes) ["Title Function Trampolines"] $385e = IncreaseScore.addDigit
$386e = SwitchToTitle $3874 = IncreaseScore.nextDigit
$3877 = TitleEventLoopHandler SECTION: $3888-$3952 ($00cb bytes) ["Title Function Trampolines"]
$3881 = TitleVBlankHandler $3888 = SwitchToTitle
$388b = PersistLevel $3891 = TitleEventLoopHandler
$3899 = DrawSpeedMain $389b = TitleVBlankHandler
$38e9 = DrawSpeedSettings $38a5 = PersistLevel
SECTION: $3939-$39fe ($00c6 bytes) ["Time Functions"] $38b3 = DrawSpeedMain
$3939 = TimeInit $3903 = DrawSpeedSettings
$3959 = StartCountdown SECTION: $3953-$3a18 ($00c6 bytes) ["Time Functions"]
$3967 = ResetGameTime $3953 = TimeInit
$3972 = CheckTorikan $3973 = StartCountdown
$3989 = CheckTorikan.failure $3981 = ResetGameTime
$398b = CheckTorikan.success $398c = CheckTorikan
$398e = HandleTimers $39a3 = CheckTorikan.failure
$39b4 = HandleTimers.reduce $39a5 = CheckTorikan.success
$39c1 = HandleTimers.clock $39a8 = HandleTimers
$39db = HandleTimers.go $39ce = HandleTimers.reduce
SECTION: $39ff-$3ab0 ($00b2 bytes) ["Progress Functions"] $39db = HandleTimers.clock
$39ff = SetProgress $39f5 = HandleTimers.go
$3a0a = SetProgress.loop SECTION: $3a19-$3aca ($00b2 bytes) ["Progress Functions"]
$3a0e = SetProgress.correct $3a19 = SetProgress
$3a35 = SetProgress.wvr_u1 $3a24 = SetProgress.loop
$3a41 = SetProgress.wvr_u2 $3a28 = SetProgress.correct
$3a4f = SetProgress.wvr_u3 $3a4f = SetProgress.wvr_u1
$3a5b = SetProgress.wvr_u4 $3a5b = SetProgress.wvr_u2
$3a69 = SetProgress.wvr_u5 $3a69 = SetProgress.wvr_u3
$3a75 = SetProgress.wvr_u6 $3a75 = SetProgress.wvr_u4
$3a83 = SetProgress.wvr_u7 $3a83 = SetProgress.wvr_u5
$3a8f = SetProgress.wvr_u8 $3a8f = SetProgress.wvr_u6
$3a9d = SetProgress.wvr_u9 $3a9d = SetProgress.wvr_u7
$3aa9 = SetProgress.wvr_u10 $3aa9 = SetProgress.wvr_u8
SECTION: $3ab1-$3b48 ($0098 bytes) ["Code Entry Point"] $3ab7 = SetProgress.wvr_u9
$3ab1 = Main $3ac3 = SetProgress.wvr_u10
$3ada = Main.notgbc SECTION: $3acb-$3b62 ($0098 bytes) ["Code Entry Point"]
$3ae0 = Main.wvr_u1 $3acb = Main
$3b0d = EventLoop $3af4 = Main.notgbc
$3b23 = EventLoop.eventloopjumps $3afa = Main.wvr_u1
$3b2c = EventLoopPostHandler $3b27 = EventLoop
$3b2e = EventLoopPostHandler.wvb_u2 $3b3d = EventLoop.eventloopjumps
$3b40 = EventLoopPostHandler.vblankjumps $3b46 = EventLoopPostHandler
SECTION: $3b49-$3b9a ($0052 bytes) ["Tile Functions"] $3b48 = EventLoopPostHandler.wvb_u2
$3b49 = LoadTitleTiles $3b5a = EventLoopPostHandler.vblankjumps
$3b67 = LoadGameplayTiles SECTION: $3b63-$3bb4 ($0052 bytes) ["Tile Functions"]
$3b7d = LoadGameplayTiles.gbc $3b63 = LoadTitleTiles
$3b8c = LoadGameplayTiles.dmg $3b81 = LoadGameplayTiles
SECTION: $3b9b-$3bd6 ($003c bytes) ["Time Data"] $3b97 = LoadGameplayTiles.gbc
$3b9b = sFramesToCS $3ba6 = LoadGameplayTiles.dmg
SECTION: $3bd7-$3c04 ($002e bytes) ["Memory Functions"] SECTION: $3bb5-$3bf0 ($003c bytes) ["Time Data"]
$3bd7 = UnsafeMemCopy $3bb5 = sFramesToCS
$3be0 = SafeMemCopy.wvr_u1 SECTION: $3bf1-$3c1e ($002e bytes) ["Memory Functions"]
$3be0 = SafeMemCopy $3bf1 = UnsafeMemCopy
$3bef = UnsafeMemSet $3bfa = SafeMemCopy.wvr_u1
$3bf7 = SafeMemSet $3bfa = SafeMemCopy
$3bf7 = SafeMemSet.wvr_u2 $3c09 = UnsafeMemSet
SECTION: $3c05-$3c2a ($0026 bytes) ["Gameplay Function Trampolines"] $3c11 = SafeMemSet
$3c05 = SwitchToGameplay $3c11 = SafeMemSet.wvr_u2
$3c0e = SwitchToGameplayBig SECTION: $3c1f-$3c44 ($0026 bytes) ["Gameplay Function Trampolines"]
$3c17 = GamePlayEventLoopHandler $3c1f = SwitchToGameplay
$3c21 = GamePlayBigEventLoopHandler $3c28 = SwitchToGameplayBig
SECTION: $3c2b-$3c4f ($0025 bytes) ["Interrupt Initialization Functions"] $3c31 = GamePlayEventLoopHandler
$3c2b = EnableScreenSquish $3c3b = GamePlayBigEventLoopHandler
$3c45 = DisableScreenSquish SECTION: $3c45-$3c69 ($0025 bytes) ["Interrupt Initialization Functions"]
SECTION: $3c50-$3c71 ($0022 bytes) ["OAM Functions"] $3c45 = EnableScreenSquish
$3c50 = CopyOAMHandler $3c5f = DisableScreenSquish
$3c5c = ClearOAM SECTION: $3c6a-$3c8b ($0022 bytes) ["OAM Functions"]
SECTION: $3c72-$3c80 ($000f bytes) ["Banking Functions"] $3c6a = CopyOAMHandler
$3c72 = BankingInit $3c76 = ClearOAM
SECTION: $3c81-$3c8a ($000a bytes) ["OAM DMA Code"] SECTION: $3c8c-$3c9a ($000f bytes) ["Banking Functions"]
$3c81 = OAMDMA $3c8c = BankingInit
$3c8b = OAMDMAEnd SECTION: $3c9b-$3ca4 ($000a bytes) ["OAM DMA Code"]
EMPTY: $3c8b-$3fff ($0375 bytes) $3c9b = OAMDMA
TOTAL EMPTY: $0380 bytes $3ca5 = OAMDMAEnd
EMPTY: $3ca5-$3fff ($035b bytes)
TOTAL EMPTY: $0366 bytes
ROMX bank #1: ROMX bank #1:
SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_OTHER"] SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_OTHER"]
@ -3299,7 +3301,7 @@ HRAM bank #0:
TOTAL EMPTY: $0000 bytes TOTAL EMPTY: $0000 bytes
SUMMARY: SUMMARY:
ROM0: 15488 bytes used / 896 free ROM0: 15514 bytes used / 870 free
ROMX: 68697 bytes used / 29607 free in 6 banks ROMX: 68697 bytes used / 29607 free in 6 banks
SRAM: 2951 bytes used / 5241 free in 1 bank SRAM: 2951 bytes used / 5241 free in 1 bank
WRAM0: 3910 bytes used / 186 free WRAM0: 3910 bytes used / 186 free

Binary file not shown.

View File

@ -302,179 +302,181 @@
00:2a39 TriggerKillScreen 00:2a39 TriggerKillScreen
00:2a5b GetSection 00:2a5b GetSection
00:2a6c GetSectionBCD 00:2a6c GetSectionBCD
00:2a75 SkipSection 00:2a75 GetAdjustedSection
00:2a81 sTGM1GradeScores 00:2a86 GetAdjustedSectionBCD
00:2aa3 sTGM3InternalGradeSystem 00:2a8f SkipSection
00:2b43 sTGM3GradeBoosts 00:2a9b sTGM1GradeScores
00:2b62 sTGM3LevelMultiplier 00:2abd sTGM3InternalGradeSystem
00:2b66 sTGM3BaselineCOOL 00:2b5d sTGM3GradeBoosts
00:2b6f sTGM3REGRETConditions 00:2b7c sTGM3LevelMultiplier
00:2b83 sDMGTGrading 00:2b80 sTGM3BaselineCOOL
00:2c37 sDMGTGaugeLUT 00:2b89 sTGM3REGRETConditions
00:2d37 SFXInit 00:2b9d sDMGTGrading
00:2d59 SFXPopQueue 00:2c51 sDMGTGaugeLUT
00:2d6e SFXPushQueue 00:2d51 SFXInit
00:2d7f SFXProcessQueue 00:2d73 SFXPopQueue
00:2dad SFXTriggerNoise 00:2d88 SFXPushQueue
00:2dd3 SFXEnqueue 00:2d99 SFXProcessQueue
00:2de8 SFXEnqueue.findsfx 00:2dc7 SFXTriggerNoise
00:2f42 SFXKill 00:2ded SFXEnqueue
00:2f75 SFXPlayNoise 00:2e02 SFXEnqueue.findsfx
00:2f80 SFXPlayNoise.noisereg 00:2f5c SFXKill
00:2f97 SFXPlayNoise.savenoiseplayhead 00:2f8f SFXPlayNoise
00:2fa0 SFXPlay 00:2f9a SFXPlayNoise.noisereg
00:2fae SFXPlay.play 00:2fb1 SFXPlayNoise.savenoiseplayhead
00:2fba SFXPlay.getRegister 00:2fba SFXPlay
00:2fce SFXPlay.savePlayhead 00:2fc8 SFXPlay.play
00:2fd7 HarvestEntropy 00:2fd4 SFXPlay.getRegister
00:2fdd HarvestEntropy.loop 00:2fe8 SFXPlay.savePlayhead
00:2ffe RNGInit 00:2ff1 HarvestEntropy
00:3064 RNGInit.complexinit 00:2ff7 HarvestEntropy.loop
00:3096 ShiftHistory 00:3018 RNGInit
00:30b3 GetNextHellPiece 00:307e RNGInit.complexinit
00:30b8 GetNextTGM1Piece 00:30b0 ShiftHistory
00:30d5 GetNextTGM2Piece 00:30cd GetNextHellPiece
00:30f2 GetNextNesPiece 00:30d2 GetNextTGM1Piece
00:3100 GetNextTGM3Piece 00:30ef GetNextTGM2Piece
00:31b7 GetNextPiece 00:310c GetNextNesPiece
00:31c5 GetNextPiece.nextpiecejumps 00:311a GetNextTGM3Piece
00:31d4 Next35Piece 00:31d1 GetNextPiece
00:31de Next7Piece 00:31df GetNextPiece.nextpiecejumps
00:31e8 NextByte 00:31ee Next35Piece
00:3208 CheckAndAddHiscore 00:31f8 Next7Piece
00:3212 CheckAndAddHiscore.checkloop 00:3202 NextByte
00:3217 CheckAndAddHiscore.checkgrade 00:3222 CheckAndAddHiscore
00:3220 CheckAndAddHiscore.oldgraded 00:322c CheckAndAddHiscore.checkloop
00:322f CheckAndAddHiscore.oldungraded 00:3231 CheckAndAddHiscore.checkgrade
00:3236 CheckAndAddHiscore.checklevel 00:323a CheckAndAddHiscore.oldgraded
00:325b CheckAndAddHiscore.checkscore 00:3249 CheckAndAddHiscore.oldungraded
00:329e CheckAndAddHiscore.notbetter 00:3250 CheckAndAddHiscore.checklevel
00:32ab CheckAndAddHiscore.better 00:3275 CheckAndAddHiscore.checkscore
00:32ad InsertHiScore 00:32b8 CheckAndAddHiscore.notbetter
00:32ad InsertHiScore.copylower 00:32c5 CheckAndAddHiscore.better
00:32be InsertHiScore.copyupper 00:32c7 InsertHiScore
00:32df InsertHiScore.findrow 00:32c7 InsertHiScore.copylower
00:32f0 InsertHiScore.insert 00:32d8 InsertHiScore.copyupper
00:3349 InsertHiScore.persist 00:32f9 InsertHiScore.findrow
00:335a GetHiScoreEntry 00:330a InsertHiScore.insert
00:3373 GetHiScoreEntry.store 00:3363 InsertHiScore.persist
00:337c InitTargetHSTable 00:3374 GetHiScoreEntry
00:3387 InitTargetHSTable.jumps 00:338d GetHiScoreEntry.store
00:339c InitTargetHSTable.dmgt 00:3396 InitTargetHSTable
00:33a1 InitTargetHSTable.tgm1 00:33a1 InitTargetHSTable.jumps
00:33a6 InitTargetHSTable.tgm3 00:33b6 InitTargetHSTable.dmgt
00:33ab InitTargetHSTable.deat 00:33bb InitTargetHSTable.tgm1
00:33b0 InitTargetHSTable.shir 00:33c0 InitTargetHSTable.tgm3
00:33b5 InitTargetHSTable.chil 00:33c5 InitTargetHSTable.deat
00:33ba InitTargetHSTable.myco 00:33ca InitTargetHSTable.shir
00:33bd InitTargetHSTable.store 00:33cf InitTargetHSTable.chil
00:33d0 sProgressData 00:33d4 InitTargetHSTable.myco
00:351a sHiscoreDefaultData 00:33d7 InitTargetHSTable.store
00:365a InputInit 00:33ea sProgressData
00:366c GetInput 00:3534 sHiscoreDefaultData
00:366c GetInput.btns 00:3674 InputInit
00:3679 GetInput.readA 00:3686 GetInput
00:367d GetInput.setA 00:3686 GetInput.btns
00:3688 GetInput.clearA 00:3693 GetInput.readA
00:368b GetInput.readB 00:3697 GetInput.setA
00:368f GetInput.setB 00:36a2 GetInput.clearA
00:369a GetInput.clearB 00:36a5 GetInput.readB
00:369d GetInput.readSelect 00:36a9 GetInput.setB
00:36a1 GetInput.setSelect 00:36b4 GetInput.clearB
00:36ac GetInput.clearSelect 00:36b7 GetInput.readSelect
00:36af GetInput.readStart 00:36bb GetInput.setSelect
00:36b3 GetInput.setStart 00:36c6 GetInput.clearSelect
00:36be GetInput.clearStart 00:36c9 GetInput.readStart
00:36c1 GetInput.dpad 00:36cd GetInput.setStart
00:36ce GetInput.readUp 00:36d8 GetInput.clearStart
00:36d2 GetInput.setUp 00:36db GetInput.dpad
00:36dd GetInput.clearUp 00:36e8 GetInput.readUp
00:36e0 GetInput.readDown 00:36ec GetInput.setUp
00:36e4 GetInput.setDown 00:36f7 GetInput.clearUp
00:36ef GetInput.clearDown 00:36fa GetInput.readDown
00:36f2 GetInput.readLeft 00:36fe GetInput.setDown
00:36f6 GetInput.setLeft 00:3709 GetInput.clearDown
00:3701 GetInput.clearLeft 00:370c GetInput.readLeft
00:3704 GetInput.readRight 00:3710 GetInput.setLeft
00:3708 GetInput.setRight 00:371b GetInput.clearLeft
00:3713 GetInput.clearRight 00:371e GetInput.readRight
00:3716 GetInput.priorities 00:3722 GetInput.setRight
00:3723 GetInput.jumps 00:372d GetInput.clearRight
00:3732 GetInput.dlru 00:3730 GetInput.priorities
00:3745 GetInput.ulrd 00:373d GetInput.jumps
00:3758 GetInput.lrud 00:374c GetInput.dlru
00:3765 GetInput.udlr 00:375f GetInput.ulrd
00:3772 GetInput.zeroud 00:3772 GetInput.lrud
00:3778 GetInput.zerolr 00:377f GetInput.udlr
00:377e GetInput.zerolrd 00:378c GetInput.zeroud
00:3786 GetInput.zerolru 00:3792 GetInput.zerolr
00:378e ScoreInit 00:3798 GetInput.zerolrd
00:37b6 IncreaseScore 00:37a0 GetInput.zerolru
00:37ee IncreaseScore.doConvert 00:37a8 ScoreInit
00:3806 IncreaseScore.carry 00:37d0 IncreaseScore
00:3808 IncreaseScore.postConvert 00:3808 IncreaseScore.doConvert
00:381c IncreaseScore.preAddDigit 00:3820 IncreaseScore.carry
00:3844 IncreaseScore.addDigit 00:3822 IncreaseScore.postConvert
00:385a IncreaseScore.nextDigit 00:3836 IncreaseScore.preAddDigit
00:386e SwitchToTitle 00:385e IncreaseScore.addDigit
00:3877 TitleEventLoopHandler 00:3874 IncreaseScore.nextDigit
00:3881 TitleVBlankHandler 00:3888 SwitchToTitle
00:388b PersistLevel 00:3891 TitleEventLoopHandler
00:3899 DrawSpeedMain 00:389b TitleVBlankHandler
00:38e9 DrawSpeedSettings 00:38a5 PersistLevel
00:3939 TimeInit 00:38b3 DrawSpeedMain
00:3959 StartCountdown 00:3903 DrawSpeedSettings
00:3967 ResetGameTime 00:3953 TimeInit
00:3972 CheckTorikan 00:3973 StartCountdown
00:3989 CheckTorikan.failure 00:3981 ResetGameTime
00:398b CheckTorikan.success 00:398c CheckTorikan
00:398e HandleTimers 00:39a3 CheckTorikan.failure
00:39b4 HandleTimers.reduce 00:39a5 CheckTorikan.success
00:39c1 HandleTimers.clock 00:39a8 HandleTimers
00:39db HandleTimers.go 00:39ce HandleTimers.reduce
00:39ff SetProgress 00:39db HandleTimers.clock
00:3a0a SetProgress.loop 00:39f5 HandleTimers.go
00:3a0e SetProgress.correct 00:3a19 SetProgress
00:3a35 SetProgress.wvr_u1 00:3a24 SetProgress.loop
00:3a41 SetProgress.wvr_u2 00:3a28 SetProgress.correct
00:3a4f SetProgress.wvr_u3 00:3a4f SetProgress.wvr_u1
00:3a5b SetProgress.wvr_u4 00:3a5b SetProgress.wvr_u2
00:3a69 SetProgress.wvr_u5 00:3a69 SetProgress.wvr_u3
00:3a75 SetProgress.wvr_u6 00:3a75 SetProgress.wvr_u4
00:3a83 SetProgress.wvr_u7 00:3a83 SetProgress.wvr_u5
00:3a8f SetProgress.wvr_u8 00:3a8f SetProgress.wvr_u6
00:3a9d SetProgress.wvr_u9 00:3a9d SetProgress.wvr_u7
00:3aa9 SetProgress.wvr_u10 00:3aa9 SetProgress.wvr_u8
00:3ab1 Main 00:3ab7 SetProgress.wvr_u9
00:3ada Main.notgbc 00:3ac3 SetProgress.wvr_u10
00:3ae0 Main.wvr_u1 00:3acb Main
00:3b0d EventLoop 00:3af4 Main.notgbc
00:3b23 EventLoop.eventloopjumps 00:3afa Main.wvr_u1
00:3b2c EventLoopPostHandler 00:3b27 EventLoop
00:3b2e EventLoopPostHandler.wvb_u2 00:3b3d EventLoop.eventloopjumps
00:3b40 EventLoopPostHandler.vblankjumps 00:3b46 EventLoopPostHandler
00:3b49 LoadTitleTiles 00:3b48 EventLoopPostHandler.wvb_u2
00:3b67 LoadGameplayTiles 00:3b5a EventLoopPostHandler.vblankjumps
00:3b7d LoadGameplayTiles.gbc 00:3b63 LoadTitleTiles
00:3b8c LoadGameplayTiles.dmg 00:3b81 LoadGameplayTiles
00:3b9b sFramesToCS 00:3b97 LoadGameplayTiles.gbc
00:3bd7 UnsafeMemCopy 00:3ba6 LoadGameplayTiles.dmg
00:3be0 SafeMemCopy.wvr_u1 00:3bb5 sFramesToCS
00:3be0 SafeMemCopy 00:3bf1 UnsafeMemCopy
00:3bef UnsafeMemSet 00:3bfa SafeMemCopy.wvr_u1
00:3bf7 SafeMemSet 00:3bfa SafeMemCopy
00:3bf7 SafeMemSet.wvr_u2 00:3c09 UnsafeMemSet
00:3c05 SwitchToGameplay 00:3c11 SafeMemSet
00:3c0e SwitchToGameplayBig 00:3c11 SafeMemSet.wvr_u2
00:3c17 GamePlayEventLoopHandler 00:3c1f SwitchToGameplay
00:3c21 GamePlayBigEventLoopHandler 00:3c28 SwitchToGameplayBig
00:3c2b EnableScreenSquish 00:3c31 GamePlayEventLoopHandler
00:3c45 DisableScreenSquish 00:3c3b GamePlayBigEventLoopHandler
00:3c50 CopyOAMHandler 00:3c45 EnableScreenSquish
00:3c5c ClearOAM 00:3c5f DisableScreenSquish
00:3c72 BankingInit 00:3c6a CopyOAMHandler
00:3c81 OAMDMA 00:3c76 ClearOAM
00:3c8b OAMDMAEnd 00:3c8c BankingInit
00:3c9b OAMDMA
00:3ca5 OAMDMAEnd
01:4008 sDMGTSpeedCurve 01:4008 sDMGTSpeedCurve
01:4203 sDMGTSpeedCurveEnd 01:4203 sDMGTSpeedCurveEnd
01:4205 sDMGTSpeedCurveSpecialData 01:4205 sDMGTSpeedCurveSpecialData

View File

@ -844,6 +844,37 @@ GetSectionBCD::
ret ret
; Gets a 0-indexed section number, returned in A as binary.
; Levels 0000-0099 would return 0, levels 0100-0199 would return 1, ... levels 9900-9999 would return 99.
; This version calculates the amount of skipped sections in.
GetAdjustedSection::
; Load thousands.
ldh a, [hTrueCLevel+CLEVEL_THOUSANDS]
; Multiply by 10, which is equal to multiply by 8 + multiply by 2
ld b, a
sla b
sla a
sla a
sla a
add a, b
; Add hundreds.
ld hl, hTrueCLevel+CLEVEL_HUNDREDS
add a, [hl]
ret
; Gets the current section, but as BCD in A.
; This version calculates the amount of skipped sections in.
GetAdjustedSectionBCD::
ldh a, [hTrueCLevel+CLEVEL_THOUSANDS]
swap a
ld hl, hTrueCLevel+CLEVEL_HUNDREDS
or a, [hl]
ret
; Will skip the virtual level forward by 100 levels. ; Will skip the virtual level forward by 100 levels.
; This will NOT affect the displayed level, nor will it affect scoring. ; This will NOT affect the displayed level, nor will it affect scoring.
; It will only make it so the internal speed pointer will be ahead by N*100 levels. ; It will only make it so the internal speed pointer will be ahead by N*100 levels.