mirror of
https://github.com/Maschell/controller_patcher.git
synced 2024-11-25 13:36:53 +01:00
Changing the server-thread-priority if a game has problem with it.
Added retain variables for the callback workarround
This commit is contained in:
parent
bb6964cd6f
commit
c46fcaff88
@ -78,6 +78,10 @@ void ControllerPatcher::ResetConfig(){
|
|||||||
memset(gNetworkController,0,sizeof(gNetworkController)); // Init / Invalid everything
|
memset(gNetworkController,0,sizeof(gNetworkController)); // Init / Invalid everything
|
||||||
memset(gHID_Devices,0,sizeof(gHID_Devices)); // Init / Invalid everything
|
memset(gHID_Devices,0,sizeof(gHID_Devices)); // Init / Invalid everything
|
||||||
|
|
||||||
|
memset(gConnectCallback,0,sizeof(gConnectCallback));
|
||||||
|
memset(gExtensionCallback,0,sizeof(gExtensionCallback));
|
||||||
|
gCallbackCooldown = 0;
|
||||||
|
|
||||||
gHID_Mouse_Mode = HID_MOUSE_MODE_AIM;
|
gHID_Mouse_Mode = HID_MOUSE_MODE_AIM;
|
||||||
gHID_LIST_GC = 0;
|
gHID_LIST_GC = 0;
|
||||||
gHID_LIST_DS3 = 0;
|
gHID_LIST_DS3 = 0;
|
||||||
@ -474,6 +478,10 @@ void ControllerPatcher::DeInit(){
|
|||||||
memset(config_controller_hidmask,0,sizeof(config_controller_hidmask));
|
memset(config_controller_hidmask,0,sizeof(config_controller_hidmask));
|
||||||
memset(gNetworkController,0,sizeof(gNetworkController));
|
memset(gNetworkController,0,sizeof(gNetworkController));
|
||||||
|
|
||||||
|
memset(gConnectCallback,0,sizeof(gConnectCallback));
|
||||||
|
memset(gExtensionCallback,0,sizeof(gExtensionCallback));
|
||||||
|
gCallbackCooldown = 0;
|
||||||
|
|
||||||
gConfig_done = HID_INIT_NOT_DONE;
|
gConfig_done = HID_INIT_NOT_DONE;
|
||||||
gButtonRemappingConfigDone = 0;
|
gButtonRemappingConfigDone = 0;
|
||||||
gHIDAttached = 0;
|
gHIDAttached = 0;
|
||||||
|
@ -61,7 +61,16 @@ void TCPServer::CloseSockets(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void TCPServer::StartTCPThread(TCPServer * server){
|
void TCPServer::StartTCPThread(TCPServer * server){
|
||||||
TCPServer::pThread = ControllerPatcherThread::create(TCPServer::DoTCPThread, (void*)server, ControllerPatcherThread::eAttributeAffCore2,28);
|
s32 priority = 28;
|
||||||
|
if(OSGetTitleID() == 0x00050000101c9300 || //The Legend of Zelda Breath of the Wild JPN
|
||||||
|
OSGetTitleID() == 0x00050000101c9400 || //The Legend of Zelda Breath of the Wild USA
|
||||||
|
OSGetTitleID() == 0x00050000101c9500 || //The Legend of Zelda Breath of the Wild EUR
|
||||||
|
OSGetTitleID() == 0x00050000101c9b00 || //The Binding of Isaac: Rebirth EUR
|
||||||
|
OSGetTitleID() == 0x00050000101a3c00){ //The Binding of Isaac: Rebirth USA
|
||||||
|
priority = 10;
|
||||||
|
log_printf("TCPServer::StartTCPThread(line %d): This game needs higher thread priority. We set it to %d\n",__LINE__,priority);
|
||||||
|
}
|
||||||
|
TCPServer::pThread = ControllerPatcherThread::create(TCPServer::DoTCPThread, (void*)server, ControllerPatcherThread::eAttributeAffCore2,priority);
|
||||||
TCPServer::pThread->resumeThread();
|
TCPServer::pThread->resumeThread();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +62,16 @@ UDPServer::~UDPServer(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void UDPServer::StartUDPThread(UDPServer * server){
|
void UDPServer::StartUDPThread(UDPServer * server){
|
||||||
UDPServer::pThread = ControllerPatcherThread::create(UDPServer::DoUDPThread, (void*)server, ControllerPatcherThread::eAttributeAffCore2,17);
|
s32 priority = 28;
|
||||||
|
if(OSGetTitleID() == 0x00050000101c9300 || //The Legend of Zelda Breath of the Wild JPN
|
||||||
|
OSGetTitleID() == 0x00050000101c9400 || //The Legend of Zelda Breath of the Wild USA
|
||||||
|
OSGetTitleID() == 0x00050000101c9500 || //The Legend of Zelda Breath of the Wild EUR
|
||||||
|
OSGetTitleID() == 0x00050000101c9b00 || //The Binding of Isaac: Rebirth EUR
|
||||||
|
OSGetTitleID() == 0x00050000101a3c00){ //The Binding of Isaac: Rebirth USA
|
||||||
|
priority = 10;
|
||||||
|
log_printf("UDPServer::StartUDPThread(line %d): This game needs higher thread priority. We set it to %d\n",__LINE__,priority);
|
||||||
|
}
|
||||||
|
UDPServer::pThread = ControllerPatcherThread::create(UDPServer::DoUDPThread, (void*)server, ControllerPatcherThread::eAttributeAffCore2,priority);
|
||||||
UDPServer::pThread->resumeThread();
|
UDPServer::pThread->resumeThread();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,9 +136,8 @@ void UDPServer::DoUDPThreadInternal(){
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
//log_printf("UDPServer::DoUDPThreadInternal(): Got handle: %d slot %04X hid %04X pad %02X datasize %02X\n",handle,deviceSlot,hid,padslot,datasize);
|
|
||||||
if(!cpyIncrementBufferOffset((void *)databuffer, (void *)buffer,&bufferoffset,datasize, n))continue;
|
if(!cpyIncrementBufferOffset((void *)databuffer, (void *)buffer,&bufferoffset,datasize, n))continue;
|
||||||
|
//log_printf("UDPServer::DoUDPThreadInternal(): Got handle: %d slot %04X hid %04X pad %02X datasize %02X\n",handle,deviceSlot,hid,padslot,datasize);
|
||||||
|
|
||||||
user.pad_slot = padslot;
|
user.pad_slot = padslot;
|
||||||
user.slotdata.deviceslot = deviceSlot;
|
user.slotdata.deviceslot = deviceSlot;
|
||||||
|
@ -56,3 +56,7 @@ u8 gOriginalAPDState __attribute__((section(".data"))) = 0;
|
|||||||
u16 gNetworkController[gHIDMaxDevices][HID_MAX_PADS_COUNT][4] __attribute__((section(".data")));
|
u16 gNetworkController[gHIDMaxDevices][HID_MAX_PADS_COUNT][4] __attribute__((section(".data")));
|
||||||
s32 gHIDNetworkClientID __attribute__((section(".data"))) = 0;
|
s32 gHIDNetworkClientID __attribute__((section(".data"))) = 0;
|
||||||
u8 gUsedProtocolVersion __attribute__((section(".data"))) = WIIU_CP_TCP_HANDSHAKE;
|
u8 gUsedProtocolVersion __attribute__((section(".data"))) = WIIU_CP_TCP_HANDSHAKE;
|
||||||
|
|
||||||
|
wpad_connect_callback_t gConnectCallback[4] __attribute__((section(".data")));
|
||||||
|
wpad_extension_callback_t gExtensionCallback[4] __attribute__((section(".data")));
|
||||||
|
u8 gCallbackCooldown __attribute__((section(".data"))) = 0;
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#define CP_RETAINS_VARS_H_
|
#define CP_RETAINS_VARS_H_
|
||||||
|
|
||||||
#include "dynamic_libs/syshid_functions.h"
|
#include "dynamic_libs/syshid_functions.h"
|
||||||
|
#include "dynamic_libs/padscore_functions.h"
|
||||||
#include "../patcher/ControllerPatcherDefs.h"
|
#include "../patcher/ControllerPatcherDefs.h"
|
||||||
|
|
||||||
extern ControllerMapping gControllerMapping;
|
extern ControllerMapping gControllerMapping;
|
||||||
@ -58,4 +59,9 @@ extern s32 gHIDNetworkClientID;
|
|||||||
|
|
||||||
extern u8 gUsedProtocolVersion;
|
extern u8 gUsedProtocolVersion;
|
||||||
|
|
||||||
|
extern wpad_connect_callback_t gConnectCallback[4];
|
||||||
|
extern wpad_extension_callback_t gExtensionCallback[4];
|
||||||
|
extern u8 gCallbackCooldown;
|
||||||
|
|
||||||
|
|
||||||
#endif // CP_RETAINS_VARS_H_
|
#endif // CP_RETAINS_VARS_H_
|
||||||
|
Loading…
Reference in New Issue
Block a user