Street Fighter V (SFV) generic template

Titan One general support. Questions, firmware update, feature request.

Street Fighter V (SFV) generic template

Postby SkylockVixen » Fri Mar 24, 2023 8:53 pm

I put together a generic macro that works with most characters in the game. Of course you will still need to learn the moves of whatever character. But it performs turbo quarter circle(QC) motions left or right. I like to call it controlled mashing. If you need to perform half circle motions it works well with that too. It also has a trigger for your super, technically for the left side only, The QC motions make it easy to perform supers regardless.

Code: Select all
//SFV.gpc
//Smelly Tuna Macros
 
 
 
//Auto roll:
//Press  DOWN+RIGHT  or  DOWN+LEFT
//to perform a quarter circle
//Press  RS  at the same time to pause combo
 
//Auto reversal:
//While actively blocking attacks  Hold  RIGHT+LT  or  LEFT+LT
//whichever direction is towards the opponent
//Only works when actively blocking
 
//Super:
//While on the left side
//Press  X+RT
//Works half the time on the left side as well, especially
//when waking up.
 
main {  if(get_val(XB1_DOWN) && get_val(XB1_LEFT)) {
        combo_run(rollL);}
        if(get_val(XB1_DOWN) && get_val(XB1_RIGHT)) {
        combo_run(rollR);}
        if(get_val(XB1_RS)) {
        combo_stop(rollL);}
        if(get_val(XB1_RS)) {
        combo_stop(rollR);}
        if(get_val(XB1_X) && get_val(XB1_RT)){
        combo_run(superR);}
        if(get_val(XB1_LEFT) && get_val(XB1_LT)){
        combo_run(reversalR);}
        if(get_val(XB1_RIGHT) && get_val(XB1_LT)){
        combo_run(reversalL);}
        }
 
combo superR {
    wait(40);
    set_val(XB1_DOWN, 100);
    wait(20);
    set_val(XB1_DOWN, 100);
    set_val(XB1_RIGHT, 100);
    wait(20);
    set_val(XB1_DOWN, 0);
    set_val(XB1_RIGHT, 100);
    wait(20);
    set_val(XB1_DOWN, 100);
    set_val(XB1_RIGHT, 0);
    wait(20);
    set_val(XB1_DOWN, 100);
    set_val(XB1_RIGHT, 100);
    wait(20);
    set_val(XB1_DOWN, 0);
    set_val(XB1_RIGHT, 100);
    set_val(XB1_A, 100);
    wait(20);
    set_val(XB1_A, 100);
    set_val(XB1_RIGHT, 0);
    wait(20);
    set_val(XB1_A, 0);
    }
 
combo reversalR {
    set_val(XB1_RIGHT, 100);
    set_val(XB1_LT, 100);
    wait(20):
    set_val(XB1_RIGHT, 0);
    set_val(XB1_LT, 0);
    }
 
combo reversalL {
    set_val(XB1_LEFT, 100);
    set_val(XB1_LT, 100);
    wait(20):
    set_val(XB1_LEFT, 0);
    set_val(XB1_LT, 0);
    }
 
combo rollL {
    set_val(XB1_DOWN,100);
    wait(40);
    set_val(XB1_DOWN,100);
    set_val(XB1_LEFT, 100);
    wait(40);
    set_val(XB1_DOWN,0);
    set_val(XB1_LEFT, 100);
    wait(40);
    set_val(XB1_LEFT,0);
}
 
combo rollR {
    set_val(XB1_DOWN,100);
    wait(40);
    set_val(XB1_DOWN,100);
    set_val(XB1_RIGHT, 100);
    wait(40);
    set_val(XB1_DOWN,0);
    set_val(XB1_RIGHT, 100);
    wait(40);
    set_val(XB1_RIGHT,0);
}
 


The code is only a little over 1000 bytes, so there's lots of room to add character specific combos.

For example here is a Laura specific combo for her command grab.

Code: Select all
main {  if(get_val(XB1_RIGHT) && get_val(XB1_Y) && get_val(XB1_A)){
        combo_run(commandR3);}
        if(get_val(XB1_LEFT) && get_val(XB1_Y) && get_val(XB1_A)){
        combo_run(commandL3);}
}
combo commandR3 {
    wait(40);
    set_val(XB1_RIGHT, 100);
    wait(40);
    set_val(XB1_RIGHT, 100);
    set_val(XB1_DOWN, 100);
    wait(40);
    set_val(XB1_RIGHT, 0);
    set_val(XB1_DOWN, 100);
    set_val(XB1_LEFT, 100);
    wait(40);
    set_val(XB1_DOWN, 0);
    set_val(XB1_LEFT, 100);
    wait(40);
    set_val(XB1_LEFT, 100);
    set_val(XB1_B, 100);
    wait(40);
    set_val(XB1_LEFT, 0);
    set_val(XB1_RIGHT, 100);
    wait(40);
    set_val(XB1_RIGHT, 100);
    set_val(XB1_DOWN, 100);
    wait(40);
    set_val(XB1_RIGHT, 0);
    set_val(XB1_DOWN, 100);
    set_val(XB1_LEFT, 100);
    wait(40);
    set_val(XB1_DOWN, 0);
    set_val(XB1_LEFT, 100);
    wait(40);
    set_val(XB1_LEFT, 100);
    set_val(XB1_B, 100);
    wait(40);
    set_val(XB1_LEFT, 0);
    set_val(XB1_B, 100);
    wait(40);
    set_val(XB1_B, 0);
   }
 
combo commandL3 {
    wait(40);
    set_val(XB1_LEFT, 100);
    wait(40);
    set_val(XB1_LEFT, 100);
    set_val(XB1_DOWN, 100);
    wait(40);
    set_val(XB1_LEFT, 0);
    set_val(XB1_DOWN, 100);
    set_val(XB1_RIGHT, 100);
    wait(40);
    set_val(XB1_DOWN, 0);
    set_val(XB1_RIGHT, 100);
    wait(40);
    set_val(XB1_RIGHT, 100);
    set_val(XB1_B, 100);
    wait(40);
    set_val(XB1_RIGHT, 0);
    set_val(XB1_LEFT, 100);
    wait(40);
    set_val(XB1_LEFT, 100);
    set_val(XB1_DOWN, 100);
    wait(40);
    set_val(XB1_LEFT, 0);
    set_val(XB1_DOWN, 100);
    set_val(XB1_RIGHT, 100);
    wait(40);
    set_val(XB1_DOWN, 0);
    set_val(XB1_RIGHT, 100);
    wait(40);
    set_val(XB1_RIGHT, 100);
    set_val(XB1_B, 100);
    wait(40);
    set_val(XB1_RIGHT, 0);
    set_val(XB1_B, 100);
    wait(40);
    set_val(XB1_B, 0);
   }


It works by pressing RIGHT or LEFT + Y + A (the forward direction). This combo unfortunately will always trigger a LK or MP before the grab. But it works great on wake up. And by pressing back instead it can perform some quick mixups to keep your opponent guessing.


If anyone does get a chance to try this let me know. I would love to hear your experience with it. I wrote it for XB1 controller, but you can easily use find and replace to replace all XB1 with PS4 or 5 or XB360.
User avatar
SkylockVixen
Corporal
Corporal
 
Posts: 5
Joined: Mon Mar 20, 2023 9:18 am

Return to Titan One Device

Who is online

Users browsing this forum: Ice89X and 158 guests