Posted March 20, 2016
This is on Linux/Wine using a x360/xbone controller with the xpad.ko driver, but might be useful on Windows too.
I like to play third person games with a controller. This game supports one, but the configuration tool does not offer all that much choice and there are a few oddities that can be overcome by tweaking the configuration by hand. I would attach mine, but it is a long file and the forum software isn't well suited for that, so I'll describe my edits instead.
I should first warn that many of the minigames actually play better with a keyboard, so this may not be worth the trouble to you. But if you think it is, be smart. Backup the configuration file before edits so you can restore it in case it doesn't work.
First, you'll need to run the configuration tool from the launcher to create the initial configuration file. Enable the controller and configure the controls. For the buttons, you will most certainly want Activate=A, Examine=B, Pose=Y, Alt Action=X. Other buttons that I set here were Black Book=Start, Show HUD=LB, hot spots=RB, photo mode=TR, 1st/3rd view toggle=TL. Map the pitch/yaw controls to the right stick for now. Save and quit.
This creates the file Data/Control/PC/PCMap.anm. Open it in the text editor of your choice - it should be one that is fine with the windows-style line endings - and have a look around. If you're a programmer it should speak to you. Otherwise, well, it is just defining AbstractMappers, named collections of mappings from "physical" identifiers (actual controls) to "abstract" identifiers (game functions), confusingly both using the the same symbols as values. Sometimes there are additional parameters, and each section begins with a indication of how many mappings there will be in total. We are interested in AbstractMappers "GPGameP0" (basic gameplay with controller) and "GPMenu0" (menus with controller).
Let us edit the AbstractMapper "GPGameP0" first. Its ButtonMap is basically fine as we configured it, I just like the back button to bring up the menu like pressing Esc does. For this, change AbstractID to JoystickButton0 where PhysicalID is JoystickButton6.
The GPGameP0 AxisMap needs some work with the right stick. It's a big headache because the axes it controls are inverted in the 3rd person view and not in the camera or the 1st person views. The only fix that I came up with was to change the stick to adjust those abstract axes that are normally controlled by the mouse instead. For this, look for AbstractIDs "AxisLz" and "AxisRx" and change them to "AxisLx" and "AxisLy" respectively. In addition, once in the game, you may need to adjust mouse sensitivity all the way up, but it will play consistently in all the modes then.
Gameplay should be fine now, move on to AbstractMapper "GPMenu0" and its ButtonMap. On the PC and the xboxen, one expects to navigate menus using A for accept and B for cancel. Now it's canceling with Y instead. To fix this, just switch PhysicalIDs JoystickButton1 and JoystickButton3.
The character viewer has by default no controls to switch characters on a controller. We can map this to the LB/RB, but it's a bit more complex than the edits before. Still under GPMenu0, in the beginning of the ButtonMap definition, increase ButtonMap [9] to [10] to make space for one extra control. Then erase the mapping that has PhysicalID JoystickButton4, and add these two in its stead. I'm afraid the forum software is going to mess them up a bit, so try and do your best:
ButtonMap
{
PhysicalID JoystickButton4
AbstractID AxisZ
AbstractAxisState AxisNegative
}
ButtonMap
{
PhysicalID JoystickButton5
AbstractID AxisZ
AbstractAxisState AxisPositive
}
There, controller support much improved. :)
I like to play third person games with a controller. This game supports one, but the configuration tool does not offer all that much choice and there are a few oddities that can be overcome by tweaking the configuration by hand. I would attach mine, but it is a long file and the forum software isn't well suited for that, so I'll describe my edits instead.
I should first warn that many of the minigames actually play better with a keyboard, so this may not be worth the trouble to you. But if you think it is, be smart. Backup the configuration file before edits so you can restore it in case it doesn't work.
First, you'll need to run the configuration tool from the launcher to create the initial configuration file. Enable the controller and configure the controls. For the buttons, you will most certainly want Activate=A, Examine=B, Pose=Y, Alt Action=X. Other buttons that I set here were Black Book=Start, Show HUD=LB, hot spots=RB, photo mode=TR, 1st/3rd view toggle=TL. Map the pitch/yaw controls to the right stick for now. Save and quit.
This creates the file Data/Control/PC/PCMap.anm. Open it in the text editor of your choice - it should be one that is fine with the windows-style line endings - and have a look around. If you're a programmer it should speak to you. Otherwise, well, it is just defining AbstractMappers, named collections of mappings from "physical" identifiers (actual controls) to "abstract" identifiers (game functions), confusingly both using the the same symbols as values. Sometimes there are additional parameters, and each section begins with a indication of how many mappings there will be in total. We are interested in AbstractMappers "GPGameP0" (basic gameplay with controller) and "GPMenu0" (menus with controller).
Let us edit the AbstractMapper "GPGameP0" first. Its ButtonMap is basically fine as we configured it, I just like the back button to bring up the menu like pressing Esc does. For this, change AbstractID to JoystickButton0 where PhysicalID is JoystickButton6.
The GPGameP0 AxisMap needs some work with the right stick. It's a big headache because the axes it controls are inverted in the 3rd person view and not in the camera or the 1st person views. The only fix that I came up with was to change the stick to adjust those abstract axes that are normally controlled by the mouse instead. For this, look for AbstractIDs "AxisLz" and "AxisRx" and change them to "AxisLx" and "AxisLy" respectively. In addition, once in the game, you may need to adjust mouse sensitivity all the way up, but it will play consistently in all the modes then.
Gameplay should be fine now, move on to AbstractMapper "GPMenu0" and its ButtonMap. On the PC and the xboxen, one expects to navigate menus using A for accept and B for cancel. Now it's canceling with Y instead. To fix this, just switch PhysicalIDs JoystickButton1 and JoystickButton3.
The character viewer has by default no controls to switch characters on a controller. We can map this to the LB/RB, but it's a bit more complex than the edits before. Still under GPMenu0, in the beginning of the ButtonMap definition, increase ButtonMap [9] to [10] to make space for one extra control. Then erase the mapping that has PhysicalID JoystickButton4, and add these two in its stead. I'm afraid the forum software is going to mess them up a bit, so try and do your best:
ButtonMap
{
PhysicalID JoystickButton4
AbstractID AxisZ
AbstractAxisState AxisNegative
}
ButtonMap
{
PhysicalID JoystickButton5
AbstractID AxisZ
AbstractAxisState AxisPositive
}
There, controller support much improved. :)
Post edited March 20, 2016 by Rixasha