City of Heroes on Linux: Difference between revisions
Thunderforce (talk | contribs) (I may be missing something here but I've no idea why it was suggested to scribble on the root filesystem!) |
|||
(52 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{TOCright}} | {{TOCright}} | ||
{{see also|City of Heroes on Mac|City of Heroes on Steam Deck}} | |||
{{EdNote|note=Homecoming Developers do not support any client bugs on Linux. If an issue cannot be reproduced in a Windows client, Linux specific bugs will be given a form response and closed without resolution. Please use the [https://forums.homecomingservers.com/forum/12-help-amp-support/ Homecoming Forums] for Linux client support from other users.}} | {{EdNote|note=Homecoming Developers do not support any client bugs on Linux. If an issue cannot be reproduced in a Windows client, Linux specific bugs will be given a form response and closed without resolution. Please use the [https://forums.homecomingservers.com/forum/12-help-amp-support/ Homecoming Forums] for Linux client support from other users.}} | ||
Line 14: | Line 14: | ||
''For sake of brevity, we'll assume you have a working Linux installation that is fully patched. The distro does not matter. Also assuming a 64-bit system and you can replace '''"usernameGoesHere"''' below with your Linux username where needed.'' | ''For sake of brevity, we'll assume you have a working Linux installation that is fully patched. The distro does not matter. Also assuming a 64-bit system and you can replace '''"usernameGoesHere"''' below with your Linux username where needed.'' | ||
*Install Wine Stable using this download page -- https://wiki.winehq.org/Download | ''Using a Steam Deck? An install script is available on [[City of Heroes on Steam Deck]].'' | ||
*Install Wine Stable using this download page -- https://wiki.winehq.org/Download | |||
*Once installed the default Wine Prefix (/home/usernameGoesHere/.wine) will be made. It will prompt to install Gecko and Mono. Note that NEITHER library is necessary to run Homecoming: City of Heroes (although Mono will be useful if you wish to use Mids Reborn or other .NET apps later.) Another note worthy of mention -- it is not prompted during setup but you do NOT need to install Visual C++ Runtime at all. Wine handles this requirement automatically. | *Once installed the default Wine Prefix (/home/usernameGoesHere/.wine) will be made. It will prompt to install Gecko and Mono. Note that NEITHER library is necessary to run Homecoming: City of Heroes (although Mono will be useful if you wish to use Mids Reborn or other .NET apps later.) Another note worthy of mention -- it is not prompted during setup but you do NOT need to install Visual C++ Runtime at all. Wine handles this requirement automatically. | ||
*Run the Homecoming Installer. Choosing a location on drive C will try to install Homecoming in ~/.wine (eg C:\Games\Homecoming -> ~/.wine/drive_c/Games/Homecoming); Z: is the root Linux drive (so Z:\Games\Homecoming would correspond to /Games/Homecoming; an ordinary user account would not have permission to create this directory). | |||
*Run the Homecoming Installer. | |||
It is also important to note this procedure is sufficient for a single-user Linux system alone. For a multiuser system, either you need to repeat the procedure for each user (and sufficient disk space is required: 6-12GB per user), or configure permissions to allow multiple users access to the same WinePrefix. | It is also important to note this procedure is sufficient for a single-user Linux system alone. For a multiuser system, either you need to repeat the procedure for each user (and sufficient disk space is required: 6-12GB per user), or configure permissions to allow multiple users access to the same WinePrefix. | ||
== System Requirements == | == System Requirements == | ||
As a generality, if a system would not be able to play City of Heroes using Windows because of the hardware in use there's a good chance Linux won't work either. | |||
*1 GHz Dual Core processor (AMD/Intel 32 or 64 bit), | |||
*2GB of RAM, | |||
*a video card or integrated graphics support capable of OpenGL 2.0/3.0, | |||
*6-12GB free hard drive space. | |||
'''Most systems made since 2018 should more than meet these requirements.''' The biggest factor is video support; in most cases performance will be either equivalent to, or have a slight performance increase (around 10%-20%) over Windows due to less overhead processes present in the OS. This varies due to the distribution used, graphics driver installed, and power consumption setting (such as a laptop on a battery, or any 'Eco mode' settings used.) | |||
== | == Support Lifeline == | ||
Linux has one key difference over Windows for support: When NVidia, AMD, or Intel drop Linux driver support for a video card and the kernel fails to compile with the legacy driver in-place, you can no longer play City of Heroes on that system. '''There is no specific date when this support ends; it will not be announced publicly when a software upgrade fails.''' The day that the video driver fails to recompile kernel modules for your current OS is when you need to decide. Possible fixes include: | |||
*Run COH on an older OS (that still receives updates) so older drivers continue to compile normally, | |||
*Upgrade your hardware, or | |||
*Set up your system to dual-boot (or wipe and restore) Windows to continue play. | |||
== | == Unsupported Linux Hardware == | ||
The following Linux systems will not have the resources to play City of Heroes. | |||
=== ARM Linux === | === ARM Linux === | ||
Homecoming Launcher (and more importantly the City of Heroes client) is not compiled for ARM. Wine will not run HCLauncher on an ARM system without a Software Emulator for X86 apps. Single-Board Computers (Raspberry Pi and variants | Homecoming Launcher (and more importantly the City of Heroes client) is not compiled for ARM. Wine will not run HCLauncher on an ARM system without a Software Emulator for X86 apps. Single-Board Computers (Raspberry Pi and variants) will not run City of Heroes with Wine alone. | ||
=== Chromebooks === | |||
As any Chromebook with an ARM chip is a non starter (see "ARM Linux" above this section), Chromebooks generally cannot run City of Heroes. The few exceptions out there either are discontinued models no longer supported, or cost more than a Windows Laptop which can run it far easier. | |||
== Paid Support == | |||
=== Codeweavers === | |||
The main sponsor of the Wine Project, [https://www.codeweavers.com/crossover/#linux Codeweavers], maintains a paid license of Crossover as a Prosumer Wine distribution offering tech support for use. It is important to note two things: | |||
#''Paying for Crossover is not required to play Homecoming if you can install Wine on your own'', however, it will work if you require paid Tech Support assistance instead of a Community-led forum. | |||
#Crossover's main customer base is business-class users. (They will support gaming, but a lot of what Cedega did in the past to simplify gaming use is not built into the application.) | |||
== How It Works == | == How It Works == | ||
{{hidden|Click to Read|bg1=brown| | |||
Programs that run on Windows do not directly access the hardware in the machine. For example, if a program needs a file from the hard drive, it does not talk directly to the hard drive, but it calls a function in the kernel, which in turn talks directly to the hard drive. | Programs that run on Windows do not directly access the hardware in the machine. For example, if a program needs a file from the hard drive, it does not talk directly to the hard drive, but it calls a function in the kernel, which in turn talks directly to the hard drive. | ||
Line 60: | Line 67: | ||
City of Heroes in particular already uses OpenGL for its 3D graphics (while using DirectX primarily for input), which gives it a performance advantage when running through WINE. | City of Heroes in particular already uses OpenGL for its 3D graphics (while using DirectX primarily for input), which gives it a performance advantage when running through WINE. | ||
;WINE - Wine is Not an Emulator. | ;WINE - Wine is Not an Emulator. | ||
:The app compatibility layer that can be optionally installed on *nix systems (Linux, including Debian, Fedora, and FreeBSD variants, Android and MacOS under the Darwin project) to allow x32/x64 Windows apps to run at close-to-native execution. Wine includes libraries, system files, and enough of a Windows filesystem to fool most Windows apps into thinking they're running on Windows itself. | :The app compatibility layer that can be optionally installed on *nix systems (Linux, including Debian, Fedora, and FreeBSD variants, Android and MacOS under the Darwin project) to allow x32/x64 Windows apps to run at close-to-native execution. Wine includes libraries, system files, and enough of a Windows filesystem to fool most Windows apps into thinking they're running on Windows itself. | ||
;Wine Prefix - Basic unit of Wine access. | |||
:A Wine Prefix is a miniature file system of Windows. The default one on your system is /home/YourUsernameHere/.wine and is made automatically the first time you run a Windows app or use Wine. (The . in front of Wine means it is a hidden directory. You can turn on "Show Hidden Files" in your file manager to see it.) Inside the .wine folder is a similar directory structure to a Windows Hard Drive, with a Windows folder and essential DLLs inside, all the folders in Windows such as System32, Fonts, and other system resources, and a Program Files folder for installed apps that require one. You can made additional Wine Prefixes, assuring your programs are isolated from each other (if an app fails in one prefix, the others are unfazed.) | |||
;OpenGL & Vulkan - Graphics Libraries. | ;OpenGL & Vulkan - Graphics Libraries. | ||
Line 71: | Line 80: | ||
;DXVK - Linux Direct X to Vulkan Translation Layer | ;DXVK - Linux Direct X to Vulkan Translation Layer | ||
:As graphics cards de-emphasize performance in legacy areas for more current standards Vulkan will receive more improvements over time over OpenGL. DXVK allows a modern graphics card to take current Vulkan support already in place to use on older OpenGL calls for a slight performance increase. (Lutris is a GUI Game Launcher that handles DXVK installation in the same package for you.) | :As graphics cards de-emphasize performance in legacy areas for more current standards Vulkan will receive more improvements over time over OpenGL. DXVK allows a modern graphics card to take current Vulkan support already in place to use on older OpenGL calls for a slight performance increase. (Lutris is a GUI Game Launcher that handles DXVK installation in the same package for you along with other optimizations as well.) | ||
;FUSE - Filesystem in USErspace | ;FUSE - Filesystem in USErspace | ||
:FUSE is Linux's approach at a secure file system for users to save configuration files, run local applications specific to each user, and store data secure from other users on the same system. When you have a WinePrefix installed it resides in userspace on your home folder. The apps you install and play are only available to you initially (without editing permissions or ownership) and other users will need to install their own WinePrefix as well. This separation prevents one user's Wine apps from affecting another and adds modularity. (Multiple WinePrefixes can exist per user, such as a work one vs. a home one, separate ones per game, etc.) | :FUSE is Linux's approach at a secure file system for users to save configuration files, run local applications specific to each user, and store data secure from other users on the same system. A user's home folder in FUSE has the same shortcut: ~ (tilde), which can be used on a relative path similar to Windows %APPDATA% shortcut: "~/.wine/drive_c/" will always send you directly to your default WinePrefix's drive_c folder. When you have a WinePrefix installed it resides in userspace on your home folder. The apps you install and play are only available to you initially (without editing permissions or ownership) and other users will need to install their own WinePrefix as well. This separation prevents one user's Wine apps from affecting another and adds modularity. (Multiple WinePrefixes can exist per user, such as a work one vs. a home one, separate ones per game, etc.) | ||
:FUSE is preferable over another location such as /usr, /var, or /etc as it simplifies file changes, allows Windows file permissions to exist and ignore Linux attributes, and is safer to other users on the same system from a security standpoint. | |||
;Mesa - Freedesktop open source graphic drivers that are vendor-neutral. | ;Mesa - Freedesktop open source graphic drivers that are vendor-neutral. | ||
Line 80: | Line 91: | ||
;Nouveau - Freedesktop approach at a 100% open source NVidia video driver. | ;Nouveau - Freedesktop approach at a 100% open source NVidia video driver. | ||
:Nouveau was started in the 2000s as a response to NVidia's open source ambitions at the time. The effort is trying to make a video driver for NVidia cards without reverse engineering their proprietary drivers so it is compatible with GPL and Free Software standards. The downside to the current approach for gaming is Nouveau is aiming for legacy compatibility over new features. While Nouveau may be useable for gaming purposes someday it is not advisable to play City of Heroes using Nouveau at this time. (Users who have strong opinions on Free Software standards that prevent them from accepting the use of proprietary drivers on a Linux system may have an easier time seeking Intel, AMD and Radeon hardware over NVidia until this improves.) | :Nouveau was started in the 2000s as a response to NVidia's open source ambitions at the time (none would be fair to say). The effort is trying to make a video driver for NVidia cards without reverse engineering their proprietary drivers so it is compatible with GPL and Free Software standards. The downside to the current approach for gaming is Nouveau is aiming for legacy compatibility over new features. While Nouveau may be useable for gaming purposes someday it is not advisable to play City of Heroes using Nouveau at this time. (Users who have strong opinions on Free Software standards that prevent them from accepting the use of proprietary drivers on a Linux system may have an easier time seeking Intel, AMD and Radeon hardware over NVidia until this improves.) | ||
;Kernel Modules - Linux's approach at hardware driver support. | ;Kernel Modules - Linux's approach at hardware driver support. | ||
:A kernel module is a compiled piece of software that "hooks" between the Linux kernel itself and the hardware system calls. Kernel Modules can be compiled when a system updates a hardware driver OR Linux Kernel. This causes the Kernel Module to recompile to handle the new instructions on either side. The focus on Free Software and Open Source code means that when a problem is found with hardware the community has the ability to handle it on their own; when proprietary drivers are used issues with Linux are 100% up to the hardware manufacturer to solve. Proprietary driver improvements have had middling to low results for Linux users historically. (Intel and AMD have had a far better track record of open sourcing their firmware code; NVidia since 2012 is improving gradually.) | :A kernel module is a compiled piece of software that "hooks" between the Linux kernel itself and the hardware system calls. Kernel Modules can be compiled when a system updates a hardware driver OR Linux Kernel. This causes the Kernel Module to recompile to handle the new instructions on either side. The focus on Free Software and Open Source code means that when a problem is found with hardware the community has the ability to handle it on their own; when proprietary drivers are used issues with Linux are 100% up to the hardware manufacturer to solve. Proprietary driver improvements have had middling to low results for Linux users historically. (Intel and AMD have had a far better track record of open sourcing their firmware code; NVidia since 2012 is improving gradually.) | ||
}} | }} | ||
== External Links == | == External Links == | ||
* [https://forums.homecomingservers.com/topic/23284-homecoming-launcher-linux-advice/ Linux Advice] - | * [https://forums.homecomingservers.com/topic/23284-homecoming-launcher-linux-advice/ Linux Advice] - Written in 2020, most distributions listed here are outdated. Also, Lutris is not necessary to run the title at all. | ||
* [http://appdb.winehq.org/objectManager.php?sClass=version&iId=2980 City of Heroes/City of Villains] entry in the WINE application database. | * [http://appdb.winehq.org/objectManager.php?sClass=version&iId=2980 City of Heroes/City of Villains] entry in the WINE application database. | ||
* [http://winehq.com/ WINE], the underlying technology that allows Windows programs to run on Linux | * [http://winehq.com/ WINE], the underlying technology that allows Windows programs to run on Linux |
Latest revision as of 16:31, 18 January 2024
- See also: City of Heroes on Mac and City of Heroes on Steam Deck
Homecoming Developers do not support any client bugs on Linux. If an issue cannot be reproduced in a Windows client, Linux specific bugs will be given a form response and closed without resolution. Please use the Homecoming Forums for Linux client support from other users.
Overview
It is possible to run City of Heroes on Linux through a technology called WINE (WINE Is Not an Emulator). By porting the Windows API libraries that City of Heroes uses to Linux, WINE effectively "fools" City of Heroes into thinking that it is actually running on Windows.
Instructions (Homecoming Launcher)
For sake of brevity, we'll assume you have a working Linux installation that is fully patched. The distro does not matter. Also assuming a 64-bit system and you can replace "usernameGoesHere" below with your Linux username where needed.
Using a Steam Deck? An install script is available on City of Heroes on Steam Deck.
- Install Wine Stable using this download page -- https://wiki.winehq.org/Download
- Once installed the default Wine Prefix (/home/usernameGoesHere/.wine) will be made. It will prompt to install Gecko and Mono. Note that NEITHER library is necessary to run Homecoming: City of Heroes (although Mono will be useful if you wish to use Mids Reborn or other .NET apps later.) Another note worthy of mention -- it is not prompted during setup but you do NOT need to install Visual C++ Runtime at all. Wine handles this requirement automatically.
- Run the Homecoming Installer. Choosing a location on drive C will try to install Homecoming in ~/.wine (eg C:\Games\Homecoming -> ~/.wine/drive_c/Games/Homecoming); Z: is the root Linux drive (so Z:\Games\Homecoming would correspond to /Games/Homecoming; an ordinary user account would not have permission to create this directory).
It is also important to note this procedure is sufficient for a single-user Linux system alone. For a multiuser system, either you need to repeat the procedure for each user (and sufficient disk space is required: 6-12GB per user), or configure permissions to allow multiple users access to the same WinePrefix.
System Requirements
As a generality, if a system would not be able to play City of Heroes using Windows because of the hardware in use there's a good chance Linux won't work either.
- 1 GHz Dual Core processor (AMD/Intel 32 or 64 bit),
- 2GB of RAM,
- a video card or integrated graphics support capable of OpenGL 2.0/3.0,
- 6-12GB free hard drive space.
Most systems made since 2018 should more than meet these requirements. The biggest factor is video support; in most cases performance will be either equivalent to, or have a slight performance increase (around 10%-20%) over Windows due to less overhead processes present in the OS. This varies due to the distribution used, graphics driver installed, and power consumption setting (such as a laptop on a battery, or any 'Eco mode' settings used.)
Support Lifeline
Linux has one key difference over Windows for support: When NVidia, AMD, or Intel drop Linux driver support for a video card and the kernel fails to compile with the legacy driver in-place, you can no longer play City of Heroes on that system. There is no specific date when this support ends; it will not be announced publicly when a software upgrade fails. The day that the video driver fails to recompile kernel modules for your current OS is when you need to decide. Possible fixes include:
- Run COH on an older OS (that still receives updates) so older drivers continue to compile normally,
- Upgrade your hardware, or
- Set up your system to dual-boot (or wipe and restore) Windows to continue play.
Unsupported Linux Hardware
The following Linux systems will not have the resources to play City of Heroes.
ARM Linux
Homecoming Launcher (and more importantly the City of Heroes client) is not compiled for ARM. Wine will not run HCLauncher on an ARM system without a Software Emulator for X86 apps. Single-Board Computers (Raspberry Pi and variants) will not run City of Heroes with Wine alone.
Chromebooks
As any Chromebook with an ARM chip is a non starter (see "ARM Linux" above this section), Chromebooks generally cannot run City of Heroes. The few exceptions out there either are discontinued models no longer supported, or cost more than a Windows Laptop which can run it far easier.
Paid Support
Codeweavers
The main sponsor of the Wine Project, Codeweavers, maintains a paid license of Crossover as a Prosumer Wine distribution offering tech support for use. It is important to note two things:
- Paying for Crossover is not required to play Homecoming if you can install Wine on your own, however, it will work if you require paid Tech Support assistance instead of a Community-led forum.
- Crossover's main customer base is business-class users. (They will support gaming, but a lot of what Cedega did in the past to simplify gaming use is not built into the application.)
How It Works
External Links
- Linux Advice - Written in 2020, most distributions listed here are outdated. Also, Lutris is not necessary to run the title at all.
- City of Heroes/City of Villains entry in the WINE application database.
- WINE, the underlying technology that allows Windows programs to run on Linux
- Paragon Wiki Archive version of this same page