Difference between revisions of "Running Continuum under Wine"

From ASSS Wiki
Jump to: navigation, search
(Common Problems)
(Formatting, removing first-person writing style)
Line 1: Line 1:
 +
== Patching Wine ==
 +
 
To run [[Continuum]] under [http://www.winehq.com/ Wine], you'd need to apply a patch to Wine's source code. Copy the text block below into a file, such as cont.patch, and place it at the head directory of Wine's source code.
 
To run [[Continuum]] under [http://www.winehq.com/ Wine], you'd need to apply a patch to Wine's source code. Copy the text block below into a file, such as cont.patch, and place it at the head directory of Wine's source code.
  
Line 23: Line 25:
 
Chat window will not appear when you Alt-Tab. This is because Continuum doesn't understand that it is minimized under Wine, so it will never start the chat window.
 
Chat window will not appear when you Alt-Tab. This is because Continuum doesn't understand that it is minimized under Wine, so it will never start the chat window.
  
If you get a libwine.so.1 error when trying to run wine global (instead of running the application from its source directory), add the following lines to your /etc/ld.so.conf file: "/usr/local/lib" and "/usr/local/lib/wine" without quotes. Also just to be sure I copied libwine.so.1 to those locations from the winesource/libs directory.  I can now run wine global (just typing wine anywhere).  I had this issue with Fedora Core 4, some other distros may apply.
+
If you get a libwine.so.1 error when trying to run wine global (instead of running the application from its source directory), add the following lines to your /etc/ld.so.conf file: '''/usr/local/lib''' and '''/usr/local/lib/wine'''. If problems still occur, copy libwin.so.1 to those locations from the winesource/libs directory.
  
----
 
  
 
== Why It Works ==  
 
== Why It Works ==  
  
When Continuum runs, one of the first things it does is create another process of itself with some priviliages restricted(the ability to call OpenProcess). Then, when the child process attempts to do the same thing, it receives an error that OpenProcess failed, and that's the sign that it's the child process. The child process then proceeds to run the game.
+
When Continuum runs, one of the first things it does is create another process of itself with some priviliages restricted, such as the ability to call OpenProcess. When the child process attempts to repeat this step, it receives an error that OpenProcess failed, which tell the process that it is the child. The child process then proceeds to run the game.
  
Since Wine does not properly emulate this parent-child security, this source modification is necessary to get Continuum to run on it.
+
Since Wine does not properly emulate this parent-child security, this source modification is necessary to get Continuum to run under Wine.

Revision as of 03:39, 21 December 2005

Patching Wine

To run Continuum under Wine, you'd need to apply a patch to Wine's source code. Copy the text block below into a file, such as cont.patch, and place it at the head directory of Wine's source code.

index 33f9ee1..d50cb7d 100644
--- a/dlls/kernel/process.c
+++ b/dlls/kernel/process.c
@@ -2460,6 +2464,7 @@ HANDLE WINAPI OpenProcess( DWORD access,
     OBJECT_ATTRIBUTES   attr;
     CLIENT_ID           cid;

+if (access & PROCESS_VM_WRITE) return NULL;
     cid.UniqueProcess = (HANDLE)id;
     cid.UniqueThread = 0; /* FIXME ? */

Run cat cont.patch | patch -p1 to apply the patch file to Wine's source code. Follow with the usual ./configure && make depend && make to build Wine. If you'd wish to have this replace your current Wine installation or to install it globally, run make install as root.


Common Problems

If you have a binary version of wine installed such as rpm, I recommend removing it before setting up and installing the wine source, as not to cause confusion.

Make sure you are running Continuum as at least 16 bit. If having problems with sound, with winecfg, check ALSA driver and switch hardware acceleration to emulation. 8 bit is possible, but you have to check your /etc/X11/xorg.conf (or other) config file to make sure you have 8 bit res listed. Best way to check is if you can't set your desktop depth to 8 bit through display options, its not set in your config (pretty easy to fix).

Chat window will not appear when you Alt-Tab. This is because Continuum doesn't understand that it is minimized under Wine, so it will never start the chat window.

If you get a libwine.so.1 error when trying to run wine global (instead of running the application from its source directory), add the following lines to your /etc/ld.so.conf file: /usr/local/lib and /usr/local/lib/wine. If problems still occur, copy libwin.so.1 to those locations from the winesource/libs directory.


Why It Works

When Continuum runs, one of the first things it does is create another process of itself with some priviliages restricted, such as the ability to call OpenProcess. When the child process attempts to repeat this step, it receives an error that OpenProcess failed, which tell the process that it is the child. The child process then proceeds to run the game.

Since Wine does not properly emulate this parent-child security, this source modification is necessary to get Continuum to run under Wine.