[RELEASE] wudecon - File/Model Converter for SM1/SM2

OP
OP
LemonHaze

LemonHaze

Server Admin
Administrator
Joined
Dec 25, 2018
Hello everyone,

I'm having issues unpacking tac files.
My goal is to extract textures and resize them with something like NNEDI3.
I use the following command :


D:\wudecon>wudecon.exe --tc "D:\Games\Shenmue\sm1\archives\dx11\data\disk_5b7d8ad1.tac" "D:\EXT"
wudecon v1.0.7023.39908

Oops! D:\Games\Shenmue\sm1\archives\dx11\data\disk_5b7d8ad1.tac failed!
Exception: System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
at System.IO.BinaryReader.FillBuffer(Int32 numBytes)
at System.IO.BinaryReader.ReadUInt32()
at ShenmueDKSharp.Files.Containers.TADEntry.Read(BinaryReader reader) in H:\wudecon\ShenmueDKSharp\Files\Containers\TAD.cs:line 226
at ShenmueDKSharp.Files.Containers.TAD._Read(BinaryReader reader) in H:\wudecon\ShenmueDKSharp\Files\Containers\TAD.cs:line 98
at ShenmueDKSharp.Files.BaseFile.Read(BinaryReader reader) in H:\wudecon\ShenmueDKSharp\Files\BaseFile.cs:line 87
at ShenmueDKSharp.Files.BaseFile.Read(Stream stream) in H:\wudecon\ShenmueDKSharp\Files\BaseFile.cs:line 77
at ShenmueDKSharp.Files.BaseFile.Read(String filepath) in H:\wudecon\ShenmueDKSharp\Files\BaseFile.cs:line 66
at ShenmueDKSharp.Files.Containers.TAD..ctor(String filepath) in H:\wudecon\ShenmueDKSharp\Files\Containers\TAD.cs:line 60
at wudecon.Program.ExtractTAC(String tadFilepath, String folder) in H:\wudecon\wudecon\Program.cs:line 651
Completed 0/0 operations.


I am running an up-to-date Windows 10.
Default .NET package shipped with Windows 10 (I didn't install Visual Studio)

You might want to update the Shenmue install you have to v1.07, because I believe that the latest disk filename is disk_5be2c578.tad.

Secondly, as the usage of the program states:

wudecon --tc **<tad file>** <output dir>

You simply need to run:

wudecon.exe --tc "D:\Games\Shenmue\sm1\archives\dx11\data\disk_5b7d8ad1.tad" "D:\EXT"

Or optionally, to see the filenames being extracted:

wudecon.exe --tcv "D:\Games\Shenmue\sm1\archives\dx11\data\disk_5b7d8ad1.tad" "D:\EXT"
 
Joined
Apr 10, 2019
Thanks LemonHaze !
I updated to v1.07 and still no luck :

D:\wudecon>wudecon.exe --tcv "D:\Games\Shenmue\sm1\archives\dx11\data\disk_5be2c578.tad" "D:\EXT"
wudecon v1.0.7023.39908

Filename database initialized: 68679 entries.
Oops! D:\Games\Shenmue\sm1\archives\dx11\data\disk_5be2c578.tad failed!
Exception: System.NullReferenceException: Object reference not set to an instance of an object.
at ShenmueDKSharp.Files.Containers.TAC.Unpack(Boolean verbose, Boolean raymonf, String folder) in H:\wudecon\ShenmueDKSharp\Files\Containers\TAC.cs:line 66
at wudecon.Program.ExtractTAC(String tadFilepath, String folder) in H:\wudecon\wudecon\Program.cs:line 654
Completed 0/0 operations.


EDIT : oh ok now it's working, I needed to use your latest build in post #14
 
Last edited:
Joined
Apr 10, 2019
Any idea how to open image files ?
Are these dds files ?
I downloaded a DDS viewer and it says "unsupported format"...



I want to find things like jacket textures or face textures.
No idea where they can be stored...
 
Last edited:
Joined
Aug 21, 2018
Location
North Wales, UK
Favourite title
Shenmue
Currently playing
with myself
Converted Textures are in the 'Models' folder (EXT is just the base tad/tac Extraction) They are in the Disk.tad/tac

Those dds should open too , I suggest downloading 'paint.net' its a free image tool

 
Last edited:
Joined
Apr 10, 2019
Thanks a lot guys !

The following command allowed to me extract every texture :
wudecon.exe --tacfullv "D:\Games\Shenmue\sm1\archives\dx11\data\disk_5be2c578.tad" "D:\EXT" "D:\MODELS" mt5

And yes, textures are to be found in the resulting D:\MODELS folder (just scan the folder searching for *.png files).
Now I am trying to figure out how to edit textures and load then back into the game with Forklift
 
Joined
Jun 22, 2019
Location
Brazil
Is it supposed to work with the Dreamcast version of Shenmue 2? I can't covert any MT7 files with it, Shenmue 1 MT5 works fine, but I don't think all maps are in .mt5, since I didn't found all of them, where are the others maps?

Code:
wudecon --mt7 MAP.MT7 01_1000_MAP
wudecon v1.0.7061.27731

Oops! MAP.MT7 failed!
Exception: System.IO.EndOfStreamException: Não é possível ler depois do fim do fluxo.
   em System.IO.BinaryReader.FillBuffer(Int32 numBytes)
   em System.IO.BinaryReader.ReadUInt32()
   em ShenmueDKSharp.Files.Models._MT7.XB01.Read(BinaryReader reader, MT7Node node) na E:\_repo\wudecon\ShenmueDKSharp\Files\Models\_MT7\XB01.cs:linha 87
   em ShenmueDKSharp.Files.Models._MT7.XB01..ctor(BinaryReader reader, MT7Node node) na E:\_repo\wudecon\ShenmueDKSharp\Files\Models\_MT7\XB01.cs:linha 62
   em ShenmueDKSharp.Files.Models.MT7Node..ctor(BinaryReader reader, MT7Node parent) na E:\_repo\wudecon\ShenmueDKSharp\Files\Models\MT7.cs:linha 303
   em ShenmueDKSharp.Files.Models.MT7._Read(BinaryReader reader) na E:\_repo\wudecon\ShenmueDKSharp\Files\Models\MT7.cs:linha 128
   em ShenmueDKSharp.Files.BaseFile.Read(BinaryReader reader) na E:\_repo\wudecon\ShenmueDKSharp\Files\BaseFile.cs:linha 87
   em ShenmueDKSharp.Files.BaseFile.Read(Stream stream) na E:\_repo\wudecon\ShenmueDKSharp\Files\BaseFile.cs:linha 77
   em ShenmueDKSharp.Files.BaseFile.Read(String filepath) na E:\_repo\wudecon\ShenmueDKSharp\Files\BaseFile.cs:linha 66
   em ShenmueDKSharp.Files.Models.MT7..ctor(String filename) na E:\_repo\wudecon\ShenmueDKSharp\Files\Models\MT7.cs:linha 84
   em wudecon.Program.ExportMT7(String path, String objFilepath) na E:\_repo\wudecon\wudecon\Program.cs:linha 209
Completed 1/2 operations.
 
OP
OP
LemonHaze

LemonHaze

Server Admin
Administrator
Joined
Dec 25, 2018
Is it supposed to work with the Dreamcast version of Shenmue 2? I can't covert any MT7 files with it, Shenmue 1 MT5 works fine, but I don't think all maps are in .mt5, since I didn't found all of them, where are the others maps?

Code:
wudecon --mt7 MAP.MT7 01_1000_MAP
wudecon v1.0.7061.27731

Oops! MAP.MT7 failed!
Exception: System.IO.EndOfStreamException: Não é possível ler depois do fim do fluxo.
   em System.IO.BinaryReader.FillBuffer(Int32 numBytes)
   em System.IO.BinaryReader.ReadUInt32()
   em ShenmueDKSharp.Files.Models._MT7.XB01.Read(BinaryReader reader, MT7Node node) na E:\_repo\wudecon\ShenmueDKSharp\Files\Models\_MT7\XB01.cs:linha 87
   em ShenmueDKSharp.Files.Models._MT7.XB01..ctor(BinaryReader reader, MT7Node node) na E:\_repo\wudecon\ShenmueDKSharp\Files\Models\_MT7\XB01.cs:linha 62
   em ShenmueDKSharp.Files.Models.MT7Node..ctor(BinaryReader reader, MT7Node parent) na E:\_repo\wudecon\ShenmueDKSharp\Files\Models\MT7.cs:linha 303
   em ShenmueDKSharp.Files.Models.MT7._Read(BinaryReader reader) na E:\_repo\wudecon\ShenmueDKSharp\Files\Models\MT7.cs:linha 128
   em ShenmueDKSharp.Files.BaseFile.Read(BinaryReader reader) na E:\_repo\wudecon\ShenmueDKSharp\Files\BaseFile.cs:linha 87
   em ShenmueDKSharp.Files.BaseFile.Read(Stream stream) na E:\_repo\wudecon\ShenmueDKSharp\Files\BaseFile.cs:linha 77
   em ShenmueDKSharp.Files.BaseFile.Read(String filepath) na E:\_repo\wudecon\ShenmueDKSharp\Files\BaseFile.cs:linha 66
   em ShenmueDKSharp.Files.Models.MT7..ctor(String filename) na E:\_repo\wudecon\ShenmueDKSharp\Files\Models\MT7.cs:linha 84
   em wudecon.Program.ExportMT7(String path, String objFilepath) na E:\_repo\wudecon\wudecon\Program.cs:linha 209
Completed 1/2 operations.

Exception: System.IO.EndOfStreamException: Não é possível ler depois do fim do fluxo.

You're missing the .OBJ from your command, do this:

wudecon --mt7 MAP.MT7 01_1000_MAP.OBJ

Some maps are contained in either MT5 or MT7 while the rest are inside the mpk00.pkf/pks files within the scene folder for the given area with extensions like MAPM for the main map segments, CHRM and PROPM. You can convert MAPM, CHRM and PROPM using wudecon --mt7 or wudecon --mt5. Try using wudecon --tacfullv to extract and convert everything from within the TAD, there you will find all of the maps converted.
 
Joined
Jun 22, 2019
Location
Brazil
Exception: System.IO.EndOfStreamException: Não é possível ler depois do fim do fluxo.

You're missing the .OBJ from your command, do this:

wudecon --mt7 MAP.MT7 01_1000_MAP.OBJ

Some maps are contained in either MT5 or MT7 while the rest are inside the mpk00.pkf/pks files within the scene folder for the given area with extensions like MAPM for the main map segments, CHRM and PROPM. You can convert MAPM, CHRM and PROPM using wudecon --mt7 or wudecon --mt5. Try using wudecon --tacfullv to extract and convert everything from within the TAD, there you will find all of the maps converted.

No luck.

Code:
wudecon --mt7 MAP.MT7 01_1000_MAP.OBJ
wudecon v1.0.7061.27731

Oops! MAP.MT7 failed!
Exception: System.IO.EndOfStreamException: Não é possível ler depois do fim do fluxo.
   em System.IO.BinaryReader.FillBuffer(Int32 numBytes)
   em System.IO.BinaryReader.ReadUInt32()
   em ShenmueDKSharp.Files.Models._MT7.XB01.Read(BinaryReader reader, MT7Node node) na E:\_repo\wudecon\ShenmueDKSharp\Files\Models\_MT7\XB01.cs:linha 87
   em ShenmueDKSharp.Files.Models._MT7.XB01..ctor(BinaryReader reader, MT7Node node) na E:\_repo\wudecon\ShenmueDKSharp\Files\Models\_MT7\XB01.cs:linha 62
   em ShenmueDKSharp.Files.Models.MT7Node..ctor(BinaryReader reader, MT7Node parent) na E:\_repo\wudecon\ShenmueDKSharp\Files\Models\MT7.cs:linha 303
   em ShenmueDKSharp.Files.Models.MT7._Read(BinaryReader reader) na E:\_repo\wudecon\ShenmueDKSharp\Files\Models\MT7.cs:linha 128
   em ShenmueDKSharp.Files.BaseFile.Read(BinaryReader reader) na E:\_repo\wudecon\ShenmueDKSharp\Files\BaseFile.cs:linha 87
   em ShenmueDKSharp.Files.BaseFile.Read(Stream stream) na E:\_repo\wudecon\ShenmueDKSharp\Files\BaseFile.cs:linha 77
   em ShenmueDKSharp.Files.BaseFile.Read(String filepath) na E:\_repo\wudecon\ShenmueDKSharp\Files\BaseFile.cs:linha 66
   em ShenmueDKSharp.Files.Models.MT7..ctor(String filename) na E:\_repo\wudecon\ShenmueDKSharp\Files\Models\MT7.cs:linha 84
   em wudecon.Program.ExportMT7(String path, String objFilepath) na E:\_repo\wudecon\wudecon\Program.cs:linha 209
Completed 1/2 operations.
 
Joined
Jun 22, 2019
Location
Brazil
Well, I've made a lot of tests, this tool doesn't work for the Dreamcast version of Shenmue 2 and I don't know why. Fortunately, the pc version works great with the tacfull command!
 
OP
OP
LemonHaze

LemonHaze

Server Admin
Administrator
Joined
Dec 25, 2018
Well, I've made a lot of tests, this tool doesn't work for the Dreamcast version of Shenmue 2 and I don't know why. Fortunately, the pc version works great with the tacfull command!

Sorry you're right, at first I didn't realise you were trying to convert a Dreamcast model, I don't think there's going to be support for these models implemented in the SDK just yet, but maybe at some point.
 
Joined
Aug 26, 2020
How can I extract maps from pks/pkf and convert them to obj or any format i can use in blender, when i used --allv it did extract all files and converted only the mt5 to obj. I dont know how to convert the scene maps if there not mt5
 
Top