RDR2 / QEMU Detection


M0CRT

Recommended Posts

Hi Folks

 

As documented elsewhere, it seems that certain game developers are now taking on themselves to block running of their content on virtual platforms.

 

With the potential, documented in the linked Reddit post below, how easy would it be to either provide an option for a 'hardened' QEMU version OR facilitate building a custom version (as documented in the post)?

 

Whilst I have dev tools installed, cannot complete the build due to missing deps...namely pixman in my case.

 

Keen to get RDR2 up and running once more.  Thoughts would be most welcome.

 

 

 

 

 

Link to comment

Hi, new on the forums, and was just gifted a copy of this on Steam. It starts up as far as the main menu, but then if I attempt to hit settings, or launch the game in single player or multiplayer, I get a crash to desktop.

 

I've tried all the other methods I've found with no luck so far:

  • DepotDownloader to downgrade to before the Naturalist update
    This no longer works, as the Rockstar Launcher refuses to launch the older version. Downgrading the launcher doesn't work either, because it either refuses to work if disconnected, or auto-updates a soon as it starts up.
  • Running in Linux via Proton
    After a few attempts, I managed to get the game to start up as far as the main menu under Proton 5.13. Unfortunately, the symptoms are the same

So, this leaves me at the point of trying to patch QEMU. I'm fairly savvy, but I'm not sure where to begin on modifying components in Unraid.

 

I've noticed that there appear to be some Docker images that contain QEMU, I'm wondering if that might be a usable way to package up a modified QEMU and launch it on my Unraid box for the Windows VM without affecting the built in system version, and risking breaking other stuff.

Link to comment

I found an easier solution, and have so far been able to at least get into the settings screen on my Windows VM!

 

In that same Reddit thread, Philosopher_Valuable suggested using sed to modify a qemu binary in order to patch the ACPI tables:

Quote

Since these strings are pretty much unique it should be also possible just to use sed against existing binary ;)

Something like this:


hexdump -ve '1/1 "%.2x"' qemu-system-x86_64 | sed -e 's/424f4348/434f4348/g' -e 's/42585043/44585043/g' | xxd -r -p > qemu-system-x86_64.new

It will convert:

BOCH to COCH

BXPC to DXPC

I tested above with Proxmox VE. Just change the /usr/bin/qemu-system-x86_64 with above trick. It will work without recompile.

Based on this idea, I copied /usr/bin/qemu-system-x86_64 into my Manjaro system, and patched it as above. Then I copied it back into the Unraid system as /usr/bin/qemu-system-x86_64.rdr2, and moved some stuff around:

cd /usr/bin/
mv qemu-system-x86_64 qemu-system-x86_64.stock   #Keep the original around, just in case
chmod 755 qemu-system-x86_64.rdr2                #Make sure the patched one is properly executable
ln -s qemu-system-x86_64.rdr2 qemu-system-x86_64 #Create a symbolic link so that Unraid will launch the patched version

This was done with a couple of other VMs running, no problems there.

 

Afterwards, I did still have to do the XML edits described by dev-null-s in order to deal with the SMBIOS values, but now it seems to work.

 

Off to play a bit, I'll report back later!

 

Link to comment
1 hour ago, jummama said:

I found an easier solution, and have so far been able to at least get into the settings screen on my Windows VM!

 

In that same Reddit thread, Philosopher_Valuable suggested using sed to modify a qemu binary in order to patch the ACPI tables:

Based on this idea, I copied /usr/bin/qemu-system-x86_64 into my Manjaro system, and patched it as above. Then I copied it back into the Unraid system as /usr/bin/qemu-system-x86_64.rdr2, and moved some stuff around:


cd /usr/bin/
mv qemu-system-x86_64 qemu-system-x86_64.stock   #Keep the original around, just in case
chmod 755 qemu-system-x86_64.rdr2                #Make sure the patched one is properly executable
ln -s qemu-system-x86_64.rdr2 qemu-system-x86_64 #Create a symbolic link so that Unraid will launch the patched version

This was done with a couple of other VMs running, no problems there.

 

Afterwards, I did still have to do the XML edits described by dev-null-s in order to deal with the SMBIOS values, but now it seems to work.

 

Off to play a bit, I'll report back later!

 

Nice one Jummama.  I'll take a look.  I did attempt to patch utilising the aforementioned sed method but on checking my ACPI tables it still wasn't working.  Do I need to refresh the tables somehow on an existing VM?

 

Any reason why I cannot patch within an Unraid Terminal session?

 

Thanks

Edited by M0CRT
Link to comment
19 minutes ago, M0CRT said:

Nice one Jummama.  I'll take a look.  I did attempt to patch utilising the aforementioned sed method but on checking my ACPI tables it still wasn't working.  Do I need to refresh the tables somehow on an existing VM?

 

Any reason why I cannot patch within an Unraid Terminal session?

 

Thanks

I saw some reference to fast start caching some of the values, so it might help to turn off fast start in Windows.

 

The Unraid terminal should be okay for patching the binary

Link to comment
On 11/28/2020 at 7:28 AM, M0CRT said:

This works a treat.  Ensure you disable Fast Boot in Windows 10 power settings for the ACPI tables to recache.

 

Perfect.

 

🙂

 

Would you mind explaining the process you used? 

 

Thanks

 

Edit: NVM I figured it out. Works great :)

 

Thanks for sharing folks. 

Edited by Blunt
Link to comment

Still an interesting topic if some developers try to prevent virtual environments.

 

However, it looks like RDR2 was patched today and now for whatever reason it works on a very standard VM setup.

 

2700X - 4 cores passed and isolated

GTX 1080 - passed as primary

2TB NVME - Passed

HyperV-on

 

Performance is nice as well 50-70 FPS 1440P ultra!

Edited by gray squirrel
Link to comment
  • 6 months later...
  • 3 weeks later...
  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.