The xIPL is a fancy bash script designed to automate the Installation, Patching, and Launching of Ultima Online. This software aims to be compatible with Linux, BSD, and MacOS (Intel-base Processors) along with MacOS (M1/M2 Processors).
The original patching concept and basis for this project is accredited to Voxpire with his ServUO/IPL project. Unfortunately, the project is limited to Microsoft Windows, thus not supporting the audience of my project.
- Cross-platform, tested in Linux (Intel 64-bit) and MacOS (ARM M2)
- Configurable to various shards.
- xIPL auto-updates itself.
- Auto-configures settings.
- Installs / Patches client
- Launches client
- Preserve backup of macro profiles.
The default configuration for the xIPL is aimed at the shard Shadow Age: REBORN. If you would like to have your shard added to the 'shards/' directory, then feel free to contact me at:
Service | Username | ID |
---|---|---|
Discord | offx1err | 113426175669313536 |
When messaging me, please **do not forget** include your configuration file. An example can be found here. After your configuration is added, users will then be able to edit line 12 of xIPL with the name of your configuration. I retain the right to edit or remove any configuration for any reason but that is highly unlikely to ever happen. The most likely scenario is in the event a future patch adds functionality to the xIPL and all configurations will need to be updated.
Example provided below to assign the 'example' configuration as the xIPL's Shard:
File: xIPL
#!/usr/bin/env bash
# Created by: Ohkthx (Schism)
# Purpose of file: This is a wrapper for all functions inside of
# xIPL_extras, that is responsible for keeping that file updated
# with the current release available.
# If a new update is available, this script downloads and launches it.
# Name of the shard to patch for, check out:
# https://github.com/Ohkthx/xIPL/tree/main/shards
# For all valid shard names.
SHARD_NAME="example"
OS | Arch | Wine Version | Winetricks Version |
---|---|---|---|
macOS | arm64 | wine-7.7 | 20220411-next |
linux | x86_64 | wine-5.5 | 20210206 |
linux | x86_64 | wine-8.0 | 20210206 |
ClassicUO
- ClassicUO.exe
- linux x86_64, Wine version
wine-5.5
has no audio. Wine versionwine-8.0
audio works. - macOS arm64, Wine version
wine-7.7
audio crackles. Setting Audio MIDI Setup -> Format -> 96,000 Hz resolves it.
- linux x86_64, Wine version
- ClassicUOLauncher.exe
- linux x86_64, Wine version
wine-5.5
will not start Launcher. Wine versionwine-8.0
it works.
- linux x86_64, Wine version
It is ideal to store the installation script in its own directory, below provides commands to create that directory in the terminal and switch to it. The method to downloading the client is up to you. You can use curl, wget, or just copy the raw file from the browser. curl and wget commands are provided below.
# Create a directory and enter it for the installation.
mkdir xIPL
cd xIPL
# Obtaining the xIPL with CURL
curl -O https://raw.githubusercontent.com/Ohkthx/xIPL/main/xIPL
# OPTIONAL: Obtaining the xIPL with WGET instead.
wget https://raw.githubusercontent.com/Ohkthx/xIPL/main/xIPL
- Perl - This is used to replace text in some of the registry files for Wine since sed's behaviour is platform dependent.
- Git - Used to download and update additional dependencies.
- Python - Minimum of Python 3 version **3.9.1**
- Brew - (MacOS) Used for the installation of WINE and WINETRICKS.
- curl or wget - Used for auto-updating the xIPL.
- Wine - Run the ClassicUO client. Downloaded automatically for MacOS, package provided by Gcenx/homebrew-wine
- Winetricks - Download and install additional required packages for Wine. Downloaded automatically for MacOS, package provided by Gcenx/homebrew-wine
- uopatcher - Downloaded automatically and used for patching of the client, provided by Ohkthx/uopatcher.
To start the xIPL, you just need to type the following. In additional to normal execution, provided are ALTERNATIVE steps to make the script executable and started with using ./xIPL
. There is also the --launcher
flag that can be passed to the xIPL to start a launcher such as ClassicUOLauncher if it is specified in the servers configuration files. Other advanced functionality can be seen with the --help
flag.
# Start with bash.
bash xIPL # Normal start.
bash xIPL --help # See advanced features.
bash xIPL --launcher # Start a launcher instead of a client.
# ALTERNATIVE: Make it executable and be able to run with ./xIPL
chmod +x xIPL # Only needs to be performed once to mark it executable.
./xIPL # Normal start.
./xIPL --help # See advanced features.
./xIPL --launcher # Start a launcher instead of a client.