Posts tagged linux

WoW on Wine

So I’m playing wow again and I’m committed to playing it on linux. I’m not even sure if I’ll be able to play it enough to compete, but it’s worth a shot. I’ve been doing some reasearch on how to improve FPS without sacrificing gameplay. But before I go into that, let me describe my configuration.

I’m running Arch Linux x86_64 with wine 1.2 on a 32-bit chroot. I know I could have setup wine on 64bit, but I’m going for reliable, not cutting-edge :) . I performed an online installation of wow, which took me about 2 days, ugh! After installation, I attempted to login and wow crashed immediately.

Apparently, there is an issue with the 2.6.33-34 kernels that cause a login crash with wow and other applications. I patched my kernel using the pkgbuild on AUR and was good to go.

After getting wow up and running and my UI configured (I use gladius, pitbull unit frames with dog tags, and spell alerter) I started testing video/graphics settings. During my research, I came across a post on the wine app db entry for World of Warcraft that suggested utilizing D3D using the -d3d9ex switch. Apparently, this is a new and experimental feature to improve texture management. So far, I’ve seen a 5-20% FPS improvement which usually keeps me over 20FPS during pvp and raids.

media management script

I’ve always heard “necessity is the mother of invention”.  I’m sure you’ve come across this a time or two as well.  While this idiom is true, it is not a whole truth.  Necessity is not the ONLY mother of invention ;)  Laziness, boredom — pick your poison.  Well, I’ve sure been bored.  Bored enough to write a script that I could have likely picked up on my first search of google.  Last night I was watching a movie, fighting boredom tooth and nail the entire way, and I lost.  I was thinking about how I always manually manage my movies and music.  So very 20th century.

I decided I’d write a quick little script to manage this, and so I did.  And here it is, nothing fancy.  This fits my personal needs,  but I’d be happy to oblige any change/fix requests.  It will use the ID3 tag data from the first file in a directory to create destination directories and move all MP3s there.  The script utilizes mp3info to perform this ID3 tag information retrieval, so be sure you have it installed.  I did not add any sanity checks to the script!

There is one caveat soundtracks will not workout in your favor, additional logic is required to handle these.  I rarely if ever download soundtracks, so it has not been included — yet.  This has been addressed and soundtracks are now supported.

As I’m sure you’re aware, the easiest method for implementing this script is a cron job.  Below is my cron entry:

*/15 * * * * /usr/bin/mvdownloads >> /tmp/mvdownloads.log

This will run the cron job every 15 minutes and redirect the output to /tmp/mvdownloads.log.  Very simple.  I believe that covers everything — oh, if you do not restart your machine often, make sure that you have some mechanism for removing temp files/logs that either or not needed or are too large :)  Logging in this script is very basic!

Updates:

(12-20-09) – Fixed a bug where small or sample media files would not get deleted.  Included variable for movie size threshold so this can be adjusted based on your management needs.  Finalized logging output. Included support for soundtracks (Note: this causes the script to run longer, not much, and once the initial execution is complete, you will find it is negiligible.). Removed unnecessary debug logging, script is complete for now.

(12-19-09) – Added additional protection for primary source directory to ensure files are not lost, cleaned up logging, and organized script a bit better.  Added functionality to update firefly media server database.  Please note, this functionality requires additional variables set in the mt-daapd configuration file, read the script comments before using this or you will see no gain!  I’ve decided not to add concatenation support into the script, as sequence matching would be a bit iffy and the little benefit from this isn’t worth the possible issues.

(12-14-09) – Modified script so that the find command is case insensitive for all occurrences.

So here it is, enjoy: http://www.trippholden.com/wp-content/uploads/2009/12/mvdownloads

Chromium command line arguments

It took me a while to come across an extensive list of these, but someone kindly pasted the source of the file that lists the switches, so I’ve put them here as well.  Hopefully someone will stumble across them when they need them as well.  It’s a nice reference sheet for those of us who are using chromium on linux.

http://src.chromium.org/viewvc/chrome/trunk/src/base/base_switches.cc

// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include “base/base_switches.h”

namespace switches {

// If the program includes chrome/common/debug_on_start.h, the process will
// start the JIT system-registered debugger on itself and will wait for 60
// seconds for the debugger to attach to itself. Then a break point will be hit.
const wchar_t kDebugOnStart[] = L”debug-on-start”;

// Will wait for 60 seconds for a debugger to come to attach to the process.
const wchar_t kWaitForDebugger[] = L”wait-for-debugger”;

// Suppresses all error dialogs when present.
const wchar_t kNoErrorDialogs[] = L”noerrdialogs”;

// Disables the crash reporting.
const wchar_t kDisableBreakpad[] = L”disable-breakpad”;

// Generates full memory crash dump.
const wchar_t kFullMemoryCrashReport[] = L”full-memory-crash-report”;

Read the rest of this entry »