Leaderboard
Popular Content
Showing content with the highest reputation since 08/02/2025 in Posts
-
2 points
-
Just use this script to extract and import Unity bundles from/to PKG archive https://github.com/bartlomiejduda/Tools/blob/master/NEW Tools/UNITY_TOOLS/Multiple_UnityFS_files_in_one_archive_script.bms There should be 712 unity bundels after extraction. Use UABEA to edit them. Follow this tutorial in case of any troubles https://ikskoks.pl/tutorial-what-is-quickbms-how-to-export-and-import-with-quickbms/2 points
-
2 points
-
public static Byte[] iDecrypt(Byte[] lpBuffer) { Byte bTemp = lpBuffer[lpBuffer.Length - 1]; for (Int32 i = 0; i < lpBuffer.Length; i++) { bTemp = (Byte)(lpBuffer[i] ^ (87 * i + 85)); lpBuffer[i] = (Byte)(bTemp ^ 0xAA); } return lpBuffer; } Just drag and drop those dat files🙂 IKV.DatDecryptor.zip2 points
-
Well so here's everything I know so far. Models are pain. Can't figure out monstrous table which has info about buffer id, vertex count, index count. I output only element buffers. I only know about vertex buffer. At cars they are mostly 8 bytes stride, int16 data type. Not sure what are others buffers. But they have type id. Textures on the other hand are simple. You can get pretty much all of them. I also looked into the sound files. Some are wav, but most of them are unexplored... need some time to research. Also those wav files are named by id which is described in track_table file which is also unexplored yet... So here's bms script. You can use it on any file from *.pack file which you can unpack with 7Zip. And here's Noesis for *.jtex files. from inc_noesis import * import noesis import rapi import os def registerNoesisTypes(): handle = noesis.register("Asphalt 9 Legends - Texture", ".jtex") noesis.setHandlerTypeCheck(handle, noepyCheckType) noesis.setHandlerLoadRGBA(handle, noepyLoadRGBA) noesis.logPopup() return 1 def noepyCheckType(data): bs = NoeBitStream(data) if len(data) < 20: return 0 return 1 def noepyLoadRGBA(data, texList): bs = NoeBitStream(data) baseName = rapi.getExtensionlessName(rapi.getLocalFileName(rapi.getInputName())) TextureWidth = bs.readUShort() TextureHeight = bs.readUShort() bs.read(1) PixelFormat = bs.readUByte() BufferSize = bs.readUInt() data = bs.readBytes(BufferSize) if PixelFormat == 34: print("Pixel Format > BC7 ", PixelFormat) elif PixelFormat == 35: print("Pixel Format > BC6H ", PixelFormat) elif PixelFormat == 36: print("Pixel Format > BC5 ", PixelFormat) elif PixelFormat == 5: print("Pixel Format > RGB8", PixelFormat) elif PixelFormat == 6: print("Pixel Format > RGBA8", PixelFormat) else: print("Unknown Pixel Format > ", PixelFormat) if PixelFormat == 34: data = rapi.imageDecodeDXT(data, TextureWidth, TextureHeight, noesis.FOURCC_BC7) texFmt = noesis.NOESISTEX_RGBA32 elif PixelFormat == 35: data = rapi.imageDecodeDXT(data, TextureWidth, TextureHeight, noesis.FOURCC_BC6H) texFmt = noesis.NOESISTEX_RGBA32 elif PixelFormat == 36: data = rapi.imageDecodeDXT(data, TextureWidth, TextureHeight, noesis.FOURCC_BC5) texFmt = noesis.NOESISTEX_RGBA32 elif PixelFormat == 5: texFmt = noesis.NOESISTEX_RGB24 elif PixelFormat == 6: texFmt = noesis.NOESISTEX_RGBA32 texList.append(NoeTexture(rapi.getInputName(), TextureWidth, TextureHeight, data, texFmt)) return 12 points
-
Yeah, I got things working to extract the files. Just checking some of the other mesh files, seems like some work and some don't. But here's another one I could get something from. I'll have a look at the textures to see if I can do anything with them, although they seem like an unknown format at the moment. Looks like BC1 maybe with some swizzling/tiling.2 points
-
2 points
-
Here's 010 editor template for jtex files. I will write bms for decompress + noesis for preview later... LittleEndian();OutputPaneClear(); local uint32 i,j,k,l,m,n,TotalFileSize=FileSize(); local string FileName=GetFileName(),FilePath=FileNameGetPath(FileName,true),BaseName=FileNameGetBase(FileName,false); struct { ubyte Version; char JTEXSign[4]; uint32 Unknown_0; uint32 Unknown_1; }Header; struct { uint32 TextureTableSize; uint32 TextureInfoSize; uint32 Unknown_0; uint16 Unknown_1; struct { uint16 TextureWidth; uint16 TextureHeight; ubyte Unknown_0; ubyte PixelFormat; ubyte Unknown_1; ubyte Unknown_2; uint16 Unknown_3; ubyte Unknown_4; ubyte MipMap; uint32 Unknown_5; float Unknown_6; float Unknown_7; uint16 TextureWidth_t; uint16 TextureHeight_t; struct { uint32 MipMapTableSize; uint32 MipMapInfoSize; uint32 Unknown_0; uint16 Unknown_1; struct { uint32 MipMapBlockSize; uint32 CompressedSize; // - 8 uint32 DecompressedSize; ubyte CompFlag; ubyte Unknown_1; uint32 Unknown_2; float Unknown_3; if (CompFlag == 0) byte Buffer[DecompressedSize]; else byte ZSDTBuffer[CompressedSize - 8]; }MipMapInfo[MipMap]<optimize=false>; }MipMapTable; }TextureInfo; }TextureTable;2 points
-
2 points
-
Asset Studio can open the files you provide, but some files will crash when they are opened, so you can test several more versions and use the version with the least flashback to open the most files for subsequent processing. But before that, you need to split your pkg file Divide them into block files of multiple unityfs I wrote a python script and you just need to run it python split.py pkg file Output folder If you find it troublesome to run scripts, you can also try a more professional unityfs splitter Attached a few screenshots I ran If the problem is solved, you can mark this reply as a solution split.py2 points
-
A few moths ago, I took a break from the Front Mission games just to poke around the the PS2 entries of Armored Core and made a surprisingly rapid amount of progress on their model file formats. The last hurdle I've been experiencing for most of this time is face formation- meshes are composed of either a triangle list (for FX spawn points) or multiple triangle strips. The strips are a problem as it's not clear where one should end and another should begin. I've tried looking in the model file for a flag but found nothing that stood out, then shifted to studying the verts and UVs in hopes they they contain some sort of "rhythm" to no real success. using UVs or the distance between points to determine face formation still yields "bad" faces. I've poked around a few PS2 topics here and it sounds like this is the best I can hope for but would like a second opinion before going forward. File, meshes, and tmr.7z1 point
-
Not possible to open these files with Asset Studio. They are in a .pkg format but the file still seems to be a normal unity bundle archive. https://www.mediafire.com/file/3jdp3wstro17xhg/SRDM.zip/file1 point
-
1 point
-
It doesn't extract anything from the new file, maybe because the file that i upload here was obsolete? I've attached the new one. Before, I had attached the old one from two years ago from another guy. I'm sure there's some text inside folders called scenes. Game Download link (24 gb) https://exe.playbpsr.com/download/StarLauncher Setup1.0.285.exe m0.rar1 point
-
These files cannot be opened with UABEA or Asset Studio. They are in .pkg format, but the file still appears to be a normal Unity bundle archive. I am only interested in extracting the clean game text so that I can translate it and inject it back in. https://www.mediafire.com/file/3jdp3wstro17xhg/SRDM.zip/file1 point
-
The file format itself isn't too terribly complex it seems? There's seemingly no compression for those files either (at least in the demo). I've written a basic file extractor, it's probably far from perfect though.pac_extract.py1 point
-
Holy crap thank you so much, for the longest I thought it was an archive file. I guess not 😄.1 point
-
Your samples are textures but there are no pointers to textures or palettes. I can see a pattern, it seems like palette is first and then image data and each has a line of 16 bytes like a header. Something like this(in LLOGO.bin): 1st Texture offset 0x00: 10 00 00 00 10 00 00 00 20 00 00 00 00 00 00 00 --16 bytes palette header offset 0x10: Palette --size 400 Hex or 1024 Dec offset 0x410: 00 01 00 00 80 00 00 00 08 00 00 00 00 00 00 00 --16 bytes image data header. 4 bytes Width(100) & 4 bytes Height(80). So 100x80(256x128) offset 0x420: Image data 256x128 2nd texture offset 0x8800: 10 00 00 00 10 00 00 00 20 00 00 00 00 00 00 00 --16 bytes palette header offset 0x8810: Palette --size 400 Hex or 1024 Dec offset 0x8C10: 00 01 00 00 80 00 00 00 08 00 00 00 00 00 00 00 --16 bytes image data header. 4 bytes Width(100) & 4 bytes Height(80) so 100x80(256x128) offset 0x8C20: Image data 256x128 3rd Texture 4th Texture Etc.. Now, IMAGDATA.bin is just one texture but it has several palettes. Image Data offset at 0x1C700. File format is the same but with multiple palettes; Palette header1 Palette1 Palette header2 Palette2 Palette header3 Palette3 Palette header4 Palette4 . . Etc.. Image data header Image data Here is the 1st Texture in LLOGO.bin using Console Texture Explorer:1 point
-
1 point
-
It says, "thanks, I need to know what you did to get atleast something ". I searched for VIF tags,1 point
-
1 point
-
1 point
-
1 point
-
Here's bms for unpacking GAMEDATA.WAD with resource name support pulled out of PS2 game exe. Just make sure that your exe name match bms one and is next to the GAMEDATA.WAD. If not change it in bms on third line > Open FDSE SLES_519.86 1 get BaseFileName basename Open FDSE SLES_519.86 1 # Header Info getdstring Sign 0x4 get TotalFileSize uint32 get Unknown uint32 get ResourceCount uint32 getdstring Align 0x7F0 savepos ResourceTableOffset # Search for resource name table FindLoc FileNameTableOffset string "\x5C\x47\x41\x4D\x45\x44\x41\x54\x41\x2E\x57\x41\x44\x00" 1 goto FileNameTableOffset 1 get MainResourceName string 1 Padding 8 1 for i = 0 < ResourceCount get ResourceName[i] string 1 Padding 8 1 next i goto ResourceTableOffset # Resource Info for i = 0 < ResourceCount get ResourceOffset uint32 get ResourceSize uint32 string Name p "%s%s" BaseFileName ResourceName[i] Log Name ResourceOffset ResourceSize next i1 point
-
There are at least two types of i3d file formats, used within the .i3d files used in ape escape 3 and Rule of Rose uses .i3d files in .mdl files. I3D_BIN: Mesh ✔️ Bones ✔️ Skin ❌ I3D_I3M: Animation ❌ Tools: https://github.com/Durik256/Noesis-Plugins/blob/master/fmt_i3dg.py - Supports meshes. fmt_RuleOfRose_PS2__i3d.zip - Supports bones (made by Bigchillghost from xentax, reuploaded into reshax for quicker accessibility)1 point
-
1 point
-
1 point
-
1 point
-
GT4 doesn't use built-in indices, instead they are generated. Here's the tool i used to export GT 4 cars. https://github.com/Nenkai/GTPS2ModelTool1 point
-
I see you couldn't resist. Yes, time is the limiting factor. (And the meshes and flat landscape were not impressive enough to me but seeing them gathered (and maybe textured) looks quite nice.)1 point
-
The .scb ones seem to be DXT3 format from the few I've tested, although I'm not sure if they all are. There are also several images in each scb file, so it would need a proper script to pull them all out. The .scb files don't seen to store image dimensions, so not sure where they would be, making it tricky to do a proper script. There are other image formats in the .str files, some of which seem to be RGBA. A quick example of 4 images from Net_Feedback_BG.scb, which the game obviously combines into 1 image:1 point
-
I made an attempt at putting all the bits together, doing a bit of manual extraction and some hacked together incomplete script. There's a lot of stuff unidentified in the file and a lot of data to connect the various geometry buffers/textures, etc. It would need a proper amount of time spent on a script to pull out everything correctly. From st00b_ground.mdl - this one has 245 submeshes:1 point
-
1 point
-
Global.str seems to have a SCB header not sure what that means maybe a .scb file or something? but the GOH_Hed.str file is most definetly a audio file of sorts1 point
-
You can extract the pak files with this QuickBMS script. The .str files look like audio data. Models are probably in another archive. pak.zip1 point
-
1 point
-
I Have The 3D Models And The Script And I Can Publish This ;D1 point
-
Thank you so much, brother! You're truly a lifesaver and a hero for sharing the modding tools. I really appreciate your support.1 point
-
Use the python script I've linked to before, or use someone else's splitter tool, if there is no problem, you can mark the previous reply as a solution, I think this reply has solved your problem Your file can be recognized1 point
-
I'm working on a tool to modify existing models or import custom models into Horizon Forbidden West. So far my first test is to fix Aloy's face. I tried a few options, and now I'm sure it will work and looks good, and probably a few mods will be already released soon. Then after import tool is ready, it will be release here on reshax. Here are some example screens. First i reduced her cheeks to 70%, to be sure i can see difference. Since only face shape is changed, you can see the old "fat" shape of peachfuzz (which is not scaled down yet). And then i did 90%1 point
-
I figured it out. In addition to making sure the .blend file is opening with Blender249, I needed to make sure the newGameLib folder from the .zip download is copied and placed in my python folder. Once I did that, Blender did finally open a window for me to select my files. Thanks for all your help!1 point
-
I really don't understand this .mpk file. Is this file the same as the .pak pubg file that can be extracted and find a collection of other files inside?1 point
-
1 point
-
After testing file parsing through regex expressions and finding it to be impractical, I've returned to my earlier approach and completed a finalized converter for Front Mission 4. The models are available here for those interested. FMO is next and will take far less time. FM4 Final Mass Converter.7z1 point
-
It's been a while. I did get through FMO and found the PS2 version is missing some models and plan to take a look at the PC version. I also tried to work on the maps of FM4/FMO since people asked for them and had some success but, much like the wanzers, the maps are subdivided into chunks that are dumped at the origin, making them impossible to work with. Right now, I'm working on identifying what I've dumped and converted from FM5 with the help of this script. Script and Test Files.7z1 point
-
OK, I set up a github repository to host the scripts, hopefully they'll help anyone who's curious about it! https://github.com/ScornMandark/G-SaviourExtract1 point
-
OK It seem all gs images are linear format. They can be converted into bmp directly. So I make a quick and dirty BMS script to do these job. The converting process is a little bit slow so it convert single gs image once at a time! Also 0x02 type (5551 pixel format) is not supported since there are only a few. You can use other program like TextureFinder to convert them. how it works: a. convert gsp into gs (using GSPextract.bms) b. convert gs to bmp (using GS2BMP.bms) there are some batch files to help you running QuickBMS in easy. Just edit the path of the batch files path will work. Extract_GSP_to_GS(Drag_and_Drop_Here).bat and Convert_GS_to_BMP(Drag_and_Drop_Here).bat can be in anywhere and as the name said drop the source file into it will do. if you need batch conversion, place Batch_Convert_GS_to_BMP.bat in the same folder as the gs files are and double click the .bat file G_Scripts2.rar PS: feel free to edit these scripts1 point
-
sorry guys, I'd been too busy in real life and didn't come back here. for GS texture, 0x14 is 8bits indices + 256 color palette, 0x13 is 4bits indices + 16 color palette and 0x02 is 16bits pixel without palette. also after W and H, there is a short value for no. mipmaps. I made two quickbms script to convert md to nj and gs/gsp to tm2 directly. hope it help! :) G_Scripts.rar1 point
ResHax.com: Empowering Curious Minds in the World of Reverse Engineering
Delving into the Art of Code Unraveling: ResHax.com - Your Gateway to the Thrilling World of Reverse Engineering, Where Curiosity Meets Innovation!