It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
Hi!

I've just bought this game, downloaded and tried to install.
I've installed divinity_original_sin_enhanced_edition_en_2_0_119_430_ch_17075.sh
Then i tried to run patch_divinity_original_sin_enhanced_edition_2.0.1.3.sh
and patch_divinity_original_sin_enhanced_edition_2.1.2.4.sh

Both failed with version mismatch.
Game won't run:

$ ./start.sh
Running Divinity: Original Sin - Enhanced Edition
Language detected: Polish
[S_API FAIL] SteamAPI_Init() failed; no appID found.
Either launch the game from Steam, or put the file steam_appid.txt containing the correct appID in your game folder.
Thread "EoCApp" (814098368)
received signal 11

Call stack:

(0) /lib/x86_64-linux-gnu/libpthread.so.0 : +0x11390 [0x7f4d339f4390]
(1) ./libOGLBinding.so : api::OpenGLRenderer::ApplyConstants()+0x65 [0x7f4d34928845]
(2) ./libRenderFramework.so : rf::Renderer::Apply(bool)+0x57 [0x7f4d345ce437]
(3) ./EoCApp : ig::IggyBinding::Swap(rf::Renderer*)+0xfc [0xed032c]
(4) ./libGameEngine.so : BaseApp::EndDrawGUI(rf::Renderer*)+0x9b [0x7f4d34728fab]
(5) ./libGameEngine.so : BaseApp::MakeFrame()+0x3a4 [0x7f4d347294d4]
(6) ./libGameEngine.so : BaseApp::OnIdle()+0xe0 [0x7f4d34727cb0]
(7) ./EoCApp : main+0x170 [0x6d5180]
(8) /lib/x86_64-linux-gnu/libc.so.6 : __libc_start_main+0xf0 [0x7f4d33639830]
(9) ./EoCApp : _start+0x29 [0x6d4ef9]
Segmentation fault (core dumped)


Please help!
No posts in this topic were marked as the solution yet. If you can help, add your reply
Got a solution!

Based on from [reddit domain]/r/archlinux/comments/52eei7/problem_with_opengl_and_divinity_original_sin_ee/

We need to download this (bugs. [freedesktop domain] /attachment.cgi?id=125302):

=== cut here ===
/*
* LD_PRELOAD shim which applies two patches necesary to get the game
* Divinity: Original Sin Enhanded Edition for Linux to work with Mesa (12+)
*
* Build with: gcc -s -O2 -shared -fPIC -o divos-hack.{so,c} -ldl
*/

/* for RTLD_NEXT */
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif
#include <dlfcn.h>
#include <GL/gl.h>
#include <string.h>

#define _GLX_PUBLIC

/*
* [github domain] /karolherbst/mesa/commit/aad2543bf6cfbd7df795d836e5ff4ec8686e4fdf
* - allow env override of vendor string. I actually just hard-coded
* ATI Technologies, Inc., since that appears to be what's needed
*/
const GLubyte *GLAPIENTRY glGetString( GLenum name )
{
static void *next = NULL;
static const char *vendor = "ATI Technologies, Inc.";
if(name == GL_VENDOR)
return (const GLubyte *)vendor;
if(!next)
next = dlsym(RTLD_NEXT, "glGetString");
return ((const GLubyte *GLAPIENTRY (*)(GLenum))next)(name);
}

/*
* gist. [githubdomain] /karolherbst/b279233f8b13c9db1f3e1e57c6ecfbd2
*/
_GLX_PUBLIC void (*glXGetProcAddressARB(const GLubyte * procName)) (void)
{
static void *next = NULL;
if (strcmp((const char *) procName, "glNamedStringARB") == 0 ||
strcmp((const char *) procName, "glDeleteNamedStringARB") == 0 ||
strcmp((const char *) procName, "glCompileShaderIncludeARB") == 0 ||
strcmp((const char *) procName, "glIsNamedStringARB") == 0 ||
strcmp((const char *) procName, "glGetNamedStringARB") == 0 ||
strcmp((const char *) procName, "glGetNamedStringivARB") == 0)
return NULL;
if(!next)
next = dlsym(RTLD_NEXT, "glXGetProcAddressARB");
return ((_GLX_PUBLIC void (*(*)(const GLubyte *))(void))next)(procName);
}

=== end of cut ===

Save as divos-hack.c, and compile it with command:
gcc -s -O2 -shared -fPIC -o divos-hack.so -ldl divos-hack.c
And put resulting divos-hask.so into games game directory (near to runner.sh)

Also, we have to edit runner.sh, to look like this:

#!/bin/sh
export MESA_GL_VERSION_OVERRIDE=4.2 MESA_GLSL_VERSION_OVERRIDE=420
allow_glsl_extension_directive_midshader=true LD_PRELOAD=./divos-hack.so LD_LIBRARY_PATH="." ./EoCApp

It works now.