Add profile switching.

This commit is contained in:
Randy Thiemann 2023-11-10 10:55:04 +01:00
parent 79411d2992
commit c4805e9c79
6 changed files with 513 additions and 490 deletions

Binary file not shown.

View File

@ -366,146 +366,149 @@ ROM0 bank #0:
$2bb3 = Next7Piece
$2bb3 = !20
$2bbd = NextByte
SECTION: $2bdd-$2df1 ($0215 bytes) ["SRAM Functions"]
SECTION: $2bdd-$2e06 ($022a bytes) ["SRAM Functions"]
$2bdd = RestoreSRAM
$2c5f = RestoreSRAM.jumps
$2c77 = RestoreSRAM.dmgt
$2c7d = RestoreSRAM.tgm1
$2c83 = RestoreSRAM.tgm3
$2c89 = RestoreSRAM.deat
$2c8f = RestoreSRAM.shir
$2c95 = RestoreSRAM.chil
$2c9b = RestoreSRAM.myco
$2ca1 = RestoreSRAM.search
$2cb3 = RestoreSRAM.notfound
$2cba = RestoreSRAM.fallback
$2c0d = TrustedLoad
$2c5f = TrustedLoad.jumps
$2c77 = TrustedLoad.dmgt
$2c7d = TrustedLoad.tgm1
$2c83 = TrustedLoad.tgm3
$2c89 = TrustedLoad.deat
$2c8f = TrustedLoad.shir
$2c95 = TrustedLoad.chil
$2c9b = TrustedLoad.myco
$2ca1 = TrustedLoad.search
$2cb3 = TrustedLoad.notfound
$2cba = TrustedLoad.fallback
$2cd5 = InitializeSRAM
$2d7e = ChangeProfile
$2d7e = ChangeProfile.backup
$2d91 = ChangeProfile.first
$2d9f = ChangeProfile.second
$2dad = ChangeProfile.third
$2dbb = ChangeProfile.restore
$2dce = ChangeProfile.lfirst
$2dda = ChangeProfile.lsecond
$2de6 = ChangeProfile.lthird
SECTION: $2df2-$2f3b ($014a bytes) ["Progress Data"]
$2df2 = sProgressData
SECTION: $2f3c-$301b ($00e0 bytes) ["Score Functions"]
$2f3c = ScoreInit
$2f64 = IncreaseScore
$2f9c = IncreaseScore.doConvert
$2f9e = !0
$2fb4 = IncreaseScore.carry
$2fb6 = IncreaseScore.postConvert
$2fc3 = !1
$2fca = IncreaseScore.preAddDigit
$2ff2 = IncreaseScore.addDigit
$3008 = IncreaseScore.nextDigit
SECTION: $301c-$30e8 ($00cd bytes) ["Input Functions"]
$301c = InputInit
$302e = GetInput
$302e = GetInput.btns
$303b = GetInput.readA
$303f = GetInput.setA
$304a = GetInput.clearA
$304d = GetInput.readB
$3051 = GetInput.setB
$305c = GetInput.clearB
$305f = GetInput.readSelect
$3063 = GetInput.setSelect
$306e = GetInput.clearSelect
$3071 = GetInput.readStart
$3075 = GetInput.setStart
$3080 = GetInput.clearStart
$3083 = GetInput.dpad
$3090 = GetInput.readUp
$3094 = GetInput.setUp
$309f = GetInput.clearUp
$30a2 = GetInput.readDown
$30a6 = GetInput.setDown
$30b1 = GetInput.clearDown
$30b4 = GetInput.readLeft
$30b8 = GetInput.setLeft
$30c3 = GetInput.clearLeft
$30c6 = GetInput.readRight
$30ca = GetInput.setRight
$30d5 = GetInput.clearRight
$30d8 = GetInput.priorities
$30e3 = GetInput.zero
SECTION: $30e9-$31b3 ($00cb bytes) ["Title Function Trampolines"]
$30e9 = SwitchToTitle
$30f2 = TitleEventLoopHandler
$30fc = TitleVBlankHandler
$3106 = PersistLevel
$3114 = DrawSpeedMain
$3164 = DrawSpeedSettings
SECTION: $31b4-$3279 ($00c6 bytes) ["Time Functions"]
$31b4 = TimeInit
$31d4 = StartCountdown
$31e2 = ResetGameTime
$31ed = CheckTorikan
$3204 = CheckTorikan.failure
$3206 = CheckTorikan.success
$3209 = HandleTimers
$322f = HandleTimers.reduce
$323c = HandleTimers.clock
$3256 = HandleTimers.go
SECTION: $327a-$332b ($00b2 bytes) ["Progress Functions"]
$327a = SetProgress
$3285 = SetProgress.loop
$3289 = SetProgress.correct
$32b0 = SetProgress.wvr_u1
$32bc = SetProgress.wvr_u2
$32ca = SetProgress.wvr_u3
$32d6 = SetProgress.wvr_u4
$32e4 = SetProgress.wvr_u5
$32f0 = SetProgress.wvr_u6
$32fe = SetProgress.wvr_u7
$330a = SetProgress.wvr_u8
$3318 = SetProgress.wvr_u9
$3324 = SetProgress.wvr_u10
SECTION: $332c-$33bd ($0092 bytes) ["Code Entry Point"]
$332c = Main
$3355 = Main.notgbc
$335b = Main.wvr_u1
$3382 = EventLoop
$3398 = EventLoop.eventloopjumps
$33a1 = EventLoopPostHandler
$33a3 = EventLoopPostHandler.wvb_u2
$33b5 = EventLoopPostHandler.vblankjumps
SECTION: $33be-$340f ($0052 bytes) ["Tile Functions"]
$33be = LoadTitleTiles
$33dc = LoadGameplayTiles
$33f2 = LoadGameplayTiles.gbc
$3401 = LoadGameplayTiles.dmg
SECTION: $3410-$344b ($003c bytes) ["Time Data"]
$3410 = sFramesToCS
SECTION: $344c-$3479 ($002e bytes) ["Memory Functions"]
$344c = UnsafeMemCopy
$3455 = SafeMemCopy.wvr_u1
$3455 = SafeMemCopy
$3464 = UnsafeMemSet
$346c = SafeMemSet
$346c = SafeMemSet.wvr_u2
SECTION: $347a-$349f ($0026 bytes) ["Gameplay Function Trampolines"]
$347a = SwitchToGameplay
$3483 = SwitchToGameplayBig
$348c = GamePlayEventLoopHandler
$3496 = GamePlayBigEventLoopHandler
SECTION: $34a0-$34c4 ($0025 bytes) ["Interrupt Initialization Functions"]
$34a0 = EnableScreenSquish
$34ba = DisableScreenSquish
SECTION: $34c5-$34e6 ($0022 bytes) ["OAM Functions"]
$34c5 = CopyOAMHandler
$34d1 = ClearOAM
SECTION: $34e7-$34f5 ($000f bytes) ["Banking Functions"]
$34e7 = BankingInit
SECTION: $34f6-$34ff ($000a bytes) ["OAM DMA Code"]
$34f6 = OAMDMA
$3500 = OAMDMAEnd
EMPTY: $3500-$3fff ($0b00 bytes)
TOTAL EMPTY: $0b0b bytes
$2d7e = NextProfile
$2d87 = NextProfile.update
$2d8a = ChangeProfile
$2d8a = ChangeProfile.backup
$2d9d = ChangeProfile.first
$2dab = ChangeProfile.second
$2db9 = ChangeProfile.third
$2dc7 = ChangeProfile.restore
$2dda = ChangeProfile.lfirst
$2de9 = ChangeProfile.lsecond
$2df8 = ChangeProfile.lthird
SECTION: $2e07-$2f50 ($014a bytes) ["Progress Data"]
$2e07 = sProgressData
SECTION: $2f51-$3030 ($00e0 bytes) ["Score Functions"]
$2f51 = ScoreInit
$2f79 = IncreaseScore
$2fb1 = IncreaseScore.doConvert
$2fb3 = !0
$2fc9 = IncreaseScore.carry
$2fcb = IncreaseScore.postConvert
$2fd8 = !1
$2fdf = IncreaseScore.preAddDigit
$3007 = IncreaseScore.addDigit
$301d = IncreaseScore.nextDigit
SECTION: $3031-$30fd ($00cd bytes) ["Input Functions"]
$3031 = InputInit
$3043 = GetInput
$3043 = GetInput.btns
$3050 = GetInput.readA
$3054 = GetInput.setA
$305f = GetInput.clearA
$3062 = GetInput.readB
$3066 = GetInput.setB
$3071 = GetInput.clearB
$3074 = GetInput.readSelect
$3078 = GetInput.setSelect
$3083 = GetInput.clearSelect
$3086 = GetInput.readStart
$308a = GetInput.setStart
$3095 = GetInput.clearStart
$3098 = GetInput.dpad
$30a5 = GetInput.readUp
$30a9 = GetInput.setUp
$30b4 = GetInput.clearUp
$30b7 = GetInput.readDown
$30bb = GetInput.setDown
$30c6 = GetInput.clearDown
$30c9 = GetInput.readLeft
$30cd = GetInput.setLeft
$30d8 = GetInput.clearLeft
$30db = GetInput.readRight
$30df = GetInput.setRight
$30ea = GetInput.clearRight
$30ed = GetInput.priorities
$30f8 = GetInput.zero
SECTION: $30fe-$31c8 ($00cb bytes) ["Title Function Trampolines"]
$30fe = SwitchToTitle
$3107 = TitleEventLoopHandler
$3111 = TitleVBlankHandler
$311b = PersistLevel
$3129 = DrawSpeedMain
$3179 = DrawSpeedSettings
SECTION: $31c9-$328e ($00c6 bytes) ["Time Functions"]
$31c9 = TimeInit
$31e9 = StartCountdown
$31f7 = ResetGameTime
$3202 = CheckTorikan
$3219 = CheckTorikan.failure
$321b = CheckTorikan.success
$321e = HandleTimers
$3244 = HandleTimers.reduce
$3251 = HandleTimers.clock
$326b = HandleTimers.go
SECTION: $328f-$3340 ($00b2 bytes) ["Progress Functions"]
$328f = SetProgress
$329a = SetProgress.loop
$329e = SetProgress.correct
$32c5 = SetProgress.wvr_u1
$32d1 = SetProgress.wvr_u2
$32df = SetProgress.wvr_u3
$32eb = SetProgress.wvr_u4
$32f9 = SetProgress.wvr_u5
$3305 = SetProgress.wvr_u6
$3313 = SetProgress.wvr_u7
$331f = SetProgress.wvr_u8
$332d = SetProgress.wvr_u9
$3339 = SetProgress.wvr_u10
SECTION: $3341-$33d2 ($0092 bytes) ["Code Entry Point"]
$3341 = Main
$336a = Main.notgbc
$3370 = Main.wvr_u1
$3397 = EventLoop
$33ad = EventLoop.eventloopjumps
$33b6 = EventLoopPostHandler
$33b8 = EventLoopPostHandler.wvb_u2
$33ca = EventLoopPostHandler.vblankjumps
SECTION: $33d3-$3424 ($0052 bytes) ["Tile Functions"]
$33d3 = LoadTitleTiles
$33f1 = LoadGameplayTiles
$3407 = LoadGameplayTiles.gbc
$3416 = LoadGameplayTiles.dmg
SECTION: $3425-$3460 ($003c bytes) ["Time Data"]
$3425 = sFramesToCS
SECTION: $3461-$348e ($002e bytes) ["Memory Functions"]
$3461 = UnsafeMemCopy
$346a = SafeMemCopy.wvr_u1
$346a = SafeMemCopy
$3479 = UnsafeMemSet
$3481 = SafeMemSet
$3481 = SafeMemSet.wvr_u2
SECTION: $348f-$34b4 ($0026 bytes) ["Gameplay Function Trampolines"]
$348f = SwitchToGameplay
$3498 = SwitchToGameplayBig
$34a1 = GamePlayEventLoopHandler
$34ab = GamePlayBigEventLoopHandler
SECTION: $34b5-$34d9 ($0025 bytes) ["Interrupt Initialization Functions"]
$34b5 = EnableScreenSquish
$34cf = DisableScreenSquish
SECTION: $34da-$34fb ($0022 bytes) ["OAM Functions"]
$34da = CopyOAMHandler
$34e6 = ClearOAM
SECTION: $34fc-$350a ($000f bytes) ["Banking Functions"]
$34fc = BankingInit
SECTION: $350b-$3514 ($000a bytes) ["OAM DMA Code"]
$350b = OAMDMA
$3515 = OAMDMAEnd
EMPTY: $3515-$3fff ($0aeb bytes)
TOTAL EMPTY: $0af6 bytes
ROMX bank #1:
SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_OTHER"]
@ -636,7 +639,7 @@ ROMX bank #4:
$47f0 = sTitleScreenCreditsMap
$47f0 = sTitleScreenSettingsMapEnd
$4a90 = sTitleScreenCreditsMapEnd
SECTION: $4a90-$5232 ($07a3 bytes) ["Title Functions Banked"]
SECTION: $4a90-$5239 ($07aa bytes) ["Title Functions Banked"]
$4a90 = SwitchToTitleB
$4a96 = SwitchToTitleB.wvr_u1
$4a9f = !0
@ -658,134 +661,134 @@ ROMX bank #4:
$4bd3 = TitleEventLoopHandlerB
$4be1 = TitleEventLoopHandlerB.jumps
$4bf0 = TitleEventLoopHandlerB.eventLoopMain
$4c13 = TitleEventLoopHandlerB.d0
$4c27 = TitleEventLoopHandlerB.eventLoopProfile
$4c28 = TitleEventLoopHandlerB.eventLoopSettings
$4c52 = TitleEventLoopHandlerB.d1
$4c67 = TitleEventLoopHandlerB.l1
$4c7c = TitleEventLoopHandlerB.r1
$4c90 = TitleEventLoopHandlerB.eventLoopRecords
$4c91 = TitleEventLoopHandlerB.eventLoopCredits
$4ca7 = TitleEventLoopHandlerB.quitcredits
$4cac = TitleVBlankHandlerB
$4cba = TitleVBlankHandlerB.jumps
$4cc9 = TitleVBlankHandlerB.vblankMain
$4cd3 = TitleVBlankHandlerB.notselected_u5
$4cd8 = TitleVBlankHandlerB.selected_u5
$4cdb = TitleVBlankHandlerB.done_u5
$4ce5 = TitleVBlankHandlerB.notselected_u6
$4cea = TitleVBlankHandlerB.selected_u6
$4ced = TitleVBlankHandlerB.done_u6
$4cf7 = TitleVBlankHandlerB.notselected_u7
$4cfc = TitleVBlankHandlerB.selected_u7
$4cff = TitleVBlankHandlerB.done_u7
$4d09 = TitleVBlankHandlerB.notselected_u8
$4d0e = TitleVBlankHandlerB.selected_u8
$4d11 = TitleVBlankHandlerB.done_u8
$4d1b = TitleVBlankHandlerB.notselected_u9
$4d20 = TitleVBlankHandlerB.selected_u9
$4d23 = TitleVBlankHandlerB.done_u9
$4d2d = TitleVBlankHandlerB.notselected_u10
$4d32 = TitleVBlankHandlerB.selected_u10
$4d35 = TitleVBlankHandlerB.done_u10
$4dbf = TitleVBlankHandlerB.disabled
$4dcb = TitleVBlankHandlerB.profile
$4dda = TitleVBlankHandlerB.vblankProfile
$4ddb = TitleVBlankHandlerB.vblankSettings
$4de5 = TitleVBlankHandlerB.notselected_u11
$4dea = TitleVBlankHandlerB.selected_u11
$4ded = TitleVBlankHandlerB.done_u11
$4df7 = TitleVBlankHandlerB.notselected_u12
$4dfc = TitleVBlankHandlerB.selected_u12
$4dff = TitleVBlankHandlerB.done_u12
$4e09 = TitleVBlankHandlerB.notselected_u13
$4e0e = TitleVBlankHandlerB.selected_u13
$4e11 = TitleVBlankHandlerB.done_u13
$4e1b = TitleVBlankHandlerB.notselected_u14
$4e20 = TitleVBlankHandlerB.selected_u14
$4e23 = TitleVBlankHandlerB.done_u14
$4e2d = TitleVBlankHandlerB.notselected_u15
$4e32 = TitleVBlankHandlerB.selected_u15
$4e35 = TitleVBlankHandlerB.done_u15
$4e3f = TitleVBlankHandlerB.notselected_u16
$4e44 = TitleVBlankHandlerB.selected_u16
$4e47 = TitleVBlankHandlerB.done_u16
$4e51 = TitleVBlankHandlerB.notselected_u17
$4e56 = TitleVBlankHandlerB.selected_u17
$4e59 = TitleVBlankHandlerB.done_u17
$4e63 = TitleVBlankHandlerB.notselected_u18
$4e68 = TitleVBlankHandlerB.selected_u18
$4e6b = TitleVBlankHandlerB.done_u18
$4ef5 = TitleVBlankHandlerB.disabled1
$4f01 = TitleVBlankHandlerB.buttons
$4f26 = !2
$4f2e = TitleVBlankHandlerB.donetetry
$4f54 = TitleVBlankHandlerB.vblankRecords
$4f55 = TitleVBlankHandlerB.vblankCredits
$4f56 = MainHandleA
$4f64 = MainHandleA.jumps
$4f76 = MainHandleA.tosettings
$4f7b = MainHandleA.tocredits
$4f80 = MainHandleUp
$4f8c = !3
$4f92 = MainHandleDown
$4f9e = !4
$4fa3 = SettingsHandleA
$4fb0 = SettingsHandleB
$4fb5 = SettingsHandleDown
$4fc1 = !5
$4fc6 = SettingsHandleUp
$4fd2 = !6
$4fd8 = SettingsHandleLeft
$4fe9 = SettingsHandleLeft.jumps
$5001 = SettingsHandleLeft.buttons
$5010 = !7
$5019 = SettingsHandleLeft.rng
$5028 = !8
$5031 = SettingsHandleLeft.rot
$5040 = !9
$5049 = SettingsHandleLeft.drop
$5058 = !10
$5061 = SettingsHandleLeft.curve
$5073 = !11
$507f = SettingsHandleLeft.hig
$508e = !12
$5097 = SettingsHandleRight
$50a8 = SettingsHandleRight.jumps
$50c0 = SettingsHandleRight.buttons
$50cf = !13
$50d7 = SettingsHandleRight.rng
$50e6 = !14
$50ee = SettingsHandleRight.rot
$50fd = !15
$5105 = SettingsHandleRight.drop
$5114 = !16
$511c = SettingsHandleRight.curve
$512e = !17
$5139 = SettingsHandleRight.hig
$5148 = !18
$5150 = DecrementLevel
$5166 = IncrementLevel
$517c = InitSpeedCurve
$518b = GetEnd
$5196 = !19
$519e = !20
$51a6 = !21
$51ae = !22
$51b6 = !23
$51be = !24
$51c2 = GetStart
$51cd = !25
$51d5 = !26
$51dd = !27
$51e5 = !28
$51ed = !29
$51f5 = !30
$51f9 = CheckLevelRange
$5212 = CheckLevelRange.notatend
$5232 = CheckLevelRange.notatstart
EMPTY: $5233-$7fff ($2dcd bytes)
TOTAL EMPTY: $2dcd bytes
$4c1a = TitleEventLoopHandlerB.d0
$4c2e = TitleEventLoopHandlerB.eventLoopProfile
$4c2f = TitleEventLoopHandlerB.eventLoopSettings
$4c59 = TitleEventLoopHandlerB.d1
$4c6e = TitleEventLoopHandlerB.l1
$4c83 = TitleEventLoopHandlerB.r1
$4c97 = TitleEventLoopHandlerB.eventLoopRecords
$4c98 = TitleEventLoopHandlerB.eventLoopCredits
$4cae = TitleEventLoopHandlerB.quitcredits
$4cb3 = TitleVBlankHandlerB
$4cc1 = TitleVBlankHandlerB.jumps
$4cd0 = TitleVBlankHandlerB.vblankMain
$4cda = TitleVBlankHandlerB.notselected_u5
$4cdf = TitleVBlankHandlerB.selected_u5
$4ce2 = TitleVBlankHandlerB.done_u5
$4cec = TitleVBlankHandlerB.notselected_u6
$4cf1 = TitleVBlankHandlerB.selected_u6
$4cf4 = TitleVBlankHandlerB.done_u6
$4cfe = TitleVBlankHandlerB.notselected_u7
$4d03 = TitleVBlankHandlerB.selected_u7
$4d06 = TitleVBlankHandlerB.done_u7
$4d10 = TitleVBlankHandlerB.notselected_u8
$4d15 = TitleVBlankHandlerB.selected_u8
$4d18 = TitleVBlankHandlerB.done_u8
$4d22 = TitleVBlankHandlerB.notselected_u9
$4d27 = TitleVBlankHandlerB.selected_u9
$4d2a = TitleVBlankHandlerB.done_u9
$4d34 = TitleVBlankHandlerB.notselected_u10
$4d39 = TitleVBlankHandlerB.selected_u10
$4d3c = TitleVBlankHandlerB.done_u10
$4dc6 = TitleVBlankHandlerB.disabled
$4dd2 = TitleVBlankHandlerB.profile
$4de1 = TitleVBlankHandlerB.vblankProfile
$4de2 = TitleVBlankHandlerB.vblankSettings
$4dec = TitleVBlankHandlerB.notselected_u11
$4df1 = TitleVBlankHandlerB.selected_u11
$4df4 = TitleVBlankHandlerB.done_u11
$4dfe = TitleVBlankHandlerB.notselected_u12
$4e03 = TitleVBlankHandlerB.selected_u12
$4e06 = TitleVBlankHandlerB.done_u12
$4e10 = TitleVBlankHandlerB.notselected_u13
$4e15 = TitleVBlankHandlerB.selected_u13
$4e18 = TitleVBlankHandlerB.done_u13
$4e22 = TitleVBlankHandlerB.notselected_u14
$4e27 = TitleVBlankHandlerB.selected_u14
$4e2a = TitleVBlankHandlerB.done_u14
$4e34 = TitleVBlankHandlerB.notselected_u15
$4e39 = TitleVBlankHandlerB.selected_u15
$4e3c = TitleVBlankHandlerB.done_u15
$4e46 = TitleVBlankHandlerB.notselected_u16
$4e4b = TitleVBlankHandlerB.selected_u16
$4e4e = TitleVBlankHandlerB.done_u16
$4e58 = TitleVBlankHandlerB.notselected_u17
$4e5d = TitleVBlankHandlerB.selected_u17
$4e60 = TitleVBlankHandlerB.done_u17
$4e6a = TitleVBlankHandlerB.notselected_u18
$4e6f = TitleVBlankHandlerB.selected_u18
$4e72 = TitleVBlankHandlerB.done_u18
$4efc = TitleVBlankHandlerB.disabled1
$4f08 = TitleVBlankHandlerB.buttons
$4f2d = !2
$4f35 = TitleVBlankHandlerB.donetetry
$4f5b = TitleVBlankHandlerB.vblankRecords
$4f5c = TitleVBlankHandlerB.vblankCredits
$4f5d = MainHandleA
$4f6b = MainHandleA.jumps
$4f7d = MainHandleA.tosettings
$4f82 = MainHandleA.tocredits
$4f87 = MainHandleUp
$4f93 = !3
$4f99 = MainHandleDown
$4fa5 = !4
$4faa = SettingsHandleA
$4fb7 = SettingsHandleB
$4fbc = SettingsHandleDown
$4fc8 = !5
$4fcd = SettingsHandleUp
$4fd9 = !6
$4fdf = SettingsHandleLeft
$4ff0 = SettingsHandleLeft.jumps
$5008 = SettingsHandleLeft.buttons
$5017 = !7
$5020 = SettingsHandleLeft.rng
$502f = !8
$5038 = SettingsHandleLeft.rot
$5047 = !9
$5050 = SettingsHandleLeft.drop
$505f = !10
$5068 = SettingsHandleLeft.curve
$507a = !11
$5086 = SettingsHandleLeft.hig
$5095 = !12
$509e = SettingsHandleRight
$50af = SettingsHandleRight.jumps
$50c7 = SettingsHandleRight.buttons
$50d6 = !13
$50de = SettingsHandleRight.rng
$50ed = !14
$50f5 = SettingsHandleRight.rot
$5104 = !15
$510c = SettingsHandleRight.drop
$511b = !16
$5123 = SettingsHandleRight.curve
$5135 = !17
$5140 = SettingsHandleRight.hig
$514f = !18
$5157 = DecrementLevel
$516d = IncrementLevel
$5183 = InitSpeedCurve
$5192 = GetEnd
$519d = !19
$51a5 = !20
$51ad = !21
$51b5 = !22
$51bd = !23
$51c5 = !24
$51c9 = GetStart
$51d4 = !25
$51dc = !26
$51e4 = !27
$51ec = !28
$51f4 = !29
$51fc = !30
$5200 = CheckLevelRange
$5219 = CheckLevelRange.notatend
$5239 = CheckLevelRange.notatstart
EMPTY: $523a-$7fff ($2dc6 bytes)
TOTAL EMPTY: $2dc6 bytes
ROMX bank #5:
SECTION: $4000-$4007 ($0008 bytes) ["Bank ID BANK_GAMEPLAY"]
@ -2727,8 +2730,8 @@ HRAM bank #0:
TOTAL EMPTY: $0003 bytes
SUMMARY:
ROM0: 13557 bytes used / 2827 free
ROMX: 62755 bytes used / 35549 free in 6 banks
ROM0: 13578 bytes used / 2806 free
ROMX: 62762 bytes used / 35542 free in 6 banks
SRAM: 263 bytes used / 7929 free in 1 bank
WRAM0: 3545 bytes used / 551 free
HRAM: 124 bytes used / 3 free

Binary file not shown.

View File

@ -271,125 +271,128 @@
00:2bb3 Next7Piece
00:2bbd NextByte
00:2bdd RestoreSRAM
00:2c5f RestoreSRAM.jumps
00:2c77 RestoreSRAM.dmgt
00:2c7d RestoreSRAM.tgm1
00:2c83 RestoreSRAM.tgm3
00:2c89 RestoreSRAM.deat
00:2c8f RestoreSRAM.shir
00:2c95 RestoreSRAM.chil
00:2c9b RestoreSRAM.myco
00:2ca1 RestoreSRAM.search
00:2cb3 RestoreSRAM.notfound
00:2cba RestoreSRAM.fallback
00:2c0d TrustedLoad
00:2c5f TrustedLoad.jumps
00:2c77 TrustedLoad.dmgt
00:2c7d TrustedLoad.tgm1
00:2c83 TrustedLoad.tgm3
00:2c89 TrustedLoad.deat
00:2c8f TrustedLoad.shir
00:2c95 TrustedLoad.chil
00:2c9b TrustedLoad.myco
00:2ca1 TrustedLoad.search
00:2cb3 TrustedLoad.notfound
00:2cba TrustedLoad.fallback
00:2cd5 InitializeSRAM
00:2d7e ChangeProfile
00:2d7e ChangeProfile.backup
00:2d91 ChangeProfile.first
00:2d9f ChangeProfile.second
00:2dad ChangeProfile.third
00:2dbb ChangeProfile.restore
00:2dce ChangeProfile.lfirst
00:2dda ChangeProfile.lsecond
00:2de6 ChangeProfile.lthird
00:2df2 sProgressData
00:2f3c ScoreInit
00:2f64 IncreaseScore
00:2f9c IncreaseScore.doConvert
00:2fb4 IncreaseScore.carry
00:2fb6 IncreaseScore.postConvert
00:2fca IncreaseScore.preAddDigit
00:2ff2 IncreaseScore.addDigit
00:3008 IncreaseScore.nextDigit
00:301c InputInit
00:302e GetInput
00:302e GetInput.btns
00:303b GetInput.readA
00:303f GetInput.setA
00:304a GetInput.clearA
00:304d GetInput.readB
00:3051 GetInput.setB
00:305c GetInput.clearB
00:305f GetInput.readSelect
00:3063 GetInput.setSelect
00:306e GetInput.clearSelect
00:3071 GetInput.readStart
00:3075 GetInput.setStart
00:3080 GetInput.clearStart
00:3083 GetInput.dpad
00:3090 GetInput.readUp
00:3094 GetInput.setUp
00:309f GetInput.clearUp
00:30a2 GetInput.readDown
00:30a6 GetInput.setDown
00:30b1 GetInput.clearDown
00:30b4 GetInput.readLeft
00:30b8 GetInput.setLeft
00:30c3 GetInput.clearLeft
00:30c6 GetInput.readRight
00:30ca GetInput.setRight
00:30d5 GetInput.clearRight
00:30d8 GetInput.priorities
00:30e3 GetInput.zero
00:30e9 SwitchToTitle
00:30f2 TitleEventLoopHandler
00:30fc TitleVBlankHandler
00:3106 PersistLevel
00:3114 DrawSpeedMain
00:3164 DrawSpeedSettings
00:31b4 TimeInit
00:31d4 StartCountdown
00:31e2 ResetGameTime
00:31ed CheckTorikan
00:3204 CheckTorikan.failure
00:3206 CheckTorikan.success
00:3209 HandleTimers
00:322f HandleTimers.reduce
00:323c HandleTimers.clock
00:3256 HandleTimers.go
00:327a SetProgress
00:3285 SetProgress.loop
00:3289 SetProgress.correct
00:32b0 SetProgress.wvr_u1
00:32bc SetProgress.wvr_u2
00:32ca SetProgress.wvr_u3
00:32d6 SetProgress.wvr_u4
00:32e4 SetProgress.wvr_u5
00:32f0 SetProgress.wvr_u6
00:32fe SetProgress.wvr_u7
00:330a SetProgress.wvr_u8
00:3318 SetProgress.wvr_u9
00:3324 SetProgress.wvr_u10
00:332c Main
00:3355 Main.notgbc
00:335b Main.wvr_u1
00:3382 EventLoop
00:3398 EventLoop.eventloopjumps
00:33a1 EventLoopPostHandler
00:33a3 EventLoopPostHandler.wvb_u2
00:33b5 EventLoopPostHandler.vblankjumps
00:33be LoadTitleTiles
00:33dc LoadGameplayTiles
00:33f2 LoadGameplayTiles.gbc
00:3401 LoadGameplayTiles.dmg
00:3410 sFramesToCS
00:344c UnsafeMemCopy
00:3455 SafeMemCopy.wvr_u1
00:3455 SafeMemCopy
00:3464 UnsafeMemSet
00:346c SafeMemSet
00:346c SafeMemSet.wvr_u2
00:347a SwitchToGameplay
00:3483 SwitchToGameplayBig
00:348c GamePlayEventLoopHandler
00:3496 GamePlayBigEventLoopHandler
00:34a0 EnableScreenSquish
00:34ba DisableScreenSquish
00:34c5 CopyOAMHandler
00:34d1 ClearOAM
00:34e7 BankingInit
00:34f6 OAMDMA
00:3500 OAMDMAEnd
00:2d7e NextProfile
00:2d87 NextProfile.update
00:2d8a ChangeProfile
00:2d8a ChangeProfile.backup
00:2d9d ChangeProfile.first
00:2dab ChangeProfile.second
00:2db9 ChangeProfile.third
00:2dc7 ChangeProfile.restore
00:2dda ChangeProfile.lfirst
00:2de9 ChangeProfile.lsecond
00:2df8 ChangeProfile.lthird
00:2e07 sProgressData
00:2f51 ScoreInit
00:2f79 IncreaseScore
00:2fb1 IncreaseScore.doConvert
00:2fc9 IncreaseScore.carry
00:2fcb IncreaseScore.postConvert
00:2fdf IncreaseScore.preAddDigit
00:3007 IncreaseScore.addDigit
00:301d IncreaseScore.nextDigit
00:3031 InputInit
00:3043 GetInput
00:3043 GetInput.btns
00:3050 GetInput.readA
00:3054 GetInput.setA
00:305f GetInput.clearA
00:3062 GetInput.readB
00:3066 GetInput.setB
00:3071 GetInput.clearB
00:3074 GetInput.readSelect
00:3078 GetInput.setSelect
00:3083 GetInput.clearSelect
00:3086 GetInput.readStart
00:308a GetInput.setStart
00:3095 GetInput.clearStart
00:3098 GetInput.dpad
00:30a5 GetInput.readUp
00:30a9 GetInput.setUp
00:30b4 GetInput.clearUp
00:30b7 GetInput.readDown
00:30bb GetInput.setDown
00:30c6 GetInput.clearDown
00:30c9 GetInput.readLeft
00:30cd GetInput.setLeft
00:30d8 GetInput.clearLeft
00:30db GetInput.readRight
00:30df GetInput.setRight
00:30ea GetInput.clearRight
00:30ed GetInput.priorities
00:30f8 GetInput.zero
00:30fe SwitchToTitle
00:3107 TitleEventLoopHandler
00:3111 TitleVBlankHandler
00:311b PersistLevel
00:3129 DrawSpeedMain
00:3179 DrawSpeedSettings
00:31c9 TimeInit
00:31e9 StartCountdown
00:31f7 ResetGameTime
00:3202 CheckTorikan
00:3219 CheckTorikan.failure
00:321b CheckTorikan.success
00:321e HandleTimers
00:3244 HandleTimers.reduce
00:3251 HandleTimers.clock
00:326b HandleTimers.go
00:328f SetProgress
00:329a SetProgress.loop
00:329e SetProgress.correct
00:32c5 SetProgress.wvr_u1
00:32d1 SetProgress.wvr_u2
00:32df SetProgress.wvr_u3
00:32eb SetProgress.wvr_u4
00:32f9 SetProgress.wvr_u5
00:3305 SetProgress.wvr_u6
00:3313 SetProgress.wvr_u7
00:331f SetProgress.wvr_u8
00:332d SetProgress.wvr_u9
00:3339 SetProgress.wvr_u10
00:3341 Main
00:336a Main.notgbc
00:3370 Main.wvr_u1
00:3397 EventLoop
00:33ad EventLoop.eventloopjumps
00:33b6 EventLoopPostHandler
00:33b8 EventLoopPostHandler.wvb_u2
00:33ca EventLoopPostHandler.vblankjumps
00:33d3 LoadTitleTiles
00:33f1 LoadGameplayTiles
00:3407 LoadGameplayTiles.gbc
00:3416 LoadGameplayTiles.dmg
00:3425 sFramesToCS
00:3461 UnsafeMemCopy
00:346a SafeMemCopy.wvr_u1
00:346a SafeMemCopy
00:3479 UnsafeMemSet
00:3481 SafeMemSet
00:3481 SafeMemSet.wvr_u2
00:348f SwitchToGameplay
00:3498 SwitchToGameplayBig
00:34a1 GamePlayEventLoopHandler
00:34ab GamePlayBigEventLoopHandler
00:34b5 EnableScreenSquish
00:34cf DisableScreenSquish
00:34da CopyOAMHandler
00:34e6 ClearOAM
00:34fc BankingInit
00:350b OAMDMA
00:3515 OAMDMAEnd
01:4008 sDMGTSpeedCurve
01:4203 sDMGTSpeedCurveEnd
01:4205 sDMGTSpeedCurveSpecialData
@ -517,103 +520,103 @@
04:4bd3 TitleEventLoopHandlerB
04:4be1 TitleEventLoopHandlerB.jumps
04:4bf0 TitleEventLoopHandlerB.eventLoopMain
04:4c13 TitleEventLoopHandlerB.d0
04:4c27 TitleEventLoopHandlerB.eventLoopProfile
04:4c28 TitleEventLoopHandlerB.eventLoopSettings
04:4c52 TitleEventLoopHandlerB.d1
04:4c67 TitleEventLoopHandlerB.l1
04:4c7c TitleEventLoopHandlerB.r1
04:4c90 TitleEventLoopHandlerB.eventLoopRecords
04:4c91 TitleEventLoopHandlerB.eventLoopCredits
04:4ca7 TitleEventLoopHandlerB.quitcredits
04:4cac TitleVBlankHandlerB
04:4cba TitleVBlankHandlerB.jumps
04:4cc9 TitleVBlankHandlerB.vblankMain
04:4cd3 TitleVBlankHandlerB.notselected_u5
04:4cd8 TitleVBlankHandlerB.selected_u5
04:4cdb TitleVBlankHandlerB.done_u5
04:4ce5 TitleVBlankHandlerB.notselected_u6
04:4cea TitleVBlankHandlerB.selected_u6
04:4ced TitleVBlankHandlerB.done_u6
04:4cf7 TitleVBlankHandlerB.notselected_u7
04:4cfc TitleVBlankHandlerB.selected_u7
04:4cff TitleVBlankHandlerB.done_u7
04:4d09 TitleVBlankHandlerB.notselected_u8
04:4d0e TitleVBlankHandlerB.selected_u8
04:4d11 TitleVBlankHandlerB.done_u8
04:4d1b TitleVBlankHandlerB.notselected_u9
04:4d20 TitleVBlankHandlerB.selected_u9
04:4d23 TitleVBlankHandlerB.done_u9
04:4d2d TitleVBlankHandlerB.notselected_u10
04:4d32 TitleVBlankHandlerB.selected_u10
04:4d35 TitleVBlankHandlerB.done_u10
04:4dbf TitleVBlankHandlerB.disabled
04:4dcb TitleVBlankHandlerB.profile
04:4dda TitleVBlankHandlerB.vblankProfile
04:4ddb TitleVBlankHandlerB.vblankSettings
04:4de5 TitleVBlankHandlerB.notselected_u11
04:4dea TitleVBlankHandlerB.selected_u11
04:4ded TitleVBlankHandlerB.done_u11
04:4df7 TitleVBlankHandlerB.notselected_u12
04:4dfc TitleVBlankHandlerB.selected_u12
04:4dff TitleVBlankHandlerB.done_u12
04:4e09 TitleVBlankHandlerB.notselected_u13
04:4e0e TitleVBlankHandlerB.selected_u13
04:4e11 TitleVBlankHandlerB.done_u13
04:4e1b TitleVBlankHandlerB.notselected_u14
04:4e20 TitleVBlankHandlerB.selected_u14
04:4e23 TitleVBlankHandlerB.done_u14
04:4e2d TitleVBlankHandlerB.notselected_u15
04:4e32 TitleVBlankHandlerB.selected_u15
04:4e35 TitleVBlankHandlerB.done_u15
04:4e3f TitleVBlankHandlerB.notselected_u16
04:4e44 TitleVBlankHandlerB.selected_u16
04:4e47 TitleVBlankHandlerB.done_u16
04:4e51 TitleVBlankHandlerB.notselected_u17
04:4e56 TitleVBlankHandlerB.selected_u17
04:4e59 TitleVBlankHandlerB.done_u17
04:4e63 TitleVBlankHandlerB.notselected_u18
04:4e68 TitleVBlankHandlerB.selected_u18
04:4e6b TitleVBlankHandlerB.done_u18
04:4ef5 TitleVBlankHandlerB.disabled1
04:4f01 TitleVBlankHandlerB.buttons
04:4f2e TitleVBlankHandlerB.donetetry
04:4f54 TitleVBlankHandlerB.vblankRecords
04:4f55 TitleVBlankHandlerB.vblankCredits
04:4f56 MainHandleA
04:4f64 MainHandleA.jumps
04:4f76 MainHandleA.tosettings
04:4f7b MainHandleA.tocredits
04:4f80 MainHandleUp
04:4f92 MainHandleDown
04:4fa3 SettingsHandleA
04:4fb0 SettingsHandleB
04:4fb5 SettingsHandleDown
04:4fc6 SettingsHandleUp
04:4fd8 SettingsHandleLeft
04:4fe9 SettingsHandleLeft.jumps
04:5001 SettingsHandleLeft.buttons
04:5019 SettingsHandleLeft.rng
04:5031 SettingsHandleLeft.rot
04:5049 SettingsHandleLeft.drop
04:5061 SettingsHandleLeft.curve
04:507f SettingsHandleLeft.hig
04:5097 SettingsHandleRight
04:50a8 SettingsHandleRight.jumps
04:50c0 SettingsHandleRight.buttons
04:50d7 SettingsHandleRight.rng
04:50ee SettingsHandleRight.rot
04:5105 SettingsHandleRight.drop
04:511c SettingsHandleRight.curve
04:5139 SettingsHandleRight.hig
04:5150 DecrementLevel
04:5166 IncrementLevel
04:517c InitSpeedCurve
04:518b GetEnd
04:51c2 GetStart
04:51f9 CheckLevelRange
04:5212 CheckLevelRange.notatend
04:5232 CheckLevelRange.notatstart
04:4c1a TitleEventLoopHandlerB.d0
04:4c2e TitleEventLoopHandlerB.eventLoopProfile
04:4c2f TitleEventLoopHandlerB.eventLoopSettings
04:4c59 TitleEventLoopHandlerB.d1
04:4c6e TitleEventLoopHandlerB.l1
04:4c83 TitleEventLoopHandlerB.r1
04:4c97 TitleEventLoopHandlerB.eventLoopRecords
04:4c98 TitleEventLoopHandlerB.eventLoopCredits
04:4cae TitleEventLoopHandlerB.quitcredits
04:4cb3 TitleVBlankHandlerB
04:4cc1 TitleVBlankHandlerB.jumps
04:4cd0 TitleVBlankHandlerB.vblankMain
04:4cda TitleVBlankHandlerB.notselected_u5
04:4cdf TitleVBlankHandlerB.selected_u5
04:4ce2 TitleVBlankHandlerB.done_u5
04:4cec TitleVBlankHandlerB.notselected_u6
04:4cf1 TitleVBlankHandlerB.selected_u6
04:4cf4 TitleVBlankHandlerB.done_u6
04:4cfe TitleVBlankHandlerB.notselected_u7
04:4d03 TitleVBlankHandlerB.selected_u7
04:4d06 TitleVBlankHandlerB.done_u7
04:4d10 TitleVBlankHandlerB.notselected_u8
04:4d15 TitleVBlankHandlerB.selected_u8
04:4d18 TitleVBlankHandlerB.done_u8
04:4d22 TitleVBlankHandlerB.notselected_u9
04:4d27 TitleVBlankHandlerB.selected_u9
04:4d2a TitleVBlankHandlerB.done_u9
04:4d34 TitleVBlankHandlerB.notselected_u10
04:4d39 TitleVBlankHandlerB.selected_u10
04:4d3c TitleVBlankHandlerB.done_u10
04:4dc6 TitleVBlankHandlerB.disabled
04:4dd2 TitleVBlankHandlerB.profile
04:4de1 TitleVBlankHandlerB.vblankProfile
04:4de2 TitleVBlankHandlerB.vblankSettings
04:4dec TitleVBlankHandlerB.notselected_u11
04:4df1 TitleVBlankHandlerB.selected_u11
04:4df4 TitleVBlankHandlerB.done_u11
04:4dfe TitleVBlankHandlerB.notselected_u12
04:4e03 TitleVBlankHandlerB.selected_u12
04:4e06 TitleVBlankHandlerB.done_u12
04:4e10 TitleVBlankHandlerB.notselected_u13
04:4e15 TitleVBlankHandlerB.selected_u13
04:4e18 TitleVBlankHandlerB.done_u13
04:4e22 TitleVBlankHandlerB.notselected_u14
04:4e27 TitleVBlankHandlerB.selected_u14
04:4e2a TitleVBlankHandlerB.done_u14
04:4e34 TitleVBlankHandlerB.notselected_u15
04:4e39 TitleVBlankHandlerB.selected_u15
04:4e3c TitleVBlankHandlerB.done_u15
04:4e46 TitleVBlankHandlerB.notselected_u16
04:4e4b TitleVBlankHandlerB.selected_u16
04:4e4e TitleVBlankHandlerB.done_u16
04:4e58 TitleVBlankHandlerB.notselected_u17
04:4e5d TitleVBlankHandlerB.selected_u17
04:4e60 TitleVBlankHandlerB.done_u17
04:4e6a TitleVBlankHandlerB.notselected_u18
04:4e6f TitleVBlankHandlerB.selected_u18
04:4e72 TitleVBlankHandlerB.done_u18
04:4efc TitleVBlankHandlerB.disabled1
04:4f08 TitleVBlankHandlerB.buttons
04:4f35 TitleVBlankHandlerB.donetetry
04:4f5b TitleVBlankHandlerB.vblankRecords
04:4f5c TitleVBlankHandlerB.vblankCredits
04:4f5d MainHandleA
04:4f6b MainHandleA.jumps
04:4f7d MainHandleA.tosettings
04:4f82 MainHandleA.tocredits
04:4f87 MainHandleUp
04:4f99 MainHandleDown
04:4faa SettingsHandleA
04:4fb7 SettingsHandleB
04:4fbc SettingsHandleDown
04:4fcd SettingsHandleUp
04:4fdf SettingsHandleLeft
04:4ff0 SettingsHandleLeft.jumps
04:5008 SettingsHandleLeft.buttons
04:5020 SettingsHandleLeft.rng
04:5038 SettingsHandleLeft.rot
04:5050 SettingsHandleLeft.drop
04:5068 SettingsHandleLeft.curve
04:5086 SettingsHandleLeft.hig
04:509e SettingsHandleRight
04:50af SettingsHandleRight.jumps
04:50c7 SettingsHandleRight.buttons
04:50de SettingsHandleRight.rng
04:50f5 SettingsHandleRight.rot
04:510c SettingsHandleRight.drop
04:5123 SettingsHandleRight.curve
04:5140 SettingsHandleRight.hig
04:5157 DecrementLevel
04:516d IncrementLevel
04:5183 InitSpeedCurve
04:5192 GetEnd
04:51c9 GetStart
04:5200 CheckLevelRange
04:5219 CheckLevelRange.notatend
04:5239 CheckLevelRange.notatstart
05:4008 FieldInit
05:403e FieldClear
05:4049 ToBackupField

View File

@ -106,6 +106,7 @@ RestoreSRAM::
jp nz, InitializeSRAM
; SRAM is initialized and for this build, so we can load the data.
TrustedLoad:
ld a, [rSwapABState]
ld [wSwapABState], a
ld a, [rRNGModeState]
@ -126,14 +127,14 @@ RestoreSRAM::
ld [wProfileName+2], a
; Restore the start level.
ld b, BANK_OTHER
rst RSTSwitchBank
ld a, [rSelectedStartLevel]
ld c, a
ld a, [rSelectedStartLevel+1]
ld b, a
ld b, BANK_OTHER
rst RSTSwitchBank
ld a, [rSpeedCurveState]
ld d, a
add a, d
@ -302,6 +303,14 @@ InitializeSRAM:
ld [rProfileName2+2], a
ret
NextProfile::
ld a, [rLastProfile]
inc a
cp a, 3
jr nz, .update
xor a, a
.update
jp ChangeProfile
; Change to profile number in A.
ChangeProfile::
@ -352,19 +361,22 @@ ChangeProfile::
ld hl, rProfileData
ld de, rProfileData0
ld bc, 64
jp UnsafeMemCopy
call UnsafeMemCopy
jp TrustedLoad
.lsecond
ld hl, rProfileData
ld de, rProfileData1
ld bc, 64
jp UnsafeMemCopy
call UnsafeMemCopy
jp TrustedLoad
.lthird
ld hl, rProfileData
ld de, rProfileData2
ld bc, 64
jp UnsafeMemCopy
call UnsafeMemCopy
jp TrustedLoad
ENDC

View File

@ -384,6 +384,11 @@ TitleEventLoopHandlerB:
cp a, 1
jp z, MainHandleA
; Select?
ldh a, [hSelectState]
cp a, 1
jp z, NextProfile
; Directions?
ldh a, [hUpState]
cp a, 1