icculus / Serious-Engine

An open source version of a game engine developed by Croteam for the classic Serious Sam games.
GNU General Public License v2.0
165 stars 23 forks source link

Portable C is useable now, plus a (beggining of) OpenPandora (arm processor) port #11

Closed ptitSeb closed 8 years ago

icculus commented 8 years ago

This is really great work, thank you! I'll probably merge this in tonight when I get home.

Out of curiousity: do you have access to SDL2 on Pandora at this point? I don't know where we stand on that platform, but eventually we're planning to move Serious Sam to SDL2, and I don't want to lock you out.

ptitSeb commented 8 years ago

Thanks.

I have SDL2 on the Pandora, it's OK to migrate.

ericwomer commented 8 years ago

With his changes and using portable c the game is actually playable, no more crashing when hitting escape.

icculus commented 8 years ago

With his changes the game is actually playable, no more crashing when hitting escape.

That was the IsMenuEnabled() thing; we were finding the wrong symbol with dlsym(), so it would just call itself recursively until it ran out of stack.

icculus commented 8 years ago

GLES hardware doen't read depth, so I assume ARM based machine

Is this rendering yet? I don't know, but my instinct is that returning FALSE here unconditionally will encourage the engine to not draw anything at all, if this was meant to be an early form of occlusion query.

But maybe it's not that at all and this is no big deal.

ptitSeb commented 8 years ago

That function is only used on Lens Flare (AFAIK), so it's not a big deal to ignore it.

ericwomer commented 8 years ago

There is one issue, don't know if its related or not but when you watch the first cut scene after starting a game and where it gets to the giant demon guy it crashes, here is a core dump, warning its 35mb compressed, https://dl.dropboxusercontent.com/u/71062164/SeriousEngine/core-20160406.tar.xz but if you hit escape before that part you can play though.

icculus commented 8 years ago

Also, there's a few other things in here I'm going to tweak (like...should we #ifdef around the gettimeofday() stuff, or should we just use the Pandora version everywhere?). If you see me do something stupid, please feel free to let me know!

ptitSeb commented 8 years ago

Yes, I have noticed the same thing on the Pandora, but I haven't tried on x86 linux.

ptitSeb commented 8 years ago

I'm not a fan of gettimeofday(), but I didn't want to make too much change on mainline, that why if ifdef it.

icculus commented 8 years ago

where it gets to the giant demon guy it crashes

Weirdly, I survived that...maybe it's some uninitialized thing we can find with Valgrind. I crashed in an unconditional assertion when the spaceship and the ship full of...whatever those things are...crash into each other shortly after the demon scene.

Serious-Engine/Sources/Engine/Entities/Entity.cpp:2812: void CEntity::GetEntityPointRatio(const FLOAT3D&, FLOAT3D&, BOOL): Assertion `0' failed.

(this asserts because en_RenderType == RT_NONE. I haven't tracked it further yet. Is it possible this was never run on that scene with assertions before, though...?)

ptitSeb commented 8 years ago

I can really play only on release mode (so no asserts) on the Pandora (not enough CPU power), but this part indeed doesn't works well and things doesn't really happens and the demo get stucks here. Pressing Esc you then start the game.

ericwomer commented 8 years ago

This is what I get running valgrind -v --leak-check=full --show-leak-kinds=all ssam > valgrind.log 2>&1

its an output of what valgrind found and a vgcore dump.

ericwomer commented 8 years ago

I never make it to anywhere because it just dumps the core and quits.

ptitSeb commented 8 years ago

@salamanderrake is you binary (and associated lib) in the Bin folder?

EDIT seeing your command line, I can see it isn't. You should cop binary and lib to the Bin folder, the engine expect that.

ptitSeb commented 8 years ago

I just tried on a x86 linux VM, with Portable C the intro demo went fine, including the crash and all. I have to retry on the Pandora.

ericwomer commented 8 years ago

@ptitSeb when you build debug it wants the libs in Bin/Debug and the binary in Bin/

ericwomer commented 8 years ago

Maybe its a debug build thats causing the issue?

icculus commented 8 years ago

I love that we've turned this pull request into our own personal IRC channel. :)

ericwomer commented 8 years ago

Nope, I get this with a release build.

 *** Error in `./ssam': free(): corrupted unsorted chunks: 0x086bd8d8 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x65064)[0xf72ae064]
/lib/i386-linux-gnu/libc.so.6(+0x6b367)[0xf72b4367]
/lib/i386-linux-gnu/libc.so.6(+0x6bb31)[0xf72b4b31]
/usr/lib/i386-linux-gnu/libSDL-1.2.so.0(+0x116f1)[0xf76026f1]
/usr/lib/i386-linux-gnu/libSDL-1.2.so.0(SDL_WaitThread+0x49)[0xf7602aa9]
/usr/lib/i386-linux-gnu/libSDL-1.2.so.0(SDL_AudioQuit+0x39)[0xf75f94f9]
/usr/lib/i386-linux-gnu/libSDL-1.2.so.0(SDL_QuitSubSystem+0x8d)[0xf75f83bd]
/usr/lib/i386-linux-gnu/libSDL-1.2.so.0(SDL_Quit+0x19)[0xf75f8459]
/usr/lib/i386-linux-gnu/libSDL-1.2.so.0(+0x7931)[0xf75f8931]
[0xf7724bc0]
./ssam(_ZN9CRenderer9ScanEdgesEv+0xad9)[0x81fdec9]
./ssam(_ZN9CRenderer19ScanForOtherSectorsEv+0xbd)[0x81feacd]
./ssam(_ZN9CRenderer6RenderEv+0xf8)[0x81fecb8]
./ssam(_Z10RenderViewR6CWorldR7CEntityR16CAnyProjection3DR9CDrawPort+0xe7)[0x81ff8e7]
/mnt/store/Games/app_41060/depot_41061/Bin/libEntitiesMP.so(_ZN7CPlayer16RenderCameraViewEP9CDrawPorti+0x1bc)[0xf63d1f1c]
/mnt/store/Games/app_41060/depot_41061/Bin/libEntitiesMP.so(_ZN7CPlayer14RenderGameViewEP9CDrawPortPv+0x1cc)[0xf63d235c]
/mnt/store/Games/app_41060/depot_41061/Bin/libGameMP.so(_ZN5CGame14GameRedrawViewEP9CDrawPortm+0x350)[0xf61db750]
./ssam(_Z6DoGamev+0x2be)[0x827656e]
./ssam(_Z7SubMainPvS_Pci+0xa5f)[0x8278cef]
./ssam(_Z14CommonMainlinePvS_Pci+0x1e)[0x8278fae]
./ssam(main+0xdb)[0x80b297b]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf6)[0xf7261646]
./ssam[0x80b6674]
======= Memory map: ========
08048000-08327000 r-xp 00000000 08:04 2495510                            /mnt/store/Games/app_41060/depot_41061/Bin/ssam
08327000-08328000 r--p 002de000 08:04 2495510                            /mnt/store/Games/app_41060/depot_41061/Bin/ssam
08328000-0832b000 rw-p 002df000 08:04 2495510                            /mnt/store/Games/app_41060/depot_41061/Bin/ssam
0832b000-0835b000 rw-p 00000000 00:00 0 
0858a000-0a939000 rw-p 00000000 00:00 0                                  [heap]
e8f52000-e9352000 rw-s 18cdb1000 00:06 586                               /dev/nvidiactl
e9359000-e9759000 rw-s 2f2f50000 00:06 586                               /dev/nvidiactl
e97a6000-e9afd000 rw-p 00000000 00:00 0 
e9e78000-ea278000 rw-s 031a7000 00:06 586                                /dev/nvidiactl
ea334000-ea434000 rw-s 350773000 00:06 586                               /dev/nvidiactl
ea43b000-ea4e1000 rw-p 00000000 00:00 0 
ea4e1000-ea8e1000 rw-s 14690000 00:06 586                                /dev/nvidiactl
ea938000-eab38000 rw-s 0e607000 00:06 586                                /dev/nvidiactl
eab3c000-eabbc000 rw-s 3617cb000 00:06 586                               /dev/nvidiactl
eabc1000-eabc3000 rw-s 00000000 08:03 393243                             /tmp/.glCRsTCS (deleted)
eabc9000-eabcb000 r-xs 00000000 08:03 393243                             /tmp/.glCRsTCS (deleted)
eabcf000-eac4f000 rw-s 3561fe000 00:06 586                               /dev/nvidiactl
eac4f000-eaccf000 rw-s 10131e000 00:06 586                               /dev/nvidiactl
ead45000-eadda000 rw-p 00000000 00:00 0 
eadda000-eaded000 rw-s 81809000 00:06 586                                /dev/nvidiactl
eadf1000-eae11000 rw-s c02e0000 00:06 587                                /dev/nvidia0
eae16000-eae17000 rw-s 11625000 00:06 586                                /dev/nvidiactl
eae1e000-eae5e000 rw-s 12065000 00:06 586                                /dev/nvidiactl
eae5e000-eae7e000 rw-s 11655000 00:06 586                                /dev/nvidiactl
eae80000-eaec0000 rw-s 10eb4f000 00:06 586                               /dev/nvidiactl
eaec3000-eaee3000 rw-s 18d89a000 00:06 586                               /dev/nvidiactl
eaee6000-eaf26000 rw-s 17b0cd000 00:06 586                               /dev/nvidiactl
eaf2c000-eb11b000 rw-p 00000000 00:00 0 
eb11b000-eb21f000 rw-s 4244a2000 00:06 586                               /dev/nvidiactl
eb221000-ecdf7000 r-xp 00000000 08:03 673778                             /usr/lib32/nvidia-364/libnvidia-glcore.so.364.12
ecdf7000-ece17000 rwxp 01bd6000 08:03 673778                             /usr/lib32/nvidia-364/libnvidia-glcore.so.364.12
ece17000-ed4ae000 r-xp 01bf6000 08:03 673778                             /usr/lib32/nvidia-364/libnvidia-glcore.so.364.12
ed4ae000-ed54b000 rw-p 0228d000 08:03 673778                             /usr/lib32/nvidia-364/libnvidia-glcore.so.364.12
ed54b000-ed55a000 rw-p 00000000 00:00 0 
ed561000-ed621000 r-xp 00000000 08:03 673782                             /usr/lib32/nvidia-364/libGLX_nvidia.so.364.12
ed621000-ed641000 rwxp 000c0000 08:03 673782                             /usr/lib32/nvidia-364/libGLX_nvidia.so.364.12
ed641000-ed66a000 r-xp 000e0000 08:03 673782                             /usr/lib32/nvidia-364/libGLX_nvidia.so.364.12
ed66a000-ed66f000 rw-p 00108000 08:03 673782                             /usr/lib32/nvidia-364/libGLX_nvidia.so.364.12
ed66f000-ed673000 rw-p 00000000 00:00 0 
ed674000-ed678000 rw-s b93f3000 00:06 586                                /dev/nvidiactl
ed67f000-ed680000 rw-s cfd66000 00:06 587                                /dev/nvidia0
ed687000-ed688000 rw-s cfd66000 00:06 587                                /dev/nvidia0
ed6b1000-ed6f1000 rw-s 00000000 08:15 24644578                           /home/rake/.glvndcw8zip (deleted)
ed6f1000-ed76f000 r-xp 00000000 08:03 673780                             /usr/lib32/nvidia-364/libGLdispatch.so.0
ed76f000-ed777000 rw-p 0007d000 08:03 673780                             /usr/lib32/nvidia-364/libGLdispatch.so.0
ed777000-ed787000 rw-p 00000000 00:00 0 
ed789000-ed7f5000 r-xp 00000000 08:03 673770                             /usr/lib32/nvidia-364/libGL.so.1.0.0
ed7f5000-ed7f6000 rw-p 0006b000 08:03 673770                             /usr/lib32/nvidia-364/libGL.so.1.0.0
ed7f9000-f17fa000 rw-s 00000000 00:15 10                                 /dev/shm/pulse-shm-2067950280
f1800000-f1821000 rw-p 00000000 00:00 0 
f1821000-f1900000 ---p 00000000 00:00 0 
f1907000-f1908000 rw-s cfd66000 00:06 587                                /dev/nvidia0
f1909000-f1949000 r-xs 00000000 08:15 24644578                           /home/rake/.glvndcw8zip (deleted)
f1949000-f1958000 r-xp 00000000 08:03 672566                             /usr/lib32/nvidia-364/libGLX.so.0
f1958000-f1959000 rw-p 0000f000 08:03 672566                             /usr/lib32/nvidia-364/libGLX.so.0
f1959000-f1969000 rw-p 00000000 00:00 0 
f196b000-f196c000 rw-s 18cc2a000 00:06 586                               /dev/nvidiactl
f1971000-f1975000 r-xp 00000000 08:03 672554                             /usr/lib32/nvidia-364/tls/libnvidia-tls.so.364.12
f1975000-f1976000 rw-p 00003000 08:03 672554                             /usr/lib32/nvidia-364/tls/libnvidia-tls.so.364.12
f1979000-f1989000 rw-s 00000000 08:15 24644414                           /home/rake/.glvndzdA9kW (deleted)
f1989000-f1999000 r-xs 00000000 08:15 24644414                           /home/rake/.glvndzdA9kW (deleted)
f19a0000-f19a1000 ---p 00000000 00:00 0 
f19a1000-f21a1000 rw-p 00000000 00:00 0 
f21a1000-f61a2000 rw-s 00000000 00:15 82                                 /dev/shm/pulse-shm-3083973857
f61a9000-f61b0000 r--s 00000000 08:03 526092                             /usr/lib/i386-linux-gnu/gconv/gconv-modules.cache
f61b1000-f61f1000 r-xp 00000000 08:04 2495512                            /mnt/store/Games/app_41060/depot_41061/Bin/libGameMP.so
f61f1000-f61f2000 r--p 0003f000 08:04 2495512                            /mnt/store/Games/app_41060/depot_41061/Bin/libGameMP.so
f61f2000-f61f4000 rw-p 00040000 08:04 2495512                            /mnt/store/Games/app_41060/depot_41061/Bin/libGameMP.so
f61f4000-f61f5000 rw-p 00000000 00:00 0 
f61f9000-f6525000 r-xp 00000000 08:04 2495511                            /mnt/store/Games/app_41060/depot_41061/Bin/libEntitiesMP.so
f6525000-f6526000 ---p 0032c000 08:04 2495511                            /mnt/store/Games/app_41060/depot_41061/Bin/libEntitiesMP.so
f6526000-f6534000 r--p 0032c000 08:04 2495511                            /mnt/store/Games/app_41060/depot_41061/Bin/libEntitiesMP.so
f6534000-f6548000 rw-p 0033a000 08:04 2495511                            /mnt/store/Games/app_41060/depot_41061/Bin/libEntitiesMP.so
f6548000-f6573000 rw-p 00000000 00:00 0 
f6579000-f6779000 r--p 00000000 08:03 526881                             /usr/lib/locale/locale-archive
f6779000-f67a3000 r-xp 00000000 08:03 554640                             /usr/lib/i386-linux-gnu/libvorbis.so.0.4.8
f67a3000-f67a4000 r--p 00029000 08:03 554640                             /usr/lib/i386-linux-gnu/libvorbis.so.0.4.8
f67a4000-f67a5000 rw-p 0002a000 08:03 554640                             /usr/lib/i386-linux-gnu/libvorbis.so.0.4.8
f67a9000-f67b0000 r-xp 00000000 08:03 554499                             /usr/lib/i386-linux-gnu/libogg.so.0.8.2
f67b0000-f67b1000 r--p 00006000 08:03 554499                             /usr/lib/i386-linux-gnu/libogg.so.0.8.2
f67b1000-f67b2000 rw-p 00007000 08:03 554499                             /usr/lib/i386-linux-gnu/libogg.so.0.8.2
f67b9000-f67cd000 r-xp 00000000 08:03 1074456                            /lib/i386-linux-gnu/libgpg-error.so.0.17.0
f67cd000-f67ce000 r--p 00013000 08:03 1074456                            /lib/i386-linux-gnu/libgpg-error.so.0.17.0
f67ce000-f67cf000 rw-p 00014000 08:03 1074456                            /lib/i386-linux-gnu/libgpg-error.so.0.17.0
f67d1000-f6844000 r-xp 00000000 08:03 1056608                            /lib/i386-linux-gnu/libpcre.so.3.13.2
f6844000-f6845000 r--p 00072000 08:03 1056608                            /lib/i386-linux-gnu/libpcre.so.3.13.2
f6845000-f6846000 rw-p 00073000 08:03 1056608                            /lib/i386-linux-gnu/libpcre.so.3.13.2
f6849000-f685d000 r-xp 00000000 08:03 1057395                            /lib/i386-linux-gnu/libresolv-2.23.so
f685d000-f685e000 ---p 00014000 08:03 1057395                            /lib/i386-linux-gnu/libresolv-2.23.so
f685e000-f685f000 r--p 00014000 08:03 1057395                            /lib/i386-linux-gnu/libresolv-2.23.so
f685f000-f6860000 rw-p 00015000 08:03 1057395                            /lib/i386-linux-gnu/libresolv-2.23.so
f6860000-f6862000 rw-p 00000000 00:00 0 
f6869000-f68e3000 r-xp 00000000 08:03 554642                             /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.11
f68e3000-f68f4000 r--p 00079000 08:03 554642                             /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.11
f68f4000-f68f5000 rw-p 0008a000 08:03 554642                             /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.11
f68f9000-f6957000 r-xp 00000000 08:03 554638                             /usr/lib/i386-linux-gnu/libFLAC.so.8.3.0
f6957000-f6958000 r--p 0005d000 08:03 554638                             /usr/lib/i386-linux-gnu/libFLAC.so.8.3.0
f6958000-f6959000 rw-p 0005e000 08:03 554638                             /usr/lib/i386-linux-gnu/libFLAC.so.8.3.0
f6959000-f6970000 r-xp 00000000 08:03 1056848                            /lib/i386-linux-gnu/libnsl-2.23.so
f6970000-f6971000 r--p 00016000 08:03 1056848                            /lib/i386-linux-gnu/libnsl-2.23.so
f6971000-f6972000 rw-p 00017000 08:03 1056848                            /lib/i386-linux-gnu/libnsl-2.23.so
f6972000-f6974000 rw-p 00000000 00:00 0 
f6979000-f6a24000 r-xp 00000000 08:03 1074458                            /lib/i386-linux-gnu/libgcrypt.so.20.0.5
f6a24000-f6a25000 r--p 000aa000 08:03 1074458                            /lib/i386-linux-gnu/libgcrypt.so.20.0.5
f6a25000-f6a28000 rw-p 000ab000 08:03 1074458                            /lib/i386-linux-gnu/libgcrypt.so.20.0.5
f6a29000-f6a4d000 r-xp 00000000 08:03 1074452                            /lib/i386-linux-gnu/liblzma.so.5.0.0
f6a4d000-f6a4e000 r--p 00023000 08:03 1074452                            /lib/i386-linux-gnu/liblzma.so.5.0.0
f6a4e000-f6a4f000 rw-p 00024000 08:03 1074452                            /lib/i386-linux-gnu/liblzma.so.5.0.0
f6a51000-f6a73000 r-xp 00000000 08:03 1054885                            /lib/i386-linux-gnu/libselinux.so.1
f6a73000-f6a74000 ---p 00022000 08:03 1054885                            /lib/i386-linux-gnu/libselinux.so.1
f6a74000-f6a75000 r--p 00022000 08:03 1054885                            /lib/i386-linux-gnu/libselinux.so.1
f6a75000-f6a76000 rw-p 00023000 08:03 1054885                            /lib/i386-linux-gnu/libselinux.so.1
f6a76000-f6a77000 rw-p 00000000 00:00 0 
f6a79000-f6a7e000 r-xp 00000000 08:03 541215                             /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
f6a7e000-f6a7f000 r--p 00004000 08:03 541215                             /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
f6a7f000-f6a80000 rw-p 00005000 08:03 541215                             /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
f6a81000-f6a83000 r-xp 00000000 08:03 541213                             /usr/lib/i386-linux-gnu/libXau.so.6.0.0
f6a83000-f6a84000 r--p 00001000 08:03 541213                             /usr/lib/i386-linux-gnu/libXau.so.6.0.0
f6a84000-f6a85000 rw-p 00002000 08:03 541213                             /usr/lib/i386-linux-gnu/libXau.so.6.0.0
f6a89000-f6a8e000 r-xp 00000000 08:03 554378                             /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1
f6a8e000-f6a8f000 r--p 00004000 08:03 554378                             /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1
f6a8f000-f6a90000 rw-p 00005000 08:03 554378                             /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1
f6a91000-f6b03000 r-xp 00000000 08:03 554644                             /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
f6b03000-f6b04000 ---p 00072000 08:03 554644                             /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
f6b04000-f6b05000 r--p 00072000 08:03 554644                             /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
f6b05000-f6b06000 rw-p 00073000 08:03 554644                             /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
f6b06000-f6b0a000 rw-p 00000000 00:00 0 
f6b11000-f6b19000 r-xp 00000000 08:03 1074494                            /lib/i386-linux-gnu/libwrap.so.0.7.6
f6b19000-f6b1a000 r--p 00007000 08:03 1074494                            /lib/i386-linux-gnu/libwrap.so.0.7.6
f6b1a000-f6b1b000 rw-p 00008000 08:03 1074494                            /lib/i386-linux-gnu/libwrap.so.0.7.6
f6b21000-f6bac000 r-xp 00000000 08:03 1053380                            /lib/i386-linux-gnu/libsystemd.so.0.14.0
f6bac000-f6bae000 r--p 0008a000 08:03 1053380                            /lib/i386-linux-gnu/libsystemd.so.0.14.0
f6bae000-f6baf000 rw-p 0008c000 08:03 1053380                            /lib/i386-linux-gnu/libsystemd.so.0.14.0
f6bb1000-f6bca000 r-xp 00000000 08:03 1056884                            /lib/i386-linux-gnu/libz.so.1.2.8
f6bca000-f6bcb000 r--p 00018000 08:03 1056884                            /lib/i386-linux-gnu/libz.so.1.2.8
f6bcb000-f6bcc000 rw-p 00019000 08:03 1056884                            /lib/i386-linux-gnu/libz.so.1.2.8
f6bd1000-f6bf1000 r-xp 00000000 08:03 1056890                            /lib/i386-linux-gnu/libtinfo.so.5.9
f6bf1000-f6bf3000 r--p 0001f000 08:03 1056890                            /lib/i386-linux-gnu/libtinfo.so.5.9
f6bf3000-f6bf4000 rw-p 00021000 08:03 1056890                            /lib/i386-linux-gnu/libtinfo.so.5.9
f6bf9000-f6c2b000 r-xp 00000000 08:03 1049928                            /lib/i386-linux-gnu/libncursesw.so.5.9
f6c2b000-f6c2c000 ---p 00032000 08:03 1049928                            /lib/i386-linux-gnu/libncursesw.so.5.9
f6c2c000-f6c2d000 r--p 00032000 08:03 1049928                            /lib/i386-linux-gnu/libncursesw.so.5.9
f6c2d000-f6c2e000 rw-p 00033000 08:03 1049928                            /lib/i386-linux-gnu/libncursesw.so.5.9
f6c31000-f6d1d000 r-xp 00000000 08:03 1049897                            /lib/i386-linux-gnu/libslang.so.2.3.0
f6d1d000-f6d20000 r--p 000eb000 08:03 1049897                            /lib/i386-linux-gnu/libslang.so.2.3.0
f6d20000-f6d2f000 rw-p 000ee000 08:03 1049897                            /lib/i386-linux-gnu/libslang.so.2.3.0
f6d2f000-f6d5d000 rw-p 00000000 00:00 0 
f6d61000-f6d85000 r-xp 00000000 08:03 541217                             /usr/lib/i386-linux-gnu/libxcb.so.1.1.0
f6d85000-f6d86000 r--p 00023000 08:03 541217                             /usr/lib/i386-linux-gnu/libxcb.so.1.1.0
f6d86000-f6d87000 rw-p 00024000 08:03 541217                             /usr/lib/i386-linux-gnu/libxcb.so.1.1.0
f6d89000-f6de0000 r-xp 00000000 08:03 1053405                            /lib/i386-linux-gnu/libdbus-1.so.3.14.6
f6de0000-f6de1000 ---p 00057000 08:03 1053405                            /lib/i386-linux-gnu/libdbus-1.so.3.14.6
f6de1000-f6de2000 r--p 00057000 08:03 1053405                            /lib/i386-linux-gnu/libdbus-1.so.3.14.6
f6de2000-f6de3000 rw-p 00058000 08:03 1053405                            /lib/i386-linux-gnu/libdbus-1.so.3.14.6
f6de9000-f6df3000 r-xp 00000000 08:03 1074463                            /lib/i386-linux-gnu/libjson-c.so.2.0.0
f6df3000-f6df4000 r--p 00009000 08:03 1074463                            /lib/i386-linux-gnu/libjson-c.so.2.0.0
f6df4000-f6df5000 rw-p 0000a000 08:03 1074463                            /lib/i386-linux-gnu/libjson-c.so.2.0.0
f6df9000-f6e7f000 r-xp 00000000 08:03 800253                             /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-8.0.so
f6e7f000-f6e80000 r--p 00085000 08:03 800253                             /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-8.0.so
f6e80000-f6e81000 rw-p 00086000 08:03 800253                             /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-8.0.so
f6e81000-f6e88000 r-xp 00000000 08:03 1059431                            /lib/i386-linux-gnu/librt-2.23.so
f6e88000-f6e89000 r--p 00006000 08:03 1059431                            /lib/i386-linux-gnu/librt-2.23.so
f6e89000-f6e8a000 rw-p 00007000 08:03 1059431                            /lib/i386-linux-gnu/librt-2.23.so
f6e91000-f6f59000 r-xp 00000000 08:03 526342                             /usr/lib/i386-linux-gnu/libcaca.so.0.99.19
f6f59000-f6f5a000 r--p 000c7000 08:03 526342                             /usr/lib/i386-linux-gnu/libcaca.so.0.99.19
f6f5a000-f6f5b000 rw-p 000c8000 08:03 526342                             /usr/lib/i386-linux-gnu/libcaca.so.0.99.19
f6f61000-f6f74000 r-xp 00000000 08:03 541221                             /usr/lib/i386-linux-gnu/libXext.so.6.4.0
f6f74000-f6f75000 r--p 00012000 08:03 541221                             /usr/lib/i386-linux-gnu/libXext.so.6.4.0
f6f75000-f6f76000 rw-p 00013000 08:03 541221                             /usr/lib/i386-linux-gnu/libXext.so.6.4.0
f6f79000-f70bf000 r-xp 00000000 08:03 541219                             /usr/lib/i386-linux-gnu/libX11.so.6.3.0
f70bf000-f70c0000 ---p 00146000 08:03 541219                             /usr/lib/i386-linux-gnu/libX11.so.6.3.0
f70c0000-f70c1000 r--p 00146000 08:03 541219                             /usr/lib/i386-linux-gnu/libX11.so.6.3.0
f70c1000-f70c3000 rw-p 00147000 08:03 541219                             /usr/lib/i386-linux-gnu/libX11.so.6.3.0
f70c3000-f70c4000 rw-p 00000000 00:00 0 
f70c9000-f7120000 r-xp 00000000 08:03 554647                             /usr/lib/i386-linux-gnu/libpulse.so.0.19.0
f7120000-f7121000 ---p 00057000 08:03 554647                             /usr/lib/i386-linux-gnu/libpulse.so.0.19.0
f7121000-f7122000 r--p 00057000 08:03 554647                             /usr/lib/i386-linux-gnu/libpulse.so.0.19.0
f7122000-f7123000 rw-p 00058000 08:03 554647                             /usr/lib/i386-linux-gnu/libpulse.so.0.19.0
f7129000-f712d000 r-xp 00000000 08:03 554646                             /usr/lib/i386-linux-gnu/libpulse-simple.so.0.1.0
f712d000-f712e000 r--p 00003000 08:03 554646                             /usr/lib/i386-linux-gnu/libpulse-simple.so.0.1.0
f712e000-f712f000 rw-p 00004000 08:03 554646                             /usr/lib/i386-linux-gnu/libpulse-simple.so.0.1.0
f7131000-f7241000 r-xp 00000000 08:03 554521                             /usr/lib/i386-linux-gnu/libasound.so.2.0.0
f7241000-f7242000 ---p 00110000 08:03 554521                             /usr/lib/i386-linux-gnu/libasound.so.2.0.0
f7242000-f7246000 r--p 00110000 08:03 554521                             /usr/lib/i386-linux-gnu/libasound.so.2.0.0
f7246000-f7247000 rw-p 00114000 08:03 554521                             /usr/lib/i386-linux-gnu/libasound.so.2.0.0
f7249000-f73f6000 r-xp 00000000 08:03 1059436                            /lib/i386-linux-gnu/libc-2.23.so
f73f6000-f73f7000 ---p 001ad000 08:03 1059436                            /lib/i386-linux-gnu/libc-2.23.so
f73f7000-f73f9000 r--p 001ad000 08:03 1059436                            /lib/i386-linux-gnu/libc-2.23.so
f73f9000-f73fa000 rw-p 001af000 08:03 1059436                            /lib/i386-linux-gnu/libc-2.23.so
f73fa000-f73fd000 rw-p 00000000 00:00 0 
f7401000-f741d000 r-xp 00000000 08:03 1054005                            /lib/i386-linux-gnu/libgcc_s.so.1
f741d000-f741e000 rw-p 0001b000 08:03 1054005                            /lib/i386-linux-gnu/libgcc_s.so.1
f7421000-f7474000 r-xp 00000000 08:03 1057512                            /lib/i386-linux-gnu/libm-2.23.so
f7474000-f7475000 r--p 00052000 08:03 1057512                            /lib/i386-linux-gnu/libm-2.23.so
f7475000-f7476000 rw-p 00053000 08:03 1057512                            /lib/i386-linux-gnu/libm-2.23.so
f7479000-f75e6000 r-xp 00000000 08:03 524499                             /usr/lib/i386-linux-gnu/libstdc++.so.6.0.21
f75e6000-f75e7000 ---p 0016d000 08:03 524499                             /usr/lib/i386-linux-gnu/libstdc++.so.6.0.21
f75e7000-f75ec000 r--p 0016d000 08:03 524499                             /usr/lib/i386-linux-gnu/libstdc++.so.6.0.21
f75ec000-f75ed000 rw-p 00172000 08:03 524499                             /usr/lib/i386-linux-gnu/libstdc++.so.6.0.21
f75ed000-f75f0000 rw-p 00000000 00:00 0 
f75f1000-f7666000 r-xp 00000000 08:03 562215                             /usr/lib/i386-linux-gnu/libSDL-1.2.so.0.11.4
f7666000-f7667000 ---p 00075000 08:03 562215                             /usr/lib/i386-linux-gnu/libSDL-1.2.so.0.11.4
f7667000-f7668000 r--p 00075000 08:03 562215                             /usr/lib/i386-linux-gnu/libSDL-1.2.so.0.11.4
f7668000-f7669000 rw-p 00076000 08:03 562215                             /usr/lib/i386-linux-gnu/libSDL-1.2.so.0.11.4
f7669000-f7693000 rw-p 00000000 00:00 0 
f7699000-f76b2000 r-xp 00000000 08:03 1059435                            /lib/i386-linux-gnu/libpthread-2.23.so
f76b2000-f76b3000 r--p 00018000 08:03 1059435                            /lib/i386-linux-gnu/libpthread-2.23.so
f76b3000-f76b4000 rw-p 00019000 08:03 1059435                            /lib/i386-linux-gnu/libpthread-2.23.so
f76b4000-f76b6000 rw-p 00000000 00:00 0 
f76b9000-f76bc000 r-xp 00000000 08:03 1059437                            /lib/i386-linux-gnu/libdl-2.23.so
f76bc000-f76bd000 r--p 00002000 08:03 1059437                            /lib/i386-linux-gnu/libdl-2.23.so
f76bd000-f76be000 rw-p 00003000 08:03 1059437                            /lib/i386-linux-gnu/libdl-2.23.so
f76be000-f76c1000 rw-p 00000000 00:00 0 
f76c1000-f76c2000 rw-s fd060000 00:06 587                                /dev/nvidia0
f76c9000-f76ce000 r-xp 00000000 08:03 541231                             /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
f76ce000-f76cf000 r--p 00004000 08:03 541231                             /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
f76cf000-f76d0000 rw-p 00005000 08:03 541231                             /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
f76d1000-f76db000 r-xp 00000000 08:03 554507                             /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
f76db000-f76dc000 r--p 00009000 08:03 554507                             /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
f76dc000-f76dd000 rw-p 0000a000 08:03 554507                             /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
f76e1000-f76ea000 r-xp 00000000 08:03 554509                             /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
f76ea000-f76eb000 r--p 00008000 08:03 554509                             /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
f76eb000-f76ec000 rw-p 00009000 08:03 554509                             /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
f76ed000-f76ee000 r--p 002d4000 08:03 526881                             /usr/lib/locale/locale-archive
f76f1000-f76f9000 rw-p 00000000 00:00 0 
f76f9000-f771b000 r-xp 00000000 08:03 1059432                            /lib/i386-linux-gnu/ld-2.23.so
f771b000-f771c000 rw-p 00000000 00:00 0 
f771c000-f771d000 r--p 00022000 08:03 1059432                            /lib/i386-linux-gnu/ld-2.23.so
f771d000-f771e000 rw-p 00023000 08:03 1059432                            /lib/i386-linux-gnu/ld-2.23.so
f771e000-f7722000 rw-p 00000000 00:00 0 
f7722000-f7724000 r--p 00000000 00:00 0                                  [vvar]
f7724000-f7725000 r-xp 00000000 00:00 0                                  [vdso]
ffd96000-ffdb7000 rw-p 00000000 00:00 0                                  [stack] 
icculus commented 8 years ago

Regarding that valgrind log, run the game with a '/' in the path for now.

Like: "./ssam" instead of "ssam"

This is stupid, I'll fix it.

EDIT: to be clear: this one was my bug. This is a very ancient version of some code I wrote for PhysicsFS.

ericwomer commented 8 years ago

Could you also give a debug build of ssam a suffix like -debug? aka ssam-debug

icculus commented 8 years ago

to be clear: this one was my bug. This is a very ancient version of some code I wrote for PhysicsFS.

This should be fixed by https://github.com/rcgordon/Serious-Engine/commit/b42025bc9f1fe51edb53659af015ea295907522b

icculus commented 8 years ago

Could you also give a debug build of ssam a suffix like -debug? aka ssam-debug

I sort of think we should get rid of the distinction of having a "Debug" directory for binaries, because it tends to lead to confusion like this.

ptitSeb commented 8 years ago

I agree with that. That debug folder is not usefull, it's not like if will package some Debug version of the lib by mistake.

ericwomer commented 8 years ago

They append the D with debug built libraries anyway. so its libEntitiesMPD.so for debug and libEntitiesMP.so for release.

ericwomer commented 8 years ago

Is that a croteam caveat or something added by icculus?

icculus commented 8 years ago

Is that a croteam caveat or something added by icculus?

The "Debug" directory and appending a "D" to the binaries were both from Croteam.

ericwomer commented 8 years ago

Here is my valgrind log, no vgcore either it was killed apparently, https://dl.dropboxusercontent.com/u/71062164/SeriousEngine/valgrind-log.tar.xz

ptitSeb commented 8 years ago

It's this assert https://github.com/rcgordon/Serious-Engine/blob/master/Sources/Engine/Math/Float.cpp#L157 that fail. Strange.

ptitSeb commented 8 years ago

Is all this control FPU precision really usefull anyway? It's use to what, speed-up float?

icculus commented 8 years ago

Is all this control FPU precision really usefull anyway? It's use to what, speed-up float?

DirectX nerfs FPU precision by default in the name of performance, and it's likely there are places the game relies on whatever state they forced it to (either back from DirectX's lowered precision or to it). I noticed cracks in the skybox on Mac OS X, and I wonder if it's because the Mac uses SSE for all floating point, scalar or vector, and never the FPU, and thus wasn't affected by the control word.

The FPU control word is tricky voodoo in any case, so I don't mind if someone cleans that stuff out.

icculus commented 8 years ago

yeah, at a minimum, the asserts for checking the control word value shouldn't be used on ARM, and we'll roll the dice that math comes out okay. It probably will for the most part anyhow.

icculus commented 8 years ago

Just going to keep using this pull request for conversation until we move to another one. :)

I just pushed a massive patch that gets the game (mostly) 64-bit clean, since @ptitSeb did us the service of removing the need for the assembly code. :) It's not perfect yet, but it does run the demos at startup without exploding, so it's pretty close.

ericwomer commented 8 years ago

Where else is everyone else going to meet up at? could start a freenode channel. #serioussam or #seriousengine ?

ericwomer commented 8 years ago

Would any of us registering #seriousengine and or #seriousengine-dev need an ok from croteam?

ericwomer commented 8 years ago

or better yet #seriousengine-admin ?

ptitSeb commented 8 years ago

a channel somewhere on freenode would be nice yes.

ericwomer commented 8 years ago

what I mean is legality wise, would freenode or croteam have an issue?

ptitSeb commented 8 years ago

You should ask the CroTeam representative maybe.

nirbheek commented 8 years ago

Freenode rules say that unofficial channels have to begin with a double #, so you can start ##seriousengine and you'll have no issues from them.

icculus commented 8 years ago

We can do whatever; I don't feel like it needs to be official or anything. Call it #poniesAndRainbows, it doesn't matter. :)

ericwomer commented 8 years ago

Slaww created a channel #seriousengine

ericwomer commented 8 years ago

https://github.com/Croteam-official/Serious-Engine/issues/38