Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SMAPI breaks Steam controller support on MacOS #598

Open
merlinbk opened this issue Oct 26, 2018 · 12 comments
Open

SMAPI breaks Steam controller support on MacOS #598

merlinbk opened this issue Oct 26, 2018 · 12 comments
Labels
external This ticket is about an issue with (or changes for) something outside SMAPI itself.

Comments

@merlinbk
Copy link

merlinbk commented Oct 26, 2018

This is still a problem on OSX 10.13.6. I can't use input mapper to bypass Steam. Steam suggestions say no changes needed to run. Essentially the controller works fine when run without SMAPI: in this case SMAPI with mods installed and Stardew not reading them. When SMAPI is then reinstalled the mods work but the controller doesn't work correctly.

  • Stardew Valley executed via Steam without SMAPI results in working Switch Pro Controller.
    Everything works correctly.

  • Stardew Valley with SMAPI 2.7 without mods results in Switch Pro Controller not working correctly.
    (The right joystick works. ZR button Works. + button Works. )

  • Stardew Valley with SMAPI 2.7 with mods results in Switch Pro Controller not working correctly.
    (The right joystick works. ZR button Works. + button Works. )

  • I cannot test Stardew Valley without Steam because controller is not read by Stardew Valley without Steam. I have been trying to find a third party app that enables controller functionality within Stardew Valley.

Is there a way to run the mods without SMAPI?

I also tested 2.5 and 2.6.
2.5 would not load/execute.
2.6 had the same controller problem as 2.7.

Running SMAPI 2.7.

@Pathoschild Pathoschild changed the title SMAPI breaks Steam controller support SMAPI breaks Steam controller support on MacOS Oct 26, 2018
@Pathoschild Pathoschild added the external This ticket is about an issue with (or changes for) something outside SMAPI itself. label Oct 26, 2018
@Pathoschild
Copy link
Owner

That's mainly a limitation in the Steam Controller feature, which doesn't handle multi-window games correctly. The only reliable fix I know of is to circumvent it using a third-party app like InputMapper, but as you discovered there's no good one available on Mac. Unfortunately I don't know of a fix for Mac users, but I'll keep this ticket open as a reference. Let me know if you find a solution!

(You can't run most mods without SMAPI, since SMAPI is what enables the changes they make to the game.)

@robbiev
Copy link

robbiev commented Jan 3, 2019

This is an older comment and these steps are outdated. See SMAPI doesn't recognize controller (Steam only) in the troubleshooting guide for the latest instructions. — @Pathoschild


I've managed to get this working without installing third party software to emulate an XBox controller. I've tested with the PS4 controller, and it works with the Steam Link device as well.

  1. Install SMAPI as usual
  2. In your Stardew Valley installation directory (/Users/YOUR USERNAME/Library/Application Support/Steam/SteamApps/common/Stardew Valley/Contents/MacOS), open the file named StardewValley in your text editor

Now, edit the following section of code.

# launch SMAPI
cp StardewValley.bin.osx StardewModdingAPI.bin.osx
open -a Terminal ./StardewModdingAPI.bin.osx $@

Change the last line, so it looks like this:

# launch SMAPI
cp StardewValley.bin.osx StardewModdingAPI.bin.osx
./StardewModdingAPI.bin.osx $@ 2>&1 > ~/smapi.txt

Results:

  1. It will no longer open a console window for SMAPI. Instead, SMAPI output now goes to a file in your user's home directory. The file is called smapi.txt.
  2. Controller support works 🎉

As was said here, I don't think Steam likes the multi-window setup, so the changes I describe here disable multiple windows.

@Pathoschild
Copy link
Owner

@robbiev Thanks! I added instructions on the wiki to do that as a last resort (see Steam: controller not working properly in the troubleshooting guide).

@breathnu2
Copy link

breathnu2 commented Jan 16, 2021

After doing the steps above, how do I enter SMAPI console commands while in-game? Is it still possible?

In my case, I'm using an Xbox 360 controller recognized by 360Controller.

@Pathoschild
Copy link
Owner

@breathnu2 You can use Chat Commands to run console commands in-game in that case. Hiding the console is a last resort though; see Steam: controller not working properly in the troubleshooting guide for more info.

@cookandy
Copy link

cookandy commented Nov 28, 2021

Any ideas on how to accomplish this same fix using the dotnet version for the Stardew Valley 1.5.5 beta?

I was able to suppress all terminal output using the following

  • Edit ~/Library/Application Support/Steam/steamapps/common/Stardew Valley/Contents/MacOS/StardewValley
  • Replace dotnet with /usr/local/share/dotnet/dotnet
  • Comment out the open -W -a Terminal and add /tmp/open-smapi-terminal.sh 2>&1 > ~/smapi-term.txt below it
  • Update dotnet StardewModdingAPI.dll "$@" to /usr/local/share/dotnet/dotnet StardewModdingAPI.dll "$@" 2>&1 > ~/smapi.txt

However, the controller still does not work.

@bpenda
Copy link

bpenda commented Mar 14, 2022

This windowing issue also results in SMAPI being broken on the steam deck.

@Pathoschild
Copy link
Owner

@cookandy The latest instructions are documented at SMAPI doesn't recognize controller (Steam only) in the troubleshooting guide. You only need to edit one line now.

@bpenda Make sure you follow all the steps in the install guide, which includes the steps to hide the console window on Steam Deck.

@soh-999
Copy link

soh-999 commented Apr 24, 2022

Is it any way to make it work with the PS4 controller without installing third party software? Some time ago I tried @robbiev method, and it worked, but since the update some months ago I haven't managed to make it work in any other way! Even if I uninstall SMAPI :(

@Pathoschild
Copy link
Owner

@soh-999 The instructions in robbiev's comment are outdated. The latest instructions are documented at SMAPI doesn't recognize controller (Steam only) in the troubleshooting guide. You only need to edit one line now.

@zaklembarra
Copy link

zaklembarra commented Oct 12, 2024

SKIP_TERMINAL=true doesn't seem to fix it on my end. Bluetooth-connected Xbox One controller to macOS Sonoma 14.6.1. Stardew Valley 1.6.8 & SMAPI 4.0.8

@zaklembarra
Copy link

Was able to fix it by using monogametest beta for 1.6.8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
external This ticket is about an issue with (or changes for) something outside SMAPI itself.
Projects
None yet
Development

No branches or pull requests

8 participants