For anyone else moving in the same direction, here's the script so far:
include "target.tmh" alias T16001; // second T16000 handle, which will be used all mapping commands int main() { if(Init(&EventHandle)) return 1; &T16001 = GetIndexJoy(SelectUsbDevice("VID_044F&PID_B10A")); // expect a second T16000 to be plugged on USB MapAxis(&T16000, JOYX, MOUSE_X_AXIS); MapAxis(&T16000, JOYY, MOUSE_Y_AXIS); KeyAxis(&T16001, JOYX, 0, AXMAP2(3, 'a', 0, 'd')); KeyAxis(&T16001, JOYY, 0, AXMAP2(3, 'w', 0, 's')); MapKey(&T16000, TS1, DX1); MapKey(&T16000, TS2, DX2); MapKey(&T16000, TS3, DX3); MapKey(&T16000, TS4, DX4); MapKey(&T16001, TS1, DX5); MapKey(&T16001, TS2, DX6); MapKey(&T16001, TS3, DX7); MapKey(&T16001, TS4, DX8); MapKey(&T16000, B5, DX9); MapKey(&T16000, B6, DX10); MapKey(&T16000, B7, DX11); MapKey(&T16000, B8, DX12); MapKey(&T16000, B9, DX13); MapKey(&T16000, B10, DX14); MapKey(&T16001, B5, DX15); MapKey(&T16001, B6, DX16); MapKey(&T16001, B7, DX17); MapKey(&T16001, B8, DX18); MapKey(&T16001, B9, DX19); MapKey(&T16001, B10, DX20); MapKey(&T16000, H1U, DXHATUP); MapKey(&T16000, H1R, DXHATRIGHT); MapKey(&T16000, H1D, DXHATDOWN); MapKey(&T16000, H1L, DXHATLEFT); } int EventHandle(int type, alias o, int x) { DefaultMapping(&o, x); }
This creates a single virtual controller with four axes (probably the wrong ones, but easy to tidy up later), one hat and twenty buttons.
Bad news from Thrustmaster is that there's no way to map the other hat. Aw...
Edited by Uri Brauer, 24 July 2012 - 01:21 PM.