deSnap
deSnap is a tool for extracting images from the Snapmatic feature in the game GTA Online.
Features
- The tool finds the correct path itself, no need for user input
- Converts all files at onece
- Light, around 40 lines of code, no extra bloat
How does it work?
The coded files are located in C:\Users\USERNAME\Documents\Rockstar
Games\GTA V\Profiles\CODE\
Username being your user name (duh) and CODE neing a random code named
folder insider of the Profiles directory. There are some files we don't
care about and the Snapmatic photos, saved as files without any
extension, starting with PGTA5, followed by a string of numbers.
According to
this user on gtaforums.com the files are images with 292 bytes of
header data. This is verifiable by opening the file in a hex editor
and manually deleting the bytes.
This tool finds its path to the right folder, selects the correct files,
and one by one it strips each file of the unwanterd bytes. Then it
exports all of the pictures to a new folder on desktop. Simple as that.
You don't need to manually intervene at any moment.
What's the current state of the project?
The program seems to be working just fine. You can download the first release on my github page. The naming of the output files is kinda wonky though, I might have to change that later. I have yet to test this on any other computer than mine, but as long as you have .NET 6 installed on your system it should work without any major problems.
Usage
Could not be any easier. Just download the release, unzip the file and run deSnap.exe! If you don't feel like running random .exe from the internet (I don't blame you), you can always inspect the source code yourself.
Notes
I'm really happy with how this turned out. This is the first time I
had a real need for a piece of software that I was able to write on
my own. I had a problem and I programmed a solution, that is not only
made for me, but lots of other GTA Online players might also find it
useful. Feels good.
This project pushed me to learn new things about paths in C#. I'm pretty
sure it could be optimized further, but at the moment I'm just happy
with how well it works.
Explore the source code on Github!
Inspiration for this project