The forum

[issue] Install games that require 256 colors and 640x480 res.

[wine] 32 BPP to 8 / 32 BPP to 16 required for game

Author Replies
sntrix Friday 8 February 2013 at 7:34
sntrixAnonymous

Hello All,

New to POL, so I hope I'm posting this correctly. My Windows 7 system crashed and my DVD doesn't work, so this was the perfect time for me to grab the latest Linux distro and play around. I was working with Ubuntu 11, but it seems that LinuxMint 14.1 caught my eye. And after a search for Vineyard (another Wine config tool), I found PlayOnLinux. It definitely is very helpful, although I wish Linux utilized my hardware to its fullest.

Now, I tested Assassin's Creed on POL, and it passed in comparison to the manual Wine install guide. The graphics are very low quality, but at least it's playable. But seeing how I can select different Windows modes, I decided to break out all of the games that Windows 7 would not run. These games are not well-known games, so I'm just trying to compile pieces of advice to try and get as many work-arounds as possible.

First game I attempted was: Seven games of the soul (AKA Faust)  - 2000 (c) Hammerhead Entertainment.

After reading requirements, I seen that it used DX6, and I read that DX9 was very backwards compatible, so that's what I started with. This game also says it works for Windows 3.1 thru 2000. So, I started with Win 3.1. This caused a "Not Enough Memory" error due to no virtual memory. (Keep in mind I'm still learing here) So, I opened up Task Manager (through POL) and confirmed that 0/0MB was being used. So, about an hour after researching that, the solution was that Wine doesn't deal with Virtual memory. On the edge of just packing it up, I chose to start trying different Wine versions anyway, and - after the fifth download - I started changing Windows modes instead. Alas, the resolution switching to 640x480 and along with it another error box, in which - to sum it up - said that the game required 256 colors and preferred 640x480 resolution. Time for more research ....

This is where I've been for the past 3 1/2 hours. If I was better at understand script, I might be able to reverse-engineer some of the GOG game launcher scripts. I don't know if they would work for this type of game, but they were listed in the first two pages of Google results for "PlayOnLinux" and "256 color" "640x480." The command I see in these scripts is POL_SetupWindow_VMS "2". I did attempt to try using the command from a shell ...

[code]
POL_SetupWindow_VMS "2"
[POL_Wine_Direct3d] Message: Setting wine Direct3D /home/username/.PlayOnLinux//wineprefix/Faust VideoMemorySize False
[POL_Wine] Message: Running wine-1.5.23 regedit /home/username/.PlayOnLinux//tmp/regkey.reg (Working directory : /home/username/.PlayOnLinux//wineprefix/Faust/drive_c)
[POL_Wine] Message: Notice: PlayOnLinux deliberately disables winemenubuilder. See http://www.playonmac.com/fr/page-26-Winemenubuilder.html
[POL_Wine] Message: Wine return: 0
bash: [: False: integer expression expected
[/code]

... which gave the above results and then returned the shell prompt. I figured it was worth a try, and I'm true to my motto "You don't know how to fix something until you know how to break it!"

Anyway, without going deeper into their scripts (which probably wouldn't help for these games anyway), I was still searching for options before dragging it to a forum. So, and I'm not sure if you'll even talk about this, I found a post which led me to the WineWiki. They refer to a couple of methods, but I chose to go with the recommended, Xephyr.

Well, I was running out of time (another working day tomorrow), so I just rushed the tiny scripts for the startup. I made one that included:

[code]
# Load color mode through Xephyr
# xephyrset256.sh
Xephyr :1 -ac -screen 640x480x8 -cc 4 &
DISPLAY=:1 xterm
[/code]

And another one for calling the game:

[code]
# Faust Game with 640x480 & 256 colors
# launch_faust
DISPLAY=:1
playonlinux --run "faust"
[/code]

xephyrset256.sh returned:
[code]
#####@#####-main-pc ~ $ sh ./xephyrset256.sh
xterm: Xt error: Can't open display: :1
#####@#####-main-pc ~ $ Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension SECURITY
Initializing built-in extension XINERAMA
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension COMPOSITE
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
[dix] Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/100dpi/:unscaled, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/75dpi/:unscaled, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/100dpi, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/75dpi, removing from list!
[dix] Could not init font path element /var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType, removing from list!
(EE) [mi] EQ overflowing.  Additional events will be discarded until existing events are processed.
(EE)
(EE) Backtrace:
(EE) 0: Xephyr (xorg_backtrace+0x36) [0x7fcd16ba7016]
(EE) 1: Xephyr (mieqEnqueue+0x26b) [0x7fcd16ad709b]
(EE) 2: Xephyr (0x7fcd16a17000+0x716f2) [0x7fcd16a886f2]
(EE) 3: Xephyr (0x7fcd16a17000+0x95cb0) [0x7fcd16aaccb0]
(EE) 4: Xephyr (0x7fcd16a17000+0x961b7) [0x7fcd16aad1b7]
(EE) 5: Xephyr (0x7fcd16a17000+0x35964) [0x7fcd16a4c964]
(EE) 6: Xephyr (0x7fcd16a17000+0x962f5) [0x7fcd16aad2f5]
(EE) 7: Xephyr (BlockHandler+0x44) [0x7fcd16a77e54]
(EE) 8: Xephyr (WaitForSomething+0x114) [0x7fcd16ba43c4]
(EE) 9: Xephyr (0x7fcd16a17000+0x5ca01) [0x7fcd16a73a01]
(EE) 10: Xephyr (0x7fcd16a17000+0x335da) [0x7fcd16a4a5da]
(EE) 11: /lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main+0xed) [0x7fcd1457476d]
(EE) 12: Xephyr (0x7fcd16a17000+0x3391d) [0x7fcd16a4a91d]
(EE)
(EE) [mi] These backtraces from mieqEnqueue may point to a culprit higher up the stack.
(EE) [mi] mieq is *NOT* the cause.  It is a victim.
(EE) [mi] EQ overflow continuing.  100 events have been dropped.
(EE)
(EE) Backtrace:
(EE) 0: Xephyr (xorg_backtrace+0x36) [0x7fcd16ba7016]
(EE) 1: Xephyr (0x7fcd16a17000+0x716f2) [0x7fcd16a886f2]
(EE) 2: Xephyr (0x7fcd16a17000+0x95cb0) [0x7fcd16aaccb0]
(EE) 3: Xephyr (0x7fcd16a17000+0x961b7) [0x7fcd16aad1b7]
(EE) 4: Xephyr (0x7fcd16a17000+0x35964) [0x7fcd16a4c964]
(EE) 5: Xephyr (0x7fcd16a17000+0x962f5) [0x7fcd16aad2f5]
(EE) 6: Xephyr (BlockHandler+0x44) [0x7fcd16a77e54]
(EE) 7: Xephyr (WaitForSomething+0x114) [0x7fcd16ba43c4]
(EE) 8: Xephyr (0x7fcd16a17000+0x5ca01) [0x7fcd16a73a01]
(EE) 9: Xephyr (0x7fcd16a17000+0x335da) [0x7fcd16a4a5da]
(EE) 10: /lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main+0xed) [0x7fcd1457476d]
(EE) 11: Xephyr (0x7fcd16a17000+0x3391d) [0x7fcd16a4a91d]
(EE)
[mi] Increasing EQ size to 512 to prevent dropped events.
[mi] EQ processing has resumed after 171 dropped events.
[mi] This may be caused my a misbehaving driver monopolizing the server's resources.
[/code]

And I'm pretty sure it was frozen after that. However, I attempted to run the game launcher anyways, but it just resulted in the same error 256 color 640x480 error.

The Xephyr script does open another window that is completely black and has "Press ctrl+shift to grab mouse & keyboard" (or something along those lines) and an xterm instance.

Info about this machine:
PlayOnLinux ver. 4.1.9
OS: LinuxMint 14.1 64bit
CPU: Intel Core i7 950
HD: SS 80GB
GFX: Dual SLI Nvidia Geforce 460 GTX 1GB (2GB total VRAM)

I do apologize in advance if I posted this incorrectly. I am quite tired and needed some advice. Anything that needs to be corrected just let me know and I will edit.

Also, I didn't include them, but I've also tried 2 other games that require the same settings: "Titanic" & "TimeLapse".

-sntrix
petch Friday 8 February 2013 at 9:53
petch

Hi,

After reading requirements, I seen that it used DX6, and I read that DX9
was very backwards compatible, so that's what I started with.

Quote from sntrix

Wine now implement a good subset of DirectX, so it may not have been necessary (or even be counterproductive).

If I was better at understand script, I might be able to reverse-engineer some of the GOG game launcher scripts. I don't know if they would work for this type of game, but they were listed in the first two pages of Google results for "PlayOnLinux" and "256 color" "640x480." The command I see in these scripts is POL_SetupWindow_VMS "2".

Quote from sntrix

That just declares that the videocard has 2MB of video memory in the registry. This is very far from 640x480x256 support, so no, those wouldn't work with that kind of game, which are among the most annoying to get to work (early Win9x games, insisting on 256 color display,...).

I did attempt to try using the command from a shell ...

[code]
POL_SetupWindow_VMS "2"
[POL_Wine_Direct3d] Message: Setting wine Direct3D /home/username/.PlayOnLinux//wineprefix/Faust VideoMemorySize False
[POL_Wine] Message: Running wine-1.5.23 regedit /home/username/.PlayOnLinux//tmp/regkey.reg (Working directory : /home/username/.PlayOnLinux//wineprefix/Faust/drive_c)
[POL_Wine] Message: Notice: PlayOnLinux deliberately disables winemenubuilder. See http://www.playonmac.com/fr/page-26-Winemenubuilder.html
[POL_Wine] Message: Wine return: 0
bash: [: False: integer expression expected
[/code]

Quote from sntrix

Don't know how you managed to get "False" as the cached value for your amount of video memory, but here you are.
To fix it, open PlayOnLinux console and type
[code=console]
POL_Config_Write VMS "2048"
[/code]
(Hopefully... I never had a SLI setup to play with)

[code]
#####@#####-main-pc ~ $ sh ./xephyrset256.sh
xterm: Xt error: Can't open display: :1
#####@#####-main-pc ~ $ Initializing built-in extension Generic Event Extension
[...]
(EE) [mi] EQ overflowing.  Additional events will be discarded until existing events are processed.
(EE)
(EE) Backtrace:
(EE) 0: Xephyr (xorg_backtrace+0x36) [0x7fcd16ba7016]
(EE) 1: Xephyr (mieqEnqueue+0x26b) [0x7fcd16ad709b]
[...]
[/code]

Quote from sntrix

Yup, Xephyr could be a way to get a 640x480x256 X server (even if a script using it will probably never make it in the official scripts; I wrote a script for MotoRacer 1, but it will stay unofficial).
I didn't know it could crash that badly, though.
"Can't open display: :1" is suspicious, maybe you already have an X server running on display :1? Even if default is :0. I'd try another display, :10 or whatever. Or it could be the consequence of the crash rather than the cause, and not fix anything.

Good luck.

Edited by petch

sntrix Saturday 9 February 2013 at 2:48
sntrixAnonymous

Just finishing up the day, so a little too tired to work on this tonight. However, I was thinking about trying a non-:1 Display as well. My thought process was do to having 2 GFX Cards (where one was :0 and the other was :1). So, trying :2+ will be first in my list.

As far as having an xserver already running, is there a terminal command I could use to check this?

And if this is the case, would I be able to use the current xserver to perform this 32 to 16 or 8 BPP?

And if it cannot, how would I shutdown the current xserver?

Also, thanks for the quick reply. I do love the Linux community!

-sntrix
sntrix Monday 11 February 2013 at 4:40
sntrixAnonymous

Okay, here is somethign interesting:

Well, I was planning on testing the differnt Display number, so I did a quick reboot. However, when it loaded up into LinuxMint, my regular settings were now gone. My menu (Start Bar/Task Bar) was gone, and I was set on a low resultion display. Before thinking that the Xephyr commands were to blame, I had to go through a backwards path to reset the settings. I ended up logging out and noticing there were three magical buttons at the logon screen. The main one I'm speaking of is "Session." I was able to get my default settings back by selecting a "Mate" session, but xclient was another option.

Is this xclient the progress we are looking for?

I did go back and load into a xclient desktop and try to run the game again, but still resulted in the same error. As far as running the scripts in this mode, it froze again at some point, but didn't expot the data yet. Working on 2 other PCs to frankenstein them back to life, but will try and get some more progress on these older games.

If you have anymore advice, please feel free to guide me.

-sntrix

petch Monday 11 February 2013 at 8:08
petch

Hi,

Running a regular X server in 8 bpp instead of Xephyr could be another way to run this program.
But switching to a different desktop won't change the bpps, maybe adding a new display to gdm would, something like that. Still, that would require to switch of session to run the game, not very convenient.