Exult Studio Crashes

NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Forum rules
NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Locked
R. Neil

Exult Studio Crashes

Post 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
Dominus
Site Admin
Posts: 5656
Joined: Thu May 14, 2020 1:34 pm

Re: Exult Studio Crashes

Post by Dominus »

OS?
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Malignant Manor
Site Admin
Posts: 985
Joined: Thu May 14, 2020 1:34 pm

Re: Exult Studio Crashes

Post 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.
R. Neil

Re: Exult Studio Crashes

Post 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?
R. Neil

Re: Exult Studio Crashes

Post 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.
Malignant Manor
Site Admin
Posts: 985
Joined: Thu May 14, 2020 1:34 pm

Re: Exult Studio Crashes

Post 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
Malignant Manor
Site Admin
Posts: 985
Joined: Thu May 14, 2020 1:34 pm

Re: Exult Studio Crashes

Post 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.
Kirben
Site Admin
Posts: 14
Joined: Thu May 14, 2020 1:34 pm

Re: Exult Studio Crashes

Post 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.
marzo
Site Admin
Posts: 1925
Joined: Thu May 14, 2020 1:34 pm

Re: Exult Studio Crashes

Post by marzo »

I completely agree with Travis; which is why I closed the tracker rejecting the patch.
------
Marzo Sette Torres Junior
aka Geometrodynamic Dragon
[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
Wizardry Dragon
Posts: 1241
Joined: Thu May 14, 2020 1:34 pm

Re: Exult Studio Crashes

Post by Wizardry Dragon »

Or if you modified the code, the reason for 99% of people compiling from code to begin with ....
Cheers, Wizardry Dragon
Lead Designer, Ultima VII: The Feudal Lands
www.thefeudallands.ca
Malignant Manor
Site Admin
Posts: 985
Joined: Thu May 14, 2020 1:34 pm

Re: Exult Studio Crashes

Post 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.
Malignant Manor
Site Admin
Posts: 985
Joined: Thu May 14, 2020 1:34 pm

Re: Exult Studio Crashes

Post 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.
marzo
Site Admin
Posts: 1925
Joined: Thu May 14, 2020 1:34 pm

Re: Exult Studio Crashes

Post 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.
------
Marzo Sette Torres Junior
aka Geometrodynamic Dragon
[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
Wizardry Dragon
Posts: 1241
Joined: Thu May 14, 2020 1:34 pm

Re: Exult Studio Crashes

Post 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.
Cheers, Wizardry Dragon
Lead Designer, Ultima VII: The Feudal Lands
www.thefeudallands.ca
Locked