Jason Carr Posted July 15, 2020 Share Posted July 15, 2020 Since the release of LaunchBox 11.2, we've been working on getting LaunchBox and Big Box running on Linux using Wine. Keep in mind that this is not for the faint of heart, and you may still run into issues at this point. That said, both LaunchBox and Big Box now at least mostly work, since version 11.3-beta-9. Thanks to @static on Discord for some additional tips and tricks that we hadn't yet discovered. Here are some current known issues: Only the VLC video playback engine works (of course the Windows Media Player video playback engine does not) Compared to Windows, it's not quite as pretty; fonts and WPF image resizing aren't up to par with their Windows counterparts It's a tad bit slower than Windows Launching games may or may not work, as we haven't done much testing with it Various other features may be broken that we haven't discovered yet Any features that use the Chromium Embedded Framework (web browsing) do not work With those caveats, here is a script to get LaunchBox 11.3-beta-9 running on Ubuntu 20.04 (updated on August 5, 2020): Spoiler #!/bin/bash # navigate to user folder cd ~/ # make sure apt-get is updated sudo apt-get update # download and install wine, winetricks, and python2 sudo apt-get -y install wine winetricks python2 # download and install Windows fonts WINEPREFIX=~/LaunchBox winetricks corefonts # download and install .NET versions (takes a long time and requires clicks) WINEPREFIX=~/LaunchBox winetricks dotnet48 # download and install Direct3D compiler WINEPREFIX=~/LaunchBox winetricks -q d3dcompiler_47 # download and install Media Foundation wget -O mf-install.zip https://github.com/z0z0z/mf-install/archive/master.zip unzip mf-install.zip cd mf-install-master chmod +x mf-install.sh WINEPREFIX=~/LaunchBox ./mf-install.sh cd .. # download and install Media Foundation Cab wget -O mf-installcab.zip https://github.com/z0z0z/mf-installcab/archive/master.zip unzip mf-installcab.zip cd mf-installcab-master chmod +x install-mf-64.sh WINEPREFIX=~/LaunchBox ./install-mf-64.sh cd .. # download and install DirectX Vulkan (requires clicks, click "No" twice when asked "Do you want to view information about this issue?") wget -O dxvk.zip https://github.com/doitsujin/dxvk/archive/master.zip unzip dxvk.zip cd dxvk-master chmod +x setup_dxvk.sh WINEPREFIX=~/LaunchBox ./setup_dxvk.sh install cd .. # download and install .NET Core 3.1.6 wget -O windowsdesktop-runtime-3.1.6-win-x64.exe http://download.visualstudio.microsoft.com/download/pr/3eb7efa1-96c6-4e97-bb9f-563ecf595f8a/7efd9c1cdd74df8fb0a34c288138a84f/windowsdesktop-runtime-3.1.6-win-x64.exe WINEPREFIX=~/LaunchBox wine ./windowsdesktop-runtime-3.1.6-win-x64.exe /passive /norestart # download and install Visual C++ 2015 Redistributable wget http://aka.ms/vs/16/release/vc_redist.x64.exe WINEPREFIX=~/LaunchBox wine ./vc_redist.x64.exe /passive /norestart # download and install LaunchBox 11.5 wget -O LaunchBox-11.5-Setup.exe https://www.dropbox.com/s/y183jh5o6ob98zf/LaunchBox-11.5-Setup.exe?dl=0 WINEPREFIX=~/LaunchBox wine ./LaunchBox-11.5-Setup.exe /DIR=C:\LaunchBox /SILENT You can either run this script manually (not recommended), or download the attached "launchbox-install.sh" file and run it all automatically (recommended). In order to do so, download the file, open up a terminal to the folder where the file is, and type the following commands: chmod +x launchbox-install.sh ./launchbox-install.sh You will be asked for your password at least once, and eventually you'll have to click through several installers for .NET and the like. If all works correctly though, you should eventually see the LaunchBox startup process. If all else fails, try starting with a brand new install of Ubuntu 20.04 64-bit. Going forward, we hope to make LaunchBox and Big Box more compatible with Linux, to the extent that is currently possible without completely re-writing the apps. Let us know how it goes below and let us know what is and isn't working. Good luck! launchbox-install.sh 1 4 3 1 Quote Link to comment Share on other sites More sharing options...
purplebot Posted July 15, 2020 Share Posted July 15, 2020 Awesome! Any idea what the system requirements will end up being? I have an old 2010 mac mini I slapped Ubuntu on, and run RetroPie/Emulationstation on it. Obviously I'd much prefer to run LaunchBox/BigBox at some point down the road. I'm probably being super optimistic here. Quote Link to comment Share on other sites More sharing options...
static Posted July 16, 2020 Share Posted July 16, 2020 @purplebot I plan on working more on this when I get off work tonight, I am pretty confident I will be able to get BigBox working. I know a method to enable AA in wine that may or may not cause some issues with some emulators, I'll have to test it out, my main thing now is to figure out which codecs will be needed be it wmp, ffmpeg, LAVfilters, or others, as well as testing things like Gallium 9 standalone to see if it gets better dx9 performance. I also plan to test things with steams proton wine wrapper (both standard and GE). I am running Linux Mint 20 and wine-staging 5.12 personally. 2 Quote Link to comment Share on other sites More sharing options...
static Posted July 16, 2020 Share Posted July 16, 2020 (edited) dxvk-master != dxvk-1.7; master is not compiled https://github.com/doitsujin/dxvk/releases/tag/v1.7 We most likely need some more libs installed for bigbox (These throw errors): libvlc mscorelib I Tried out LAVFilters, didnt make a difference to launching BigBox, same with installing VLC with winetricks https://askubuntu.com/questions/219791/improve-gui-appearance-of-wine-applications #!/bin/sh # Quick and dirty script for configuring wine font smoothing # # Author: Igor Tarasov <tarasov.igor@gmail.com> WINE=${WINE:-wine} WINEPREFIX=${WINEPREFIX:-$HOME/.wine} DIALOG=whiptail if [ ! -x "`which "$WINE"`" ] then echo "Wine was not found. Is it really installed? ($WINE)" exit 1 fi if [ ! -x "`which "$DIALOG"`" ] then DIALOG=dialog fi TMPFILE=`mktemp` || exit 1 $DIALOG --menu \ "Please select font smoothing mode for wine programs:" 13 51\ 4\ 1 "Smoothing disabled"\ 2 "Grayscale smoothing"\ 3 "Subpixel smoothing (ClearType) RGB"\ 4 "Subpixel smoothing (ClearType) BGR" 2> $TMPFILE STATUS=$? ANSWER=`cat $TMPFILE` if [ $STATUS != 0 ] then rm -f $TMPFILE exit 1 fi MODE=0 # 0 = disabled; 2 = enabled TYPE=0 # 1 = regular; 2 = subpixel ORIENTATION=1 # 0 = BGR; 1 = RGB case $ANSWER in 1) # disable ;; 2) # enable MODE=2 TYPE=1 ;; 3) # enable cleartype rgb MODE=2 TYPE=2 ;; 4) # enable cleartype bgr MODE=2 TYPE=2 ORIENTATION=0 ;; *) rm -f $TMPFILE echo Unexpected option: $ANSWER exit 1 ;; esac echo "REGEDIT4 [HKEY_CURRENT_USER\Control Panel\Desktop] \"FontSmoothing\"=\"$MODE\" \"FontSmoothingOrientation\"=dword:0000000$ORIENTATION \"FontSmoothingType\"=dword:0000000$TYPE \"FontSmoothingGamma\"=dword:00000578" > $TMPFILE echo -n "Updating configuration... " $WINE regedit $TMPFILE 2> /dev/null rm -f $TMPFILE echo ok seeing as LaunchBox setup attempts to install direct x, dxvk should probably be installed after setup Alternative to DXVK but only supports DirectX 9 you need a card that supports it (AMD) Gallium 9 Wine Standalone: https://github.com/iXit/wine-nine-standalone VKD3D should be in wine already https://wiki.winehq.org/Vkd3d VK9 is in DXVK having the script install wine and python isn't such a hot idea, Linux users should have wine set up prior to script windows is a bad name to use in the home folder .launchbox is much better it lets the user know what the wine environment is set up for (you can have multiple wine environments and should, it becomes unstable if you try to run everything in 1 prefix) instead of corefonts we could use allfonts (I havent changed it below, feel free to do so yourself) Z:/ should be the root folder in the wine environment meaning we should be able to set up Wine apps to open Native Linux apps (DosBox, ScummVM, RetroArch, etc) (example: z:/usr/bin/dosbox) https://wiki.winehq.org/FAQ#How_do_I_associate_a_native_program_with_a_file_type_in_Wine.3F #!/bin/bash WINEPREFIX=~/.launchbox winetricks corefonts # install .launchbox fonts WINEPREFIX=~/.launchbox winetricks dotnet48 # install .NET versions (takes a long time and requires clicks) WINEPREFIX=~/.launchbox winetricks -q d3dcompiler_47 # install Direct3D compiler wget -O mf-install.zip https://github.com/z0z0z/mf-install/archive/master.zip # download Media Foundation unzip mf-install.zip # extract Media Foundation cd mf-install-master # change to Media Foundation extracted folder chmod +x mf-install.sh # make the Media Foundation install script executable WINEPREFIX=~/.launchbox ./mf-install.sh # install Media Foundation cd .. # back out to parent folder wget -O mf-installcab.zip https://github.com/z0z0z/mf-installcab/archive/master.zip # download Media Foundation Cab unzip mf-installcab.zip # extract Media Foundation Cab cd mf-installcab-master # change to Media Foundation Cab extracted folder chmod +x install-mf-64.sh # make the Media Foundation Cab install script executable WINEPREFIX=~/.launchbox ./install-mf-64.sh # install Media Foundation Cab cd .. # back out to parent folder wget -O LaunchBox-11.2-Setup.exe https://www.dropbox.com/s/cg7fteljnwf0s9r/LaunchBox-11.2-Setup.exe?dl=0 # download LaunchBox 11.2 WINEPREFIX=~/.launchbox wine ./LaunchBox-11.2-Setup.exe # install LaunchBox 11.2 wget -O dxvk-1.7.tar.gz https://github.com/doitsujin/dxvk/releases/download/v1.7/dxvk-1.7.tar.gz # download DirectX Vulkan unzip dxvk-1.7.tar.gz # extract DirectX Vulkan cd dxvk-1.7 # change to DirectX Vulkan extracted folder chmod +x setup_dxvk.sh # make the DirectX Vulkan install script executable WINEPREFIX=~/.launchbox ./setup_dxvk.sh install # install DirectX Vulkan cd .. # back out to parent folder Woth looking into for the future, Valve Proton GE: https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/5.9-GE-3-ST Remember to update winetricks sudo winetricks --self-update Remember you can also use WINEPREFIX=~/.launchbox winecfg to change things about the prefix as well (gives a GUI so you can set enviro settings, install some dependencies, register dll files, set gfx options, set windows version, etc.) Edited July 17, 2020 by static 2 Quote Link to comment Share on other sites More sharing options...
static Posted July 17, 2020 Share Posted July 17, 2020 crash log from wine when launching bigbox directly ttps://cdn.discordapp.com/attachments/250719165227204608/733550696535818240/wine.bigbox.error.log crash log from wine when launching bigbox from launchbox https://cdn.discordapp.com/attachments/250719165227204608/733550755403005992/wine.launchbox.error.log not that I expect support but these may be useful to the devs bigbox from launchbox doesn't crash, it hangs with a black screen but you do get the audio and the splash starts and closes Quote Link to comment Share on other sites More sharing options...
static Posted July 17, 2020 Share Posted July 17, 2020 (edited) 0024:err:winediag:SECUR32_initNTLMSP 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. sudo apt-get remove winbind && sudo apt-get install winbind https://askubuntu.com/questions/1090094/wine-missing-ntlm-auth-3-0-25 (Inner Exception) (Inner Exception) 无法载入指定的模块. App: Big Box Version: 11.2 Type: System.ComponentModel.Win32Exception Site: IntPtr (System.String) Source: Unbroken.LaunchBox.Windows at (String ) at Meta.Vlc.Win32Api.LoadLibrary(String lpFileName) at (String ) (Outer Exception) Can't load LibVlc dlls, check the platform and LibVlc target platform (should be same, x86 or x64). App: Big Box Version: 11.2 Type: Meta.Vlc.LibVlcLoadLibraryException Site: Void (System.String) Source: Unbroken.LaunchBox.Windows at (String ) at Meta.Vlc.LibVlcManager.LoadLibVlc(String libVlcDirectory) at () at Meta.Vlc.Wpf.ApiManager.Initialize() at (String , String[] ) at Meta.Vlc.Wpf.ApiManager.Initialize(String libVlcPath, String[] vlcOption) at (VlcPlayer , String , String[] ) at Meta.Vlc.Wpf.VlcPlayer.Initialize(String libVlcPath, String[] libVlcOption) at (VlcPlayer , EventArgs ) at Meta.Vlc.Wpf.VlcPlayer.OnInitialized(EventArgs e) at System.Windows.FrameworkElement.TryFireInitialized() at System.Windows.FrameworkElement.ChangeLogicalParent(DependencyObject newParent) at System.Windows.FrameworkElement.AddLogicalChild(Object child) at System.Windows.Controls.UIElementCollection.AddInternal(UIElement element) at System.Windows.Controls.UIElementCollection.Add(UIElement element) at (ImageVideoView ) at Unbroken.LaunchBox.Windows.Views.ImageVideoView.<.ctor>b__8_0() at System.Windows.Threading.DispatcherOperation.InvokeDelegateCore() at System.Windows.Threading.DispatcherOperation.InvokeImpl() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Windows.Threading.DispatcherOperation.Wait(TimeSpan timeout) at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherOperation operation, CancellationToken cancellationToken, TimeSpan timeout) at System.Windows.Threading.Dispatcher.Invoke(Action callback, DispatcherPriority priority, CancellationToken cancellationToken, TimeSpan timeout) at System.Windows.Threading.Dispatcher.Invoke(Action callback, DispatcherPriority priority) at (Action , DispatcherPriority ) at Unbroken.LaunchBox.Windows.Threading.Invoke(Action callback, DispatcherPriority priority) at Unbroken.LaunchBox.Windows.Views.ImageVideoView..ctor() at Unbroken.LaunchBox.Windows.BigBox.ViewModels.MainViewModel..ctor() (Outer Exception) Exception has been thrown by the target of an invocation. App: Big Box Version: 11.2 Type: System.Reflection.TargetInvocationException Site: System.Object CreateInstance(System.RuntimeType, Boolean, Boolean, Boolean ByRef, System.RuntimeMethodHandleInternal ByRef, Boolean ByRef) Source: mscorlib at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, Boolean nonPublic) at System.Activator.CreateInstance(Type type) at Caliburn.Micro.BootstrapperBase.GetInstance(Type service, String key) at Caliburn.Micro.BootstrapperBase.DisplayRootViewFor(Type viewModelType, IDictionary`2 settings) at (Bootstrapper , Object , StartupEventArgs ) at Unbroken.LaunchBox.Windows.BigBox.Bootstrapper.OnStartup(Object sender, StartupEventArgs e) at System.Windows.Application.OnStartup(StartupEventArgs e) at System.Windows.Application.<.ctor>b__1_0(Object unused) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) Recent Log: 2:08:28 AM Exception wine.bigbox.error.log Lets go ahead and get winetricks to reg d3dx9 WINEPREFIX=~/.launchbox winetricks d3dx9_43 Edited July 17, 2020 by static Quote Link to comment Share on other sites More sharing options...
static Posted July 18, 2020 Share Posted July 18, 2020 Debugging in Wine: https://wiki.winehq.org/Debug_Channels Something that may be relevant (Unsure, but interesting development for the linux kernel none the less): https://www.phoronix.com/scan.php?page=news_item&px=Syscall-User-Redirection-V4 Quote Link to comment Share on other sites More sharing options...
shodblitzkrieg Posted July 18, 2020 Share Posted July 18, 2020 If you are taking suggestions. Why not try and get launchbox added to Steam. Then get full proton support if you have to go and run it in wine? Quote Link to comment Share on other sites More sharing options...
static Posted July 18, 2020 Share Posted July 18, 2020 @shodblitzkrieg That is how I plan to run it with proton Im just uploading things Ive researched and ran across here/tested so that others in the community can try things out and report back as well, Ive been mostly focusing on wine because its easier than dealing with the proton pfx folder and protontricks while Im breaking the wineprefix while testing out possible fixes (and having to revert changes etc). Everyone is welcome to post things they have tried here. 1 Quote Link to comment Share on other sites More sharing options...
Jason Carr Posted July 21, 2020 Author Share Posted July 21, 2020 Thank you for the progress here guys, especially @static. I have everything upgraded to .NET Core 3.1; we're just doing some final testing and fixes before releasing it in beta form. I plan to release a new beta before the end of the week, and I expect things to run at least a little bit more smoothly on Linux with the .NET Core 3.1 beta release. 3 Quote Link to comment Share on other sites More sharing options...
The_Keeper86 Posted July 21, 2020 Share Posted July 21, 2020 Thanks @Jason Carr and @static and anyone else involved for trying to get LB/BB working on Linux! Huge step forward! 1 1 Quote Link to comment Share on other sites More sharing options...
The_Keeper86 Posted July 28, 2020 Share Posted July 28, 2020 (edited) Any more progress been made? I'm itching to boot back to Linux but LB keeps me on Windows like my games used to ? I know these things take more time than I could ever possibly imagine! If it matters I mainly use Manjaro/Arch. Edited July 28, 2020 by The_Keeper86 Quote Link to comment Share on other sites More sharing options...
static Posted July 29, 2020 Share Posted July 29, 2020 (edited) @The_Keeper86 11.3 beta uses .net core and not .net framework, I'll test it out later and see if it helps, I have a feeling it will, I'll report back when I've had a chance to get it all set up. Edit: Crashes at startup after update to 11.3 beta 3 from 11.2 on 11.2 setup prefix, with LB installing the netcore dep backtrace.txt Edited July 29, 2020 by static Quote Link to comment Share on other sites More sharing options...
The_Keeper86 Posted July 29, 2020 Share Posted July 29, 2020 @static thanks for testing. shame it crashes but I have a feeling we're getting closer. Hopefully @Jason Carr can chime in on that error when he has time. I did have a question though since this will be using Wine I keep wondering if it'll be possible to launch Linux native versions of emulators such as Retroarch or will we have to use Windows versions? Sorry if this is way too early to ask. Quote Link to comment Share on other sites More sharing options...
static Posted July 30, 2020 Share Posted July 30, 2020 (edited) @The_Keeper86 we are so much closer, even if the beta doesnt launch .net core is available on linux so this should bring us closer to a native build. You can launch native emu's from wine via wines "z:" but I'm not sure if LaunchBox's launch options are configurable enough at this time to let us get rid of the .exe extension or not and haven't really tested it out enough to get it working as I've mainly focused on just getting LaunchBox to run in wine. https://docs.microsoft.com/en-us/dotnet/core/install/linux https://docs.microsoft.com/en-us/dotnet/desktop-wpf/migration/convert-project-from-net-framework https://devblogs.microsoft.com/dotnet/migrating-a-sample-wpf-app-to-net-core-3-part-1/ https://ccifra.github.io/PortingWPFAppsToLinux/Overview.html Edited July 30, 2020 by static 2 Quote Link to comment Share on other sites More sharing options...
The_Keeper86 Posted July 30, 2020 Share Posted July 30, 2020 @static thanks for all the info! It makes sense to get LB working first. It was just something I've been curious about. Good to know it should be possible! 1 Quote Link to comment Share on other sites More sharing options...
Jason Carr Posted August 3, 2020 Author Share Posted August 3, 2020 FYI guys, I have LaunchBox working with VLC videos and Big Box is starting up as well now (though seems to be locking up shortly after startup). The next beta should be an improvement. I'll update this thread when it's out. 1 Quote Link to comment Share on other sites More sharing options...
The_Keeper86 Posted August 4, 2020 Share Posted August 4, 2020 Thanks for the update @Jason Carr Quote Link to comment Share on other sites More sharing options...
Jason Carr Posted August 4, 2020 Author Share Posted August 4, 2020 Hey all, 11.3-beta-7 is out now, and the instructions and scripts in the first post of this topic have been updated. Videos are now working in LaunchBox. 1 Quote Link to comment Share on other sites More sharing options...
The_Keeper86 Posted August 5, 2020 Share Posted August 5, 2020 1 hour ago, Jason Carr said: Hey all, 11.3-beta-7 is out now, and the instructions and scripts in the first post of this topic have been updated. Videos are now working in LaunchBox. Amazing man thanks so much! I'll have to give it a shot! Still wondering how native Linux emulators will work but I know first priority is getting LB/BB working 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.