Skip to content
/ xIPL Public

Cross-platform (x) Installer, Patcher, and Launcher (IPL) for Ultima Online.

License

Notifications You must be signed in to change notification settings

Ohkthx/xIPL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Patreon donate button Buy me a coffee! Ko-fi
Required Python Version. No data.
Discord connect button.

xIPL, Cross-platform (x) Installer, Patcher, and Launcher (IPL)

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.

Features

  • 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

TODO

  • Preserve backup of macro profiles.

Optional: Configuration and Shard Specific Settings

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"

Known Issues / Testing

Tested on

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

Issues

ClassicUO

  • ClassicUO.exe
    1. linux x86_64, Wine version wine-5.5 has no audio. Wine version wine-8.0 audio works.
    2. macOS arm64, Wine version wine-7.7 audio crackles. Setting Audio MIDI Setup -> Format -> 96,000 Hz resolves it.
  • ClassicUOLauncher.exe
    1. linux x86_64, Wine version wine-5.5 will not start Launcher. Wine version wine-8.0 it works.

Installation

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

Requirements

  • 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

Dependencies

  • uopatcher - Downloaded automatically and used for patching of the client, provided by Ohkthx/uopatcher.

Running

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.

About

Cross-platform (x) Installer, Patcher, and Launcher (IPL) for Ultima Online.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages