Skip to content

Commit 20cf4cc

Browse files
authored
Merge pull request #228 from idlechild/master
Controller Shortcuts are now Awesome
2 parents 07397fe + 132b288 commit 20cf4cc

33 files changed

+6163
-2164
lines changed

TODO.txt

Lines changed: 0 additions & 85 deletions
This file was deleted.

resources/cm_gfx.bin

0 Bytes
Binary file not shown.

resources/cm_gfx2.bin

0 Bytes
Binary file not shown.

src/BRBmenu.asm

Lines changed: 140 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ cm_brb_table:
1010
; 1000h bytes transferred
1111
incbin ../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

5357
brb_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

5660
brb_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

5963
brb_menu_timer_clear:
6064
%cm_jsl("Clear Timer", .routine, #0)
@@ -182,9 +186,15 @@ cm_brb_loop:
182186
cm_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

190200
cm_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+
290352
brb_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:
468529
table ../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
473542
table ../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

src/crash.asm

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -212,8 +212,8 @@ CrashViewer:
212212
STA !ram_crash_input : STA !ram_crash_input_new
213213
LDA #$0001 : STA !ram_crash_bg
214214
LDA !IH_CONTROLLER_PRI_NEW : STA !ram_crash_input_prev
215-
LDA #$0A44 : STA !ram_crash_mem_viewer
216-
LDA #$007E : STA !ram_crash_mem_viewer_bank
215+
LDA.w !CRASH_INITIAL_ADDRESS : STA !ram_crash_mem_viewer
216+
LDA.w !CRASH_INITIAL_ADDRESS>>16 : STA !ram_crash_mem_viewer_bank
217217

218218
; fall through to CrashLoop
219219
}
@@ -247,16 +247,10 @@ CrashLoop:
247247
.skipSoftReset
248248

249249
if !FEATURE_SD2SNES
250-
; check for load state shortcut
251-
LDA !ram_crash_input : CMP !sram_ctrl_load_state : BNE .skipLoadState
250+
; check for load state shortcut (Select+Y+L)
251+
LDA !ram_crash_input : CMP #$6020 : BNE .skipLoadState
252252
AND !ram_crash_input_new : BEQ .skipLoadState
253-
LDA !SRAM_SAVED_STATE : CMP !SAFEWORD : BNE .skipLoadState
254-
; prepare to jump to load_state
255-
%a8()
256-
LDA.b #gamemode_start>>16 : PHA : PLB
257-
%a16()
258-
PEA.w gamemode_start_return-1
259-
JML gamemode_shortcuts_load_state
253+
JSL gamemode_load_state
260254
.skipLoadState
261255
endif
262256

0 commit comments

Comments
 (0)