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

PS3 - Metal Gear Rising Revengeance - WMB format

Post questions about game models here, or help out others!
logansan25
veteran
Posts: 138
Joined: Mon Oct 04, 2010 1:15 am
Has thanked: 5 times
Been thanked: 3 times

Re: PS3 - Metal Gear Rising Revengeance - WMB format

Post by logansan25 »

How i can extract iso from xbox 360? What program?
howfie
double-veteran
double-veteran
Posts: 929
Joined: Fri Jul 08, 2011 12:06 pm
Location: Torrance, CA
Has thanked: 10 times
Been thanked: 274 times

Re: PS3 - Metal Gear Rising Revengeance - WMB format

Post by howfie »

google xbox iso extractor
logansan25
veteran
Posts: 138
Joined: Mon Oct 04, 2010 1:15 am
Has thanked: 5 times
Been thanked: 3 times

Re: PS3 - Metal Gear Rising Revengeance - WMB format

Post by logansan25 »

howfie wrote:google xbox iso extractor
Very nice answer, but i cant extract new isos XDG3.
howfie
double-veteran
double-veteran
Posts: 929
Joined: Fri Jul 08, 2011 12:06 pm
Location: Torrance, CA
Has thanked: 10 times
Been thanked: 274 times

Re: PS3 - Metal Gear Rising Revengeance - WMB format

Post by howfie »

i just googled those exact terms. first link on google, works for me.
logansan25
veteran
Posts: 138
Joined: Mon Oct 04, 2010 1:15 am
Has thanked: 5 times
Been thanked: 3 times

Re: PS3 - Metal Gear Rising Revengeance - WMB format

Post by logansan25 »

howfie wrote:i just googled those exact terms. first link on google, works for me.
Ok...very thanks... i did find now...
logansan25
veteran
Posts: 138
Joined: Mon Oct 04, 2010 1:15 am
Has thanked: 5 times
Been thanked: 3 times

Re: PS3 - Metal Gear Rising Revengeance - WMB format

Post by logansan25 »

How i can take textures from xbox360?
Darko
double-veteran
double-veteran
Posts: 723
Joined: Mon Jul 13, 2009 6:16 pm
Has thanked: 72 times
Been thanked: 138 times

Re: PS3 - Metal Gear Rising Revengeance - WMB format

Post by Darko »

logansan25 wrote:How i can take textures from xbox360?
Mario's Script extracts some xpr. Just use chrrox xpr script for noesis and you're done.
Image
logansan25
veteran
Posts: 138
Joined: Mon Oct 04, 2010 1:15 am
Has thanked: 5 times
Been thanked: 3 times

Re: PS3 - Metal Gear Rising Revengeance - WMB format

Post by logansan25 »

Darko wrote:
logansan25 wrote:How i can take textures from xbox360?
Mario's Script extracts some xpr. Just use chrrox xpr script for noesis and you're done.
Where are this script?
Darko
double-veteran
double-veteran
Posts: 723
Joined: Mon Jul 13, 2009 6:16 pm
Has thanked: 72 times
Been thanked: 138 times

Re: PS3 - Metal Gear Rising Revengeance - WMB format

Post by Darko »

logansan25 wrote:
Darko wrote:
logansan25 wrote:How i can take textures from xbox360?
Mario's Script extracts some xpr. Just use chrrox xpr script for noesis and you're done.
Where are this script?
Here:

viewtopic.php?f=18&t=8102&p=65649&hilit ... ipt#p65649

Using the search tool doesn't harm... Oh well I did the same things here before.
Last edited by Darko on Wed Mar 13, 2013 6:07 pm, edited 1 time in total.
Image
RunaWhite
veteran
Posts: 158
Joined: Sat Jan 07, 2012 2:30 pm
Has thanked: 56 times
Been thanked: 33 times

Re: PS3 - Metal Gear Rising Revengeance - WMB format

Post by RunaWhite »

So, if I understand well, the script mariokart posted works with 360 files, right?
Darko
double-veteran
double-veteran
Posts: 723
Joined: Mon Jul 13, 2009 6:16 pm
Has thanked: 72 times
Been thanked: 138 times

Re: PS3 - Metal Gear Rising Revengeance - WMB format

Post by Darko »

RunaWhite wrote:So, if I understand well, the script mariokart posted works with 360 files, right?
Yep.
Image
RunaWhite
veteran
Posts: 158
Joined: Sat Jan 07, 2012 2:30 pm
Has thanked: 56 times
Been thanked: 33 times

Re: PS3 - Metal Gear Rising Revengeance - WMB format

Post by RunaWhite »

Awesome :D will try them soon!
logansan25
veteran
Posts: 138
Joined: Mon Oct 04, 2010 1:15 am
Has thanked: 5 times
Been thanked: 3 times

Re: PS3 - Metal Gear Rising Revengeance - WMB format

Post by logansan25 »

Darko wrote:
RunaWhite wrote:So, if I understand well, the script mariokart posted works with 360 files, right?
Yep.
Lol... very thanks... :D
mariokart64n
ultra-veteran
ultra-veteran
Posts: 586
Joined: Sun Jun 05, 2005 12:00 pm
Location: Ontario, Canada
Has thanked: 36 times
Been thanked: 243 times

Re: PS3 - Metal Gear Rising Revengeance - WMB format

Post by mariokart64n »

Wanted to read in the skinning info so had another run through the unknown blocks. found the bones, and alot of indexing data. I'm going to assume they are weight tables for the skinning
I'm heading to bed, but I'll try to read in the weights and apply them when I get time later this weekend

Image


also someone asked about PS3 textures, I just trimmed up my xbox360 one and added dds export for any GTF headers

Code: Select all

fsource = "D:\\_3DMODELS\\Ripped\\Metal Gear Rising Revengeance\\data000\\wp\\wp01a0.dat"
fsource = "D:\\_3DMODELS\\Ripped\\Metal Gear Rising Revengeance\\data000\\em\\em0044.dat"
fsource = "D:\\_3DMODELS\\Ripped\\Metal Gear Rising Revengeance\\data000\\pl3005.dat"
fsource = "D:\\_3DMODELS\\Ripped\\Metal Gear Rising Revengeance\\data000\\em\\em0100.dat"
fsource = "D:\\_3DMODELS\\Ripped\\Metal Gear Rising Revengeance\\data000\\em\\em0110.dat"
-- fsource = "D:\\_3DMODELS\\Ripped\\Metal Gear Rising Revengeance\\data000\\wp\\wp0040.dat"
fsource = "D:\\_3DMODELS\\Ripped\\Metal Gear Rising Revengeance\\data000\\em\\em0110.dat"
-- fsource = "D:\\_3DMODELS\\Ripped\\Metal Gear Rising Revengeance\\data000\\em\\em0110.dtt"
fsource = "D:\\_3DMODELS\\Ripped\\Metal Gear Rising Revengeance\\data000\\Mistral\\tx\\em0110.dat"
fsource = "D:\\_3DMODELS\\Ripped\\Metal Gear Rising Revengeance\\data000\\ps3\\em014a.dat"



fsource = GetOpenFileName \
caption:"Select a File" \
types: "All files (*.*)|*.dat|"

delete $*

tristrip = false


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.")
Maxscript and other finished work I've done can be found on my DeviantArt account
howfie
double-veteran
double-veteran
Posts: 929
Joined: Fri Jul 08, 2011 12:06 pm
Location: Torrance, CA
Has thanked: 10 times
Been thanked: 274 times

Re: PS3 - Metal Gear Rising Revengeance - WMB format

Post by howfie »

every time i look at maxscript my eyes go numb ha ha ha ha
Post Reply