The Titan One is a USB device that you control from a PC via a USB cable.
It has an input port on it that you can plug a Xbox / PS / Wii controller into
You can then either plug it into a PC or a Console (While still leaving the control cable attached to the PC) and it will fake a controller on that PC/Console.
The PC/Console will not be able to see the real controller.
It is also possible to control a controller on one PC from another PC using this device.
Using this library, you can subscribe to inputs on the real controller, much like you would with regular AHK hotkeys.
You can then call the library to set the state of the fake controller.
This sample code would remap Button 1 (Xbox A/PS Cross) to Button 2 (Xbox B / PS Circle) and Left Stick X to Left Stick Y:
; Load CLR library that allows us to load C# DLLs
; Instantiate class from C# DLL
asm := CLR_LoadLibrary("TitanWrapper.dll")
global titan := asm.CreateInstance("TitanWrapper.Wrapper")
; Subscribe to some buttons and axes on the Titan input port
; Press button 2 on Titan controller
; Move axis 2 on Titan controller
Downloads are in Releases Section
Documentation is on main page