[WiiU] Initial controller patcher support (HID via USB and network)

- Reading config from sd cards currently broken
- Not implemeted as a driver, currently all devices will be mapped to the WiiU Gamepad driver
This commit is contained in:
Maschell 2017-05-08 12:24:06 +02:00
parent da0f3620bc
commit e695d4e8ad
4 changed files with 26 additions and 3 deletions

View File

@ -13,6 +13,20 @@ OBJ += wiiu/system/memory.o
OBJ += wiiu/system/exception_handler.o
OBJ += wiiu/fs/sd_fat_devoptab.o
OBJ += wiiu/fs/fs_utils.o
OBJ += wiiu/controller_patcher/ControllerPatcher.o
OBJ += wiiu/controller_patcher/ControllerPatcherWrapper.o
OBJ += wiiu/controller_patcher/ConfigReader.o
OBJ += wiiu/controller_patcher/config/ConfigParser.o
OBJ += wiiu/controller_patcher/config/ConfigValues.o
OBJ += wiiu/controller_patcher/network/ControllerPatcherNet.o
OBJ += wiiu/controller_patcher/network/TCPServer.o
OBJ += wiiu/controller_patcher/network/UDPClient.o
OBJ += wiiu/controller_patcher/network/UDPServer.o
OBJ += wiiu/controller_patcher/patcher/ControllerPatcherUtils.o
OBJ += wiiu/controller_patcher/patcher/ControllerPatcherHID.o
OBJ += wiiu/controller_patcher/utils/CPRetainVars.o
OBJ += wiiu/controller_patcher/utils/CPStringTools.o
OBJ += wiiu/controller_patcher/utils/PadConst.o
OBJ += wiiu/tex_shader.o
OBJ += wiiu/hbl.o
@ -138,7 +152,7 @@ ifeq ($(WHOLE_ARCHIVE_LINK), 1)
WHOLE_START := -Wl,--whole-archive
WHOLE_END := -Wl,--no-whole-archive
endif
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -D_GNU_SOURCE
LDFLAGS += -Wl,--gc-sections

View File

@ -54,6 +54,8 @@
#include <wiiu/vpad.h>
#include <wiiu/kpad.h>
#include "wiiu/controller_patcher/ControllerPatcherWrapper.h"
#include <fat.h>
#include <iosuhax.h>
@ -405,6 +407,8 @@ int main(int argc, char **argv)
#endif
verbosity_enable();
ControllerPatcherInit();
printf("starting\n");
fflush(stdout);
DEBUG_VAR(ARGV_PTR);
@ -458,6 +462,8 @@ int main(int argc, char **argv)
}
while (1);
ControllerPatcherDeInit();
main_exit(NULL);
#endif
#endif

View File

@ -21,6 +21,8 @@
#include <wiiu/vpad.h>
#include <wiiu/kpad.h>
#include "wiiu/controller_patcher/ControllerPatcherWrapper.h"
#include "../input_config.h"
#include "../input_driver.h"
#include "../input_joypad_driver.h"
@ -158,9 +160,9 @@ static void wiiu_joypad_poll(void)
int c;
VPADStatus vpad;
VPADReadError vpadError;
VPADRead(0, &vpad, 1, &vpadError);
setControllerDataFromHID(&vpad);
vpadError = VPAD_READ_SUCCESS;
if (!vpadError)
{
pad_state[0] = vpad.hold & ~0x7F800000; /* clear out emulated analog sticks */

@ -0,0 +1 @@
Subproject commit 9fb5404dd79feba855a730a9a2c33ca2d80989ad