Larian Banner: Baldur's Gate Patch 9
Previous Thread
Next Thread
Print Thread
#651386 26/12/18 03:50 AM
Joined: Dec 2018
stranger
OP Offline
stranger
Joined: Dec 2018
Hi All,
I am having an issue with the MacOS version of the game Version 2.0.119.430 which I just got on Steam. I have 2 PS4 controllers and when the second one is connected they both fail to work properly, like multiple keypresses or no keypresses all totally screwed up. With 1 connected it's fine. I have tried with Bluetooth and USB and I tried the PS4 compatibility settings in Steam on and off as well as the Steam Mac Controller USB driver, but to no avail.

I tried 2 x PS3 controllers and that has a different bug where the game just lurches or pauses randomly while playing but I figure the game says it supports PS4 controllers so I shouldn't have to do anything special right?

When I run debug on start up with CMD I get these controller devices detected:
https://imgur.com/4NNO9rf

Anyone got any smart ideas? This is a real pity because the game looks so awesome and I really want to play it split screen coop.

Joined: Dec 2018
stranger
OP Offline
stranger
Joined: Dec 2018
I did the following to get it to work:

Hardware:
MBP 2018 (15-inch) ATI graphics
1 x PS4 Controller with serial: CUH-ZCT2U
1 x PS4 Controller with serial: CUH-ZCT2G

Software:
Mojave 10.14.2 (18C54)
DOS1 EE: Version 2.0.119.430
Steam Controller Driver Kexts:
/Library/Extensions/SteamInput.kext
/Library/Extensions/SteamInput-DS4v1.kext

1) Plug in Controllers with USB to confirm their Vendor and Product using either:
```
lsusb | grep -i sony
```
or
```
system_profiler SPBluetoothDataType
```

The output is:
Bus 020 Device 006: ID 054c:09cc Sony Corporation Wireless Controller

Convert those hex values to decimal.

Vendor is 054c (hex) = 1356 (dec) and Product is: 09cc (hex) = 2508 (dec)
Note that this is different to the ProductID listed in the Steam Controller Kext and in the games GamePadDefinitions.plist file.

2) Installed Steam Driver by opening Big Picture mode and saying yes to installing Steam Driver and rebooting.
3) Edited Steam PS4 driver kext file:
```
sudo find / -name "*Steam*.kext"
sudo vi /Library/Extensions/SteamInput-DS4v1.kext/Contents/Info.plist

Change ProductID from: 1476 to 2508
Edit lines to look like this:
<key>ProductID</key>
<integer>2508</integer>

4) Reboot
5) Find Divinity - Original Sin app file
6) Right Click show package contents
7) Backup Contents/Resources/GamePadDefinitions.plist
8) Edit Contents/Resources/GamePadDefinitions.plist
9) Add two entries:
Under the 1356 vendor key which is for PlayStation
Add 2508:Bluetooth with a redirect to: 1356:1476:Bluetooth
Add 2508:USB with a redirect to 1356:1476:USB
Look at the other entries to understand how it works. We are basically creating a new controller entry with the different PS4 controller Product ID and pointing it to the old one.

10) Open game with CMD key pressed for debug menu
11) Go to controllers Tab
12) Disconnect and Reconnect your controllers until there is only 1 controller showing not 2.
You should see:
- Microsoft - GamePad-2 (Vendor: 1118, Product: 654, Transport: (null))
- Apple MFI Controller (Vendor: Wireless Controller, Transport: Bluetooth)

If you see two Microsoft game pads, just keep turning them on and off until it works.
This works for both USB and Bluetooth, but reconnecting the bluetooth can be fiddly. Dont give up.
Once you start the game things should be rock solid. Only 1 controller will work initially and then in the game the other will connect on button press.
If you have more than 1 controller showing up during startup they will override each other and the game wont be playable.


I suspect that some of the above steps arent necessary but it works and thats all I care about.
I tried without the Steam Driver but then the Game would not recongize the controllers at all.
I also tried lots of other stuff like, USB, PS3 controllers, changing the game to Xbox mode, etc etc, but nothing I did worked until I used the above steps.
I also tried patching the GamePadDefinitions.plist to point the "emulated MS Vendor and Product ID) to the original PS4 controllers but that didnt work either.

This was also really useful in testing different controllers.
http://html5gamepad.com/

I learnt a lot during the process but I want to say a few things:

1) Valve, why does your driver not support the newer PS4 controllers on Mac. They have been around for years.
I found that for Rayman Origins the developers themselves provide a custom file you can insert in their game to make the PS4 2nd gen controllers work.

2) Larian Studios did you literally never test the game with 2 PS4 2nd edition controllers on Mac? Seems unlikely considering you must have tested the 2 player coop mode at least once and I would have thought the 2nd gen PS4 controllers were the most common.
Is this a new issue with Mojave? Its also really weird how it works when it only detects one controller.
Anyway I am confident because I can get it to work that you guys can probably fix this.
It would be really nice to delete all these hacks and load up the game with 0 config and have it work flawlessly.
If you want any more info from me let me know. The game rocks by the way! Cant wait for the port of DOS2 DE for mac.

Joined: Dec 2018
stranger
OP Offline
stranger
Joined: Dec 2018
I have emailed Larian and they said the PS4 2nd Gen controllers came out 6 months after the game was released. They also said a patch at this stage is unlikely. If anyone else is having this problem the game is playable with the above setup, but if you can get xbox controllers youll have a better time since you wont have to keep fiddling and then keep the controllers awake so they dont turn off and reconnect and screw everything up.

Good luck and happy gaming! smile

Joined: Jan 2014
Elverils/Larian Studios
Offline
Elverils/Larian Studios
Joined: Jan 2014
You did exactly the right thing but

1) You don't need Steam input at all - that's why you're seeing Microsoft - GamePad-2 which are steam entries
2) Just adding those two entries to the plist will solve the issue.
3) AppleMFI entry is Mojave bug and is influencing only launcher - i.e. game does recognise the controller correctly itself

DOS2 will support PS4 v2 controllers

I have tried this with DOS2:EE right now, changed PLIST launched it (No steam input on system) - everything works with 2 wired controllers.
I haven't tried BT.

Launcher fails to show stuff correctly - that's true.

Joined: Dec 2018
stranger
OP Offline
stranger
Joined: Dec 2018
Thats awesome. I figured when they didn't appear it wasn't working but glad you were able to test and confirm its just the launcher. So that means that adding the product id references is the trick. Do you have the issue that when the controllers disconnect you have to mess around a lot to get them to connect again. Currently with the steam driver it causes the game to go screwy, if it shows more than 1 controller so I just disconnect and reconnect until they only show 1 but 2 are connected with bluetooth. What I might try is removing the steam kext and doing it just with the product ID in the GamePadDefinitions.plist and seeing if that stops my issue of 2 controllers clashing while connected.

I wish the controllers would stay connected and reconnect more reliably, seems the second one causes Mojave a lot of issues.

Gonna remove the Steam driver now and report back.

Joined: Dec 2018
stranger
OP Offline
stranger
Joined: Dec 2018
Okay so I can confirm this works great.
I removed the steam driver by running the following:

```
sudo find / -name "*Steam*.kext"
sudo rm -rf /Library/Extensions/SteamInput-DS4v1.kext
sudo rm -rf /Library/Extensions/SteamInput.kext

sudo kextcache --clear-staging
```
Then rebooting.

Now when I connect both controllers (im using bluetooth but should be the same), the game launcher didn't show anything but Apple MFI and the game is recognising both controllers perfectly no buggyness!

This is awesome! smile

For anyone who doesn't know what to add to the plist file or have Xcode here is the file I edited.

Download this:
https://pastebin.com/AVC81aNe


Rename to GamePadDefinitions.plist and put it in the folder of the Game App Package.

This is where the original file is located in the game app package.
https://imgur.com/a/TS6tbPa

The new entries in the plist are these two:
https://imgur.com/a/Uhgezm3


Moderated by  gbnf, Kurnster, Monodon, Stephen_Larian 

Link Copied to Clipboard
Powered by UBB.threads™ PHP Forum Software 7.7.5