Perfect World on Ubuntu

You may already know that I’m playing an MMORPG called Regnum Online, but I’ve also grown fond of the Asian game Perfect World. It is only available for Windows, and is listed as Garbage at Wine’s AppDB. There are indeed some glitches in the game and you’ll have to disable something in the code of Wine before textures fully work.

This post explains how to apply the fix and contains a basic overview of the game. Please keep in mind that I’m not that experienced yet with the game.

The texture fix

There is something wrong with the S3TC support of Wine for this game or something wrong with the S3TC support of the game in such a way that it only glitches in Wine.
Anyway, the bug is reported in Wine bug #12560. Unfortunately the status is still at NEW.

The bug causes the map to be unreadable and misrenders the borders of the in-game windows; you can see the results in the attachments of the bug. If you want to have a readable map, which is very, very useful, you’ll have to disable S3TC support in Wine. Someone at the Wine Bugzilla called heema created a patch for 1.1.14.

What you have to do is download the source, edit the code and execute the regular ./configure, make and sudo make install chain. If you don’t want to patch, because the version of Wine you’re using is too different or you’re just not confortable with patching you can also do it manually:

After unpacking the source, open

src/wine/dlls/wined3d/device.c

and search for

                 } if (destFormat != srcFormat) {
                     FIXME("Updating mixed format compressed texture is not curretly support\n");
                 } else {
                     GL_EXTCALL(glCompressedTexImage2DARB(glDescription->target, glDescription->level,
                             glDescription->glFormatInternal, srcWidth, srcHeight, 0, destSize, data));

Comment the last two lines — the function and method calls in the else block — out. You could add

FIXME("Perfect World has got no S3TC support in Wine");

after the commented lines to make it easier to find back and to locate in terminal backlogs.

Now open

src/wine/dlls/wined3d/directx.c

search for

         case WINED3DFMT_DXT5:
             if (GL_SUPPORT(EXT_TEXTURE_COMPRESSION_S3TC)) {
                 TRACE_(d3d_caps)("[OK]\n");
                return TRUE;
             }
             TRACE_(d3d_caps)("[FAILED]\n");
             return FALSE;

or something similar and replace the return TRUE; statement with

return FALSE;

That’s it! Now you’re ready to compile and install the program. Thanks to the commenters on the bug for the patch!
Note: the patch I linked to was written for Wine 1.1.14, but since 1.1.15 has already been released I’m not sure whether it still works.

International against Multilanguage Service

Originally the game was developed for the Chinese market. Next to the Malasyan version there are two other versions of the game that are English or have English support. These are Perfect World International and Perfect World Multilanguage Service. Perfect World International doesn’t target the international market, but just North-America. Perfect World Multilanguage Service targets the European market and currently only supports English, although more languages are expected to be officially supported after teh announced updated at 28 February.

The quality of the translations in Multilanguage Service, MS, is sometimes of a Babelfish-level. However, I find it worth the more players there are online at times that are sane for European beings. If you are interested in the game I would pick the version targeted at your part of the world.

Basic game overview

The three races of the world, Humans, Untamed and Wing Elves, live in a world created by a god called Pan Gu that has decided to retreat from ruling the world. Furthermore the Humans and Winged Elves are restoring their powers after they stopped the internal wars; there is something much important to focus on together: the wraiths, remainings of evil creatures that were the result of Pan Gu’s first attempt to create life. They managed to escape the deadly tsunamis he sent to the world to erase them all before the three new races remained. The wraiths have now returned and are slowly capturing terrain.

Grinding is also in this game the way of gaining levels, but fortunately there are enough quests to cover this. It still takes some time before you reach the max level, about 120 if I’m correctly in the International (or was it Chinese?) and 80 at MS.
Wars consist of PK’ing — player killing — level requirement 30 and scheduled territorial wars between guilds or factions — depending on the translation. Guilds get protections money from the terrains they’ve occupied. Money can also be obtained, next to items, by fighting in arenas against other people or monsters.

Although war is limited to certain places and times, I still like the game. It’s mostly because of it’s great world and the possibility to fly. Winged Elves have wings from their character birth and can fly. This costs mana in the International version, but doesn’t in the MS version. I don’t know if that’s deliberately or caused by a bug. Other characters can fly after they’ve reached level 30, Humans with magical swords and Untamed with beasts.

I won’t be playing this game that often, but I like to play it casually, something that’s probably perfectly possible because of the scheduled wars. I wouldn’t know what they’re like though, since I’m just level 24 I haven’t experienced any fight yet.

11 thoughts on “Perfect World on Ubuntu”

  1. i’m glad to hear
    i’ll try it

    unixjon: i have the same problem of in-game graphics
    i’ll try the new version 1.1.19 and reply again

  2. hello friends thanks for the replies, I absent for a while jaja perdon, well I will let you know, I could not fix it either, the game runs perfectly, but it has many errors in graphics, the screen disappears, and this type of error, that is no longer do you swear

  3. In case anyone still checks this… the game still does not work with Wine 1.1.23. I haven’t gone through the above instructions yet, but just an fyi since an earlier poster said that it was fixed with 1.1.19, unless it was broke again in one of the versions after.

  4. Hey, I run OpenSuSe 11.2 and PWI runs pretty much near flawless on Wine for me. (whatever version is in their repo) Except my Characters are funny they are all chinese.

Leave a Reply