Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
ed916c2
Disable NMI earlier in crash handler
InsaneFirebat Jul 16, 2026
cfb8a19
Handle emulation mode crashes
InsaneFirebat Jul 16, 2026
1a70fc5
CGRAM upload routine for crash handler
InsaneFirebat Jul 27, 2026
2923461
Automate number of BRB screens
InsaneFirebat Aug 6, 2026
0d42dd9
Optimize Metroid and Zeb menu code
InsaneFirebat Aug 7, 2026
0d8d613
More PEI usage
InsaneFirebat Aug 7, 2026
95318ae
Macro for menu music toggle
InsaneFirebat Aug 9, 2026
3ec2995
Use !PRESET_COMPRESSED bitmask
InsaneFirebat Aug 9, 2026
31fd9f2
Automate !IH_MODE_INDEX updates
InsaneFirebat Aug 9, 2026
d5d625e
Automate !IH_STRAT_INDEX updates
InsaneFirebat Aug 9, 2026
46bb322
Automate !IH_SUPERHUD_INDEX updates
InsaneFirebat Aug 9, 2026
78fe1e9
Revert micro optimization
InsaneFirebat Aug 10, 2026
fedff88
Submenu for Door Display Mode selection
InsaneFirebat Aug 11, 2026
1bc796e
HUD Mode choice menus open submenus
InsaneFirebat Aug 11, 2026
7fac033
Fixing bugs in previous commits
InsaneFirebat Aug 11, 2026
498578e
More info in freespace prints
InsaneFirebat Aug 11, 2026
f83ce7f
Create recommended.txt
InsaneFirebat Aug 12, 2026
c1e60ad
Update SMILE link and mention RAM map
InsaneFirebat Aug 12, 2026
b5ec558
Add NOPs back after branch
idlechild Aug 12, 2026
902a412
Move tile tables start back to E68800
idlechild Aug 12, 2026
75d4bd7
Avoid saving to SRAM when loading preset or savestate
idlechild Aug 12, 2026
7328d85
Optimize and free up some menu memory
idlechild Aug 13, 2026
b7a1b7d
Read-Only Locks
InsaneFirebat Aug 14, 2026
43b41a1
Lock optimizations
InsaneFirebat Aug 15, 2026
54a19d2
Merge pull request #279 from InsaneFirebat/read-only-locks
idlechild Aug 17, 2026
6460c55
Cleanup preset data and fix Kraid Kihunters presets
idlechild Aug 19, 2026
9d6dc55
Optimize Metroid and Zeb menu code (round 2)
InsaneFirebat Aug 18, 2026
a0a9f2a
Docs for read-only locks
InsaneFirebat Aug 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions enemies/create_clear_enemies_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
last_enemy_id = None
for enemy_id in sorted(enemies):
if not last_enemy_id:
f_output.write("\n\n%startfree(E5)\n")
f_output.write("\n\norg $E58000\n")
f_output.write("ClearEnemiesTable:\n\n")
enemy_id_pal = enemy_id + 8
f_output.write("")
Expand All @@ -42,6 +42,5 @@
f_output.write("dw $000" + enemies[enemy_id] + "\n\n")
last_enemy_id = enemy_id

f_output.write("%endfree(E5)\n\n")
f_output.close()

3 changes: 1 addition & 2 deletions names/create_names.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
f_output.write("\n; Room Names")
f_output.write("\n; (autogenerated)")
f_output.write("\n; ---------------")
f_output.write("\n\n%startfree(E5)\n")
f_output.write("\n\norg $E58000\n")
f_output.write("RoomNameTextTable:\n")
f_output.write("ROOM:\n\n")

Expand All @@ -71,6 +71,5 @@
last_room_end = int(last_room_id, 16) + max_characters
f_output.write("warnpc $E5" + f'{last_room_end:04X}' + "\n\n")

f_output.write("%endfree(E5)\n\n")
f_output.close()

Binary file modified resources/cm_gfx.bin
Binary file not shown.
Binary file modified resources/cm_gfx2.bin
Binary file not shown.
58 changes: 25 additions & 33 deletions src/BRBmenu.asm
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@

%startfree(8E)

!BRB_TOTAL_SCREENS = #$0007

; --------
; BRB Data
Expand Down Expand Up @@ -85,30 +84,7 @@ brb_menu_scroll:
%cm_toggle("Screen Scrolling", !ram_cm_brb_scroll, #$01, #0)

brb_menu_music_toggle:
dw !ACTION_CHOICE
dl #!sram_music_toggle
dw .routine
db #$28, "Music", #$FF
db #$28, " OFF", #$FF
db #$28, " ON", #$FF
db #$28, " FAST OFF", #$FF
db #$28, " PRESET OFF", #$FF
db #$FF
.routine
; Clear music queue
STZ !MUSIC_QUEUE_TIMERS : STZ !MUSIC_QUEUE_TIMERS+$2
STZ !MUSIC_QUEUE_TIMERS+$4 : STZ !MUSIC_QUEUE_TIMERS+$6
STZ !MUSIC_QUEUE_TIMERS+$8 : STZ !MUSIC_QUEUE_TIMERS+$A
STZ !MUSIC_QUEUE_TIMERS+$C : STZ !MUSIC_QUEUE_TIMERS+$E
STZ !MUSIC_QUEUE_NEXT : STZ !MUSIC_QUEUE_START
STZ !MUSIC_ENTRY : STZ !MUSIC_TIMER
CMP #$0001 : BEQ .resume_music
STZ $2140
RTL
.resume_music
LDA !MUSIC_DATA : CLC : ADC #$FF00 : PHA : STZ !MUSIC_DATA : PLA : JSL !MUSIC_ROUTINE
LDA !MUSIC_TRACK : PHA : STZ !MUSIC_TRACK : PLA : JSL !MUSIC_ROUTINE
RTL
%cm_music_toggle()

brb_streamer_name:
%cm_jsl("Set Streamer Name", #.routine, #!sram_streamer_name)
Expand Down Expand Up @@ -216,7 +192,7 @@ endif
CMP !CTRL_A : BNE .loop

LDA !ram_cm_brb_screen : INC : STA !ram_cm_brb_screen
CMP !BRB_TOTAL_SCREENS : BMI .loop
CMP.w !BRB_TOTAL_SCREENS : BMI .loop
TDC : STA !ram_cm_brb_screen : STA !ram_cm_brb_timer
BRA .loop
}
Expand Down Expand Up @@ -251,7 +227,7 @@ cm_tilemap_brb:

; Cycle screen text
LDA !ram_cm_brb_screen : INC : STA !ram_cm_brb_screen
CMP !BRB_TOTAL_SCREENS : BMI .done_cycle_text
CMP.w !BRB_TOTAL_SCREENS : BMI .done_cycle_text
TDC : STA !ram_cm_brb_screen

.done_cycle_text
Expand Down Expand Up @@ -334,13 +310,13 @@ cm_tilemap_brb:
.draw_timer
; Seconds
LDA !ram_cm_brb_secs : ASL : TAX
LDA.l TimerNumberGFX1,X : STA !ram_tilemap_buffer+$360
LDA.l TimerNumberGFX2,X : STA !ram_tilemap_buffer+$362
LDA.l BRBTimerNumberGFX1,X : STA !ram_tilemap_buffer+$360
LDA.l BRBTimerNumberGFX2,X : STA !ram_tilemap_buffer+$362

; Minutes
LDA !ram_cm_brb_mins : ASL : TAX
LDA.l TimerNumberGFX1,X : STA !ram_tilemap_buffer+$35A
LDA.l TimerNumberGFX2,X : STA !ram_tilemap_buffer+$35C
LDA.l BRBTimerNumberGFX1,X : STA !ram_tilemap_buffer+$35A
LDA.l BRBTimerNumberGFX2,X : STA !ram_tilemap_buffer+$35C

; Draw colon seperator
LDA #$2800|':' : STA !ram_tilemap_buffer+$35E
Expand Down Expand Up @@ -730,6 +706,7 @@ BRBTilemapTableLine1:
dw #BRB_screen5_line1
dw #BRB_screen6_line1
dw #BRB_screen7_line1
.end

BRBTilemapTableLine2:
dw #BRB_screen1_line2
Expand All @@ -741,7 +718,6 @@ BRBTilemapTableLine2:
dw #BRB_screen7_line2


; see !BRB_TOTAL_SCREENS at top of file
BRB_screen1_line1:
db #$28, " SM Speedrunning Wiki", #$FF
BRB_screen1_line2:
Expand Down Expand Up @@ -784,6 +760,22 @@ BRB_screen7_line1:
BRB_screen7_line2:
db #$28, " crocomi.re", #$FF

BRBTimerNumberGFX1:
dw #$2870, #$2870, #$2870, #$2870, #$2870, #$2870, #$2870, #$2870, #$2870, #$2870
dw #$2871, #$2871, #$2871, #$2871, #$2871, #$2871, #$2871, #$2871, #$2871, #$2871
dw #$2872, #$2872, #$2872, #$2872, #$2872, #$2872, #$2872, #$2872, #$2872, #$2872
dw #$2873, #$2873, #$2873, #$2873, #$2873, #$2873, #$2873, #$2873, #$2873, #$2873
dw #$2874, #$2874, #$2874, #$2874, #$2874, #$2874, #$2874, #$2874, #$2874, #$2874
dw #$2875, #$2875, #$2875, #$2875, #$2875, #$2875, #$2875, #$2875, #$2875, #$2875

BRBTimerNumberGFX2:
dw #$2870, #$2871, #$2872, #$2873, #$2874, #$2875, #$2876, #$2877, #$2878, #$2879
dw #$2870, #$2871, #$2872, #$2873, #$2874, #$2875, #$2876, #$2877, #$2878, #$2879
dw #$2870, #$2871, #$2872, #$2873, #$2874, #$2875, #$2876, #$2877, #$2878, #$2879
dw #$2870, #$2871, #$2872, #$2873, #$2874, #$2875, #$2876, #$2877, #$2878, #$2879
dw #$2870, #$2871, #$2872, #$2873, #$2874, #$2875, #$2876, #$2877, #$2878, #$2879
dw #$2870, #$2871, #$2872, #$2873, #$2874, #$2875, #$2876, #$2877, #$2878, #$2879

%endfree(A1)


Expand All @@ -802,7 +794,7 @@ ZSNES_Palette:
incbin ../resources/zsnes_palette.bin

print pc, " zsnes splashscreen graphics crossbank end"
warnpc $E48000
warnpc !START_FREESPACE_E3
check bankcross on
endif

4 changes: 1 addition & 3 deletions src/clearenemies.asm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
; (autogenerated)
; ---------------

%startfree(E5)
org $E58000
ClearEnemiesTable:

if !FEATURE_PAL
Expand Down Expand Up @@ -1155,5 +1155,3 @@ org $E5FDE4
endif
dw $0001 ; BATTA3Tu (escape silver walking space pirate)

%endfree(E5)

Loading
Loading