Running the GALEP4 Software with Wine

The Problem

Since I am running Linux on the development PC in my Lab, I've ever thought it would be nice to run the GALEP software on it too, but I didn't bother too much because I had a second PC running Windows. However, the Win PC died some time ago and the new one didn't have a parallel port so I decided to figure out if it worked via Wine.

I'm going to explain the steps I needed to get it running under Ubuntu 8.04.1, but there's not much distri specific thus it should work with others, too.

I'm not going to explain how to do these steps in detail. I assume that you know how to execute them or you are at least to find it out via Google and so on.

Step 1: Accessing the parallel port

At first, I recommend to get direct access to the parallel port working. While it was common to fumble around with the I/O ports directly in Windows, in Linux the kernel drivers take care of that and provides the /dev/parport* devices.

You need to get this device working. A simple modprobe ppdev may be enough and you may want to make an entry in /etc/modules to load it automatically on startup.

Step 2: Install Wine

Nothing exciting to explain here, just use your favorite package manager or even the source to get a Wine installation. (My version is wine-1.0 if you need to compare.)

Step 3: Install the GALEP software

Download the software for your GALEP. You may want to get the latest version, the one I tried here was G32setup_11913.exe.

Install it by running wine setupfile.exe
(Of course you must replace setupfile.exe with the setup file you downloaded.) The setup should finish without problems.

Step 4: Configure the Wine installation of GALEP

To get it running properly, you have to tell Wine about your parallel port settings and some emulation settings. At first, create the registry Keys for the parallel port. Run Wine's regedit by just typing regedit in a command line window (or somehow else). Create the Key structure HKEY_CURRENT_USER\Software\Wine\VDM\ppdev Then, create the String HKEY_CURRENT_USER\Software\Wine\VDM\ppdev\378 and assign it the value /dev/parport0. You can vary the entry to according to your needs, of course (e.g. you may use another address or parport device). It should look like in the following picture:
Why and how this works exactly is explained here, for example.

Now run winecfg, select the "Applications"-Tab and click "Add application...". Browse to the Galep32.exe executable and select it. Select the newly added entry and select "Windows 98" in the "Windows version:" Dropdown. Now it should look like in the following picture:
Note: I set the emulation mode to Windows 98 because its explained here that you should do so. I didn't even try without this setting so I don't know if you really need it.

Make sure to leave the "Galep32.exe" entry selected in the ListBox and switch over to the Libraries tab. Add three overrides for the following DLLs

and set their load order to "native". This prevents Wine from using its internal msvcrts which caused an error on my installation. By setting it to native, Wine will use the DLLs which are shipped with the GALEP software. Here are two pictures to illustrate the settings:

Step 5: You're done!

To start GALEP, just run wine Galep32.exe.

Because everyone likes pictures, here's one of GALEP running under fluxbox:

What else?

A drawback seems to be that it runs much slower than natively, because the GALEP software seems to do lots of API calls (just a guess). I'm running it on a PIII with 600MHz and reading a MX28F1000P flash (128kx8) takes several minutes. An advantage may be that since Wine maps the parport device to the ISA port address for the GALEP software PCI parallel port cards and any other parallel port hardware which may not work with a native windows installation of GALEP should work as long as it is supported by the Linux kernel.

Obviously, I was not the first one who tried this. Here are some liks which explain the procedure, too (As usual, I'm not responsible for the sites the links point to):

Copyright (C) 2008 by Wiesner Thomas
Last change: September 27th 2008