Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

can you make it work with assassins creed origins. because denuvo and vm protect are removed by codex #5

Open
darksiders2 opened this issue Dec 20, 2019 · 53 comments

Comments

@darksiders2
Copy link

please make work with assassins creed origins
i have a core2quad 9650

@mirh
Copy link
Contributor

mirh commented Dec 20, 2019

DRM has never been a problem for this kind of fix? EDIT: ok, perhaps VMP wasn't as lenient as denuvo

Also, I'm not even totally sure this could be just a POPCNT problem. Perhaps it's the whole SSE4.2 that is required here.
What are your symptoms?

@darksiders2
Copy link
Author

actually DRM matters in this game .sde wasn't working before and it was getting kicked out by the DRM. but after latest codex crack which they removed the drm sde works but performance is low.
same thing was with the game:control but after it gut a sse4.2 bypass it working good now
https://www.pcgamingwiki.com/wiki/Control
assassins creed origins runs with Intel sde now
i used different configurations of cpuids looks like its only works with cpuids that has sse4.2
maybe it can be tricked with the cpuid or sse4.2 flag because its the Drm that was require sse4.2
and now there is no DRM can you checkout if the game using sse4.2 or its just being tricked by the cpuid. if you dont have the game which is version 1.51 with leatest codex crack
i can check it but i need a cpu profiler i think .any help would be welcome

@mirh
Copy link
Contributor

mirh commented Dec 21, 2019

The problem with control was that they have a (dumb) check, not even safeguarding instructions actually being used in the game.

But how does AC:O work? Is there also a warning, or is it simply crashing directly?
You have to know if you just need POPCNT or which remainder of SSE4.2, and if it's actually needed or just for show

..put even aside that you can't expect stellar performances even in the most rosy of the situations

EDIT: this guy had actually got the DRMed game to run with SDE..

@darksiders2
Copy link
Author

darksiders2 commented Dec 22, 2019

so there is no way?
because i dont know anything about coding and stuff like that.
since you have the experience
can you make a bypass for it?

@mirh
Copy link
Contributor

mirh commented Dec 22, 2019

Lol, I really don't have "the experience".
Though I know a lot of "non-coding workarounds".

And what I'm asking you, to start, is if the game actually just crashes on start now, or it warns you that you lack minimum system requirements.

@darksiders2
Copy link
Author

the game just crashes with no warning.

@mirh
Copy link
Contributor

mirh commented Dec 23, 2019

"Good".
Then, would it be possible for you to install visual studio, and take a picture of its debug/disassembly window which should automatically open on crash?

@darksiders2
Copy link
Author

hi again.
here is the result

'ACOrigins.exe' (Win32): Loaded 'D:\games\Assassin's Creed - Origins\ACOrigins.exe'. Module was built without symbols.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\ntdll.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\kernel32.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\KernelBase.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\apphelp.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\shlwapi.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\msvcrt.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\d3d9.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\sechost.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\rpcrt4.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\d3d11.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\gdi32.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\win32u.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\kernel.appcore.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\gdi32full.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\msvcp_win.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\combase.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\ucrtbase.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\ucrtbase.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\user32.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\windows.storage.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\SHCore.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Unloaded 'C:\Windows\System32\ucrtbase.dll'
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\advapi32.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\bcryptprimitives.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\profapi.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'D:\games\Assassin's Creed - Origins\bink2w64.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\powrprof.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\ws2_32.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\ole32.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\umpdc.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\shell32.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\cfgmgr32.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\dxgi.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\cryptsp.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\dinput8.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\oleaut32.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\IPHLPAPI.DLL'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\psapi.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\setupapi.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\bcrypt.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\opengl32.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\pdh.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\dwmapi.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'D:\games\Assassin's Creed - Origins\oo2core_4_win64.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'D:\games\Assassin's Creed - Origins\uplay_r1_loader64.dll'. Module was built without symbols.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\version.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\WindowsCodecs.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\winmm.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\wtsapi32.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\XInput9_1_0.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\hid.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\glu32.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'D:\games\Assassin's Creed - Origins\Tobii.GameIntegration.dll'. Module was built without symbols.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\winmmbase.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\crypt32.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\DXCore.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\msasn1.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'D:\games\Assassin's Creed - Origins\d3dcompiler_47.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'D:\games\Assassin's Creed - Origins\GFSDK_Aftermath_Lib.x64.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\imm32.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\InputHost.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\CoreMessaging.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\CoreUIComponents.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\propsys.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\WinTypes.dll'. Cannot find or open the PDB file.
'ACOrigins.exe' (Win32): Loaded 'C:\Windows\System32\ntmarta.dll'. Cannot find or open the PDB file.
Exception thrown at 0x0000000140818282 in ACOrigins.exe: 0xC000001D: Illegal Instruction.
Unhandled exception at 0x0000000140818282 in ACOrigins.exe: 0xC000001D: Illegal Instruction.

@mirh
Copy link
Contributor

mirh commented Dec 25, 2019

Lol, not that window, thanks.
Could you check the "disassembly" panel? That's where the magic resides.

If you don't see it, add it from the toolbar on the top.

@darksiders2
Copy link
Author

hi
sorry for the mistake.

debug

@mirh
Copy link
Contributor

mirh commented Dec 26, 2019

Absolutely thank you for the effort.
CRC32 is unfortunately an SSE4.2 feature, and as such it is not covered by this tool.
Further, I'm not aware of any one specifically just addressing that instruction (or that instruction set).
And as I said, not that I can hack something myself.

On the other hand, I know there is a hypothetic driver provided you are comfortable with using linux, which has patches for CRC32 emulation.
The ball is in your court if you want to go down this road
OPEMU.zip

@darksiders2
Copy link
Author

thank you friend, really.
you mean i can run the game in linux using wine
and the crc32 patch?
and is there a working patch for win10

@mirh
Copy link
Contributor

mirh commented Dec 26, 2019

Yes, in linux using wine. At least if your graphics card support Vulkan, performance should be on par to windows.

For win10 there is nothing, unless somebody extends this emulator to support CRC32 or find some way to trap exceptions in the NT kernel with a driver.

@mirh
Copy link
Contributor

mirh commented Jan 4, 2020

Well... Linux still is the most/only reliable solution at this point imo..
But could you try this executable? Still with the popcnt_emulator if you can.
https://www.mediafire.com/file/39xhwavshvwz2v3/ACOriginsFixTest.exe/file

@darksiders2
Copy link
Author

darksiders2 commented Jan 4, 2020 via email

@mirh
Copy link
Contributor

mirh commented Jan 4, 2020

Oook thanks anyway.

im using manjaro next i will test on ubuntu

No please, that's retarded.
If you give me a month or so, I should be able to help directly.

@darksiders2
Copy link
Author

thank you
by the way what happened to the crc32 instruction
and how did you changed it with popcnt
im eager to learn.

@mirh
Copy link
Contributor

mirh commented Jan 5, 2020

I didn't change anything, mr. KOCMOC42 did.
And instructions weren't transformed.. just tentatively patched out (leaving just popcnt then), but it seems like it didn't work.

Indeed, I don't really see this path as viable. Only emulation seems promising for the future.

@darksiders2
Copy link
Author

intel sde can emulate popcnt but the problem is that its emulate all the instructions even those exist in the cpu and it slowdown everything
if only there is a way to make intel sde emulate only popcnt
intel sde have huge list of commands and it hard to configure

@mirh
Copy link
Contributor

mirh commented Jan 6, 2020

The problem is crc32, which is only emulated by the patchset I posted above.
POPCNT is already efficiently handled by the tool of this very repository instead.

@KOCMOC42
Copy link

KOCMOC42 commented Jan 6, 2020

The problem is that even if you bypass crc32 that I implemented, there is another problem with popcnt and movups that can be solved, but I don’t know how, the workaround with crc32 is simply not applicable to popcnt since the program’s further work is not in the scenario the developer laid down which leads to the fact that the game crashes and does not start at all. All these checks of instructions pass only at the beginning of the game when the game logo appears, it takes literally 20-30 seconds. I could solve this problem if I had another computer nearby that would allow me to run the game without an emulator and do fix tests, but alas, I'm not at home right now. As for the sde external emulator, it can be optimized by going to the misc folder and then going to the bdw folder and documenting all lines except the first two in the cpuid.def file. But even that will be sad 7-15 FPS, but with the help of the cheat engine turning on speedhack at 0.8, you can get another 7 frames increase and this does not reach at least 30 frames to the normal FPS. Of course, you can parse the sde-mix-mt.dll emulator file and remove all other emulation functions, thereby increasing productivity, but I don’t have the source to edit this file correctly. But by the method of poking, it is possible that something can be done. For example, I optimized the emulator by trial and error by removing unnecessary trash from it, but even that performance did not get better. The best option is of course to try to do something with the popcnt emulator, but all I know from the programming language is php) When I get home and it will be in about a month, I can test the fix for working through the debugger, so I will understand what I'm doing right and what not. As for the sde external, after starting the game window it is necessary to turn it off somehow, but I did not find how, and it turns out that even the optimized emulator continues to work, affecting the performance, although less, but the effect is noticeable.
By the way, here is an example of a video with the launch of an optimized emulator (without gameplay, for some reason the game decided to freeze, but after disabling recording from the screen I got 15 frames and micro friezes)
Video

@mirh
Copy link
Contributor

mirh commented Jan 6, 2020

there is another problem with popcnt and movups that can be solved, but I don’t know how

Why would that be a problem, if you really had solved crc32?
Popcnt can be handled by this tool (but it was already reported that it you must have missed something, @darksiders2 please provide the vs screenshot perhaps)... and movups doesn't sound a scary instruction? Isn't that basic x64?

@darksiders2
Copy link
Author

you need screen shot of the fix test .exe or from the original one

@mirh
Copy link
Contributor

mirh commented Jan 7, 2020

The original one is already above.. the other is important

@darksiders2
Copy link
Author

here you go:
Capture

@mirh
Copy link
Contributor

mirh commented Jan 7, 2020

Is that with popcnt_emulator? :/

@darksiders2
Copy link
Author

darksiders2 commented Jan 7, 2020

i dont know how to run the emulator in Visual Studio debug
but when i run the game with the popcnt emulator the game stays in taskmanager and does nothing

@mirh
Copy link
Contributor

mirh commented Jan 7, 2020

You don't need to run the game with vs attached
When it crash, it should automatically start.

If it doesn't, add the game executable to DebugApplications as explained here

@darksiders2
Copy link
Author

the problem is its not crashing, as said before
it stays in taskmanager with 7mb ram usage

@darksiders2
Copy link
Author

hi
is there no solution yet?
its hard to play with sde

@KOCMOC42
Copy link

KOCMOC42 commented Feb 4, 2020

Hey. I did not find a solution. Although I experimented with the fix and it turned out to load some data into the RAM as it usually happens, but after waiting 10 minutes no further reaction followed. And I also found out that some people use the file that’s in the branch with mediafire as a fix, and they say that they supposedly did it so that others would finish what kind of fools they were. In the end, it was the very moment when you need to update your computer.

@mirh
Copy link
Contributor

mirh commented Feb 4, 2020

I mean.. I wasn't saying that the emulation path is more profitable for nothing..
And, if the problem really just is bullshit instructions like CRC32 and POPCNT I refuse to accept that it's not the developer having a lazy ass.

Anyway, in month or so my exams will end I should be able to test the linux way (since I'm not a developer, and it's the only one I know that doesn't require specific skills to try)

@darksiders2
Copy link
Author

darksiders2 commented Feb 5, 2020

hello Mr mirh
im happy to see that you haven't gave up
and thanks to Mr kocmoc with crc32 fix
it seems this cpu requirement is a big roadblock and i dont know why your popcnt emulator not working
there is a cpu id you implemented in popcnt emulator is it nhm architect?
because the game have problem with nhm
i tried changing the cpu id to ivb but it wont compile
can you compile it with ivb cpu id
it may work.
thanks in advance

@goliathskatetaker
Copy link

You can play with this fix
The YT acct is there for demonstration purposes only.

@mirh
Copy link
Contributor

mirh commented Feb 24, 2020

Uh, cool.
Am I right in understanding amun_ra.dll is taking care of emulating both POPCNT and CRC32?

@darksiders2
Copy link
Author

amazing .
the game is smooth on ultra.
but crashes sometime with popcnt error in visual studio

@mirh
Copy link
Contributor

mirh commented Feb 25, 2020

Well, I really don't know what kind of black magic there is there..
Still, I believe you could run this good old popcnt_emulator alongside it (if popcnt is the only error).

@darksiders2
Copy link
Author

Did you tested it with assassins creed origins?
Cuz I never managed to get it to work with origins.

@mrgoliath
Copy link

I cannot login with the old account. It keeps on giving a 500 server error ffr github?
JFYI I'm not the creator of the fix I did the testing. Surely you can contact him over private message in that site. His cool guy

@darksiders2
Copy link
Author

thank u
i already fixed the game its no longer crashing .for now

@mirh
Copy link
Contributor

mirh commented Feb 29, 2020

There was a new release hours ago btw.

@mrgoliath
Copy link

mrgoliath commented Mar 1, 2020

Oops you beat me...
You guys have seen there's a youtuber claiming to have made a tool to run sse 4.2 games on a bloody P4? I can positively say what he is doing is memory editing or regedit task manager and dxdiag cpu name and playing around with msconfig.
Jesus what a world we live in!

@mirh
Copy link
Contributor

mirh commented Mar 1, 2020

He's just a grifter for as much as I know. Let's even pretend the videos are legit, we already have SDE to make everything work on everything.
Performance won't be good though, and if you were honest before linking your stupid game store, you'd actually mention what's your magic fix.
Now, hopefully this week I have time to install linux, I'll see if I can get some legit "universal workaround".

@mrgoliath
Copy link

mrgoliath commented Mar 3, 2020

What can I say?
Edit-That myself was too rude...
His P4 630 HT is actually a i3 8100
6MB L3 cache, 4 Cores 4 Threads, 3.6Ghz
Backup image

@mirh
Copy link
Contributor

mirh commented Mar 23, 2020

Behold
https://github.com/mirh/opemu-linux

CRC32 is bugged though, and Odyssey still crashes for this reason.

@KOCMOC42
Copy link

Hi guys. Made a fix for the amd processor, so far not stable but at least the game starts. https://www.mediafire.com/file/c7b24ymkbiquqhc/AMD_sse4.1.zip/file
P.s it was based on a correction from cs.rin.ru

@mrgoliath
Copy link

mrgoliath commented Apr 3, 2020

Well well well KOCMOC42.. So you took the dlls from that sse 4.2 fix, hex edited them to rename dll name from amun_ra.dll to ufix_ra.dll and stripped out web site name, to show it like you made it.
There is absolutely no reason to do that imo unless you want to masquerade people.
At least you mentioned here from where you took it but in PGR you credited nobody. You even replaced sse 4.2 fix post with your hex edited files.
This is truly disrespectful and unprofessional (( sad

@KOCMOC42
Copy link

KOCMOC42 commented Apr 4, 2020

Hi. dll is really edited but the error import the addresses using CFF Explorer, the game would not load so I had some things to remove it including the site name, the name of the dll changed since made several copies to test which one worked with amd and one of them worked, this used hex to change the name and switch to dll them afix_ra.dll bfix_ra.dll cfix_ra.dll the name change that would not be confused with origianlly file. Well I'm sorry for being unprofessional

@mrgoliath
Copy link

Errm.. okay 😏 but that doesn't make any sense to me.
Why did you want to rename the dll?
Dll didn't work on amd because its name was amun_ra?

@KOCMOC42
Copy link

KOCMOC42 commented Apr 5, 2020

The name change was necessary in order to understand which files would work when importing addresses from another dll that was made for other purposes. With one file, it successfully started; others started, but could not go beyond the boot menu, then it was decided to change the application under amd through the debugger. I do not know if these dlls are needed to run on amd since there is no original file to check and whether this work with import made sense. But the game does not start stably.
ACamd

@mrgoliath
Copy link

So you renamed DOOM SSE fix teitenga.dll dll to doomfixsse.dll and stripped out the site name too!
My goodness why on earth you do this?
I test fixes on both english russian locale. All fixes worked just fine.

If anyone looking for original fixes here are they
Assassin's Creed Origins 1.51
Assassin's Creed Odyssey 1.5.3
DOOM Eternal

@KOCMOC42
Copy link

KOCMOC42 commented Apr 7, 2020

I doubt that the dll info was edited in doom since it was not cut, at least I did not cut it and it remains consistent there. Only the dll name has been edited to clearly understand what file is needed.
cffex
If it really is not there, then I will replace the files with the original.

@mrgoliath
Copy link

Of cause it is not there

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants