Page 1 of 1

Exult Studio Crashes

Posted: Sun May 03, 2009 5:15 pm
by R. Neil
I have compiled and setup Exult according to the Readme.Win32 guide, along with some tips from Marzo. Everything compiles correctly, but when I try to start Exult Studio, I get the following Error Messages:

"Pango-Error **: file shape.c: line 75 (pango_shape): assertion failed: (glyphs > num_glyphs > 0) aborting..."

This is followed by a runtime-error, telling me the applications runtime has requested it to terminate in an unusual way, and to contact the applications support team.

Has anyone ever had this problem before? If so, is it something fixable? Any tips would be greatly appreciated. Thanks for your consideration.

- R. Neil aka "Jacar"
Titans of Ether- 3d Modeler

Re: Exult Studio Crashes

Posted: Sun May 03, 2009 5:58 pm
by Dominus
OS?

Re: Exult Studio Crashes

Posted: Sun May 03, 2009 6:47 pm
by Malignant Manor
It seems like you are missing ".\lib\pango\1.4.0\modules\pango-basic-win32.dll".

You might need:

.\lib\gtk-2.0\2.4.0\loaders\libpixbufloader-xpm.dll
.\lib\pango\1.4.0\modules\pango-basic-win32.dll
.\iconv.dll
.\intl.dll
.\libatk-1.0-0.dll
.\libgdk_pixbuf-2.0-0.dll
.\libgdk-win32-2.0-0.dll
.\libglib-2.0-0.dll
.\libgmodule-2.0-0.dll
.\libgobject-2.0-0.dll
.\libgtk-win32-2.0-0.dll
.\libpango-1.0-0.dll
.\libpangowin32-1.0-0.dll
.\etc\gtk-2.0\gdk-pixbuf.loaders
.\etc\pango\pango.modules


If I left out any requirements not automatically added. Read "./win32/exult_studio_installer.iss" and you will see the other file requirements.

Re: Exult Studio Crashes

Posted: Sun May 03, 2009 9:32 pm
by R. Neil
All that stuff is in the MINGW libraries. The readme says I can set my path environment variable to include the MINGW bin folder, where do I do that?

Re: Exult Studio Crashes

Posted: Sun May 03, 2009 9:52 pm
by R. Neil
Actually, nvm, your way works fine :). Thanks for the help, I appreciate it. Now it's time to learn the nuances of Exult Studio.

Re: Exult Studio Crashes

Posted: Mon May 04, 2009 12:24 am
by Malignant Manor
I think makefile.mingw should include something like the following.

Code: Select all

at the beginning where the other paths are defined:

# Copies the dlls needed for ES plus gdk-pixbuf.loaders and pango.modules from the MinGW directories
ifdef STUDIO_DLLS
MinGW_PATH= C:/MinGW
endif


at the end of "studioinstall: exult_studio$(EXEEXT)" and "studiodist: exult_studio$(EXEEXT)":

ifdef STUDIO_DLLS
	cp $(MinGW_PATH)/bin/iconv.dll $(U7PATH)/Studio
	cp $(MinGW_PATH)/bin/intl.dll $(U7PATH)/Studio
	cp $(MinGW_PATH)/bin/libatk-1.0-0.dll $(U7PATH)/Studio
	cp $(MinGW_PATH)/bin/libgdk_pixbuf-2.0-0.dll $(U7PATH)/Studio
	cp $(MinGW_PATH)/bin/libgdk-win32-2.0-0.dll $(U7PATH)/Studio
	cp $(MinGW_PATH)/bin/libglib-2.0-0.dll $(U7PATH)/Studio
	cp $(MinGW_PATH)/bin/libgmodule-2.0-0.dll $(U7PATH)/Studio
	cp $(MinGW_PATH)/bin/libgobject-2.0-0.dll $(U7PATH)/Studio
	cp $(MinGW_PATH)/bin/libgtk-win32-2.0-0.dll $(U7PATH)/Studio
	cp $(MinGW_PATH)/bin/libpango-1.0-0.dll $(U7PATH)/Studio
	cp $(MinGW_PATH)/bin/libpangowin32-1.0-0.dll $(U7PATH)/Studio
	mkdir -p $(U7PATH)/Studio/lib
	mkdir -p $(U7PATH)/Studio/lib/pango
	mkdir -p $(U7PATH)/Studio/lib/pango/1.4.0
	mkdir -p $(U7PATH)/Studio/lib/pango/1.4.0/modules
	cp $(MinGW_PATH)/lib/pango/1.4.0/modules/pango-basic-win32.dll $(U7PATH)/Studio/lib/pango/1.4.0/modules
	mkdir -p $(U7PATH)/Studio/lib
	mkdir -p $(U7PATH)/Studio/lib/gtk-2.0
	mkdir -p $(U7PATH)/Studio/lib/gtk-2.0/2.4.0
	mkdir -p $(U7PATH)/Studio/lib/gtk-2.0/2.4.0/loaders
	cp $(MinGW_PATH)/lib/gtk-2.0/2.4.0/loaders/libpixbufloader-xpm.dll $(U7PATH)/Studio/lib/gtk-2.0/2.4.0/loaders
	mkdir -p $(U7PATH)/Studio/etc
	mkdir -p $(U7PATH)/Studio/etc/pango
	mkdir -p $(U7PATH)/Studio/etc/gtk-2.0
	cp $(MinGW_PATH)/etc/gtk-2.0/gdk-pixbuf.loaders $(U7PATH)/Studio/etc/gtk-2.0
	cp $(MinGW_PATH)/etc/pango/pango.modules $(U7PATH)/Studio/etc/pango
endif

Re: Exult Studio Crashes

Posted: Mon May 04, 2009 12:35 am
by Malignant Manor
Oops, "studioinstall: exult_studio$(EXEEXT)" needs:

Code: Select all

ifdef STUDIO_DLLS
	cp $(MinGW_PATH)/bin/iconv.dll $(U7PATH)
	cp $(MinGW_PATH)/bin/intl.dll $(U7PATH)
	cp $(MinGW_PATH)/bin/libatk-1.0-0.dll $(U7PATH)
	cp $(MinGW_PATH)/bin/libgdk_pixbuf-2.0-0.dll $(U7PATH)
	cp $(MinGW_PATH)/bin/libgdk-win32-2.0-0.dll $(U7PATH)
	cp $(MinGW_PATH)/bin/libglib-2.0-0.dll $(U7PATH)
	cp $(MinGW_PATH)/bin/libgmodule-2.0-0.dll $(U7PATH)
	cp $(MinGW_PATH)/bin/libgobject-2.0-0.dll $(U7PATH)
	cp $(MinGW_PATH)/bin/libgtk-win32-2.0-0.dll $(U7PATH)
	cp $(MinGW_PATH)/bin/libpango-1.0-0.dll $(U7PATH)
	cp $(MinGW_PATH)/bin/libpangowin32-1.0-0.dll $(U7PATH)
	mkdir -p $(U7PATH)/lib
	mkdir -p $(U7PATH)/lib/pango
	mkdir -p $(U7PATH)/lib/pango/1.4.0
	mkdir -p $(U7PATH)/lib/pango/1.4.0/modules
	cp $(MinGW_PATH)/lib/pango/1.4.0/modules/pango-basic-win32.dll $(U7PATH)/lib/pango/1.4.0/modules
	mkdir -p $(U7PATH)/lib
	mkdir -p $(U7PATH)/lib/gtk-2.0
	mkdir -p $(U7PATH)/lib/gtk-2.0/2.4.0
	mkdir -p $(U7PATH)/lib/gtk-2.0/2.4.0/loaders
	cp $(MinGW_PATH)/lib/gtk-2.0/2.4.0/loaders/libpixbufloader-xpm.dll $(U7PATH)/lib/gtk-2.0/2.4.0/loaders
	mkdir -p $(U7PATH)/etc
	mkdir -p $(U7PATH)/etc/pango
	mkdir -p $(U7PATH)/etc/gtk-2.0
	cp $(MinGW_PATH)/etc/gtk-2.0/gdk-pixbuf.loaders $(U7PATH)/etc/gtk-2.0
	cp $(MinGW_PATH)/etc/pango/pango.modules $(U7PATH)/etc/pango
endif

I forgot about about the distribution's added path when pasting.

Re: Exult Studio Crashes

Posted: Tue May 05, 2009 12:12 am
by Kirben
No, installing the required GTK+ libraries as part of Exult Studio target would not be a good idea. Since the GTK+ libraries could be at a different location, or a different version of the GTK+ libraries could be used.

The only reasons to compile Exult Studio for Windows, would be to alter source code or use later versions of GTK+ libraries.

Re: Exult Studio Crashes

Posted: Tue May 05, 2009 12:26 am
by marzo
I completely agree with Travis; which is why I closed the tracker rejecting the patch.

Re: Exult Studio Crashes

Posted: Tue May 05, 2009 12:39 am
by Wizardry Dragon
Or if you modified the code, the reason for 99% of people compiling from code to begin with ....

Re: Exult Studio Crashes

Posted: Tue May 05, 2009 2:11 am
by Malignant Manor
I've modified and compiled ES plenty of times and haven't needed to modify the dlls. Currently, the only reasonable way to know what files to even add beyond the ./dlls through error messages is in the Inno installer script or downloading a pre-compiled version of ES. This setup is where the files are as per the compilation instructions, doesn't effect people that don't want to use it, and is disabled by default.

Re: Exult Studio Crashes

Posted: Tue May 05, 2009 2:16 am
by Malignant Manor
If you are unwilling to add this optional addition that can help people out with information not given in the installation instructions, at least list the default files/path requirements in README.win32.

Re: Exult Studio Crashes

Posted: Tue May 05, 2009 3:17 pm
by marzo
Installing the GTK+ libs as a part of the Exult Studio target, however optionally, is the wrong solution to the problem; the correct solution is to set the GTK_BASEPATH environment variable to the proper path. This makes any GTK+ programs find those DLLs, prevents unneeded bloating of the makefile and unnecessary copying of files. In fact, that environmental variable not being set is a sign that GTK+ is not correctly installed in the computer (possibly a symptom of using the dev package). A note about this can be added to readme.win32.

Re: Exult Studio Crashes

Posted: Tue May 05, 2009 9:23 pm
by Wizardry Dragon
It could certainly help - though I'm a fan of having the dependancies of a package available to be easily installed through that package's installation mechanisms (much as many Win32 games offer the option to install DirectX) - especially since not everyone is going to have something like yum or the debian updater. A reasonable compromise might be to have options to go to the vendor sites to download them.