c1-launcher
c1-launcher copied to clipboard
Lots of random crashes
I'm using the latest GOG version of Crysis and I also have put both the Bin32 and Bin64 EXE files from c1-launcher-v3-build into the corresponding folders. The game is running very fine for a while but after ~ 40 minutes it will just randomly crash to Desktop without any error message.
It's totally random when it happens. Sometimes in the middle of a fight or when driving a vehicle, other times when the game was about to autosave and at least one time while a cutscene was playing.
My PC is easily able to run this on the highest settings with a super stable frame rate so it can't be that this 16 year old game is pushing things to the limit.
OS: Windows 10 Pro CPU: Intel(R) Core(TM) i9-12900KF @ 3.20 GHz GPU: Nvidia GeForce RTX 3080 10 GB RAM: Kingston FURY Beast 64GB DDR4-3600
Is there anything I can do to stop the game from doing this all the time?
Let's check crash logs to figure out what's going on. Crash log is dumped at the end of Game.log
, which is stored either in Crysis main directory or in Documents/My Games/Crysis
. The latter is used only if the main directory is not writable. Logs from previous runs are stored in LogBackups
directory in the same location. Try to collect a few crash logs and copy-paste them here.
Here is the crash log part inside Game.log Game.log
And here's the part from the last LogBackup Game Build(6156) Date(10 Mar 2023) Time(00 15 57).log
I hope we can find the problem.
No crash in the first log. The game started and exited normally. The second log contains a crash. It crashed in CrySoundSystem inside FMOD memory allocation callback. That's interesting. I've already seen similar crashes. The reason is still unknown. More investigation is needed. For now, i would try to disable WinVista compatibility mode for Bin64/Crysis.exe and also try 32-bit version.
"No crash in the first log." What about those "Error: CallMethod" lines in the first one? Are those in some way important?
"For now, i would try to disable WinVista compatibility mode for Bin64/Crysis.exe and also try 32-bit version." I can't change the compatibility mode for Bin64/Crysis.exe when using the EXE files from c1-launcher-v3-build. Changing it is only available for Bin64/Crysis64.exe. For Crysis.exe that dropdown menu is grayed out and locked to WinVista compatibility for some reason. I'll test the 32-bit version later. The "lowest display refresh rate" fix is included in that 32-bit launcher EXE too right?
What about those "Error: CallMethod" lines in the first one? Are those in some way important?
Those are just harmless Flash errors. The game actually contains quite many hidden errors.
For Crysis.exe that dropdown menu is grayed out and locked to WinVista compatibility for some reason.
GOG installer somehow forces WinVista compatibility mode for Bin64/Crysis.exe globally. I think you can still disable it by clicking on "Change settings for all users".
Side note: original and cracked 64-bit EXEs don't work at all without WinVista compatibility mode. It's because they are infected with SecuROM DRM.
The "lowest display refresh rate" fix is included in that 32-bit launcher EXE too right?
Yes, it is.
GOG installer somehow forces WinVista compatibility mode for Bin64/Crysis.exe globally. I think you can still disable it by clicking on "Change settings for all users".
I was talking about the c1-launcher-v3-build Bin64/Crysis.exe where I can't change the compatibility mode for some reason. The default GOG installation Bin64/Crysis.exe file allows me to change it.
GOG Bin64/Crysis.exe
c1-Launcher Bin64/Crysis.exe
That's strange. Is it the same if you rename the EXE?
That's strange. Is it the same if you rename the EXE?
No. Renaming it allows me to change it. Only when it's named Crysis.exe it's activated but grayed out as seen in the screenshot above.
Looks like some global thing related to a specific system-wide path. I suspect GOG installer adds this to make sure the 64-bit version works, but strangely it doesn't affect its own EXE.
By the way, as stated in the readme, you can rename c1-launcher EXEs to whatever you want and they will work fine. The only problem might be that modern graphics card drivers contain game-specific fixes, so if you rename Crysis.exe to something else, the driver might fail to detect the game as Crysis and skip applying certain fixes, which may cause some additional weird issues.
Figured I'd chime in: even after disabling Vista compatibility mode I've also encountered random crashes. In some cases they take a few minutes to occur, in other cases I can play for 10+ minutes. I've tried DX9 and DX10 along with the 32 bit and 64 bit exes with no difference in behavior. Here's my latest stack trace (too bad Crytek didn't ship the game with debug symbols 😢):
Access violation exception (0xC0000005) at 0x000000003657A364
Write to 0x000000000506FCF8 failed
Physical memory = 32539.0 MiB (24751.4 MiB available, 23.9% used)
Virtual memory = 134217727.9 MiB (134208537.4 MiB available, 0.0% used)
Registers:
RIP: 000000003657A364 RSP: 000000000014E220 RBP: 000000000014E310 EFLAGS: 00010206
RAX: 0000000000000014 RBX: 00000000000001E0 RCX: 000000000506FCF0 RDX: 0000000105072288
RSI: 0000000036500000 RDI: 000000000000001D R8: 0000000036500000 R9: 000000000000001D
R10: 0000000000000001 R11: 000000010506FD08 R12: 000000000014E500 R13: 0000000000000000
R14: 0000000000000000 R15: 0000000000000033
Callstack:
000000003657A364: ?? () in CrySystem.dll
0000000036579E1E: ?? () in CrySystem.dll
0000000036579788: ?? () in CrySystem.dll
00000000351BCD85: ?? () in CryPhysics.dll
0000000035082B68: ?? () in CryPhysics.dll
00000000300D5173: ?? () in Cry3DEngine.dll
00000000300BB891: ?? () in Cry3DEngine.dll
00000000300A9360: ?? () in Cry3DEngine.dll
000000003010E9E6: ?? () in Cry3DEngine.dll
000000003010B0AD: ?? () in Cry3DEngine.dll
000000003011106F: ?? () in Cry3DEngine.dll
000000003654FBD5: ?? () in CrySystem.dll
00000000308247E9: ?? () in CryAction.dll
00000000390BB671: ?? () in CryGame.dll
00000000390019DD: ?? () in CryGame.dll
000000003900534D: ?? () in CryGame.dll
0000000140001365: ?? () in Crysis.exe
000000014000717C: ?? () in Crysis.exe
00007FFA5898269D: ?? () in KERNEL32.DLL
00007FFA5A2EA9F8: ?? () in ntdll.dll
A very odd bug (or collection of bugs?).
I'm on Windows 11 with a 13700k and a 4090.
Just hit another one a few seconds after loading my latest save:
Access violation exception (0xC0000005) at 0x0000000038001434
Write to 0x00000000048AAB7C failed
Physical memory = 32539.0 MiB (24445.9 MiB available, 24.9% used)
Virtual memory = 134217727.9 MiB (134209313.3 MiB available, 0.0% used)
Registers:
RIP: 0000000038001434 RSP: 000000000014D620 RBP: 00000000F968B3BC EFLAGS: 00010206
RAX: 0000000000000014 RBX: 00000000000000C0 RCX: 00000000048AAB74 RDX: 00000001048ABA8C
RSI: 0000000038000000 RDI: 000000000000000B R8: 0000000038000000 R9: 000000000000000B
R10: 0000000000000001 R11: 00000001048AAB8C R12: 0000000000000000 R13: 0000000000000000
R14: 0000000000000008 R15: 0000000059DA3EC4
Callstack:
0000000038001434: ?? () in CryRenderD3D10.dll
00000000380018CF: ?? () in CryRenderD3D10.dll
00000000380557B9: ?? () in CryRenderD3D10.dll
000000003805652B: ?? () in CryRenderD3D10.dll
0000000038057D1C: ?? () in CryRenderD3D10.dll
000000003805877B: ?? () in CryRenderD3D10.dll
000000003805AF2F: ?? () in CryRenderD3D10.dll
000000003805BBD3: ?? () in CryRenderD3D10.dll
00000000380262A1: ?? () in CryRenderD3D10.dll
0000000038029530: ?? () in CryRenderD3D10.dll
0000000038029747: ?? () in CryRenderD3D10.dll
000000003802DEC9: ?? () in CryRenderD3D10.dll
00000000380A4BC6: ?? () in CryRenderD3D10.dll
00000000380A4F76: ?? () in CryRenderD3D10.dll
00000000380A6E83: ?? () in CryRenderD3D10.dll
00000000380AA79C: ?? () in CryRenderD3D10.dll
00000000380ADEFB: ?? () in CryRenderD3D10.dll
000000003010EF35: ?? () in Cry3DEngine.dll
000000003010B0AD: ?? () in Cry3DEngine.dll
000000003011106F: ?? () in Cry3DEngine.dll
000000003654FBD5: ?? () in CrySystem.dll
00000000308247E9: ?? () in CryAction.dll
00000000390BB671: ?? () in CryGame.dll
00000000390019DD: ?? () in CryGame.dll
000000003900534D: ?? () in CryGame.dll
0000000140001365: ?? () in Crysis.exe
000000014000717C: ?? () in Crysis.exe
00007FFA5898269D: ?? () in KERNEL32.DLL
00007FFA5A2EA9F8: ?? () in ntdll.dll
The backtrace looks different... If it helps, I'm using the version of the game from GOG.
Edit: one more for good measure 🙂
Access violation exception (0xC0000005) at 0x000000003550A7B8
Read from 0x0000000000000001 failed
Physical memory = 32539.0 MiB (24504.0 MiB available, 24.7% used)
Virtual memory = 134217727.9 MiB (134208598.9 MiB available, 0.0% used)
Registers:
RIP: 000000003550A7B8 RSP: 000000000014E9C0 RBP: 0000000000000009 EFLAGS: 00010202
RAX: 0000000000000009 RBX: 0000000000000001 RCX: 00000000000000A0 RDX: 0000000000000000
RSI: 00000000000000A0 RDI: 0000000035593A58 R8: 00000000000000A0 R9: 00000000000000A0
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000035500000 R13: 000000005EC3A9DC
R14: 0000000080EB01DC R15: 0000000000000000
Callstack:
000000003550A7B8: ?? () in CryScriptSystem.dll
000000003555B44E: ?? () in CryScriptSystem.dll
0000000035564ADE: ?? () in CryScriptSystem.dll
0000000035565374: ?? () in CryScriptSystem.dll
00000000355658D9: ?? () in CryScriptSystem.dll
0000000035564F56: ?? () in CryScriptSystem.dll
0000000035549DD3: ?? () in CryScriptSystem.dll
0000000035508033: ?? () in CryScriptSystem.dll
000000003550D14E: ?? () in CryScriptSystem.dll
00000000392994D0: ?? () in CryGame.dll
000000003929B2F2: ?? () in CryGame.dll
0000000030812B77: ?? () in CryAction.dll
0000000035075B00: ?? () in CryPhysics.dll
000000003653762A: ?? () in CrySystem.dll
000000003082543A: ?? () in CryAction.dll
00000000390BB616: ?? () in CryGame.dll
00000000390019DD: ?? () in CryGame.dll
000000003900534D: ?? () in CryGame.dll
0000000140001365: ?? () in Crysis.exe
000000014000717C: ?? () in Crysis.exe
00007FFA5898269D: ?? () in KERNEL32.DLL
00007FFA5A2EA9F8: ?? () in ntdll.dll
Yet again, seems to be crashing in different functions. Maybe a symptom of heap corruption or something?
The first one is a crash inside CryMemoryManager. Its CryMalloc
function to be precise. You can try to play via CryMP-Client, which currently uses standard malloc as global allocator instead due to various issues in CryMemoryManager.
The second one is a crash somewhere deep in Renderer::Shader_HWShaderActivate
. This might be related to some issue with graphics card or its drivers.
The third one is a crash somewhere inside Lua called from CScriptTable::PushRef
. Again, CryMP-Client might help as it comes with its own script system.
However, all these could simply be some nasty heap corruption as you mentioned. Crysis definitely contains such bugs. Just look at #7. Put better textures/objects and the engine falls apart like a house of cards.
Hello again! I'd hate to jink myself but I think I've resolved the crashes. I had FSAA cranked up all the way to 8x - turning it off seems to have resolved the crashes somehow.
Put better textures/objects and the engine falls apart like a house of cards.
This makes me wonder if the increased memory usage from 8x FSAA is related somehow (or does Crysis use MSAA?). I have a feeling there wasn't a lot of testing with 8x FSAA back in the day given how demanding this game was 🙂 . Anyways if anyone else is hitting this kind of issue I hope my post helps (and that I don't see anymore crashes 🤞 )
Nice and thanks for sharing it. Crysis uses only FSAA as far as i know and yes, it wasn't tested much back in the days probably.
@Berzerk2k2 Your running the "NVIDIA High Definition Audio" on top of Realtek audio driver. If your still having Fmod crashes. Do clean Nvidia driver install with out the High Definition Audio. I have had that problem before.
@ccomrade I was having cry.AI.sys crashes so I removed compatibility for Vista and that seem to work. Windows 11.
Crap, I'm having this issue, too. It crashes constantly, with Event Viewer usually tellingg me that CrySystem.dll is responsible, though sometimes I get CryScriptSystem.dll or fmodex64.dll. Playing 64 bit. I am using the Tactical Expansion mod as well as some manner of texture mod (forgot which one since I dropped it in a long time ago), but even with FSAA turned off, I can't get through a single level without crashing at least once, and oftentimes multiple more. I've even tried clearing the cache and that didn't really help. Is the problem because I'm using a mod? Can anyone figure out how to not crash with new textures? I did remove said texture pack, only leaving some stuff in, and I was able to finish a level without crashes, though I did crash once halfway through when replaying that level (Assault) to try and see if it could be 100% stable.
There's an integrated crash logger in c1-launcher. It dumps crash details into Game.log (Server.log, Editor.log). Info from Event Viewer is very limited and not very useful usually.
I've recently discovered that Crysis contains quite a lot of serious memory errors (heap buffer overflows and underflows, use after free, ...). It's not just memory leaks. Especially 64-bit version is problematic (some pointers get truncated when they go beyond 4GB). It's actually a small miracle that the game works at all. I'm working on it, but it's very time consuming. For now, please avoid using anything that increases memory usage, otherwise the game becomes very unstable. Or use 32-bit version because that one at least cannot go above 4GB, which is currently guaranteed to crash at some point.
Interesting. Let me try playing the 32 bit version, then.
I did try the 32 bit version and I played through the same level twice without any crashes, but the game runs noticeably worse when I did. I assume the memory limitations are why. I imagine the game engine was optimized just enough to work with all the graphical effects Crytek wanted and then didn't go any further. So any new textures or mods will make the engine unstable.
Alright, after fiddling around with some settings, including turning off any antialiasing within Nvidia Control Panel, I managed to get the 64 bit version stable enough that I'd only ever crash once per mission. Since the 64 bit version runs much better otherwise, I'll just play it this way and deal with the occasional crash (which happens even without the usual .dlls crashing if the mod gets too crazy, like with nukes and such). I do get a ton of jaggies with AA turned off, though, and while it's not terribly intrusive honestly, I'd still like to see this memory issue fixed somehow, so I can enable AA, have higher resolution mods, and also have it be stable.
One thing I wonder is if Crysis Warhead has the same memory issues. I did get some crashes playing Crysis Warhead with texture mods and anti aliasing, but usually the faulting modules were physics or script, and they did crash when something particularly wacky was happening so I'm assuming that's just the physics system bugging out, which sometimes happens. But playing through Warhead with texture mods and AA turned up to 8 didn't have constant, unending crashes even though GOG only has the 64 bit version.
I do know Crysis Warhead refined and optimized the engine better from Crysis 1, so I wonder if this was one of the reasons. Either that or the levels being slightly smaller helped.
EDIT: Also, did some further testing with 32 bit and yeah, the 32 bit version never seems to crash for me, even with the texture mods and AA turned up to 8. Given the AA does iron out the jaggies a lot, I may even just play Crysis in 32 bit and deal with the performance hit. It's surprisingly playable even when FPS drops to the 30's and 40's. But if you can somehow fix the memory issues and make 64 bit fully playable with texture mods, that would be great.
EDIT 2: Just played some Crysis Warhead out of curiosity. I beat one level without any crashes, then had a crash on the level immediately afterwards during a save. Event Viewer actually said it was Crysis64.exe that was the faulting module path and after I loaded back in, I kept playing that level (though haven't beaten it yet) without crashes even with constantly saving. I was also using texture mods with AA turned up to 8, but I've managed to play an entire level without crashes while I would've constantly crashed with the same setup with 64 bit Crysis 1. Just curious if Crysis Warhead 64 bit has the same issue since the GOG version only has 64 bit. Though given how it's only crashed more than one level, I can even tolerate that since I usually don't play more than one level a session anyways.