Showstopper: AGS Editor, Wine & Vista Game Explorer

Started by Ogon, Mon 09/08/2010 03:01:29

Previous topic - Next topic

Ogon

Hi,

I run the AGS Editor in wine (Linux!) which works flawlessly, but as soon as I try to "Rebuild all files" I get this, apparently, minor compiler error: "Unable to register for Vista Game Explorer: Unable to replace resource: UpdateResource RT_RCDATA failed"

I also get it when I set the wine emulated system to Windows XP instead of e.g. Windows 7 (in which case the about dialog correctly displays "
System: Windows XP Service Pack 3", but AGS still seems to try to use that vista game thing when compiling :( and wine apparently doesn't support it).

I know that wine is not officially supported, but since that error is so minor (my game even has Vista Game Explorer integration deactivated!) it's really sad that the whole thing doesn't work just because of that little thing.

Maybe it would be possible to just spit out a warning and otherwise ignore that error and simply carry on the compilation so that Linux users can also use the AGSEditor? Would be really awesome :) (since everything else just works almost perfectly, I still can't believe it!)

The AGS version I used is "AGS Editor .NET (Build 3.1.2.82) v3.1.2 SP1, February 2009" (official one from the website).

Pumaman

When you compile the game, the editor modifies the resources in the compiled EXE to reflect whether the game supports the Vista Game Explorer or not (it needs to set the entry to "no" if you're not supporting it).

However this could potentially be made a warning rather than an error, however I'm sure other people have run it on Wine and been able to compile successfully -- can anyone help us out??

Ogon

QuoteHowever this could potentially be made a warning rather than an error, however I'm sure other people have run it on Wine and been able to compile successfully -- can anyone help us out??

The only wine thread I know of has been written by myself :-) so probably not many others (this error is also just present in AGS 3, AGS 2 worked flawlessly in wine due to not using .NET and also not any game explorer :P).


If you just made it a warning that would be of great help as an instant fix - I also spoke to wine developers and they did some work on this game explorer thing in wine 1.3 (which is the upcoming version, 1.2 is current) which might help, but 1.3 is yet to be released. Until then just any sort of fix would be nice so I can just use AGS somehow since like this I simply cannot use it (*having severe AGS deficiency* :o)


That an EXE needs to be modified to reflect that it does NOT support the game explorer confuses me a bit though. I also did some programs for windows in C, and I never did any sort of modifications to my EXEs to reflect that they don't support the game explorer  ??? (especially when they weren't even a game) so that's a quite interesting detail. What happens if you simply make a warning out of that error and that modification of the EXE won't happen? Will the game subsequently show up in the Vista Game Explorer then?

Update: I got my hands on an 1.3 dev version now which is quite tedious to manually compile and tested this. Wine 1.3 doesn't fix it. So there's at the moment no way around for wine AGS users besides a workaround in AGS itself (or at least I really cannot think of anything else). In the long run a bug report for the wine project might help, but I don't think this will be fixed very soon.

So I am really, really looking forward to AGS turning this error into a warning instead of a fatal error so I can finally use the AGS 3 editor on Linux! Yup, I really want to do that, really badly. So I'm really hoping you look into this for linux enthusiasts like me :P

Ogon

By reading through the manual I just discovered that "Run" doesn't even need the EXE to be built which makes this issue much less problematic - I really thought I couldn't even run the game for testing!

Since I was entirely wrong on that and can also pass the game to someone else to release it, it's not as pressing as I thought. Still, it would of course be nice if creating EXEs to pass it on to others without having to pass the whole editor game file around would be possible (which requires this Vista Game Explorer issue to be solved somehow, e.g. by turning it into a warning).

- Well ok, game setup also doesn't work (due to an EXE being required) which means I have to testplay in a tiny window. But it's still way better than no testing at all.

Pumaman

#4
Quote from: Ogon on Wed 11/08/2010 00:08:32
If you just made it a warning that would be of great help as an instant fix - I also spoke to wine developers and they did some work on this game explorer thing in wine 1.3 (which is the upcoming version, 1.2 is current) which might help, but 1.3 is yet to be released.

The problem you are having is not related to the actual Game EXplorer itself, it is an error in the Win32 API UpdateResource function which is (or should be) supported on all versions of Windows and provides a means by which EXE files can be updated.

Therefore the actual cause of your problem is that this is not functioning correctly on your WINE installation, but is a fairly core bit of Windows API so I'm not sure why.

It would be useful if somebody else who has used AGS on WINE can confirm if they got this problem also?


EDIT: In fact it looks like this is a WINE bug:
http://bugs.winehq.org/show_bug.cgi?id=14882

Ogon

Oh. I see a commit diff there. That means they probably patched it in the git version which I already compiled earlier on - so I might be able to get my hands on that fixed newer git version aswell. I'll tell you as soon as possible whether it works for me!

QuoteTherefore the actual cause of your problem is that this is not functioning correctly on your WINE installation
I never denied that. The only issue for me is that I simply want to use AGS and it seems to fail when using that winapi function to deal with the Windows Game Explorer (even if it's actually a core function used for many other things) and that simply kept me from being able to use it (which is sad :'().

Since it works on native windows, I never intended to blame that problem on you :) I just hoped for some sort of workaround for this wine limitation.

But let's test their patch, maybe it finally fixes things...

Ogon

The wine patch fixes it :)

An interested person needs to get the git version of wine, apply the patch manually and compile it. The resulting wine will be able to run AGS in its full glory :)

Pumaman

Glad to hear it! Hopefully they'll build that into the next version of WINE. :)

Ogon

Would be surprised if they didn't apply that patch to the 1.3 dev branch. Until then, everyone can fetch wine 1.3 as source code and apply that patch themselves.

If someone has trouble with compiling a custom wine 1.3 from git and applying that patch, just ask here and I'll see if I can help. It surely is worth the trouble if you want to use the AGS Editor on Linux :)

xenogia

#9
Hi Ogon,

I would love to know the step by step procedure on how to compile and apply the patch.  I sent you a PM as well.

EDIT: Just so you know I'm running Ubuntu 10.04

straydogstrut

Is there any difference between Wine on Linux and Wine on Mac? In other words, does the fact you've got it working on Linux suggest the same may work on Mac OS X? I have to admit I know next to nothing about Wine really; I've only compiled a few apps using third party tools like CrossOver and WineBottler.

Last time I installed AGS with CrossOver it wouldn't even load, however I managed to solve quite a few errors and get it to start using WineBottler and WineTricks, but i'm sure it crashed for some reason or another that I couldn't get around at the time. I would try again if it's not utterly hopeless?

Mac support is not a deal-breaker for me since I also use Windows (and I know the Mac port is currently discontinued anyway) but any chance to spend more time with my beloved Mac OS X is welcome ;)

xenogia

I think there is a little difference straydogstrut.  Some games run a lot better on Linux through Wine than they do on Mac for various reasons.  I'm not sure of technical aspect of this though.

Ogon

>>Guide for compiling a patched wine with lots of images<<

Please tell me if you get stuck at some point! I'd really like to improve if there's something missing or unclear.

For a complete wine-based editor installation right from the start: AGS on Linux Guide

Sorry it got so long, but I didn't want to skip any details so as many people as possible can get through it without much prior knowledge of Linux or wine.

xenogia

Cheers Ogon.. Works fantastic for me.. I appreciate the guide.

straydogstrut

Thanks for the reply Xenogia, and that Linux guide is really useful, well done Ogon=)

xenogia

#15
Today is a fantastic day for AGS under Linux even if it isn't native.  IT WORKS :)

Here is a screenshot to show people

http://pic.leech.it/i/9abf0/96a5fdcbscreenshot.png

xenogia

Just thought I'd share the following bug, don't know if CJ can resolve this for Wine users.

Code: ags

Error: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Version: AGS 3.2.0.103

System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at System.Windows.Forms.UnsafeNativeMethods.OleGetClipboard(IDataObject& data)
   at System.Windows.Forms.Clipboard.GetDataObject(Int32 retryTimes, Int32 retryDelay)
   at System.Windows.Forms.Clipboard.GetDataObject()
   at System.Windows.Forms.Clipboard.ContainsText(TextDataFormat format)
   at System.Windows.Forms.Clipboard.ContainsText()
   at AGS.Editor.ScintillaWrapper.CanPaste()
   at AGS.Editor.ScriptEditor.UpdateToolbarButtonsIfNecessary()
   at AGS.Editor.ScriptEditor.scintilla_UpdateUI(Object sender, EventArgs e)
   at AGS.Editor.ScintillaWrapper.OnUpdateUI(Object sender, EventArgs e)
   at Scintilla.ScintillaControl.DispatchScintillaEvent(SCNotification notification)
   at Scintilla.ScintillaControl.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Pumaman

That's some sort of crash inside the clipboard routines, probably some sort of bug related to teh WINE clipboard implementation. I don't think there's anything I can do about that.

xenogia


dankegel

Quote from: Pumaman on Tue 17/08/2010 23:08:44
That's some sort of crash inside the clipboard routines, probably some sort of bug related to teh WINE clipboard implementation. I don't think there's anything I can do about that.

Yes there is - you can report a bug at bugs.winehq.org  Don't forget to specify which versions of wine
are affected, and how to reproduce.

SMF spam blocked by CleanTalk