Momodora: Reverie Under the Moonlight

Momodora: Reverie Under the Moonlight

View Stats:
 This topic has been pinned, so it's probably important
rdein  [developer] Feb 15, 2018 @ 8:50am
Bugs in Linux/Mac Release
Troubleshooting - Linux

Issue: Achievements aren't unlocking
Solution: Try launching the game from the terminal

--

Current issues under investigation

Mac/Linux (?)
-Crash when beating Choir boss http://steamcommunity.com/app/428550/discussions/0/2860219962082753445/?ctp=5#c2860219962089144396

Mac
-Game crash related to gamepad: http://steamcommunity.com/app/428550/discussions/0/2860219962082753445/?ctp=5#c2860219962089156588

Linux
-libcurl version `CURL_OPENSSL_3' not found http://steamcommunity.com/app/428550/discussions/0/2860219962082753445/?ctp=4#c2860219962086146590
Last edited by rdein; May 7, 2018 @ 11:13am
< >
Showing 46-60 of 244 comments
sarcastic cat Feb 16, 2018 @ 4:39am 
Originally posted by rdein:
Originally posted by sarcastic cat:

Sure it would work. I kinda provided almost exactly this solution above.

What he is saying is that the STEAM launch option set internally for all users doesn't seem to work for Linux. Apparently you have to set it manually. But the team is going to look into making a script to launch the game with next week.
While we're talking about launch script:
Can you create lib dir, put inside
libcrypto.so.1.0.0 libcurl.so.4 libssl.so.1.0.0 libsteam_api.so
(you can get them from steam runtime) and add
export LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH
into launch script.

This would allow to launch game from console, which would allow to see logs.
kekstee Feb 16, 2018 @ 4:57am 
[Linux FIX] libcurl version `CURL_OPENSSL_3' not found

On some distros, like Arch, libcurl.so.4 is built against gnutls, which prevents native Steam from running the game. To fix this, you need to convince the game to use libcurl.so.3 instead, else the game will crash with the error:

$ ./MomodoraRUtM ./MomodoraRUtM: /usr/lib32/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by ./MomodoraRUtM)

Option 1
Since it's just one library it's easy to preload another version of the library as launch option (properties: "General>Set Launch Options..."):
LD_PRELOAD=/usr/lib32/libcurl.so.3 %command%
The path might differ depending on your installation.

Option 2
Symlink the correct library and search the game directory for libraries.
  1. Open a terminal in or cd to the game directory ("steamapps/common/Momodora RUtM")

  2. Create a symlink to the 32bit system library ending in .3 but name it .4
    ln -s /usr/lib32/libcurl.so.3 ./libcurl.so.4
    The game folder now contains (ls -l):
    assets libcurl.so.4 -> /usr/lib32/libcurl.so.3 libsteam_api.so MomodoraRUtM

  3. Make the game prefer libraries in its own directory when loading.
    The update-safe way to do this without modifying the game files would be to go to the game properties and set "General>Set Launch Options..." to
    LD_LIBRARY_PATH=$(pwd):$LD_LIBRARY_PATH %command%
    What this does is add the game folder to the beginning of the library search path list, so our symlink from the previous step is used.

//Update: Thanks to sarcastic cat for further explanation.

Last edited by kekstee; Feb 17, 2018 @ 3:19pm
rdein  [developer] Feb 16, 2018 @ 4:59am 
I'll merge this with the Linux Bugs thread so we can have it all in one place!
eggman Feb 16, 2018 @ 7:32am 
If I go left at the start and jump off the boat and die, I get the below message when i click retry.

https://imgur.com/a/vIbFL
sarcastic cat Feb 16, 2018 @ 8:39am 
Originally posted by eggman:
If I go left at the start and jump off the boat and die, I get the below message when i click retry.

https://imgur.com/a/vIbFL
This is the same locale bug as with savegames.
rdein  [developer] Feb 16, 2018 @ 8:39am 
Originally posted by eggman:
If I go left at the start and jump off the boat and die, I get the below message when i click retry.

https://imgur.com/a/vIbFL

That's the same issue as you posted previously, actually. Try setting up the launch options as noted in some posts in page 2 and it should hopefully fix the save problem
khandha Feb 16, 2018 @ 9:04am 
Hey rdein, thanks so much for the Linux release! I really appreciate it :gonheart:

I'm having a bug with the controller support.

I think it's just using the first gamepad it finds, which unfortunately for me is a problem because for some reason in Linux my mouse shows up as a gamepad and is always first in the list. So when I get into the game it's acting as if I'm always pressing down-and-right on the d-pad.

Here's the console output dealing with the gamepads:
GAMEPAD: Initialising Ubuntu support Attempting to set gamepadcount to 4 GAMEPAD: Enumerating 3 GAMEPAD: device name Corsair Corsair M65 RGB Gaming Mouse GAMEPAD: buttons - 32, axes - 24 GAMEPAD: Enumerating 4 GAMEPAD: device name Sony Interactive Entertainment Wireless Controller GAMEPAD: buttons - 13, axes - 8

I know it's a weird scenario, so maybe there could just be an option in the config file to manually override the gamepad "slot" that it uses?

I actually ran into this same issue with Risk of Rain in Linux (which is also using GameMaker: Studio) and they completely ignored my bug reports. I still can't play it to this day :lilimsob:
rdein  [developer] Feb 16, 2018 @ 9:06am 
Originally posted by svanheulen:
Hey rdein, thanks so much for the Linux release! I really appreciate it :gonheart:

I'm having a bug with the controller support.

I think it's just using the first gamepad it finds, which unfortunately for me is a problem because for some reason in Linux my mouse shows up as a gamepad and is always first in the list. So when I get into the game it's acting as if I'm always pressing down-and-right on the d-pad.

Here's the console output dealing with the gamepads:
GAMEPAD: Initialising Ubuntu support Attempting to set gamepadcount to 4 GAMEPAD: Enumerating 3 GAMEPAD: device name Corsair Corsair M65 RGB Gaming Mouse GAMEPAD: buttons - 32, axes - 24 GAMEPAD: Enumerating 4 GAMEPAD: device name Sony Interactive Entertainment Wireless Controller GAMEPAD: buttons - 13, axes - 8

I know it's a weird scenario, so maybe there could just be an option in the config file to manually override the gamepad "slot" that it uses?

I actually ran into this same issue with Risk of Rain in Linux (which is also using GameMaker: Studio) and they completely ignored my bug reports. I still can't play it to this day :lilimsob:

I can't do anything about it myself, but this will looked into next week! My apologies for the inconvenience.
Last edited by rdein; Feb 16, 2018 @ 9:06am
sarcastic cat Feb 16, 2018 @ 9:23am 
Originally posted by svanheulen:
Hey rdein, thanks so much for the Linux release! I really appreciate it :gonheart:

I'm having a bug with the controller support.

I think it's just using the first gamepad it finds, which unfortunately for me is a problem because for some reason in Linux my mouse shows up as a gamepad and is always first in the list. So when I get into the game it's acting as if I'm always pressing down-and-right on the d-pad.

Here's the console output dealing with the gamepads:
GAMEPAD: Initialising Ubuntu support Attempting to set gamepadcount to 4 GAMEPAD: Enumerating 3 GAMEPAD: device name Corsair Corsair M65 RGB Gaming Mouse GAMEPAD: buttons - 32, axes - 24 GAMEPAD: Enumerating 4 GAMEPAD: device name Sony Interactive Entertainment Wireless Controller GAMEPAD: buttons - 13, axes - 8

I know it's a weird scenario, so maybe there could just be an option in the config file to manually override the gamepad "slot" that it uses?

I actually ran into this same issue with Risk of Rain in Linux (which is also using GameMaker: Studio) and they completely ignored my bug reports. I still can't play it to this day :lilimsob:
Sadly, it looks like GameMaker completely ignores anything beyond js0. Internetz are full of such reports for different games.
You can "fix" it by rm-ing /dev/input/js0 and symlinking /dev/input/js1 (or actual gamepad device) to it. For a more permanent solution you can try https://github.com/denilsonsa/udev-joystick-blacklist
rdein  [developer] Feb 16, 2018 @ 9:31am 
I opened the source code (Windows, but this part should be the same for all platforms) real quick and we have it like this:

// Current gamepad_device
gamepad_device = 0;

// Set first available gamepad as controlling gamepad
var gp_num = gamepad_get_device_count();
show_debug_message('gamepad get device count: ' + string(gp_num))
for (var i = 0; i < gp_num; i++;)
{
if gamepad_is_connected(i)
{
gamepad_device = i;
show_debug_message('gamepad connected on slot ' + string(i))
break;
}
else
{
show_debug_message('gamepad not connected!!!!')
}
}

(Please excuse the very unprofessional debug messages. EDIT: and the lack of formatting, thanks Steam)

If you are familiar with Game Maker Studio you'll notice that it's basically a copy and paste from the documentation, which is the recommended practice.

What this does, though, is that it only picks one device to act as gamepad. At least that's what should be happening. The reports here are that mouse AND gamepad are being recognized at the same time, which shouldn't be possible as the gamepad_device variable can only hold one value (0 for mouse, or 1 for gamepad). That's why this is a bit confusing.

I could of course try to force it to be 1 by default, or 2 or whatever number the user wants, but would that even fix this issue?
Last edited by rdein; Feb 16, 2018 @ 9:34am
sarcastic cat Feb 16, 2018 @ 9:41am 
Originally posted by rdein:
I opened the source code (Windows, but this part should be the same for all platforms) real quick and we have it like this:

// Current gamepad_device
gamepad_device = 0;

// Set first available gamepad as controlling gamepad
var gp_num = gamepad_get_device_count();
show_debug_message('gamepad get device count: ' + string(gp_num))
for (var i = 0; i < gp_num; i++;)
{
if gamepad_is_connected(i)
{
gamepad_device = i;
show_debug_message('gamepad connected on slot ' + string(i))
break;
}
else
{
show_debug_message('gamepad not connected!!!!')
}
}

(Please excuse the very unprofessional debug messages. EDIT: and the lack of formatting, thanks Steam)

If you are familiar with Game Maker Studio you'll notice that it's basically a copy and paste from the documentation, which is the recommended practice.

What this does, though, is that it only picks one device to act as gamepad. At least that's what should be happening. The reports here are that mouse AND gamepad are being recognized at the same time, which shouldn't be possible as the gamepad_device variable can only hold one value (0 for mouse, or 1 for gamepad). That's why this is a bit confusing.

I could of course try to force it to be 1 by default, or 2 or whatever number the user wants, but would that even fix this issue?

Nope, but that would probably break gamepad for everyone else.
The real problem is that on Linux some mouses (and probably other devices) are presented both as mouse and as gamepad, e.g. as two different devices. So gamemaker (and your code) will rightfully think that it's a gamepad. I can't really think of any way of fixing it from gamemaker/momodora side, except whitelist or blacklist of devices.
That's really a linux bug, rather than GM/Momodora.
khandha Feb 16, 2018 @ 9:43am 
Originally posted by rdein:
I opened the source code (Windows, but this part should be the same for all platforms) real quick and we have it like this:

// Current gamepad_device
gamepad_device = 0;

// Set first available gamepad as controlling gamepad
var gp_num = gamepad_get_device_count();
show_debug_message('gamepad get device count: ' + string(gp_num))
for (var i = 0; i < gp_num; i++;)
{
if gamepad_is_connected(i)
{
gamepad_device = i;
show_debug_message('gamepad connected on slot ' + string(i))
break;
}
else
{
show_debug_message('gamepad not connected!!!!')
}
}

(Please excuse the very unprofessional debug messages. EDIT: and the lack of formatting, thanks Steam)

If you are familiar with Game Maker Studio you'll notice that it's basically a copy and paste from the documentation, which is the recommended practice.

What this does, though, is that it only picks one device to act as gamepad. At least that's what should be happening. The reports here are that mouse AND gamepad are being recognized at the same time, which shouldn't be possible as the gamepad_device variable can only hold one value (0 for mouse, or 1 for gamepad). That's why this is a bit confusing.

I could of course try to force it to be 1 by default, or 2 or whatever number the user wants, but would that even fix this issue?
I think my issue is that Linux actually sets up my mouse as a joystick/gamepad, that's why the game is selecting it. From what "sarcastic cat" said, it's probably not fixable on your end, but I'll test out the fix they suggested and let you know.
rdein  [developer] Feb 16, 2018 @ 9:43am 
Did I misread it then? I thought it was reported that gamepads were working, but on top of it there was extra mouse input that was also affecting movement. If it's only one or another, it could be an option in the config.ini for the user to pick the "slot".
rdein  [developer] Feb 16, 2018 @ 9:46am 
Originally posted by sarcastic cat:
Nope, but that would probably break gamepad for everyone else.

We could make it optional just for those players who have this issue in the first place. It will require manual editing of a file on their end. For everyone else, the game will pick the first gamepad it finds normally (as it is now).
Last edited by rdein; Feb 16, 2018 @ 9:47am
sarcastic cat Feb 16, 2018 @ 9:48am 
Originally posted by rdein:
Did I misread it then? I thought it was reported that gamepads were working, but on top of it there was extra mouse input that was also affecting movement. If it's only one or another, it could be an option in the config.ini for the user to pick the "slot".
Yep, option in config should work.
< >
Showing 46-60 of 244 comments
Per page: 15 30 50