Guild Wars

This is a community forum and not official technical support. — If you need official support: Contact Us

The following comments are owned by whoever posted them. We are not responsible for them in any way.


Reply to Thread Back to Threads

Directsong Works with Windows Media Player 9 Installed
Brian G.
Brian G.
Posted 2011-04-14 23:47
Just a heads up, if you have directsong music, it can work with your guild wars in crossover if you install the microsoft media sound engine 9 and register the directory (with the directsong executable).

May I suggest that we update the installer for guild wars to also install this component for people who like this feature to work?

~Edit Note: I used the media sound engine and not the windows media player I'm posting instructions further down this post.
Artist Formally Known as Dot
Artist Formally Known as Dot Advocate
Posted 2011-04-15 04:55
Brian G. Posted:
Just a heads up, if you have directsong music, it can work with your guild wars in crossover if you install the windows media player 9 and register the directory (with the directsong file).

May I suggest that we update the installer for guild wars to also install the windows media player for people who like this feature to work?


Hi,

 Thanks for the post -- if this is the case, could you please recheck things by
installing the following component into the (a new/fresh) Guild Wars bottle ;

http://www.codeweavers.com/compatibility/browse/name/?app_id=8705

It's also available as the 'Microsoft Media Player Sound Engine 9' target in the
'Community Supported Applications' are of the crossover installer GUI ; installing
that is tantamount to the same thing as you detail. If it works, app_id=8705
can just be added as a predep to the existing crosstie profile here.

Cheers!
Brian G.
Brian G.
Posted 2011-04-16 17:29
Here are the instructions for getting it to work (and testing before we edit the guild wars install file):

1. Follow Crossover Guild Wars Installation - if you already have it, you don't have to do this step

2. Install the Microsoft Media Player Sound Engine 9 (it's under community supported run-time applications) into the guild wars bottle
It might take a couple of minutes as it has to simulate a reboot twice for this step.
Tip: To find it easily, just type in "media" in the search box and open the community supported applications section
Warning: If you just do a plain old install of the media player, it will create a separate bottle! Make sure you select your guild wars bottle as the installation location!

3. Download your DirectSong Music (Purchase may be Required if you haven't already), unzip the file, and place the subdirectory titled "DirectSong" anywhere on your system (for example your music folder). (I've confirmed this by moving my directory and re-running the register executable, as given in the next instructions)
Warning! Do not change the name of this directory! It must remain "DirectSong"!
You don't have to keep any of the mp3 files, but you must maintain the file hierarchy as placed for the WMA files and contents of this directory.

4. In crossover games, click Programs->Run Command

5. Select your Guild Wars bottle as the runtime bottle

6. Browse to your "DirectSong" directory and select RegisterDirectSongDirectory.exe as the executable

7. Run it and your done! (~30 seconds and no window will pop up)

8. To test it, simply run guild wars and press F11. Navigate to the sound tab and look towards the bottom. If you see the directsong symbol there, you successfully registered the directory. If it is highlighted with gold, that means that it is playing your purchased music! You may have to play through the appropriate campaign area to find that the symbol glows.

Clarification: If it is a fresh installation, you will have to restart Guild Wars (getting to the menu) at least once before you'll be able to use the DirectSong music.

Notes:
If it glows gold, it means that it is playing music from your add-on music!
For example you purchased Nightfall music, in order to listen to the bonus music, you have to be in the Nightfall campaign area (purchase may be required) to see this symbol glow.
The only way for the symbol to glow on the main menu (without you having to log in, see my screenshot) only if you have the Eye of the North expansion music purchased and properly placed.
You do not have to re-regsiter the directory every time you get new music. Just simply drag and drop the appropriate wma directory under your DirectSong directory and restart guild wars.
As long as you don't move your DirectSong directory, it should correctly determine which music you have and don't have each time.

Troubleshooting:
The symbol doesn't appear:
 Make sure that you properly registered the directory in the correct bottle and that you didn't change any of the file names

The symbol appears, but never glows:
 First try rebooting guild wars, if that doesn't work, try this next:
 Your safest bet is to test the main menu music. However this is assuming that you have the Eye of the North music expansion pack.
 If you have a different expansion pack, try adventuring/exploring the associated areas. DirectSong music will play first before the ingame music. So you should be able to see quickly whether or not if this works for each area (but allow enough time to hear some audible music to be loaded).
 If that doesn't work, try asking for some community help.

This guide is subject to change given new information and so forth.
Artist Formally Known as Dot
Artist Formally Known as Dot Advocate
Posted 2011-04-16 19:37
Hi again,

Thanks for the legwork and accompanying details. I have a hunch that adding app_id=8705
to *this* app's install profile is going to break crosstie usage guidelines. That is to
say, if Guild Wars itself gains no extra functionality from including app_id=8705, and
same is *only* required to make use of the DirectSong music packs, then it may be deemed
that those packs themselves have their own C4 entries, replete with app_id=8705 as a
necessary predependency for their installation...

...the crosstie profile(s) for said DirectSong music pack(s), would target this app's
bottle (extrafor=1658 directive), install 8705 into it, do the filecopy operation and
run the required registration helper app and so forth. That would be the preferred route
here, as the guidelines suggest to "only include in an app's install profile, those
dependencies which the app itself requires" ; if any addon, expansion, or anything else
(mods) can be added to a 'parent' app, and they require specific dependencies for their
own proper operation not included with the 'parent', then such is included into their
install profile (to be carried into the 'parent' installation)...

.... Big Fish Games Manager is like this ; the manager itself doesn't require flashplayer,
but many Big Fish Games titles *do* (to display animated graphics in the game manager).
Ergo, flashplayer isn't part of the Big Fish Games Manager install profile, but is part
of many games profiles that install a .swf promotional animation. Same premise here...

As this is an in-house crosstie profile, it's the purview of the Ninjas in any event.
I'll ping a message their way to drop in on this thread when they get back to work
Monday, and they can conclude which way this goes...

Thanks again for good work btw =)

Cheers!
Brian G.
Brian G.
Posted 2011-04-17 17:45
Your right in the aspect that setting up directsong to work with guild wars is most certainly a awkward step (just in terms of getting the files) and is not very user friendly.

I'd like to go off the suggestion of creating a separate crosstie with the prerequisite being guild wars. As part of the installation setup, you have to indicate the directory where your music is located with the required executable. We can't just copy the executable because the user might then assume that it's okay to use the mp3 files and not the specifically named wma files (which are inside another zip as part of the download). Which that in itself is very troublesome.

Here are some problems ideas:
The required files are in a zip accompanied by the respective mp3 music files
Have the user select the zip as part of the setup and crossover unzips it from there and places it locally in that bottle (for sanity)

Then that uncovers another problem of what if the user has multiple music packs? That means that not only is this user going to want to run this crosstie once, but up to 4 times. After the set of files are copied the first time, for each new respective zip, we just do a overwrite of duplicated files/directories (for example if the music was updated).

Problems:
Duplication
User not meeting prerequisites (such as the required initial purchase of directsong music or selecting the wrong file)


Resolution:
User Selects WMA DirectSong zip file (in the same directory as the mp3s)
Check to make sure the executable is present within the zip (RegisterDirectSongDirectory.exe)
Unzip and copy/overwrite any existing files to a predetermined local bottle directory
Run the included executable

Solves the following:
Supports running the crosstie for multiple instances for separate music expansion packs installations/updates
Simple for the user to use

Remaining Problems:
A suitable interface/description to inform the user of the appropriate prerequisites before running this crosstie
Artist Formally Known as Dot
Artist Formally Known as Dot Advocate
Posted 2011-04-17 22:42
Brian G. Posted:
Your right in the aspect that setting up directsong to work with guild wars is most certainly a awkward step (just in terms of getting the files) and is not very user friendly.

I'd like to go off the suggestion of creating a separate crosstie with the prerequisite being guild wars. As part of the installation setup, you have to indicate the directory where your music is located with the required executable. We can't just copy the executable because the user might then assume that it's okay to use the mp3 files and not the specifically named wma files (which are inside another zip as part of the download). Which that in itself is very troublesome.


..this, will be the real problem. If the DirectSong download is a .zip archive, and it contains one (or more) other .zip archives within it that also need to be extracted,
that is trouble, as the crosstie system will only undertake a decompression operation on 1 archive - the 'parent' archive....


Brian G. Posted:

Here are some problems ideas:
The required files are in a zip accompanied by the respective mp3 music files
Have the user select the zip as part of the setup and crossover unzips it from there and places it locally in that bottle (for sanity)


It probably may not happen like this...in practice anyhow -- if you're using CXG 9.x it will be something like this, but with CXG 10.x the user doesn't really need to select the downloaded .zip ; one can use <dowloadglob> to auto-select this file. Normally speaking, the archive is extracted to a tempdir, and then one uses filecopy operations to copy the required files to the destdir - you can create directories as part of this process. You would certainly copy into the bottle structure, as this allows these files to be contained in a bottle archive (.cxarchive), should users ever backup the bottle that way...

Brian G. Posted:

Then that uncovers another problem of what if the user has multiple music packs? That means that not only is this user going to want to run this crosstie once, but up to 4 times. After the set of files are copied the first time, for each new respective zip, we just do a overwrite of duplicated files/directories (for example if the music was updated).


Essentially you would have a C4 page for each music pack, but ideally, they would all use the same install profile via the <installer_id> tag - only their respective <appprofile> specs would differ. I was having an issue with file overwriting (or was it directories?), but that may be fixed now or not an issue here..


Brian G. Posted:

Problems:
Duplication
User not meeting prerequisites (such as the required initial purchase of directsong music or selecting the wrong file)


Resolution:
User Selects WMA DirectSong zip file (in the same directory as the mp3s)
Check to make sure the executable is present within the zip (RegisterDirectSongDirectory.exe)
Unzip and copy/overwrite any existing files to a predetermined local bottle directory
Run the included executable

Solves the following:
Supports running the crosstie for multiple instances for separate music expansion packs installations/updates
Simple for the user to use

Remaining Problems:
A suitable interface/description to inform the user of the appropriate prerequisites before running this crosstie


Is  RegisterDirectSongDirectory.exe  in the root of the DirectSong archive, or is it in the zip archive containing the .wma files?

Also, do the .wma files need to be unpacked/present when you execute RegisterDirectSongDirectory.exe? Or is it just
'registering the directory location', and the .wma files can be unpacked into that directory after running the
RegisterDirectSongDirectory.exe helper?
Brian G.
Brian G.
Posted 2011-04-22 16:38
Artist Formally Known as Dot Posted:
Is  RegisterDirectSongDirectory.exe  in the root of the DirectSong archive, or is it in the zip archive containing the .wma files?

The .exe is in the zip archive containing the .wma.
Artist Formally Known as Dot Posted:

Also, do the .wma files need to be unpacked/present when you execute RegisterDirectSongDirectory.exe? Or is it just 'registering the directory location', and the .wma files can be unpacked into that directory after running the
RegisterDirectSongDirectory.exe helper?

The .wma files do not need to be present while executing the RegisterDirectSongDirectory.exe, this executable simply creates a registry key value for Guild Wars that gives it the location of the root directory to look for the wma files at runtime. The executable is inside the WMA zip, so you need to unpack it first in order to get access to it.

It does not tell Guild Wars anything else, all the necessary files are listed locally and it expects to find them at runtime. If it does not find the file, it skips it.
Artist Formally Known as Dot Posted:

..this, will be the real problem. If the DirectSong download is a .zip archive, and it contains one (or more) other .zip archives within it that also need to be extracted, that is trouble, as the crosstie system will only undertake a decompression operation on 1 archive - the 'parent' archive....  

The DirectSong download is a .zip. The internal WMA directory is another zip file. Also in addition, the file size of each of these music packs (including the wma and mp3 together) is a total of ~400 MB uncompressed.

Here is a breakdown of the DirectSong directory:

DirectSong is an e-commerce site where you make purchases for music.
After you make your appropriate purchase, your purchase/download comes in one of the following zips:
GuildWarsPropheciesSoundtrack.zip
GuildWarsNightfallSoundtrack.zip
GuildWarsEyeoftheNorthSoundtrack.zip
GuildWarsFactionsSoundtrack.zip

Potential Problem:
If the user has Safari, it automatically unzips your file when you have finished downloading it (so you may have two different kinds of files to expect, either a directory or a zip) I'm not trying to make your life miserable 😭...

Listing of Prophecies Sound Zip:
01 Opening Theme.mp3
.... ( a bunch of mp3 files)
32 Beyond the Ocean(Bonus).mp3
Guild Wars Special Edition Soundtrack WMA.zip <----- This is the zip with the executable and the wma files
Guild Wars Special Edition Soundtrack.jpg
Read Me First.rtf

Note: All the DirectSong downloads come with the necessary files and all end with WMA.zip and may not match the "name of music pack WMA.zip" stereo type, such as I have just shown with the prophecies soundtrack (a different WMA.zip name).

If you extract the Guild Wars Special Edition Soundtrack WMA.zip file, you obtain a directory titled "DirectSong".

Here is a listing of DirectSong:

DirectoryStructure.JPG // Sample Structure of what this directory is supposed to look like with multiple sound packs

Guild Wars DirectSong Music Read Me First.rtf // Instructions on how to setup the music

Guild Wars Special Edition Soundtrack // This is the music expansion specific directory that contains all the name casted wma files

GuildWars.ds // This file contains a listing of all music expansion pack files and where they should play in-game, the game will skip over songs it cannot find (such as a music pack you do not have)

RegisterDirectSongDirectory.exe // This is the file that registers the directory to tell guild wars to look here

ds_GuildWars.dll // A bunch of unreadable byte code (specific to the user, which I believe to prevent piracy and is identical to all the other music expansion downloads, at least for me)

Here is a cat of Guild Wars DirectSong Music Read Me First.rtf, this should answer all the necessary questions:

Guild Wars DirectSong Music
READ ME FIRST


Directory Structure

1) You need to have a directory named DirectSong.

2) In the DirectSong directory, you need to have the following three files.

ds_GuildWars.dll   and   GuildWars.ds   and   RegisterDirectSongDirectory.exe

3) Guild Wars needs to know where the audio files are located on your computer.  This is done by storing some information in your computers registry file. After you have created your DirectSong directory, you can copy the RegisterDirectSongDirectory.exe into the DirectSong directory and run it. This will create the required registry keys. *Note: If you are running a 64 Bit Operating System, you will have to Right Click on the RegisterDirectSongDirectory.exe and choose the option Run As Administrator for the correct update to your registry to be applied. More information is below in the Registry Keys section.    

4) For each Guild Wars Soundtrack that you own, you need to have a sub-directory within the DirectSong directory and that folder must be named exactly like the examples given below. This sub-directory will contain all the music files for that soundtrack.

A visual example of the directory structure can be found in the file DirectoryStructure.JPG.

(parent directory)
DirectSong

(sub-directories inside the DirectSong directory)
           
Guild Wars Battle Pak One

Guild Wars Eye of the North Original Soundtrack

Guild Wars Factions Collector's Edition

Guild Wars Factions Original Soundtrack

Guild Wars Nightfall Collector's Edition

Guild Wars Nightfall Original Soundtrack

Guild Wars Special Edition Soundtrack

Sorrow's Furnace Mini-Pak

How it works

The Guild Wars game ships with the music in the game. If you have obtained music from DirectSong, what you have is either a higher fidelity version of the same music, or you have additional music that wasn't shipped with the game. This is the case with many of the Collector's Editions.

When Guild Wars starts up, it first determines if you have any DirectSong music files on your PC. It does this by reading the information from your computers registry.  If the registry information is correct, Guild Wars now knows where your DirectSong folder is. One critical thing Guild Wars knows is where to find the ds_GuildWars.dll file is located since this file is required to play back the DirectSong version of a song.

While playing the game, should you change zones or should you be in a location long enough for the music to swap to another song Guild Wars looks to see if the song is available as the DirectSong version. If the DirectSong music file is found on your computer it will load and play that version instead of version which is embedded in the game.

This list of music files to played in the different locations in the game is contained in the file, GuildWars.ds.

Registry Keys

The DirectSong Registry Keys are as follows.

For a Windows 32 Bit Operating System, you will find the key at this location.

HKEY_LOCAL_MACHINE\SOFTWARE\DirectSong

The subkey is titled MusicPath, and it should indicate the location of your DirectSong directory on your computer.


If you are using a 64bit Windows Operation Sytem the keys woul look like this


HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\DirectSong

Artist Formally Known as Dot
Artist Formally Known as Dot Advocate
Posted 2011-04-23 06:51
Brian G. Posted:
Artist Formally Known as Dot Posted:
Is  RegisterDirectSongDirectory.exe  in the root of the DirectSong archive, or is it in the zip archive containing the .wma files?

The .exe is in the zip archive containing the .wma.


Hi again, and thanks for all the details. This above, the zip within a zip thing, is
where the problems start...

Brian G. Posted:
Artist Formally Known as Dot Posted:

Also, do the .wma files need to be unpacked/present when you execute RegisterDirectSongDirectory.exe? Or is it just 'registering the directory location', and the .wma files can be unpacked into that directory after running the
RegisterDirectSongDirectory.exe helper?

The .wma files do not need to be present while executing the RegisterDirectSongDirectory.exe, this executable simply creates a registry key value for Guild Wars that gives it the location of the root directory to look for the wma files at runtime. The executable is inside the WMA zip, so you need to unpack it first in order to get access to it.

It does not tell Guild Wars anything else, all the necessary files are listed locally and it expects to find them at runtime. If it does not find the file, it skips it.


Okay, that is useful to know -- what this means is we likely do not need execute
RegisterDirectSongDirectory.exe at all ; the crosstie system can manipulate the
registry directly --- likewise, it infers nothing need happen in any particular
order. We take it as read that folks know they have to buy the pack(s) and manually
download the archive - the situation wrt Safari is unfortunate, but one may be
able to ware them of the issue in the crosstie's install notes, and *hopefully*
they end up with the full zip archive, which can be matched by <downloadglob>...

...the problem, wrinkle, is the double unzip operation -- normally it's a bit
of a brick wall, but I'm not so sure it is here. You have 4 distinct targets,
you might have 4, C4 entries to represent these;

GuildWarsPropheciesSoundtrack.zip
GuildWarsNightfallSoundtrack.zip
GuildWarsEyeoftheNorthSoundtrack.zip
GuildWarsFactionsSoundtrack.zip

The crosstie profile for each, could unpack the parent zip archive in question,
and do the filecopy operation to some destination directory ; you could also do
the registry changes here. Each of these crosstie profiles, would have a post
dependency of (and this doesn't exist, yet) something like 'freezip.exe', which
is a basic commandline capable zip decompressor. Once the 'parent' crosstie has
finished and calls the freezip.exe postdependency, you use the secondary install
profile function in the parent crosstie, to tell freezip.exe which/where the
*WMA.zip file is it needs to extract to what location (that you specified in registry),
and you are done here.... exit cxinstaller as per usual.

I think that'd work, but I'd need create the special purpose 'freezip.exe' entry
first (and crosstie) for it to happen - let me know if you believe such an approach
would cover it ....

Cheers!

Brian G.
Brian G.
Posted 2011-04-23 15:03
Yes I believe such an approach would cover it.

I just have a clarification I would like to make, the music packs ultimately will end up under the same folder titled directsong. I was suggesting an overwrite for the copy operation because there might have been updated music files or a new ds music file (a new listing of where to play in-game music).

If the crosstie can have an if/else for being able to select between a parent zip file and a parent directory, that would be the better implementation.

I don't know much about the crosstie, if you would like I can start studying up on it and aiding you with this project (as I don't know too much about it's capabilities).
Artist Formally Known as Dot
Artist Formally Known as Dot Advocate
Posted 2011-04-23 19:58
We cannot determine filesize in a crosstie (at least not yet, and I don't know if there
are any plans to), so any overwrite operation is performed blindly so to speak. Most of
the time this isn't a problem.

There is no conditional branching in crossties, which is what you would need beyond the
difference of 'parent zip' and 'parent directory' -- that is to say, the crosstie system
cannot do one thing for a parent.zip file, and do something different for a *WMA.zip file.

You see, I just spool-up ideas based what I see and what I know about the crosstie system
as it stands -- and ultimately, any crosstie has to be approved. I already know that doing
the post dependency unzipping of the *WMA.zip is *bad*, because we have no way of testing
if that archive extraction completed successfully or not. Doing the same thing as a pre
dependency is not so bad, as the main crosstie profile can do sanity checks to ensure the
extraction/installation worked wrt the bottle. Trouble with that is, it can't be done, as
the parent crosstie profile cannot tell the unzip predep what to unzip....

...further, even if I entertain that predep notion, all I'm effectively achieving is what
you say Safari is going to try and do anyhow (unzip the archive subsequent of it's download).
If that much happens, then the crosstie can operate directly on the *WMA.zip archive already
extracted from the parent.zip, and there is no need for any pre/post dependency staging ;
the crosstie for each music pack could handle things on it's own.

Although I don't use Safari on the Mac here (I use firefox like I do on my linux systems ;)
you can consider as 'valid' the what the Safari is going to do here, if only because it's
going to facilitate better crosstie handling. That is, the crosstie system does have default
locations built into it, that it will examine to see if the installer file/archive exists.
This is like taking Safari's default behavior and using such as a helper...

So...instead of the crosstie looking for 'GuildWarsPropheciesSoundtrack.zip', it would instead
be set to search for 'Guild Wars Special Edition Soundtrack WMA.zip' and look for that in the
default locations ($homedir, $homedir/downloads or whatever) and use this file directly, with
a standalone crosstie. Although only Safari is going to do that as a default behavior, it's
really 'no big deal' I don't think to include install notes of "You must unpack the DirectSong
archive you downloaded before proceeding. Note this will have already been done if you used
Safari to download the file archive" or such and similar. I'm not suggesting it's ideal (wrt
automation), but it would be a way to kludge around the fact we can't do unzip->unzip->do something
in crossties ; someone or something has to perform the 1st unzip operation.

I do think it makes sense for you to study the crosstie system (if you're so inclined), and me aid
you with the implementation. That's in consideration of what you may gain from such, coupled with
the fact that I don't have Guild Wars nor the music packs involved ...ie; I could never test any
crosstie I created for this purpose, you would need to do that in any event. That being the case,
it would be worthwhile for you to known exactly how the crossties work so that you may better help
others, just because you *can* test things =)

You can see a simple .zip extraction/filecopy type crosstie here ;

http://www.codeweavers.com/compatibility/browse/name/?app_id=9036

....and setting registry keys is about as simple as..;

http://www.codeweavers.com/compatibility/browse/name/?app_id=7781;tips=1

Feel free to (temporarily) advocate yourself for any app, so that you might be able to see how the
layout(s) appears in the crosstie editor itself, and if you need any help with things, just let me
know ... happy to help out.
Brian G.
Brian G.
Posted 2011-04-26 14:12
Sounds good, I'll start learning about cross-ties and request to become a temporary advocate of this application. Since I have the necessary files, I will do the testing and get back to you on any necessary questions I may have.

CrossOver Forums: the place to discuss running Windows applications on Mac and Linux

Please Wait...
eyJjYXJ0IjowLCJ0enMiOi01LCJjZG4iOiJodHRwczpcL1wvbWVkaWEuY29kZXdlYXZlcnMuY29tXC9wdWJcL2Nyb3Nzb3Zlclwvd2Vic2l0ZSIsImNkbnRzIjoxNTc4NTg3MzkzfQ==