Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Diablo III .app

Post questions about game models here, or help out others!
User avatar
Wobble
ultra-veteran
ultra-veteran
Posts: 584
Joined: Tue Jan 04, 2005 9:47 pm
Has thanked: 43 times
Been thanked: 112 times

Re: Diablo III .app

Post by Wobble »

[out]
Last edited by Wobble on Sun Mar 12, 2017 12:11 pm, edited 1 time in total.
kalmiya
beginner
Posts: 22
Joined: Sun Mar 23, 2014 5:23 pm
Location: The Neverlands
Has thanked: 1 time
Been thanked: 9 times
Contact:

Re: Diablo III .app

Post by kalmiya »

Found a .bt-script for 010-editor ( interesting application, didn't know it) on diablo3dev.com.

Updated that script to it also works for v260 .app files. Data looks good at first glance, but I only tried with the adria-model, so could be something is off still. Also changed the vertex-format so it matches the one from Taylor Mouse, so at least its clear where the normal and uv's are.

Since that site seems rather inactive, but had a back-link to this thread as the source of information, I thought I'd post the updated one here in case someone finds it useful.
You do not have the required permissions to view the files attached to this post.
User avatar
TaylorMouse
ultra-veteran
ultra-veteran
Posts: 348
Joined: Mon Sep 26, 2011 12:51 pm
Has thanked: 11 times
Been thanked: 89 times

Re: Diablo III .app

Post by TaylorMouse »

Hi guys, I'm working on a model viewer for Diablo, only problem is I don't know how to link the models with the textures :/

Anyone any idea, I know it can be done cause Cain's Aide app does that, but I don't seem to find any info anywhere about the matching ...

Some help would be appreciated

T.
kalmiya
beginner
Posts: 22
Joined: Sun Mar 23, 2014 5:23 pm
Location: The Neverlands
Has thanked: 1 time
Been thanked: 9 times
Contact:

Re: Diablo III .app

Post by kalmiya »

Check the .app file, material-structure. It contains a "TexAnimParams" block with i0 inside.
e.g. For Adria, the first one is 37626.

Check the .tex file, in the header the snoID (offset 16). these id's match.

Regards.
User avatar
Wobble
ultra-veteran
ultra-veteran
Posts: 584
Joined: Tue Jan 04, 2005 9:47 pm
Has thanked: 43 times
Been thanked: 112 times

Re: Diablo III .app

Post by Wobble »

[out]
Last edited by Wobble on Sun Mar 12, 2017 12:11 pm, edited 1 time in total.
User avatar
TaylorMouse
ultra-veteran
ultra-veteran
Posts: 348
Joined: Mon Sep 26, 2011 12:51 pm
Has thanked: 11 times
Been thanked: 89 times

Re: Diablo III .app

Post by TaylorMouse »

thnx kalmiya, I'll try that

the 37626, is that the offset?
and the snoID, you mean I need to check or read all the tex files before I actually find a match ??

hey Wobble, no you don't need to have diablo 3, it works in 2 ways
1. select the top folder where you extracted your model to and it will build up a tree structure with all the models in it
2. select a single model and it loads all the possible models in an array so you can browse thru it using a back and forward button, so that you don't need to select the model from the explorer every time

T.
kalmiya
beginner
Posts: 22
Joined: Sun Mar 23, 2014 5:23 pm
Location: The Neverlands
Has thanked: 1 time
Been thanked: 9 times
Contact:

Re: Diablo III .app

Post by kalmiya »

At offset 16 in the .tex file (=header.snoID) you have the value 37626

If you look in the .app file, check the Material-block and specifically the TextureAnim-whatever-block - in the 4 bytes before the matrix (don't have the code in front of me) you have an i0 value which contains that exact same value. I'd say it's more then a "good guess" that that is the cross-reference you are looking for.

Basically I think that every asset has it's own unique id in the header, and files can reference other files with that id.
Which means you probably don't want to do this each time you start your viewer, but rather let it runs once through all assets and create a dictionary with <snoID, filename> for quick lookup ( probably d3 has such a table somewhere too ).

Question which I still have is if this id is globally unique, or unique per category of assets, i.e.
- can we have a .app with id 1000 and a texture with id 1000
- or would we have a model with id 1000 and a texture with id 1001.
If I would have to guess I would guess it's globally unique, but I didn't verify that since I didn't need it yet.

How far are you with your viewer? and what language?
Do you also intend to animate the models? I'm interested in that and wil probably give it a try myself soon(ish).

Regards
User avatar
TaylorMouse
ultra-veteran
ultra-veteran
Posts: 348
Joined: Mon Sep 26, 2011 12:51 pm
Has thanked: 11 times
Been thanked: 89 times

Re: Diablo III .app

Post by TaylorMouse »

Image

Image

Some sample images from my viewer, with a few models that have an easy find on the dds textures :)

T.
LUBDAR
veteran
Posts: 95
Joined: Wed Jun 08, 2011 7:14 am
Has thanked: 18 times
Been thanked: 9 times

Re: Diablo III .app

Post by LUBDAR »

WHoa!!!
Nice work!!!!
User avatar
TheRealMethuselah
n00b
Posts: 17
Joined: Sat Apr 12, 2014 6:19 pm
Location: Redondo Beach, CA. USA
Has thanked: 10 times
Been thanked: 1 time

Re: Diablo III .app

Post by TheRealMethuselah »

Is there a new version of the d3app2obj.exe that will work with ROS .app files? I've tried to convert with no luck.

I wanted to make more Wanted Posters & Wallpapers

http://danielbarras.deviantart.com/art/Diablo-383353031
http://danielbarras.deviantart.com/art/ ... -382784958
http://danielbarras.deviantart.com/art/Beast-383974501
http://danielbarras.deviantart.com/art/ ... -386945096
"I'd love to change the world, but they won't give me the source code."
kalmiya
beginner
Posts: 22
Joined: Sun Mar 23, 2014 5:23 pm
Location: The Neverlands
Has thanked: 1 time
Been thanked: 9 times
Contact:

Re: Diablo III .app

Post by kalmiya »

Here ya go - I extracted the parsing code from my little 3d-engine into a separate executable. It has really basic commandline-parameters and it was only tested it on 2-3 models, but it should be able to convert any reaper-of-soul .app file ( fileformat v260 ), just give it a try.

update: removed attachment, improved version follows a few posts later.
Last edited by kalmiya on Sun Apr 13, 2014 7:36 pm, edited 1 time in total.
User avatar
TheRealMethuselah
n00b
Posts: 17
Joined: Sat Apr 12, 2014 6:19 pm
Location: Redondo Beach, CA. USA
Has thanked: 10 times
Been thanked: 1 time

Re: Diablo III .app

Post by TheRealMethuselah »

Testing now; and a big Thank you.

Some of the models load correctly, others do not.. any help would be appreciated.

Loads Correctly:
Image

Perfect:
Image

Weird:
Image

Adria:
Image


zombie dog is great:
Image

Westmarch hound is crazy:
Image
"I'd love to change the world, but they won't give me the source code."
kalmiya
beginner
Posts: 22
Joined: Sun Mar 23, 2014 5:23 pm
Location: The Neverlands
Has thanked: 1 time
Been thanked: 9 times
Contact:

Re: Diablo III .app

Post by kalmiya »

@TheRealMethuselah: PM'ed you with my contact details.
User avatar
TheRealMethuselah
n00b
Posts: 17
Joined: Sat Apr 12, 2014 6:19 pm
Location: Redondo Beach, CA. USA
Has thanked: 10 times
Been thanked: 1 time

Re: Diablo III .app

Post by TheRealMethuselah »

Thank you for looking into this. I've sent the file.
You do not have the required permissions to view the files attached to this post.
"I'd love to change the world, but they won't give me the source code."
kalmiya
beginner
Posts: 22
Joined: Sun Mar 23, 2014 5:23 pm
Location: The Neverlands
Has thanked: 1 time
Been thanked: 9 times
Contact:

Re: Diablo III .app

Post by kalmiya »

Loading the .obj in blender works - loading it in 3dsmax fails.

1. If you use blender to export from obj to obj and import that in 3dsmax it fails ( so blender does sth comparable to my exporter - would have been great if that worked, then I could have done a simple file-compare to see what's different).
2. If you use blender to export to collada ( dae ) and import that in 3dsmax, it works.
3. If you use blender and merge the two meshes, export that to .obj and import into 3dsmax, it also works.

It looks like 3dsmax doesn't like .obj's with more than 1 part - or at least handles it differently than blender does. So either you use one of the above work-arounds, or we need to figure out if there's some way to get 3dsmax to load multi-mesh .obj's (changing the obj text-export on my part shouldn't take much work - I only need to know what it should look like).
Post Reply