Tags: Projects

Duke Nukem Forever


Duke Is Totally Takei 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.

Duke modelDuke model
Duke modelDuke model

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.

Also, if you haven't heard yet, you can play the vehicle sequence in first-person. It's much nicer this way.

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:



Wait for the scene with the twins.
Share:


Comments

129 comments in total.
Post a comment

IP: 76.203.201.172

LUBDAR

February 18, 2012 at 10:25 am (CST)
HA!!! I love the new Dick Cam picture.


IP: 184.32.40.90

snake plissken

January 11, 2012 at 2:45 pm (CST)
Presumably, I'm still insane, and no one should be following any links I provide.


IP: 70.249.33.44

LUBDAR

December 28, 2011 at 11:04 am (CST)
Ahh yes, working hard over the holidays...your work is very much appreciated!!


IP: 76.203.195.71

LUBDAR

December 11, 2011 at 3:49 am (CST)
The modified arcade cabinet looks VERY good!!


IP: 76.203.195.71

LUBDAR

November 29, 2011 at 11:39 pm (CST)
soon you'll have you're own arcade...


IP: 71.58.190.78

ukurereh

November 29, 2011 at 6:38 am (CST)
I hear CamStudio is good, though I've never tried it myself.


IP: 68.0.165.94

Rich Whitehouse

November 28, 2011 at 10:32 am (CST)
Sure, that sounds easy enough. Although I've never done any desktop capture before, and will have to find some software that does a good job at it. I can just record the whole process of discerning a new model format or something and edit it up a bit.


IP: 71.58.190.78

ukurereh

November 27, 2011 at 5:38 pm (CST)
If it's not a bother (and if you think it'll be useful), do you think you could do a "MSVC debugger casting for morons" video? Like starting a blank project, making it loading a simple file, then screwing around with the debugger to cast structs and stuff.

i.e. Something the Python folks could use to explore files quickly, even if they don't plan on making the final plugin in C++ (though some C++ knowledge required).


IP: 68.0.165.94

Rich Whitehouse

November 25, 2011 at 11:00 pm (CST)
Yeah, I decided to shove a Python implementation into THAT PROGRAM (I should really remove that from the word filter sometime) during the week before I was set to start at Sony. I had a feeling I'd end up working with Python a lot based on what I'd seen/heard of their pipeline, and it turned out I was quite right. So it was nice to already be fluent and fairly aware of good Python practices (and of the terrible things it does under the hood with its memory management and data types) when I started. And THAT PROGRAM got a more accessible scripting interface out of it.

I still personally prefer to work with native binary plugins. Mainly because the MSVC debugger can't be beaten. I've considered integrating a real Python debugger into the THAT PROGRAM Python implementation, but that's a good bit of work and I have a feeling that a good chunk of Python coders don't even know what a debugger is anyway. There's also the fact that a Python debugger probably still wouldn't be particularly flexible in terms of looking at memory and casting arbitrary data structures over that memory, which is probably the single most useful property of a debugger in the context of reversing binary formats.


IP: 71.58.190.78

ukurereh

November 24, 2011 at 1:58 am (CST)
Holy crap, when did noepy happen? This is what I get for not keeping up with the times. I think I'm lazier when it comes to 3D stuff than... um... finishing sentences :/


Comment Pages:
Previous ... 1 [2] 3 4 5 6 7 8 9 10 11 12 13 ... Next


Post a comment

Name:


Enter the following (refresh if you can't read it):
Read image


Comment:





2731456 page hits since February 11, 2009.

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.