Ледяной Феникс
Terrarian
I hope you will solve the problem as soon as possible.
It doesn't produce error logs because the errors are explicitly ignored in the game's code. Instead of crashing with an error message, the game sets the volume to 0.From a dev-side, this is a very difficult fix to work on, because none of us can reproduce it, and it doesn't generally produce error logs. We believe we are aware of the cause and have an experimental fix which will arrive in the next hotfix (which does not have a current release date).
It doesn't produce error logs because the errors are explicitly ignored in the game's code. Instead of crashing with an error message, the game sets the volume to 0.
If you can't reproduce the problem, you can make a diagnostic build that reports audio errors and allow people experiencing the error to test it and report the crash messages. Everywhere audio errors are ignored and volume is set to zero would either be removed or explicitly report the error.
Error suppression should not be required because audio errors should not happen unless something is broken.
If you are one of those "lucky" people who can reliably reproduce the bug, you can try using the patch I made to diagnose the issue.
If the included files are in the same folder as the Terraria.exe (1.4.1.1 steam windows only) you can run patch.bat to produce Terraria_AudioCrash.exe
If you run Terraria_AudioCrash.exe from the Terraria folder (you need to open steam first) when the audio system fails the game should hopefully crash with a useful error message. The patch fixes nothing, it just tries to make sure you get a useful error message when something goes wrong. If you do get some useful information be sure to report it here.
Sadly I can't say for certain the patch works because my audio has worked perfectly everytime I tested the patch.
Thanks for making my hack useful.I follow these steps and the game gave me this crash message: ...
Thanks for making my hack useful.
The game uses way more memory during loading than it does during the actual game and sometimes ends up running out while trying to load the file that contains music. "Wave Bank.xwb" is a very large file that contains the entirety of the game's music and makes up roughly half of the game's size on disk. It is unsurprising that the game would crash while attempting to load it entirely into memory all at once. Terraria is a 32bit application, so it can crash even if you have more memory physically available in your computer.
Stardew valley also uses the same audio system and has at times suffered from this exact issue.
The random nature of this bug could mean this problem may decrease in occurance instead of being completely fixed if aggressive actions to reduce peak memory usage are not taken.
If someone is desperate for a fix, I could try to make a patch, but what a hack can do is limited and unreliable compared to an official fix that you probably won't have to wait long for.
Okay, I made an attempted fix for you. This fix won't stop trying to load the music until successful. If this does not work, I can try a more invasive hack that recreates the entire audio system after every loading failure.Well, im desperate for it but i really miss the in game music, so it would be really cool if you do that and of course i can test it if you do that.
Okay, I made an attempted fix for you. This fix won't stop trying to load the music until successful. If this does not work, I can try a more invasive hack that recreates the entire audio system after every loading failure.
I'll take a look and see if I can prepare a more aggressive fix. Are you using a 32bit operating system?Well, the game stays on black screen for like 10 minutes and it seems to crash withouth a message (in my case, dunno if somebody already test it)
I'll take a look and see if I can prepare a more aggressive fix. Are you using a 32bit operating system?
I tried reordering the loading of game assets to hopefully give the sound a better chance of getting loaded. Don't wait too long for the game to load, since it will retry forever on a failure.Yup, its a pretty old pc
I tried reordering the loading of game assets to hopefully give the sound a better chance of getting loaded. Don't wait too long for the game to load, since it will retry forever on a failure.
How would you go about patching the game? I can't seem to find anything online, and I really want to be able to listen to the game's music when playing. Thanks in advance.I tried reordering the loading of game assets to hopefully give the sound a better chance of getting loaded. Don't wait too long for the game to load, since it will retry forever on a failure.
I don't have GOG version, but anyone with moderate technical skills can patch it, so you or someone else can make a patch.Same problem on GOG version.
Tried to delete config file. Tried to reinstall the game. No positive result.
PS: Windows XP, 32bit.
Decompillation tools for c#, the language that Terraria uses, are extremely good and not too difficult to use. If you want to recreate the patches I made you only need to download dnSpy. It can modify the game and create a new exe. If you want to redistribute your modified exe you will want to make a patch because it is probably illegal to redistribute the full game executable without permission from Relogic. (I use flips to create bps patches for redistribution.) If you have the GoG version and are able to make good progress on patching the exe but still need a little help, you can PM me and I might be able to help a bit. It would be best to nominate someone with basic programming experience who can do it without any help.How would you go about patching the game? I can't seem to find anything online, and I really want to be able to listen to the game's music when playing. Thanks in advance.
yield return null;
AssetInitializer.LoadAssetsWhileInInitialBlackScreen();
yield return null;
bool doneLoadingMusic = false;
IEnumerator musicLoadProcedure = this.LoadMusic_InSteps();
while (!doneLoadingMusic)
{
...
}
this._musicLoaded = true;
Main.splashTimer.Start();
yield return null;
bool doneLoadingMusic = false;
IEnumerator musicLoadProcedure = this.LoadMusic_InSteps();
while (!doneLoadingMusic)
{
...
}
this._musicLoaded = true;
AssetInitializer.LoadAssetsWhileInInitialBlackScreen();
Main.splashTimer.Start();
Main.soundBank = new SoundBank(Main.engine, "Content\\Sound Bank.xsb");
Main.waveBank = new WaveBank(Main.engine, "Content\\Wave Bank.xwb");
Main.waveBank = new WaveBank(Main.engine, "Content\\Wave Bank.xwb");
Main.soundBank = new SoundBank(Main.engine, "Content\\Sound Bank.xsb");
I have added instructions. The Terraria folder and exe can be found using "browse local files" on steam.How i install the patch?