@@ -10,6 +10,10 @@ cm_brb_table:
1010; 1000h bytes transferred
1111incbin ../resources/cm_brb_gfx.bin
1212
13+ %endfree(8E)
14+
15+
16+ %startfree(A1 )
1317
1418; --------
1519; BRB Menu
@@ -51,10 +55,10 @@ brb_menu_timer_mode:
5155 db #$FF
5256
5357brb_menu_timer_min:
54- %cm_numfield("Minutes on Timer" , !ram_cm_brb_mins, 0 , 99 , 1 , 5 , #0 )
58+ %cm_numfield("Minutes on Timer" , !ram_cm_brb_mins, 0 , 99 , 1 , 2 , #0 )
5559
5660brb_menu_timer_sec:
57- %cm_numfield("Seconds on Timer" , !ram_cm_brb_secs, 0 , 59 , 1 , 5 , #0 )
61+ %cm_numfield("Seconds on Timer" , !ram_cm_brb_secs, 0 , 59 , 1 , 2 , #0 )
5862
5963brb_menu_timer_clear:
6064 %cm_jsl("Clear Timer" , .routine, #0 )
@@ -182,9 +186,15 @@ cm_brb_loop:
182186cm_draw_brb:
183187{
184188 JSL cm_tilemap_bg_interior_long
189+ LDA !ram_sram_detection : BNE .splash_screen
185190 JSR cm_tilemap_brb
186191 JSL cm_tilemap_transfer_long
187192 JMP cm_brb_scroll_BG3
193+
194+ .splash_screen
195+ JSR cm_tilemap_splash_screen
196+ JSL cm_tilemap_transfer_long
197+ RTS
188198}
189199
190200cm_tilemap_brb:
@@ -230,11 +240,11 @@ cm_tilemap_brb:
230240 ; Same bank for all of the BRB text
231241 PHK : PHK : PLA : STA !DP_CurrentMenu+2
232242
233- LDA.w #BRB_common_1 : STA !DP_CurrentMenu
243+ LDA.w #BRB_common_line1 : STA !DP_CurrentMenu
234244 LDX #$01C6
235245 JSR cm_draw_brb_text
236246
237- LDA.w #BRB_common_2 : STA !DP_CurrentMenu
247+ LDA.w #BRB_common_line2 : STA !DP_CurrentMenu
238248 LDX #$0286
239249 JSR cm_draw_brb_text
240250
@@ -274,19 +284,71 @@ cm_tilemap_brb:
274284 ; Draw cycling text
275285 ; first cycled line
276286 LDA !ram_cm_brb_screen : ASL : TAX
277- LDA.l BRBTilemapAddress ,X : STA !DP_CurrentMenu
287+ LDA.l BRBTilemapTableLine1 ,X : STA !DP_CurrentMenu
278288 LDX #$04C6
279289 JSR cm_draw_brb_text
280290
281291 ; second cycled line
282292 LDA !ram_cm_brb_screen : ASL : TAX
283- LDA.l BRBTilemapAddress2 ,X : STA !DP_CurrentMenu
293+ LDA.l BRBTilemapTableLine2 ,X : STA !DP_CurrentMenu
284294 LDX #$0586
285295 JSR cm_draw_brb_text
286296
287297 RTS
288298}
289299
300+ cm_tilemap_splash_screen:
301+ {
302+ ; Same bank for all of the BRB text
303+ PHK : PHK : PLA : STA !DP_CurrentMenu+2
304+
305+ LDA !ram_sram_detection
306+ CMP !SRAM_DETECTION_32KB : BEQ .legacy
307+ CMP !SRAM_DETECTION_128KB : BEQ .tinystates
308+ CMP !SRAM_DETECTION_ZSNES : BEQ .zsnes
309+ BRK
310+
311+ .legacy
312+ LDA.w #BRB_legacy_line2 : STA !DP_CurrentMenu
313+ LDX #$0406
314+ JSR cm_draw_brb_text
315+ LDA.w #BRB_legacy_line3 : STA !DP_CurrentMenu
316+ LDX #$04C6
317+ JSR cm_draw_brb_text
318+ BRA .splashLine4
319+
320+ .tinystates
321+ LDA.w #BRB_tinystates_line2 : STA !DP_CurrentMenu
322+ LDX #$0406
323+ JSR cm_draw_brb_text
324+ LDA.w #BRB_tinystates_line3 : STA !DP_CurrentMenu
325+ LDX #$04C6
326+ JSR cm_draw_brb_text
327+ BRA .splashLine4
328+
329+ .zsnes
330+ LDA.w #BRB_zsnes_line2 : STA !DP_CurrentMenu
331+ LDX #$0406
332+ JSR cm_draw_brb_text
333+ LDA.w #BRB_zsnes_line4 : STA !DP_CurrentMenu
334+ LDX #$0586
335+ JSR cm_draw_brb_text
336+ BRA .splashLine1
337+
338+ .splashLine4
339+ LDA.w #BRB_splash_line4 : STA !DP_CurrentMenu
340+ LDX #$0586
341+ JSR cm_draw_brb_text
342+
343+ .splashLine1
344+ LDA.w #BRB_splash_line1 : STA !DP_CurrentMenu
345+ LDX #$0346
346+ JSR cm_draw_brb_text
347+ LDA.w #BRB_splash_title : STA !DP_CurrentMenu
348+ LDX #$01C6
349+ JMP cm_draw_brb_text
350+ }
351+
290352brb_handle_countup_timer:
291353{
292354 LDA !ram_cm_brb_frames : INC : STA !ram_cm_brb_frames
@@ -464,74 +526,104 @@ cm_brb_scroll_BG3:
464526; BRB Text Data
465527; -------------
466528
467- BRB_common_1:
468529table ../resources/header.tbl
530+ BRB_common_line1:
469531 db #$28 , " The Streamer" , #$FF
470-
471- BRB_common_2:
532+ BRB_common_line2:
472533 db #$28 , " Will Be Right Back" , #$FF
534+
535+
536+ BRB_splash_title:
537+ db #$28 , " Wrong Platform Selected" , #$FF
538+
539+
540+ BRB_zsnes_line4:
541+ db #$28 , " DO NOT USE ZSNES" , #$FF
473542table ../resources/normal.tbl
474543
475- BRBTilemapAddress:
476- dw #BRB_screen_01
477- dw #BRB_screen_02
478- dw #BRB_screen_03
479- dw #BRB_screen_04
480- dw #BRB_screen_05
481- dw #BRB_screen_06
482- dw #BRB_screen_07
483544
484- BRB_screen_01:
485- db #$28 , " SM Speedrunning Wiki" , #$FF
545+ BRB_splash_line1:
546+ db #$28 , " You need to select" , #$FF
547+ BRB_splash_line4:
548+ db #$28 , " at smpractice.speedga.me" , #$FF
486549
487- BRB_screen_02:
488- db #$28 , " SM Speedrunning Discord" , #$FF
489550
490- BRB_screen_03:
491- db #$28 , "Find the practice hack at" , #$FF
551+ BRB_legacy_line2:
552+ db #$28 , " SNES Classic or" , #$FF
553+ BRB_legacy_line3:
554+ db #$28 , " Virtual Console" , #$FF
492555
493- BRB_screen_04:
494- db #$28 , " Control Schemes for SM" , #$FF
495556
496- BRB_screen_05:
497- db #$28 , "Support FUNtoon on Patreon" , #$FF
557+ BRB_tinystates_line2:
558+ db #$28 , " Everdrive or" , #$FF
559+ BRB_tinystates_line3:
560+ db #$28 , " Snes9x 1.60 or older" , #$FF
561+
562+
563+ BRB_zsnes_line2:
564+ db #$28 , " another emulator" , #$FF
498565
499- BRB_screen_06:
500- db #$28 , " Crazy chain damage clips" , #$FF
501566
502- BRB_screen_07:
503- db #$28 , " Customized practice hacks" , #$FF
567+ BRBTilemapTableLine1:
568+ dw #BRB_screen1_line1
569+ dw #BRB_screen2_line1
570+ dw #BRB_screen3_line1
571+ dw #BRB_screen4_line1
572+ dw #BRB_screen5_line1
573+ dw #BRB_screen6_line1
574+ dw #BRB_screen7_line1
504575
505- BRBTilemapAddress2 :
506- dw #BRB_screen2_01
507- dw #BRB_screen2_02
508- dw #BRB_screen2_03
509- dw #BRB_screen2_04
510- dw #BRB_screen2_05
511- dw #BRB_screen2_06
512- dw #BRB_screen2_07
576+ BRBTilemapTableLine2 :
577+ dw #BRB_screen1_line2
578+ dw #BRB_screen2_line2
579+ dw #BRB_screen3_line2
580+ dw #BRB_screen4_line2
581+ dw #BRB_screen5_line2
582+ dw #BRB_screen6_line2
583+ dw #BRB_screen7_line2
513584
514- BRB_screen2_01:
585+
586+ BRB_screen1_line1:
587+ db #$28 , " SM Speedrunning Wiki" , #$FF
588+ BRB_screen1_line2:
515589 db #$28 , " wiki.supermetroid.run" , #$FF
516590
517- BRB_screen2_02:
591+
592+ BRB_screen2_line1:
593+ db #$28 , " SM Speedrunning Discord" , #$FF
594+ BRB_screen2_line2:
518595 db #$28 , " SMDiscord.spazer.link" , #$FF
519596
520- BRB_screen2_03:
597+
598+ BRB_screen3_line1:
599+ db #$28 , "Find the practice hack at" , #$FF
600+ BRB_screen3_line2:
521601 db #$28 , " smpractice.speedga.me" , #$FF
522602
523- BRB_screen2_04:
603+
604+ BRB_screen4_line1:
605+ db #$28 , " Control Schemes for SM" , #$FF
606+ BRB_screen4_line2:
524607 db #$28 , " controls.spazer.link" , #$FF
525608
526- BRB_screen2_05:
609+
610+ BRB_screen5_line1:
611+ db #$28 , "Support FUNtoon on Patreon" , #$FF
612+ BRB_screen5_line2:
527613; !funtoonpatreon
528614 db #$28 , " " , #$1A , "funtoonpatreon" , #$FF
529615
530- BRB_screen2_06:
616+
617+ BRB_screen6_line1:
618+ db #$28 , " Crazy chain damage clips" , #$FF
619+ BRB_screen6_line2:
531620 db #$28 , " chain.spazer.link" , #$FF
532621
533- BRB_screen2_07:
534- db #$28 , " by InsaneFirebat" , #$FF
535622
536- %endfree(8E)
623+ BRB_screen7_line1:
624+ db #$28 , " Learn new SM strats at" , #$FF
625+ BRB_screen7_line2:
626+ db #$28 , " crocomi.re" , #$FF
627+
628+ %endfree(A1 )
537629
0 commit comments