The Witcher 3: Wild Hunt (.w3speech)

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
w3speech
Posts: 2
Joined: Mon Jun 08, 2015 10:45 pm

The Witcher 3: Wild Hunt (.w3speech)

Post by w3speech »

Does anyone could unpack w3speech files of non-English languages?

First 4 bytes is: CPSW.

For example plpc.w3speech
123185321f
Posts: 1
Joined: Mon Jun 15, 2015 5:08 pm

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by 123185321f »

hi, have you tried http://www.scampers.org/steve/sms/other.htm ?
the w3speech format is a collection of wwise audio files, and the header contains references to the position of where each audio file starts, among other things…

Thanks!
hhrhhr
Posts: 36
Joined: Sun Jan 18, 2015 11:22 pm

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by hhrhhr »

"unpack" is simple, there is example of audio and lipsink data.

text: "Nooooo! I won't stand for it! They done roasted Yagoda! The wazzacks!"
0x000f5bbd.wav — audio
0x000f5bbd.cr2w — lipsync config and data
0x000f5bbd.cr2w.lua — "converted" to readable lua-code

the question is what kind of format/codec?

p.s.
Image
hhrhhr
Posts: 36
Joined: Sun Jan 18, 2015 11:22 pm

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by hhrhhr »

ok, this is AudioKinetic Wwise RIFF Vorbis files.

1) ww2ogg from http://hcs64.com/vgm_ripping.html
2) revorb from http://www.hydrogenaud.io/forums/index. ... opic=64328
3)

Code: Select all

ww2ogg.exe filename.wav --pcb packed_codebooks_aoTuV_603.bin
revorb.exe filename.ogg
w3speech
Posts: 2
Joined: Mon Jun 08, 2015 10:45 pm

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by w3speech »

hhrhhr, thank you, but your script doesn't always work. I found two variations of problem for PL and RU:

1.
\content_pl\content0\plpc.w3speech (314 100 394 bytes)

Code: Select all

key: 0x8349C7A9 ..\lua-5.3_Win32_bin\lua53.exe: .\mod_w3strings.lua:17: attempt
to index a nil value (field '?')
stack traceback:
        .\mod_w3strings.lua:17: in function 'get_key'
        inspect_w3speech.lua:53: in main chunk
        [C]: in ?

\content_pl\content5\plpc.w3speech (537 324 067 bytes)

Code: Select all

key: 0x834994F2 ..\lua-5.3_Win32_bin\lua53.exe: .\mod_w3strings.lua:17: attempt
to index a nil value (field '?')
stack traceback:
        .\mod_w3strings.lua:17: in function 'get_key'
        inspect_w3speech.lua:53: in main chunk
        [C]: in ?

\content_ru\content0\rupc.w3speech (340 495 042 bytes)

Code: Select all

key: 0x634863E2 ..\lua-5.3_Win32_bin\lua53.exe: .\mod_w3strings.lua:17: attempt
to index a nil value (field '?')
stack traceback:
        .\mod_w3strings.lua:17: in function 'get_key'
        inspect_w3speech.lua:53: in main chunk
        [C]: in ?

\content_ru\content5\rupc.w3speech (565 978 214 bytes)

Code: Select all

key: 0x6348C1E1 ..\lua-5.3_Win32_bin\lua53.exe: .\mod_w3strings.lua:17: attempt
to index a nil value (field '?')
stack traceback:
        .\mod_w3strings.lua:17: in function 'get_key'
        inspect_w3speech.lua:53: in main chunk
        [C]: in ?

2.
\content_ru\content4\rupc.w3speech (1 621 114 730 bytes)

Code: Select all

key: 0x63481486 -> magic: 0x42386347 (ru)
sorting 20626 items... OK
saving I:\w3\content_ru\content4\w3speech/0x00026cfe.(wav|cr2w) ... OK



saving I:\w3\content_ru\content4\w3speech/0x0005cb0c.(wav|cr2w) ... OK
saving I:\w3\content_ru\content4\w3speech/0x0005cb14.(wav|cr2w) ... ..\l
ua-5.3_Win32_bin\lua53.exe: inspect_w3speech.lua:82: assertion failed!
stack traceback:
        [C]: in function 'assert'
        inspect_w3speech.lua:82: in main chunk
        [C]: in ?

When an error occurs the script is interrupted. In the first case, the file is not processed. In the second case, only a portion of the file is processed before the error occurred.

Polish file in content4 contains 20060 (total 40120) files, and they are processed successfully, so it's not because of the number of files.

I can't send the files because of their large sizes (it is listed above). You can google hash 896BCEAF9D647D0769496658AC131543A2F84351 and find torrent of language packs... They're packed and occupy a lot of space, but this is the fastest way to get the files if they are needed. if you want to fix your script. I used latest version of Lua assembly, so the problem shouldn't be in it.

inspect_w3speech.lua:52-54:

Code: Select all

 
local magic, lang = get_key(key)
io.write(string.format("-> magic: 0x%08X (%s)\n", magic, lang))

inspect_w3speech.lua:81-83:

Code: Select all

    local sz = r:uint32()
    assert(t.wave_size == sz + 12)
    data = r:str(sz)
hhrhhr
Posts: 36
Joined: Sun Jan 18, 2015 11:22 pm

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by hhrhhr »

the problem is the implementation of a function bit6(), i'm working on it.
hhrhhr
Posts: 36
Joined: Sun Jan 18, 2015 11:22 pm

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by hhrhhr »

fixed (i hate this bit6...). i unpacked without errors all available .w3speech for RU, PL and EN.
lovehate
Posts: 1
Joined: Tue Jun 23, 2015 8:21 pm

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by lovehate »

hhrhhr wrote:fixed (i hate this bit6...). i unpacked without errors all available .w3speech for RU, PL and EN.

It works, thanks
I suppose that for now we can't pack it back to w3speech?
hhrhhr
Posts: 36
Joined: Sun Jan 18, 2015 11:22 pm

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by hhrhhr »

"we" do not see the need.
ex_audio
Posts: 7
Joined: Fri Jul 03, 2015 5:52 am

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by ex_audio »

I feel real stupid to ask this question, but ... could you please walk me through on how to extract the audio files? I downloaded all the tools suggested above but can't seem to make them work. I have no idea where to start. There are lots of text files. I clicked on "get_lang.cmb" and I got a screen saying "press any key to start," but nothing happened.
hhrhhr
Posts: 36
Joined: Sun Jan 18, 2015 11:22 pm

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by hhrhhr »

edit "get_lang.cmd" and change:
set w3dir=path_to_game
set outdir=output_directory
ex_audio
Posts: 7
Joined: Fri Jul 03, 2015 5:52 am

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by ex_audio »

It says " 'lua' is not recognized as an internal or external command, operable program or batch file." Sorry, I am a noob on programming and have no idea what this means. By the way, can I only extract English audios?
hhrhhr
Posts: 36
Joined: Sun Jan 18, 2015 11:22 pm

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by hhrhhr »

ex_audio
Posts: 7
Joined: Fri Jul 03, 2015 5:52 am

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by ex_audio »

Thank you.
Last edited by ex_audio on Tue Jul 07, 2015 7:24 pm, edited 2 times in total.
ex_audio
Posts: 7
Joined: Fri Jul 03, 2015 5:52 am

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by ex_audio »

...
Last edited by ex_audio on Tue Jul 07, 2015 7:24 pm, edited 1 time in total.
ex_audio
Posts: 7
Joined: Fri Jul 03, 2015 5:52 am

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by ex_audio »

...
Last edited by ex_audio on Tue Jul 07, 2015 7:23 pm, edited 2 times in total.
ex_audio
Posts: 7
Joined: Fri Jul 03, 2015 5:52 am

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by ex_audio »

...
Last edited by ex_audio on Tue Jul 07, 2015 7:24 pm, edited 1 time in total.
ex_audio
Posts: 7
Joined: Fri Jul 03, 2015 5:52 am

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by ex_audio »

...
ili
Posts: 81
Joined: Wed Sep 17, 2014 2:28 pm

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by ili »

Image
result this missing somethink's ?
Benji Tshi
Posts: 1
Joined: Sat Oct 03, 2015 7:00 am

Re: The Witcher 3: Wild Hunt (.w3speech)

Post by Benji Tshi »

ex_audio wrote:It says " 'lua' is not recognized as an internal or external command, operable program or batch file." Sorry, I am a noob on programming and have no idea what this means. By the way, can I only extract English audios?


I must be a noob too as even reading the page provided by hhrhhr about how to setup Loa didn't really help me. I've no idea how to setyp this piece of software :( Any help would be much appreciated

EDIT : finally, i've been able to compile Lua, however i now get this error from get_lang.cmd : lua: inspect_w3strings.lua:49: unexpected symbol near '<'