R2Northstar / Northstar

Repo for packaged Northstar releases
https://northstar.tf/
MIT License
1.69k stars 129 forks source link

Northstar v1.11.1 refuses to launch on Linux through EA App on Wine 7.20-staging #405

Closed CobaltCause closed 1 year ago

CobaltCause commented 1 year ago

Bug

First, I wasn't able to get the Lutris installer to work as Origin wouldn't let me log in during the installation process. Second, I created the following script:

Script ```sh #!/usr/bin/env bash set -euo pipefail # Configuration options export WINEPREFIX="$HOME/media2/game/wine/ea-games" NORTHSTAR_VERSION=1.11.1 # Reduce stdout spam (comment out for debugging) # export WINEDEBUG=-all export DXVK_LOG_LEVEL=none # Shader cache export __GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1 export __GL_SHADER_DISK_CACHE=1 export __GL_SHADER_DISK_CACHE_PATH="$WINEPREFIX/shader-disk-cache" mkdir -p "$__GL_SHADER_DISK_CACHE_PATH" if [[ -n ${1+x} ]] && [[ "$1" == "northstar" ]]; then pushd "$WINEPREFIX/drive_c/Program Files/EA Games/Titanfall2" wine64 Titanfall2.exe -noborder -novid popd elif [[ -n ${1+x} ]] && [[ "$1" == "install-northstar" ]]; then # Install Northstar pushd "$WINEPREFIX/drive_c/Program Files/EA Games/Titanfall2" if [[ ! -f "Northstar.release.v$NORTHSTAR_VERSION.zip" ]]; then curl -LO "https://github.com/R2Northstar/Northstar/releases/download/v$NORTHSTAR_VERSION/Northstar.release.v$NORTHSTAR_VERSION.zip" fi if [[ ! -f Titanfall2.exe.original ]]; then mv Titanfall2.exe Titanfall2.exe.original fi unzip -o "Northstar.release.v$NORTHSTAR_VERSION.zip" ln -sf NorthstarLauncher.exe Titanfall2.exe popd elif [[ -n ${1+x} ]] && [[ "$1" == "unlink-northstar" ]]; then # Unlink Northstar pushd "$WINEPREFIX/drive_c/Program Files/EA Games/Titanfall2" ln -sf Titanfall2.exe.original Titanfall2.exe popd elif [[ -n ${1+x} ]] && [[ "$1" == "winetricks" ]]; then # Install necessary things via winetricks winetricks -q dxvk d3dcompiler_43 d3dcompiler_47 elif [[ -n ${1+x} ]] && [[ "$1" == "install-ea-app" ]]; then # Install the EA App pushd "$WINEPREFIX" curl -O "https://origin-a.akamaihd.net/EA-Desktop-Client-Download/installer-releases/EAappInstaller.exe" wine64 EAappInstaller.exe popd elif [[ -n ${1+x} ]] && [[ "$1" == "ea-app" ]]; then # Launch the EA App pushd "$WINEPREFIX/drive_c/Program Files/Electronic Arts/EA Desktop/EA Desktop" wine64 EADesktop.exe popd elif [[ -n ${1+x} ]] && [[ "$1" == "wineserver-kill" ]]; then wineserver -k elif [[ -n ${1+x} ]] && [[ "$1" == "winecfg" ]]; then winecfg else echo "Pick a thing to launch!" echo echo "If this is your first time, do things in this order:" echo echo "1. winetricks" echo "2. install-ea-app" echo " 1. Click \"LET'S GO\"" echo " 2. Sign in" echo " 3. Install Titanfall 2 in the default location" echo "3. northstar" echo " 1. This will launch the vanilla game" echo " 2. The vanilla game must be run at least once before using Northstar" echo " 3. Just immediately close the game after seeing the main menu" echo "4. install-northstar" echo "5. northstar" echo " 1. Play the game!" echo " 2. Once the above steps are completed, this is the only thing you need to do" fi ```

Unfortunately, step 5 (running Northstar) fails:

stdout ``` [*] Loading tier0.dll03d4:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (00000000007CFA70 1 C) semi-stub [*] Loading Northstar [*] Failed to create a console window, maybe a console already exists? [21:12:02] [NORTHSTAR] [info] Profile was not fou nd in command line arguments. Using default: R2Northstar 03d4:err:winediag:ntlm_check_version ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution. 03d4:err:ntlm:ntlm_LsaApInitializePackage no NTLM support, expect problems [21:12:02] [NORTHSTAR] [info] Enabling hook _GetC ommandLineA [21:12:02] [NORTHSTAR] [info] Enabling hook _Load LibraryExA [21:12:02] [NORTHSTAR] [info] Enabling hook _Load LibraryA [21:12:02] [NORTHSTAR] [info] Enabling hook _Load LibraryExW [21:12:02] [NORTHSTAR] [info] Enabling hook _Load LibraryW [21:12:02] [NORTHSTAR] [info] Command line: "C:\P rogram Files\EA Games\Titanfall2\Titanfall2.exe" -noborder -novid -multiple 03d4:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (00000000007CF670 1 C) semi-stub [21:12:02] [NORTHSTAR] [info] NorthstarLauncher v ersion: 1.11.1.0 [21:12:02] [NORTHSTAR] [info] Enabling hook GetGa meLanguage [21:12:02] [NORTHSTAR] [info] Loading resource fr om library [21:12:02] [NORTHSTAR] [info] Succesfully loaded R2Northstar/plugins\DiscordRPC.dll [*] Loading launcher.dllFailed to instantiate discord core! (err 03c8:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (00000000153CF440 1 C) semi-stub 03c8:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (00000000153CF170 1 C) semi-stub 4) [*] Launching the game... 03d4:fixme:thread:SetThreadIdealProcessor (00000000000000F0 1): stub 03d4:fixme:thread:SetThreadIdealProcessor (0000000000000100 2): stub [21:12:02] [NORTHSTAR] [info] Enabling hook ReadF ileFromVPK [21:12:02] [NORTHSTAR] [info] Enabling hook CBase FileSystem__OpenEx [21:12:02] [NORTHSTAR] [info] Enabling hook AddSe archPathHook [21:12:02] [NORTHSTAR] [info] Enabling hook ReadF romCacheHooknt) [21:12:02] [NORTHSTAR] [info] Enabling hook Mount VPKHook 03d4:fixme:ver:GetCurrentPackageId (00000000007CED40 0000000000000000): stub 03d4:fixme:heap:RtlSetHeapInformation handle 00000000373E0000, info_class 0, info 00000000007CDC70, size 4 stub! [21:12:02] [NORTHSTAR] [info] Enabling hook BinkO pen [21:12:02] [NORTHSTAR] [info] Registering ConComm and force_newgame [21:12:02] [NORTHSTAR] [info] Registering ConComm and ns_start_reauth_and_leave_to_lobby [21:12:02] [NORTHSTAR] [info] Registering ConComm and ns_end_reauth_and_leave_to_lobby [21:12:02] [NORTHSTAR] [info] Enabling hook CLZSS __SafeDecompress [21:12:02] [NORTHSTAR] [info] Enabling hook KeyVa lues__LoadFromBuffer [21:12:02] [NORTHSTAR] [info] Enabling hook DrawO verlay [21:12:02] [NORTHSTAR] [info] Enabling hook Host_ Init [21:12:02] [NORTHSTAR] [info] Enabling hook CHost State__State_NewGame [21:12:02] [NORTHSTAR] [info] Enabling hook CHost State__State_ChangeLevelMP [21:12:02] [NORTHSTAR] [info] Enabling hook CHost State__State_GameShutdown [21:12:02] [NORTHSTAR] [info] Enabling hook CHost State__FrameUpdate [21:12:02] [NORTHSTAR] [info] Enabling hook clc_S etPlaylistVarOverride__Process [21:12:02] [NORTHSTAR] [info] Enabling hook SetCu rrentPlaylist [21:12:02] [NORTHSTAR] [info] Enabling hook SetPl aylistVarOverride [21:12:02] [NORTHSTAR] [info] Enabling hook GetCu rrentPlaylistVar [21:12:02] [NORTHSTAR] [info] Enabling hook GetCu rrentGamemodeMaxPlayers [21:12:02] [NORTHSTAR] [info] Registering ConComm and playlist [21:12:02] [NORTHSTAR] [info] Registering ConComm and setplaylist [21:12:02] [NORTHSTAR] [info] Registering ConComm and setplaylistvaroverrides [21:12:02] [NORTHSTAR] [info] Registering Convar ns_use_clc_SetPlaylistVarOverride [21:12:02] [NORTHSTAR] [info] Enabling hook LoadP akAsyncHookCEngine__Frame [21:12:02] [NORTHSTAR] [info] Enabling hook Unloa dPakHook [21:12:02] [NORTHSTAR] [info] Enabling hook ReadF ileAsyncHook [21:12:02] [NORTHSTAR] [info] Enabling hook CEngi ne__Frame [21:12:02] [NORTHSTAR] [info] Enabling hook OpenE xternalWebBrowser [21:12:02] [NORTHSTAR] [info] Registering Convar ns_prefer_datatable_from_disk [21:12:02] [NORTHSTAR] [info] Registering ConComm and dump_datatables [21:12:02] [NORTHSTAR] [info] Registering ConComm and dump_datatable [21:12:02] [NORTHSTAR] [info] Enabling hook CBase Server__ConnectClient [21:12:02] [NORTHSTAR] [info] Enabling hook CBase Client__Connect [21:12:02] [NORTHSTAR] [info] Enabling hook CBase Client__ActivatePlayer [21:12:02] [NORTHSTAR] [info] Enabling hook _CBas eClient__Disconnect [21:12:02] [NORTHSTAR] [info] Registering Convar ns_player_auth_port [21:12:02] [NORTHSTAR] [info] Registering Convar ns_erase_auth_info [21:12:02] [NORTHSTAR] [info] Registering Convar ns_auth_allow_insecure [21:12:02] [NORTHSTAR] [info] Registering Convar ns_auth_allow_insecure_write [21:12:02] [NORTHSTAR] [info] Registering ConComm and ns_resetpersistence [21:12:02] [NORTHSTAR] [info] Registering Convar ns_server_presence_update_rate [21:12:02] [NORTHSTAR] [info] Registering Convar ns_server_name [21:12:02] [NORTHSTAR] [info] Registering Convar ns_server_desc [21:12:02] [NORTHSTAR] [info] Registering Convar ns_server_password [21:12:02] [NORTHSTAR] [info] Registering Convar ns_report_server_to_masterserver [21:12:02] [NORTHSTAR] [info] Registering Convar ns_report_sp_server_to_masterserver [21:12:02] [NORTHSTAR] [info] Enabling hook Engin eCreateInterface [21:12:02] [NORTHSTAR] [info] Enabling hook CLC_S creenshot_WriteToBuffer [21:12:02] [NORTHSTAR] [info] Enabling hook CLC_S creenshot_ReadFromBuffer [21:12:02] [NORTHSTAR] [info] Enabling hook Base_ CmdKeyValues_ReadFromBuffer [21:12:02] [NORTHSTAR] [info] Enabling hook CClie nt_ProcessSetConVar [21:12:02] [NORTHSTAR] [info] Enabling hook CClie nt_ProcessUsercmds [21:12:02] [NORTHSTAR] [info] Enabling hook IsRes pawnMod [21:12:02] [NORTHSTAR] [info] Enabling hook CGame Client__ExecuteStringCommand [21:12:02] [NORTHSTAR] [info] Enabling hook CBase Client__SendServerInfo [21:12:02] [NORTHSTAR] [info] Enabling hook CL_Co pyExistingEntity [21:12:02] [NORTHSTAR] [info] Registering ConComm and ban [21:12:02] [NORTHSTAR] [info] Registering ConComm and unban [21:12:02] [NORTHSTAR] [info] Registering ConComm and clearbanlist [21:12:02] [NORTHSTAR] [info] Registering ConComm and say [21:12:02] [NORTHSTAR] [info] Registering ConComm and say_team [21:12:02] [NORTHSTAR] [info] Registering ConComm and log [21:12:02] [NORTHSTAR] [info] Enabling hook AuthW ithStryder [21:12:02] [NORTHSTAR] [info] Enabling hook Auth3 PToken [21:12:02] [NORTHSTAR] [info] Registering Convar ns_has_agreed_to_send_token [21:12:02] [NORTHSTAR] [info] Enabling hook DrawR UIFunc [21:12:02] [NORTHSTAR] [info] Registering Convar rui_drawEnable [21:12:02] [NORTHSTAR] [info] Enabling hook CNetC han__ProcessMessages [21:12:02] [NORTHSTAR] [info] Enabling hook Proce ssConnectionlessPacket [21:12:02] [NORTHSTAR] [info] Registering Convar sv_quota_stringcmdspersecond [21:12:02] [NORTHSTAR] [info] Registering Convar net_chan_limit_mode [21:12:02] [NORTHSTAR] [info] Registering Convar net_chan_limit_msec_per_sec [21:12:02] [NORTHSTAR] [info] Registering Convar sv_querylimit_per_sec [21:12:02] [NORTHSTAR] [info] Registering Convar sv_max_chat_messages_per_sec [21:12:02] [NORTHSTAR] [info] Registering Convar sv_antispeedhack_enable [21:12:02] [NORTHSTAR] [info] Registering Convar sv_antispeedhack_maxtickbudget [21:12:02] [NORTHSTAR] [info] Registering Convar sv_antispeedhack_budgetincreasemultiplier [21:12:02] [NORTHSTAR] [info] Enabling hook Hook_ fprintf [21:12:02] [NORTHSTAR] [info] Enabling hook ConCo mmand_echo [21:12:03] [NORTHSTAR] [info] Enabling hook Engin eSpewFunc [21:12:03] [NORTHSTAR] [info] Enabling hook Statu s_ConMsg [21:12:03] [NORTHSTAR] [info] Enabling hook CClie ntState_ProcessPrint [21:12:03] [NORTHSTAR] [info] Registering Convar spewlog_enable [21:12:03] [NORTHSTAR] [info] Registering Convar ns_masterserver_hostname [21:12:03] [NORTHSTAR] [info] Registering Convar ns_curl_log_enable [21:12:03] [NORTHSTAR] [info] Registering ConComm and ns_fetchservers [21:12:03] [NORTHSTAR] [info] Loaded mod Northsta r.Client successfully [21:12:03] [NORTHSTAR] [info] Mod Northstar.Clien t is enabled [21:12:03] [NORTHSTAR] [info] Loaded mod Northsta r.Custom successfully [21:12:03] [NORTHSTAR] [info] Mod Northstar.Custo m is enabled [21:12:03] [NORTHSTAR] [info] Loaded mod Northsta r.CustomServers successfully [21:12:03] [NORTHSTAR] [info] Mod Northstar.Custo mServers is enabled [21:12:03] [NORTHSTAR] [info] Registering Convar filter_hide_empty [21:12:03] [NORTHSTAR] [info] Registering Convar filter_hide_full [21:12:03] [NORTHSTAR] [info] Registering Convar filter_hide_protected [21:12:03] [NORTHSTAR] [info] Registering Convar filter_map [21:12:03] [NORTHSTAR] [info] Registering Convar filter_gamemode [21:12:03] [NORTHSTAR] [info] Registering Convar filter_mods [21:12:03] [NORTHSTAR] [info] Registering Convar filter_map_hide_locked [21:12:03] [NORTHSTAR] [info] Registering Convar modlist_show_convars [21:12:03] [NORTHSTAR] [info] Registering Convar modlist_reverse [21:12:03] [NORTHSTAR] [info] Registering Convar ns_lobby_type [21:12:03] [NORTHSTAR] [info] Registering Convar ns_is_modded_server [21:12:03] [NORTHSTAR] [info] Registering Convar ns_should_return_to_lobby [21:12:03] [NORTHSTAR] [info] Registering Convar ns_allow_spectators [21:12:03] [NORTHSTAR] [info] Registering Convar ns_private_match_last_mode [21:12:03] [NORTHSTAR] [info] Registering Convar ns_private_match_last_map [21:12:03] [NORTHSTAR] [info] Registering Convar ns_private_match_only_host_can_change_settings [21:12:03] [NORTHSTAR] [info] Registering Convar ns_private_match_only_host_can_start [21:12:03] [NORTHSTAR] [info] Registering Convar ns_private_match_countdown_length [21:12:03] [NORTHSTAR] [info] Registering Convar ns_private_match_override_maxplayers [21:12:03] [NORTHSTAR] [info] Registering Convar ns_should_log_unknown_clientcommands [21:12:03] [NORTHSTAR] [info] Registering Convar ns_allow_kill_commands [21:12:03] [NORTHSTAR] [info] Registering Convar ns_disallowed_tacticals [21:12:03] [NORTHSTAR] [info] Registering Convar ns_disallowed_tactical_replacement [21:12:03] [NORTHSTAR] [info] Registering Convar ns_disallowed_weapons [21:12:03] [NORTHSTAR] [info] Registering Convar ns_disallowed_weapon_primary_replacement [21:12:03] [NORTHSTAR] [info] Registering Convar ns_force_melee [21:12:03] [NORTHSTAR] [info] Registering ConComm and reload_mods [21:12:03] [NORTHSTAR] [info] CreateInterface ENG INE VCvarQuery001 03d4:fixme:dbghelp:MiniDumpWriteDump NIY MiniDumpScanMemory 03d4:fixme:dbghelp:MiniDumpWriteDump NIY MiniDumpScanMemory 03d4:fixme:dbghelp:MiniDumpWriteDump NIY MiniDumpScanMemory ``` The last line just keeps repeating till I kill the process. I don't know why there are seemingly random newlines in `stdout`, it just prints that way. Not a copy paste error.

I'm pretty sure this is unrelated to the EA App permissions issues some people are having, because I see Northstar successfully creating files/directories like Titanfall2/bin/x64_retail/wsock32.dll and Titanfall2/bin/x64_dedi.

Running the vanilla game (e.g. by undoing the symlink) works fine.

Steps to reproduce

Follow the instructions included in the script, then Northstar will crash before opening a window.

Specifications

Log/minidump

nslog2023-01-03 21-12-02.txt nsdump.zip (GitHub wouldn't let me upload the raw .dmp so I stuck it in a zip file)

CobaltCause commented 1 year ago

v1.9.7 and v1.10.9 both crash on startup but then launch and continue to work normally after dismissing the crash dialog once it pops up about a minute or so after launching the game. Very weird. v1.11.0 has the same behavior as v1.11.1 (neither of which ever open a crash dialog or game window).

GeckoEidechse commented 1 year ago

A big change in v1.11.0 was updates to the crash handler. I guess that causes the "old method" to break in the process à la XKCD 1172. However the thing is, it shouldn't crash in the first place which is the underlying issue that needs to be tackled.

Not sure what our Wine recommendation is outside of NorthstarProton, so I'll need a Northstar Linux contributor to chime in here ^^

GeckoEidechse commented 1 year ago

It's also interesting to see that vanilla still works :eyes:

GeckoEidechse commented 1 year ago

Another note, for Northstar on Linux, the Steam version of Titanfall2 is the main target simply cause it offers a more unified experience across distros, which means less edge cases caused by weird distro combinations.

Titanfall2 on Steam is still on sale right now for one more day for <5€. So if you want this issue fixed for your right now and are fine with paying that small price, I highly recommend rebuying on Steam, ^^

RootCellar commented 1 year ago

I had this issue as well, the only fix I found was to use NorthstarProton through Steam. To do so on the newer versions you need fairly recent packages so I had to do this inside a Fedora distrobox because my host environment is Ubuntu and wouldn't work with NorthstarProton. Vanilla would work with Proton 7.05 but Northstar would not, it would get to that exact same line in the log then just stop.

lay-by commented 1 year ago

I had this issue, I originally fixed it by using Proton-7.3-GE-1. Later on I upgraded to a newer version of Proton GE and ran into this issue again. I solved it by deleting the IGO64 and IGO32 dlls from my game's wineprefix and ~/Games/titanfall-2. Reverting to origin instead of using EA Desktop also fixes the issue.

CobaltCause commented 1 year ago

Closing this because it's pretty old and Northstar 1.18.0 works fine on Wine 8.13-staging through the EA App now (for me at least).