@@ -29,6 +29,61 @@ action_brb_mainmenu:
2929 ; Set reasonable cycle time values
3030 LDA #$000A : STA !ram_cm_brb_set_cycle
3131 LDA #$0258 : STA !ram_cm_brb_cycle_time
32+ JMP action_mainmenu
33+ }
34+
35+ action_game_mainmenu:
36+ {
37+ ; Each hexadecimal nibble represents a decimal
38+ ; Convert to plain number to allow user to set it
39+
40+ ; Start with most significant nibble, divide by 512, multiply by 75
41+ LDA !sram_ceres_timer : AND #$F000 : XBA : LSR
42+ %a8()
43+ STA $4202 : LDA #$4B : STA $4203
44+ %a16()
45+ PEA $0000 : PLA ; wait for CPU math
46+ LDA $4216 : STA !ram_cm_ceres_seconds
47+ LDA !sram_zebes_timer : AND #$F000 : XBA : LSR
48+ %a8()
49+ STA $4202 : LDA #$4B : STA $4203
50+ %a16()
51+ PEA $0000 : PLA ; wait for CPU math
52+ LDA $4216 : STA !ram_cm_zebes_seconds
53+
54+ ; Next nibble, divide by 256, multiply by 60
55+ LDA !sram_ceres_timer : AND #$0F00 : XBA
56+ %a8()
57+ STA $4202 : LDA #$3C : STA $4203
58+ %a16()
59+ PEA $0000 : PLA ; wait for CPU math
60+ LDA $4216 : CLC : ADC !ram_cm_ceres_seconds : STA !ram_cm_ceres_seconds
61+ LDA !sram_zebes_timer : AND #$0F00 : XBA
62+ %a8()
63+ STA $4202 : LDA #$3C : STA $4203
64+ %a16()
65+ PEA $0000 : PLA ; wait for CPU math
66+ LDA $4216 : CLC : ADC !ram_cm_zebes_seconds : STA !ram_cm_zebes_seconds
67+
68+ ; Next nibble, divide by 8, multiply by 5
69+ LDA !sram_ceres_timer : AND #$00F0 : LSR #3
70+ %a8()
71+ STA $4202 : LDA #$05 : STA $4203
72+ %a16()
73+ PEA $0000 : PLA ; wait for CPU math
74+ LDA $4216 : CLC : ADC !ram_cm_ceres_seconds : STA !ram_cm_ceres_seconds
75+ LDA !sram_zebes_timer : AND #$00F0 : LSR #3
76+ %a8()
77+ STA $4202 : LDA #$05 : STA $4203
78+ %a16()
79+ PEA $0000 : PLA ; wait for CPU math
80+ LDA $4216 : CLC : ADC !ram_cm_zebes_seconds : STA !ram_cm_zebes_seconds
81+
82+ ; Least significant nibble
83+ LDA !sram_ceres_timer : AND #$000F
84+ ORA !ram_cm_ceres_seconds : STA !ram_cm_ceres_seconds
85+ LDA !sram_zebes_timer : AND #$000F
86+ ORA !ram_cm_zebes_seconds : STA !ram_cm_zebes_seconds
3287 BRA action_mainmenu
3388}
3489
@@ -290,7 +345,7 @@ mm_goto_layout:
290345 %cm_jsl("Room Layout" , #action_layout_mainmenu, #LayoutMenu)
291346
292347mm_goto_gamemenu:
293- %cm_mainmenu ("Game Options" , #GameMenu)
348+ %cm_jsl ("Game Options" , #action_game_mainmenu , #GameMenu)
294349
295350mm_goto_rngmenu:
296351 %cm_jsl("RNG Control" , #action_rng_mainmenu, #RngMenu)
0 commit comments