Jump to content

Ultima for GNU/Linux (A Wine Guide)


Settyness

Recommended Posts

I've played PSO on and off for about fifteen years, been with Ultima around five years and have used GNU/Linux for about the same amount of time. Throughout this time, Wine has continued to get better, faster, and stronger, and Ultima has received a new launcher. Whenever I show off screenshots of my setup, I usually showcase a window of PSOBB, and I'm usually asked how I got it running. This guide will help visitors from Google, and forum searches alike, learn how to get Ultima PSOBB up and running on a GNU/Linux system, and hopefully, will lend some insight into why the steps provided are necessary.

0. First Thing's First
Be sure to install the latest wine and winetricks packages. If you're using Ubuntu, or any other non-rolling release and/or Debian-based distro, I recommend manually grabbing the newest wine and winetricks available. If you're using an Arch-based distro, this makes things much easier. I recommend using the wine-staging branch as well.

1. Create a 32-bit Wine Prefix

$ WINEPREFIX=$HOME/.wine WINEARCH=win32 wine wineboot


Create a new Wine profile and be sure to make it 32-bit to minimize wonkiness associated with dotnet libraries. In this example, I've used the default Wine profile (~/.wine), but you can use whatever you'd like. Once that's finished setting up, we can move onto installing libraries.

2. Do Some Winetricks

$ winetricks -q corefonts d3dx9 dotnet462 xinput


This should be all you need for Ultima PSOBB on the Windows side of things. Passing -q makes the installation automatic (quiet), so you can go make a sandwich while dotnet takes it sweet time.

  • corefonts - May not be necessary depending on your installed system fonts, but if you haven't bothered installing any of the Windows default fonts with your package manager (e.g. ttf-ms-fonts), expect the game to crash immediately on character select. If you're not sure, just install this.
  • d3dx9 - Low level graphics API. It's what Windows uses to allow applications to talk to your graphics stack. You will need this, no questions asked.
  • dotnet462 - Required for the launcher to work. According to the website and your terminal, 4.0 is all that's required, but I haven't gotten it to work with dotnet40 (dotnet45 works, however). This is the latest version I've found to work without issue, so in case you're sharing profiles, you can hopefully get the latest compatibility. If this isn't found by winetricks, then you likely do not have the latest version. Refer to the beginning of this guide and see the links provided.
  • xinput - Only required if you want to use a controller.

This is enough to get the game (psobb.exe) working, but if you attempt to use the desktop shortcut, or run Launcher.exe, it will crash. Running from the terminal tells us we need winbind, so let's grab that...

3. Winbind
You're going to have to find the package that provides winbind for your distro. For example, on Arch Linux, the package is called libwbclient. Installing that alone will have the launcher working, no problem. If you're unsure, installing samba should pull winbind as a dependency (so on Ubuntu-based distros, it probably already exists for Windows-based, networked print jobs).

4. Play Ultima PSOBB
That should be all you need. There are some caveats to consider, however:

  • The resource requirements are pretty steep, much steeper than native Windows. I believe this to be related to an I/O scheduling feature that is either implemented poorly in Wine or completely undocumented. It's pure speculation though. On a decent gaming rig, this won't be a concern, but don't expect it to run on a laptop without considerable throttling. If anyone knows of a way to mitigate this, please share!
  • Using any widescreen resolution causes psobb.exe to crash immediately on launch. This could be an issue with the client itself, I have not had a chance to test natively.
  • Sometimes, constant, fallacious up inputs will be issued to the client when a controller is plugged in. In other words, the cursor won't stop scrolling up as if you're holding the joystick in the up position. There are other games that do this and this isn't specific to PSOBB as far as I know. I think I fixed this a long time ago and have forgotten what I did. If I come across a fix for this, I will update this guide.

That should be it. Please let me know if this guide was helpful or if you have any observations of your own you wish to include. If you're having troubles, consider this a support thread; I'll subscribe and do my best to check back from time to time.

Edited by Settyness
  • Like 7
Link to comment
Share on other sites

Oh Nice !Ā  :)Ā Ā 

I built a guide for bootcamp (MAC OSX)Ā  I been distributing to MAC users.Ā Ā 

Edited by Virec
Link to comment
Share on other sites

23 minutes ago, SanicTeam said:

This is pretty neat! This might help me with playing PSO for the Nintendo Switch since its possible to run linux on the Switch

Unfortunately, since the Switch uses ARM CPU ISA and PSOBB is an x86 binary, you won't be able to get much done unless you're doing all of this inside of an x86 emulator. It's not impossible, but it will likely be a headache, incur MUCH more overhead, and would be outside the scope of this guide in general. =/

Edited by Settyness
Link to comment
Share on other sites

1 hour ago, Settyness said:

Unfortunately, since the Switch uses ARM CPU ISA and PSOBB is an x86 binary, you won't be able to get much done unless you're doing all of this inside of an x86 emulator. It's not impossible, but it will likely be a headache, incur MUCH more overhead, and would be outside the scope of this guide in general. =/

Ah i see. Well its something to test and think about. If Linux will give me a headache like you said i might aswell just wait until Win10 is available, since theres apperently a Win10 OS that runs off of Arm CPU's. Unfortunatly the person whos working on Win10 for the Switch hasnt updated his progress in a while.

Link to comment
Share on other sites

50 minutes ago, Settyness said:

The OS isn't the issue. PSOBB is an x86 binary, so running it on ARM in any capacity still requires an emulator.

ooohhh ok. Dang. Welp i just hope something new pops up for pso

Link to comment
Share on other sites

Unless SEGA open sources PSO or compiles their own ARM PSOBB (both are extremely unlikely) there won't be any official solution.

This person is working on re-implementing the PSOBB client from scratch. Their YouTube has some pretty compelling demonstrations. They're also working on a PSOBB sequel. Projects like these would enable compiling ARM binaries and the like.

Edited by Settyness
Link to comment
Share on other sites

2 hours ago, beezemanjones said:

Will this work on a MacBook Air? XD

Ā 

There's no reason it wouldn't work, however as mentioned at the end of the guide, there is a bit of a performance cost for this particular game. Due to the tendency of Mac products to thermal throttle, it might not run well at all (at least on an Air model). You could give a shot. If the Wine method proves to be too slow, you can always try Bootcamp/Paralles as a native workaround, but I believe it may cost money.

Here is an easy guide I found that you can follow to get yourself Wine and its requirements (you'll only need to follow steps 1 - 3, step 4 shows you how to run programs via command, but I believe double-clicking the EXE's will work -- it's recommended to use command so you can see errors, should they arise), then follow these instructions to get winetricks. Hope you're comfortable using bash, it's not as difficult as it seems. Just take your time and follow step by step.

Once you have wine and winetricks, go to step 1 of my guide.

Edited by Settyness
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...