step1 start address = 11d0e0
step3 start address = e3220
the characters appear as one mesh but there is submeshes in the file,
i don't know if they are accessories or what though


I've read the tutorial on hex2obj but didn't get the point how exactly to find the address. Even with the addresses you provided, I still don't know why they mark the start of the meshes. Moreover, there's gonna be plenty of work to get all the meshes by hand. Is it possible to write a tool with hex2obj built in to extract them automatically? If only I know what to do about it.AceWell wrote:from g_ad.xbxthe same character in g_ad.ps3 has the same settings except for the start addresses
step1 start address = 11d0e0
step3 start address = e3220
the characters appear as one mesh but there is submeshes in the file,
i don't know if they are accessories or what though

There are about 10 characters here. It will be MORE work to write a tool than to get all the meshes by hand.Bigchillghost wrote:Moreover, there's gonna be plenty of work to get all the meshes by hand. Is it possible to write a tool with hex2obj built in to extract them automatically?


There're still other two games of Ben 10 powered by the same engine that I'd like to get models from.daemon1 wrote:There are about 10 characters here. It will be MORE work to write a tool than to get all the meshes by hand.

Note that its possible in those other games format may be slightly different, and may require 3 different tools. I've seen that many times.Bigchillghost wrote:There're still other two games of Ben 10 powered by the same engine

You're right. They are different, at least the textures no more start at 90 43 40 00. Well, it's getting harder for me thendaemon1 wrote:Note that its possible in those other games format may be slightly different, and may require 3 different tools.

The ways people store their data is very diverse. The only way is to learn how textures may look like, find some patterns inside of data, and then find a way to detect this.Bigchillghost wrote:daemon1 wrote:I have no idea about how to identify the start address of these textures when they're put into one xbx file. How am
I supposed to do that? Is it really pure experience? There should be some reasons, right?

I can compare several dds files to figure out their common characteristics however these characteristics may only shared by the several files I compared. Namely I'm not likely to find out the real dds texture patterns. I really have done some research myself, by comparing dds maps with different sizes, but only find that they do have a 0x80 header like this: And the four bytes of 0x0000000C to 0x0000000D and 0x00000010 to 0x00000011 are the data of their sizes. But that's all I can do I'm afraid.daemon1 wrote:The only way is to learn how textures may look like, find some patterns inside of data, and then find a way to detect this.
when you get helped.
Such tool can be created using this project: viewtopic.php?f=29&t=12756Bigchillghost wrote:Is it possible to write a tool with hex2obj built in to extract them automatically? If only I know what to do about it.

I've read the tutorial again and again and indeed I've learned a little more than before. However I'm still not quite good at this: (Also tried the g_hm.xbx, with similar results)daemon1 wrote:Models are simple 1-mesh models (at least from the first look)
when you get helped.
when you get helped.
This is the code for *.ps3 files (pFBuf: pointer to file buffer):Bigchillghost wrote:But how should I exactly identify the correct start address of the face indices ?
Code: Select all
pFBuf= pTmp ; pFBuf += addr[cnt+1]-24 ; j = addr[cnt+1]-24 ; // use next address [cnt+1]
while (*pFBuf==0){
pFBuf--; j-- ;
}
addrFI = j - 2*dwFaceIndCnt[cnt] ; addrFI++ ;
g_hm.ps3Bigchillghost wrote:

Thanks! Actually I did have tried that startaddr of the face indices, but using a wrong vertices startaddr. Since 4532*44(dec) equals 0x30af0, subtract it from 0x1b3b00 we get 0x183110. Then why should the correct address be 0x182fe0? And I'm still confused about the FVFsize and UV pos. How can I know the vertex block size is 44 bytes and get the correct UV pos? Is that acquired by trial 'n error? Or are there other ways to do that?AceWell wrote: g_hm.ps3![]()
when you get helped.