Updated version of the script, since I'm a noob. I parsed it wrong, but all the sound effects play properly now:
Copy and paste into txt for QuickBMS. I'd recommend reconverting voices just in case anything went wrong with those ones as well.
Code:
get ARKSIZE asize
get BASENAME basename
do
get SIZE long
get RIFNAME string
set NAME string ""
string NAME p "%s_%s" BASENAME RIFNAME
get TWELVE long
get CODEC short
get CHANNELS short
get FREQUENCY long
get NULL long
get NULL short
get BITS long
savepos OFFSET
callfunction TOWAV
goto SIZE 0 SEEK_CUR
savepos CUR_OFF
while CUR_OFF != ARKSIZE
# Requirements: CODEC, BITS, FREQUENCY, CHANNELS, OFFSET, SIZE and NAME
startfunction TOWAV
set MEMORY_FILE binary "\x52\x49\x46\x46\x00\x00\x00\x00\x57\x41\x56\x45\x66\x6d\x74\x20\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x61\x74\x61\x00\x00\x00\x00"
set RIFFSIZE long SIZE
math RIFFSIZE += 36
set BLOCKALIGN long BITS
set AVGBYTES long FREQUENCY
math BLOCKALIGN /= 8
math BLOCKALIGN *= CHANNELS
math AVGBYTES *= BLOCKALIGN
putvarchr MEMORY_FILE 4 RIFFSIZE long
putvarchr MEMORY_FILE 20 CODEC short # wFormatTag: Microsoft PCM Format (0x0001)
putvarchr MEMORY_FILE 22 CHANNELS short # wChannels
putvarchr MEMORY_FILE 24 FREQUENCY long # dwSamplesPerSec
putvarchr MEMORY_FILE 28 AVGBYTES long # dwAvgBytesPerSec
putvarchr MEMORY_FILE 32 BLOCKALIGN short # wBlockAlign
putvarchr MEMORY_FILE 34 BITS short # wBitsPerSample
putvarchr MEMORY_FILE 40 SIZE long
log MEMORY_FILE2 0 44 MEMORY_FILE
append
log MEMORY_FILE2 OFFSET SIZE
append
get RIFF_SIZE asize MEMORY_FILE2
log NAME 0 RIFF_SIZE MEMORY_FILE2
endfunction
Copy and paste into txt for QuickBMS. I'd recommend reconverting voices just in case anything went wrong with those ones as well.