@@ -246,12 +246,14 @@ endif
246246
247247 ; Samus has reached fourth gear and is ready to charge the shinespark by pressing down
248248 ; When this happens, the gear resets to zero, so check for that
249- LDA !SAMUS_DASH_COUNTER : AND # $ 00FF : CMP !ram_dash_counter : BEQ .chargespark
249+ LDA !SAMUS_DASH_COUNTER : AND # $ 00FF : CMP !ram_dash_counter : BNE .draw_end
250+ JMP .chargespark
250251
251252 .draw_end
252253 ; Skip drawing if minimap on
253254 LDA !ram_minimap : BNE .reset
254255 LDA !ram_shinetune_late_4 : LDX # $ 00C0 : JSR Draw3
256+ LDA !IH_BLANK : STA !HUD_TILEMAP + $ C6
255257
256258 .reset
257259 TDC : STA !ram_shine_counter : STA !ram_dash_counter
@@ -1026,7 +1028,7 @@ status_walljump:
10261028
10271029 .clearaverage
10281030 TDC : STA !ram_roomstrat_counter
1029- BRA .checkjump
1031+ JMP .checkjump
10301032
10311033 .incframecount
10321034 ; Arbitrary wait of 120 frames before we stop tracking the average
@@ -1058,34 +1060,51 @@ status_walljump:
10581060 BRA .checkjump
10591061
10601062 .resetreleasejump
1061- LDA !ram_roomstrat_state : DEC : AND # $ 0003
1063+ BNE .gotocheckleftright : STA !ram_shot_timer
1064+ LDA !ram_roomstrat_state : BEQ .gotocheckleftright
1065+ DEC : AND # $ 0003
10621066 ASL # 2 : TAX : LDA !IH_BLANK : STA !HUD_TILEMAP + $ B0 , X
10631067 BRA .blanksides
10641068
1069+ .incwithmap
1070+ LDA !ram_roomstrat_state : INC
1071+ BIT # $ 0003 : BNE .storeroomstate
1072+
1073+ .incroomstate
1074+ INC
1075+
1076+ .storeroomstate
1077+ STA !ram_roomstrat_state
1078+ JMP .checkleftright
1079+
10651080 .zerospeed
10661081 TDC : STA !ram_momentum_sum
10671082
10681083 .checkjump
10691084 LDA !IH_CONTROLLER_PRI_NEW : AND !IH_INPUT_JUMP : BNE .pressedjump
1070- LDA !IH_CONTROLLER_PRI : AND !IH_INPUT_JUMP : BNE .checkleftright
1085+ LDA !IH_CONTROLLER_PRI : AND !IH_INPUT_JUMP : BNE .gotocheckleftright
10711086
10721087 ; count up to 36 frames of jump released
1073- LDA !ram_shot_timer : CMP # $ 0024 : BPL .resetreleasejump
1074- INC : STA !ram_shot_timer
1075- ASL : TAX
1088+ LDA !ram_shot_timer : INC
1089+ CMP # $ 0025 : BPL .resetreleasejump
1090+ STA !ram_shot_timer : ASL : TAX
10761091 LDA NumberGFXTable , X : PHA
1077- LDA !ram_roomstrat_state : DEC : AND # $ 0003
1092+ LDA !ram_roomstrat_state : BEQ .placheckleftright
1093+ DEC : AND # $ 0003
10781094 ASL # 2 : TAX : PLA : STA !HUD_TILEMAP + $ B0 , X
10791095 LDA !IH_BLANK
10801096
10811097 .blanksides
10821098 STA !HUD_TILEMAP + $ AE , X : STA !HUD_TILEMAP + $ B2 , X
1099+
1100+ .gotocheckleftright
10831101 BRA .checkleftright
10841102
10851103 .pressedjump
10861104 TDC : STA !ram_shot_timer
1087- LDA !ram_roomstrat_state : INC : STA !ram_roomstrat_state
1088- BRA .checkleftright
1105+ LDA !ram_minimap : BNE .incwithmap
1106+ LDA !ram_roomstrat_state
1107+ BRA .incroomstate
10891108
10901109 .writg
10911110 LDA # $ 042F : STA !ram_ypos
@@ -1109,6 +1128,9 @@ status_walljump:
11091128 CMP .w #ROOM_MtEverest : BEQ .everest
11101129 JMP .clear
11111130
1131+ .placheckleftright
1132+ PLA
1133+
11121134 .checkleftright
11131135 LDA !IH_CONTROLLER_PRI_NEW : AND !IH_INPUT_LEFT : BNE .leftright
11141136 LDA !IH_CONTROLLER_PRI_NEW : AND !IH_INPUT_RIGHT : BNE .leftright
@@ -1420,17 +1442,25 @@ status_ypos:
14201442status_shottimer:
14211443{
14221444 LDA !IH_CONTROLLER_PRI_NEW : AND !IH_INPUT_SHOT : BEQ .incShot
1423- LDA !IH_BLANK : STA !HUD_TILEMAP + $ AE
1424- STA !HUD_TILEMAP + $ B2 : STA !HUD_TILEMAP + $ B6
1425- STA !HUD_TILEMAP + $ BA : STA !HUD_TILEMAP + $ BE
1426- LDA !ram_shot_timer_past4 : BEQ .initPast
1445+ LDA !ram_shot_timer_past4 : BNE .doneInitPast
1446+ JMP .initPast
1447+
14271448 .doneInitPast
1428- STA !HUD_TILEMAP + $ BC
1449+ LDA !ram_minimap : BEQ .drawPast4
1450+ LDA !IH_BLANK
1451+ BRA .donePast4
1452+ .drawPast4
1453+ LDA !ram_shot_timer_past4 : STA !HUD_TILEMAP + $ BC
1454+ LDA !IH_BLANK : STA !HUD_TILEMAP + $ BE
1455+ .donePast4
1456+ STA !HUD_TILEMAP + $ AE : STA !HUD_TILEMAP + $ B2
1457+ STA !HUD_TILEMAP + $ B6 : STA !HUD_TILEMAP + $ BA
14291458 LDA !ram_shot_timer_past3 : STA !HUD_TILEMAP + $ B8 : STA !ram_shot_timer_past4
14301459 LDA !ram_shot_timer_past2 : STA !HUD_TILEMAP + $ B4 : STA !ram_shot_timer_past3
14311460 LDA !ram_shot_timer_past1 : STA !HUD_TILEMAP + $ B0 : STA !ram_shot_timer_past2
14321461 LDA !ram_shot_timer : LDX # $ 0088 : JSR Draw4
1433- LDA !ram_shot_timer : CMP # $ 0042 : BPL .setX
1462+ LDA !ram_shot_timer : CMP # $ 0025 : BPL .setXMap
1463+ .setValue
14341464 ASL : TAX : LDA NumberGFXTable , X
14351465 BRA .setPast1
14361466
@@ -1446,10 +1476,16 @@ status_shottimer:
14461476 LDA !ROOM_ID : CMP .w #ROOM_PhantoonRoom : BEQ .phantoon
14471477 RTS
14481478
1479+ .setXMap
1480+ CMP # $ 0042 : BPL .setX
1481+ LDA !ram_minimap : BNE .setX
1482+ LDA !ram_shot_timer
1483+ BRA .setValue
1484+
14491485 .initPast
14501486 LDA !IH_BLANK : STA !ram_shot_timer_past4 : STA !ram_shot_timer_past3
14511487 STA !ram_shot_timer_past2 : STA !ram_shot_timer_past1
1452- BRA .doneInitPast
1488+ JMP .doneInitPast
14531489
14541490 .phantoonCheckInit
14551491 LDA !ENEMY_VAR_5
0 commit comments