Hi,
This application is not in the database, so I started testing prior to adding it and (most likely) maintaining it.
Pretty Good Solitaire (PGS) is a Solitaire game compilation; the benefit over native applications is the huge number of Solitaire variants available (the current version has 610 Solitaire games; previous versions have at least 500). Pysol and Aisle Riot don't even come close, especially if you have a favorite variant that is only found in this compilation.
The demo of the current version (10.2.0) is available at
http://www.goodsol.com/downloads/gdsoltb.html
Previous versions (7.2.0, 8.11, 9.2.0) are available at
http://www.goodsol.com/downloadpre.html
I also have version 9.1.0, which is an old "previous version" no longer available on the main site.
Wine: 20050217
Crossover: 4.1 Demo
Distribution: SuSE 9.2
Video: ATI binary drivers 8.10.19 under X.org 6.8
Cutting to the chase, the interesting thing here is that:
A) the setup runs better under Wine than Crossover (but runs fully in both cases)
B) The game itself runs 99.9% perfectly under Crossover (only the Help/Rules are not available) but *does not run at all* under Wine (well, the splash screen shows, but then the app crashes to desktop when trying to open the games selection menu window).
I find this fascinating, so I did more tests; fuller information to follow, but I'll ask my question now in the event you don't want to read the rest of what will likely be a very long post:
What is the proper information to add to the appdb if the app runs under Crossover but not Wine? Or should I not add the app at all at this time? I'd feel pretty stupid suggesting that one buy CX to run a Solitaire game (even a great compilation such as this), but on the other hand, the app runs flawlessly under CX, which seems worthy of mention if a user does want to run it (since it does not run at all under Wine). Any suggestions would be appreciated.
But here's my test results, in case it will help you figure out what the missing link is:
-----------------------------------------------------------
Installers:
The game (any version) ultimately installs fine under both Wine and Crossover.
However, there are differences during install.
Wine does not produce any errors when running the installer (unless that tiny, unreadable, and non-resizeable 2nd dialog box is meant to display them), and all text (license and 'readme') is visible in the installer dialogs.
Crossover produces duplicate error boxes when the first install screen is extracting/loading (you hit OK on the first, then the duplicate appears, then you hit OK and the install proceeds with no further error dialogs), and no license or 'readme' text is visible in the installer dialogs provided for this purpose.
The error is as follows:
Access violation at address {version-dependent, specific addresses follow}
Read of address 00000000
In version 720 the address is 417930BA
In version 8.11 the address is 4173C0BA
In version 9.20 the address is also 4173C0BA
In version 10.2 the address is 41B880BA
Neither Wine nor CX can extract the program icon. However, at some point previous, CX was able to get the icon from at least one version of PGS, as I have a saved icon from PGS 500 (which is version 8.11) that I stored some time ago when I tested this install on an acquaintance's machine while housesitting. Unfortunately, I don't remember what version of CX this person had (dammit). I certainly don't get an icon extracted (even from 8.11) now, with 4.1 Demo, and iirc, no attempted install of later versions of PGS successfully extracted the application icon on the acquaintance's machine (which is likely why I saved the one icon I did get when I cleaned up prior to losing access to the machine).
CX creates a full Programs menu folder, containing the application, the website link, and the uninstaller; Wine does not seem to create a Programs menu at all (but this could be a SuSE menu issue). CX creates the desktop icon (using the default CX icon, since the program icon could not be extracted); Wine does not (but this could be because the CX icon is already there and cannot be overwritten).
But in both cases, the application is installed.
CX: Using one of the CX icons runs the game (any version) perfectly using CX; the splash screen is displayed, and for the first run, the "add player" dialog is displayed and works, for an unregistered first run, the registration dialog is correctly shown and links on that screen correctly open Firefox and display the URL.
A slight problem is that when I attempted to enter my registration code, which I keep saved in a text file, using the internal right-click "Paste" operation crashed the program to desktop; but using Shift+Insert to paste the text worked fine.
Other than the fact that the Help is not available (nothing happens if you click the "Help" or "Rules" buttons in the main menu or an individual game, which kinda sucks if you want to try a new game but don't know the rules), this application has only a couple of very minor problems, and can be said to be Gold. All text is visible, all options are readable, useable and work properly; I even followed the link from the Options screen and successfully downloaded and installed additional card sets.
The only minor issues other than those already mentioned are things I noticed when using earlier PGS versions in the past, but may no longer be relevant with version 10.2.0 (not yet tested):
1) game saving on exit did not quite work properly if you exit immediately after winning a game (on the reward screen, choose exit immediately, or choose New Game, don't do anything, and exit immediately); when you reopen PGS and select the same game variant as you had just been playing, you don't get a 'clean' new game, but instead the game autoplays to some (indeterminate) point in a previous game you had played. If, however, you win a game, select 'New Game', make one move, then exit, when you reopen and select the same game type, the same game # will open, and your one move will be played automatically (because it was properly saved on exit). *This issue no longer appears in version 10.2.0.*
2) Opening Thunderbird (seems to be specific to T-bird, but did not test extensively because I did not realize this seems PGS version-specific) caused a horrendous amount of flickering (non-critical, as it did not hurt the program's function in any way, it was just insanely annoying), but this seems to have been related to PGS versions 9.10 and below; I am not seeing this with 10.2 at all, so it's something I'd have to test as a version issue for the appdb.
3) Sometimes (possibly when the system was under relatively heavy load in some way), drawing of the game screen was imperfect; some "later" cards on the table (meaning cards visible but not playable at the moment due to game rules) were only partially drawn (not critical, since the cards were not playable). The cards were visible (meaning that the space for the partially or not drawn card was clearly "used" by an object not completely visible), and the card itself was present and could be played when it became playable according to the game rules. Playing the card would also cause it to be drawn properly, but the space where it had been was not necessarily redrawn (so that the card under it, which should have become completely visible when the partially-drawn card was moved, had a "bite" taken out of it). This was a non-critical error which could be resolved by using the "Restart" button to redraw the table. Since I don't know what caused this in the first place, I can't test whether it still happens. For all I know, it could be something fixed in the ATI drivers.
The point being that Codeweavers could put this on their list of supported apps, insofar as it runs more than well enough to be considered perfect.
Wine, though, is a different story.
The application does not run. The splash screen is displayed, for what is the "normal" amount of time (~ 5 seconds), but when the splash screen disappears, the game selection menu does not appear in its place (you're returned to the console prompt). So the app fails cleanly, but the output is horrific (because its over 6000 lines long).
Here's the start and end of it:
[holly@SuSE: ~/games/wine/goodsol] 08:27 $ wine goodsol.exe fixme:ver:VERSION_GetLinkedDllVersion Unknown EXE OS version 4.0, please report !! fixme:ole:CoRegisterMessageFilter stub fixme:ole:OleLoadPictureEx (0x413825fc,103393,1,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=0,y=0,f=0,0x406cf82c), partially implemented. fixme:ole:OLEPictureImpl_Construct Unsupported type 3 fixme:ole:OLEPictureImpl_get_hPal (0x403a1998)->(0x406cf770): stub fixme:ole:OleLoadPictureEx (0x41383efc,4158,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=0,y=0,f=0,0x406cf82c), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403d9138), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403d91b0), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403d8908), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403d8980), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403d89f8), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403d8a70), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403d8ae8), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403da2a8), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403da320), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403da398), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403da410), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403da488), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403da500), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403da578), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403da5f0), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403da668), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403da6e0), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403da758), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403da7d0), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403da848), partially implemented. fixme:ole:OleLoadPictureEx (0x41383efc,0,0,{7bf80980-bf32-101a-8bbb-00aa00300cab},x=32,y=32,f=0,0x403da8c0), partially implemented. fixme:ole:SPCF_CreateInstance (0x40a50d00,(nil),{7bf80980-bf32-101a-8bbb-00aa00300cab},0x403f1ec0), creating stdpic with PICTYPE_NONE. fixme:ole:OLEPictureImpl_Load Could only read 67468 of 138330 bytes in no-header case? fixme:ole:OLEPictureImpl_Load Unknown magic 746c, 67468 read bytes: 6c 74 00 00 00 00 00 00 6c 74 00 00 00 00 00 00 ff 03 3e 00 00 00 04 08 00 6c 62 6c 53 74 61 74 73 00 01 04 09 00 00 80 05 e0 10 78 00 9f 06 cf 03 12 15 00 1f 00 25 01 00 00 00 90 01 44 42 01 00 0d 4d 53 20 53 61 6e 73 20 53 65 72 69 66 ff 03 43 00 00 00 05 08 00 6c 62 6c 54 79 70 65 73 00 01 03 02 00 00 80 04 09 00 00 80 05 d0 02 d0 02 c7 0b ef 01 12 13 00 1f 00 25 01 00 00 00 90 01 44 42 01 00 0d 4d 53 20 53 61 6e 73 20 53 65 72 69 66 ff 03 46 00 00 00 06 0b 00 6c 62 6c 47 61 6d 65 4e 61 6d 65 00 01 03 <snip of over 6000 lines of this> 6d 6e 75 54 72 61 79 45 78 69 74 00 13 03 05 00 45 26 78 69 74 00 ff 03 03 04 fixme:ole:OLEPictureImpl_Destroy Unsupported type 0 - unable to delete fixme:ole:CoRegisterMessageFilter stub [holly@SuSE: ~/games/wine/goodsol] 08:28 $
Now, I can't imagine what insanely proprietary (VB?) code a bloody Solitaire app could use that is completely supported by CX, and completely unsupported by Wine, but maybe one of you can.
If there is any further debugging that would be of use, please specify what channels you want, and I'll (figure out how to) do it.
I think I'll leave this off the appdb for the time being, but any suggestions that would help me include it would be welcome (since I guess I must be willing to maintain it, having done so much work already ;-) ).
Thanks for your time, Holly