Well, I've tried everything I can think of. This is the best I can get it 🙁 It probably uses much the same methods as XWCOOL does, it just works as a loader instead of a TSR. On my system, that seems to make the difference on whether it will work or not. I'm posting it her in case any of you would like to test it out. Also, feel free to look at the code and help me find ways to make it smaller. 16K is a bit high IMHO, but I just cannot figure a way to make it any smaller. I've already reduced the stack & heap as much as I can. The heap was the big one, defaults to 64K, now only using 1K, the stack is changed to 1K from 4K. Loaded X-Wing (w/ I.P. + Patch and B-Wing installed,) and played for about an hour without issue.
Usage is very simple. The programs themselves do not have to be in the same directory as the game in question, as long as their in the path (or you type out the full path.) They do all their work in the current directory, so that needs to be whatever directory you are in when you start your game. First, run TMSetup.exe. That will let you chose the keys each hat direction will be mapped too. It will also run a calibration on the hat values for your system setup (if system changes, have to re-calibrate.) It will save all of this in the TMLoader.cfg file for the loader to use. Next you will run "tmloader <game> <args>" . I didn't get fancy, it will try to run the first entry and doesn't check if it's valid or anything (just fails if its invalid.) Everything past the first entry is considered to be arguments to be passed to the game. So, if you need arguments for the game you would put them there. Fore example, to load Monkey Island with VGA, Mouse, & Roland you would normally type "monkey v mo r". If you were to use this loader, you would type "tmloader monkey v mo r" instead. TMLoader will insert it's watch routine, programmed to emulate key presses when you use the hat, run the game, then sit and wait for you to exit the game. When you exit the game, it removes it's routine and exits.
I've tried the loader with X-Wing and with The Secret of Monkey Isle without any issues so far. I'm digging for more games to test it with 😀 Any help would be appreciated.