please help me compress this script

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

please help me compress this script

Postby Gerarkimux » Tue Jun 29, 2021 11:16 am

The bytecode size is 4503 bytes (109.9%). I wish someone would compress it to 100% or even less so that my old device will support it, thanks in advance.

Code: Select all
    //Posted by J-dvictory, a member of the device Community - https://device.com/forums
 
    //Posted : Monday 28th of June, 2021 17:06 UTC 
 
 
        //------------------------------------------------------------------------
 
        define BTN1                                    =  17; // TRIANGLE, Y
        define BTN2                                    =  18; // CIRCLE, B 
        define BTN3                                    =  19; // CROSS, A
        define BTN4                                    =  20; // SQUARE, X
        define BTN5                                    =   3; // R1, RB   
        define BTN6                                    =   4; // R2, RT   
        define BTN7                                    =   6; // L1, LB   
        define BTN8                                    =   7; // L2, LT   
        define TOUCH                                   =  27; // TOUCH PAD   
        define UP                                      =  13; // DPAD UP   
        define DOWN                                    =  14; // DPAD DOWN
        define LEFT                                    =  15; // DPAD LEFT 
        define RIGHT                                   =  16; // DPAD RIGHT 
        define MOVE_X                                  =  11; // LEFT ANALOG X
        define MOVE_Y                                  =  12; // LEFT ANALOG Y
        //-----------------------------------------------------
        define BACK             = 128; // BACK FLAG   
        define FORWARD          = 129; // FORWARD FLAG
 
 
        // End Flags. 254 and 255 should never be used in the
        // data segment for other purposes.                 
        //-----------------------------------------------------
        define EOC              = 254; // End of Combo     
        define EOD              = 255; // End of Data Segment
        //-----------------------------------------------------
 
 
 
        define KBD                                     =  10;
 
        data(
        EOC,
        KBD,
        1,BACK,
        2,
        0,2,
        1,BACK,
        21,
        2,BACK,
        DOWN,
        2,
        0,2,
        EOC,
 
        EOD );
        int i = -1, b, v;
        int back = LEFT, forward = RIGHT;
        int button_1, button_2, button_3, button_4, button_5; 
        int wait_time;                               
        int switch;                               
        int delay_t;                                               
        int cancel;                 
        int EndOfCombo;             
        int CanStart;               
        int SWITCH;
        int double_click;
        int time_limit = 150;
        int greenlight;
        int Spinning_Demon_Left;
        int Spinning_Demon_Right;
        int EWGF_Left;
        int EWGF_Right;
        int Leaping_Side_Kick_Left;
        int Leaping_Side_Kick_Right;
        int Obliteration_Left;
        int Obliteration_Right;
        int Complicated_Wire_Left;
        int Complicated_Wire_Right;
 
 
    int start_script;
 
    main {
 
            if(get_val(PS4_TOUCH) && event_press(PS4_L1)) start_script=!start_script;
 
            if(start_script) {
 
            // Determine Back and Forward           
            if(get_val(PS4_L3)) {
                back = LEFT; forward = RIGHT;             
            } else if(get_val(PS4_R3)) {
                back = RIGHT; forward = LEFT;           
            }//----------------------------------------------
 
 
 
            // If there is a combo to be executed       
            if(i >= 0 && delay_t<=0) {                               
                // Execute the combo step-by-step       
                if(!combo_running(execute_step)) {     
                    if(get_step_values()) {             
                        if(wait_time == 0) {               
                            combo_run(execute_step_no_wait);
                        } else {                         
                            combo_run(execute_step);     
                        }                               
                    } else { // the combo finished       
                        i = -1;                         
                    }                                   
                }                                         
 
                              if(cancel==1){           
                        if ( (abs(get_val (9)) <= 20 && abs(get_val (10)) <= 20) && (abs(get_val (11)) <= 20 && abs(get_val (12)) <= 20) ) {
                        i = -1;                       
                        combo_stop(execute_step);     
                        }
                    }else if(cancel==2){
                        if (!get_val(PS4_L1) && !get_val(PS4_L2) && !get_val(PS4_R1) && !get_val(PS4_R2) ) {
                        i = -1;                       
                        combo_stop(execute_step);     
                        }
                    }else if(cancel==3){
                        if (!get_val(back) ) {
                        i = -1;                       
                        combo_stop(execute_step);     
                        }
                    }                                                               
 
                // Make sure the user inputs does not interfere in the combo
                set_val(BTN1                                    , 0);                       
                set_val(BTN2                                    , 0);                       
                set_val(BTN3                                    , 0);                       
                set_val(BTN4                                    , 0);                       
                set_val(BTN5                                    , 0);                       
                set_val(BTN6                                    , 0);                       
                set_val(BTN7                                    , 0);                       
                set_val(BTN8                                    , 0);                       
                set_val(UP                                      , 0);                                               
                set_val(LEFT                                    , 0);                       
                set_val(RIGHT                                   , 0);                       
                set_val(MOVE_X                                  , 0);                       
                set_val(MOVE_Y                                  , 0);                       
 
            // if no combo execute - look for combo activation 
            } else {                                       
            // EDIT THIS PART OF SCRIPT for combo run ---------------------------
        //////////////////////////////////////////////////////////////////////////
 
 
 
 
 
 
            if(double_click > 0) double_click = double_click - get_rtime();
            //--sets time to maximum time on click
            if(event_press(back) && double_click <= 0) double_click = time_limit;   
                //--if timer is > 0 2nd click occured before time limit
                else if(event_press(back) && double_click > 0) greenlight = TRUE;
                else if(get_val(back) <= 0) greenlight = FALSE;
 
                if(greenlight){
 
                set_val(back, 0);
                cancel = 3;
                if(get_lval(back) && !get_val(PS4_DOWN)) i = get_combo_index(KBD);
 
    }
 
 
            if(event_press(PS4_L2)) {
            combo_run(Tap_1);
            combo_run(Tap_2);
            combo_run(Tap_3);
            combo_run(Tap_4);
    }
 
            if(event_press(PS4_L2)) {
            combo_run(Tap_5);
    }
 
            if(event_press(PS4_R2)) {
            combo_run(Tap_6);
            combo_run(Tap_7);
            combo_run(Tap_8);
            combo_run(Tap_9);
    }
 
            if(event_press(PS4_R2)) {
            combo_run(Tap_10);
    }
 
            if (!combo_running(EWGF)) {
            if(get_val(PS4_L1)) { EWGF_Left=PS4_LEFT; EWGF_Right=PS4_RIGHT; combo_run(EWGF); }
            if(get_val(PS4_R1)) { EWGF_Left=PS4_RIGHT; EWGF_Right=PS4_LEFT; combo_run(EWGF); }
    }
            if (!combo_running(Spinning_Demon)) {
            if(get_val(PS4_L3)) { Spinning_Demon_Left=PS4_LEFT; Spinning_Demon_Right=PS4_RIGHT; combo_run(Spinning_Demon); }
            if(get_val(PS4_R3)) { Spinning_Demon_Left=PS4_RIGHT; Spinning_Demon_Right=PS4_LEFT; combo_run(Spinning_Demon); }
    }
 
            if (!combo_running(Leaping_Side_Kick)) {
            if(get_val(PS4_LY)>= 60) { Leaping_Side_Kick_Left=PS4_RIGHT; Leaping_Side_Kick_Right=PS4_LEFT; combo_run(Leaping_Side_Kick); }                     
            if(get_val(PS4_LY)<= -60) { Leaping_Side_Kick_Left=PS4_LEFT; Leaping_Side_Kick_Right=PS4_RIGHT; combo_run(Leaping_Side_Kick); }
    }
 
            if (!combo_running(Obliteration)) {
            if(get_val(PS4_LX) <= -70){ Obliteration_Left=PS4_RIGHT; Obliteration_Right=PS4_LEFT; combo_run(Obliteration); }
            if(get_val(PS4_LX) >= 70){ Obliteration_Left=PS4_LEFT; Obliteration_Right=PS4_RIGHT; combo_run(Obliteration); }
 
    }
 
            if (!combo_running(Complicated_Wire)) {
            if(get_val(PS4_RX) <= -70){ Complicated_Wire_Left=PS4_RIGHT; Complicated_Wire_Right=PS4_LEFT; combo_run(Complicated_Wire); }
            if(get_val(PS4_RX) >= 70){ Complicated_Wire_Left=PS4_LEFT; Complicated_Wire_Right=PS4_RIGHT; combo_run(Complicated_Wire); }
 
    }
 
            if(get_val(PS4_SQUARE) && get_ptime(PS4_SQUARE) > 200) {combo_run(Square_Circle);
    }
 
            if(get_val(PS4_TOUCH))  combo_run(Heavens_Wrath);
    }
    }
    }
 
 
 
    combo EWGF {
    set_val(EWGF_Right, 0);
    wait(11);
    set_val(EWGF_Right, 100);
    wait(11);
    set_val(EWGF_Right, 0);
    wait(11);
    set_val(EWGF_Right, 0);
    set_val(PS4_DOWN, 100);
    wait(20);
    set_val(EWGF_Right, 0);
    set_val(EWGF_Right, 100);
    set_val(PS4_DOWN, 100);
    set_val(PS4_TRIANGLE, 100);
    wait(11);
    }
    combo Leaping_Side_Kick {
    set_val(Leaping_Side_Kick_Right, 100);
    wait (11);
    wait (11);
    set_val(Leaping_Side_Kick_Right, 100);
    wait (11);
    wait (11);
    set_val(Leaping_Side_Kick_Right, 100);
    wait (11);
    set_val(PS4_CROSS, 100);
    wait (11);
    }
    combo Spinning_Demon {
    set_val(Spinning_Demon_Right, 100);
    wait(11);
    wait(11);
    set_val(PS4_DOWN, 100);
    wait(11);
    set_val(Spinning_Demon_Right, 100);
    set_val(PS4_DOWN, 100);
    set_val(PS4_CIRCLE, 100);
    wait(200);
    }
    combo Heavens_Wrath {
    set_val(PS4_SQUARE, 100);
    set_val(PS4_TRIANGLE, 100);
    wait(70);
    }
    combo Obliteration {
    set_val(Obliteration_Right,100);
    wait(11);
    wait(11);
    set_val(Obliteration_Left,100);
    wait(11);
    set_val(PS4_DOWN,100);
    set_val(Obliteration_Left,100);
    wait(11);
    set_val(PS4_DOWN,100);
    wait(11);
    set_val(PS4_DOWN,100);
    set_val(Obliteration_Right,100);
    wait(11);
    set_val(Obliteration_Right,100);
    wait(11);
    set_val(Obliteration_Right,100);
    set_val(PS4_TRIANGLE,100);
    set_val(PS4_SQUARE,100);
    wait(11);
    wait(50);
    }
    combo Complicated_Wire {
    set_val(PS4_DOWN, 100);
    wait(20);
    set_val(PS4_DOWN, 100);
    set_val(Complicated_Wire_Left, 0);
    set_val(Complicated_Wire_Left, 100);
    wait(40);
    set_val(Complicated_Wire_Left, 0);
    set_val(Complicated_Wire_Left, 100);
    wait(10);
    set_val(Complicated_Wire_Left, 0);
    set_val(Complicated_Wire_Left, 100);
    set_val(PS4_SQUARE, 100);
    set_val(PS4_CROSS, 100);
    wait(40);
    set_val(PS4_SQUARE, 100);
    set_val(PS4_CROSS, 100);
    wait(140);
    }
    combo Square_Circle {
    set_val(PS4_CIRCLE, 100);
    set_val(PS4_SQUARE, 100);
    wait(100);
    }
 
 
    combo Tap_1 {
    set_val(PS4_DOWN, 0);
    wait(70);
    set_val(PS4_DOWN, 100);
    wait(40);
    set_val(PS4_DOWN, 100);
    }
 
    combo Tap_2 {
    set_val(PS4_DOWN, 0);
    wait(80);
    set_val(PS4_DOWN, 100);
    wait(40);
    set_val(PS4_DOWN, 100);
    }
 
    combo Tap_3 {
    set_val(PS4_LEFT, 0);
    wait(80);
    set_val(PS4_LEFT, 100);
    wait(40);
    set_val(PS4_LEFT, 100);
    }
 
    combo Tap_4 {
    set_val(PS4_LEFT, 0);
    wait(100);
    set_val(PS4_LEFT, 100);
    wait(40);
    set_val(PS4_LEFT, 100);
    }
 
    combo Tap_5 {
    set_val(PS4_LEFT, 0);
    wait(10);
    set_val(PS4_LEFT, 100);
    wait(40);
    set_val(PS4_LEFT, 100);
    }
 
    combo Tap_6 {
    set_val(PS4_DOWN, 0);
    wait(70);
    set_val(PS4_DOWN, 100);
    wait(40);
    set_val(PS4_DOWN, 100);
    }
 
    combo Tap_7 {
    set_val(PS4_DOWN, 0);
    wait(80);
    set_val(PS4_DOWN, 100);
    wait(40);
    set_val(PS4_DOWN, 100);
    }
 
    combo Tap_8 {
    set_val(PS4_RIGHT, 0);
    wait(80);
    set_val(PS4_RIGHT, 100);
    wait(40);
    set_val(PS4_RIGHT, 100);
    }
 
    combo Tap_9 {
    set_val(PS4_RIGHT, 0);
    wait(100);
    set_val(PS4_RIGHT, 100);
    wait(40);
    set_val(PS4_RIGHT, 100);
    }
 
    combo Tap_10 {
    set_val(PS4_RIGHT, 0);
    wait(10);
    set_val(PS4_RIGHT, 100);
    wait(40);
    set_val(PS4_RIGHT, 100);
    }
 
        // This combo will run a step with wait             
        combo execute_step {                               
            set_buttons_values();                           
            wait(wait_time);                               
            set_buttons_values();                         
        }                                                 
 
        // This combo will run a step without wait         
        combo execute_step_no_wait {                       
            set_buttons_values();                         
        }                                                 
 
        // Returns the starting index of a combo           
        function get_combo_index(combo_id) {               
            i = 0;                                         
            while(TRUE) {//-----------------------         
                v = dbyte(i);                             
                if(v == combo_id) {                       
                    return(i + 1);                         
                } else {//====================             
                    while(v != EOC && v != EOD) {//#       
                        i = i + 1;                         
                        v = dbyte(i);                     
                    }//#                                   
                    if(v == EOD) break;                   
                    else i = i + 1;                       
                }//=============================           
            }//-----------------------------------         
            return(-1);                                   
        }                                                 
 
        // Set the buttons, values and wait time of a step
        function get_step_values() {                       
            b = dbyte(i); i = i + 1;                       
            if(b > 5) return(FALSE);                       
 
            if(b >= 1) {                                   
                button_1 = convert_back_forward(dbyte(i)); i = i + 1;
            } else { button_1 = -1}         
 
            if(b >= 2) {                                     
                button_2 = convert_back_forward(dbyte(i)); i = i + 1;
            } else { button_2 = -1}           
 
            if(b >= 3) {                                     
                button_3 = convert_back_forward(dbyte(i)); i = i + 1;
            } else { button_3 = -1}           
 
            if(b >= 4) {                                     
                button_4 = convert_back_forward(dbyte(i)); i = i + 1;
            } else { button_4 = -1}           
 
            if(b >= 5) {                                     
                button_5 = convert_back_forward(dbyte(i)); i = i + 1;
            } else { button_5 = -1}           
 
            wait_time = dbyte(i); i = i + 1;                 
            wait_time = (wait_time - 1) * 10;               
            if(wait_time < 0) wait_time = 0;                 
 
            return(TRUE);                                   
        }                                                   
 
        // If the step has FORWARD and BACK buttons, set the correct value.
        function convert_back_forward(button) {             
            if(button == FORWARD) {                         
                return(forward);                             
            } else if(button == BACK) {                     
                return(back);                               
            }                                               
            return(button);                                 
        }                                                     
 
        // Set the buttons and values, function used on the combos.
        function set_buttons_values() {                     
            if(button_1 != -1) set_val(button_1, 100);   
            if(button_2 != -1) set_val(button_2, 100);   
            if(button_3 != -1) set_val(button_3, 100);   
            if(button_4 != -1) set_val(button_4, 100);   
            if(button_5 != -1) set_val(button_5, 100);   
        }
User avatar
Gerarkimux
Sergeant First Class
Sergeant First Class
 
Posts: 18
Joined: Sun Jul 24, 2016 4:07 pm

Return to Titan One Device

Who is online

Users browsing this forum: No registered users and 132 guests