All in bank 90 unless otherwise stated. Super Jump --> Wall Grab --> Super Jump 0A58 is D0AB during vertical super jump 0A58 is D0D7 during diagonal super jump 0A58 is D106 during horizontal super jump 0AC8 is C1 02 53 05 during wall jump leaving facing right 0AC8 is FF 07 E3 07 during wall jump landing facing right 0AC8 is F0 02 82 05 during wall jump leaving facing left 0AC8 is FF 07 1B 08 during wall jump landing facing left D0AB: LDA #$0002 STA $0A6E ;Samus's contact damage controller LDA #$0008 STA $0A48 ;Samus's pallete LDX #$0004 LDY $EF20 ;#$0010 JSR $EEE7 ; Handle Blue Suit Echoes JSR $D1FF ; Super Jump vertical movement JSR $D2BA ; Check if super jump should stop, if so, stop it LDA $09C2 CMP #$001E BMI BRANCH_ALPHA DEC $09C2 BPL BRANCH_ALPHA STZ $09C2 BRANCH_ALPHA RTS D0D7: LDA #$0002 STA $0A6E ;Samus's contact damage controller LDA #$0008 STA $0A48 ;Samus's pallete LDX #$0004 LDY $EF20 ;#$0010 JSR $EEE7 ; Handle Blue Suit Echoes JSR $D132 ; Super Jump horizontal movement JSR $D1FF ; Super Jump vertical movement JSR $D2BA ; Check if super jump should stop, if so, stop it LDA $09C2 CMP #$001E BMI BRANCH_ALPHA DEC $09C2 BPL BRANCH_ALPHA STZ $09C2 ;AHAHAHAHAHA! 'If X is > 30, and X - 1 < 0, X = 0'. Seriously, who wrote this? BRANCH_ALPHA RTS D106: LDA #$0002 STA $0A6E ;Samus's contact damage controller LDA #$0008 STA $0A48 ;Samus's pallete LDX #$0008 LDY $EF20 ;#$0010 JSR $EEE7 ; Handle Blue Suit Echoes JSR $D132 ; Super Jump horizontal movement JSR $D2BA ; Check if super jump should stop, if so, stop it LDA $09C2 CMP #$001E BMI BRANCH_ALPHA DEC $09C2 BPL BRANCH_ALPHA STZ $09C2 BRANCH_ALPHA RTS Change the damage parts... 90:D0C6, 90:D0F5, and 90:D121: JMP $SuperJumpDamage 4CXXXX 90:SuperJumpDamage: ;This will change later when I add the Green Chozo item in LDA $09C2 CMP #$001E BMI #$03 DEC $09C2 RTS ADC209C91E003003CEC20960 90:SuperJumpDamage: ;This is approximately what it will be LDA $09C2 CMP #$001E BMI End LDA $09A2 BIT #$XXXX BEQ Damage LDA $05E5 BIT #$0001 BEQ End Damage: DEC $09C2 End: RTS ;28 bytes approximately. I'll save 32 total for it. You know what? There's no reason to do that all right now. I'll skip it for later. Need a fix for 91:FACA so it doesn't glitch out with my new poses. After SBC #$00C9... 8FAD6: BMI BRANCH_ALPHA ;22 ASL A TAX LDA $FAFC, X STA $0A58 LDA #$E90E STA $0A60 NOP STZ $0AC0 30220AAABDFCFA8D580AA90EE98D600AEA That looks good. Electromorph update 8FAD6: BMI BRANCH_ALPHA ;22 ASL A TAX JSL $B88090 STA $0A58 LDA #$E90E STA $0A60 STZ $0AC0 30220AAA229080B88D580AA90EE98D600A B8:8090 LDA $0617 BIT #$0008 BEQ Normal LDA #$D0DE RTS Normal: LDA $FAFC,X RTL AD1706890800F004A9DED060BDFCFA6B Sooo... It's D132 I wanna hack. Let's see, what's needed? D132 hack Transition to new pose if jump is held and collision is true with 0A2C (Set 0A32 = 0?) Set 0A58 to new value. STZ $0DD0. Put #$0001 into $0ACC and #$00B4 into $0A68. Transition um. Nothing, really. It's all in D132. Just make sure it doesn't glitch up. 2 new poses 20(right) and 21(left) will do. (081BCBFF08001300 and 041BCCFF08001300) Edit table 91:B629 (above values) Edit table 91:B010 (animation stuff... tell it to do nothing. B362?) Edit table 91:9EE2 and associated entries (Same things as super jump windup) 92:D94E, 92:9263, and 92:945D: Copy wall jump tiles (106 --> 40 and 108 --> 42) 92:9263 ends at 7B 9A (right), and 87 9A (left) for wall jump leaving 92:945D ends at 44 B1 (right), and 69 B1 (left) for wall jump leaving 92:9263 ends at 43 9B (right), and 59 9B (left) for wall jump landing 92:945D ends at B2 AF (right), and BE AF (left) for wall jump landing 82 --> 9367 --> 07E4 --> 07FF --> 0FFE --> 908B --> 59 9B 21 --> 92A5 --> 3FB3 --> 3FB4 --> 7F68 --> FFF5 --> B2 AF New 0A58 pointer Used for both wall grab poses Checks health, checks block(?), checks 0ACC. If fail, transition to falling, else decrements health. Great, lets start! A minor complaint: Samus's hitbox during superjumps is too big. Let's tweak it. :D Poses to change: C9, CA, CD, CE Let's move the visual box down while we're at it ; Start Code Changes for Insanity (1 of 2) 91:BC77 11 91:BC7F 11 91:BC97 11 91:BC9F 11 91:BC75 04 91:BC7D 04 91:BC95 04 91:BC9D 04 92:FFEF 7B9A439B44B1B2AF879A599B69B1BEAF 92:92A3 B13FB53F 92:949D B33FB73F 91:B050 2AB32AB3 92:D98E 00EE08EE 92:EE00 01120113011C001E01130114011D001F ;92:D98E ;B8E274E3 ;92:92A3 ;C102F002 ;92:949D ;53058205 91:9F22 24A63EA6 91:A624 0800 0080 00CB 0010 0080 00CD 0100 0080 00C9 0000 0080 0020 FFFF 00088000CB0010008000CD0000018000C900000080002000FFFF ;0000 0880 00CB ;0000 0090 00CD ;0000 0180 00C9 ;FFFF 91:A63E 0800 0080 00CC 0010 0080 00CE 0200 0080 00CA 0000 0080 0021 FFFF 00088000CC0010008000CE0000028000CA00000080002100FFFF ;0000 0880 00CC ;0000 0090 00CE ;0000 0280 00CA ;FFFF ;91:B050 ;62B362B3 8B729: 081BCBFF04001300041BCCFF04001300 8FAD6: 30220AAA229080B88D580AA90EE98D600A B8:8090: AD1706890400F004A9DED060BDFCFA6B 851D6: JSR FreeSpace 20XXXX 20B8F6 ; End Code Changes for Insanity (1 of 2) 90:FreeSpace (probably 90:F6B8) LDA $0617 BIT #$0008 BNE End LDA $0DD0 BEQ End LDA $8B BIT $09B4 BEQ End LDA #$000C JSL $80912F LDA #$0010 JSL $80914D LDA #$F720 STA $0A58 LDA #$E913 STA $0A60 STZ $0DD0 STZ $0A32 LDA #$0001 STA $0ACC LDA #$0020 STA $0A68 LDA $0A1E BIT #$0004 BNE Left LDA #$0021 STA $0A2C BRA End Left: LDA #$0020 STA $0A2C End: LDA $0AF6 RTS AD1706890800D056ADD00DF049A58B2CB409F042A90C00222F9180A91000224D9180A920F78D580AA913E98D600A9CD00D9C320AA901008DCC0AA920008D680AAD1E0A890400D008A921008D2C0A8006A920008D2C0AADF60A60 ; Start Code Changes for Insanity (2 of 2) ;That's good for no items, but for Insanity I'll need to check for equipment bit #$0040 ;This also prevents vertical movement after hitting a wall now org $90F6B8 LDA $0617 BIT #$0008 BNE End LDA $0DD0 BEQ End LDA $09A2 BIT #$0040 BEQ End LDA $8B BIT $09B4 BEQ End LDA #$000C JSL $80912F LDA #$0010 JSL $80914D LDA #$F720 STA $0A58 LDA #$E913 STA $0A60 STZ $0DD0 STZ $0A32 LDA #$0001 STA $0ACC LDA #$0020 STA $0A68 PLA PLA LDA $0A1E BIT #$0004 BNE Left LDA #$0021 STA $0A2C BRA End Left: LDA #$0020 STA $0A2C End: LDA $0AF6 RTS ;Outdated code ;AD1706890800D056 ;ADD00DF051ADA209894000F049A58B2C ;B409F042A90C00222F9180A91000224D ;9180A920F78D580AA913E98D600A9CD0 ;0D9C320AA901008DCC0AA920008D680A ;AD1E0A890400D008A921008D2C0A8006 ;A920008D2C0AADF60A60 This will do for items. I'm not liking the block collision detection, so I think I'll delete it. org $90F720 JSR $EEE7 LDA $09C2 CMP #$001E BMI Fall LDA $0A68 DEC BEQ Fall DEC $09C2 RTS Fall: LDA #$0006 STA $0ACC STA $0A68 LDA #$E90E STA $0A60 JSR $D2C9 ; End Code Changes for Insanity (2 of 2) Old code with block collision detection 90:F720 JSR $EEE7 LDA $0AF6 LSR LSR LSR LSR PHA LDA $0A1E BIT #$0004 BNE Left1 PLA DEC PHA BRA CalcY Left1: PLA INC PHA CalcY: LDA $0AFA SEC SBC $0B00 INC LSR LSR LSR LSR SEP #$20 STA $4202 LDA $07A5 STA $4203 REP #$20 NOP NOP PLA CLC ADC $4216 PHA JSL $94B1A0 PLA BCS Solid CLC ADC $07A5 PHA JSL $94B1A0 PLA BCS Solid CLC ADC $07A5 JSL $94B1A0 BCC Fall Solid: LDA $09C2 CMP #$001E BMI Fall LDA $0A68 DEC BEQ Fall DEC $09C2 RTS Fall: LDA #$0006 STA $0ACC STA $0A68 LDA #$E90E STA $0A60 JSR $D2C9 20E7EEADF60A4A4A4A4A48AD1E0A890400D005683A488003681A48ADFA0A38ED000B1A4A4A4A4AE2208D0242ADA5078D0342C220EAEA68186D16424822A0B19468B016186DA5074822A0B19468B00A186DA50722A0B1949012ADC209C91E00300AAD680A3AF004CEC20960A906008DCC0A8D680AA90EE98D600A20C9D2 ;STZ $0B3E ;STZ $0B36 ;STZ $0B2C ;STZ $0B2E ;STZ $0B42 ;STZ $0B44 ;STZ $0A32 ;LDA #$A337 ;STA $0A58 ;LDA #$E913 ;STA $0A60 ;LDA $0A1E ;BIT #$0004 ;BNE Left ;LDA #$0029 ;STA $0A2C ;RTS ;Left: ;LDA #$002A ;STA $0A2C ;RTS ;ADF60A4A4A4A4A48ADFA0A38ED000B1A4A4A4A4AE2208D0242ADA5078D0342C220EAEA68186D16428DC40D22A0B194B00DADC40D186DA50722A0B1949011ADC209C91E003009ADCC0AF004CEC209609C3E0B9C360B9C2C0B9C2E0B9C420B9C440B9C320AA937A38D580AA913E98D600AAD1E0A890400D007A929008D2C0A60A92A008D2C0A60 A31A0: PHB PHK PLB ASL TAX LSR JSR $9515 PLB RTL 8B4BAB0AAA4A201595AB6B