nesrak1 / UABEA

c# uabe for newer versions of unity
MIT License
1.22k stars 153 forks source link

Reporting several bugs/problems #270

Closed enarkay closed 1 year ago

enarkay commented 1 year ago

UABEA version : nightly build OS : Windows 10

Problem 1) CANNOT use relative directory paths to install emip patch files I am already aware that you never actually got to finish the emip patch feature, and plan to work on something new and better in the future. Nevertheless, I would still like to ask you if the below problem can be easily fixed for use until something new comes out. Or is this already possible but I'm doing something wrong??

I am planning to distribute 3 things to unzip and add to the game's installation folder for an easy and user-friendly localization patch :

My BAT file script are as below : @echo off

cd /d "%~dp0" "UABEA\UABEAvalonia.exe" applyemip "FtF_EP1_Patch.emip" "%cd%"

pause

The goal of the above setup is for anyone using the patch to only have to run the BAT file for easy installation. However, it seems that while the above method works perfectly if the 'absolute directory path' for the game's installation folder are the same, it does not work if the game's installation directory paths are different.

My initial game installation folder for testing : D:\Steam\steamapps\common\Fears to Fathom - Episode 1 Newly changed game installation folder for testing : E:\SteamLibrary\steamapps\common\Fears to Fathom - Episode 1

Here is the crash log : uabeacrash.log

As you can see in the crash log, UABEA is trying to look for 'level0' in the original game installation folder the emip file was based and created on (D drive). Is there any way I can make UABEA and emip file to use relative directories so that users can use the patch file and the BAT file regardless of their game's installation directory, without having to manually change and assign the game's base folder themselves?

Problem 2-1) CANNOT replace audio/video assets I am fully aware that UABEA does not support replacing audio/video assets at the moment, which is totally understandable. So I used other methods/tools (ex. UnityEX) to replace audio/video assets. However, after successfully changing the audio/video assets, trying to export & import these new audio/video assets in raw types also doesn't seem to work and just breaks the game. Is this normal? Or am I doing something wrong.

Problem 2-2) emip patch messes up audio/video assets modified with other methods/tools For example, if I successfully swapped audio/video assets with other methods/tools, but use UABEA's emip patch feature afterwards to edit other non-audio/non-video assets like MonoBehaviour files, the emip patch still seems to interfere with the previously modified audio/video assets even though they were NOT part of the modified assets in the emip patch file.

As a result, I have to just replace the whole .assets file or the level file if it has audio/video assets for replacements, since emip patch files completely messes with them.

nesrak1 commented 1 year ago

Problem 1: EMIP for assets files should work the same as UABE: there's a path box when you make the EMIP that lets you select the base game path. If you don't provide this, it will use an absolute path instead which is obviously not what you want.

Problem 2: EMIP doesn't work with audio modifications because I never added support for non-assets files, so resS and resource file edits (I'm not sure if UABE 2.2 supported this either, as it never edited those files.) In the case of audio, UnityEX edits the resource file either by overwriting the original data if the new audio data is smaller or appending new data if it's larger. Since emips work off of "replacers" or changes (which are an assets file only thing), and because the edit happened in UnityEX, not UABEA there's no way to know what changed and to include it.

I can support manual file adding, but as I said before, EMIP is half broken and I'm not sure what's worth adding right before I pull support for it anyways.

enarkay commented 1 year ago

@nesrak1 Thank you for the reply! I have some follow-up questions regarding your reply.

Q1) When you say "select the base game path", what situation are you exactly referring to?

[Case A] Are you saying that if I assign the base game path when creating the emip patch file, the emip file will contain a 'relative directory path' information so users can simply run my previously mentioned BAT file to install the emip file regardless of the game's installation folder?

[Case B] Or are you saying that there is no way for my plan to work at the moment (just run the BAT file regardless of the game's installation folder), and users need to manually select and assign the base game folder in the graphical mode of UABEA to install the emip file?

Q2) When you say "right before I pull support", it seems to indicate that new and better method is coming to release soon. Is there a rough estimate as to when this new method/support is coming?

nesrak1 commented 1 year ago

Question 1: Case A.

No base path (emip stores entire path): image

With base path (emip only stores globalgamemanagers): image

Question 2: It's hard to say when I will get to adding the better mod support since I work on this in my free time and uabeanext is taking a lot of that time up. I'd take a guess and say 3 months but it could be longer.

enarkay commented 1 year ago

@nesrak1 Thank you for such a kind and detailed reply, that perfectly answers all my questions.

I've followed your instructions and tested a new emip file with the base folder assigned to confirm that it works flawlessly.

I also look forward to the new big update and wish you everything goes well, not just in terms of the project but in all other aspects of your life :)