JuneStepp / OneLauncher

Launcher and Addons Manager for LOTRO and DDO
Other
40 stars 11 forks source link

OneLauncher 2.0.rc1 #54

Closed FibroJedi closed 2 weeks ago

FibroJedi commented 2 weeks ago

Discussed in https://github.com/JuneStepp/OneLauncher/discussions/53

Originally posted by **JuneStepp** July 9, 2024 2.0's ready for testing! Changelog will come with the full release.
This discussion was created from the release OneLauncher 2.0.rc1.

Heya,

Firstly, well done on getting v2 to a testing phase! You've been plugging at it for ages, so it must be good to get the testing ball rolling so to speak.

Secondly, I'm probably getting it installed incorrectly but I can't get neither the Linux nor the Windows ones going.

Linux Setup: Running LOTRO under Lutris with Wine or Vulkan, I installed OneLauncher into the same 'drive' (prefix). Outcome: Launcher loads, but hangs on "Initializing, please wait..." and I can't get to the settings.

[edit] managed to get an error message, where I hadn't before

Traceback (most recent call last): File "/tmp/onefile_6685_1720555476_355635/onelauncher/main_window.py", line 342, in btnAddonManagerSelected AttributeError: 'MainWindow' object has no attribute 'game_launcher_local_config

Windows If I install this as I have any other game, then it doesn't launch at all. All the files copy fine and installation completes fine.

I know I'm not a "normal case" but I got 1.2.9 working (but can't run both launchers in the same LOTRO install apparently), so hoping I can get v2 up and running so I can make the most of your efforts. Thank you again!

[edit] Managed to get an error on the Windows one:

Traceback (most recent call last): File "Z:\home\username\Games\THE-~JET\drive_c\PROG~FBU\ONEL~UK1\onelauncher\async_utils.py", line 44, in launch_guest_run File "Z:\home\username\Games\THE-~JET\drive_c\PROG~FBU\ONEL~UK1\trio\_core\_run.py", line 2395, in start_guest_run File "Z:\home\username\Games\THE-~JET\drive_c\PROG~FBU\ONEL~UK1\trio\_core\_run.py", line 2164, in setup_runner File "Z:\home\username\Games\THE-~JET\drive_c\PROG~FBU\ONEL~UK1\trio\_core\_io_windows.py", line 456, in __init__ File "Z:\home\username\Games\THE-~JET\drive_c\PROG~FBU\ONEL~UK1\trio\_core\_io_windows.py", line 325, in _get_underlying_socket File "Z:\home\username\Games\THE-~JET\drive_c\PROG~FBU\ONEL~UK1\trio\_core\_windows_cffi.py", line 517, in raise_winerror OSError: [WinError 10045] Windows Error 0x%X

(Z drive in my case is the correct drive and is the same as the LOTRO installation directory)

JuneStepp commented 2 weeks ago

Thanks for testing and the kind words! On to a couple questions:

Linux

Windows

Finally, could you attach the log file? On Linux, it should be at ~/.local/state/onelauncher/log/main.log

FibroJedi commented 2 weeks ago

Hey!

Linux

Windows

Log File

Here you go! I get the feeling from my logs (and this one) that I'd have a second stab at the Linux setup wizard if it could recognise I do not have a settings file and it therefore needs to create one. It's like it's looking for a settings file and, not finding one, it's freezing up.

Hope this helps! main.log

FibroJedi commented 2 weeks ago

On a different note: am I supposed to run the Linux one natively in Linux? I apologise if that's a dumb question - I did try that but nothing happened and I think .bin files are Microsoft? Hence running them through Lutris (trying with Wine and Proton).

My latest attempt has this in the log

`OneLauncher 2.0rc1

Usage: C:\Program Files (x86)\OneLauncher\OneLauncher-Linux.bin [OPTIONS] COMMAND [ARGS]... Try 'C:\Program Files (x86)\OneLauncher\OneLauncher-Linux.bin --help' for help. ╭─ Error ──────────────────────────────────────────────────────────────────────╮ │ No such option: -s │ ╰──────────────────────────────────────────────────────────────────────────────╯`

JuneStepp commented 2 weeks ago

Yes, the Linux version should be run as a regular Linux binary. .bin just stands for binary.

The message you got should only happen if you accidentally typed -s after the binary name.

FibroJedi commented 2 weeks ago

Yes, the Linux version should be run as a regular Linux binary. .bin just stands for binary.

Then I can't get it to run on double-click. Should I run this from the Command Line? (I have it set to "allow to run as executable" already).

I tried to run it from the Command Line and had this fun and games:

qt.qpa.plugin: From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin. qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: xcb, minimal, wayland-egl, eglfs, vnc, minimalegl, offscreen, wayland, vkkhrdisplay, linuxfb.

The message you got should only happen if you accidentally typed -s after the binary name.

Oh, I may have had a command I usually send to the native launcher that time (-skiprawdownload). I've removed it now.

I feel like I'm making this more complicated!

JuneStepp commented 2 weeks ago

It doesn't need to be run from the command line, though there is a CLI. Qt6 (the UI library OneLauncher uses) requires " xcb-cursor0 or libxcb-cursor0" to run on X11 as the message kindly explains (and I plan to document). You should be able to run sudo apt install libxcb-cursor0 on most Linux systems to get that.

I have a good idea of where the initial issue might be, but first lets see if you can get the program running normally.

FibroJedi commented 2 weeks ago

Okay here we go:

Initial Setup

Modifying Settings

Notes

Heading to sleep soon, but hope something here was useful.

JuneStepp commented 2 weeks ago

Thanks a ton for the detailed account of things! It really helps.

So, it seems like there's something unexpected happening on your filesystem. Can you provide the output of ls -la in your LOTRO Compendium folder? It would also be helpful to know the layout of where your game folders are. It shouldn't be possible for actually different folders to cause the folder already added error. The check is done by resolving both paths and comparing them.

does the bin need to also install - or prompt to install the libxcb-cursor0 rather than just crashing?

That's a bit tricky, since that dependency is needed to show a prompt in the first place. I could probably implement a check and use a different library to show the message, but won't pursue that for now. The better solution would be to get OneLauncher packaged in normal Linux distribution channels.

is there a setting or can there be a setting to point to where screenshots/settings are stored?

This was a postponed to after 2.0 feature, but I've gone ahead and added it now. The likely difference between your previous setup and using OneLauncher's auto WINE setup, is that OneLauncher uses the system Documents folder, rather than keeping the Documents folder local to the WINE prefix. You can bypass OneLauncher's builtin WINE management in the advanced settings if you need control beyond changing the game settings location.

FibroJedi commented 2 weeks ago

ls -la

I meant "LOTRO Companion" not compendium, but either way it's not LOTRO as we know it, ha.

~/Games/the-lord-of-the-rings-onlinetm/drive_c/Program Files (x86)/LotRO Companion$ ls -la total 3752 drwxrwxrwx 5 username username 4096 May 20 2023 . drwxr-xr-x 10 username username 4096 Jul 9 23:29 .. -rwxrwxrwx 1 username username 19264 Mar 23 2021 api-ms-win-core-console-l1-1-0.dll -rwxrwxrwx 1 username username 18752 Mar 23 2021 api-ms-win-core-datetime-l1-1-0.dll -rwxrwxrwx 1 username username 18752 Mar 23 2021 api-ms-win-core-debug-l1-1-0.dll -rwxrwxrwx 1 username username 18752 Mar 23 2021 api-ms-win-core-errorhandling-l1-1-0.dll -rwxrwxrwx 1 username username 22336 Mar 23 2021 api-ms-win-core-file-l1-1-0.dll -rwxrwxrwx 1 username username 18752 Mar 23 2021 api-ms-win-core-file-l1-2-0.dll -rwxrwxrwx 1 username username 18744 Mar 23 2021 api-ms-win-core-file-l2-1-0.dll -rwxrwxrwx 1 username username 18752 Mar 23 2021 api-ms-win-core-handle-l1-1-0.dll -rwxrwxrwx 1 username username 19264 Mar 23 2021 api-ms-win-core-heap-l1-1-0.dll -rwxrwxrwx 1 username username 18752 Mar 23 2021 api-ms-win-core-interlocked-l1-1-0.dll -rwxrwxrwx 1 username username 19264 Mar 23 2021 api-ms-win-core-libraryloader-l1-1-0.dll -rwxrwxrwx 1 username username 21312 Mar 23 2021 api-ms-win-core-localization-l1-2-0.dll -rwxrwxrwx 1 username username 19264 Mar 23 2021 api-ms-win-core-memory-l1-1-0.dll -rwxrwxrwx 1 username username 18752 Mar 23 2021 api-ms-win-core-namedpipe-l1-1-0.dll -rwxrwxrwx 1 username username 19776 Mar 23 2021 api-ms-win-core-processenvironment-l1-1-0.dll -rwxrwxrwx 1 username username 20800 Mar 23 2021 api-ms-win-core-processthreads-l1-1-0.dll -rwxrwxrwx 1 username username 19256 Mar 23 2021 api-ms-win-core-processthreads-l1-1-1.dll -rwxrwxrwx 1 username username 18240 Mar 23 2021 api-ms-win-core-profile-l1-1-0.dll -rwxrwxrwx 1 username username 19264 Mar 23 2021 api-ms-win-core-rtlsupport-l1-1-0.dll -rwxrwxrwx 1 username username 18752 Mar 23 2021 api-ms-win-core-string-l1-1-0.dll -rwxrwxrwx 1 username username 20800 Mar 23 2021 api-ms-win-core-synch-l1-1-0.dll -rwxrwxrwx 1 username username 19264 Mar 23 2021 api-ms-win-core-synch-l1-2-0.dll -rwxrwxrwx 1 username username 19776 Mar 23 2021 api-ms-win-core-sysinfo-l1-1-0.dll -rwxrwxrwx 1 username username 18752 Mar 23 2021 api-ms-win-core-timezone-l1-1-0.dll -rwxrwxrwx 1 username username 18752 Mar 23 2021 api-ms-win-core-util-l1-1-0.dll -rwxrwxrwx 1 username username 19776 Mar 23 2021 api-ms-win-crt-conio-l1-1-0.dll -rwxrwxrwx 1 username username 22848 Mar 23 2021 api-ms-win-crt-convert-l1-1-0.dll -rwxrwxrwx 1 username username 19264 Mar 23 2021 api-ms-win-crt-environment-l1-1-0.dll -rwxrwxrwx 1 username username 20800 Mar 23 2021 api-ms-win-crt-filesystem-l1-1-0.dll -rwxrwxrwx 1 username username 19776 Mar 23 2021 api-ms-win-crt-heap-l1-1-0.dll -rwxrwxrwx 1 username username 19264 Mar 23 2021 api-ms-win-crt-locale-l1-1-0.dll -rwxrwxrwx 1 username username 27968 Mar 23 2021 api-ms-win-crt-math-l1-1-0.dll -rwxrwxrwx 1 username username 26944 Mar 23 2021 api-ms-win-crt-multibyte-l1-1-0.dll -rwxrwxrwx 1 username username 71488 Mar 23 2021 api-ms-win-crt-private-l1-1-0.dll -rwxrwxrwx 1 username username 19768 Mar 23 2021 api-ms-win-crt-process-l1-1-0.dll -rwxrwxrwx 1 username username 23360 Mar 23 2021 api-ms-win-crt-runtime-l1-1-0.dll -rwxrwxrwx 1 username username 24896 Mar 23 2021 api-ms-win-crt-stdio-l1-1-0.dll -rwxrwxrwx 1 username username 24896 Mar 23 2021 api-ms-win-crt-string-l1-1-0.dll -rwxrwxrwx 1 username username 21312 Mar 23 2021 api-ms-win-crt-time-l1-1-0.dll -rwxrwxrwx 1 username username 19256 Mar 23 2021 api-ms-win-crt-utility-l1-1-0.dll drwxrwxrwx 8 username username 4096 Jan 27 12:27 app drwx------ 6 username username 4096 Jan 27 12:27 GLCache -rwxrwxrwx 1 username username 20992 Mar 23 2021 'LotRO Companion.exe' -rwxrwxrwx 1 username username 3774 Mar 23 2021 'LotRO Companion.ico' lrwxrwxrwx 1 username username 125 May 20 2023 lotro_folder -> '/home/username/Games/the-lord-of-the-rings-onlinetm/drive_c/Program Files (x86)/StandingStoneGames/The Lord of the Rings Online' -rwxrwxrwx 1 username username 627368 Mar 23 2021 msvcp140.dll -rwxrwxrwx 1 username username 827728 Mar 23 2021 msvcr100.dll -rwxrwxrwx 1 username username 293376 Mar 23 2021 packager.dll drwxrwxrwx 4 username username 4096 Nov 19 2022 runtime -rwxrwxrwx 1 username username 1001792 Mar 23 2021 ucrtbase.dll -rwxrwxrwx 1 username username 87224 Mar 23 2021 vcruntime140.dll

Game Folders

Okay, as I mentioned, I use Lutris and it creates/manages the prefixes. They are all stored in /home/username/Games/ but, for LOTRO Companion to work it needed to be installed alongside LOTRO, not in its own prefix (as it couldn't detect LOTRO running). So in:

/home/username/Games/the-lord-of-the-rings-onlinetm/drive_c/Program Files (x86)/

I have the "StandingStone Games", "LotRO Companion" and currently "OneLauncher" folders. The only thing in the OneLauncher folder is the .bin though.

Re: Bullroarer, it means I have it installed here: /home/username/Games/bullroarer/ rather than alongside LOTRO. whether or not that was the correct way to install it, I did it that way so I didn't accidentally mess up my live LOTRO.

Your Other Questions/Observations

The better solution would be to get OneLauncher packaged in normal Linux distribution channels.

It would, but that's still extra work for you. And you have enough already, I'd think!

This was a postponed to after 2.0 feature, but I've gone ahead and added it now.

Is there a new .bin for me to try this, then?

You can bypass OneLauncher's builtin WINE management in the advanced settings if you need control beyond changing the game settings location.

I'll have a look at that. Given my previous setup had OneLauncher as its own "game" but pointed to the LOTRO prefix, v2 is quite a change to me. I didn't realise the way I had before was, essentially, a fluke and not "as intended", ha. So, I'll figure it.

Thanks!

FibroJedi commented 2 weeks ago

Note: I was able to use the manual Wine setup (once I figured out where the heck my wine executable was!). So, in my case (using the prefix/wine I am using in Lutris):

Doing this got my plugins etc sorted. But that doesn't negate the need for the setting for OneLauncher's in-built Wine. But it does confirm making the wine settings yourself works, even if your wine executable is buried deeeeep!

[Edit] I'm actually feeling like using the .bin actually makes LOTRO run smoother than through the Lutris wrapper. Don't know how to prove it, but it feels more responsive. Nice work.

[Edit 2] In the About dialog you have mentioned the CLI Launcher by SNy twice. Totally minor, but just spotted it.

JuneStepp commented 2 weeks ago

Looks like what probably happened with your game folder is that OneLauncher found the symlink to the non preview LOTRO in your LOTRO Companion directory before the normal path to the game directory. It was indeed already added; just not from where you'd expect it. I'll look into having OneLauncher favor paths that are more likely to be the expected one. It's a bit tricky, since I want to respect peoples` symlink organization

This was a postponed to after 2.0 feature, but I've gone ahead and added it now.

Is there a new .bin for me to try this, then

Here ya go. The option is in the advanced game settings. Keep in mind that with these changes, the game settings folder does have to be configured when not default, even with custom WINE settings.

[Edit] I'm actually feeling like using the .bin actually makes LOTRO run smoother than through the Lutris wrapper. Don't know how to prove it, but it feels more responsive. Nice work.

Trade secrets.

In the About dialog you have mentioned the CLI Launcher by SNy twice. Totally minor, but just spotted it.

It actually is quite important, since a different credit is supposed to be where the duplicate is. Thanks for catching that! Can't believe I never noticed.

FibroJedi commented 2 weeks ago

Keep in mind that with these changes, the game settings folder does have to be configured when not default, even with custom WINE settings.

Noted. Would it be worth adding a prompt if people change the WINE settings to get them to change the settings folder at the same time?

Trade secrets.

Haha, you're welcome to them. I do enough of my own coding, I don't need to know the details of yours. I'm just happy with the outcome.

Thanks for catching that!

You're welcome. Sometimes "clicking all the things" can be helpful!

JuneStepp commented 2 weeks ago

Noted. Would it be worth adding a prompt if people change the WINE settings to get them to change the settings folder at the same time?

That sort of stuff is why it's an advanced option. People who are familiar with WINE should be aware of how they've configured their prefix documents folder among other things. Having to update the location in OneLauncher isn't an always thing.

JuneStepp commented 2 weeks ago

System requirements added to README.md: https://github.com/JuneStepp/OneLauncher/tree/develop?tab=readme-ov-file#system-requirements