ROM Hack Translation Corpse Party (2021) Translation and Hacking help

underkappa

New Member
OP
Newbie
Joined
Nov 2, 2021
Messages
2
Trophies
0
Age
25
XP
21
Country
Brazil
1635878513211.png


Hello my fellow CP fans and aspiring translators out there! As you may know, Corpse Party games are not available in latino languages, only English/Japanese/Korean, so I decided to take matters onto my own hands by making my own, just for fun of course.

Corpse Party (2021) is the newest port of Blood Covered Repeated Fear made using the Unity engine, and the most complete way to play the first game with new content added to it. I decided to take a closer look at the PC port, and what it is possible to translate.

After looking closely to the files and modifying some, I noticed that the game DOES support special characters like éáç, however it is most likely being drawn to the screen by some fallback font, since it looks kinda different. No big deal, it doesn't look that out of place.

For some reason there are 4 languages: En, En2, Jp, Ko. En2 is what seems to be used, and En is unused albeit identical. Dialogues from chapters and maplist (with the map names) are in monobehaviour files (they are in text too but weirdly enough it doesn't show up in the game if you modify these), dead list (name tag list), UI, save point list are plain text, and modification shows up in-game.

Here's the weird part: the item names and descriptions. At first glance, they seem to be plain text too, complete with descriptions in all 4 languages the game supports, including the unused one. However editing those doesn't do anything, in fact, you can even delete these files and the game won't notice.

A full day later and I'm still scratching my head, because I can't find these item descriptions anywhere, it's so weird. I tried to search all monobehaviour files one by one once again, nothing. I dumped all images from the game in case they are textures, nothing. I opened every single file in notepad++ and searched for a corresponding string, nothing. This makes me believe they are encoded somewhere, but why only the items and descriptions would be encoded? Doesn't make any sense.

I'm posting this in case someone wants to translate this game too for fun and has the answer or wants to take a closer look at this matter, because as it is, the game can be fully translated except for those item descriptions, which are somewhat important to leave in english.
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
34,334
Trophies
2
Website
trastindustries.com
XP
23,424
Country
United Kingdom
"Hello my fellow CP fans"
*starts sniggering in the corner*

I am not entirely sure what "monobehaviour" is in this context; it is not a term I have ever come across in hacking before.
Anyway two choices at this point for finding your missing files, maybe three depending upon how you look at it.

1) Corruption. Start messing with contents of files and seeing what changes in the game (or what points it crashes -- presumbly a crash follows a file not being there or it being unable to read it properly). Can use a corruption tool/hex editor (which may have the perk of being reversible -- invert things and invert back afterwards if you want) or can swap files around in the game and maybe load up other regions.
2) Tracing. Here you get to debug the game like any other thing; presumably starting with whatever texture lands in RAM with the info on screen in it and working backwards from there. Being PC you have the best possible options for debugging things -- there are some nice console things but nothing that comes close to PC tools like IDA, ghidra, radare2, the various official debuggers, ollydbg might be a bit old at this point but still has some go in it.
2a) Being on a PC then you have things like ofview and whatnot to see what files are being opened at a given point in time and maybe narrow things down that way without getting elbows deep in assembly.
 

underkappa

New Member
OP
Newbie
Joined
Nov 2, 2021
Messages
2
Trophies
0
Age
25
XP
21
Country
Brazil
"Hello my fellow CP fans"
*starts sniggering in the corner*

I am not entirely sure what "monobehaviour" is in this context; it is not a term I have ever come across in hacking before.
Anyway two choices at this point for finding your missing files, maybe three depending upon how you look at it.

1) Corruption. Start messing with contents of files and seeing what changes in the game (or what points it crashes -- presumbly a crash follows a file not being there or it being unable to read it properly). Can use a corruption tool/hex editor (which may have the perk of being reversible -- invert things and invert back afterwards if you want) or can swap files around in the game and maybe load up other regions.
2) Tracing. Here you get to debug the game like any other thing; presumably starting with whatever texture lands in RAM with the info on screen in it and working backwards from there. Being PC you have the best possible options for debugging things -- there are some nice console things but nothing that comes close to PC tools like IDA, ghidra, radare2, the various official debuggers, ollydbg might be a bit old at this point but still has some go in it.
2a) Being on a PC then you have things like ofview and whatnot to see what files are being opened at a given point in time and maybe narrow things down that way without getting elbows deep in assembly.

Hey, thanks for the answer!

I'll try to explain what monobehaviour is in my context:

The tool I'm using to tinker with the game is UABE Avalonia (Unity Assets Bundle Extractor Avalonia). You can load '.assets' files and it lists everything inside it as long as it supports the file system for the Unity version.

Among the files, you can find basic file types like audio clips, text assets, textures, you name it. And there is the engine's own files among these: materials, gameobjects, transforms, canvasrenderer, monobehaviour and so on. Those are like prefabs which the game uses in the scene to do tons of stuff, not deep diving onto this since I'm not really a expert.

The monobehaviour I'm looking is like a game object with the strings the game uses to display onto the screen once it is called, and you can use the tool to dump its contents to a .txt file with the tool, no bare metal tinkering required:

1635900678459.png


Anyways, about what you said, I think I might need to use the tracing method and be on lookout for funny stuff on the game's memory, I'll take a look at the debugging tools you mentioned.

Maybe I was looking at the wrong place this entire time? In any case, if I find the answer, I'll post here again to let light shine onto the solution.
 
General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: https://imgur.com/gallery/tzKheJh