Open mirh opened 4 years ago
Just tested the following:
Messing with dead bodies is disabled everywhere. I'm not sure if there's a simple way to enable it without modifying game assets (Lua scripts).
Maybe @keybreak has some clue
That's great question actually, i think i've lost the version of that exe, desperately try to find it last months, however i know for a fact that it's possible to have full dead body physics in Crysis, because i've seen it around release time with my own eyes
Besides with any version interactions are still there (you can move body not by your own body, but through some proxy object like barrel for example or explosion will also trigger phisics)...
I am also pretty sure that it's locked through .exe, not only game assets
I haven't tested all of those, but you may have better luck (aim on v1.0 ones): https://www.gamecopyworld.com/games/pc_crysis.shtml
Great project @ccomrade i had no idea about it, thx for your work :+1:
I just tried the demo (build.. 1? files are supposedly dated 2007-10-22 and versioned 1.0.0.1) and I couldn't get this either.
This was hard one. However, it seems the stupid restriction is gone finally. Big thanks to @griseraner AKA ctaoistrach for the initial idea of fixing this thing in the SDK code. Can you guys test if everything works as expected? I really don't want to introduce some new bugs. The executables are available below if you don't want to compile the source code yourself. It's still experimental, so don't share the executables anywhere. All Crysis builds are supported.
That's brilliant, thank you!! :partying_face:
Tested on: Manjaro KDE (Linux) Wine 5.11 + DXVK Clean Crysis GOG v1.1.1.6156 -dx10 -devmode
That was quick test of 1st mission with some shootout near signal jammer (btw it's recommended to start new game, because Crysis save system may behave weird / buggy with any .exe changes / mods)
What works perfectly:
What doesn't work / partially work:
There is also something weird, very noticeable at night, when you shoot body there is pretty bright flash when hitting body ragdoll (at first i thought maybe it's just muzzle flash coming through, but no - shooting same surface produced no muzzle flash)
I'm pretty sure that points which doesn't work / partially work - have worked previously, but i'll make test of that little later and report back! On serious bugs / problems, nothing obvious i've seen yet like crashes or stuff like that, but more tests needed.
Nice, another Linux user. I'm on Debian with AMD card and Gallium Nine (native D3D9).
The ragdoll physics can be tweaked. There are many physics flags to use, but no documentation is available and CryPhysics has really awful API. Another problem is that the Mod SDK with almost complete CryGame source code actually doesn't fully match the original CryGame DLL. Crytek put even heavier restrictions into the CryGame DLL and removed them from the SDK code to hide them. There are still some things to patch for sure. For example, those dead grunts and the beginning of village map ignore all direct player impulses with original CryGame DLL, but with SDK mod everything works well. Some investigation is needed. Unfortunately, I don't have much time for Crysis these days.
About missing bloody decals. Maybe g_blood 1
can fix that? It's the "blood" checkbox in game settings.
Anyway, thanks for testing it.
Nice, another Linux user. I'm on Debian with AMD card and Gallium Nine (native D3D9).
Cheers! That's the way to go! :partying_face:
About missing bloody decals. Maybe g_blood 1 can fix that? It's the "blood" checkbox in game settings.
Nope, behaves same, i believe this can only be achieved with some assets mods, not through exe
I've double-checked the original game and yes, those were problems introduced with fix, in the original game:
However explosion of signal jammer doesn't affect body physics too, must be game asset bug (although this time radar on top of it felt right on nearby body and triggered it's ragdoll - that was fun :laughing: )
Some new findings which doesn't work / partially work with patch:
Also there are config options like those, which are good idea to use with this patch probably:
con_restricted=0
g_ragdollMinTime=604800
g_ragdollDistance=100000
Some investigation is needed. Unfortunately, I don't have much time for Crysis these days.
Oh come on! You must ask yourself serious question...Yes you may have life or even job, but...CAN IT RUN CRYSIS?! :rofl:
Anyway, thanks for testing it.
My pleasure, i was waiting for this for too long! :smiley:
P.S. Since i've discovered your work just recently, release v2.4 should (other than mentioned stuff) work exactly the same as original game .exe? You haven't seen any regressions bugs?
And is there still any ETA on Warhead or it's abandoned?
Yes, it's like original EXE. It only fixes technical issues and disables some really stupid restrictions, such as things available only in DX10 mode. This ragdoll fix is the first patch that affects gameplay somehow. I always try to do every patch as robust as possible and double-check everything to make sure it doesn't have some unwanted side effects. Even though Crysis is one big mess internally.
About Crysis Warhead. Well, there's one huge problem. Warhead has its CryAction and CryGame DLLs integrated directly in its EXE. That means you can't just replace the EXE with your own created from scratch. You have to load the original EXE in your EXE and use the CryAction and CryGame part from there. Using multiple EXEs within single process is highly discouraged. It even doesn't work by default. However, I've managed to implement custom loader for the original Warhead EXE. It works without problems, but 64-bit version only. The original 32-bit Warhead EXE is heavily contaminated by the SecuROM DRM. Some parts are even encrypted, so it doesn't work at all without running that broken SecuROM crap. It would be nice to have single EXE that can properly launch all versions of all existing Crysis games based on CryEngine 2, but it's still a dream for now.
By the way, I found another code preventing player from interacting with ragdolls. It's the last one probably, so all impulses are now correctly sent to CryPhysics. Those dead grunts started to work finally, but we still need to find out correct physics flags for ragdolls to fix at least some of the issues you discovered.
It would be nice to have single EXE that can properly launch all versions of all existing Crysis games based on CryEngine 2, but it's still a dream for now.
Yeah, not sure if it's doable since they're still pretty damn different (i judge mainly from a user standpoint, even by some technical limits, like in original Crysis you can't set too much of viewable objects with no LOD like trees on a scene [overrided by config], because it will lead to some weird white-screen glitch when you look on them on some levels and will lead to crash, however on Warhead it doesn't happen)
Btw i'll try to formulate that in separate issue later, maybe you'll get some idea from Warhead .exe code, that would be pretty cool...
By the way, I found another code preventing player from interacting with ragdolls. It's the last one probably, so all impulses are now correctly sent to CryPhysics. Those dead grunts started to work finally, but we still need to find out correct physics flags for ragdolls to fix at least some of the issues you discovered.
That's cool! If you can think of some way i can help by debug / testing - please let me know! :wink:
EXEs from Crysis and Crysis Wars contain only tiny game launcher and a lot of useless DRM garbage. Nothing else is there and all these EXEs are essentially the same. Crysis Warhead is different though. As i said above, its EXE contains CryAction and CryGame. That means Warhead has game logic in its EXE, unlike C1 and Wars that have everything important in separate DLLs. Some of these CryEngine DLLs are quite different in each Crysis game.
Even GOG's Warhead has securom cruft?
EDIT: I was told the new crysis remaster is basically just an updated version of the 2011 console port
GOG version of Crysis Warhead doesn't contain 32-bit files at all. In 64-bit version of Warhead, there's Bin64/Crysis64.exe
, which is the 64-bit game EXE without any DRM (because SecuROM barely supports 64-bit code), and also Bin64/Crysis.exe
, which is 32-bit SecuROM DRM launcher that runs the 64-bit game EXE. However, Warhead can be launched by using directly the 64-bit game EXE, so that 32-bit SecuROM launcher is completely useless. This is probably why the first version of Warhead provides only 32-bit files, because in 64-bit version you can easily avoid that SecuROM crap. In GOG version of Warhead, the useless Bin64/Crysis.exe
is even just a copy of Bin64/Crysis64.exe
, so both files are the same 64-bit game EXEs without any DRM.
By the way, even though GOG version of Crysis games is by far the best one, it's not true that it's completely DRM-free. For example, GOG version of Crysis contains EXEs that are basically just cracked original ones with more or less neutralized SecuROM garbage. That means the DRM is still there and does evil things with your system. Especially in 64-bit version, where it causes some of those weird startup crashes and compatibility issues. Unfortunately, if some file gets contaminated by things like SecuROM, it's extremely hard to make the file completely clean again. These DRMs were specially designed to make their removal as hard as possible. Since the c1-launcher EXEs are created from scratch instead of just editing the original files, it contains no DRM trash at all, unlike most (all?) cracks and things. Thanks to Crytek for separating CryEngine and Crysis itself (CryGame) into individual DLLs. It makes possible to just throw away the contaminated original EXEs and create new ones without having to recreate the entire game and its engine.
About Crysis Remastered. Yes, it seems they really just took the old and simplified Crysis for consoles, backported few features from the latest CryEngine, and updated some game assets. It's probably just a quick cash-grab. I would still like to buy it to support them, but that evil Epic Games Store combined with Denuvo DRM crap are huge no-go for me.
I was always amazed on how some devs are lazy to remove their DRM this days, for example that story with Max Payne where they've just used some crack from internet as new .exe for Steam release - priceless :laughing:
So really kudos for your work, it's best .exe to date :+1:
On Crysis remaster:
Pretty sure it won't beat original Crysis with all it's abilities to config and mod :smile:
Just wanted to share that: https://youtu.be/lxBTgRcHYFA
What a mixed bag...Money bag :woozy_face:
Yes, it's like original EXE. It only fixes technical issues and disables some really stupid restrictions, such as things available only in DX10 mode. This ragdoll fix is the first patch that affects gameplay somehow. I always try to do every patch as robust as possible and double-check everything to make sure it doesn't have some unwanted side effects. Even though Crysis is one big mess internally.
About Crysis Warhead. Well, there's one huge problem. Warhead has its CryAction and CryGame DLLs integrated directly in its EXE. That means you can't just replace the EXE with your own created from scratch. You have to load the original EXE in your EXE and use the CryAction and CryGame part from there. Using multiple EXEs within single process is highly discouraged. It even doesn't work by default. However, I've managed to implement custom loader for the original Warhead EXE. It works without problems, but 64-bit version only. The original 32-bit Warhead EXE is heavily contaminated by the SecuROM DRM. Some parts are even encrypted, so it doesn't work at all without running that broken SecuROM crap. It would be nice to have single EXE that can properly launch all versions of all existing Crysis games based on CryEngine 2, but it's still a dream for now.
By the way, I found another code preventing player from interacting with ragdolls. It's the last one probably, so all impulses are now correctly sent to CryPhysics. Those dead grunts started to work finally, but we still need to find out correct physics flags for ragdolls to fix at least some of the issues you discovered.
Awesome mod! So glad I found it. Thank you for creating this. I honestly did not expect the physics fixes to come from editing the exe; I spent so much time looking into BasicActor.lua and SinglePlayer.lua in GameData.pak to no avail in order to get strength punches to send people flying like it does in the SP Demo (especially awesome with cl_strengthscale > 1).
The built exe you linked works for sending dead bodies flying, but the punch that kills them still doesn't launch them regardless of the punch/impulse strength, so two punches are needed to send them into orbit. I decided to get the latest version of the ragdoll-physics branch (updated June 22 2021 as of writing this) a try hoping the new fixes you mentioned address this issue but I'm having trouble building it.
I couldn't find a way to get the Windows SDK command prompt (apparently it's discontinued?) and I'm not sure what modules/dependencies I need to select when installing visual studio. Some help would be very appreciated. (also is there a way to perhaps get only cmake and msvc and build the exe from windows powershell or cmd?)
Well, fixing these things by patching game code in memory at runtime is not the best way to do it. There's the Mod SDK with almost complete CryGame source code, which contains this stuff. That's the sane way to do it. :)
About the Windows SDK command prompt, it seems you have to install VS to get it now. That means using the Windows command prompt doesn't make much sense now because you need VS anyway. VS is usually easier to use. Especially VS2019 with integrated CMake, where you only need to open directory with the source code as a CMake project and build it. Oh and in VS setup, just check "Desktop development with C++". That should be more than enough.
And that kill punch is just another dumb restriction to fix probably. I suspect there's a hardcoded constant somewhere, which is used instead of cl_strengthscale
value.
https://github.com/CookiePLMonster/SilentPatchFarCry/issues/3 (idk how's situation for Warhead?)