In my case I went through some hoops to calibrate PS4 controller with the Mac version of the game. Calibration fails due to trigger keys being active in neutral position (you can see that in test page, box 11 and 13 are lit). Because of that specific calibration process doesn't work, as it relies on only single key being pressed.
Since controller is clearly working I thought that I might be able to configure the calibration manually - and yes it did work, however I did spend almost an hour trying to figure out the meaning of numbers in config.cfg file. You should be able to find the file in your games directory, for example: /Applications/Unepic.app/Contents/Resources/game/Unepic.app/Contents/Resources. For anybody who has similar issues and would like to manually configure the keys here is what I found. Two key sections are:
<padMap_x>y</padMap_x> - describes pad calibration, this part is quite confusing, so I recommend following this part first only if the set of provided calibration parameters works out of the box.
- x - is a number ... referring to an in-game button, but for whatever reason these number DO NOT follow the calibration order. What helped is that padMap's are grouped in fours, so after identifying a single mapping, nearby group of four refers to similar buttons. I found only padMap's up to 20 useful.
- y - is physical key code, it is the number of box that gets lit in test view whenever button is pressed. First row being 1-8, 2nd 9-16 and 3rd numbers 17-24
So a <padMap_5>21</padMap_5> entry means that physical button 21 (L1 on PS4 pad) gets assigned to in-game button 5, which is the virtual L1 button. The settings that worked for me for PS4 pad are:
* action keys
<padMap_1>18</padMap_1>
<padMap_2>19</padMap_2>
<padMap_3>17</padMap_3>
<padMap_4>20</padMap_4>
* L1/2 and R1/2
<padMap_5>21</padMap_5>
<padMap_6>23</padMap_6>
<padMap_7>22</padMap_7>
<padMap_8>24</padMap_8>
* right analog
<padMap_9>9</padMap_9>
<padMap_10>10</padMap_10>
<padMap_11>15</padMap_11>
<padMap_12>16</padMap_12>
* left analog
<padMap_13>7</padMap_13>
<padMap_14>8</padMap_14>
<padMap_15>5</padMap_15>
<padMap_16>6</padMap_16>
* direction keys
<padMap_17>4</padMap_17>
<padMap_18>3</padMap_18>
<padMap_19>1</padMap_19>
<padMap_20>2</padMap_20>
<pad_x>y</pad_x> - this section describes mapping of in-game keys to game functions, if you configured padMap correctly, this part can be actually done from game's menu. I worked it out in reverse order, as this part was easier to understand and helped me solving padMap section.
- x - is an function in-game like move left, attack, etc. As reference previous section of tecla_x includes related keyboard binding
- y - is in-game button number from calibration process, i.e. 1 up, 2 down, ..., 5 left analog up, etc. If padMap_x followed the same order figuring out the config would take 15 minutes instead of an hour. No idea why that's not the case. So here is my pad key binding if anyone's interested :)
* directions, generally ignore as these cannot be effectively reassigned on a pad
<pad_1>5</pad_1>
<pad_2>6</pad_2>
<pad_3>7</pad_3>
<pad_4>8</pad_4>
* 5 configurable keys, jump, attack, etc.
<pad_5>5</pad_5>
<pad_6>14</pad_6>
<pad_7>13</pad_7>
<pad_8>15</pad_8>
<pad_9>16</pad_9>
* nothing, on keyboard these refer to inventory, quests, etc. You can try providing pad bindings here, but it didn't work for me
<pad_10>0</pad_10>
<pad_11>0</pad_11>
<pad_12>0</pad_12>
<pad_13>0</pad_13>
<pad_14>0</pad_14>
<pad_15>0</pad_15>
* pause
<pad_16>20</pad_16>
* nothing
<pad_17>0</pad_17>
<pad_18>0</pad_18>
* zoom
<pad_19>18</pad_19>
* ignore the rest
<pad_20>0</pad_20>
<pad_21>22</pad_21>
<pad_22>1</pad_22>
<pad_23>2</pad_23>