The Duke Nukem Forever demo is out. I can't even convey how surreal it is to me to be typing those words. But anyway, I've been poking around the demo for the last couple of days, and a new version of Noesis is up now that supports extracting 5 different variants of its included .dat packages.
The picture is of the world's first (well, probably) right and proper DNF content mod, with Duke sporting his brand new Takei Pride tanktop. Noesis spits out all of the info you need to re-inject textures while it's extracting them, and I've already got a fully functional repacker that I intend to release sometime relatively soon. I've also finished hammering out the model format now, and Noesis v3.27 and later can view/export them.
The process of exporting the models is pretty simple, but requires a few steps. Here's a step by step of what you need to do.
1) Using Noesis, extract the contents SkinMshes/defs.dat, SkinMeshes/meshes.dat, and SkinMeshes/skels.def. By default, Noesis will want to extract these to separate folders. You don't want this, and instead you want to extract them all to a single folder. (e.g. "c:\steam\steamapps\common\duke nukem forever demo\SkinMeshes\allfiles")
2) Browse to the .msh of your choice in Noesis and open it.
3) If .skl or .def files cannot be found automatically you will be prompted for them. Additionally, Noesis will attempt to find MegaPackage.dat and TextureDirectory.dat relative to the path of the .msh file. If it cannot, you will be prompted for those files as well.
4) Export and enjoy. Note that materials are still a work in progress, and it can't automatically find the right materials in most cases. But certain models are working. (like Duke and one of the Holsom twins)
I've got model re-import/modification working, but the material situation limits it pretty severely. In the coming days/weeks, I'll be continuing to reverse that data and trying to figure out a reasonable process for replacing/overriding assets that doesn't involve rebuilding all of the game's packages.
Update: I've successfully exported a model to COLLADA, modified it (re-weighted, added and modified geometry, modified the texture), re-exported it to .msh using my in-progress Noesis exporter, and got it to load in the demo. Have a look:
June 16, 2011 at 3:59 am (CST)
Is there a way to get their dat files into proper unreal files ? (u, utx, ukx, usx...)
IP: 86.126.21.67
3dwizard
June 16, 2011 at 3:00 am (CST)
Damn... Thanks for the quick and detailed reply though.
I have another question though.
Do you have any idea how could the game assign which texture will render bullet decals and which one won't?
Is this done from the engine or is there a material property setting somewhere where each texture is part of a material that has it's own sounds, and assigned decals?
There are some textures on the character models that when you shoot you see bullet wound decals on it but when you shoot the main textures of the enemies, no bullet wound decal is being rendered.
So my conclusion is that you can get any texture to render decals on it when you shoot it if you set the material properties or something like that.
It would be good if I could open materials and see/modify their properties.
Do you have any plan for a material editor or material viewer or something similar?
IP: 68.0.165.94
Rich Whitehouse
June 15, 2011 at 7:25 pm (CST)
3dwizard: It's kind of a nightmare to find them manually. You have to find the entry for the .def file for the model in the .dmx files (which are in the megapackage.dat), then look up the dependency chain in the .dmx file to find the shader/material names for the model and the referenced .dtx (also in the megapackage.dat), then load the .dtx and parse out the materials and texture names from that. Then you can finally use the texture names to grab stuff out of the texture directory .dat files.
Those files are also all binary formats, usually strewn with obfuscated Unreal-style encoded values, so trying to find data in them manually with a hex editor is kind of a nightmare. I find the easiest way to find textures manually is just to guess at the filename and search. :)
AesPir: I actually just sent off an e-mail a couple of hours ago. I wouldn't expect a reply for another day or 4.
IP: 184.98.4.60
AesPir
June 15, 2011 at 7:10 pm (CST)
So assuming that you've pinged Gearbox, have they ponged?
IP: 86.126.21.67
3dwizard
June 15, 2011 at 5:51 pm (CST)
Hey Rich! I love your work and love the fact that you are interested in offering the Duke Nukem pc gamer community a start with modding DNF even though Gearbox doesn't seem to care about us.
My question to you is this!
Is there a way to simply finding the textures for various skin meshes?
I wonder how does your app find the right textures for the right skinmesh, so I could also find the textures manually.
I've found a few skinmeshes that don't have any textures and I wanted to look for those textures manually in hope that I might find them.
IP: 74.95.182.65
Cam
June 15, 2011 at 2:24 pm (CST)
No i didnt mean dukem nukem, i meant Avalanche
IP: 72.144.69.156
Snake Plissken
June 15, 2011 at 6:59 am (CST)
im going to sit down and type a big ol thing here to send threw to ya as i am currently working with DNF on the PS3 platform.. i figured its a point alone to type this just to inform you of my actions. with that.., my email is pmwhomevents@aol.com. i hope to do with DNF on the PS3 brining the exsperince to be the next best thing since what we are able to do with doom and GZDOOM. infact i wouldn go so far to say that DNF is the next GZDOOM.
IP: 68.0.165.94
Rich Whitehouse
June 14, 2011 at 10:00 pm (CST)
It should be possible to play as a cloud, yeah, with some modification. You'd probably want to replace all of Duke's one-liners with thunder noises to get the whole experience. You could also play as some shrubbery, a lamp, or a filing cabinet. The possibilities are truly endless.
IP: 69.98.62.224
Cam
June 14, 2011 at 9:04 pm (CST)
Hey rich, is is possible for you to create a version where you play as cloud?
IP: 68.0.165.94
Rich Whitehouse
June 14, 2011 at 7:33 pm (CST)
That one's not encrypted either, it's just binary data. I've heard there are already save editors for the 360 version, so they should be able to support the PC version without much trouble already. If it's different at all, it's probably just the file endianness. I don't have either console version, though, so I couldn't say for sure.
Site design and contents (c) 2009 Rich Whitehouse. Except those contents which happen to be images or screenshots containing shit that is (c) someone/something else entirely. That shit isn't really mine. Fair use though! FAIR USE!
All works on this web site are the result of my own personal efforts, and are not in any way supported by any given company.
You alone are responsible for any damages which you may incur as a result of this web site or files related to this web site.