Hello, i just want to know is anybody have the same issue as I?
The game crashes both on hrp and grp when i try to quit security cameras view.
Tried many different settings, everything works fine except that bug with cameras.
My config Ubuntu 9.10
Linux LinuxOS 2.6.31-17-generic-pae #54-Ubuntu SMP Thu Dec 10 17:23:29 UTC 2009 i686 GNU/Linux
Gf GTX275
Core 2 Duo E6600
4Gb ram
last 10 line from eduke32.log:
Setting video mode 800x600 (32-bpp windowed)
OpenGL Information:
Version: 3.2.0 NVIDIA 190.53
Vendor: NVIDIA Corporation
Renderer: GeForce GTX 275/PCI/SSE2
Cache contains 3404 bytes of garbage data
Initializing music...
Initializing sound...
EOF: EDuke32
Cache time: 2487ms
My last actions
1. Start eduke32 with HRP support
2. Load last saved game near security cameras.
3. Use terminal
4. Try to get back from terminal
5. Game crashed.
With Regards and thanks in advance.
Page 1 of 1
eduke32 crash issue "game crash"
#1 Posted 30 December 2009 - 07:14 AM
#2 Posted 30 December 2009 - 07:17 AM
It probably would help if you posted the whole of the eduke32 log, I do know that the was some sort security camera issue that was fixed with Linux some time last month.
#3 Posted 30 December 2009 - 07:22 AM
The Commander, on Dec 30 2009, 08:17 AM, said:
It probably would help if you posted the whole of the eduke32 log, I do know that the was some sort security camera issue that was fixed with Linux some time last month.
EDuke32 2.0.0devel 20091215
Application parameters: -g Duke3D.grp -h duke3d_hrp.zip
addsearchpath(): Added /tmp/123/eduke32/polymer/eduke32/
addsearchpath(): Added /home/dukie/.eduke32/
Initializing SDL system interface (compiled against SDL version 1.2.13, found version 1.2.13)
Loading libGL.so.1
Loading libGLU.so.1
Using "x11" video driver
Using config file 'eduke32.cfg'.
Scanning for GRP files...
Warning: could not find main group file 'duke3d.grp'!
Using group file 'Duke3D.grp'.
Using group file 'duke3d_hrp.zip'.
Compiling: GAME.CON (151190 bytes)
Including: DEFS.CON (35992 bytes)
Including: USER.CON (45482 bytes)
GAME.CON: In actor `ORGANTIC':
GAME.CON:3968: warning: found `else' with no `if'.
GAME.CON: In state `pigshootenemystate':
GAME.CON:5891: warning: found `else' with no `if'.
Found 2 warning(s), 0 error(s).
Resizing code buffer to 16187*4 bytes
Script compiled in 19ms
Compiled code size: 16179*4 bytes, version 1.4+
Pointer bitmap size: 2024 bytes
1918/11264 labels, 321/2048 variables
125/16384 quotes, 0 quote redefinitions
0/88 event definitions, 207 defined actors
Initialized 32.0M cache
Loading 'duke3d.def'
Definitions file 'duke3d.def' loaded.
RTS file DUKE.RTS was not found
Initializing OSD...
0 joystick(s) found
Setting video mode 800x600 (32-bpp windowed)
OpenGL Information:
Version: 3.2.0 NVIDIA 190.53
Vendor: NVIDIA Corporation
Renderer: GeForce GTX 275/PCI/SSE2
Cache contains 3404 bytes of garbage data
Initializing music...
Initializing sound...
That's all i've got in eduke32.log...
#4 Posted 30 December 2009 - 07:38 AM
This is a known issue with the GNU C-compiler rev4.4.x. However, you seem to be the first one to encounter this on a LINUX machine.
http://forums.duke4.net/index.php?showtopi...60&start=60
Try to build build eduke32 with gcc-4.3.x.
http://forums.duke4.net/index.php?showtopi...60&start=60
Try to build build eduke32 with gcc-4.3.x.
#5 Posted 30 December 2009 - 08:19 AM
LeoD, on Dec 30 2009, 08:38 AM, said:
This is a known issue with the GNU C-compiler rev4.4.x. However, you seem to be the first one to encounter this on a LINUX machine.
http://forums.duke4.net/index.php?showtopi...60&start=60
Try to build build eduke32 with gcc-4.3.x.
http://forums.duke4.net/index.php?showtopi...60&start=60
Try to build build eduke32 with gcc-4.3.x.
Tried with gcc-4.3 and even with gcc-4.2 the same problem.
compiled with DEBUG mode, gdb output:
Temporary breakpoint 1, 0x081ade83 in main ()
Continuing.
[New Thread 0xa6172b70 (LWP 12776)]
[Thread 0xa6172b70 (LWP 12776) exited]
[New Thread 0xa6172b70 (LWP 12777)]
[New Thread 0xa5971b70 (LWP 12778)]
Program received signal SIGSEGV, Segmentation fault.
0x08141f07 in squarerotatetile ()
void squarerotatetile(int16_t tilenume) in engine.c source file.
is there any solution from developers how to correct this function for correct work?
#6 Posted 30 December 2009 - 08:30 AM
sorry, forgot to rebuild object file with gcc-4.3, now it seems to work fine. Thanks for advices.
Regards
Regards
#7 Posted 30 December 2009 - 11:33 AM
i don't know, maybe this information will help someone with gcc-4.4.x:
in eduke32/source/premap.c line number 541 in function "xyzmirror(int32_t i,int32_t wn)"
in line:
squarerotatetile(wn);
need to comment this line with two slashes should look as follow:
//squarerotatetile(wn);
This function will be called only when you are trying to use security cameras. Inside this function there are asm inserts. They are trying to swap some data by wrong addresses in memory. I don't know what exactly this function doing, but after excluding it from code. game start to work fine even with gcc-4.4.x.
Reagards.
in eduke32/source/premap.c line number 541 in function "xyzmirror(int32_t i,int32_t wn)"
in line:
squarerotatetile(wn);
need to comment this line with two slashes should look as follow:
//squarerotatetile(wn);
This function will be called only when you are trying to use security cameras. Inside this function there are asm inserts. They are trying to swap some data by wrong addresses in memory. I don't know what exactly this function doing, but after excluding it from code. game start to work fine even with gcc-4.4.x.
Reagards.
#8 Posted 30 December 2009 - 06:51 PM
Fix/Workaround confirmed for WinXP/GCC 4.4.1 TDM-1.
Good work, dd. Should be helpful to the eduke developers.
Good work, dd. Should be helpful to the eduke developers.
#9 Posted 31 December 2009 - 10:08 AM
Changing gcc version didn't work, but dungeonduke's workaround worked just fine under Ubuntu 9.10 as well.
Thanks!
Thanks!
#10 Posted 16 January 2010 - 03:16 AM
It looks like the botched optimizations by gcc can by bypassed by disabling them for that specific function; replace squarerotatetile in engine.c with this:
Who knows what gcc is doing wrong, but this will work until a future version fixes it. I was hoping that shuffling things around in the function by hand a bit would trip up whatever optimization is faulty and allow things to work without disabling optimizations for the function altogether, but no go.
// // squarerotatetile // #ifdef __GNUC__ #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) #if (GCC_VERSION >= 40400) #pragma GCC optimize("0") #endif #endif void squarerotatetile(int16_t tilenume) { int32_t siz; //supports square tiles only for rotation part if ((siz = tilesizx[tilenume]) == tilesizy[tilenume]) { int32_t i = siz-1; for (; i>=0; i--) { int32_t j=(i>>1)-1; char *ptr1 = (char *)(waloff[tilenume]+i*(siz+1)), *ptr2 = ptr1; if (i&1) swapchar(--ptr1, (ptr2 -= siz)); for (; j>=0; j--) swapchar2((ptr1 -= 2), (ptr2 -= (siz<<1)), siz); } } } #ifdef __GNUC__ #if (GCC_VERSION >= 40400) #pragma GCC reset_options #endif #undef GCC_VERSION #endif
Who knows what gcc is doing wrong, but this will work until a future version fixes it. I was hoping that shuffling things around in the function by hand a bit would trip up whatever optimization is faulty and allow things to work without disabling optimizations for the function altogether, but no go.
Share this topic:
Page 1 of 1