diff --git a/patches/ips/momentum_conservation.ips b/patches/ips/momentum_conservation.ips index 17f7a73e1..94c36e072 100644 Binary files a/patches/ips/momentum_conservation.ips and b/patches/ips/momentum_conservation.ips differ diff --git a/patches/ips/split_speed.ips b/patches/ips/split_speed.ips index 92206073a..b6c978125 100644 Binary files a/patches/ips/split_speed.ips and b/patches/ips/split_speed.ips differ diff --git a/patches/src/momentum_conservation.asm b/patches/src/momentum_conservation.asm index fc1b22d32..192f8bbd9 100644 --- a/patches/src/momentum_conservation.asm +++ b/patches/src/momentum_conservation.asm @@ -1,18 +1,9 @@ ; Patch to conserve Samus' horizontal momentum when landing while running ; Author: Scyzer, with updates by Nodever2 & OmegaDragnet7 lorom - !bank_90_free_space_start = $90F800 !bank_90_free_space_end = $90F880 -!equipped_items = $09A2 -!blue_booster = $0040 -!spark_booster = $0080 -!speed_booster = $2000 -!any_booster = !blue_booster|!spark_booster|!speed_booster - -lorom - ; ASM to keep running speed while landing. This is more effective than simply changing the pose table, ; as you can have variables, and doesn't move you forward a pixel. @@ -65,15 +56,6 @@ SPEEDKEEP: LDA $0B40 : BEQ + : LDA #$0003 : JSL $80914D ; resume speed booster sfx if needed + ; next two lines of code are mostly only needed because of a dumb vanilla bug with $91DA74 - lda !equipped_items - bit #!blue_booster|!speed_booster - bne .skip - sep #$20 - lda #$01 - sta $0b3e - rep #$20 - -.skip: LDA #$0001 : STA $0AD0 ; update samus palette next frame LDA #$0004 : STA $0ACE ; reset samus speed booster/screw attack palette index PLP : RTS diff --git a/patches/src/split_speed.asm b/patches/src/split_speed.asm index db1af44bf..b46c42e7e 100644 --- a/patches/src/split_speed.asm +++ b/patches/src/split_speed.asm @@ -78,7 +78,7 @@ org $82C04A org $82C2A6 list_boots_equip_tilemaps: dw $BFD2, $BFE4, tilemap_blue_booster, tilemap_spark_booster -warnpc $82C2B7 +assert pc() <= $82C2B7 org !bank_82_free_space_start @@ -97,8 +97,6 @@ list_boots_equip_bitmasks: list_boots_ram_tilemaps: dw $3CAA, $3CEA, $3D2A, $3D6A - -warnpc !bank_82_free_space_end assert pc() <= !bank_82_free_space_end org !bank_82_freespace2_start @@ -109,7 +107,6 @@ boots_item_selector_positions: dw $00CC, $00A4 dw $00CC, $00AC -warnpc !bank_82_freespace2_end assert pc() <= !bank_82_freespace2_end ; Accelerate Samus' animation with any booster item: @@ -344,8 +341,10 @@ spark_booster_lose_blue: ;sta $0AAE jsl .remove_echoes - stz $0b3e ; Clear dash counter - + ;stz $0b3e ; Clear dash counter + lda #$0001 ; reset speed booster timer to 1 (should fix xmode and momenutm conservation), $90857D automatically decrements this, if its at 0 it underflows causing animation issues with xmode/mc + sta $0b3e + lda #$0000 rtl .skip_lose_blue: