CrossCode

CrossCode

İstatistiklere Bak:
[Solved] Xbox Wireless Controller doesn't work properly on macOS
[Edit] Problem solved.

If you are a macOS user using Xbox Bluetooth Wireless controller, try below to fix controller problem.

1. Make sure the controller's firmware is latest (You can do that only via Windows. If you don't have one, use VirtualBox and Win 10 iso demo)
2. Update NW.js to the latest version (copy app.nw to latest version's package contents and rename it to "CrossCode.app")
3. If select button isn't working, use "Enjoyable" app to re-map the button to the key 'Tab'. (If you've brew cask installed just type 'brew cask install enjoyable' on Terminal)

--- Original post below ---

Hello there.
Let me describe my environment first of all:

  • CrossCode via Steam (Latest build as of 22nd Oct 2017)
  • macOS 10.13
  • Xbox Wireless Controller connected via Bluetooth
  • The controller's all buttons and sticks are properly recognized at http://html5gamepad.com/ (via Chromium 61.0.3163.100)
  • The Controller is detected as:
    1 Xbox Wireless Controller (Vendor: 045e Product: 02e0)

Okay. Now, the problem I have with CrossCode is:
  • Y-Axis of right stick is ignored
  • LT & RT button is not recognized properly
  • Start button is recognized as RT button
  • Once entered aiming mode by pressing LT, cannot revert to normal mode until disconnecting the controller
  • Cannot invoke attack action which you can with "V" key because of above
  • Those happens on http://www.cross-code.com/en/start too

FYI, I have played games without any problem like Hyper Light Drifter, Portal 2, Axiom Verge, on the same environment. Seems that CrossCode is based on HTML5? Sounds like that's what all those problems are came from.

As the controller is working flawlessly, I suppose the cause is just internal key mappings of the game.
Though, is there any workaround? So far, I'm so excited with this game and would like to continue playing comfortably.

I'm willing to offer any further information if needed.

Thanks in advance.
En son nehan tarafından düzenlendi; 26 Eki 2017 @ 7:17
< >
12 yorumdan 1 ile 12 arası gösteriliyor
lachsen  [geliştirici] 23 Eki 2017 @ 2:23 
Okay it's very strange that the gamepad is properly recognized as an HTML5 gamepad but doesn't work in the game, even with the browser demo.

Could you send some screenshots with more information from http://html5gamepad.com/ ?

I know that some Mac Players can play the game with gamepads, so using certain drivers/gamepads it should work properly.

I especially don't understand why the mapping would be wrong in that particular way.
Hi lachsen! Thanks for your response.

I've done some research about Xbox controllers. And found out that it has many versions and revisions. Some are USB-wired, some are USB-dongle wireless and some has Bluetooth capability (which is the one I have, and this one can be connected to macOS out of the box, recognized literally as "Xbox Wireless Controller" both on macOS system and Steam). So, lots of versions of the controller out there. Which might mean some possibilities, that it's not that all of them are sharing the same index of buttons and sticks. Mine is "Xbox `One` Wireless Controller".

And I also searched about this issue on this forum and seems there are certain amount of people are suffered from the (seemingly) the same problem that I have. If we can solve this out now, we can help them too I think.

Anyway, let me list all the output I get via http://html5gamepad.com/ below:

  • 1 Xbox Wireless Controller (Vendor: 045e Product: 02e0)
  • MAPPING == [none] <- This value did not change for all the actions
  • INDEX == 0 <- This value did not change for all the actions

  • Left Stick X == AXIS 0 (Range between -1.000000 (left) to 1.000000 (right))
  • Left Stick Y == AXIS 1 (Range between -1.000000 (up) to 1.000000 (down))
  • LT Button == AXIS 2 (Range between -1.000000 (unpressed) to 1.000000 (hold down))

  • Right Stick X == AXIS 3 (Range between -1.000000 (left) to 1.000000 (right))
  • Right Stick Y == AXIS 4 (Range between -1.000000 (up) to 1.000000 (down))
  • RT Button == AXIS 5 (Range between -1.000000 (unpressed) to 1.000000 (hold down))

  • D-Pad Up == AXIS 9 (-1.000000)
  • D-Pad Right == AXIS 9 (-0.428571)
  • D-Pad Down == AXIS 9 (0.142857)
  • D-Pad Left == AXIS 9 (0.714286)

  • A Button == B0 (1.0)
  • B Button == B1 (1.0)
  • X Button == B2 (1.0)
  • Y Button == B3 (1.0)

  • LB Button == B4 (1.0)
  • RB Button == B5 (1.0)

  • Select Button == B6 (1.0)
  • Start Button == B7 (1.0)

  • Left Stick Pressed == B8 (1.0)
  • Right Stick Pressed == B9 (1.0)

  • Unpressed State After Recognizing (Those stays at the value even if untouched once recognized. Not grayed out):
  • LT Button == AXIS 2 (-1.000000)
  • RT Button == AXIS 5 (-1.000000)
  • D-Pad == AXIS 9 (-1.285714)

Well, [Unpressed State After Recognizing] is something bad, I guess. That makes some sense that I cannot exit aiming mode once pressing LT Button.

Hope this helps.
En son nehan tarafından düzenlendi; 23 Eki 2017 @ 7:34
lachsen  [geliştirici] 23 Eki 2017 @ 12:08 
Hey,

okay if your gamepad has this kind of mapping it explains why it behaves so strange in CrossCode.

We could now try to implement support for such mapping but there are several issues with that:

1. I'm not sure how exactly to identify this kind of mapping. Quering a "mapping" value of "none" (for me it says "standard") might be a way to do it but it's possible that it won't work for other users
2. We can't test it since we don't have the right setup to get this kind of mapping.
3. It might be possible that a correct implementation with this mapping isn't possible in the first place.
4. It might actually be somewhat challenging to implement since CrossCode is currently fairly hardcoded for the standard gamepad mapping.

Overall it's just a very difficult for us to fix this issue and it's something that only gets reported by very few players... That's why I currently can't promise anything, unfortunately.

Installing a different driver for your gamepad might help to fix the issue for your particular system.
At some point, someone suggested this driver:
http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/OsxDriver

Though it seems to be for an Xbox 360 gamepad.

lachsen  [geliştirici] 23 Eki 2017 @ 12:16 
I had another look at the official Gamepad API (https://w3c.github.io/gamepad/).
It states that there really is just one kind of mapping which is "standard". If the browser isn't capable to match the buttons to the "standard" mapping, the mapping is empty string (which probably means "none"). Unfortunately that means the buttons can be mapped in any possible way so I don't think there is a point to support such a mapping. The issue here is that your gamepad isn't recognized as a "standard" gamepad, which means this is most likely a limitation of the browser or NW.js that can't handle your particular gamepad with the drivers you're currently using.

It's unfortunately not something that we can fix anytime soon, since we're not really capable to solve issues of the browser itself. Sorry :/

It might still be possible to get the gamepad to run on OSX with the right drivers, though.
Hi lachsen, thanks for your all investigations and suggestions.

It’s naturally not your team’s fault nor something, just my controller isn’t compatible with the API, it seems.

In the future, manual key-mapping for controllers would be awesome..., however. If that’s possible, though.

Unfortunately no drivers are available for my very controller currently, as it is natively already working. So my only option is to re-map buttons by using 3rd party app...
Let’s try. At least it turned out that I have the option and it’s the way, this is one good step.

CrossCode is basically based on: https://w3c.github.io/gamepad/#remapping
This standard mapping, am I right? So if I could re-map my controller to this layout, problem will be solved.

Let me report if I succeeded...
En son nehan tarafından düzenlendi; 23 Eki 2017 @ 21:39
Some progress here.
Updated firmware of my Xbox controller. And it is now detected as below! :

1 Xbox Wireless Controller (STANDARD GAMEPAD Vendor: 045e Product: 02fd) MAPPING standard

Moreover, it works flawlessly on: http://www.cross-code.com/en/start !!! (via Chromium 61.0.3163.100)
Now, only problem is... via Steam, it does not work properly, somehow. Seems buttons recognition is still messed out.

Is there any information I can provide to improve this situation?
En son nehan tarafından düzenlendi; 24 Eki 2017 @ 6:49
lachsen  [geliştirici] 24 Eki 2017 @ 8:33 
Okay... so in that case it seems that the NW.js version we're using for CrossCode might not work afterall. Updating that version might fix this, the problem is that updating NW.js might result in worse Rendering performance (Mac actually uses the relatively recent version 0.14.5. Newer versions have shown to have problems with the render API we're using and overall worse performance).

What you can still do is manually update NW.js and see if it fixes the isssue.
I wrote how that works here:
http://steamcommunity.com/app/368340/discussions/0/2381701715713962046/#c2381701715715487562

That is for a Windows user, but it should be similar for Mac. Also: In your case you should not lose your saves.

Just make sure to download the Mac Version (64bit) of NW.js here: https://nwjs.io/

You can try the newest version or older ones. (your current version should be 0.14.5)
En son lachsen tarafından düzenlendi; 24 Eki 2017 @ 8:34
Hi,

That makes sense and sounds promising. I’ll try and report the result. Thanks for instructions. :)
Okay.

Replaced to NW.js ver 0.26, and now the controller is working flawlessly!!! ...except Select button (which Microsoft calls 'Back' button, and later replaced with 'View' button on Xbox One series). Seems CrossCode is Xbox 360 Controller specific hard-coded, yes? But that's just it, I managed to workaround by mapping the button to 'Tab' key. Not a big problem.
FYI, I haven't noticed any performance decrease, so far.

Now I can finally begin playing the game literally! Thanks for all your replies with courtesy, lachsen.

Although I know, my case might have been rare... but lastly, if I could put some request...

1. Reconsider updating Nw.js for Mac in the future
2. Controller mapping with dependency injection
3. Japanese localization XD

Please consider 'em in the future if possible.
Thanks again for your support lachsen, now I'll just enjoy this awesome game... btw I’m just surprised for this quality of something can be done based on browser-based architecture...
En son nehan tarafından düzenlendi; 26 Eki 2017 @ 7:21
Excuse me, I'm in a same issue with @nehan (wrong detect key,...), but my game is Brawlhalla. I have no idea to repair it. Tried to replace Contents folder but its still not working.
Can you help me?
En son 4prili3s tarafından düzenlendi; 7 Oca 2023 @ 14:42
For anyone who has this issue, simply update NW.js to the newest version. After the update, my Xbox X wireless controller works flawlessly! Oh, don't forget update your controller's firmware to latest.

My Mac environment:
- APPLE M1
- OS: 14.4.1

Update steps:
1. Download the latest NW.js from https://nwjs.io/downloads/. My version is Mac OS X 64-bit v0.86.0.
2. Extract the nwjs-v0.86.0-osx-x64.zip, and you'll get the "nwjs" file.
3. Right-click the "nwjs" file and select "Show Package Contents". You should see the "Contents" folder.
4. Enter the "Contents" folder, where you'll find folders including "Frameworks", "MacOS" and "Resources". We'll use these three folders to update NW.js.
5. Locate the "Cross Code" local folder by right-clicking "Cross Code" in Steam, selecting "Manage", and then "Browse local files". You'll see the "Cross Code" file.
6. Back up the "Cross Code" file. I copied it and named it "Cross Code.bak".
7. Right-click the "Cross Code" file and select "Show Package Contents".
8. Enter the "Contents" folder, where you'll see folders similar to those in step 4.
9. Update the "Frameworks" and "MacOS" folders in step 8 using the folders from step 4. I simply deleted the "Frameworks" and "MacOS" from step 8 and dragged the "Frameworks" and "MacOS" from step 4 into the "Contents" folder of step 8.
10. Copy all files and folders in the "Resources" folder from step 4 and paste them into the "Resources" folder of step 8, updating all files and folders except for "app.nw".
11. Done. You've successfully updated NW.js to the latest version. Enjoy your game!

If you encounter any problems opening the updated "Cross Code" game, try opening it again. The first time I ran the game, there was no response, but it worked upon trying again!
En son Grandy Peng tarafından düzenlendi; 6 Nis 2024 @ 10:37
< >
12 yorumdan 1 ile 12 arası gösteriliyor
Sayfa başına: 1530 50