[sf2ce] Select Character

This forum is for posting M.A.M.E. Work In Progress "Arcade"cheats that are not quite ready for the prime time. If the cheats are buggy or the cheat descriptions are non-standard then please post them here. Help maybe given but there are no guarantees and they will only be added to the cheat file when the cheat file maintainer is happy with them.
Post Reply
mezdap
Posts: 96
Joined: Sun Feb 04, 2018 5:16 am
Has thanked: 2 times
Been thanked: 2 times

[sf2ce] Select Character

Post by mezdap »

Sorry for bringing up this game again, this is my latest project and I need a review, to make sure its ok before I post it in the actual cheat forum.

Code: Select all

  <cheat desc="P1 Re-Select Character on Selection Screen">
    <script state="run">
      <action condition="maincpu.pb@FF894C == 1 AND maincpu.pb@FF89CF == 0">
      maincpu.pb@FF864D=00, maincpu.pb@FFC8B9=00</action> <!--selection screen-->
      <action condition="maincpu.pb@FF866A == 1">maincpu.pb@FF864D=01</action> <!--selection screen-->
      <action condition="maincpu.pb@FF89CF == 1">maincpu.pb@FF866A=00</action> <!--selection screen-->
   </script>
  </cheat>
  
  <cheat desc="P2 Re-Select Character on Selection Screen"> 
    <script state="run">
      <action condition="maincpu.pb@FF864C == 1 AND maincpu.pb@FF89CF == 0">
      maincpu.pb@FF894D=00, maincpu.pb@FFC7F9=00</action> <!--selection screen-->
      <action condition="maincpu.pb@FF896A == 1">maincpu.pb@FF894D=01</action> <!--selection screen-->
      <action condition="maincpu.pb@FF89CF == 1">maincpu.pb@FF896A=00</action> <!--selection screen-->
    </script>
  </cheat>

Code: Select all

   <cheat desc="P1 Select Character by Start Button">
    <script state="run">
      <action>temp0=maincpu.pb@FF864F, temp1=maincpu.pw@FF8072, temp2=maincpu.pb@FF894F, temp3=maincpu.pb@FF8672, temp4=maincpu.pb@FF8972, temp5=maincpu.pb@FF83BE</action>
      <action condition="temp1 == 10">maincpu.pb@FF83C0=00, maincpu.pb@FF866F=01, maincpu.pb@FF8671=11</action> <!-- character instant change and activate palette -->
      <action condition="temp0 == temp2">maincpu.pb@FF8672=01</action>
      <action condition="temp0 != temp2">maincpu.pb@FF8672=00</action>
      <action condition="temp0 == 0 AND temp3 == 0 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=01,
      maincpu.pq@900220=F222FFECFFD9FFB7, maincpu.pq@900228=FE96FB64F843F631, maincpu.pq@900230=F678FDFFFACEF8AD, maincpu.pq@900238=F77CF658FD43F000</action> <!-- E.Honda (original)-->
      <action condition="temp0 == 0 AND temp3 == 1 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=01,
      maincpu.pq@900220=F222FFECFFD9FEB7, maincpu.pq@900228=FE96FB64F843F631, maincpu.pq@900230=F855FFCCFEAAFE88, maincpu.pq@900238=FC55F933F67CF000</action> <!-- E.Honda (alternate)-->
      <action condition="temp0 == 1 AND temp3 == 0 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=02,
      maincpu.pq@900220=F111FFFCFEE7FDC4, maincpu.pq@900228=FA90F870F650F530, maincpu.pq@900230=FFC0FF80FD60FA40, maincpu.pq@900238=F830FAACF778F000</action> <!-- Blanka (original)-->
      <action condition="temp0 == 1 AND temp3 == 1 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=02,
      maincpu.pq@900220=F000FEEEFBEFF9CF, maincpu.pq@900228=F7AEF58CF36AF148, maincpu.pq@900230=FFD0FFB0FC90FA70, maincpu.pq@900238=F850FAACF778F000</action> <!-- Blanka (alternate)-->
      <action condition="temp0 == 2 AND temp3 == 0 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=03,
      maincpu.pq@900220=F640FFFFFFD9FFB8, maincpu.pq@900228=FE97FB75FDFAF8D9, maincpu.pq@900230=F697F474FF50F07D, maincpu.pq@900238=FFE0F964F050F000</action> <!-- Guile (original)-->
      <action condition="temp0 == 2 AND temp3 == 1 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=03,
      maincpu.pq@900220=F730FFFDFFDAFFB8, maincpu.pq@900228=FD86FA64FD86FA64, maincpu.pq@900230=F953F821FF50F07D, maincpu.pq@900238=FFE0F842F610F000</action> <!-- Guile (alternate)-->
      <action condition="temp0 == 3 AND temp3 == 0 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=04,
      maincpu.pq@900220=F111FFFBFFD9FEA7, maincpu.pq@900228=FD86FA65F643FFE6, maincpu.pq@900230=FF60FF40FF00FC00, maincpu.pq@900238=F900F600FFC0F000</action> <!-- Ken (original)-->
      <action condition="temp0 == 3 AND temp3 == 1 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=04,
      maincpu.pq@900220=F111FFFBFFD9FEA7, maincpu.pq@900228=FD86FA65F643FFE6, maincpu.pq@900230=F668F557F446F335, maincpu.pq@900238=F224F112FFC0F000</action> <!-- Ken (alternate)-->
      <action condition="temp0 == 4 AND temp3 == 0 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=05,
      maincpu.pq@900220=F000FFEAFFC9FE97, maincpu.pq@900228=FC86FA65F850F740, maincpu.pq@900230=F500F009F05BF58D, maincpu.pq@900238=F7AEFACFFFFFF000</action> <!-- Chun Li (original)-->
      <action condition="temp0 == 4 AND temp3 == 1 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=05,
      maincpu.pq@900220=F000FFEAFFC9FE97, maincpu.pq@900228=FC86FA65F850F740, maincpu.pq@900230=F500F800FA00FC22, maincpu.pq@900238=FE55FF88FFEEF000</action> <!-- Chun Li (alternate)-->
      <action condition="temp0 == 5 AND temp3 == 0 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=06,
      maincpu.pq@900220=F111F640FA75FDA7, maincpu.pq@900228=FFEBFFFDFEC9FA00, maincpu.pq@900230=FD44FF66FB90FFD7, maincpu.pq@900238=F700F854FA98F000</action> <!-- Zangief (original)-->
      <action condition="temp0 == 5 AND temp3 == 1 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=06,
      maincpu.pq@900220=F421F753FA86FDB9, maincpu.pq@900228=FFECFFFDFEDBF466, maincpu.pq@900230=F688F8AAF9B4FCF8, maincpu.pq@900238=F033F965FA98F000</action> <!-- Zangief (alternate)-->
      <action condition="temp0 == 6 AND temp3 == 0 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=07,
      maincpu.pq@900220=F111F631F853FA75, maincpu.pq@900228=FC97FEB9FFDBFFFF, maincpu.pq@900230=FAAAFF30F630F960, maincpu.pq@900238=FCA0FFD0FFF8F000</action> <!-- Dhalsim (original)-->
      <action condition="temp0 == 6 AND temp3 == 1 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=07,
      maincpu.pq@900220=F111F335F446F557, maincpu.pq@900228=F779F99BFBBDFFFF, maincpu.pq@900230=FAAAFF6BF400F730, maincpu.pq@900238=FB40FE70FFA0F000</action> <!-- Dhalsim (alternate)-->
      <action condition="temp0 == 7 AND temp3 == 0 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=08,
      maincpu.pq@900220=F234F600F900FC32, maincpu.pq@900228=FE65FF87F456F07F, maincpu.pq@900230=FEEFFAADF679FFD9, maincpu.pq@900238=FE96FA64F643F000</action> <!-- Dictator (original)-->
      <action condition="temp0 == 7 AND temp3 == 1 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=08,
      maincpu.pq@900220=F700F073F395F5C7, maincpu.pq@900228=F8EBFBFEFA00FC40, maincpu.pq@900230=FFB7FF84FD50FFEB, maincpu.pq@900238=FEB7FA74F643F000</action> <!-- Dictator (alternate)-->
      <action condition="temp0 == 8 AND temp3 == 0 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=09,
      maincpu.pq@900220=FF00FA00FFC9FDA8, maincpu.pq@900228=FB96F974F753F530, maincpu.pq@900230=FFFFFBBBF777F75F, maincpu.pq@900238=F53AF407F005F000</action> <!-- Sagat (original)-->
      <action condition="temp0 == 8 AND temp3 == 1 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=09,
      maincpu.pq@900220=F085F053FFCAFD97, maincpu.pq@900228=FB75F954F740F320, maincpu.pq@900230=FFFFFBBBF777FF30, maincpu.pq@900238=FC00F800F500F000</action> <!-- Sagat (alternate)-->
      <action condition="temp0 == 9 AND temp3 == 0 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=0A,
      maincpu.pq@900220=FD55F631F953FB75, maincpu.pq@900228=FC96FEB7FFEAFE66, maincpu.pq@900230=FF99F679F69DF9BE, maincpu.pq@900238=FBDEFDEFFFFFF000</action> <!-- Boxer (original)-->
      <action condition="temp0 == 9 AND temp3 == 1 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=0A,
      maincpu.pq@900220=FF50F631FA54FC75, maincpu.pq@900228=FE96FFB7FFD9FF80, maincpu.pq@900230=FFC0F870FA90FDC4, maincpu.pq@900238=FEE7FFFCFFFFF000</action> <!-- Boxer (alternate)-->
      <action condition="temp0 == A AND temp3 == 0 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=0A+1,
      maincpu.pq@900220=F222FFFEFFEAFFB8, maincpu.pq@900228=FE96FC75F954F740, maincpu.pq@900230=FFF0FB9FF97EF75B, maincpu.pq@900238=F429FF80FC00F000</action> <!-- Claw (original)-->
      <action condition="temp0 == A AND temp3 == 1 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=0A+1,
      maincpu.pq@900220=F222FFFEFFEAFFB8, maincpu.pq@900228=FEB5FD93FB52F921, maincpu.pq@900230=FFF8FBE9F5B6F384, maincpu.pq@900238=F253FFF4FCA2F000</action> <!-- Claw (alternate)-->
      <action condition="temp0 == B AND temp3 == 0 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=00,
      maincpu.pq@900220=F111FFD9FFB8FE97, maincpu.pq@900228=FC86F965F643FB00, maincpu.pq@900230=FFFFFEECFDCAFBA8, maincpu.pq@900238=FA87F765FF00F000</action> <!-- Ryu (original)-->
      <action condition="temp0 == B AND temp3 == 1 AND temp1 == 10 AND temp5 == 1">maincpu.pb@FF864F=00,
      maincpu.pq@900220=F111FFC8FEA7FD86, maincpu.pq@900228=FB75F854F532F447, maincpu.pq@900230=FABBF899F677F455, maincpu.pq@900238=F233F122F77DF000</action> <!-- Ryu (alternate)-->
    </script>
  </cheat>
  
  
  
  <cheat desc="P2 Select Character by Start Button">
    <script state="run">
      <action>temp0=maincpu.pb@FF894F, temp1=maincpu.pw@FF8074, temp2=maincpu.pb@FF864F, temp3=maincpu.pb@FF8972, temp4=maincpu.pb@FF8672, temp5=maincpu.pb@FF86BE</action>
      <action condition="temp1 == 20">maincpu.pb@FF86C0=00, maincpu.pb@FF896F=01, maincpu.pb@FF8971=12</action> <!-- character instant change and activate palette -->
      <action condition="temp0 == temp2">maincpu.pb@FF8972=01</action>
      <action condition="temp0 != temp2">maincpu.pb@FF8972=00</action>
      <action condition="temp0 == 0 AND temp3 == 0 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=01,
      maincpu.pq@900240=F222FFECFFD9FFB7, maincpu.pq@900248=FE96FB64F843F631, maincpu.pq@900250=F678FDFFFACEF8AD, maincpu.pq@900258=F77CF658FD43F000</action> <!-- E.Honda (original)-->
      <action condition="temp0 == 0 AND temp3 == 1 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=01,
      maincpu.pq@900240=F222FFECFFD9FEB7, maincpu.pq@900248=FE96FB64F843F631, maincpu.pq@900250=F855FFCCFEAAFE88, maincpu.pq@900258=FC55F933F67CF000</action> <!-- E.Honda (alternate)-->
      <action condition="temp0 == 1 AND temp3 == 0 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=02,
      maincpu.pq@900240=F111FFFCFEE7FDC4, maincpu.pq@900248=FA90F870F650F530, maincpu.pq@900250=FFC0FF80FD60FA40, maincpu.pq@900258=F830FAACF778F000</action> <!-- Blanka (original)-->
      <action condition="temp0 == 1 AND temp3 == 1 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=02,
      maincpu.pq@900240=F000FEEEFBEFF9CF, maincpu.pq@900248=F7AEF58CF36AF148, maincpu.pq@900250=FFD0FFB0FC90FA70, maincpu.pq@900258=F850FAACF778F000</action> <!-- Blanka (alternate)-->
      <action condition="temp0 == 2 AND temp3 == 0 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=03,
      maincpu.pq@900240=F640FFFFFFD9FFB8, maincpu.pq@900248=FE97FB75FDFAF8D9, maincpu.pq@900250=F697F474FF50F07D, maincpu.pq@900258=FFE0F964F050F000</action> <!-- Guile (original)-->
      <action condition="temp0 == 2 AND temp3 == 1 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=03,
      maincpu.pq@900240=F730FFFDFFDAFFB8, maincpu.pq@900248=FD86FA64FD86FA64, maincpu.pq@900250=F953F821FF50F07D, maincpu.pq@900258=FFE0F842F610F000</action> <!-- Guile (alternate)-->
      <action condition="temp0 == 3 AND temp3 == 0 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=04,
      maincpu.pq@900240=F111FFFBFFD9FEA7, maincpu.pq@900248=FD86FA65F643FFE6, maincpu.pq@900250=FF60FF40FF00FC00, maincpu.pq@900258=F900F600FFC0F000</action> <!-- Ken (original)-->
      <action condition="temp0 == 3 AND temp3 == 1 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=04,
      maincpu.pq@900240=F111FFFBFFD9FEA7, maincpu.pq@900248=FD86FA65F643FFE6, maincpu.pq@900250=F668F557F446F335, maincpu.pq@900258=F224F112FFC0F000</action> <!-- Ken (alternate)-->
      <action condition="temp0 == 4 AND temp3 == 0 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=05,
      maincpu.pq@900240=F000FFEAFFC9FE97, maincpu.pq@900248=FC86FA65F850F740, maincpu.pq@900250=F500F009F05BF58D, maincpu.pq@900258=F7AEFACFFFFFF000</action> <!-- Chun Li (original)-->
      <action condition="temp0 == 4 AND temp3 == 1 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=05,
      maincpu.pq@900240=F000FFEAFFC9FE97, maincpu.pq@900248=FC86FA65F850F740, maincpu.pq@900250=F500F800FA00FC22, maincpu.pq@900258=FE55FF88FFEEF000</action> <!-- Chun Li (alternate)-->
      <action condition="temp0 == 5 AND temp3 == 0 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=06,
      maincpu.pq@900240=F111F640FA75FDA7, maincpu.pq@900248=FFEBFFFDFEC9FA00, maincpu.pq@900250=FD44FF66FB90FFD7, maincpu.pq@900258=F700F854FA98F000</action> <!-- Zangief (original)-->
      <action condition="temp0 == 5 AND temp3 == 1 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=06,
      maincpu.pq@900240=F421F753FA86FDB9, maincpu.pq@900248=FFECFFFDFEDBF466, maincpu.pq@900250=F688F8AAF9B4FCF8, maincpu.pq@900258=F033F965FA98F000</action> <!-- Zangief (alternate)-->
      <action condition="temp0 == 6 AND temp3 == 0 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=07,
      maincpu.pq@900240=F111F631F853FA75, maincpu.pq@900248=FC97FEB9FFDBFFFF, maincpu.pq@900250=FAAAFF30F630F960, maincpu.pq@900258=FCA0FFD0FFF8F000</action> <!-- Dhalsim (original)-->
      <action condition="temp0 == 6 AND temp3 == 1 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=07,
      maincpu.pq@900240=F111F335F446F557, maincpu.pq@900248=F779F99BFBBDFFFF, maincpu.pq@900250=FAAAFF6BF400F730, maincpu.pq@900258=FB40FE70FFA0F000</action> <!-- Dhalsim (alternate)-->
      <action condition="temp0 == 7 AND temp3 == 0 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=08,
      maincpu.pq@900240=F234F600F900FC32, maincpu.pq@900248=FE65FF87F456F07F, maincpu.pq@900250=FEEFFAADF679FFD9, maincpu.pq@900258=FE96FA64F643F000</action> <!-- Dictator (original)-->
      <action condition="temp0 == 7 AND temp3 == 1 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=08,
      maincpu.pq@900240=F700F073F395F5C7, maincpu.pq@900248=F8EBFBFEFA00FC40, maincpu.pq@900250=FFB7FF84FD50FFEB, maincpu.pq@900258=FEB7FA74F643F000</action> <!-- Dictator (alternate)-->
      <action condition="temp0 == 8 AND temp3 == 0 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=09,
      maincpu.pq@900240=FF00FA00FFC9FDA8, maincpu.pq@900248=FB96F974F753F530, maincpu.pq@900250=FFFFFBBBF777F75F, maincpu.pq@900258=F53AF407F005F000</action> <!-- Sagat (original)-->
      <action condition="temp0 == 8 AND temp3 == 1 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=09,
      maincpu.pq@900240=F085F053FFCAFD97, maincpu.pq@900248=FB75F954F740F320, maincpu.pq@900250=FFFFFBBBF777FF30, maincpu.pq@900258=FC00F800F500F000</action> <!-- Sagat (alternate)-->
      <action condition="temp0 == 9 AND temp3 == 0 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=0A,
      maincpu.pq@900240=FD55F631F953FB75, maincpu.pq@900248=FC96FEB7FFEAFE66, maincpu.pq@900250=FF99F679F69DF9BE, maincpu.pq@900258=FBDEFDEFFFFFF000</action> <!-- Boxer (original)-->
      <action condition="temp0 == 9 AND temp3 == 1 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=0A,
      maincpu.pq@900240=FF50F631FA54FC75, maincpu.pq@900248=FE96FFB7FFD9FF80, maincpu.pq@900250=FFC0F870FA90FDC4, maincpu.pq@900258=FEE7FFFCFFFFF000</action> <!-- Boxer (alternate)-->
      <action condition="temp0 == A AND temp3 == 0 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=(0A+1),
      maincpu.pq@900240=F222FFFEFFEAFFB8, maincpu.pq@900248=FE96FC75F954F740, maincpu.pq@900250=FFF0FB9FF97EF75B, maincpu.pq@900258=F429FF80FC00F000</action> <!-- Claw (original)-->
      <action condition="temp0 == A AND temp3 == 1 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=(0A+1),
      maincpu.pq@900240=F222FFFFFFFAFFD7, maincpu.pq@900248=FEB5FD93FB52F921, maincpu.pq@900250=FFF8FBE9F5B6F384, maincpu.pq@900258=F253FFF4FCA2F000</action> <!-- Claw (alternate)-->
      <action condition="temp0 == B AND temp3 == 0 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=00,
      maincpu.pq@900240=F111FFD9FFB8FE97, maincpu.pq@900248=FC86F965F643FB00, maincpu.pq@900250=FFFFFEECFDCAFBA8, maincpu.pq@900258=FA87F765FF00F000</action> <!-- Ryu (original)-->
      <action condition="temp0 == B AND temp3 == 1 AND temp1 == 20 AND temp5 == 1">maincpu.pb@FF894F=00,
      maincpu.pq@900240=F111FFC8FEA7FD86, maincpu.pq@900248=FB75F854F532F447, maincpu.pq@900250=FABBF899F677F455, maincpu.pq@900258=F233F122F77DF000</action> <!-- Ryu (alternate)-->
    </script>
  </cheat>
''Re-Select Character on Selection Screen'' only works for if player already selected and opponent join the game. Not against the ''cpu''
and I think its not necessary to enable the selected player again on the selection screen 'coz ''Select Character by Start Button'' its sort of fully working, there are two issues that I'm still trying to fix them...

1- If P1 or P2 is the cpu and the character's throw or grab by opponent or character's does excessive movements, game crash sometimes, but this can be avoided when you change the player on the exact time.

2- I had to added pallet codes ''original and alternate'' to get better result, I added ''temp0 == temp2'' but if the characters same, pallet changes for the next character...

Anyway if I can't fix them I'll post as it is.But I'm gonna merge them both ''selection screen and start button'' to make P1 and P2 I just need a good description/name, short is better.
I'll make same cheats for sf2 and sf2hf

Pugsy, if you reading this could you tell me please, the cheat you fixed it for me here: viewtopic.php?f=4&t=12820
I'd like to know that why didn't you add ''maincpu'' to this code ''temp2=FF89BF''

I disabled the cheat on selection screen.For who wants to use on it, just remove the ''temp5'' to enable it and if you replace with this P1 1010 or P2 2020 instead of P1 10 or P2 20 for temp1 characters will be change rapidly!!!

Plain/basic cheat without pallets address/codes.

Code: Select all

  <cheat desc="P1 Start Button">
    <script state="run">
      <action>temp0=maincpu.pb@FF864F, temp1=maincpu.pw@FF8072</action>
      <action condition="temp1 == 10">maincpu.pb@FF83C0=00</action> <!-- instant change -->
      <action condition="temp0 == 0 AND temp1 == 10">maincpu.pb@FF864F=01</action> <!-- E.Honda -->
      <action condition="temp0 == 1 AND temp1 == 10">maincpu.pb@FF864F=02</action> <!-- Blanka -->
      <action condition="temp0 == 2 AND temp1 == 10">maincpu.pb@FF864F=03</action> <!-- Guile -->
      <action condition="temp0 == 3 AND temp1 == 10">maincpu.pb@FF864F=04</action> <!-- Ken -->
      <action condition="temp0 == 4 AND temp1 == 10">maincpu.pb@FF864F=05</action> <!-- Chun Li -->
      <action condition="temp0 == 5 AND temp1 == 10">maincpu.pb@FF864F=06</action> <!-- Zangief -->
      <action condition="temp0 == 6 AND temp1 == 10">maincpu.pb@FF864F=07</action> <!-- Dhalsim -->
      <action condition="temp0 == 7 AND temp1 == 10">maincpu.pb@FF864F=08</action> <!-- Dictator -->
      <action condition="temp0 == 8 AND temp1 == 10">maincpu.pb@FF864F=09</action> <!-- Sagat -->
      <action condition="temp0 == 9 AND temp1 == 10">maincpu.pb@FF864F=0A</action> <!-- Boxer -->
      <action condition="temp0 == A AND temp1 == 10">maincpu.pb@FF864F=(0A+1)</action> <!-- Claw -->
      <action condition="temp0 == B AND temp1 == 10">maincpu.pb@FF864F=00</action> <!-- Ryu -->
    </script>
  </cheat>
  
  <cheat desc="P2 Start Button">
    <script state="run">
      <action>temp0=maincpu.pb@FF894F, temp1=maincpu.pw@FF8074</action>
      <action condition="temp1 == 20">maincpu.pb@FF86C0=00</action> <!-- instant change -->
      <action condition="temp0 == 0 AND temp1 == 20">maincpu.pb@FF894F=01</action> <!-- E.Honda -->
      <action condition="temp0 == 1 AND temp1 == 20">maincpu.pb@FF894F=02</action> <!-- Blanka -->
      <action condition="temp0 == 2 AND temp1 == 20">maincpu.pb@FF894F=03</action> <!-- Guile -->
      <action condition="temp0 == 3 AND temp1 == 20">maincpu.pb@FF894F=04</action> <!-- Ken -->
      <action condition="temp0 == 4 AND temp1 == 20">maincpu.pb@FF894F=05</action> <!-- Chun Li -->
      <action condition="temp0 == 5 AND temp1 == 20">maincpu.pb@FF894F=06</action> <!-- Zangief -->
      <action condition="temp0 == 6 AND temp1 == 20">maincpu.pb@FF894F=07</action> <!-- Dhalsim -->
      <action condition="temp0 == 7 AND temp1 == 20">maincpu.pb@FF894F=08</action> <!-- Dictator -->
      <action condition="temp0 == 8 AND temp1 == 20">maincpu.pb@FF894F=09</action> <!-- Sagat -->
      <action condition="temp0 == 9 AND temp1 == 20">maincpu.pb@FF894F=0A</action> <!-- Boxer -->
      <action condition="temp0 == A AND temp1 == 20">maincpu.pb@FF894F=(0A+1)</action> <!-- Claw -->
      <action condition="temp0 == B AND temp1 == 20">maincpu.pb@FF894F=00</action> <!-- Ryu -->
    </script>
  </cheat>
User avatar
Pugsy
Posts: 3638
Joined: Fri Aug 17, 2001 12:59 am
Location: North Wales, UK.
Has thanked: 1 time
Been thanked: 12 times
Contact:

Re: [sf2ce] Select Character

Post by Pugsy »

mezdap wrote: Wed Aug 26, 2020 2:04 pm Pugsy, if you reading this could you tell me please, the cheat you fixed it for me here: viewtopic.php?f=4&t=12820
I'd like to know that why didn't you add ''maincpu'' to this code ''temp2=FF89BF''
Temp variables can only contain a number, if you add maincpu to it you will be storing the contents of the address rather than just the address.

So if FF89BF contained 80
temp2=maincpu.pb@FF89BF
would mean that temp2 == 80

where as
temp2=FF89BF
would mean that temp2 == FF89BF


Nice work with the cheat btw.
Pugsy

Servicing your cheating needs since 1985 8)

Grab the latest cheat collection:
MAME 0.259 XML cheat collection (6 OCTOBER 2023) from http://www.mamecheat.co.uk or direct from:-
https://mega.nz/file/q4dHGZ6K#i-EUiqIjH ... KMz7hnbTfw (ZIP Archive 3.76MB)
mezdap
Posts: 96
Joined: Sun Feb 04, 2018 5:16 am
Has thanked: 2 times
Been thanked: 2 times

Re: [sf2ce] Select Character

Post by mezdap »

Thank you Pugsy.

The idea about 'the start button'' is pretty unique feature, once you start the game the button is not in use.
The most of ''sf2ce clones'' have this option. But it can't be changed for the cpu character and I don't want to disable it for this cheat either.
For the clones, you can't change the character if characters throw or hit, jump etc.
I tried to make same thing for this cheat but lots of address has involved...
Also I didn't want to add ''pallet'' address, but I couldn't find the address, reads from ''rom address to write to the ram address'' which is I added the cheats, so the cheat works for all clones as well.
The pallet address requires for ''sf2'' anyway, b'coz no alternate outfit and you can select same character by using the cheat but no Bosses!!!
A few more cheats I wanna make for these games and that's all, like I said before ''enough is enough''

1- Skip ram rom
2- Difficulty
3- Speed

Note: The key is here the ''start button address'' , similar cheats can be made for any game.

Edit: I forgot to mention the Bosses for sf2 They are unselectable and unplayable!!!
I think one developer from Japan made it possible to editing the physical files or copying the ''sf2ce'' files to ''sf2'' files...
If someone is working on it I'm willing to help him.
I decided not to use ''rom address'' anymore, well at least I try not to...
'coz last time I compared old sf2ce rom addresses to the new sf2ce and I realized lots of rom addresses had been changed.
Plus, the cheats that I found, proves everything may possible on ''ram'' addresses.
User avatar
Heihachi_73
Posts: 267
Joined: Thu Jan 26, 2006 8:10 am
Location: Melbourne, Australia
Contact:

Re: [sf2ce] Select Character

Post by Heihachi_73 »

I haven't heard about SF2 The World Warrior bosses being selectable, but someone did do a similar hack with arcade UMK3, allowing Motaro and Shao Kahn to be playable without glitching or crashing.
mezdap
Posts: 96
Joined: Sun Feb 04, 2018 5:16 am
Has thanked: 2 times
Been thanked: 2 times

Re: [sf2ce] Select Character

Post by mezdap »

Heihachi_73 wrote: Mon Dec 07, 2020 7:55 pm I haven't heard about SF2 The World Warrior bosses being selectable, but someone did do a similar hack with arcade UMK3, allowing Motaro and Shao Kahn to be playable without glitching or crashing.
This is the guy who made it.
https://www.youtube.com/watch?v=DFLhCt0 ... ayumeji%2a
For PS1: https://www.youtube.com/watch?v=vboRqEv ... izalid99v2
https://www.youtube.com/watch?v=7yzy-fT ... uizAlmeida
They definitely edited the ''rom'' files, I check and play it.Nice hack.
But I always prefer ''CHEAT''
Anyhow, It will take years for me to make this cheats!!!

BTW, I found the ''Skip Ram/Rom'' working perfect I just try to optimized for ''clones'' b'coz its rom address!!!
And also changed my mind I won't do ''speed and Difficulty''
cage
Posts: 8
Joined: Fri Mar 15, 2019 5:27 am

Re: [sf2ce] Select Character

Post by cage »

Thanks for doing this. I've been looking for the switching cheat for some time now.

Hopefully you'll change your mind on the speed/difficulty cheats as I'm sure I'm not the only one who would appreciate these.
mezdap
Posts: 96
Joined: Sun Feb 04, 2018 5:16 am
Has thanked: 2 times
Been thanked: 2 times

Re: [sf2ce] Select Character

Post by mezdap »

Hi, Thanks for interested in my cheats.
In my opinion these games have more than enough cheats (requested) and must be a limit.
I do want ''Skip Ram/Rom'' only for quick start-up.Normally this game does not need ''Skip Ram/Rom''.If the all cheats are on and when you do soft reset there's no any error.As far as I've noticed...
I did for Sunset Riders 'coz its require to...
Speaking about ''Skip Ram/Rom'' If my theory is correct I reckon I can find for some other games as well.

Personally, I always use and set to ''Difficulty'' in Dipswitch to the max. (7)

This is the address ''FF8087'' that it can be turn into a difficulty cheat for now.But, problem is it's Dipswitch address.
We can't use this address for clones 'coz all different hex combo and effects other Dipswitches!!!

The main difference between ''sf2hf and sf2, sf2ce'' is the speed frameskip.
Which is sf2 and sf2ce don't have that address.Its only available in the sf2hf and the cheat already found for sf2hf.
There are a few addresses to speed up characters individually but I'm not happy that the way its works/results!!!
One of the clone ''sf2level'' has a speed option in the Dipswitch.

See what I can do but priority will be my own requests, I wanna complete my own projects first. Then I can start someone else's request.
Note: With all due respect, The most important thing in this life is the time, I don't wanna spend my own time on the unworthy ideas.
For instance ''Re-Select Character on Selection Screen'' was fernanpower77's idea.Now ''Reselect Character'' is done.
So much enlightening information in this thread. Why on Earth are people deleting their own posts on here?
I knew this was coming one day.
The reason I did delete my own posts b'coz of people's behavior on this Forum.
This Forum have simple rules, read first, right?

If this is what you looking for ''Change colors in selection screen''
Here's the new addresses:
Small pictures.
First 8 Character: Between 900C20-900D2F
Bosses: 900F20-900F7F

Big pictures original.
Between: 900800-90097F
Use ''Infinite Time'' on the Selection Screen.

You can change any color you want, the background, the map etc.The address starts at 900020 for characters outfit.(Ryu)
And this website may help you: http://fluxcore.blogspot.com/p/sf2pal.html
cage
Posts: 8
Joined: Fri Mar 15, 2019 5:27 am

Re: [sf2ce] Select Character

Post by cage »

Thanks for the insight.

I respectfully disagree on the "limit".

Off the top of my head I can think of some interesting stuff that would be useful such as:

Random character select based on a button press on character select screen
New character palettes based on a button press on character select screen
Combo counter that would display on screen
Tally of wins and losses written to a portion of the screen

I'm sure there are tons more that I can't think of at the moment.

Good luck on your future cheats.
mezdap
Posts: 96
Joined: Sun Feb 04, 2018 5:16 am
Has thanked: 2 times
Been thanked: 2 times

Re: [sf2ce] Select Character

Post by mezdap »

Here we go again back to square one where it all began! ;)
Random character select based on a button press on character select screen
This request reminds me someone, you're not fernanpower77 are you?
'Coz he asked this one before.It was unofficial sf2ce rom it has that feature.

Anyway this one is doable by ''Reselect Character'' I tried to explain a bit on first post.
To make it a ''random'' Well, that depends on how long you press and hold the button!
To make this ''random'' by CPU that's difficult!

But I still don't understand the concept (I mean no offence).I, myself want full control, by this method I'm not in!!!
I thought that ''Reselect Character'' solved the select character problem for good.
New character palettes based on a button press on character select screen
One of my very own first post cheat was ''Select Character Outfit''.Back in time I was using the MAME 139. Now updated my roms to 220
The addresses (rom) had changed.I have to redo again.
This one is doable as well but its a long shot!!!
Combo counter that would display on screen
Tally of wins and losses written to a portion of the screen
I don't like the word ''impossible'', lets say very difficult.And it won''t be what you expected for that's 'coz of ''The Tiles'' the game has in it...
I'm sure there are tons more that I can't think of at the moment.
This is exactly what I mean by ''must be a limit'' Otherwise the list goes on and on.
Overall, I'm not here to judge anyone's idea.
When I have time I have a look first 2 requests.

Note: The cheats that I posted in the actual Cheat Forum, I believe that they should be in the official cheat files.
You may disagree again. Of course that's entirely up to Administer.
cage
Posts: 8
Joined: Fri Mar 15, 2019 5:27 am

Re: [sf2ce] Select Character

Post by cage »

Were you ever able to iron out the bugs in the "Select Character by Start Button" cheat?

I noticed some strange issues such as the claw sticking out of Guile's head when you do a flash kick. You need to cycle through the roster at least once and then it will start happening. The round win/loss loading will of course fix the palette issues upon reload.

There are other things like this too as I haven't tested this in-depth. The hard crashes are too bad.

I assume you disassembled sf2m5 or similar bootlegs and used the logic to implement this cheat as writing to 0x900220 instead of 0x900020 for player 1 seems to be the way those bootlegs implement this. I assume there is some missing logic here as I don't remember seeing this issue with the claw in Guile for example.

Cheers

ImageImageImageImageImage
mezdap
Posts: 96
Joined: Sun Feb 04, 2018 5:16 am
Has thanked: 2 times
Been thanked: 2 times

Re: [sf2ce] Select Character

Post by mezdap »

Thanks for reporting the issues. Yeah, I already knew them.

Yep, that sticky ''Claw'' bothers me too, funny thing is even sometimes when you hit the character that claw flies away from the opponent all of a sudden!
This is probably a glitch.But I'm not sure why it's happening 'coz of the palette??? It requires further investigation.

The rest of the issues happening that's 'coz of the palette addresses.
From the day one that I started this cheat, I did not want to add these bloody palette addresses, but I had no choice!
Desperately, I looked harder that specific address for it. Couldn't find it yet...

Some of the characters requires more palette addresses, Sagat's Tiger and Bison's Cloak, Psycho Crusher...
The problem is each player has a different pallet address.
It writes on the different character address, when you select them on the selection screen!!!
So I used the address I think its the pallet address for Ending.
I'll try different address next time, maybe I can fix them.

Yes this cheat looks like M5 but none of them was helpful for me while I made this one.
Way too many clones!!!

There are two tags on the cheats, bugs fix and stop change for excessive moves, these two line codes fix major issues.
Think this reselect by start button as a bonus option. Poor words I know.
As you might have noticed, you can ''reselect character'' on the selection screen, against for both CPU and opponent.
You gotta understand this I made this cheat all by myself without help.This is the best I can do at the moment.
And this cheat the way better than the current one.
The hard crashes are too bad.
Can you please elaborate it?

OK, I reconsider about your ''New character palettes based on a button press on character select screen''
Here's my plan for it.
The start button remains for alternate pallet color so no need to change, the rest of 6 buttons(kicks and punches) will be multiple colors along with the original pallet.I will use rom address this time.
cage
Posts: 8
Joined: Fri Mar 15, 2019 5:27 am

Re: [sf2ce] Select Character

Post by cage »

The only cheat I'm using is the "Select Character by Start Button".

The hard crashes are just those. The game will reset itself after cycling through the characters and playing a bit with them during a single round. You mention this in your original post. All I did was start a 2 player game, cycle through all the characters a few times, switch to Guile, perform several flash kicks, start cycling characters and the game reset. This was all done without hitting the second player.

I don't have the re-select character cheat being used in my testing here and I don't see anything in your original post regarding fixes in the xml.

I did notice that if you limit the "Select Character by Start Button" to the original warriors 0x00-0x07 and not enable the bosses, the Guile claw bug does not appear. Some flags are being set somewhere when you start enabling the bosses.

This is an interesting cheat and kudos for finding these values.
cage
Posts: 8
Joined: Fri Mar 15, 2019 5:27 am

Re: [sf2ce] Select Character

Post by cage »

The "claw" in Guiles head seems to be tied to the status of the claw (on or off) of "Claw".

If you check for example sf2m5 when you switch to Claw using the start button Claw has no claw. Forcing the following to off fixes the Guile issue. Of course, you have Claw on the switching with no "claw" by default. I suppose the bootleggers ran into the same issues when they were implementing this.

0xFF850A VEGA CLAW ON/OFF P1 0x01 ON 0x00 OFF
0xFF880A VEGA CLAW ON/OFF P2 0x01 ON 0x00 OFF

No more "claw" in Guile's head.
mezdap
Posts: 96
Joined: Sun Feb 04, 2018 5:16 am
Has thanked: 2 times
Been thanked: 2 times

Re: [sf2ce] Select Character

Post by mezdap »

Thanks for the heads up.

Yes you are right, that hard crashing still happening when you hold the joystick opposite side from the player.
Doesn't matter if the players CPU or P1 VS P2
That's why I added this '' <!-- stop change for excessive moves -->'' to avoid the problem in the first place,
but without it the crashes get much much worse!!!
I think another specific address(es) cause this.
And I guess its between these addresses 0xFF85XX-0xFF87XX
The "claw" in Guiles head seems to be tied to the status of the claw (on or off) of "Claw".
Believe or not I was thinking the same thing, there used to be a cheat called Claw on/off.

When I add ''B'' for Vega, I was having the problem with cycling players on the Vega/Claw
When I add ''A+1'' the problem solved.I don't know why!!!

Your sound like PRO if you are really interesting on this project and want to help, would be appreciated.
The pallet problem is on me I think I can fix those with additional pallet addresses.

Nowadays, I'm kinda busy this weekend I'll have look.
Thank you.

Note for SF2 Fans: The cheat that I posted here on this page/thread is working progress.
My final cheats are in here: viewtopic.php?f=4&t=12820
There are some known issues in the ''Reselect Character and Select Fighting Stage to Practice''
Like I mentioned before without help, this is the best I can do.
Edit: Please obey the rules that pointed here:viewtopic.php?f=4&t=12816
Last edited by mezdap on Sat Jan 16, 2021 4:29 pm, edited 1 time in total.
mezdap
Posts: 96
Joined: Sun Feb 04, 2018 5:16 am
Has thanked: 2 times
Been thanked: 2 times

Re: [sf2ce] Select Character

Post by mezdap »

I added ''Guile's head claw bug fix'' only enabled for Vega.
That problem solved.Thank you.

But, I am stuck!!! I'm still struggling with the pallets!
Need a suggestion, should I use first two character addresses (900020-900050) for the buttons???
For example: If I select P1 Sagat and P2 Bison on the selection screen, Psycho Crusher's pallet writes on the Blanka's pallet address.

I do still want to get rid of the pallets.

I have a strong feeling that ''specific addresses'' for pallets are between these addresses: 0xFF0000-0xFF0480
I also thought ''Ram/Rom'' here too but nah.

While the pallets write on the ''ram'' they start with ''0'' e.g: 0123 0345 0678...
Every frame that ''zero'' goes up ''1,2,3...and the last hex ''F'' e.g: F123 F345 F678...

I found these addresses, long time ago, when I start the cheat. I gave up 'coz couldn't find the exact ones.
And I decided to add pallets.

0xFF0100 0x0101 goes ''0''
0xFF0120 0x0101 goes ''F''

I think, after the selection screen, before match starts on the last ''0'' CPU writes actual characters pallets.

This is the address for speed that I mentioned before.There are two more but I forgot the addresses.
This one has same effect like above codes!!!
0xFF007D speed 0x01
mezdap
Posts: 96
Joined: Sun Feb 04, 2018 5:16 am
Has thanked: 2 times
Been thanked: 2 times

Re: [sf2ce] Select Character

Post by mezdap »

I couldn't leave the cheats with crashes...
After hours and hours testing, no more hard crashes.
The crashes were happening that's 'coz of the leftover codes after a character changes.
One of the leftover code was Vega's Claw!!!
Some of the addresses must be zero(0) after a change but not all of them!!!
I used these two addresses maincpu.pb@FF83C0=00, maincpu.pb@FF83C2=00 for P1 ''instant change'' and also they're loading necessary codes for characters.
If the crashes are still happening at some point,(I'm sure it won't be) that means, needs more ZEROS.

Only one problem left ''pallets''
Adding a few more additional pallets are the last option for now...
In case I found one of the ''specific pallet'' Bison's Psycho Crusher opponent down effect pallet.
If P1 or P2 is cpu (CPU NOT Bison) when cycling character to Bison that pallet loads itself.Pallet Address: 0x900220-0x900230
These are one of the specific addresses that it can be loaded the pallet without cycling : 0xFFA596 0x3C 0xFFA576 0x01
Or any similar addresses on the Memory Window.(next to 0x08)
Anyway I'm still working on it. One way or another this cheat will be perfect.

Note: Problems in the ''Select Fighting Stage to Practice'' are not so bad.
1-There is no background sound at ''Claw/Vega (Unused Stage)'' That's totally normal 'coz it's a Unused Stage and nothing so special about it other than fancy background!
2-There are two problems at ''Drums (Unused Stage)'' you can't grab or throw the opponent!!!
And if you switch the background without crushing the all drums, the game stuck or crash!!!
I found the code for sf2ce but its not working for sf2hf, maybe I should redesign the cheats like ''Select Bonus Round to Practice''
Post Reply