Monday, October 09, 2017

HOWTO Install Word Perfect 5.1, a DOS Application, using Crossover

Codeweaver's Crossover, now at version 17, does an excellent job of making most MS Windows applications run reliably on a modern Linux installation.

But what if you have an old DOS-based game or application? Crossover doesn't do DOS in a way that enables it to run these old DOS applications and the smart money is on installing and using DOSBox as a native Linux application and running those apps from there. Using it is pretty straightforward, but you must read the documentation to get started.

But if you just installed the native Linux version of DOSBox you would miss out on several very nice features of Crossover such as easily accessing the apps from your desktop menu, and being able to archive and restore the DOS application. You can do all of this without Crossover, but if you use Crossover for Windows apps, it would be nice to use Crossover with DOS apps.

Fortunately, Crossover does offer and easy way to install the Windows version of DOSBox, You can also add DOSShell v1.9 by Loonies Software, a GUI wrapper for running installed DOS apps.

Create a crossover bottle for DOSBox. Just select DOXBox as one of the application, Crossover downloads and installs itWhen completed, one of the menu options is DOSBox 0.74 Options. A right-click and "Open" displays the configuration file for DOSBox. Don't make any changes except to add at the very bottom the following:

mount c /~/.cxoffice/drive_c

This command will tell DOSBox to treat the drive_c directory in your DOSBox bottle as the default C:\ drive.

I always preferred my DOS CD-ROM drive to be labeled R:\ and you can do this from the WINE Configuration menu selection. The window will open and you can select Drives. Add drive R:\ with the Add button. Select it and change its Path to /dev/sr0 and now you CD/DVD disc drive will appear to DOSBox as R:\. Creating virtual drives of any other directory is easy and very convenient.

Once all that is done, you have a working DOSBox that automounts the Crossover bottle's C:\ drive, can access any CDROMs you have as well as any other directory you choose to configure as a virtual drive.

To install WordPerfect 5.1 all I needed to do was launch the DOSBox bottle and change the directory to the virtual drive I had configured to hold all the installation files and run INSTALL.EXE which handles everything else. The installation was a fairly lengthy and elaborate process. I remember those days.

I did run into a hiccup during the installation when I was told I had run out of "file handles". I'll do some detective work and be back when I solve that issue.

RESOURCES

Codeweaver's Crossover

DOSBox

DOS Applications

History of Programs Included With Different
 Versions of DOS

Wednesday, September 06, 2017

Trouble Finding Your Linux Game Libraries?

Some Linux games, especially the older Linux games, are installed with the versions of libraries that they need. The problem arises when the specific libraries are unknown to your system and the game won't launch.

The old Loki game installers attempted to fix this with some shell scripting. Maybe that works, maybe it doesn't. Here's an easy way to fix this problem.

First, we use a kernel utility, ldd, to see what shared libraries the binary expects to see.

$ ldd /full/patch/to/application/binary

You will get a list of libraries needed and a clear indication of whether they are present or not.

Trick #1

Assuming your system reports them missing, but you can see them in the directory where you installed the game, rather than fix the script that launches the game, we'll simply tell the system where to look.

Become root, and change directory to /etc/ldd.so.conf.d. Once there, create a file, name_of_game.conf and in that file enter 
/full/path/to/the/game/libraries.

Run the ldconfig utility,

# ldconfig

And the magic is done.

It's also possible to manually export the path every time you need to launch the game and/or put it in your .bashprofile or .bashrc, but the method outlined above solves the problem for every user of the system.

Trick #2

Some older games just require old version of libraries that must be compiled against older kernel versions. Where do we find those? We can look to the Loki Compatibility Libraries.

Download the libraries and install them in /usr/local/lib/loki.

Then, as detailed above, add loki.conf to /etc/ldd.so.conf.d and run ldconfig.

Sunday, September 03, 2017

Hexen on Modern Linux


There is a Linux binary housed at Hexen II: Hammer of Thyrion. It is in the Mageia repositories and can be installed using urpmi. The binary gets installed in /usr/bin and the rest of the game files and documents can be found in /user/games/hexen2.

I have not yet experienced Hexen2 since I don't have the retail version. The installer only installs the game engine, so I've purchased an original game CD from eBay.


RESOURCES

Hexen II Wikipedia

Hexen Wiki

Doomworld Wiki

Hexen II: Hammer of Thyrion

Linux-x86

Linux-AMD64

Install HOWTO

Hexen II Linux Demo

Saturday, September 02, 2017

nVidia Triple-head Display

What with the price of older-but-decent video cards and monitors being very reasonable, I decided to move from the dual-head display I have been using in various forms for the past 15 years to triple-head. I was currently running dual-head using a single vNidia 9800GT card and two monitors. I added a second vNidia 9800GT and a third Samsung SyncMaster 930b 17" monitor which was attached to the new video card.

After some aggravation, I got it working, except that the Google-Chrome browser goes wonky in the display, but Firefox and other apps seem to be unaffected. If you want to see the wonky behavior, a video is available. As it was, it was mostly unusable for daily work and completely useless for games.

After much tweaking and swearing, I chose the path of least resistance and purchased a newer video card that would work out-of-the-box with three monitors, a 4GB nVidia GeForce GTX 1050 Ti.

There's a lot of help with this setup when using MS Windows as well as special external hardware that accomplishes it. For Linux, it was necessary to get a single head working with the nVidia driver, then use nvidia-settings to configure all three heads. Also. many of these multi-monitor setups used for gaming are used with wide-screen displays. That seems a little excessive to me, but that may be in my future if I have the extra cash.

As a result, the display performs flawlessly across three heads, but I need to learn the widescreen tweaks for my older video games. I can do that with information from the PC Gaming Wiki, an excellent site for the underlying details of PC games.

Wednesday, August 23, 2017

Medal of Honor: Pacific Assault on Modern Linux

Installation using Codeweavers Crossover from the DVD version found no problems for the installation or running the game. Of course, the DVD must be in the drive due to SafeDisc v3 DRM. The game played without issue (36FPS), but became unplayable (12FPS) after installing the v1.2 patch.

I also installed, again using Codeweavers Crossover, the GOG.com version which is very useful considering that version of the game is DRM free. However, I received error messages during the install:  "Runtime Error (at 181:806): Out Of Stack Range" and "Out of Global Vars range" messages. Still, the game launched, so I'm guessing that the errors were  from the GOG game installer, not the game itself. However, even though the game would run, it was very slow (12FS) which is due to the version 1.2 that GOG installs.

Saved games are kept at %USERPROFILE%\Documents\EA Games\Medal of Honor Pacific Assault\ and saved games can be obtained from several places on the Internet if you have already played the game and want to jump around to different missions.

The games requires Windows XP, Direct3D version 9.0c and Version 1.1 or 2 shader model support, so most modern systems and video cards are well in excess of the game requirements.

To enable cheats, look here to enable the console. And to enter the cheats in the console, see the list here or here.

There are mods available here, here, and a hires texture mod here as well as other sites. However, the high texture mod caused my gameplay to be sluggish with low FPS.


The multiplayer master server was shut down prior to 2012. So much for on-line play.

RESOURCES

MOH: PA Wikipedia

Patches and Mods

MOH: PA on Windows -  Install Tips

PC Gaming Wiki
An amazing amount of information. THE go-to site for games.

 GOG.com Community Discussions for game series

 GOG.com Support Page

 Medal of Honor Wiki

 Neoseeker forums for Medal of Honor: Pacific Assault


Monday, August 21, 2017

Call of Duty on Modern Linux

I have been able to get COD and COD:UO installed from the CDs and running under Crossover, but they run once or twice and then won't work, so I am abandoning any attempt to install these in Crossover. They do work well when installed in Crossover's Steam bottle, so I'll go with that. I believe that the copy protection is part of the installation problem and installing from a DVD edition would resolve those issues as it did for other games where I have both versions. I'm sure there exists some way to copy the CDs to a single DVD, but the copy protection gets in the way of that.

Call of Duty, a first person shooter released in 2003, spawned an entire franchise of COD games that persist to this day. Installing using Codeweaver's Crossover should be easy, but it's not. COD: United Offensive is an expansion pack for COD and the COD game must be installed before COD:UO can be installed.

Crossover expects you to install the game through Steam. I own the original discs and shouldn't have to pay for it again.
There were several problems with my approach. The first was in the way Mageia mounts CDs and the way that Crossover presents them to the game.

By default, Mageia will mount the CD under /run/media//COD_1. But Crossover sees that not as /dev/sr0, but as a hard drive directory. Then it is impossible to "eject" the CD, because is no longer associated with /dev/sr0.

So I thought to fix this, I should edit a DOS drive letter symlink in the COD bottle to point to /dev/sr0. Then I manually mounted the CD as:
$ sudo mount /dev/sr0 /mnt

Now I believe I have control of the drive and both Crossover and the COD installer recognize it as /dev/sr0, a device that can be unmounted in the way the installer expects. But again, problems. It can't be unmounted as it is held by a wineserver. Killing the wineserver to eject the drive kills the install. Forcing the drive to eject leaves the wineserver unable to connect to a newly mounted CD2.

I even tried putting CD2 in a second drive and mounting it over CD1 at /mnt, but I can't fool the installer or the wineserver with this with this. I'm guessing that if this problem could be solved, it would be possible to do a regular install of the game.

What is on CD2 are the large /pak files that live under /Main, so I killed the COD install (selected NO for rolling back the installation) and copied the CD2 files into the COD bottle. That didn't work because the installer puts language translations in the CDO directory and I don't see where they are just copied over, they must be extracted from somefile.

Sadly, the best way is to install under Windows and copy it to the COD bottle crated in the aborted install.
But a new problem - CD1 needs to be in the drive for the copy protection to run the game.  I did not want to tru and get Crossover to find the CD. It had already given me hours of aggravation about that. So . . . a no-cd crack was installed and the game should launch, but . . .

While the start menu links aren't automatically created for use, they should be able be created through the "Run command" utility. But . . . not for us.

And another problem. When I could get the game to start, it crashed with a buffer overrun error that some detective work discovered that it had to do with modern nVidia drivers and the length of an environmental string. The fix? Just prefix the entire command in quotes with:
__GL_ExtensionStringVersion=17700

But, of course, it's not that easy. There were still a few problems remaining. It seems that running a line of Linux code is not possible in the "Run command" dialog.  This is solved by launching the game using a script named ~/bin/codsp.

#!/bin/sh
cd /home/hoyt/.cxoffice/Call_of_Duty/drive_c/Program\ Files/Call\ of\ Duty\ Game\ of\ the\ Year\ Edition/
__GL_ExtensionStringVersion=17700 \
/opt/cxoffice/bin/wine --bottle "Call_of_Duty" /home/hoyt/.cxoffice/Call_of_Duty/drive_c/Program\ Files/Call\ of\ Duty\ Game\ of\ the\ Year\ Edition/CoDSP.exe
The command is all on one line.

What the script does is to cd to the games installed directory or the game won't know where it finds it s files. Too bad there's no --basedir option. Then we execute the full paths of everything just to avoid any problems there using the special command line incantations to tell Crossover where it should be looking.

Even with all that work, the game engine might not find a default.cfg, so you can download one from here and just rename it.

And there you have it.

Saved Games
If you have previously played through COD, it makes sense to download a package of saved games so that you can have fun with the game.


NEW ISSUE
I attempted to install COD: United Offensive and it would not proceed because COD was not found. I'm guessing it looks in the Registry for the data and my Bottle does not have that data. So I need to go back to my Windows install and copy that or create one from that example. If you do create one, you CD key is the letters and numbers you entered to install the game, just without the dashes. And the new installed version number is 1.3. COD: United Offensive will update it to 1.4 if you install that expansion game.

It may be possible to install the game after converting the CDs to a DVD as describes at File Forum.

RESOURCES

Call of Duty View -- updates

Saved Games

Steam Community Forum

PC Gaming Wiki
Excellent source of technical information.

Call of Duty View

Doom for Modern Linux

This game was released in 1993 and is considered a pioneer in 3D gaming. Previous games from id Software were 2D.

While the original game might be playable in DosBox, There are more modern ports with greater stability and wide platform support. One of the ports, prboom, is available for Mageia6 (and MS-Windows and many other platforms). Based on the release of the original source code; it uses the SDl library.

prboom is one of those rare Linux things that has been fixed enough that everything works. It offers a true-to-the-original gameplay rather than updating the game with modern features like ZDoom, EDGE, and Eternity Engine. prboom emulates the games engines from the different versions of DOOM; it is also compatible with the demo version of DOOM.

$ sudo urpmi prboom 

installs the game in  /usr/games and run the first time with no arguments creates .prboom in your home directory, which is where you will place your *.wad files (referred to as IWADs.

Mageia6 also provides the man freedoom wads in the freedoom package and installs them at

/usr/share/games/doom/freedoom1.wad
/usr/share/games/doom/freedoom2.wad

To install the freedoom IWADS,

$ sudo urpmi freedoom

The freedoom Docs are worth a read and can be found in /usr/share/doc/freedoom/README.html 

So, in answer to the classic meme "Can it run Doom?", launch the first game:

$ prboom -iwad /usr/share/games/doom/freedoom1.wad

Yes, this was considered groundbreaking in 1993, but you can see who far 3D gaming has progressed in 24 years.

The ArchLinux Wiki has excellent instructions on how to configure and launch prboom.

Graphical Frontend for DOOM

Mageia does not provide a graphical frontend for launching Doom games. There is one available from enyo-doom, Doomseeker, Super Shotgun Launcher, qzdl, and DoomLauncher.

I chose to use DoomLauncher (download) . As a java jar, it should work cross-platform. Placing it in ~/bin/, I wrote a script simply named doom to launch it (and don't forget to chmod +x.)
#!/bin/sh# launch DoomLauncherjava -jar ~/bin/DoomLauncher.jar
Once running, initial configuration is not obvious at first.


Begin by clicking on Engine: ...  and select the path to prboom. You can install multiple different game engines if you desire.

Next, click on Iwad: ... and select the path to your IWADs.

Once you have selected your game engine and your IWAD, click on Launch to start the game.

NOTE: The GUI does not do well upon your exit from the game. You need to close it and start it again. Otherwise, it appears to work well.

RESOURCES

ArchLinux Wiki

Zandronum Wiki

Playing SDL_mixer games with soundfonts

PrBoom+

 Troubleshooting JAR File Associations for DoomLauncher

Doomworld Wiki