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

Add League of Legends installer #156

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

UpsettingBoy
Copy link

@UpsettingBoy UpsettingBoy commented Oct 26, 2022

Type of change

  • New installer
  • Manifest fix
  • Other

Whas This Tested Using a Local Repository?

  • Yes
  • No

Right know it still need some tweaks that I don't know how to properly make :(

  • Args are not set in program once installed
  • Env variables are not set once installed
  • DLL overrides are not set once installed
  • Synchronization is not set once installed

Also, the installation process has a small quirk: the user MUST NOT log in while installation. After the download, the client must be closed, and, only then, you can log in.

Since the last Flatpak release (v1.15), modify_ldt is allowed, so League can be finally played in Flatpak. While this release (current in pre-release) is not mainstreamed, I suggest not merging this PR yet (warn somehow clear for users).

I think this looks great, although the part of making sure that the user does not log in before it properly finish installing/downloading is a bit worrisome.

@mirkobrombin
Copy link
Member

Nice! I can implement a way to kill the application at some point. Are there any trigger we can use for this purpose? Like, is the login in a different process/executable, so I can stop it when came alive?

@UpsettingBoy
Copy link
Author

I don't think so. RiotClientServices.exe handles both login and download. After login a new process will open, but at that point, if the user did not close the launcher after downloading, the installation is broken. It is also problematic that you can log in while downloading!

Taking a look at the Lutris installer, they warn you before the installation starts. I think I can do that with a script, but I really don't wanna.

@mirkobrombin
Copy link
Member

I can implement a native way to show a dialog. Looks like the only solution rn.

@UpsettingBoy
Copy link
Author

Which parameters are settleable? It seems the runtime cannot be chosen from the installer, neither if gamescope is enabled.

@nobodywatchin
Copy link

nobodywatchin commented Mar 9, 2023

I've gotten league working, but I was able to walk through the install process start to finish, and the game has even been updated through the Riot Client and it still runs well. I used lutris-ge-lol-7.14-1by adding it with Protonup-qt.

Here's my config:

Arch: win64
CompatData: ''
Creation_Date: '2023-02-01 14:44:54.272261'
Custom_Path: false
DLL_Overrides: {}
DXVK: dxvk-2.0-1-196fefe
Environment: Custom
Environment_Variables: {}
External_Programs:
47eac07b-34cb-4426-8b14-a812ec5f805d:
arguments: ''
dxvk: true
dxvk_nvapi: false
executable: RiotClientServices.exe
folder: /home/user/.var/app/com.usebottles.bottles/data/bottles/bottles/League-of-Legends/drive_c/Riot
Games/Riot Client
fsr: false
icon: com.usebottles.bottles-program
id: 47eac07b-34cb-4426-8b14-a812ec5f805d
name: Riot Client
path: C:\Riot Games\Riot Client\RiotClientServices.exe
pulseaudio_latency: false
removed: null
script: ''
virtual_desktop: false
vkd3d: true
5511b069-9bd3-4429-9773-acd0f7ed579b:
arguments: ''
dxvk: true
dxvk_nvapi: false
executable: LeagueClient.exe
folder: /home/user/.var/app/com.usebottles.bottles/data/bottles/bottles/League-of-Legends/drive_c/Riot
Games/League of Legends
fsr: false
icon: com.usebottles.bottles-program
id: 5511b069-9bd3-4429-9773-acd0f7ed579b
name: League of Legends
path: /home/user/.var/app/com.usebottles.bottles/data/bottles/bottles/League-of-Legends/drive_c/Riot
Games/League of Legends/LeagueClient.exe
pulseaudio_latency: false
removed: null
script: null
virtual_desktop: false
vkd3d: true
Installed_Dependencies:

  • d3dx9
  • msls31
  • arial32
  • times32
  • courie32
  • d3dcompiler_43
  • d3dcompiler_47
    Language: sys
    LatencyFleX: latencyflex-v0.1.1
    NVAPI: dxvk-nvapi-v0.6-1-0827efb
    Name: League of Legends
    Parameters:
    custom_dpi: 96
    decorated: true
    discrete_gpu: true
    dxvk: true
    dxvk_nvapi: false
    fixme_logs: false
    fsr: false
    fsr_quality_mode: none
    fsr_sharpening_strength: 2
    fullscreen_capture: false
    gamemode: true
    gamescope: false
    gamescope_borderless: false
    gamescope_fps: 0
    gamescope_fps_no_focus: 0
    gamescope_fullscreen: true
    gamescope_game_height: 0
    gamescope_game_width: 0
    gamescope_scaling: false
    gamescope_window_height: 0
    gamescope_window_width: 0
    latencyflex: false
    mangohud: false
    mouse_warp: true
    obsvkc: false
    pulseaudio_latency: false
    renderer: gl
    sandbox: false
    sync: esync
    take_focus: false
    use_be_runtime: true
    use_eac_runtime: true
    use_runtime: false
    use_steam_runtime: false
    versioning_automatic: false
    versioning_compression: false
    versioning_exclusion_patterns: false
    virtual_desktop: false
    virtual_desktop_res: 1280x720
    vkbasalt: false
    vkd3d: true
    vmtouch: true
    vmtouch_cache_cwd: false
    Path: League-of-Legends
    Runner: lutris-ge-lol-7.14-1
    RunnerPath: ''
    Sandbox:
    share_net: true
    share_sound: true
    State: 0
    Uninstallers: {}
    Update_Date: '2023-03-07 13:34:43.877342'
    VKD3D: vkd3d-proton-2.8-1-f09e31a
    Versioning: false
    Versioning_Exclusion_Patterns: []
    Windows: win10
    WorkingDir: ''
    data: {}
    run_in_terminal: false
    session_arguments: ''

@UpsettingBoy
Copy link
Author

@noey-drew Did you use the script in the PR?

@tazihad

This comment was marked as off-topic.

@UpsettingBoy
Copy link
Author

I wouldn't say its dead but stalled. It would require having a message dialog to warn users not to login while the first installation of the game.

Also I don't know if there is other way to set some settings like the DLL overrides via Bottles config settings instead of with ENV variables

Copy link

The "no login" message is not needed now. That was necessary when the game needed the lauch helper script.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants