Idol Manager

Idol Manager

View Stats:
How to properly apply 'BepInEx HarmonyIntegration Patch' on Linux?
I've followed the instructions and placed the contents of the zip file in the 'Idol Manager' file.
But the the plugin tells me it's not installed/working.

Only thing step I believe I may be stuck at is giving the 'run_bepinex.sh' file executable permission. I open the 'Idol Manger' file in terminal but I most likely am not properly applying the 'chmod u+x run_bepinex.sh' command properly.
Originally posted by Illusio0n ☯:
#Fixed Linux (run_bepinex.sh) #!/bin/sh # BepInEx running script # # This script is used to run a Unity game with BepInEx enabled. # # Usage: Configure the script below and simply run this script when you want to run your game modded. a="/$0"; a=${a%/*}; a=${a#/}; a=${a:-.}; BASEDIR=$(cd "$a"; pwd -P) executable_name="IdolManager.x86_64" # The rest is automatically handled by BepInEx # Whether or not to enable Doorstop. Valid values: TRUE or FALSE export DOORSTOP_ENABLE=TRUE # What .NET assembly to execute. Valid value is a path to a .NET DLL that mono can execute. export DOORSTOP_INVOKE_DLL_PATH="$BASEDIR/BepInEx/core/BepInEx.Preloader.dll" # If specified, Doorstop will load core libraries from this folder instead of the normal Managed folder # Mainly usable to unstrip assemblies in some games export DOORSTOP_CORLIB_OVERRIDE_PATH="$BASEDIR/UnstrippedLibs" # ----- DO NOT EDIT FROM THIS LINE FORWARD ------ # ----- (unless you know what you're doing) ------ # Special case: program is launched via Steam # In that case rerun the script via their bootstrapper to ensure Steam overlay works if [ "$2" = "SteamLaunch" ]; then "$1" "$2" "$3" "$4" "$5" "$6" "$0" "$7" exit fi doorstop_libs="$BASEDIR/doorstop_libs" arch="" executable_path="$BASEDIR/${executable_name}" lib_postfix="so" # Special case: if there is an arg, use that as executable path # Linux: arg is path to the executable # MacOS: arg is path to the .app folder which we need to resolve to the exectuable if [ -n "$1" ]; then case $os_type in Linux*) executable_path="$1" ;; esac fi abs_path() { echo "$(cd "$(dirname "$1")" && pwd)/$(basename "$1")" } _readlink() { # relative links with readlink (without -f) do not preserve the path info ab_path="$(abs_path "$1")" link="$(readlink "${ab_path}")" case $link in /*);; *) link="$(dirname "$ab_path")/$link";; esac echo "$link" } resolve_executable_path () { e_path="$(abs_path "$1")" while [ -L "${e_path}" ]; do e_path=$(_readlink "${e_path}"); done echo "${e_path}" } executable_path=$(resolve_executable_path "${executable_path}") echo "${executable_path}" executable_type=$(LD_PRELOAD="" file -b "${executable_path}"); case $executable_type in *PE32*) echo "The executable is a Windows executable file. You must use Wine/Proton and BepInEx for Windows with this executable." echo "Uninstall BepInEx for *nix and install BepInEx for Windows instead." echo "More info: https://docs.bepinex.dev/articles/advanced/steam_interop.html#protonwine" exit 1 ;; *64-bit*) arch="x64" ;; *32-bit*|*i386*) arch="x86" ;; *) echo "Cannot identify executable type (got ${executable_type})!" echo "Please create an issue at https://github.com/BepInEx/BepInEx/issues." exit 1 ;; esac doorstop_libname=libdoorstop_${arch}.${lib_postfix} export LD_LIBRARY_PATH="${doorstop_libs}":${LD_LIBRARY_PATH} export LD_PRELOAD=$doorstop_libname:$LD_PRELOAD export DYLD_LIBRARY_PATH="${doorstop_libs}" export DYLD_INSERT_LIBRARIES="${doorstop_libs}/$doorstop_libname" "${executable_path}" "$@"
< >
Showing 1-15 of 18 comments
Tel Dec 4, 2024 @ 7:48am 
I made the plugin but unfortunately, I don't have Linux to test it on.

You can try first to just install bepinex from their official website with their official instructions. See how that goes.
Tel Dec 4, 2024 @ 8:01am 
Ah, I thought of something. Open run_bepinex.sh and fill in the executable_name field near the top of the file. Let me know how it goes.
ImperialForce9 Dec 4, 2024 @ 8:11am 
Originally posted by Tel:
Ah, I thought of something. Open run_bepinex.sh and fill in the executable_name field near the top of the file. Let me know how it goes.

So if I'm doing it right, I after extracting the file, I then move all the files in the IM-HM folder to the 'Idol Manager' folder?

And you are asking me to fill in the "exectuable_name" field with '.exe' that runs Idol Manager? (filling it in with "IM.exe")
Tel Dec 4, 2024 @ 8:14am 
Yeah try IM.exe
ImperialForce9 Dec 4, 2024 @ 8:19am 
Originally posted by Tel:
Yeah try IM.exe
No difference sadly, crashes on startup as usual.

Do I need to download BepInEx for IM-HM to work or am I doing something else wrong?
Tel Dec 4, 2024 @ 8:27am 
bepinex is included already in the zip file of im-hm.

Try running run_bepinex.sh from the terminal so that you can see errors
ImperialForce9 Dec 4, 2024 @ 8:50am 
Originally posted by Tel:
bepinex is included already in the zip file of im-hm.

Try running run_bepinex.sh from the terminal so that you can see errors

Replaced account names with 'user'
'deiban-installation' is just the how the file is for Linux at least for me.

chdir "/home/'user'/.steam/debian-installation/steamapps/common/Idol Manager"
ERROR: ld.so: object '/home/user/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
/bin/sh: 1: ./run_bepinex.sh: Permission denied
Game Recording - would start recording game 821880, but recording for this game is disabled
Adding process 4842 for gameID 821880
Game Recording - game stopped [gameid=821880]
Removing process 4842 for gameID 821880
Last edited by ImperialForce9; Dec 4, 2024 @ 9:14am
Tel Dec 4, 2024 @ 9:18am 
it says permission denied, which seems to suggest the chmod command didn't work
ImperialForce9 Dec 4, 2024 @ 9:28am 
Originally posted by Tel:
it says permission denied, which seems to suggest the chmod command didn't work

So that does seem to be my main issue.

I open 'Idol Manager' in terminal and try to run the command that should give it "Executable Permissions" but it doesn't seem to work.
Instead, a neat thing I can do on Linux is right click on .sh/.exe files and simply click an "on/off" button that gives it "Executable as Program"

As I do give the 'run_bepinex.sh' executable as program and try running the game, it still crashes and outputs this:


chdir "/home/'user'/.steam/debian-installation/steamapps/common/Idol Manager"
ERROR: ld.so: object '/home/'user'/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/'user'/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Game Recording - would start recording game 821880, but recording for this game is disabled
Adding process 5743 for gameID 821880
ERROR: ld.so: object '/home/'user'/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/'user'/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Adding process 5744 for gameID 821880
ERROR: ld.so: object '/home/'user'/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Adding process 5746 for gameID 821880
Adding process 5750 for gameID 821880
/home/'user'/.steam/debian-installation/ubuntu12_32/steam-launch-wrapper
ERROR: ld.so: object '/home/'user'/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
steam-launch-wrapper: Unrecognised option /home/'user'/.steam/debian-installation/ubuntu12_32/steam-launch-wrapper
Adding process 5751 for gameID 821880
Adding process 5753 for gameID 821880
Game Recording - game stopped [gameid=821880]
Removing process 5753 for gameID 821880
Removing process 5751 for gameID 821880
Removing process 5750 for gameID 821880
Removing process 5746 for gameID 821880
Removing process 5744 for gameID 821880
Removing process 5743 for gameID 821880
Last edited by ImperialForce9; Dec 4, 2024 @ 9:29am
Tel Dec 4, 2024 @ 9:43am 
The problem is here I think
steam-launch-wrapper: Unrecognised option /home/'user'/.steam/debian-installation/ubuntu12_32/steam-launch-wrapper

It may be the launch option in steam is incorrect. It should be:
./run_bepinex.sh %command%
ImperialForce9 Dec 4, 2024 @ 9:52am 
What I've typed into Launch options: ./run_bepinex.sh %command%

Still crashes on startup
wtsfno Jan 7 @ 7:31pm 
Welcome to Linux gaming. Each game either works, or is a research project. I spent way too many hours trying to figure this out. I managed to get the windows version of the IM-HarmonyIntegration working through Proton. Wanted to write this down before I forget it.

The instructions from the BepInEx docs helped, but they were dated slightly. Also settings/data from the native install didn't appear to sync/work with the proton version.

Hope these instructions help/work for you.

Prerequisites:
  • Protontricks (flatpack)
  • Flatseal
  • Wine
  • Winetricks

Steps:
  1. Install prerequisites (including the game!)
  2. Open properties for the game
  3. Open the Compatibility tab.
  4. Check "Force the use of a specific Steam Play compatibility tool."
  5. Select the latest proton version. - I selected Proton 9.0-4, but your mileage may vary.
  6. let the game update and the libraries download.
  7. Install the windows version of the IM-HarmonyIntegration to your game directory
  8. Open Flatseal and select Protontricks
  9. Under Filesystem>Other files, add the directory for your steam apps ex: /home/[user]/Drives/Steam/Games/steamapps
  10. Open proton tricks, and select your steam installation
  11. Select Idol Manager from the list.
  12. Select "Select default wineprefix" and push ok
  13. Select "Run winecfg" and push ok.
  14. In winecfg select the "Libraries" tab.
  15. Under "New override for library" select "winhttp"
  16. Click the add button.
  17. Click Apply
  18. $$$

References:
Last edited by wtsfno; Jan 7 @ 7:33pm
The author of this thread has indicated that this post answers the original topic.
Illusio0n ☯ Apr 22 @ 4:51pm 
#Fixed Linux (run_bepinex.sh) #!/bin/sh # BepInEx running script # # This script is used to run a Unity game with BepInEx enabled. # # Usage: Configure the script below and simply run this script when you want to run your game modded. a="/$0"; a=${a%/*}; a=${a#/}; a=${a:-.}; BASEDIR=$(cd "$a"; pwd -P) executable_name="IdolManager.x86_64" # The rest is automatically handled by BepInEx # Whether or not to enable Doorstop. Valid values: TRUE or FALSE export DOORSTOP_ENABLE=TRUE # What .NET assembly to execute. Valid value is a path to a .NET DLL that mono can execute. export DOORSTOP_INVOKE_DLL_PATH="$BASEDIR/BepInEx/core/BepInEx.Preloader.dll" # If specified, Doorstop will load core libraries from this folder instead of the normal Managed folder # Mainly usable to unstrip assemblies in some games export DOORSTOP_CORLIB_OVERRIDE_PATH="$BASEDIR/UnstrippedLibs" # ----- DO NOT EDIT FROM THIS LINE FORWARD ------ # ----- (unless you know what you're doing) ------ # Special case: program is launched via Steam # In that case rerun the script via their bootstrapper to ensure Steam overlay works if [ "$2" = "SteamLaunch" ]; then "$1" "$2" "$3" "$4" "$5" "$6" "$0" "$7" exit fi doorstop_libs="$BASEDIR/doorstop_libs" arch="" executable_path="$BASEDIR/${executable_name}" lib_postfix="so" # Special case: if there is an arg, use that as executable path # Linux: arg is path to the executable # MacOS: arg is path to the .app folder which we need to resolve to the exectuable if [ -n "$1" ]; then case $os_type in Linux*) executable_path="$1" ;; esac fi abs_path() { echo "$(cd "$(dirname "$1")" && pwd)/$(basename "$1")" } _readlink() { # relative links with readlink (without -f) do not preserve the path info ab_path="$(abs_path "$1")" link="$(readlink "${ab_path}")" case $link in /*);; *) link="$(dirname "$ab_path")/$link";; esac echo "$link" } resolve_executable_path () { e_path="$(abs_path "$1")" while [ -L "${e_path}" ]; do e_path=$(_readlink "${e_path}"); done echo "${e_path}" } executable_path=$(resolve_executable_path "${executable_path}") echo "${executable_path}" executable_type=$(LD_PRELOAD="" file -b "${executable_path}"); case $executable_type in *PE32*) echo "The executable is a Windows executable file. You must use Wine/Proton and BepInEx for Windows with this executable." echo "Uninstall BepInEx for *nix and install BepInEx for Windows instead." echo "More info: https://docs.bepinex.dev/articles/advanced/steam_interop.html#protonwine" exit 1 ;; *64-bit*) arch="x64" ;; *32-bit*|*i386*) arch="x86" ;; *) echo "Cannot identify executable type (got ${executable_type})!" echo "Please create an issue at https://github.com/BepInEx/BepInEx/issues." exit 1 ;; esac doorstop_libname=libdoorstop_${arch}.${lib_postfix} export LD_LIBRARY_PATH="${doorstop_libs}":${LD_LIBRARY_PATH} export LD_PRELOAD=$doorstop_libname:$LD_PRELOAD export DYLD_LIBRARY_PATH="${doorstop_libs}" export DYLD_INSERT_LIBRARIES="${doorstop_libs}/$doorstop_libname" "${executable_path}" "$@"
Last edited by Illusio0n ☯; Apr 22 @ 5:16pm
wtsfno Apr 28 @ 4:53pm 
Originally posted by Illusio0n ☯:

Thank you for the fix! Knew there had to be a native method, but editing the script was a little intimidating.
Last edited by wtsfno; Apr 28 @ 5:02pm
Originally posted by Illusio0n ☯:

chdir "/home/user/.local/share/Steam/steamapps/common/Idol Manager"
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Game Recording - would start recording game 821880, but recording for this game is disabled
Adding process 5904 for gameID 821880
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Adding process 5905 for gameID 821880
/home/user/.local/share/Steam/steamapps/common/Idol Manager/IdolManager.x86_64
Cannot identify executable type (got cannot open `/home/user/.local/share/Steam/steamapps/common/Idol Manager/IdolManager.x86_64' (No such file or directory))!
Please create an issue at https://github.com/BepInEx/BepInEx/issues.
Adding process 5910 for gameID 821880
Adding process 5911 for gameID 821880
Game Recording - game stopped [gameid=821880]
Removing process 5911 for gameID 821880
Removing process 5910 for gameID 821880
Removing process 5905 for gameID 821880
Removing process 5904 for gameID 821880

I'm probably still doing something wrong

I look back into the 'run_bepinex.sh' file for potential issues, at the
'executable_name="IdolManager.x86_64"' line its asking for the executable.

But I see no executable named 'IdolManger.x86_64' the closest thing I presume to be an executable for the game is 'IM.exe' so what else am I missing? changing the above line to 'executable_name="IM.exe"' has not noticeable effect
Last edited by ImperialForce9; Apr 29 @ 12:00am
< >
Showing 1-15 of 18 comments
Per page: 1530 50