Audio file naming gets confused with audio groups
I've heard from people on the Deltarune research discord that Altar.NET confuses sound names and after looking at the code I'm pretty sure they are right.
The problem is with this code from Program.cs:
foreach (var s in f.Sound) if ((s.IsEmbedded || s.IsCompressed) && s.AudioID != -1) infoTable[s.AudioID] = s;
You are not checking the audio group ID in any way, and the IDs overlap between audio groups, i.e. the sound structure is something like this:
snd_sound1: GroupID=0 AudioID=0 snd_sound2: GroupID=0 AudioID=1 snd_sound3: GroupID=1 AudioID=0 snd_sound4: GroupID=1 AudioID=1 snd_sound5: GroupID=0 AudioID=2 snd_sound6: GroupID=1 AudioID=2 snd_sound7: GroupID=1 AudioID=3
When extracting AUDO from data.win, you should be taking only the names with GroupID=0, when extracting from audiogroup1.dat you should be taking the names with GroupID=1 (currently it takes whatever was the last one for data.win and no names at all for audiogroup1.dat)