Friday, May 3, 2013

EQMac on Linux

I've finally beaten this thing into submission...

High level overview: running a version of the EverQuest Mac client, which has been modified to work on Windows, in Linux under WINE.  It's actually not as difficult as it sounds.  If you follow my steps below, you should be up and running in no time.

Prerequisites:
  1. A copy of EverQuest Titanium (Windows client)
  2. Likely an installation of Windows -- dual boot or virtual machine
    1. It may be possible to do everything under Linux (via WINE), but I happened to have a Windows install already and used it for the Titanium install + EQMac download from the SOE Launchpad.
  3. An EQMac account (it's free -- go here: https://lp.soe.com/eqmac/live/)
Steps:
  1. Follow these instructions to create a bastardized version of the EQMac/Titanium client IN A WINDOWS ENVIRONMENT (follow link for more EQMac info) (note -- this is the portion that may be possible under Linux via WINE, but I haven't tried it):
    1. http://www.guardianhq.com/othergames/everquest-al'kabor-server-eqmac-for-pc/
    2. OR, partially re-pasted here (credit goes to Borneheld and whoever originally posted it on the fohguild forums):
      1. Install EverQuest Titanium edition and move the folder to C:\
      2. Rename the EQ Titanium folder to "EQMac"
      3. Download the new Intel EQMac Client located here: Launchpad 4
      4. When the new EQMac client is fully patched, find the folder (default location is C:\Users\Public\Sony Online Entertainment\EverQuest Mac or C:\Users\Default\AppData\Sony Online Entertainment\EverQuest Mac)
      5. Go into the folder "EverQuest Mac" > "Contents" > "Resources"
      6. In "Resources" folder, Select All > Copy > Paste to your C:\EQMac folder. Overwrite all.
      7. Extract the zip file located here: Images Host | File Host - FileB.ag - Download EQMac Windows Secrets Edition zip to C:\EQMac. Overwrite all.
  2. Install PlayOnLinux (4.2.1+) (note that it IS possible to do it without PlayOnLinux, using WINE by itself -- but this will take a fair amount of "WINE on the command line" knowledge, and it's easier to walk you through doing it via PlayOnLinux):
    1. Go to the PlayOnLinux download page: http://www.playonlinux.com/en/download.html
    2. Follow the instructions for your distribution
  3. Create a new 32-bit WINE prefix:
    1. Run playonlinux
      1. $ playonlinux
    2. Click the "Configure" button near the top
    3. In the configuration window, click "New"
    4. Next
    5. 32 bit windows installation
    6. Select "System" (for now), hit Next
    7. Enter your preferred name for the "virtual drive" (I called mine EQMac)
    8. Next
    9. Now you should have a new virtual drive configured
  4. Copy your bastardized EQMac client to your new virtual drive.  MAKE SURE THE INSTALL IS IN THE "ROOT" OF YOUR NEW VIRTUAL DRIVE (ie "~/PlayOnLinux's virtual drives/EQMac/drive_c/EQMac")
  5. Use PlayOnLinux to install necessary library overrides:
    1. In PlayOnLinux, highlight your virtual drive and click "Configure" in the right pane
    2. Click the "Install components" tab
    3. Install dinput8
    4. Install d3dx9
    5. Stay in configuration
  6. Set library overrides:
    1. Click the "Wine" tab
    2. Click "Configure Wine"
    3. Click the "Libraries tab" in the Wine configuration window
    4. If the following libraries aren't already included in the overrides box, enter these manually:
      1. In the "New override for library:" text box, type "d3dx9_30" (without quotes) and click "Add"
      2. In the "New override for library:" text box, type "dinput8" (without quotes) and click "Add"
      3. You will get a warning telling you that you shouldn't override this library... do it anyway... you HAVE to
    5. Stay in the Wine configuration window
  7. Set the appropriate graphics overrides
    1. Click the "Graphics" tab
    2. Check "Automatically capture the mouse in full-screen windows"
    3. Uncheck "Allow the window manager to decorate the windows"
    4. Check "Emulate a virtual desktop"
      1. Set the "Desktop size" to your desktop resolution to get full window play
    5. Click "OK"
    6. Stay in the PlayOnLinux configuration window
  8. Create a shortcut to the appropriate executable:
    1. Click the "General" tab
    2. Click "Make a new shortcut from this virtual drive"
    3. Highlight "eqw.exe" and click "Next"
    4. Click "Cancel"
  9. Change the WINE version in your virtual drive to a known working version for this EQMac client
    1. In the "General" tab, click the "+" button next to the "Wine version" (it should say "System" currently)
    2. In the 32-bit tab (x86), click Wine version 1.5.29 and add it to your system (">" button)
      1. Note: other Wine versions MAY work... but once I found a working version, I left it alone.
    3. Close the wine version manager window
    4. Select WINE version 1.5.29 in the "Wine version" drop-down box
  10. You should be ready to play!
    1. Close out of the PlayOnLinux configuration window
    2. Click on your eqw shortcut
    3. Click "Run"
    4. Enjoy
Bonus:
  1. You'll probably have to tweak some settings in the eqclient.ini file (located inside your EQMac directory), such as:
    1. Resolution
      1. In order to capture the mouse, you'll need to set it to your current desktop resolution (or possibly just to your emulated desktop resolution... I haven't tried that)
        1. A note on mouse capture... if you happen to move the window from its original pseudo-fullscreen position, you'll have a difficult time getting the mouse to stay within the bounds of the eqw window.  In order to correct it, you'll have to move your window back to the exact position it was in -- or possibly wipe a config file to get it to reset itself? (not sure which file(s) that would be)
    2. Luclin models
      1. Obviously optional, but if you want them on, you'll have to edit the file manually, since the client makes you turn them all off, the first time you run it, since your "system can't handle that many models" -- regardless of your system
    3. Possible graphical tweaks
      1. There are some graphical tweaks that you can change in the ini file that can help it to run better, look better, or increase stability.  I have everything cranked to max quality and it runs just fine (Intel i7 w/Nvidia GTX 670 and proprietary Nvidia drivers v310.40).

Feel free to comment if you have any questions and I'll TRY to help!  Also, let me know if you manage to do it entirely in Linux...


You've gotten better at Linux! (4)

Monday, March 4, 2013

Humble Bundle Blunder

<rant>

Goodbye, Humble Bundle.  You won't be getting any more of my money.

The pitch: pay what you want for a set of quality, cross-platform (including Linux!) indie games while helping a charity.  Sounds like a solid idea... which is why I paid much more than the average for two separate bundles.  So why do I have such a bad taste left in my mouth?

The ports that are released on Linux are, in many cases, broken and STILL not fixed.  I understand that software will have bugs -- it's inevitable, but one of the big advantages to playing on games on a PC is that they can be easily patched on the user's end.  But, obviously, the developers have to release fixes/patches in order for me to be able to apply them... which hasn't been happening for many of the Humble Bundle Linux ports.  This leaves us with no options but to play the Windows versions under Wine (usually with decent performance hits), or to dual boot Windows and play them there -- both of which defeat the whole idea of supporting cross-platform games.

I've gone down every support channel that I can think of to bring these issues to the developers' attention, but in too many cases, these support requests are seemingly sucked into a black hole and are never addressed.  Here's how I understand the Humble Bundle process to work: the studio that originally developed the Windows version of the game vies to get their title in an upcoming bundle, once that deal is made, they contract a 3rd party developer specifically to create the Linux (and probably Mac) versions of their game.  Since the original studio contracted this work out, they're not directly responsible for supporting these "step-child" versions of their game.  Therefore, it's typically useless to contact the original studios directly for Linux support and you're usually told to direct your support questions to Humble Bundle directly (this is first-hand experience).  Then, you send an email to the generic Humble Bundle support email address, which usually nets you a timely, courteous, yet unhelpful (since they're not developers), reply.  After that... it's just silence... then they're on to releasing the next bundle and your hard-earned dollars are stuck in a few half-complete, and support-less, native games.  This isn't what I signed up for.

Let me give you a few specific examples that you can see for yourself, instead of just taking my word for it.

1. Torchlight (Humble Bundle 6, 09/18/2012)
  • http://forums.runicgames.com/viewforum.php?f=24
  • This one had a pretty rocky start comprised of hard crashes (several of which occurred at certain points of progression in the game, which meant that you couldn't complete it), missing sound/music, and the player characters missing their heads.  I believe all of the sound issues and  crashes have been fixed, so at least you can finish the game.  The heads are, however, still missing -- this issue is usually the top thread in the above linked forum.  It looks like people are still, occasionally, posting on that thread, hoping for a fix -- I've given up hope.
2. Dungeon Defenders (Humble Bundle 7, 12/19/2012) 
  • http://forums.trendyent.com/showthread.php?88074-Linux-Version-FAQ
  • https://bugzilla.icculus.org/buglist.cgi?quicksearch=Dungeon+Defenders (official and inactive bug tracker)
  • Just take a look at the bug list for this one...  I can confirm several: broken gamepad support (which limits you to one player -- keyboard and mouse only), broken LAN multiplayer support, Gamespy online play doesn't work (all versions may be affected, fault may be on Gamespy's side), each level starts on a wave that's not the first (starting on wave 2 of 6 for example), erratic window and mouse behavior on game start -- mouse isn't captured by the game and/or doesn't respond to clicks (usually resolved with an arbitrary number of clicks and alt-tabs), mana crystals aren't pulled toward the player (gathering mana during and between waves is a big part of where you spend your time)...
  • Those first three bugs that I listed, together, limit your game play to SOLO.  I've spent some good time with this game (the Windows version is much more usable), and I will tell you that this game is not meant to be played solo -- it gets old, fast.
3. Vessel (Humble Bundle 6, 09/18/2012)
  • https://twitter.com/humblesupport/status/278589326344982529
  • The bundle was out on Sept. 18, 2012 -- but the game wasn't released until December 11, 2012.  I haven't even played this one yet, but a two month delay, in itself, is a bug in the system...  In all fairness, Humble Bundle did eventually offer a full refund for the bundle due to Vessel taking so long, if you were that bent about it, but shouldn't the game be ready for the pre-determined release date?
4. Shank 2 (Humble Bundle 7, 12/19/2012)
  • http://forums.kleientertainment.com/forumdisplay.php?18-Shank
  • Many bugs at launch, including (very) broken gamepad support (which is a huge deal with this game -- I like playing games on a keyboard and mouse, but this one would have been unbearable), and a bug that prevented progress on the last level.  These issues, I believe, are all fixed now, but it took about a month, and several revisions, to iron them all out.
Many of the games are seemingly relatively untested when they are released to the public, which creates a cycle of: download, install, play, crash (or run into another bug rendering the game unplayable), create feedback about the issues, wait and incessantly check the Humble Bundle website for an updated version, download, install... and repeat.  And that's if you're lucky and they actually fix the bugs.  That being said, there are a few games that I've played specifically that have given me ZERO issues from the beginning, which deserve some praise:

Dustforce
Rochard
...

Actually, I think that's it for now.  I've still probably only played about half of the games from the two bundles which, in itself, says something about this whole Humble Bundle project, considering the number of issues I have to report...

I know there are die-hards out there that will continue to support Humble Bundle solely because they're bringing more native games to Linux.  But if the games are broken, what's the point?

I think the fix lies in Humble Bundle's hands.  They really need to take the reins and set some hard rules and deadlines for these games.  Continuing on without more of a hardline approach will keep making them look bad.  They need to tell developers, "Your game isn't complete AND tested by the time the bundle is released?  Too bad.  You missed out on a big opportunity."  Even if this results in fewer games making it to a native Linux port (although it shouldn't, as it only requires a bit of planning ahead...), we will have a higher percentage of QUALITY and COMPLETE games as a result.

The developers (or studio) need to be held to a certain level of post-release support for the games -- even if the target for this support level is fixing 100% of bugs on any one target distribution (Ubuntu seems to be the popular choice for this).  I'm sure that all of the studios behind the Bundle games are making enough money to provide a decent level of support afterwards.

TL;DR:
To Humble Bundle:  I don't want a refund, I just want the games, that I paid for, fixed.

</rant>

If anybody actually reads this, please share your experiences in the comments.


You've gotten better at skimming! (1)