ok, i got the idea for the wrong stride to change manually, but you said "its not tristrip", for that, what can i do manually ?
i send you
[QUOTE=Rusty100;39782537]this kind of stuff should be bannable
who comes into the modelling section and goes 'hey dudes i can port this stuff. but none of you can have it or know how to do it.'
show of hands who thinks this shit should be bannable and i'll see what i can do
if you aren't gonna share a port, don't post
[editline]4th March 2013[/editline]
like, it's fair enough to not take requests. but if you've already done something, and you won't share, you're shit.[/QUOTE]
yeah, but if people had been paying attention, like he said, he released his script in the other thread. People are pissed about the fact that he's not handing them things on a silver platter. Even now, he's helping someone who is having trouble using the script. What it comes down to is people being lazy. Wether it being not taking the time to learn this stuff themselves, or not taking the time to read things before going off and whining. I'm two points above being legally retarded and I still manage to learn how to do the things mariokart is doing. What's their excuses?
@thistheend
As guessed the PS3 structures follow suit with the xbox360 files.. the differences you typically see are with geometry and textures.
each console has different pipelines to get the most efficiency out of the GPU
anyways... the WTA holds the offsets for the DTT for extraction
DTT Descriptor in DAT File "PS3"
wta_header {
LONG magic // "WTB"
LONG version // ??? always 1
LONG count
LONG offset_texture_table
LONG offset_size_table
LONG offset_ukn1_table // ? table describes texture format?
LONG offset_ukn2_table // hashes could be for security or maybe lookup
}
wta_texture_offset {
LONG offset_to_texture // +0x00001000
}
wta_texture_size {
LONG size_of_texture
}
.. I can write a maxscript, but maxscript is slow and not for mass extraction. should I bother?
People are upset that he showed models with no intent of handing them out. Which is understandable.
I tried to be levelheaded, but the mindless flaming from others didn't seem to help. I'm just happy mariokart64n didn't just abandon this project, even after the threats he's been getting.
[QUOTE=ILikeSharks;39784227]People are upset that he showed models with no intent of handing them out. Which is understandable.
I tried to be levelheaded, but the mindless flaming from others didn't seem to help. I'm just happy mariokart64n didn't just abandon this project, even after the threats he's been getting.[/QUOTE]
People have been posting [I]threats?[/I]
And yes, I think a lot of folks have overlooked that Mario has posted the script here and in the previous thread, *myself included*. In retrospect, since others know how to export from script, that should be all people need to get the models themselves now, should it not? Afterall, if folks have the means, then they shouldn't need to rely on one individual to get the models now.
[QUOTE=mariokart64n;39781953]
its cute that people want me to rip all the models and post them in a huge pack. but I see this as exploiting me, and also abuse of content. so I would rather not do so, I've provided the script for those that are interested. I feel that is enough.[/QUOTE]
Thats funny, because if i remember correctly, nobody was asking you to do that.
Hell, all me and ninja_nub were asking for really was Gray Fox, which you showed off and showed you had.
Thates [b]1[/b] model.
Stop being stingy.
[editline]3rd March 2013[/editline]
[QUOTE=ILikeSharks;39784227]= I'm just happy mariokart64n didn't just abandon this project, even after the threats he's been getting.[/QUOTE]
Threats?
Thats a bit far.
I've been googling about the GTF format, I'm guessing its a native PS3 format as I'm seeing various game titles being associated with it.
wasn't able to find header structures, but here's a qiucky to get started with
[code]02 01 01 00 00 00 15 80 00 00 00 01 00 00 00 00 00 00 00 80 00 00 15 70 88 07 02 00 00 00 AA E4
00 40 00 40 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00[/code]
[code]gft_header {
LONG magic // "0x02010100" possibly a fourcc
LONG streamsize
LONG ukn01 // always 1?
LONG ukn02 // always 0?
LONG stream_offset
LONG ukn03 // offsets to end of stream?
LONG d3d_format // fourCC, probably describes d3d compression
LONG ukn04 //offset?
SHORT height
SHORT width
SHORT depth
SHORT ukn05 // always 0?
BYTE[88] reserved space
}[/code]
if you have more GTF files please send them my way
DTT Descriptor in DAT File "PS3"
[CODE]
wta_header {
LONG magic // "WTB"
LONG version // ??? always 1
LONG count
LONG offset_texture_table
LONG offset_size_table
LONG offset_ukn1_table // ? table describes texture format?
LONG offset_ukn2_table // hashes could be for security or maybe lookup
}
wta_texture_offset {
LONG offset_to_texture // +0x00001000
}
wta_texture_size {
LONG size_of_texture
}[/CODE]
bms script or.... :rolleyes:
[QUOTE]if you have more GTF files please send them my way [/QUOTE]
ok
hm yes you could do in BMS, i'm not too good with it tho
[QUOTE=mariokart64n;39784888]hm yes you could do in BMS, i'm not too good with it tho[/QUOTE]
please !
[QUOTE=mariokart64n;39773710]But I was only interested in the girls, [Mistral,Courtney,Sunny].. so I'll be focusing my time on those.[/QUOTE]
My main question is WHY. Why are they so interesting to you? Mistral got annihilated in minutes flat in the actual game, and the other two are just supporting characters and don't do much aside from provide dialogue. I can honestly tell you that only a handful of people care about those models. All you're doing is flaunting off your ability to rip the models and becoming easily offended when people get a tiny bit imposing on your work.
Raiden, Metal Gear Ray, Sam, hell even the SENATOR would be 1000x more use of your work, and you could get so much respect from people if you ripped them out, even in unrigged format. But instead you waste your ability on pursuing things that wont have further use aside from maybe an odd screenshot or two.
I don't care if you've ported alot in your time, this just isn't cool at all.
Because thay have tits, i assume.
[QUOTE=AaronM202;39785153]Because thay have tits, i assume.[/QUOTE]
Most likely.
[QUOTE=TurkishPhantom;39785090]My main question is WHY. Why are they so interesting to you? Mistral got annihilated in minutes flat in the actual game, and the other two are just supporting characters and don't do much aside from provide dialogue. I can honestly tell you that only a handful of people care about those models. All you're doing is flaunting off your ability to rip the models and becoming easily offended when people get a tiny bit imposing on your work.
Raiden, Metal Gear Ray, Sam, hell even the SENATOR would be 1000x more use of your work, and you could get so much respect from people if you ripped them out, even in unrigged format. But instead you waste your ability on pursuing things that wont have further use aside from maybe an odd screenshot or two.
I don't care if you've ported alot in your time, this just isn't cool at all.[/QUOTE]
I was never popular in school, guess my uncoolness stems back to my birth :P
@thistheend thanks for the SDK doc, I'm happy to say my original structure is pretty much the same with the official struct. I understand the format, however it doesnt appear the format flags are discussed. I'll add support for the formats that were in the example you gave me.
since I do not know BMS that well I cannot port the code from maxscript. sorry.
I will script it in maxscript and post it shortly
What i dont understand though is, yeah, you're helping with the script, thats cool and all, it'll allow us to get the models, but what would the use be in going through the trouble of getting the models that you already have again? Seems like a buncha extra work that could be avoided on their end, and it would make you look a little better.
At least Gray Fox.
I like Gray Fox.
[QUOTE=AaronM202;39785153]Because thay have tits, i assume.[/QUOTE]
[QUOTE=TurkishPhantom;39785161]Most likely.[/QUOTE]
You guys probably missed the post he made in the previous thread about how he wasn't really interested in doing it unless there were tits in it for him. Also, keep talking shit while he helps someone with the script he wrote so that they can rip the models for you.
[QUOTE=AaronM202;39785245]What i dont understand though is, yeah, you're helping with the script, thats cool and all, it'll allow us to get the models, but what would the use be in going through the trouble of getting the models that you already have again? Seems like a buncha extra work that could be avoided on their end, and it would make you look a little better.
At least Gray Fox.
I like Gray Fox.[/QUOTE]
Teach a man to fish or something like that.
[QUOTE=NCDyson;39785312]
Teach a man to fish or something like that.[/QUOTE]
[QUOTE=AaronM202;39785245]What i dont understand though is, yeah, you're helping with the script, thats cool and all, it'll allow us to get the models, [b]but what would the use be in going through the trouble of getting the models that you already have again? Seems like a buncha extra work that could be avoided on their end, and it would make you look a little better.[/b]
At least Gray Fox.
I like Gray Fox.[/QUOTE]
[editline]3rd March 2013[/editline]
I mean i understand what you're saying, but its a bit more work than necessary.
[QUOTE=NCDyson;39785312]You guys probably missed the post he made in the previous thread about how he wasn't really interested in doing it unless there were tits in it for him. Also, keep talking shit while he helps someone with the script he wrote so that they can rip the models for you.
Teach a man to fish or something like that.[/QUOTE]
I've said what I needed to. I'm not planning on going any further, lest I "offend" him and he leaves.
Guys he's helping us out at this point.
He's willing to help us with sharing his script and even editing it for us.
And eventhough he's doing all of that you're still bitching and moaning about it.
Show some respect or pitch in with ideas or something!
I'd like to get Wolf full body model out of this but you don't hear me bitching and moaning on and on about it. he's working, he's helping so instead of ripping on someone, pitch in and help.
Just my two cent's...
the work here for me didnt goto waste. I've now obtained data on a native PS3 format.. and therefore can reuse this code in future projects :D
Virtually I've gained potential knowledge and skills when dealing with a PS3 format. Which I may need when I get my PS3 fixed and set my sights on thems MGS4 tits
this is just a quick script I've mashed in GTF reading and conversion to dds into the MGRR DAT parser.
least you wont need to hex the DTT
[code]
fsource = GetOpenFileName \
caption:"Select a File" \
types: "All files (*.*)|*.dat|"
fn readBElong fstream = (bit.swapBytes (bit.swapBytes (readlong fstream #unsigned) 1 4) 2 3)
fn readBEshort fstream = (bit.swapBytes (readshort fstream #unsigned) 1 2)
fn readBEtriplet fstream = (((readbyte f #unsigned)*0x00010000)+((readbyte f #unsigned)*0x00000100)+((readbyte f #unsigned)*0x00000001))
fn ReadBEfloat fstream = (
bit.intAsFloat (bit.swapBytes (bit.swapBytes (readlong fstream #unsigned) 1 4) 2 3)
)
fn readBEHalfFloat fstream = (
hf=bit.swapBytes (readshort fstream #unsigned) 1 2
sign = bit.get hf 16
exponent = (bit.shift (bit.and hf (bit.hexasint "7C00")) -10) as integer - 16
fraction = bit.and hf (bit.hexasint "03FF")
if sign==true then sign = 1 else sign = 0
exponentF = exponent + 127
outputAsFloat = bit.or (bit.or (bit.shift fraction 13) \
(bit.shift exponentF 23)) (bit.shift sign 31)
return bit.intasfloat outputasfloat*2)
fn readFixedString bstream fixedLen = (
local str = ""
for i = 1 to fixedLen do (
str += bit.intAsChar (ReadByte bstream #unsigned))
str
)
fn writeBElong fstream num = (
writelong fstream (bit.swapBytes (bit.swapBytes (num) 1 4) 2 3) #unsigned)
fn paddstring len instring = (
instring=instring as string
local str="";if instring.count <=len then(
for i = 1 to (len-instring.count) do(str+="0")
str = (str+instring))else(
for i = 1 to len do(str+="0";str[i]=instring[i]));str
)
fn uppercase instring = (
local upper, lower, outstring
upper="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
lower="abcdefghijklmnopqrstuvwxyz"
outstring=copy instring
for i=1 to outstring.count do (
j=findString lower outstring[i]
if (j != undefined) do outstring[i]=upper[j])
outstring)
fn printblockpos bname badr = (
str=((bit.intAsHex badr)as string)
if str[str.count]=="L" do(str = substring str 1 (str.count-1))
format "% @ 0xDD%\n" bname (paddstring 6 (uppercase str))
)
fn printblockpos bname badr = (
str=((bit.intAsHex badr)as string)
if str[str.count]=="L" do(str = substring str 1 (str.count-1))
format "% @ 0x%\n" bname (paddstring 8 (uppercase str))
)
fn writeDDSheader fstream texW texH texM texC = (
texP=0
writelong fstream 0x20534444 #unsigned -- File ID
writelong fstream 0x7C #unsigned -- Header Size
case of( -- dwFlags
(texC==#DXT1): (writelong fstream 0x00081007 #unsigned;texP=((texW*texH)/0x02))
(texC==#DXT3): (writelong fstream 0x00081007 #unsigned;texP=(texW*texH))
(texC==#DXT5): (writelong fstream 0x00081007 #unsigned;texP=(texW*texH))
(texC==#ATI1): (writelong fstream 0x000A1007 #unsigned;texP=((texW*texH)/0x20))
(texC==#ATI2): (writelong fstream 0x000A1007 #unsigned;texP=(texW*texH))
(texC==#P8): (writelong fstream 0x000A1007 #unsigned;texP=((texW*texH)/0x02))
(texC==#ARGB16): (writelong fstream 0x00081007 #unsigned;texP=(((texW*texH)/0x8)*0x10))
(texC==#ARBG32): (writelong fstream 0x00081007 #unsigned;texP=(((texW*texH)/0x4)*0x10)))
writelong fstream texW #unsigned -- Texture Width
writelong fstream texH #unsigned -- Texture Height
writelong fstream texP #unsigned -- Pitch (#of bytes in a single row across the texture)
writelong fstream 0x00 #unsigned -- Image Depth? Not Used, for Image Volume
writelong fstream texM #unsigned -- Texture MIP Count
for i = 1 to 11 do writelong fstream 0x00 #unsigned -- Reserved Space
writelong fstream 0x20 #unsigned -- Size of PIXEL_FORMAT info, always 32bytes;
case of(
(texC==#DXT1): (writelong fstream 0x04;writelong fstream 0x31545844 #unsigned
writelong s 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte s 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte s 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte s 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte s 0x00;writelong fstream 0x00001000 #unsigned)
(texC==#DXT3): (writelong fstream 0x04;writelong fstream 0x33545844 #unsigned
writelong s 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte s 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte s 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte s 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writelong fstream 0x00001000 #unsigned)
(texC==#DXT5): (writelong fstream 0x04;writelong fstream 0x35545844 #unsigned
writelong fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writelong fstream 0x00001000 #unsigned)
(texC==#ATI1): (writelong fstream 0x04;writelong fstream 0x31495441 #unsigned
writelong fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writelong fstream 0x00401008 #unsigned)
(texC==#ATI2): (writelong fstream 0x04;writelong fstream 0x32495441 #unsigned
writelong fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writelong fstream 0x00401008 #unsigned)
(texC==#P8): (writelong fstream 0x20;writelong fstream 0x20203850 #unsigned
writelong fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writelong fstream 0x00401008 #unsigned)
(texC==#ARGB16): (writelong fstream 0x41;writelong fstream 0x00000000 #unsigned
writelong fstream 0x10;writebyte fstream 0x00;writebyte fstream 0x0F;writebyte fstream 0x00
writebyte fstream 0x00;writebyte fstream 0xF0;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writebyte fstream 0x0F;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0xF0;writebyte fstream 0x00
writebyte fstream 0x00;writelong fstream 0x00001000 #unsigned)
(texC==#ARBG32): (writelong fstream 0x41;writelong fstream 0x00000000 #unsigned
writelong fstream 0x20;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0xFF
writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0xFF;writebyte fstream 0x00
writebyte fstream 0x00;writebyte fstream 0xFF;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00;writebyte fstream 0x00
writebyte fstream 0xFF;writelong fstream 0x00001000 #unsigned))
for i = 1 to 4 do writelong fstream 0x00 #unsigned -- Reserved Space for CAPS
)
fn Get_D3DFORMAT id = (
case id of ( -- replaced a few from offical ones, for backwards compatiblity
0x86: #DXT1
-- 0x53: #DXT3 -- DXT2
-- 0x7A: #DXT3A
-- 0x7D: #DXT3A_1111
0x88: #DXT5
-- 0x7B: #DXT5A
-- 0x71: #ATI2 -- DXN
-- 0x7C: #ATI1 -- CTX1
-- 0x02: #L8
-- 0x44: #R5G6B5
-- 0x45: #R6G5B5
-- 0x43: #X1R5G5B5
-- 0x4F: #A4R4G4B4
-- 0x4F: #X4R4G4B4
-- 0x4A: #A8L8
-- 0x58: #D16
-- 0x5E: #R16F
-- 0x5B: #R16F_EXPAND
-- 0x4C: #UYVY
-- 0x0C: #LE_UYVY
-- 0x4C: #G8R8_G8B8
-- 0x4B: #R8G8_B8G8
-- 0x4B: #YUY2
-- 0x0B: #LE_YUY2
-- 0x86: #A8R8G8B8
-- 0xB6: #A2R10G10B10
-- 0x99: #A16L16
-- 0xB7: #R10G11B11
-- 0xB8: #R11G11B10
-- 0xB7: #W10V11U11
-- 0xB8: #W11V11U10
-- 0x9F: #G16R16F
-- 0x9C: #G16R16F_EXPAND
-- 0xA1: #L32
-- 0xA4: #R32F
-- 0x96: #D24S8
-- 0x97: #D24FS8
-- 0xA1: #D32
-- 0x5A: #A16B16G16R16
-- 0x60: #A16B16G16R16F
-- 0x5D: #A16B16G16R16F_EXPAND
-- 0xA2: #A32L32
-- 0xA5: #G32R32F
-- 0xA3: #A32B32G32R32
-- 0xA6: #A32B32G32R32F
-- 0xBF: #A2B10G10R10F_EDRAM
-- 0x55: #A16B16G16R16_EDRAM
-- 0x06: #LE_X8R8G8B8
-- 0x36: #LE_X2R10G10B10
-- 0x01: #INDEX16
-- 0x06: #INDEX32
-- 0x00: #LE_INDEX16
-- 0x04: #LE_INDEX32
-- 0x08: #VERTEXDATA
-- 0xFF: #UNKNOWN
default: #UNKNOWN
)
)
if (fsource!=undefined) then (
fpath=getFilenamePath fsource
fname=getFilenameFile fsource
fsize=getFileSize fsource
fext=getFilenameType fsource
if ((doesFileExist fsource)==true) then (
clearlistener ()
f = fopen fsource "rb"
struct package_resource (offset,type,name,size,data)
struct model_binary_4 (header,buffer,element,skeleton,ukn10,ukn11,material,ukn12,mesh)
struct model_binary_4_header (magic,ukn01,ukn02,ukn03,ukn04,ukn05,info,ukn06,ukn07,ukn08,ukn09)
struct offset_and_count (offset,count)
datArray = (package_resource \
offset:#() \
type:#() \
name:#() \
size:#() \
data:#())
case (readFixedString f 4) of (
"DAT":(
dat_offsets = #()
dat_01 = readBElong f -- count: files
dat_02 = readBElong f -- offset: offset table
dat_03 = readBElong f -- offset: extension table
dat_04 = readBElong f -- offset: name table
dat_05 = readBElong f -- offset: size table
dat_06 = readBElong f -- offset: ?? unknown data
dat_07 = readBElong f -- Blank? Reserved?
fseek f dat_02 #seek_set
for i = 1 to dat_01 do (datArray.offset[i] = readBElong f)
fseek f dat_03 #seek_set
for i = 1 to dat_01 do (datArray.type[i] = uppercase (readFixedString f 4))
fseek f dat_04 #seek_set;str_len = readBElong f
for i = 1 to dat_01 do (datArray.name[i] = readFixedString f str_len)
fseek f dat_05 #seek_set
for i = 1 to dat_01 do (datArray.size[i] = readBElong f)
for i = 1 to dat_01 do (datArray.data[i] = #())
for d = 1 to dat_01 do (
fseek f datArray.offset[d] #seek_set
case datArray.type[d] of (
"WTA":(
ukn00 = readBElong f -- changes based on platform
ukn01 = readBElong f -- version?
ukn02 = readBElong f -- count
ukn03 = (readBElong f)+datArray.offset[d] -- offset to texture offsets
ukn04 = (readBElong f)+datArray.offset[d] -- offset to texture sizes
ukn05 = (readBElong f)+datArray.offset[d] -- offset to flag data?
ukn06 = (readBElong f)+datArray.offset[d] -- offset to file hashes?
ukn07 = (readBElong f)+datArray.offset[d] -- offset to XPR2 headers
for i = 1 to ukn02 do (
ssource = (fpath+fname+".dtt")
if ((doesFileExist ssource)==true) then (
g = fopen ssource "rb"
s = fopen (fpath+fname+(paddstring 3 (i as string))+".dds") "wb"
fseek f (ukn03+((i-1)*4)) #seek_set;pos = readBElong f
fseek f (ukn04+((i-1)*4)) #seek_set;dumpsize = readBElong f
fseek g (pos+0x1000) #seek_set
-- Configuration of the GTF File Header
-- A GTF file header has the following basic structure.
-- typedef struct {
-- uint32_t Version;
-- uint32_t Size;
-- uint32_t NumTexture;
-- } CellGtfFileHeader;
-- Field Type Description
-- Version uint32_t Version information of the GTF format
-- Size uint32_t Total byte size of textures in file (Does not include sizes of file header and texture attributes)
-- NumTexture uint32_t Number of textures in file
-- Configuration of the GTF Texture Attribute
-- A GTF texture attribute has the following structure.
-- typedef struct {
-- uint32_t Id;
-- uint32_t OffsetToTex;
-- uint32_t TextureSize;
-- CellGcmTexture tex;
-- } CellGtfTextureAttribute;
-- Field Type Description
-- Id uint32_t Identification ID
-- Must be unique within the file
-- OffsetToTex uint32_t Offset from the beginning of the file to the corresponding texture (bytes)
-- TextureSize uint32_t Size of corresponding texture (bytes)
-- tex CellGcmTexture Texture structure defined in libgcm
-- The CellGcmTexturestructure used in texof the 4th field has exactly the same specifications as the CellGcmTexturestructure defined in libgcm.
-- This CellGcmTexturestructure, as of this SDK release, has the following configuration.
-- typedef struct {
-- uint8_t format;
-- uint8_t mipmap;
-- uint8_t dimension;
-- uint8_t cubemap;
-- uint32_t remap;
-- uint16_t width;
-- uint16_t height;
-- uint16_t depth;
-- uint8_t location;
-- uint8_t _padding;
-- uint32_t pitch;
-- uint32_t offset;
-- } CellGcmTexture;
struct gft_header (
magic, -- "0x02010100" Version, possibly a fourcc
streamsize,
num_textures, -- forced to 1? :-P
ukn02, -- always 0?
stream_offset,
ukn03, -- offsets to end of stream?
d3d_format, -- fourCC, probably describes d3d compression
ukn04, --offset?
height,
width,
depth,
ukn05, -- always 0?
null -- reserved space
)
gftArray = (gft_header \
magic:(readBElong g) \
streamsize:(readBElong g) \
num_textures:(readBElong g) \
ukn02:(readBElong g) \
stream_offset:(readBElong g) \
ukn03:(readBElong g) \
d3d_format:([(readbyte g #unsigned),(readbyte g #unsigned),(readbyte g #unsigned),(readbyte g #unsigned)]) \
ukn04:(readBElong g) \ --remap?
height:(readBEshort g) \
width:(readBEshort g) \
depth:(readBEshort g) \
ukn05:(readBEshort g) \
null:#() \
);fseek g 88 #seek_cur
format "%: (% x %) \tFormat:%\n" (paddstring 3 i) (paddstring 4 gftArray.width) (paddstring 4 gftArray.height) gftArray.d3d_format
writeDDSheader s gftArray.width gftArray.height 1 (Get_D3DFORMAT gftArray.d3d_format[1])
for x = 1 to dumpsize do (writebyte s (readbyte g #unsigned) #unsigned)
fclose s
fclose g
)else(messagebox "failed to find relating dtt file")
)
)
default:(printblockpos ("Type Unknown: "+datArray.type[d]) datArray.offset[d])
)
)
)
default:(format "File Unknown: %\n" (magic as string))
)
format "Last Read @ 0x%\n" ((bit.intAsHex(ftell f))as string)
format "Flie Closed: %\n" fname
fclose f
) else (Print "Failed to Locate File")) else (Print "Aborted.")
[/code]
[QUOTE=rensole;39785458]Guys he's helping us out at this point.
He's willing to help us with sharing his script and even editing it for us.
And eventhough he's doing all of that you're still bitching and moaning about it.
Show some respect or pitch in with ideas or something!
I'd like to get Wolf full body model out of this but you don't hear me bitching and moaning on and on about it. he's working, he's helping so instead of ripping on someone, pitch in and help.
Just my two cent's...[/QUOTE]
No i understand that, im just saying he's already extracted a few models with textures, so im just saying, if anything, it'd be less work to release those than get someone to re-extract them.
[editline]3rd March 2013[/editline]
[QUOTE=mariokart64n;39785535]
Virtually I've gained potential knowledge and skills when dealing with a PS3 format. [b]Which I may need when I get my PS3 fixed and set my sights on thems MGS4 tits[/b]
[/QUOTE]
If you do, please, PLEASE for the love of god release the script or the models or something.
Because the last guy who showed he could do that never did and left without a trace, no hints or anything.
I bricked my PS3 trying to flash it with rebug, if anyone has REBUG please send me RAM dumps of MGS4. I'll try to get models!
[QUOTE=mariokart64n;39786281]I bricked my PS3 trying to flash it with rebug[/QUOTE]
Well that sucks.
[QUOTE=mariokart64n;39785535]the work here for me didnt goto waste. I've now obtained data on a native PS3 format.. and therefore can reuse this code in future projects :D
Virtually I've gained potential knowledge and skills when dealing with a PS3 format. Which I may need when I get my PS3 fixed and set my sights on thems MGS4 tits
[/QUOTE]
Would actually be nice to get some MGS4 models. I myself have been hoping for the Laughing Octopus model (for non-sexual poses!) for a long time. I like the idea of her being a main character in a story as her current story almost on some levels resembles Grey Fox a tad. Her and Big Boss would be so frakking sweet :D
Guys, we're not seeing the most important part of obtaining MGS4 models.
High-Quality Psycho-Mantis.
[QUOTE=AaronM202;39786516]Guys, we're not seeing the most important part of obtaining MGS4 models.
High-Quality Psycho-Mantis.[/QUOTE]
Didn't Mantis only appear in cutscenes?
[QUOTE=Doakes;39786546]Didn't Mantis only appear in cutscenes?[/QUOTE]
Yeah, but wasn't there some hype about MGS4 doing all the cutscenes in real time or was that some other game I was thinking about?
So is the focus on MGS4 [I]and[/I] MGR:R models?
I need RAM dumps the disk data is encrypted. we can bypass the security by attacking the games RAM.
I need spare cash to buy a NAND flasher so I can try to convert my PS3 into a DEV unit
However if someone already has a REBUG unit they can just upload the RAM dump, and viola!
Sorry, you need to Log In to post a reply to this thread.