Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

[PS3] DBZ B3HD Model Part .awg

Featured Replies

Solved by NocturnalRhys

  • Supporter

Send more samples. But it looks simple.

Good sign, it doesn't use tri strips

image.png.13c8c38fcce2d501536555c086b17f0f.png

image.png.cde75cc74cd8ab8ef180e072e921dbd8.png

I also figured out name of the game > Dragon Ball Z HD. Can you also provide textures? I don't think that uv's are like that...

Edited by h3x3r

  • Author
  • Localization
11 hours ago, h3x3r said:

Send more samples. But it looks simple.

Good sign, it doesn't use tri strips

image.png.13c8c38fcce2d501536555c086b17f0f.png

image.png.cde75cc74cd8ab8ef180e072e921dbd8.png

I also figured out name of the game > Dragon Ball Z HD. Can you also provide textures? I don't think that uv's are like that...

Hands(Texture ID 14).dds 
In 0x2830 start Model 3D Data

image.thumb.png.a220dea4835e55a5488586a13cc796bb.png
image.thumb.png.f88ec42315359e0f6f4caffd3217b279.png

GOKU.rar A3T GOKu - Textures.rar

  • Author
  • Localization
11 hours ago, h3x3r said:

Send more samples. But it looks simple.

Good sign, it doesn't use tri strips

image.png.13c8c38fcce2d501536555c086b17f0f.png

image.png.cde75cc74cd8ab8ef180e072e921dbd8.png

I also figured out name of the game > Dragon Ball Z HD. Can you also provide textures? I don't think that uv's are like that...

Hands(Texture ID 14).dds 
In 0x2830 start Model 3D Data

image.thumb.png.a220dea4835e55a5488586a13cc796bb.png
image.thumb.png.f88ec42315359e0f6f4caffd3217b279.png





Face Goku.rar

  • Supporter

So the first sample was just part of the file right? Anyway after aplying texturte I am now sure that uv's are fine. They need to be just fliped vertically or texture.

  • Author
  • Localization
14 minutes ago, h3x3r said:

So the first sample was just part of the file right? Anyway after aplying texturte I am now sure that uv's are fine. They need to be just fliped vertically or texture.

the hands i showed from the .awg came from the goku.awo file as well, below i showed a .rar called face.rar which is goku's .awg face, could you provide me with information on how the .awg parts are structured? i know a way to create an awg and add model parts in dbz b3 for ps2, but i still don't know how the .awg model parts work in the ps3 version, if you tell me it would be a great help! so i can try to create an obj to awg converter and insert it into an .awo model

  • Supporter

So you want to know the struct of the #AWG or the whole #AWO?

So here's struct for #AWG, there are still some unparsed data... A lot of unknowns too 😉

//------------------------------------------------
//--- 010 Editor v14.0 Binary Template
//
//      File: 
//   Authors: 
//   Version: 
//   Purpose: 
//  Category: 
// File Mask: 
//  ID Bytes: 
//   History: 
//------------------------------------------------
OutputPaneClear();
BigEndian();
local string FileName=GetFileName(),FilePath=FileNameGetPath(FileName,true),BaseName=FileNameGetBase(FileName,false);
local uint32 i,j,k,l;

struct
{
    char Sign[4];
    uint32 DataOffset;
    uint32 Unknown_0;
    uint32 Unknown_1;
    uint32 Unknown_2;
    uint32 Unknown_0_Offset;
    uint32 Unknown_3;
    uint32 ShapeNameOffset;
    uint32 Unknown_1_Offset;
    uint32 Unknown_4;
    uint32 VertexBufferOffset;
    uint32 VertexBufferSize;
    uint32 IndexBufferOffset;
    uint32 IndexBufferSize;
    uint32 Unknown_2_Offset;
    uint32 Unknown_5;
}Header;


struct 
{
    FSeek(Header.ShapeNameOffset);
    struct 
    {
        string ShapeName;
    }Name;
    
    
    struct 
    {
        FSeek(Header.Unknown_1_Offset);
        struct
        {
            float Unknown_0[8];
            uint32 Unknown_1;
            uint32 Unknown_2;
            uint32 Unknown_3;
            uint32 Unknown_4;
            uint32 Unknown_5;
            uint32 Unknown_6;
            uint32 Unknown_7;
            uint32 Unknown_8;
            uint32 Unknown_9;
            uint32 Unknown_10;
            
        }Info;
        
        FSeek(Header.Unknown_0_Offset);
        float Unknown_0[12];
        ubyte Unknown_1;
        ubyte Unknown_2;
        ubyte Unknown_3;
        ubyte Unknown_4;
        uint32 TypeInfoOffset[7];
        
        struct 
        {
            uint32 Type;
            uint32 Offset;
        }TypeInfo[Unknown_3];
        
        for (i=0; i < Unknown_3; i++)
        {
            if (TypeInfo[i].Type == 0)
            {
                FSeek(TypeInfo[i].Offset);
                float Unknown[16];
            }
            else
            {
                FSeek(TypeInfo[i].Offset);
                uint32 Unknown_5[4];
                float Unknown_6[6];
                uint32 Unknown_7;
                uint32 Stride;
                uint32 Unknown_8;
                uint32 Unknown_9;
                uint32 Unknown_10;
                uint32 VertexCount;
                uint32 Unknown_11;
                uint32 IndexCount; // *3
                ubyte Unknown_12;
                string MaterialName; // Not sure
                ubyte Unknown_13;
                uint16 Unknown_14;
            }
        }
    }MainInfo;
    
    struct 
    {
        FSeek(Header.VertexBufferOffset);
        struct 
        {
            float PosX,PosY,PosZ;
            float Unknown_0;
            uint32 Unknown_1;
            float VNPosX,VNPosY,VNPosZ;
            uint32 FFFFFFFF;
            float UVPosX,UVPosY;
            //Printf("v %f %f %f\nvt %f %f\nvn %f %f %f\n",PosX,PosY,PosZ,UVPosX,UVPosY,VNPosX,VNPosY,VNPosZ);
        }Vertices[MainInfo.VertexCount]<optimize=false>;

        //Printf("\ng %s_Shape\n",Name.ShapeName);
        FSeek(Header.IndexBufferOffset);
        struct 
        {
            uint16 F1,F2,F3;
            //Printf("f %u/%u/%u %u/%u/%u %u/%u/%u\n",F1+1,F1+1,F1+1,F2+1,F2+1,F2+1,F3+1,F3+1,F3+1);
        }Indices[MainInfo.IndexCount]<optimize=false>;
        //OutputPaneSave(FilePath + Name.ShapeName + ".obj");
    }Buffers;
}Shape;

 

Edited by h3x3r

  • Author
  • Localization
  • Solution
16 hours ago, h3x3r said:

So you want to know the struct of the #AWG or the whole #AWO?

So here's struct for #AWG, there are still some unparsed data... A lot of unknowns too 😉

//------------------------------------------------
//--- 010 Editor v14.0 Binary Template
//
//      File: 
//   Authors: 
//   Version: 
//   Purpose: 
//  Category: 
// File Mask: 
//  ID Bytes: 
//   History: 
//------------------------------------------------
OutputPaneClear();
BigEndian();
local string FileName=GetFileName(),FilePath=FileNameGetPath(FileName,true),BaseName=FileNameGetBase(FileName,false);
local uint32 i,j,k,l;

struct
{
    char Sign[4];
    uint32 DataOffset;
    uint32 Unknown_0;
    uint32 Unknown_1;
    uint32 Unknown_2;
    uint32 Unknown_0_Offset;
    uint32 Unknown_3;
    uint32 ShapeNameOffset;
    uint32 Unknown_1_Offset;
    uint32 Unknown_4;
    uint32 VertexBufferOffset;
    uint32 VertexBufferSize;
    uint32 IndexBufferOffset;
    uint32 IndexBufferSize;
    uint32 Unknown_2_Offset;
    uint32 Unknown_5;
}Header;


struct 
{
    FSeek(Header.ShapeNameOffset);
    struct 
    {
        string ShapeName;
    }Name;
    
    
    struct 
    {
        FSeek(Header.Unknown_1_Offset);
        struct
        {
            float Unknown_0[8];
            uint32 Unknown_1;
            uint32 Unknown_2;
            uint32 Unknown_3;
            uint32 Unknown_4;
            uint32 Unknown_5;
            uint32 Unknown_6;
            uint32 Unknown_7;
            uint32 Unknown_8;
            uint32 Unknown_9;
            uint32 Unknown_10;
            
        }Info;
        
        FSeek(Header.Unknown_0_Offset);
        float Unknown_0[12];
        ubyte Unknown_1;
        ubyte Unknown_2;
        ubyte Unknown_3;
        ubyte Unknown_4;
        uint32 TypeInfoOffset[7];
        
        struct 
        {
            uint32 Type;
            uint32 Offset;
        }TypeInfo[Unknown_3];
        
        for (i=0; i < Unknown_3; i++)
        {
            if (TypeInfo[i].Type == 0)
            {
                FSeek(TypeInfo[i].Offset);
                float Unknown[16];
            }
            else
            {
                FSeek(TypeInfo[i].Offset);
                uint32 Unknown_5[4];
                float Unknown_6[6];
                uint32 Unknown_7;
                uint32 Stride;
                uint32 Unknown_8;
                uint32 Unknown_9;
                uint32 Unknown_10;
                uint32 VertexCount;
                uint32 Unknown_11;
                uint32 IndexCount; // *3
                ubyte Unknown_12;
                string MaterialName; // Not sure
                ubyte Unknown_13;
                uint16 Unknown_14;
            }
        }
    }MainInfo;
    
    struct 
    {
        FSeek(Header.VertexBufferOffset);
        struct 
        {
            float PosX,PosY,PosZ;
            float Unknown_0;
            uint32 Unknown_1;
            float VNPosX,VNPosY,VNPosZ;
            uint32 FFFFFFFF;
            float UVPosX,UVPosY;
            //Printf("v %f %f %f\nvt %f %f\nvn %f %f %f\n",PosX,PosY,PosZ,UVPosX,UVPosY,VNPosX,VNPosY,VNPosZ);
        }Vertices[MainInfo.VertexCount]<optimize=false>;

        //Printf("\ng %s_Shape\n",Name.ShapeName);
        FSeek(Header.IndexBufferOffset);
        struct 
        {
            uint16 F1,F2,F3;
            //Printf("f %u/%u/%u %u/%u/%u %u/%u/%u\n",F1+1,F1+1,F1+1,F2+1,F2+1,F2+1,F3+1,F3+1,F3+1);
        }Indices[MainInfo.IndexCount]<optimize=false>;
        //OutputPaneSave(FilePath + Name.ShapeName + ".obj");
    }Buffers;
}Shape;

 

Thanks! Thank you so much, really. With this I'll be able to make an OBJ to AWG converter. When I have it, I'll share it, although I don't know if many people like the B3HD version, but I'll post it anyway! Thanks in advance for the help, and I'll continue learning more as a researcher.

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.