1. Skyluker4

    OP Skyluker4 Newbie
    Newcomer

    Joined:
    Jan 14, 2021
    Messages:
    3
    Country:
    United States
    I'm trying to mod Dokapon UP! to get English translations, but I'm running into trouble when I try modding the strings in the game. The game runs on Unity and I've found that all the strings are stored in the StreamingAssets folder as an AssetBundle file paired along with a manifest file. After editing the AssetBundle that contains all of the strings and recompressing it, the game gets stuck at the loading screen. When just extracting and recompressing the Asset Bundle without any modifications, the game runs fine. I'm thinking it may be a checksum problem since the manifest contains a CRC and hashes for the asset file and type tree. However, when deleting these values from the manifest and putting it in the LayeredFS, and running the game with the unmodified AssetBundle, it runs fine. So the hashes and CRC do not need to be part of the manifest in order for it to run, but modifying the strings themselves breaks the game. Is there some sort of verification that needs to be patched or is there a problem with Unity Asset Bundle Extractor that I'm using to mod the game? Any help or resources would be appreciated. Thank you.
     
  2. masagrator

    masagrator The patches guy
    Member

    Joined:
    Oct 14, 2018
    Messages:
    3,793
    Country:
    Poland
    It means that you are editing file with strings in wrong way.
    Unity don't use any hash and control check in retail game by default.

    My guess is that you are not fixing string size value that is stored either before each string or in table at the beginning of file. You can check easily that it's not a issue of checks by changing one byte in any string so size will remain the same. I'm in 99.9% it will run
     
    Last edited by masagrator, Jan 18, 2021
  3. Skyluker4

    OP Skyluker4 Newbie
    Newcomer

    Joined:
    Jan 14, 2021
    Messages:
    3
    Country:
    United States
    Yep. Looks like you're right. The game runs when replacing it with a string of the same length. I'm having trouble finding where the lengths are stored, so I'll have to do some more digging.
     
  4. Skyluker4

    OP Skyluker4 Newbie
    Newcomer

    Joined:
    Jan 14, 2021
    Messages:
    3
    Country:
    United States
    I figured it out. Turns out that it's not the lengths of the strings that were the problem, but editing the raw file from the extractor and importing it truncated the last few bytes of the file. Since the files I was editing were JSON, the last brace was removed and invalidated it. I got it to work by extracting the formatted dumps instead of the raw data to edit.

    So it turns out that it was a weird bug in Unity Asset Bundle Extractor. It happens when importing the raw file it looks like. The edited raw file looks fine, but when re-extracting the edited file from UABE and examining it the closing curly brace is missing.

    So no problem with the string lengths; no other files needed to be changed. Just the method of changing them it turns out.
     
    hippy dave likes this.
  5. masagrator

    masagrator The patches guy
    Member

    Joined:
    Oct 14, 2018
    Messages:
    3,793
    Country:
    Poland
    I recommend UnityEx as UABE is not maintained for over 2 years.

    And you don't need to compress UnityFS again. Unity sccepts also decompressed ones.
     
Draft saved Draft deleted
Loading...

Hide similar threads Similar threads with keywords - Translation, Modding, Switch