5 ms·
Would it be possible to read the game's framebuffer directly to get rid of the screen grab step? I'm thinking that might be faster.
by sorenjan 10y ago
Would it be possible to read the game's framebuffer directly to get rid of the screen grab step? I'm thinking that might be faster.
- bitL 10y agoWith source code obviously yes, though it would need interfacing between Python and C++ (likely used in GTA V), then internal screen resizing, and as most of the time is spent in OpenCV anyway it might not give you the effect you wish to get.
- sorenjan 10y agoObviously with source code, I was thinking of something like RenderDoc but in the form of a Python library.
- chatmasta 10y agoYou should look into method swizzling/hooking, to hook into a c++ method called on every frame, and add a line of code to save the frame buffer to disk. You can either do this at runtime via some kind of code injection, or at compilation time if you can manage to re-sign the game. I don't know much about c++ reverse engineering but I've done this when reversing iOS apps (and this is what "tweaking" means in the jailbreak community). The same concepts should apply. The first step is obtaining a class dump (what it's called with iOS) that shows you all the header files and gives you the information necessary to understand what's going on in a debugger so you can determine which method to hook. Edit: this should point you in the right direction - https://rafalcieslak.wordpress.com/2013/04/02/dynamic-linker-tricks-using-ld_preload-to-cheat-inject-features-and-investigate-programs/ https://rafalcieslak.wordpress.com/2013/04/02/dynamic-linker...
- anqh4 10y agoThis being such a popular multiplayer game, I'm sure the memory offsets of the position in the map/acceleration/etc are documented and you can just hook the process and read/write these
- floatboth 10y agoReShade https://reshade.me https://reshade.me is an open source DX9/DX11/OGL hook that adds shader effects… but also includes screenshot functionality! Should be possible to change that to streaming frames to your app… (Just in general, doing this shouldn't depend on a particular game, it's a graphics API level thing)
- cr0sh 10y agoSomething like this might help: http://www.geforce.com/whats-new/articles/ansel-revolutionizing-game-screenshots http://www.geforce.com/whats-new/articles/ansel-revolutioniz...
- falcolas 10y agoYou can also sometimes grab the individually drawn elements from the graphics stack as well - it's likely to be less obfuscated than the game's memory layout. http://www.gamasutra.com/view/news/167781/Indepth_Extravagant_cheating_via_Direct_X.php http://www.gamasutra.com/view/news/167781/Indepth_Extravagan...
- rasz 10y agoDXtory does this for games http://exkode.com/dxtory-features-en.html http://exkode.com/dxtory-features-en.html you could also directly intercept/inject graphic calls like ENB and SweetFX, ENB already supports GTA5