Jump to content

Wine patch for PSOBB on Linux and Mac


Recommended Posts

Hey everyone,

I'm not a player on this server (yet?), but seeing as how the PSOBB community has fragmented a bit I should probably share this with y'all too. I investigated the bursting screen crash on the 1.25.10+ clients that has plagued the game for years and prevented Linux and Mac support. It turns out, there were minor "optimizations" written into the texture loading routine in 1.25 that take advantage of an undocumented "feature" in d3d. League of Legends happens to use this "feature" as well. The "optimization" to texture loading are marginal at best and, naturally, break Wine because Wine is not designed to implement that undocumented feature.

This patch implements a hack that simulates the expected behavior, and while it should work for any game that uses it, this has been specifically designed for PSOBB.

Here is the source patch for Wine, plus some brief instructions on how to use it and what exactly it does. 

Link Mirror https://mega.nz/#!UYcjzKID!875sctIZDtmaZgbTwZT2mdfoV7r7stWkVlaNX_3StWM

The game running on Mac El Capitan (not on this server):

https://pbs.twimg.com/media/CUjnVSEUAAAmo4M.png:large

IME support does not work as far as I can tell (the game detects it, but only types latin input). Controllers work, and the music at the title screen does not get garbled like on Windows 7/8/10. The game, for the most part, works as it did when it came out 11 years ago.

Compiling for 64-bit Linux requires gcc-multilib or a virtual machine running 32-bit Linux. This is fairly trivial, just write a Vagrant VM script, I may write a tutorial up sooner or later.

Edited by Larva
  • Like 14
Link to comment
Share on other sites

Quiere decir que esto sirve para ejecutar pso SERVER ULTIMA ( <3 ) desde una mac? o LINUX

Yes, you can play Ultima Server on Mac and Linux with this code patch.

[Google Translate]

Sí, usted puede jugar Ultima Server en Mac y Linux con este parche para el código.

  • Like 2
Link to comment
Share on other sites

  • 3 weeks later...

Yikes my avatar! Anyway I'm just working through patching this. If I am successful I'll post a step-by-step on how to do this whole thing beginning from a fresh mac (no wine, no PSO, etc.). Any tips on deploying the patch itself? The notes on the GitHub aren't incredibly comprehensive to us non-technical folk.

Link to comment
Share on other sites

Hey there y'all! I'm a linux user looking to join you all in a short minute here with setting up your PSOBB for linux!

First some disclaimers:

  • I am NOT an expert, but I AM experienced in troubleshooting linux things and will help where I can
  • Since the linux ecosystem is very diverse, there are many different systems to consider. What works for me may work for you, or it may fail horribly. I'll compensate by trying to do this as "vanilla" as possible.

Assumptions and steps I am skipping in this process. If these requirements are not met, these are simple enough that basic googling will help you much quicker/better than waiting for a reply from me.

  • You know how to open/use a command line and can install software on your machine as administrator.
  • You have a working environment to compile wine (gcc-multilib is probably a good start)
  • You have the ability and motivation to learn as necessary if things go off the beaten path here.
  • We will be using 1.8 stable NOT staging or a rc. Update versions as necessary, but keep in mind which you are using for patch purposes. Basically, the sources version you patch should be the same as what you're telling POL to use.

So without further ado (since we'd all love some more brothers and sisters in this community), here is how I got this to work!

Step 1 (Downloads):

First, you need to download a few things:

  1. the client
  2. install PlayOnLinux (as your distribution requires)
  3. the wine sources from winehq
  4. the .patch file mentioned earlier in this thread.

Step 2 (Wine patching):

Alright, this one is tricky, but I've done the research for ya so hopefully it'll be simple ;)

  1. Extract that wine-1.8 tar file to anywhere you want. That patch file you downloaded? Throw it in the root directory of that (should contain a file called 'configure' already) and run this command from the terminal:
    patch -p1 < psobb-mipmap-patch.patch && ./configure && make depend && make
  2. The terminal will start spewing all sorts of stuff. This is fine. It's compiling wine to make the files we need (there may be a more efficient way, but I went nuclear and compiled everything just in case. Input from the wiser would be welcome). While this happens, move on to the next step as it too will take a while.

Step 3 (Virtual Drive Setup):

Start PlayOnLinux (POL) and choose Install -> Install a non-listed program. This will guide you through a few things. Primarily, you want to install in a new virtual drive, name said virtual drive (PSOBB will do just fine), and select 'Use another version of Wine." When it prompts you for the version, choose 1.8 if it is available or system otherwise, we can change that later anyways. Make sure you're doing 32 bit. When it prompts you to run a program/installer, cancel out. Your drive will be saved.

Optional: If you couldn't select 1.8 just now, go to the POL main window, choose configure and choose your virtual drive (I use PSOBB for my name) and click the button next to the Wine Version dropdown. Stay in the (x86) tab and select 1.8 from the left as well as the arrow in the middle, but pointing right. This will download the actual wine version for POL to use. After it downloads, go back and this time select 1.8 from the dropdown instead of the button.

Step 4 (Installing the game/applying the patch):

Once Step 3 is done AND the client is finished downloading, you may do this:

From the main POL Window, click Configure, select your virtual drive and go to the Miscellaneous tab and choose the "Run a .exe file in this virtual drive" option. Browse to the finished client installer and run through it like normal. Don't run it after the installer finishes yet! Afterwards, you need to add a shortcut for POL and yourself to use to launch the game. From the configure window, select your virtual drive and choose the make a new shortcut button. Select the .lnk for the game and that will do it. I deleted the link on the desktop just in case it wasn't right.

Once Step 3 is done AND the wine patching terminal has stopped buzzing (should show it's normal prompt now), do this:

Go back to the sources directory and go to the dlls folder. You need two files from here: d3d8.dll.so (d3d8 folder) and wined3d.dll.so (wined3d folder). You take these and copy them to the virtual drive where the main PSOBB executables are (ie. drive_c/Phantasy Star Online Blue Burst/) and simply drop the .so at the end of the file names. You should be able to access the virtual drives for POL from your home directory (POL adds a link for you).

That's it! Run the game from POL and watch your beautiful PSOBB load up. Make sure to patch and have fun!

I'll update this as I notice new things and tweaks to fix things. Currently in lobby and only thing so far is some mild lag. May need to try out the staging version of wine to see if that fixes it. otherwise, normal wine works fine so far!

EDITS:

Random Quirk #1: The options window on the launcher doesn't show the save button on the bottom left, but you can, in fact, click it! Lil' bugger is hiding for me for some reason...

Edited by teh_lame
Link to comment
Share on other sites

  • 5 weeks later...

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...