1. Hey Guest, looking for Virtua Fighter 5: Ultimate Showdown content? Rest assured that the game is identical to Virtua Fighter 5: Final Showdown so all current resources on here such as Command Lists with frame data, Combo Lists and the Wiki still apply. However, you can expect some VF5US specific changes to come soon!
    Dismiss Notice

Programmable inputs / Esoteric frame data Q&A

Discussion in 'Dojo' started by KoD, Feb 18, 2008.

  1. Manjimaru

    Manjimaru Grumpy old man

    PSN:
    manjimaruFI
    XBL:
    freedfrmtheReal
    I was wrong. I apologize.
     
  2. Feck

    Feck Well-Known Member Content Manager Akira

    </div>

    If the "only sde in 10f total at the end of recovery works" camp was correct, these two would be roughly the same difficulty, since you'd have to cram your entire SDE input into the same-size 10f window. </div></div>

    Cheers KoD, sounds like a good way to test it out. I was unsure how to check and this should help.
     
  3. KoD

    KoD Well-Known Member

    PSN:
    codiak
    Updated the code to work with the latest release of the Arduino software, 0015

    For folks that have a working board already, this doesnt much matter - you can keep using any scripts that get uploaded, without having to upgrade to 0015. It mostly matters for recent arduino purchases, because Diecimila boards aren't sold now and the new Duemilanove boards only work with the newer arduino software.

    Also, for anyone reading this
    <span style='font-size: 26pt'>PLEASE let me know </span>
    [​IMG]
    if you know where to get these madcatz controllers nowadays. The form factor is really good for this kind of thing; i bought a handful of them when fry's was clearing them out but I should have bought more.
     
  4. KoD

    KoD Well-Known Member

    PSN:
    codiak
    2 player programming is tested and working.
    I had to change a bit shift that was wrong, other than that everything worked as planned. So download the latest library if you want to do 2p controls.

    Also,

    http://joytech.net/products.php?section=...nced-Controller

    are a pretty decent common ground controller, available at walmart for like $25. The dpad hole isnt exactly the right size for a 15 pin dsub port like on the madcatz, but it's close enough with a little filing & there's plenty of room underneath it.
     
  5. noodalls

    noodalls Well-Known Member Bronze Supporter

    Just for the record, I've built one of these mainly off KoD's instructions and then gone ahead and done a lot of the coding for myself (mainly because he's way smarter than me in that department, so I decided to not confuse myself). I now have a 2P setup as well, and continue to work away at timing/functionality.
     
  6. noodalls

    noodalls Well-Known Member Bronze Supporter

    Did some more with it this afternoon, have hopefully added a feature so that whenever you play, if you leave the PStick plugged into the computer via usb (with the arduino program on and serial monitor going, yes some setup involved) it will "record" all the button inputs that both players do.

    My initial sketches caused quite a lot of slowdown, but it seems now that it's just about frame accurate again (no easy way to judge it though). Should be good enough though, if something happens on the 1000th and 1015th frame, and it's reported as 999th and 1014th it shouldn't matter much.

    Would be a neat thing to have going for random matches so that if one of those "What just happened there?" moments occurs (Namco moments?) you could pull up the input display and see if it's repeatable.
     
  7. noodalls

    noodalls Well-Known Member Bronze Supporter

    http://www.youtube.com/watch?v=MBXa_1dYSJo

    Arduino duemilanove / uno version
    8 pins 1 player support


    <div class="ubbcode-block"><div class="ubbcode-header">Code:</div><div class="ubbcode-body ubbcode-pre" ><pre>
    #include <LiquidCrystal.h>
    LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //sets up the pins for the LCD. Note, cannot use 9 or 10 as these are used by the interrupt timer
    //int backLight=13;
    //int pins[10]={15,16,17,18,19,2,3,11,12,13}; //**
    int controller_used=1;
    //int p1[] = {22,24,26,28,30,32,34,36};
    int p1[] = {15,16,17,18,19,2,3,11};



    int P1=1;

    int invert_controls=0;
    int button=0; int last_button;
    byte record1[360];
    int loop_frame=148; int loop_number=3; int repetition=0;
    unsigned long time1; unsigned long time2; unsigned long time3; unsigned long time4;
    int lag=0;
    int mode = -1;
    int current_slot = 0; int cursor_position = 0;
    int pressed=0; int unpressed=1; int all_unpressed=255;
    int F=16656; int frame_count=0;
    int n;


    void setup() {

    pinMode(12,OUTPUT);
    pinMode(13,OUTPUT);
    digitalWrite(12,HIGH);
    digitalWrite(13,LOW);


    for(n=0;n<8;n++)
    {pinMode(p1[n],OUTPUT);
    digitalWrite(p1[n],unpressed); }

    lcd.begin(16,2);
    Serial.begin(115200);
    for(n=0;n<361;n++){record1[n]=all_unpressed; }

    }
    void dispP1(){
    for(n=0;n<8;n++){lcd.setCursor(n,1);lcd.print(bitRead(record1[current_slot],n));
    }}


    void loop() {
    time2=micros();
    if((time2)>(time1+F)) {
    time1=micros();

    if(mode==1) {time4=(micros()-time3);time3=micros();Serial.println(time4);
    if(P1==1){for(n=0;n<8;n++)
    {digitalWrite(p1[n],(bitRead(record1[frame_count],n)));
    }}

    if(frame_count>359){mode=-1;for(n=0;n<8;n++)
    {digitalWrite(p1[n],unpressed); }}
    }


    if(mode==3) {
    if(P1==1){for(n=0;n<8;n++)
    {digitalWrite(p1[n],(bitRead(record1[frame_count],n)));
    }}


    if((frame_count==loop_frame) && (repetition>0))
    {repetition--;frame_count=-1;}

    if(frame_count>359){mode=-1;for(n=0;n<8;n++)
    {digitalWrite(p1[n],unpressed); }}
    }



    if(mode==2) {
    if(P1==1){for(n=0;n<8;n++){bitWrite(record1[frame_count],n,digitalRead(p1[n]));
    }}

    if(frame_count>359){mode=-1;}
    }


    if(mode==0){
    if(P1==1){for(n=0;n<8;n++){bitWrite(record1[current_slot],n,digitalRead(p1[n]));
    }}
    if(P1==1){dispP1();}
    current_slot++;delay(300);
    if(P1==1){dispP1();}
    mode=-1;}



    if (analogRead(0)<50){button=6;}
    if (analogRead(0)>100 && analogRead(0)<200){button=8;}
    if (analogRead(0)>300 && analogRead(0)<350){button=2;}
    if (analogRead(0)>450 && analogRead(0)<550){button=4;}
    if (analogRead(0)>700 && analogRead(0)<750){button=5;}
    if (analogRead(0)>1000){button=0;}

    if (button==4){
    if ((cursor_position>0) && (last_button==0)){cursor_position--;mode=-1;}


    }

    if (button==6){
    if((cursor_position==9) && (last_button==0)){
    if (p1[0]==15){invert_controls=1;}
    if (p1[0]==16){invert_controls=2;}
    if(invert_controls==2) {p1[0]=15; p1[1]=16;}
    if(invert_controls==1) {p1[0]=16; p1[1]=15;}
    invert_controls=0;
    //15,16,17,18,19,2,3,11
    }

    if((cursor_position <9) && (last_button==0)){cursor_position++;mode=-1;}

    }


    if(button==8){
    if((cursor_position==0) && (last_button==0) && (current_slot<359)){
    current_slot++;mode=-1;

    if(P1==1) {dispP1();} }

    if((cursor_position==1) && (last_button==0) && (current_slot<359)){
    current_slot++;mode=-1;

    if(P1==1) {dispP1();} }

    if((cursor_position==2) && (last_button==0) && (current_slot<359)){
    current_slot++;mode=-1;

    if(P1==1) {dispP1();} }

    if((cursor_position==3) && (last_button==0) && (current_slot<359)){
    if(P1==1) {record1[current_slot+1]=record1[current_slot]; record1[current_slot]=all_unpressed;
    }

    current_slot++;mode=-1;

    if(P1==1){dispP1();}}

    if((cursor_position==4) && (last_button==0) && (current_slot<359)){
    if(P1==1) {record1[current_slot+1]=record1[current_slot];
    }

    current_slot++;mode=-1;

    if(P1==1){dispP1();} }

    if((cursor_position==5) && (last_button==0) && (current_slot<359)){
    if(P1==1) {for(n=359;n>=current_slot;n--){record1[n+1]=record1[n];}
    record1[current_slot]=all_unpressed;}

    current_slot++;mode=-1;

    if(P1==1){dispP1();}}

    if(cursor_position==6){F++;}

    if((cursor_position==7) && (loop_frame<359))
    {delay(50);loop_frame++;}

    if((cursor_position==8) && (loop_number<40) && (last_button==0))
    {loop_number++;}

    if(cursor_position==9){
    unpressed=1;pressed=0;all_unpressed=255;
    for(n=0;n<8;n++){
    digitalWrite(p1[n],unpressed); }

    for(n=0;n<361;n++){record1[n]=all_unpressed; }}

    }


    if ((button==2)){
    if ((cursor_position==0) && (last_button==0) && (current_slot>0)){
    current_slot--;mode=-1;

    if(P1==1){dispP1();}}

    if ((cursor_position==1) && (last_button==0) && (current_slot>0)){
    current_slot--;mode=-1;

    if(P1==1){dispP1();}}

    if ((cursor_position==2) && (last_button==0) && (current_slot>0)){
    current_slot--;mode=-1;

    if(P1==1){dispP1();}}

    if ((cursor_position==3) && (current_slot>0) && (last_button==0)){
    if(P1==1) {record1[current_slot-1]=record1[current_slot]; record1[current_slot]=all_unpressed;
    }

    current_slot--;mode=-1;

    if(P1==1){dispP1();}}

    if ((cursor_position==4) && (current_slot>0) && (last_button==0)){
    if (P1==1) {record1[current_slot-1]=record1[current_slot];
    }

    current_slot--;mode=-1;

    if(P1==1){dispP1();}}

    if ((cursor_position==5) && (current_slot>0) && (last_button==0)){
    if (P1==1) {for(n=current_slot;n<359;n++){record1[n-1]=record1[n];}}

    current_slot--;mode=-1;

    if(P1==1){dispP1();}
    }


    if(cursor_position==6){F--;}

    if((cursor_position==7) && (loop_frame>0))
    {delay(50);loop_frame--;}

    if((cursor_position==8) && (loop_number>0) && (last_button==0))
    {loop_number--;}

    if(cursor_position==9){
    unpressed=0;pressed=1;all_unpressed=0;
    for(n=0;n<8;n++){
    digitalWrite(p1[n],unpressed); }

    for(n=0;n<361;n++){record1[n]=all_unpressed; }}

    }

    if(button==5){
    if((cursor_position==0) && (last_button==0))
    {mode=0;}

    if((cursor_position==1) && (last_button==0))
    {frame_count=-1;mode=1;}

    if((cursor_position==2) && (last_button==0)){
    if(P1==1)
    {for(n=0;n<360;n++){record1[n]=all_unpressed;}frame_count=-1;mode=2;}
    }

    if((cursor_position==3) && (last_button==0))
    {frame_count=-1;mode=1;}

    if((cursor_position==4) && (last_button==0))
    {frame_count=-1;mode=1;}

    if((cursor_position==5) && (last_button==0))
    {frame_count=-1;mode=1;}

    if((cursor_position==7) && (last_button==0))
    {repetition=loop_number;frame_count=-1;mode=3;}

    if((cursor_position==8) && (last_button==0))
    {repetition=loop_number;frame_count=-1;mode=3;}

    if(cursor_position==9)
    {if(P1==1){for(n=0;n<360;n++){record1[n]=all_unpressed;}frame_count=-1;cursor_position=0;current_slot=0;}

    loop_frame=148;loop_number=3;lag=0;lcd.clear();}


    }





    //CUT HERE TO SPEED UP LCD
    lcd.setCursor(0,0);lcd.print(current_slot);
    lcd.setCursor(4,0);lcd.print(cursor_position);
    lcd.setCursor(7,0);lcd.print(loop_number);
    lcd.setCursor(10,0);lcd.print(loop_frame);

    if(cursor_position==6){lcd.setCursor(11,1);lcd.print(F);}



    time2=micros();
    //CUT HERE TO SPEED UP LCD



    frame_count++;
    last_button=button;

    }
    }


    </pre></div></div>

    Arduino mega version
    32 pins, 2P support

    <div class="ubbcode-block"><div class="ubbcode-header">Code:</div><div class="ubbcode-body ubbcode-pre" ><pre> #include <LiquidCrystal.h>
    LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

    int controller_used=1;
    int p1[] = {22,24,26,28,30,32,34,36};
    int p2[] = {23,25,27,29,31,33,35,37};
    int p3[] = {38,40,42,44,46,48,50,52};
    int p4[] = {39,41,43,45,47,49,51,53};

    int invert_controls=0;
    int P1=0;
    int P2=0;

    int button=0; int last_button;
    byte record1[360]; byte record2[360];
    byte record3[360]; byte record4[360];
    int loop_frame=148; int loop_number=3; int repetition=0;
    unsigned long time1; unsigned long time2; unsigned long time3; unsigned long time4;
    int lag=0;
    int mode = -1;
    int current_slot = 0; int cursor_position = 0;
    int pressed=0; int unpressed=1; int all_unpressed=255;
    int F=16656; int frame_count=0;
    int n;



    void setup() {

    for(n=62;n<66;n++){pinMode(n,OUTPUT);digitalWrite(n,HIGH);}
    for(n=66;n<70;n++){pinMode(n,OUTPUT);digitalWrite(n,LOW);}

    for(n=0;n<8;n++)
    {pinMode(p1[n],OUTPUT);pinMode(p2[n],OUTPUT);pinMode(p3[n],OUTPUT);pinMode(p4[n],OUTPUT);
    digitalWrite(p1[n],unpressed); digitalWrite(p2[n],unpressed);
    digitalWrite(p3[n],unpressed);digitalWrite(p4[n],unpressed);}

    lcd.begin(16,2);
    Serial.begin(115200);
    for(n=0;n<361;n++){record1[n]=all_unpressed; record2[n]=all_unpressed;
    record3[n]=all_unpressed; record4[n]=all_unpressed;}
    }

    void dispP1(){
    for(n=0;n<8;n++){lcd.setCursor(n,1);lcd.print(bitRead(record1[current_slot],n));
    lcd.setCursor(n+8,1);lcd.print(bitRead(record3[current_slot],n));}}
    void dispP2(){
    for(n=0;n<8;n++){lcd.setCursor(n,1);lcd.print(bitRead(record2[current_slot],n));
    lcd.setCursor(n+8,1);lcd.print(bitRead(record4[current_slot],n));}}

    void loop() {
    time2=micros();
    if((time2)>(time1+F)) {
    time1=micros();

    if(mode==1) {time4=(micros()-time3);time3=micros();Serial.println(time4);
    if(P1==1){for(n=0;n<8;n++)
    {digitalWrite(p1[n],(bitRead(record1[frame_count],n)));
    digitalWrite(p3[n],(bitRead(record3[frame_count],n)));}}
    if(P2==1){for(n=0;n<8;n++)
    {digitalWrite(p2[n],(bitRead(record2[frame_count],n)));
    digitalWrite(p4[n],(bitRead(record4[frame_count],n)));}}
    if(frame_count>359){mode=-1;for(n=0;n<8;n++)
    {digitalWrite(p1[n],unpressed); digitalWrite(p2[n],unpressed);
    digitalWrite(p3[n],unpressed); digitalWrite(p4[n],unpressed);}}
    }


    if(mode==3) {
    if(P1==1){for(n=0;n<8;n++)
    {digitalWrite(p1[n],(bitRead(record1[frame_count],n)));
    digitalWrite(p3[n],(bitRead(record3[frame_count],n)));}}
    if(P2==1){for(n=0;n<8;n++)
    {digitalWrite(p2[n],(bitRead(record2[frame_count],n)));
    digitalWrite(p4[n],(bitRead(record4[frame_count],n)));}}

    if((frame_count==loop_frame) && (repetition>0))
    {repetition--;frame_count=-1;}

    if(frame_count>359){mode=-1;for(n=0;n<8;n++)
    {digitalWrite(p1[n],unpressed); digitalWrite(p2[n],unpressed);
    digitalWrite(p3[n],unpressed); digitalWrite(p4[n],unpressed);}}
    }



    if(mode==2) {
    if(P1==1){for(n=0;n<8;n++){bitWrite(record1[frame_count],n,digitalRead(p1[n]));
    bitWrite(record3[frame_count],n,digitalRead(p3[n]));}}
    if(P2==1){for(n=0;n<8;n++){bitWrite(record2[frame_count],n,digitalRead(p2[n]));
    bitWrite(record4[frame_count],n,digitalRead(p4[n]));}}
    if(frame_count>359){mode=-1;}
    }


    if(mode==0){
    if(P1==1){for(n=0;n<8;n++){bitWrite(record1[current_slot],n,digitalRead(p1[n]));
    bitWrite(record3[current_slot],n,digitalRead(p3[n]));}}
    if(P2==1){for(n=0;n<8;n++){bitWrite(record2[current_slot],n,digitalRead(p2[n]));
    bitWrite(record2[current_slot],n,digitalRead(p2[n]));}}

    if(P2==1){dispP2();}
    if(P1==1){dispP1();}

    current_slot++;delay(300);

    if(P2==1){dispP2();}
    if(P1==1){dispP1();}
    mode=-1;}



    if (analogRead(0)<50){button=6;}
    if (analogRead(0)>100 && analogRead(0)<200){button=8;}
    if (analogRead(0)>300 && analogRead(0)<350){button=2;}
    if (analogRead(0)>450 && analogRead(0)<550){button=4;}
    if (analogRead(0)>700 && analogRead(0)<750){button=5;}
    if (analogRead(0)>1000){button=0;}

    if (button==4){
    if ((cursor_position>0) && (last_button==0)){cursor_position--;mode=-1;}
    if ((cursor_position==0) && (last_button==0)){controller_used++;if(controller_used>3){controller_used=1;}}}


    if(controller_used==1){P1=1;P2=0;}
    if(controller_used==2){P1=0;P2=1;}
    if(controller_used==3){P1=1;P2=1;}

    if (button==6){
    if((cursor_position==9) && (last_button==0)){
    if((P1==1)&&(p1[0]==22)){invert_controls=1;}
    if((P1==1) && (p1[0]==24)){invert_controls=2;}
    if(invert_controls==1) {p1[0]=24; p1[1]=22;}
    if(invert_controls==2) {p1[0]=22; p1[1]=24;}
    invert_controls=0;

    if((P2==1) && (p2[0]==23)){invert_controls=3;}
    if((P2==1) && (p2[0]==25)){invert_controls=4;}
    if(invert_controls==3) {p2[0]=25; p2[1]=23;}
    if(invert_controls==4) {p2[0]=23; p2[1]=25;}

    invert_controls=0;

    }


    if((cursor_position <9) && (last_button==0)){cursor_position++;mode=-1;}}


    if(button==8){
    if((cursor_position==0) && (last_button==0) && (current_slot<359)){
    current_slot++;mode=-1;
    if(P2==1) {dispP2();}
    if(P1==1) {dispP1();} }

    if((cursor_position==1) && (last_button==0) && (current_slot<359)){
    current_slot++;mode=-1;
    if(P2==1) {dispP2();}
    if(P1==1) {dispP1();} }

    if((cursor_position==2) && (last_button==0) && (current_slot<359)){
    current_slot++;mode=-1;
    if(P2==1) {dispP2();}
    if(P1==1) {dispP1();} }

    if((cursor_position==3) && (last_button==0) && (current_slot<359)){
    if(P1==1) {record1[current_slot+1]=record1[current_slot]; record1[current_slot]=all_unpressed;
    record3[current_slot+1]=record3[current_slot]; record3[current_slot]=all_unpressed;}
    if(P2==1) {record2[current_slot+1]=record2[current_slot]; record2[current_slot]=all_unpressed;
    record4[current_slot+1]=record4[current_slot]; record4[current_slot]=all_unpressed;}
    current_slot++;mode=-1;
    if(P2==1){dispP2();}
    if(P1==1){dispP1();}}

    if((cursor_position==4) && (last_button==0) && (current_slot<359)){
    if(P1==1) {record1[current_slot+1]=record1[current_slot];
    record3[current_slot+1]=record3[current_slot];}
    if(P2==1) {record2[current_slot+1]=record2[current_slot];
    record4[current_slot+1]=record4[current_slot];}
    current_slot++;mode=-1;
    if(P2==1){dispP2();}
    if(P1==1){dispP1();} }

    if((cursor_position==5) && (last_button==0) && (current_slot<359)){
    if(P1==1) {for(n=359;n>=current_slot;n--){record1[n+1]=record1[n];record3[n+1]=record3[n];}
    record1[current_slot]=all_unpressed;record3[current_slot]=all_unpressed;}
    if (P2==1) {for(n=359;n>=current_slot;n--){record2[n+1]=record2[n];record4[n+1]=record4[n];}
    record2[current_slot]=all_unpressed;record4[current_slot]=all_unpressed;}
    current_slot++;mode=-1;
    if(P2==1){dispP2();}
    if(P1==1){dispP1();}}

    if(cursor_position==6){F++;}

    if((cursor_position==7) && (loop_frame<359))
    {delay(50);loop_frame++;}

    if((cursor_position==8) && (loop_number<40) && (last_button==0))
    {loop_number++;}

    if(cursor_position==9){
    unpressed=1;pressed=0;all_unpressed=255;
    for(n=0;n<8;n++){
    digitalWrite(p1[n],unpressed); digitalWrite(p2[n],unpressed);
    digitalWrite(p3[n],unpressed); digitalWrite(p4[n],unpressed);}

    for(n=0;n<361;n++){record1[n]=all_unpressed; record2[n]=all_unpressed;
    record3[n]=all_unpressed;record4[n]=all_unpressed;}}

    }


    if ((button==2)){
    if ((cursor_position==0) && (last_button==0) && (current_slot>0)){
    current_slot--;mode=-1;
    if(P2==1){dispP2();}
    if(P1==1){dispP1();}}

    if ((cursor_position==1) && (last_button==0) && (current_slot>0)){
    current_slot--;mode=-1;
    if(P2==1){dispP2();}
    if(P1==1){dispP1();}}

    if ((cursor_position==2) && (last_button==0) && (current_slot>0)){
    current_slot--;mode=-1;
    if(P2==1){dispP2();}
    if(P1==1){dispP1();}}

    if ((cursor_position==3) && (current_slot>0) && (last_button==0)){
    if(P1==1) {record1[current_slot-1]=record1[current_slot]; record1[current_slot]=all_unpressed;
    record3[current_slot-1]=record3[current_slot]; record3[current_slot]=all_unpressed;}
    if(P2==1) {record2[current_slot-1]=record2[current_slot]; record2[current_slot]=all_unpressed;
    record4[current_slot-1]=record4[current_slot]; record4[current_slot]=all_unpressed;}
    current_slot--;mode=-1;
    if(P2==1){dispP2();}
    if(P1==1){dispP1();}}

    if ((cursor_position==4) && (current_slot>0) && (last_button==0)){
    if (P1==1) {record1[current_slot-1]=record1[current_slot];
    record3[current_slot-1]=record3[current_slot];}
    if (P2==1) {record2[current_slot-1]=record2[current_slot];
    record4[current_slot-1]=record4[current_slot];}
    current_slot--;mode=-1;
    if(P2==1){dispP2();}
    if(P1==1){dispP1();}}

    if ((cursor_position==5) && (current_slot>0) && (last_button==0)){
    if (P1==1) {for(n=current_slot;n<359;n++){record1[n-1]=record1[n];record3[n-1]=record3[n];}}
    if (P2==1) {for(n=current_slot;n<359;n++){record2[n-1]=record2[n];record4[n-1]=record4[n];}}
    current_slot--;mode=-1;
    if(P2==1){dispP2();}
    if(P1==1){dispP1();}
    }


    if(cursor_position==6){F--;}

    if((cursor_position==7) && (loop_frame>0))
    {delay(50);loop_frame--;}

    if((cursor_position==8) && (loop_number>0) && (last_button==0))
    {loop_number--;}

    if(cursor_position==9){
    unpressed=0;pressed=1;all_unpressed=0;
    for(n=0;n<8;n++){
    digitalWrite(p1[n],unpressed); digitalWrite(p2[n],unpressed);
    digitalWrite(p3[n],unpressed); digitalWrite(p4[n],unpressed);}

    for(n=0;n<361;n++){record1[n]=all_unpressed; record2[n]=all_unpressed;
    record3[n]=all_unpressed; record4[n]=all_unpressed;}}

    }

    if(button==5){
    if((cursor_position==0) && (last_button==0))
    {mode=0;}

    if((cursor_position==1) && (last_button==0))
    {frame_count=-1;mode=1;}

    if((cursor_position==2) && (last_button==0)){
    if(P1==1)
    {for(n=0;n<360;n++){record1[n]=all_unpressed;record3[n]=all_unpressed;}frame_count=-1;mode=2;}
    if(P2==1)
    {for(n=0;n<360;n++){record2[n]=all_unpressed;record4[n]=all_unpressed;}frame_count=-1;mode=2;}}

    if((cursor_position==3) && (last_button==0))
    {frame_count=-1;mode=1;}

    if((cursor_position==4) && (last_button==0))
    {frame_count=-1;mode=1;}

    if((cursor_position==5) && (last_button==0))
    {frame_count=-1;mode=1;}

    if((cursor_position==7) && (last_button==0))
    {repetition=loop_number;frame_count=-1;mode=3;}

    if((cursor_position==8) && (last_button==0))
    {repetition=loop_number;frame_count=-1;mode=3;}

    if(cursor_position==9)
    {if(P1==1){for(n=0;n<360;n++){record1[n]=all_unpressed;record3[n]=all_unpressed;}frame_count=-1;cursor_position=0;current_slot=0;}
    if(P2==1){for(n=0;n<360;n++){record2[n]=all_unpressed;record4[n]=all_unpressed;}frame_count=-1;cursor_position=0;current_slot=0;}
    loop_frame=148;loop_number=3;lag=0;lcd.clear();}


    }




    //CUT HERE TO SPEED UP LCD
    lcd.setCursor(0,0);lcd.print(current_slot);
    lcd.setCursor(4,0);lcd.print(cursor_position);
    lcd.setCursor(7,0);lcd.print(loop_number);
    lcd.setCursor(10,0);lcd.print(loop_frame);
    lcd.setCursor(14,0);lcd.print(P1);
    lcd.setCursor(15,0);lcd.print(P2);
    if(cursor_position==6){lcd.setCursor(11,1);lcd.print(F);}
    if(cursor_position>2){lcd.setCursor(14,0);lcd.print(" ");}

    time2=micros();
    //CUT HERE TO SPEED UP LCD


    frame_count++;
    last_button=button;

    }
    }
    </pre></div></div>
     
  8. SUGATA

    SUGATA Well-Known Member

    PSN:
    SUGATA_RUS
    I need to know about STAGGER RECOVERY. KoD article is the best thing about it and actual for VF5FS... But , how to fix icons failures on our new forum engine?

    I mean this:
    /forums/images/%%GRAEMLIN_URL%%/df.gif /forums/images/%%GRAEMLIN_URL%%/d.gif /forums/images/%%GRAEMLIN_URL%%/db.gif /forums/images/%%GRAEMLIN_URL%%/b.gif
    /forums/images/%%GRAEMLIN_URL%%/db.gif /forums/images/%%GRAEMLIN_URL%%/b.gif /forums/images/%%GRAEMLIN_URL%%/ub.gif /forums/images/%%GRAEMLIN_URL%%/u.gif
     
  9. akai

    akai Moderator Staff Member Bronze Supporter

    PSN:
    Akai_JC
    XBL:
    Akai JC
    Sorry for really late reply, but yes the images were all messed up due to the forum change a while back. The only suggestion I have is to copy the article into a text editor and do a "find and replace all" for the command inputs.
     
  10. Myke

    Myke Administrator Staff Member Content Manager Kage

    PSN:
    Myke623
    XBL:
    Myke623
    The original post (only) is now fixed.
     
    SUGATA likes this.
  11. SUGATA

    SUGATA Well-Known Member

    PSN:
    SUGATA_RUS
    Thank you for your time!
    Struggling - is very important and at the same time the most "mystical" thing for kme (about inputs).
     
  12. KoD

    KoD Well-Known Member

    PSN:
    codiak
    Myke likes this.

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice