CREATE YOUR AI CUM SLUT ON CANDY.AI TRY FOR FREE
x

Tool GAME RIPPER (decrypt and extract Ren'Py, Godot, Unity, WolfRPG, RPGM XP/VX/Ace/MZ/MV, PGMMV, APK, JAR, WASM, EXE etc.)

justaplayer69

Member
Nov 29, 2023
166
200
The only supported format in core is Ogg Theora (not to be confused with Ogg Vorbis audio).
Thanks for the info! That should work out-of-the-box then. Older Godot versions stored the Ogg Vorbis as-is, so I've added extraction for that. Newer Godot tend to replace the Ogg container with their own "OggPacketSequence" container format, which is also supported by GR. However, I've kept the old Ogg container extraction method too ( ) which happens to work with Ogg Theora as well, since it's the same container format (but different codec, which is irrelevant for GR).

i'm new to this, i already have the game i wanted to translate unpacked using this software, how do i proceed after that?
You search for the texts and translate them, then you use a tool to put the files back together. GR can't do that latter as it's specifically for extraction. For Godot you can use the Godot engine to put the files into a pack again, or some alternative tool for example (I know it's called "decomp", but it can "comp" as well). The trick here is, that GR can extract from all kinds of encrypted packs, while you can only create unencrypted packs. This shouldn't be a problem, the Godot game should detect if the pack is encrypted or not, and should work with both.
 
  • Like
Reactions: pepplez

justaplayer69

Member
Nov 29, 2023
166
200
New release! Mostly minor fixes and Ren'Py improvements.

Windows: https://attachments.f95zone.to/2024/11/4303013_gameripper-windows.zip
Linux: https://attachments.f95zone.to/2024/11/4303014_gameripper-linux.zip
Source: https://attachments.f95zone.to/2024/11/4303015_gameripper-src.zip

Changelog:
- unrpyc updated to the latest
- embedded RPAs are now detected
- more heuristics to find python inside the game to run unrpyc with
- running python in a child process so that it won't take down GR with it if crashes, rather GR will just report that unrpyc failed
- added "-n" flag for no audio, because under some wine configs SDL_Audio crashed with "buffer underrun" message. Linux and native Windows wasn't affected, just wine.
- limited sub-directory scanning on detection to two levels, this fastens up engine detection by a lot if the folder has lots of files (RPGMZ games typically)
- limited sub-directory parsing to ten levels when loading and decrypting assets (just to be on the safe side, it was unlimited before)
- fixed an issue with writing large numbers into the log file under Windows
 

justaplayer69

Member
Nov 29, 2023
166
200
Some bugfix, it seems that getting unrpyc right is a major PITA... But I believe I've finally ironed it out.

Windows: https://attachments.f95zone.to/2024/11/4305954_gameripper-windows.zip
Linux: https://attachments.f95zone.to/2024/11/4305955_gameripper-linux.zip
Source: https://attachments.f95zone.to/2024/11/4305956_gameripper-src.zip
Repo: gitlab.com/gameripper/gameripper

Changelog:
- running "python unrpyc.py" part rewritten, again.
- temporarily changes the working directory before executing python
- unrpyc output is redirected, catched and written to gameripper.log

Allow me to went some frustration over python and unrpyc... It turned out that unrpyc.py was always working in a VM, but always crashed on a real machine. WTF? A python f*cking script. Using exactly the same f*cking python binary on both real machine and VM. I've rewritten GR to catch its output and write it into the log, that's how I realized that latest unrpyc.py detects the number of CPU cores and tries to start that many worker threads. Now this is truly an epic failure, as unrpyc.py has to run using the game's python modules so that game classes in the AST tree can be decompiled into scripts, but no Ren'Py game ships the _multiprocessing python module necessary for running workers in parallel. Therefore unrpyc.py always crashed on machines with more than one CPU cores. Fixed, but man, oh man... :facepalm:

Another headache, if the game's folder had an exclamation mark in its name, then unrpyc.py was working on Windows, but crashed on Linux. If I escaped the ! character, then it was working on Linux, but crashed on Windows... To overcome the situation, GR now changes the working directory to the game's folder temporarily while python is executed. This way the folder's name does not appear in the executed string, it could contain whatever funky characters, problem solved once and for all.

I hope that now all Ren'Py script decompilation use cases were tested and has been fixed. Let me know if you run into any trouble.
 
  • Like
Reactions: CAT0X0

justaplayer69

Member
Nov 29, 2023
166
200
And another, this time I focused on older RPG Maker support.

Windows: https://attachments.f95zone.to/2024/11/4308266_gameripper-windows.zip
Linux: https://attachments.f95zone.to/2024/11/4308267_gameripper-linux.zip
Source: https://attachments.f95zone.to/2024/11/4308269_gameripper-src.zip
Repo: gitlab.com/gameripper/gameripper

Changelog:
- fixed an issue with demarshaling Ruby bytecode (integers on 1 byte were sign extended, shouldn't be) for RPG Maker XP/VX/Ace
- this also fixed the issue of game title not decoded from System.rxdata/.rvdata/.rvdata2 files
- added parsing and loading of tilesets for RPG Maker XP/VX/Ace
- added map preview for RPG Maker XP/VX/Ace (big kudos to this guy: I ported his Ruby plugin to C)
- minor tweak in detecting RGSAD2/3 encryption keys, because wasn't working on one game (just checked if the decrypted filename starts with a valid ASCII character, now it checks if it's an uppercase Latin letter, this removes some very unlikely false positives. Also if the first filename starts with "Data", key autodetection is now instant with RGSAD3)

With this update, all game engines with maps work equally, all maps can be previewed and saved as a huge PNG (saving as Tiled TMX was already working), no matter it's WolfRPG, RPG Maker MZ/MV or some older version.

EDIT: looks like Avast AI hallucinates again, it has a false positive. If you're in doubt, complete source included (or get that from gitlab), you can compile it yourself if you don't trust me (or just download the previous release above without the RPGVX maps).
 
Last edited:
  • Heart
Reactions: pepplez

justaplayer69

Member
Nov 29, 2023
166
200
And one more... unrpyc still wasn't right... And some new features as well, version bumped to GR 1.4
I don't think I'll have time for GR for a while, so dont' expect more releases soon, but I'll take care for quick bugfixes.

Windows: https://attachments.f95zone.to/2024/11/4312278_gameripper-windows.zip
Linux: https://attachments.f95zone.to/2024/11/4312279_gameripper-linux.zip
Source: https://attachments.f95zone.to/2024/11/4312280_gameripper-src.zip
Repo: gitlab.com/gameripper/gameripper

Changelog:
- unrpyc fixes, as usual...
- added stubs for Unity and Unreal engines (detected but they just fallback to assetscan for now)
- added Cheats tab. This might contain three buttons (DevMenu, Uncensor, Savegame Editor) per engine, each might update the game or open an URL
- Ren'Py DevMenu (console+developer mode), Savegame editor
- RPGXP/VX/Ace Savegame Editor
- RPGMZ/MV DevMenu, Savegame Editor
- WolfRPG Savegame Editor
- Unity Uncensor, Savegame Editor

The RPGMZ/MV uses emerladCode's Cheat_Menu and updates plugins.js automatically. Savegame Editor buttons mostly open up the browser with an URL pointing to an online service or a github release page. The most problematic part was Unity. It is now properly detected (32/64 bit, Mono/IL2CPP, which BepInEx version installed) and the appropriate UniversalUnityDemosaics version from trimmerpop is installed. If no BepInEx found, then it redirects the user to the BepInEx's download page according to what Unity version was detected, so that you won't mess it up.

ps.: look's like Avast static ML's LSD trip is over, it's not hallucinating false positives any more :)
 
  • Like
  • Wow
Reactions: rzerces and pepplez
Mar 20, 2021
46
25
Hi, so I have been trying to use your program to translate . (game download)

I think there is a formatting issue with the .CSV files the program generates, as I somehow managed to get ghost characters while editing the .CSV files and in some cases will actually remove other lines of text in the program.
furthermore importing the .CSV file makes the game inoperable
 
Last edited:

justaplayer69

Member
Nov 29, 2023
166
200
Hi, so I have been trying to use your program to translate . (game download)
I'm going to need an f95zone.to link for the exact game (first one is a dlsite link, and the second is a megathread which lists hundreds of games, I can't check all of those). I need the mega link or something to the game and I'll take a look.
I think there is a formatting issue with the .CSV files the program generates
That's more than unlikely.
as I somehow managed to get ghost characters while editing the .CSV files
Not sure what could have gone wrong, never seen such "ghost characters". Is the .CSV you're editing / importing UTF-8 encoded? If you change the encoding in your editor then it won't work, only use UTF-8 without a BOM.
in some cases will actually remove other lines of text in the program.
Now this is literally impossible because GAME RIPPER simply does not parse nor generate the JSON, it copies everything before the text, and everything after the text block verbatim without even touching it. I really need the game file to tell more.

EDIT: I've checked, assuming you were talking about .

I was unable to reproduce your issue, GR worked like a charm. I've attached the exported CSV file (https://attachments.f95zone.to/2024/12/4332257_texts.csv.zip), as you can see, no "ghost characters" in it (however there are lots and lots of spaces and some funky "\\S[20]A" like PGMMV control codes in it, you must be careful to use the right amount of spaces in the strings when you translate this). It is UTF-8 encoded and all Japanese characters display correctly.

I've also tried to patch with this CSV for testing purposes, here's the difference between the original and the patched project.json:
Code:
142901c142901
< 			"text": {  },
---
> 			"text": { },
142928c142928
< 			"text": { "ja_JP": "Can you keep a secret?\nI heard from someone that \nyou can not damaged the big machine \nexcept when it's shorting." },
---
> 			"text": { "ja_JP": "Can you keep a secret?\nI heard from someone that \nyou can not damaged the big machine \nexcept when it\'s shorting." },
The original has two spaces in line 142901, while GR generated just one (not an issue at all), and in line 142928 the original has an incorrectly non-escaped apostrophe, while GR escaped that because the RFC8259 specification says so (not an issue either, seems like PGMMV is fine with misformed JSONs, it reads escaped and non-escaped apostrophes equally).

No "ghost characters" nor missing texts here either.

So I'm fairly certain that your issue was that your editor did not use UTF-8 encoding when it opened the CSV. Anyway, I've added an extra BOM check too on import, just to be on the safe side. But you must tell your editor to read and write in UTF-8.
 
Last edited:

justaplayer69

Member
Nov 29, 2023
166
200
Mar 20, 2021
46
25
So I'm fairly certain that your issue was that your editor did not use UTF-8 encoding when it opened the CSV. Anyway, I've added an extra BOM check too on import, just to be on the safe side. But you must tell your editor to read and write in UTF-8.
It turns out I have actually been using UTF-8 the entire time, and just a general question did you check to see if the program(player.exe) actually started the game after making the .csv edits?

on my end, whenever .csv edits are imported, the game breaks(runs but shutdowns shortly after) . but modifying the text through the resources\data\project.json directly does work and the game will run, so i do think there is an issue somewhere.
this is consistent with other games i have tried Game Ripper on.

attached are files generated through Game Ripper; texts.csv is just a standard export. texts1.csv is an export after modifying the project.json file.


I've checked, assuming you were talking about
also yes, this is the game i was referring to.
 
Last edited:

justaplayer69

Member
Nov 29, 2023
166
200
did you check to see if the program(player.exe) actually started the game after making the .csv edits?
Yes, and it works perfectly.

on my end, whenever .csv edits are imported, the game breaks(runs but shutdowns shortly after) . but modifying the text through the resources\data\project.json directly does work and the game will run, so i do think there is an issue somewhere.
When you import a CSV, check the "Create backup files" option and GR will save the original JSON as "Resources\data\project.json~". Then you can compare the original and the patched JSON. But as I've said, everything before and after the "textList" block is copied verbatim, without even parsing or touching. And within the "textList" block, everything is copied verbatim too except for the "text" fields, which are indexed by their sibling "id" fields. Other fields are not parsed nor replaced at all, just copied as-is byte-to-byte.

attached are files generated through Game Ripper; texts.csv is just a standard export. texts1.csv is an export after modifying the project.json file.
This is no use, you should attach the project.json.

BTW, the difference between texts.csv and texts1.csv is
Code:
2c2
< 62;"あなたは痴漢を逮捕するために派遣された私服警官です。\n容疑者が出没するという車両に潜入しています。\n \n                                                                     \\S[20]A キー で次へ"
---
> 62;"AAA痴漢を逮捕するために派遣された私服警官です。\n容疑者が出没するという車両に潜入しています。\n \n                                                                     \\S[20]A キー で次へ"
If I import texts1.csv with GR, the new project.json is as expected; no ghost characters, no missing lines, no JSON syntax errors and the game runs perfectly with it. I've attached a zip with the original JSON (project.json~) and the new JSON (project.json). As you can see, all is good, no problems whatsoever. You can start the game with it, and works.

I'm truly sorry, but I can't fix an issue if I can't reproduce it. I'm sure you must be missing something.
 
Mar 20, 2021
46
25
Yes, and it works perfectly.

When you import a CSV, check the "Create backup files" option and GR will save the original JSON as "Resources\data\project.json~". Then you can compare the original and the patched JSON. But as I've said, everything before and after the "textList" block is copied verbatim, without even parsing or touching. And within the "textList" block, everything is copied verbatim too except for the "text" fields, which are indexed by their sibling "id" fields. Other fields are not parsed nor replaced at all, just copied as-is byte-to-byte.

This is no use, you should attach the project.json.

BTW, the difference between texts.csv and texts1.csv is
Code:
2c2
< 62;"あなたは痴漢を逮捕するために派遣された私服警官です。\n容疑者が出没するという車両に潜入しています。\n \n                                                                     \\S[20]A キー で次へ"
---
> 62;"AAA痴漢を逮捕するために派遣された私服警官です。\n容疑者が出没するという車両に潜入しています。\n \n                                                                     \\S[20]A キー で次へ"
If I import texts1.csv with GR, the new project.json is as expected; no ghost characters, no missing lines, no JSON syntax errors and the game runs perfectly with it. I've attached a zip with the original JSON (project.json~) and the new JSON (project.json). As you can see, all is good, no problems whatsoever. You can start the game with it, and works.

I'm truly sorry, but I can't fix an issue if I can't reproduce it. I'm sure you must be missing something.
then the issue is 100% on my end because your attached .json file breaks the game on my end. the project.json~ works fine.

edit: looking at the action log, tells me it stops after finding project.json when i use your copy. so i literally have no clue.


project1 is self edited and works. project2 is the one you generated and doesn't work.
 
Last edited:

justaplayer69

Member
Nov 29, 2023
166
200
project1 is self edited and works. project2 is the one you generated and doesn't work.
The difference in these two is the same:
Code:
142901c142901
< 			"text": {  },
---
> 			"text": { },
142928c142928
< 			"text": { "ja_JP": "Can you keep a secret?\nI heard from someone that \nyou can not damaged the big machine \nexcept when it's shorting." },
---
> 			"text": { "ja_JP": "Can you keep a secret?\nI heard from someone that \nyou can not damaged the big machine \nexcept when it\'s shorting." },
Here's an idea: try to modify project.json line by line. So
- first replace line 142901 from project1.json and try to run (two spaces instead of one between {})
- put line 142901 back
- next replace line 142928 from project1.json and try to run (replace escaped apostrophe with unescaped one)
- put line 142928 back
- replace both lines, for an extra check (just an additional check to be sure)

This should tell us which of the two differing lines causing the trouble for you. After the third iteration (when you replace both lines), your json should be identical with project.json~, so if the game still doesn't run, then the issue is somewhere else and not in the modified json.

Sorry, I have no better idea than this 3 iteration trial-and-error. Also I don't know why is the game running fine for me, my project.json is identical to the project2.json in your zip (diff shows no difference at all). I assume you have downloaded the game from the same source, so player.exe must be identical, which means we might have some different DLLs maybe? (FYI: I'm running the game through wine, so I'm not using Windows default DLLs, rather the wine built-in ones. Although this shouldn't matter, but simply there's nothing else I could think of.)
 

justaplayer69

Member
Nov 29, 2023
166
200
Minor bugfix version (and now I'll stop with releases for a while, I promise).

Windows: https://attachments.f95zone.to/2024/12/4338095_gameripper-windows.zip
Linux: https://attachments.f95zone.to/2024/12/4338097_gameripper-linux.zip
Source: https://attachments.f95zone.to/2024/12/4338098_gameripper-src.zip
Repo: gitlab.com/gameripper/gameripper

Changlelog:
- Support for 24 bytes long PGMMV keys (some Princess Reconquista releases seems to use 24 bytes keys disguised as a 32 bytes long key)
- Apostrophes are not escaped when PGMMV project.json is written (although I'm not sure this will fix greenjumperj0e's issue, but there's simply nothing else I can do. Works with and without escaping for me, so fine by me.)
 
Mar 20, 2021
46
25
Minor bugfix version (and now I'll stop with releases for a while, I promise).

Windows: https://attachments.f95zone.to/2024/12/4338095_gameripper-windows.zip
Linux: https://attachments.f95zone.to/2024/12/4338097_gameripper-linux.zip
Source: https://attachments.f95zone.to/2024/12/4338098_gameripper-src.zip
Repo: gitlab.com/gameripper/gameripper

Changlelog:
- Support for 24 bytes long PGMMV keys (some Princess Reconquista releases seems to use 24 bytes keys disguised as a 32 bytes long key)
- Apostrophes are not escaped when PGMMV project.json is written (although I'm not sure this will fix greenjumperj0e's issue, but there's simply nothing else I can do. Works with and without escaping for me, so fine by me.)
using this version fixes it
 
  • Like
Reactions: justaplayer69

Hentfreak7

Newbie
Feb 19, 2023
16
7
I am getting the "Out of memory" error.
I tried to understand the Readme file how to fix it but i am a pretty noob in such things.

What am i supposed to do exactly? I never used command line on anything. Also Command Line = Command prompt?
 

justaplayer69

Member
Nov 29, 2023
166
200
I am getting the "Out of memory" error.
What GR version are you using? And what game? Can you please provide an f95zone link to the game? This error should have been solved ever since GR is compiled for 64-bit, however some incorrectly decrypted file sizes might trigger it, so this is probably a game file decoding issue.
I tried to understand the Readme file how to fix it but i am a pretty noob in such things. What am i supposed to do exactly?
Don't overthink it. Just press Win+R, type "(pathto)\gameripper -v" and press Enter.
I never used command line on anything. Also Command Line = Command prompt?
Nope, they are not the same, although both allow specifying command line arguments. Command line is provided by CMD.EXE (or PowerShell or Windows Terminal), while Command Prompt is just a simple runner window that pops up when you press Win+R.

BTW, you don't actually need a command line. Alternatively right click on gameripper.exe, select "Create shortcut". Then right click on the shortcut and select "Properties". A properties window will show up, with a "Target" field in the middle. This target field will have gameripper.exe with full path in quotes. Add " -v" after it (note, there's a space before the hypen, so ...gameripper.exe"(space)-v). Press OK to save the modified shortcut, and after that you can simply click on the shortcut to start GR in verbose mode.
 
  • Like
Reactions: Hentfreak7

Hentfreak7

Newbie
Feb 19, 2023
16
7
What GR version are you using? And what game? Can you please provide an f95zone link to the game? This error should have been solved ever since GR is compiled for 64-bit, however some incorrectly decrypted file sizes might trigger it, so this is probably a game file decoding issue.
Don't overthink it. Just press Win+R, type "(pathto)\gameripper -v" and press Enter.
Nope, they are not the same, although both allow specifying command line arguments. Command line is provided by CMD.EXE (or PowerShell or Windows Terminal), while Command Prompt is just a simple runner window that pops up when you press Win+R.

BTW, you don't actually need a command line. Alternatively right click on gameripper.exe, select "Create shortcut". Then right click on the shortcut and select "Properties". A properties window will show up, with a "Target" field in the middle. This target field will have gameripper.exe with full path in quotes. Add " -v" after it (note, there's a space before the hypen, so ...gameripper.exe"(space)-v). Press OK to save the modified shortcut, and after that you can simply click on the shortcut to start GR in verbose mode.
With Shortcut method still not working.

Game:
[241127][ふらむそふと] プリンセスコロシアム2 [RJ01234994]

from Hentai-Sharing Site:

I drag and drop the "Wolf.Data" file in the tool and i get the memory error. The file is pretty big 1.2gb.
 

justaplayer69

Member
Nov 29, 2023
166
200
With Shortcut method still not working.
It's not supposed to. But now you should have a gameripper.log file with detailed messages that explains exactly what and where went wrong. Can you please attach that log file here?

Game:
[241127][ふらむそふと] プリンセスコロシアム2 [RJ01234994]

from Hentai-Sharing Site:
Ah, that one. I've already told you, I can't download it from there (that site has some shady tracking JavaScript that my firewall blocks, and the page refuses to load without those). Could you upload it to mega, pixeldrain, gofile etc.?

I drag and drop the "Wolf.Data" file in the tool and i get the memory error. The file is pretty big 1.2gb.
That's not particularly too big. But you might also try to replace "-v" with "-vd (gamefolder)" in the shortcut (that won't decode and load everything into memory, rather just decrypts and unpacks one file at a time, without decoding and quits after finished). Also if this is WolfRPG Pro game, then you should use the game's folder, not a file (multiple files required to decrypt Pro games, for simple WolfRPG a file is ok).
 
  • Like
Reactions: Hentfreak7

Hentfreak7

Newbie
Feb 19, 2023
16
7
It's not supposed to. But now you should have a gameripper.log file with detailed messages that explains exactly what and where went wrong. Can you please attach that log file here?

Ah, that one. I've already told you, I can't download it from there (that site has some shady tracking JavaScript that my firewall blocks, and the page refuses to load without those). Could you upload it to mega, pixeldrain, gofile etc.?

That's not particularly too big. But you might also try to replace "-v" with "-vd (gamefolder)" in the shortcut (that won't decode and load everything into memory, rather just decrypts and unpacks one file at a time, without decoding and quits after finished). Also if this is WolfRPG Pro game, then you should use the game's folder, not a file (multiple files required to decrypt Pro games, for simple WolfRPG a file is ok).
Here the Error log:

As for game uploading i am not so comfortable with. Sorry.
 

justaplayer69

Member
Nov 29, 2023
166
200
Here the Error log:

As for game uploading i am not so comfortable with. Sorry.
Thanks! Hmmmm this does not tell. I should add more diverse messages I guess. But I'm sure the file has passed magic checks and the actual issue is with decrypting the file index in the dxArc (probably DARC_HEAD.HeadSize has some unrealistic value, making the allocation fail).

However I suspect that this is a Pro game, so it should have a "Data\Game.wolf" or "Data\Game.data" file as well, could you please attach that (should be a small file)? If nothing else, I might be able to figure out the encryption key from that, and then you can specify the key after pressing F2. No promises though, but I'll try.

EDIT: looks like I've found a translation request here with a pixeldrain url. Can you pls download and confirm if this is the same game you're talking about?
 
Last edited: