Accessibility: PS5 Titan Two + Zen

GPC2 script programming for Titan Two. Code examples, questions, requests.

Accessibility: PS5 Titan Two + Zen

Postby SpecialEffect » Wed Jul 05, 2023 11:39 am

Playstation 5 access using a Zen (using BETA software) and Titan Two daisy-chain has been working very well for the past week. No guarantees it will stay that way, but fingers crossed.

The Zen using recent BETA software, is giving a stable PS5 connection. However, it can only accept one-controller at a time, and I've been unable to get scripts working on it. Adding a Titan Two (in PS4 output protocol), it's possible to have the significant boost of Titan Two powers.

This script gives some more help in setting this up, and a fix for the Xbox Adaptive Controller (currently using an analogue trigger in RT activates rapid Touch-Pad clicks). The slow-boot code is not necessary here, but stability has been so good with it, I've left it in.

This is based on the Titan to Besavior to PS5 method posted earlier: https://www.consoletuner.com/forum/viewtopic.php?f=26&t=20207

Barrie

Image



Code: Select all
/*     
  ___  ___ ___ _      _______ _  _     _     _____ ___ _____ _   _  _     _    __  __   _   ___
 | _ \/ __| __(_)    |_  / __| \| |  _| |_  |_   _|_ _|_   _/_\ | \| |  _| |_  \ \/ /  /_\ / __|
 |  _/\__ \__ \_      / /| _|| .` | |_   _|   | |  | |  | |/ _ \| .` | |_   _|  >  <  / _ \ (__
 |_|  |___/___(_)    /___|___|_|\_|   |_|     |_| |___| |_/_/ \_\_|\_|   |_|   /_/\_\/_/ \_\___|
 
 
This script was created by Barrie Ellis at SpecialEffect.org.uk (June 2023) using
knowledge gained by Graham Law (CelticMagic.org) and Jefferson Koppe (ConsoleTuner.com) and the GCM100 system (OneSwitch.org.uk/Celtic Magic)
Use the following at your own risk.
 
SET-UP HELP:
 
1. PS5 Settings > Accessories > Controllers > Communication Method (and check you are set to "Use USB Cable")
2. Zen (with firmware BETA 68 or later). Download from here https://www.dropbox.com/sh/7dlcx1tf99xd ... Rk33a?dl=0 and follow instructions.
3. Titan Two should be in "USB Automatic" output protocol, set in the Device Configuration tab. Also tick "Recall loaded memory slot between power cycles".
3. Plug a Dualsense into left side of Zen.
4. Link the Titan Two "OUTPUT" port to the front left of the ZEN using the very short USB cable.
5. Plug a XAC into the front right of Titan Two and optional co-pilot control into the front left.
6. Copy this script into a free slot on your Titan Two and have it active (use the up/down arrows on the T2 or click on the slot in GTuner).
7. Link the back of the ZEN to your PS5 using the shortest Zen cable.
8. Power on (via console power button or Dualsense PS button). Play!
9. Disconnect power from Zen and Titan when not in use (lights should all go out). 
 
*/

//INITIALISATION ________________________________________________________________________________________________
 
#define PLATFORM_PS4                            // PS4 | XB1   Set OUTPUT PROTOCOL.
#define FAST_BOOT_OFF                              // OFF | AB | A  | B      OFF = Slow boot up for USB devices plugged into the T2
#define BOOT_TIME    31000                        // BOOT DELAY TIME
 
#pragma  METAINFO("PS5 (ZEN TITAN XAC FIX)", 0, 01, "Barrie Ellis, SpecialEffect.org.uk")
#include <ps5.gph>      // PS5 terms headerfile
#include <ps4.gph>      // PS4 terms headerfile
#include <xb1.gph>         // XB1 terms
 
init {
#ifdef PLATFORM_PS4
     port_disconnect();
     port_connect(PORT_USB_C, PROTOCOL_PS4);
     printf("PS4 Mode forced on");
#endif
#ifdef PLATFORM_XB1   
    port_disconnect();
    port_connect(PORT_USB_C, PROTOCOL_XB1);
    printf("PC / XBox 1 Mode forced on");
#endif
     }
 
 
//MAIN SCRIPT FOR CUSTOMISATION ________________________________________________________________________________________________
 
main {    
    if(get_val(PS4_R2) > 0.0)  {set_val(PS5_CREATE,0.0);} // FIX T2+XAC+"R2" flickering Create button bug. Use Besavior create button instead.
}
 
 
 
 
//BOOT TREATMENT ________________________________________________________________________________________________
 
void E99GCM_CleanBoot()
{
static uint16 boot_timer = 0;   
#ifdef FAST_BOOT_AB       
    return;
#endif
#ifdef FAST_BOOT_ON       
    return;
#endif
    if (boot_timer > BOOT_TIME)         { return; }
    if (boot_timer == 0)                
     {        
#ifndef FAST_BOOT_A        
     port_usb_poweroff(PORT_USB_A);        
#endif        
#ifndef FAST_BOOT_B        
     port_usb_poweroff(PORT_USB_B);
#endif
     }
    boot_timer++;
#ifndef FAST_BOOT_A    
    if (boot_timer == (BOOT_TIME/10))     { port_usb_poweron(PORT_USB_A);    }
#endif
#ifndef FAST_BOOT_B    
    if (boot_timer == (BOOT_TIME/10))     { port_usb_poweron(PORT_USB_B);    }
#endif    
}
 
 
 
User avatar
SpecialEffect
Sergeant Major of the Army
Sergeant Major of the Army
 
Posts: 203
Joined: Mon Apr 07, 2014 3:26 pm

Return to GPC2 Script Programming

Who is online

Users browsing this forum: No registered users and 29 guests