darkautism / PS3TrophyIsGood

Best ps3 trophy editor ever
MIT License
43 stars 15 forks source link

Not a valid TROPTRNS.DAT #10

Closed Rage4Dayz96 closed 3 years ago

Rage4Dayz96 commented 3 years ago

I'm trying to unlock some trophies for a game, but I'm getting the "Not a valid TROPTRNS.DAT"

jhonathanc commented 3 years ago

I did a PR to fix what is causing this issue. But, as TROPTRNS.DAT is already corrupted (the fix I did is to avoid corruption) you will need to copy the trophy set from PS3 again:

This is the PR: https://github.com/darkautism/PS3TrophyIsGood/pull/11

porfidev commented 3 years ago

Nope, this fix doesn't work I just redownload from console, and throws same message, I am using last version of master merged 2 days ago.

commit d72b6a4772ae0431f6ed79313d47487777ff2ed5 (HEAD -> master, origin/master, origin/HEAD) Merge: b478eb0 9684218 Author: kautism darkautism@gmail.com Date: Mon May 10 13:20:14 2021 +0800

Merge pull request #11 from jhonathanc/master

Remove constants from code and, fix a corruption issue on TROPTRNS.DAT when the application is killed.
jhonathanc commented 3 years ago

Nope, this fix doesn't work I just redownload from console, and throws same message, I am using last version of master merged 2 days ago.

commit d72b6a4 (HEAD -> master, origin/master, origin/HEAD) Merge: b478eb0 9684218 Author: kautism darkautism@gmail.com Date: Mon May 10 13:20:14 2021 +0800

Merge pull request #11 from jhonathanc/master

Remove constants from code and, fix a corruption issue on TROPTRNS.DAT when the application is killed.

Could you please try with this version? https://github.com/jhonathanc/PS3TrophyIsGood/releases/download/1.3.7/PS3TrophyIsGood.zip

Let me know if this works.

porfidev commented 3 years ago

Nop, it does not work.

Also I tried previous version 1.3.6 and pops same message.

Same process:

jhonathanc commented 3 years ago

Nop, it does not work.

Also I tried previous version 1.3.6 and pops same message.

Same process:

  • Webman + FTP
  • Enter trophy folder, download to Local
  • Open TrophyIsGood -> Search folder
  • It throws error :(

It's a "new" 1.3.7 version that I compiled (it's not the same from @darkautism tag). I forgot to change the version number... If you used this new version, I'll have to check whats wrong.

porfidev commented 3 years ago

@jhonathanc Attach error message: (from master branch)

'PS3TrophyIsGood.exe' (CLR v2.0.50727: PS3TrophyIsGood.exe): 'C:\Windows\assembly\GAC_MSIL\mscorlib.resources\2.0.0.0_es_b77a5c561934e089\mscorlib.resources.dll' cargado. El módulo se compiló sin símbolos. 'PS3TrophyIsGood.exe' (CLR v2.0.50727: PS3TrophyIsGood.exe): 'C:\Users\elpor\Desktop\git\PS3TrophyIsGood\PS3TrophyIsGood\bin\Debug\ListViewEx.dll' cargado. Símbolos cargados. 'PS3TrophyIsGood.exe' (CLR v2.0.50727: PS3TrophyIsGood.exe): 'C:\Users\elpor\Desktop\git\PS3TrophyIsGood\PS3TrophyIsGood\bin\Debug\TROPHYParser.exe' cargado. Símbolos cargados. 'PS3TrophyIsGood.exe' (CLR v2.0.50727: PS3TrophyIsGood.exe): 'C:\Users\elpor\Desktop\git\PS3TrophyIsGood\PS3TrophyIsGood\bin\Debug\BigEndianTool.dll' cargado. Símbolos cargados. Excepción producida: 'System.Exception' en TROPHYParser.exe at TROPHYParser.TROPTRNS..ctor(String path_in) in C:\Users\elpor\Desktop\git\PS3TrophyIsGood\TROPHYParser\TROPHYParser\TROPTRNS.cs:line 49 at PS3TrophyIsGood.Form1.OpenFile(String path_in) in C:\Users\elpor\Desktop\git\PS3TrophyIsGood\PS3TrophyIsGood\Form1.cs:line 293

If you update changes in any branch I could download , compile and test

jhonathanc commented 3 years ago

@jhonathanc Attach error message: (from master branch)

'PS3TrophyIsGood.exe' (CLR v2.0.50727: PS3TrophyIsGood.exe): 'C:\Windows\assembly\GAC_MSIL\mscorlib.resources\2.0.0.0_es_b77a5c561934e089\mscorlib.resources.dll' cargado. El módulo se compiló sin símbolos. 'PS3TrophyIsGood.exe' (CLR v2.0.50727: PS3TrophyIsGood.exe): 'C:\Users\elpor\Desktop\git\PS3TrophyIsGood\PS3TrophyIsGood\bin\Debug\ListViewEx.dll' cargado. Símbolos cargados. 'PS3TrophyIsGood.exe' (CLR v2.0.50727: PS3TrophyIsGood.exe): 'C:\Users\elpor\Desktop\git\PS3TrophyIsGood\PS3TrophyIsGood\bin\Debug\TROPHYParser.exe' cargado. Símbolos cargados. 'PS3TrophyIsGood.exe' (CLR v2.0.50727: PS3TrophyIsGood.exe): 'C:\Users\elpor\Desktop\git\PS3TrophyIsGood\PS3TrophyIsGood\bin\Debug\BigEndianTool.dll' cargado. Símbolos cargados. Excepción producida: 'System.Exception' en TROPHYParser.exe at TROPHYParser.TROPTRNS..ctor(String path_in) in C:\Users\elpor\Desktop\git\PS3TrophyIsGood\TROPHYParser\TROPHYParser\TROPTRNS.cs:line 49 at PS3TrophyIsGood.Form1.OpenFile(String path_in) in C:\Users\elpor\Desktop\git\PS3TrophyIsGood\PS3TrophyIsGood\Form1.cs:line 293

If you update changes in any branch I could download , compile and test

Understood, you're compiling by yourself :D

Really weird... Because TROPTRNS.DAT was becoming corrupted when it was decrypted and overwrite the original files... It could not corrupt TROPTRNS.DAT anymore. Are you sure you didn't copy a corrupted TROPTRNS.DAT to PS3?

porfidev commented 3 years ago

Nope, I never reupload the corrupted file to PS3. Also I transfer to new folder.

I remember first time I use TrophyIsGood, I just download an DLL library to make it works in windows 10, (I am just a Web DEveloper so these concepts and dependencies are not familiar to me)

Maybe TrophyParser.exeit does not work correctly, but how can I debug and output? (activate a verbose output or something like that)

jhonathanc commented 3 years ago

Nope, I never reupload the corrupted file to PS3. Also I transfer to new folder.

I remember first time I use TrophyIsGood, I just download an DLL library to make it works in windows 10, (I am just a Web DEveloper so these concepts and dependencies are not familiar to me)

Maybe TrophyParser.exeit does not work correctly, but how can I debug and output? (activate a verbose output or something like that)

What game are you trying (title id)? I will check if there is some particular behavior to that. About debug, the best way to check is comparing the MD5 of TROPTRNS.DAT before open that with TrophyIsGood, and after that. If the MD5 of the original file changed, we will know there's something more that can corrupt data. Do you have VS2019? I'm using the community edition, but it's very good to debug...

porfidev commented 3 years ago

Yeah Visual Studio 2019

Trophies tested:

Error on: TROPTRNS.cs line: 43

Header.magic.value = 4472110844815473597

Value is not expected !! (attached image below)

Captura de Pantalla 2021-05-12 a la(s) 12 31 18

jhonathanc commented 3 years ago

Great, I will check this games as soon as possible. I only have Infamous 2, but I think it's enough to try.

jhonathanc commented 3 years ago

About other games you never edited before, the TrophyIsGood also throws this exception?

porfidev commented 3 years ago

Yes sir, I just reinstalled Official Firmware, then I Log in with my account:

Download Infamous 2 (official), Then install Hen, WebManMod ..

Sync trophies with my account, start the game, open again Trophies for register, and last copy trophy folder to VM ( I do not have windows) and thats all.

I do this process before but I delete my old VM.

porfidev commented 3 years ago

Also I have Ps3, Vita, PS4 and PS5 trophies...

maybe on sync the bytes has beed moved.

jhonathanc commented 3 years ago

Also I have Ps3, Vita, PS4 and PS5 trophies...

maybe on sync the bytes has beed moved.

If so, I will not be able to test... probably will need at least some trophy set to test while trying to fix this issue.

I only have a PS3 :(

porfidev commented 3 years ago

Sure I can share these (Silent Hill 3 and Munch Oddisey). (Just downloaded dont modified never at all)

https://www.mediafire.com/file/jksdsbzbtenvcti/NPWR02494_00.7z/file https://www.mediafire.com/file/iznl7xfjy3bn6fj/NPWR03778_00.7z/file

jhonathanc commented 3 years ago

Sure I can share these (Silent Hill 3 and Munch Oddisey). (Just downloaded dont modified never at all)

Great, I already downloaded. If you want, you can delete these files.

But... It worked here... Really weird: image

image

porfidev commented 3 years ago

I Knew it, is about dependencies.

I need a runtime, sdk or similar to make it work, but system did not show any requirement.

jhonathanc commented 3 years ago

I Knew it, is about dependencies.

I need a runtime, sdk or similar to make it work, but system did not show any requirement.

Usually, the VS2019 has all dependencies you need... Do you remember if you have downloaded any external DLL? If so, maybe this is overriding the .Net libraries...

porfidev commented 3 years ago

Nope, is a Clean Installation, It is a Virtual Machine it not used to other things.

pfdtool requires MSVCR100.dll

Captura de Pantalla 2021-05-12 a la(s) 14 18 38

jhonathanc commented 3 years ago

Nope, is a Clean Installation, It is a Virtual Machine it not used to other things.

pfdtool requires MSVCR100.dll

Captura de Pantalla 2021-05-12 a la(s) 14 18 38

https://www.microsoft.com/en-us/download/details.aspx?id=17718

edit: sorry, wrong link.

these are the corrects: http://www.microsoft.com/download/en/details.aspx?id=5555 Microsoft Visual C++ 2010 Redistributable Package (x86)

http://www.microsoft.com/download/en/details.aspx?id=14632 Microsoft Visual C++ 2010 Redistributable Package (x64)

porfidev commented 3 years ago

It works, finally !!!

we need to add the x86 dependency for pfdtool, also it needs add an Exception for Pfdtool in case of failure, that is why all started 👍

jhonathanc commented 3 years ago

But the exception is clear... needs MSVCR100.dll. People uses to download a separate DLL, but sometimes the application needs all the dependencies... I don't think we should add a single DLL if the application needs a complete set of libraries...

Anyway, pfdtool is an external application...

@porfidev Does this exception happens just when pfdtool runs separattely? If yes, I will check how to handle that properly on TrophyIsGood.

darkautism commented 3 years ago

I create a pure install win10 kvm which without install any visual c++ runtime to test this bug. It seems copy MSVCR100.dll into pfdtool folder can resolve.

I create a branch for it. Can you help me to check is it work?

jhonathanc commented 3 years ago

I'm also creating a W10 vm without any visual c++ runtime. But I want to try to get the ExitCode and messages that pfdtool can throws to properly show it to user. I already managed to compile pfdtool, because probably I'll have to change the return code - it always returns 0, even on "handled" exceptions:


    if ((result = parse_config_file(PFDTOOL_CONFIG_GLOBAL, &global_config_handler, NULL)) != 0) {
        if (result < 0)
            printf("[*] Error: Unable to read a global config file.\n");
        else
            printf("[*] Error: Could not parse a global config file (error at line: %d).\n", result);
        return 0;
    }