Skip to main content

How to Run Rise of Nations with Wine

I spent quite a while last night getting Rise of Nations Golden Edition running on Ubuntu Ibex. Here's what it took:

Part 1: Make CD images using Cdrdao

Cdrdao is used for dumping images of CDs in .bin/.toc format. Normally dd is enough to make an image. But, for copy-protected discs like RoN, you need something a little stronger. Here's the command I used to make images of both discs:
$ cdrdao read-cd --read-raw --datafile image.bin \
--device /dev/cdrw2 --driver generic-mmc-raw image.toc
Be sure to replace /dev/cdrw2 with your CDROM device.

Part 2: Mount the images using CDemu

Windows users are probably familiar with DAEMON Tools. CDemu is the equivalent for Linux. There are nice Debian packages available. Download and install, in order:
  • vhba-dkms
  • libmirage
  • cdemu-daemon
  • cdemu-client
Mounting the images after installing CDemu is simple.
$ cdemu load 0 image.toc

Part 3: Update and configure Wine

The standard Ubuntu repositories do not have the most up-to-date version of Wine. For that, you need to add Wine's own repository. They have directions for major distributions on their download page.

Next, get winetricks. After installation, simply execute winetricks to display the winetricks GUI. Then install directx9 and mfc42.

Finally, we need to touch some settings in Wine. Open winecfg and click the graphics tab. Uncheck the boxes for "Allow the window manager to decorate the windows" and "Allow the window manager to control the windows." Now click the Audio tab. If you haven't configured Wine's audio previously, Wine will display a message indicating it has now done so for you. The defaults should be fine, so now click the Libraries tab. To get sound working in RoN, change dsound from builtin to native.

Part 4: Install RoN

Normally this would be fairly straight forward. But for RoN, there's a few tricks. First, copy pidgen.dll from the first disc to ~/.wine/drive_c/windows/system32. Now, start installing RoN.
$ cd /media/RONGOLD1
$ wine setup.exe
The second trick is to convince the installer you've inserted the second disc when it asks. To do this, I had to manually change the symlinks in ~/.wine/dosdevices. Change whichever drive symlink points to RONGOLD1 so that it points to RONGOLD2. Also, be sure to change the symlink that points to the actually device as well (it will have the same name as the drive letter but with an extra colon). Click "OK" in the install window and it should finish up the installation. Once it's done, be sure to change the symlinks in dosdevices to point back to RONGOLD1.

Part 5: Configure RoN

I'm not sure these configurations are necessary, but they work for me. Edit /home/damonkohler/.wine/drive_c/windows/profiles/.../Application\ Data/Microsoft\ Games/Rise\ of\ Nations/rise2.ini to look like this:
[RISE OF NATIONS]
Windowed Width=1024
Windowed Height=768
FullScreen=1
VSync=1
AllowAllResolutions=1
IgnoreMinimizeOnTabOut=0
ConfigDatabase=BHGVidCardConfig.txt
ESCKeyGoesToMenu=1
ClickDragTiming=5
ClickDragLowSensitive=20
ClickDragHighSensitive=64
ClickDragRightSensitive=6
SkipIntroMovies=1
ForceHardwareCursor=1
ForceGDICursor=0
ForceBWCursor=0
ForceStaticCursor=0
ForceAGPVBs=0
Don't Allow Texture Compression=0
SYS_grade_override(A-F or AUTO)=AUTO
MEM_grade_override(A-F or AUTO)=AUTO
CPU_grade_override(A-F or AUTO)=AUTO
GPU_grade_override(A-F or AUTO)=AUTO
TEXTURE_grade_override(FULL, HALF, QUARTER, AUTO)=AUTO
UseAltColors=0
Console Coord Mode=0
Console Name Mode=2
Sound Enabled=1
BackVidAsSlideShow=0
UseVTUNEDLL=0
TestDelayRenderAMin=0
TestDelayRenderBMin=0
TestDelayRenderAMax=0
TestDelayRenderBMax=0
RebuildBalance=0
Force Profile Menu=0
ForceLowCPUBackgroundVid=1
EnableGraphicsToggles=0
UseNetworkSimulator=0
TPModsDirectory=.\Mods
ScenarioDirectory=\Scenarios
StandaloneScriptsDirectory=Stand-alone Scripts
DefaultScenarioDirectory=.\scenario\Custom\
DefaultScriptDirectory=.\scenario\Scripts\
GameFrameTestDelayMin=0
GameFrameTestDelayMax=0
RenderMinimap=1
Part 6: Play the game!

Woot! You're done!

Popular posts from this blog

Python on Android

Note: This post is out of date. If you'd like to run Python on your Android device, please see my Android Scripting Environment project. Here's an early Christmas present for all those Python fanatics (self included) out there! With a lot of help from my friends (thanks Manuel and Thomas !) I managed to install Python 2.4.5 on my G1. It's still rough around the edges, but I think it's a good start. Klaus Reimer has a nice overview of how to cross-compile Python . My instructions borrow a lot from his. Download and build the Android source . These directions assume that you have installed the source to /android_src . Download and build the Python 2.4.5 source . These directions assume that you have installed the source to /python_src . Make copies of python and pgen for use later in the build process then clean up. $ cd /python_src $ cp python hostpython $ cp Parser/pgen Parser/hostpgen $ make distclean Apply the following patch to the Python source. diff -r -c -b P...
Read more

Email Injection

Not so long ago, I ran a wiki called SecurePHP. On that wiki, there was one particular article about email injection that received a lot of attention. Naturally, with all the attention came lots of spam. As a result, I disabled editing of the wiki and content stagnated. Still, the email injection article remained popular. About a year later, the server that hosted SecurePHP died and I never had a chance to hook it all back up. I saved the article though and I'm reposting it now. It may be a bit old (I've been away from PHP for a long time), and I didn't write all of it, so feel free to leave comments about needed updates and corrections. Though this article focuses on PHP, it provides a lot of general information regarding email injection attacks. The PHP mail() Function There are a lot of ways to send anonymous emails, some use it to mass mail, some use it to spoof identity, and some (a few) use it to send email anonymously. Usually a web mailform using the mail() funct...
Read more

Review of Fable III

Damon says : Fable III is the most disappointing sequel since The Kingdom of the Crystal Skull . Laura says : I was disappointed. The worst part was that the game was okay - maybe a 6/10 or 7/10 thanks to the Darkness Incarnate quest. It wasn't great, but it wasn't so poor that I felt I could legitimately hate it. The graphics are fun if cartoony, the sound is good, the gameplay is easy , the customization is almost non-existent, and the story is mediocre at best and boring at worst. Oh, and for some of the achievements you need an Xbox Live account, which annoys me to no end. The environment in Fable III is as rich as ever. Plenty of different regions, all with different climates, peopled by various citizens/denizens/enemies that change as you play. As always, the people of Albion are incredibly chatty, but since Lionhead seems to have supplemented the new stuff they recorded with all the random NPC comments from Fable II, there is enough variation to not driv...
Read more