CM/T1 Call of duty Modern warfare wiimote bravo (PS4 etc)

Wiimote tutorials, configurations and GPC scripts (FPS like in Nintendo Wii/WiiU).

Moderator: OFC-Giorgio

CM/T1 Call of duty Modern warfare wiimote bravo (PS4 etc)

Postby OFC-Giorgio » Sun Nov 10, 2019 12:45 pm

Code: Select all
// GPC Online Library
// device.gpc
 
//#pragma METAINFO("Cr0nusMax and Titan One wiimote bravo PS4 call of duty modern warfare", 1, 0, "ofc-giorgio")
 
/***
 
Use wiimote in bravo settings PS4 (adjust key mapping in script for other platforms) for:
 
<b>Call of Duty Modern Warfare</b>
 
wii + button: throw lethal grenade
 
wii + button while twisting the wiimote 90o counter clock wise: throw tactical
 
wii dpad left: use killstreak       
 
double click wii + button: use specialist weapon
 
Happy wiimoting!
 
 
keywords: wiimote, wii remote, bravo, PS4, call of duty, modern warfare</keywords>
 
url: viewtopic.php?f=14&t=13929
***/

 
/*
   From the wiiu manual:
   * Z Button - ADS
   * C Button - Crouch/Prone
   * Control Stick - Move
   * Up on the +Control Pad - Jump
   * Right on the +Control Pad - Switch Weapon
   * Left on the +Control Pad - Inventory
   * Down on the +Control Pad - Melee Attack
   * A Button - Use/Sprint/Lock Camera
   * - Button - Throw Tacticals
   * + Button - Throw Lethals
   * 1 Button - Objectives/Menu
   * 2 Button - Scoreboard
   * B Button (underneath controller) - Fire Weapon
   * Shake Nunchuk - Reload
 
   Hold Wii-Left and select with Nunchuk left to use killstreak
 
   Bravo settings:
   * shake nunchuk / reload is disabled,
   * - is used for reload and
   * + is still used to throw lethals but + while twisting the wiimote is used
     for throwing tacticals
*/

 
// Sensitivity while aiming - Default: 100 - Range [0 ~ 327]
// set a number below 100 for less sens - above 100 for more sens
 
// MIDPOINT - Default: 50 - Range [0 ~ 100]
//    If you set a number below 50 you are defining a zone of high sensitivity range when close to rest position
//    (fast movements) and a low sensitivity range when far from rest position (better accuracy).
//    if you set a number above 50 you are defining a zone of low sensitivity when close to the rest position
//    (better accuracy), and a zone of high sensitivity when far from rest position (fast movements).**/
 
// while aiming down the sight:
define ADS_MIDPOINT        =  20;
define ADS_SENSITIVITY     = 100;
 
// while NOT aiming down the sight:
define NON_ADS_MIDPOINT    =  20;
define NON_ADS_SENSITIVITY = 100;
 
// Output controller stick and buttons (for indirect programaticaly computed setting via dummy mapping)
define CONSOLE_LEFT_STICK_LEFT_RIGHT        = PS4_LX;       // cod walk
define CONSOLE_LEFT_STICK_UP_DOWN           = PS4_LY;       // cod walk
define CONSOLE_RIGHT_STICK_LEFT_RIGHT       = PS4_RX;       // cod look
define CONSOLE_RIGHT_STICK_UP_DOWN          = PS4_RY;       // cod look
define CONSOLE_DPAD_LEFT                    = PS4_LEFT;     // cod killstreak etc
define CONSOLE_DPAD_RIGHT                   = PS4_RIGHT;    // cod killstreak etc
define CONSOLE_DPAD_UP                      = PS4_UP;       // cod killstreak etc
define CONSOLE_DPAD_DOWN                    = PS4_DOWN;     // cod killstreak etc
define CONSOLE_BUTTON_L1LB                  = PS4_L1;       // tactical grenade
define CONSOLE_BUTTON_R1RB                  = PS4_R1;       // lethal grenade
define CONSOLE_BUTTON_L2LT                  = PS4_L2;       // zoom ads
define CONSOLE_BUTTON_R2RT                  = PS4_R2;       // fire
define CONSOLE_BUTTON_L3LS                  = PS4_L3;       // sprint
define CONSOLE_BUTTON_R3RS                  = PS4_R3;       // melee
define CONSOLE_BUTTON_PSXBOX                = PS4_PS;       // home
define CONSOLE_BUTTON_OPTIONSSTARTMENUSTART = PS4_OPTIONS// menu
define CONSOLE_BUTTON_TOUCHSELECTVIEWBACK   = PS4_TOUCH;    // menu
define CONSOLE_BUTTON_SQUAREX               = PS4_SQUARE;   // reload
define CONSOLE_BUTTON_CIRCLEB               = PS4_CIRCLE;   // crouch
define CONSOLE_BUTTON_TRIANGLEY             = PS4_TRIANGLE; // switch weapon
define CONSOLE_BUTTON_CROSSA                = PS4_CROSS;    // jump
 
define CONSOLE_BUTTON_TOUCHX   = PS4_TOUCHX;    // menu
define CONSOLE_BUTTON_TOUCHY   = PS4_TOUCHY;    // menu
 
define INPUT_WII_NC_STICK_LEFT_RIGHT    = WII_NX;
define INPUT_WII_NC_STICK_UP_DOWN       = WII_NY;
define INPUT_WII_DPAD_LEFT              = WII_LEFT;
define INPUT_WII_DPAD_RIGHT             = WII_RIGHT;
define INPUT_WII_DPAD_UP                = WII_UP;
define INPUT_WII_DPAD_DOWN              = WII_DOWN;
define INPUT_WII_NC_GYRO_X              = WII_ACCNX;
define INPUT_WII_GYRO_X                 = WII_ACCX;
define INPUT_WII_BUTTON_PLUS            = WII_PLUS;
define INPUT_WII_BUTTON_MINUS           = WII_MINUS;
define INPUT_WII_BUTTON_HOME            = WII_HOME;
define INPUT_WII_BUTTON_ONE             = WII_ONE;
define INPUT_WII_BUTTON_TWO             = WII_TWO;
define INPUT_WII_BUTTON_A               = WII_A;
define INPUT_WII_BUTTON_B               = WII_B;
define INPUT_WII_BUTTON_C               = WII_C;
define INPUT_WII_BUTTON_Z               = WII_Z;
define INPUT_WII_SENSOR_IRX             = WII_IRX;
define INPUT_WII_SENSOR_IRY             = WII_IRY;
 
 
int    VALUE_WII_NC_STICK_LEFT_RIGHT    = 0;
int    VALUE_WII_NC_STICK_UP_DOWN       = 0;
int    VALUE_WII_DPAD_LEFT              = 0;
int    VALUE_WII_GYRO_X                 = 0;
int    VALUE_WII_BUTTON_PLUS            = 0;
int    VALUE_WII_BUTTON_Z               = 0;
int    VALUE_WII_SENSOR_IRX             = 0;
 
 
// standard mappings
unmap ALL_REMAPS;
 
remap  INPUT_WII_BUTTON_HOME     -> CONSOLE_BUTTON_PSXBOX;                // home
remap  INPUT_WII_BUTTON_MINUS    -> CONSOLE_BUTTON_SQUAREX;               // reload hold: use/interact
remap  INPUT_WII_BUTTON_PLUS     -> CONSOLE_BUTTON_R1RB;                  // lethal grenade
remap  INPUT_WII_BUTTON_ONE      -> CONSOLE_BUTTON_OPTIONSSTARTMENUSTART; // menu/map
remap  INPUT_WII_BUTTON_TWO      -> CONSOLE_BUTTON_TOUCHSELECTVIEWBACK;   // scoreboard
remap  INPUT_WII_BUTTON_A        -> CONSOLE_BUTTON_L3LS;                  // sprint
remap  INPUT_WII_BUTTON_B        -> CONSOLE_BUTTON_R2RT;                  // fire
remap  INPUT_WII_DPAD_UP         -> CONSOLE_BUTTON_CROSSA;                // jump/mantle
remap  INPUT_WII_BUTTON_C        -> CONSOLE_BUTTON_CIRCLEB;               // crouch/prone
remap  INPUT_WII_BUTTON_Z        -> CONSOLE_BUTTON_L2LT;                  // zoom/aiming down the sights (ADS)
remap  INPUT_WII_DPAD_RIGHT      -> CONSOLE_BUTTON_TRIANGLEY;             // switch weapon
remap  INPUT_WII_DPAD_DOWN       -> CONSOLE_BUTTON_R3RS;                  // melee
remap  INPUT_WII_SENSOR_IRX      -> CONSOLE_RIGHT_STICK_LEFT_RIGHT;       // look
remap  INPUT_WII_SENSOR_IRY      -> CONSOLE_RIGHT_STICK_UP_DOWN;          // look
 
 
// Dummy mapping  3 4 9 10 17 20 24 not used in api (gyros 21 22 23 25 26 27; 21 is used for detecting twisting wiimote)
 
define OUTPUT_CONSOLE_LEFT_STICK_LEFT_RIGHT =  3
remap  OUTPUT_CONSOLE_LEFT_STICK_LEFT_RIGHT -> CONSOLE_LEFT_STICK_LEFT_RIGHT;
define OUTPUT_CONSOLE_LEFT_STICK_UP_DOWN    =  4;
remap  OUTPUT_CONSOLE_LEFT_STICK_UP_DOWN    -> CONSOLE_LEFT_STICK_UP_DOWN;
define OUTPUT_CONSOLE_DPAD_LEFT             =  9;
remap  OUTPUT_CONSOLE_DPAD_LEFT             -> CONSOLE_DPAD_LEFT;
define OUTPUT_CONSOLE_DPAD_RIGHT            =  10;
remap  OUTPUT_CONSOLE_DPAD_RIGHT            -> CONSOLE_DPAD_RIGHT;
define OUTPUT_CONSOLE_DPAD_UP               =  17;
remap  OUTPUT_CONSOLE_DPAD_UP               -> CONSOLE_DPAD_UP;
define OUTPUT_CONSOLE_DPAD_DOWN             =  20;
remap  OUTPUT_CONSOLE_DPAD_DOWN             -> CONSOLE_DPAD_DOWN;
define OUTPUT_CONSOLE_BUTTON_L1LB           =  24;
remap  OUTPUT_CONSOLE_BUTTON_L1LB           -> CONSOLE_BUTTON_L1LB;
 
//int ps4auth;
int isDPADing = 0;
int TimerSpecialistWeapon = 0;
 
int ps4auth;
 
int LAST_IRX = 0;
int LAST_IRY = 0;
int ircount = 1;
 
init
{
  ps4auth = ps4_authtimeout();
  my_init();
}
 
main
{
  if(ps4_authtimeout() > ps4auth)
  {
    my_init();
  }
  ps4auth = ps4_authtimeout();
 
  // Retrieve values from input controller (wiimote + nc)
  VALUE_WII_DPAD_LEFT           = get_val(INPUT_WII_DPAD_LEFT);
  VALUE_WII_NC_STICK_LEFT_RIGHT = get_val(INPUT_WII_NC_STICK_LEFT_RIGHT);
  VALUE_WII_NC_STICK_UP_DOWN    = get_val(INPUT_WII_NC_STICK_UP_DOWN);
  VALUE_WII_GYRO_X              = get_val(INPUT_WII_GYRO_X);
  VALUE_WII_BUTTON_PLUS         = get_val(INPUT_WII_BUTTON_PLUS);
  VALUE_WII_BUTTON_Z            = get_val(INPUT_WII_BUTTON_Z);
  VALUE_WII_SENSOR_IRX          = get_val(INPUT_WII_SENSOR_IRX);
 
  set_val(INPUT_WII_SENSOR_IRX, inv(VALUE_WII_SENSOR_IRX));
 
  // use different sensitivity for ADS (aiming down the sights) and non ADS
  if (VALUE_WII_BUTTON_Z == 100)
  {
    sensitivity(INPUT_WII_SENSOR_IRX, ADS_MIDPOINT, ADS_SENSITIVITY);
    sensitivity(INPUT_WII_SENSOR_IRY, ADS_MIDPOINT, ADS_SENSITIVITY);
  }
  else
  {
    sensitivity(INPUT_WII_SENSOR_IRX, NON_ADS_MIDPOINT, NON_ADS_SENSITIVITY);
    sensitivity(INPUT_WII_SENSOR_IRY, NON_ADS_MIDPOINT, NON_ADS_SENSITIVITY);
  }
 
  // test for wiimote out of reach of sensorbar
  if(wiir_offscreen())
  {
    set_val(INPUT_WII_SENSOR_IRX, 0); // prevent camera from spinning
    set_val(INPUT_WII_SENSOR_IRY, 0); // prevent camera from spinning
 
    ircount = ircount + 1;
    if (ircount > 3)
    {
      ircount = 0;
      if (LAST_IRX > 0) { LAST_IRX = LAST_IRX - 1; }
      if (LAST_IRX < 0) { LAST_IRX = LAST_IRX + 1; }
 
      if (LAST_IRY > 0) { LAST_IRY = LAST_IRY - 1; }
      if (LAST_IRY < 0) { LAST_IRY = LAST_IRY + 1; }
    }
 
    set_val(INPUT_WII_SENSOR_IRX, LAST_IRX); // fade out
    set_val(INPUT_WII_SENSOR_IRY, LAST_IRY); // fade out
 
    set_led(LED_4, 1);   // light led 4 to indicate sensorbar is out of sight
  }
  else
  {
    set_led(LED_4, 0);
    LAST_IRX = get_val(INPUT_WII_SENSOR_IRX);
    LAST_IRY = get_val(INPUT_WII_SENSOR_IRY);
  }
 
  // wii dpad left: use killstreak       
  isDPADing = 0;
  if(VALUE_WII_DPAD_LEFT == 100)
  {
    isDPADing = 1;
      // mw: killstreak
    set_val(OUTPUT_CONSOLE_DPAD_RIGHT, 100); // right
 
    // Moving with right stick or dpad buttons
    // WII_LEFT acts like a SHIFT key, when pressed the Nunchuck stick is not used for moving but for
    // selecting dpad up, down, left or right.
 
    // selecting dpad left, right, up, down.
    // threshold is higher (vs 30) in order to have only one dpad button selected at a time
    if(VALUE_WII_NC_STICK_LEFT_RIGHT < -30)
    {
      set_val(OUTPUT_CONSOLE_DPAD_LEFT,  100)// left
      set_val(OUTPUT_CONSOLE_DPAD_RIGHT, 0);
    }
    else
    // already handled by wii dpad left: use killstreak       
    //if(VALUE_WII_NC_STICK_LEFT_RIGHT >  30)
    //{       
    //  set_val(OUTPUT_CONSOLE_DPAD_RIGHT, 100); // right (in modern warfare, was left in bo)
    //}
    //else
    if(VALUE_WII_NC_STICK_UP_DOWN    >  30)
    {
      // mw: gesture/spray decal
      set_val(OUTPUT_CONSOLE_DPAD_DOWN,  100);
      set_val(OUTPUT_CONSOLE_DPAD_RIGHT, 0);
    } // down (sign is flipped compared to math class)
    else
    if(VALUE_WII_NC_STICK_UP_DOWN    < -30)
    {
      // mw: not used
      set_val(OUTPUT_CONSOLE_DPAD_UP,    100);
      set_val(OUTPUT_CONSOLE_DPAD_RIGHT, 0);
    } // up (sign is flipped compared to math class)
  }
 
 
  if(isDPADing == 0)
  {
    // moving left/right
    if (VALUE_WII_NC_STICK_LEFT_RIGHT < -30) { set_val(OUTPUT_CONSOLE_LEFT_STICK_LEFT_RIGHT, -100); } // left
    else
    if (VALUE_WII_NC_STICK_LEFT_RIGHT > 30)  { set_val(OUTPUT_CONSOLE_LEFT_STICK_LEFT_RIGHT,  100); } // right
    else
    { set_val(OUTPUT_CONSOLE_LEFT_STICK_LEFT_RIGHT, VALUE_WII_NC_STICK_LEFT_RIGHT); }
 
    // moving up/down
    if (VALUE_WII_NC_STICK_UP_DOWN    < -30) { set_val(OUTPUT_CONSOLE_LEFT_STICK_UP_DOWN,    -100); } // up (sign is flipped compared to math class)
    else
    if (VALUE_WII_NC_STICK_UP_DOWN    > 30)  { set_val(OUTPUT_CONSOLE_LEFT_STICK_UP_DOWN,     100); } // down (sign is flipped compared to math class)
    else
    { set_val(OUTPUT_CONSOLE_LEFT_STICK_UP_DOWN, VALUE_WII_NC_STICK_UP_DOWN); }
  }
 
  // Bravo settings  twisting the wiimote 90o, hold it and press the + button
  // is used for throwing tacticals (instead of lethal grenade)
  if((VALUE_WII_BUTTON_PLUS > 0) && (VALUE_WII_GYRO_X > 20))
  {
    set_val(INPUT_WII_BUTTON_PLUS,        0); // stop/prevent throwing lethal
    set_val(OUTPUT_CONSOLE_BUTTON_L1LB, 100); // throw tactical grenade
  }   
  //else
  //{
  //  set_val(OUTPUT_CONSOLE_BUTTON_L1LB, 0);
  //}
  else
  {
 
    // Bravo settings (COD Modern Warfare: throwing both lethal and tactical to activate Specialist weapon or skill) 
    // this can not be done in bravo settings so to in bravo settings
    // activate Specialist weapon or skill by double tapping the lethal grenade button
    // TimerSpecialistWeapon - Countdown function
    if (TimerSpecialistWeapon > 0)
    {
      TimerSpecialistWeapon = TimerSpecialistWeapon - get_rtime(); // Reduce the timer value by the elapsed run time
    }
 
    // Timer - Detection of the release
    if (event_release(INPUT_WII_BUTTON_PLUS))
    {
      TimerSpecialistWeapon = 300;   // 300 ms timer (starting the timer)
    }
 
    // Timer - Detection of the press
    if ((event_press(INPUT_WII_BUTTON_PLUS)) && (TimerSpecialistWeapon > 0))
    {
       TimerSpecialistWeapon = 0;
       combo_run(ComboSpecialistWeapon);
    }   
  }
 
 
  // Empty battery indicator (turn all leds on if battery level less or equal 20%)
  if(get_battery() <= 2)
  {
    set_led(LED_1, 1);
    set_led(LED_2, 1);
    set_led(LED_3, 1);
    set_led(LED_4, 1);
  }
 
} // end of main() function
 
combo ComboSpecialistWeapon
{
   set_val(INPUT_WII_BUTTON_PLUS, 100);
   set_val(OUTPUT_CONSOLE_BUTTON_L1LB, 100);
   wait(500);
   set_val(INPUT_WII_BUTTON_PLUS, 0);
   set_val(OUTPUT_CONSOLE_BUTTON_L1LB, 0);   
}
 
function my_init()
{
  block_rumble();
}
 
User avatar
OFC-Giorgio
Lieutenant
Lieutenant
 
Posts: 335
Joined: Mon Sep 15, 2014 4:26 pm

Re: CM/T1 Call of duty Modern warfare wiimote bravo (PS4 etc

Postby Mad » Mon Nov 18, 2019 6:38 pm

Thanks for sharing with us :joia:
ConsoleTuner Support Team || Discord || YouTube || Twitter
Mad
Brigadier General
Brigadier General
 
Posts: 2323
Joined: Wed May 22, 2019 5:39 am

Re: CM/T1 Call of duty Modern warfare wiimote bravo (PS4 etc

Postby J2Kbr » Mon Nov 18, 2019 8:29 pm

Mad wrote:Thanks for sharing with us :joia:

+1 :joia:
ConsoleTuner Support Team
User avatar
J2Kbr
General of the Army
General of the Army
 
Posts: 19452
Joined: Tue Mar 18, 2014 1:39 pm

Re: CM/T1 Call of duty Modern warfare wiimote bravo (PS4 etc

Postby Rhytenow » Thu Jan 23, 2020 5:11 pm

Sorry I'm new to this but how would I customize this for Xbox One?
User avatar
Rhytenow
Staff Sergeant
Staff Sergeant
 
Posts: 11
Joined: Thu Jan 23, 2020 3:24 pm

Re: CM/T1 Call of duty Modern warfare wiimote bravo (PS4 etc

Postby J2Kbr » Thu Jan 23, 2020 6:52 pm

Rhytenow wrote:Sorry I'm new to this but how would I customize this for Xbox One?

The above script should work on Xbox without any changes. :smile0517:
ConsoleTuner Support Team
User avatar
J2Kbr
General of the Army
General of the Army
 
Posts: 19452
Joined: Tue Mar 18, 2014 1:39 pm

Re: CM/T1 Call of duty Modern warfare wiimote bravo (PS4 etc

Postby Rhytenow » Thu Jan 23, 2020 10:34 pm

Thanks!!!!!!!
User avatar
Rhytenow
Staff Sergeant
Staff Sergeant
 
Posts: 11
Joined: Thu Jan 23, 2020 3:24 pm

Re: CM/T1 Call of duty Modern warfare wiimote bravo (PS4 etc

Postby Rhytenow » Sat Jan 25, 2020 1:38 pm

One more question, I see this script says it's for the cm (device) and t1 (Titan one). Will this work on the Titan two? How about the device max plus? I haven't bought one yet but which one would you recommend between Titan and device max?
User avatar
Rhytenow
Staff Sergeant
Staff Sergeant
 
Posts: 11
Joined: Thu Jan 23, 2020 3:24 pm

Re: CM/T1 Call of duty Modern warfare wiimote bravo (PS4 etc

Postby J2Kbr » Sun Jan 26, 2020 10:22 am

The script can be converted for the Titan Two, for more details please visit these topics:

viewtopic.php?f=3&t=7591
viewtopic.php?f=3&t=12027
ConsoleTuner Support Team
User avatar
J2Kbr
General of the Army
General of the Army
 
Posts: 19452
Joined: Tue Mar 18, 2014 1:39 pm

Re: CM/T1 Call of duty Modern warfare wiimote bravo (PS4 etc

Postby Rhytenow » Sun Jan 26, 2020 6:04 pm

Thanks! One more question, do I need a bluetooth dongle for the Titan one? If so, which one would you recommend? Also, which would you recommend for call of duty and wiimoting between device and titan one?
User avatar
Rhytenow
Staff Sergeant
Staff Sergeant
 
Posts: 11
Joined: Thu Jan 23, 2020 3:24 pm

Re: CM/T1 Call of duty Modern warfare wiimote bravo (PS4 etc

Postby J2Kbr » Sun Jan 26, 2020 6:25 pm

You are welcome. The Bluetooth dongle is needed as the Wiimote only communicates over Bluetooth. Any regular BT EDR 2.1+ or 4.0+ will work. Several Titan One users seems to prefer the ASUS USB-BT400.
ConsoleTuner Support Team
User avatar
J2Kbr
General of the Army
General of the Army
 
Posts: 19452
Joined: Tue Mar 18, 2014 1:39 pm

Next

Return to Wiimote, Nunchuk and Sensorbar

Who is online

Users browsing this forum: No registered users and 3 guests