Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 03/26/2025 in all areas

  1. We are thrilled to inform you that we have successfully created a backup copy of all ZenHax data! Posted here on reshax, it includes: - 70590 posts in 13300 topics - 480 bms scripts - 1700 tools There are other backups, but they have disadvantages: - zenhax.com backup is slow and lacks attachments. - archive.org copy includes attachments, but its even slower. Both of them are hard to search and navigate. Now this backup has attachments, its quick and you can easily search it. Stay tuned for more updates! 🎉
    13 points
  2. I'm still looking into the bones, trying to get them working correctly. The ones that don't work correctly yet are the models with over 256 bones, such as the one below. The vertex data only uses bytes for the indices, so it has to remap the bones into smaller groups of 0-255. They could have just used Shorts for the indices and it would have been no problem. Had a bit of success with some bones being remapped correctly, but others still not. It seems like some bones maybe aren't needed, or are used for something else. This is pl036 with some bones being moved correctly.
    13 points
  3. From further investigation, it seems that some meshes use up to 8 bone weights/indices, where others only use 4. It also looks like they're split into 2 groups of 4 in the vertex data - i.e 4 weights/4 indices/2nd set of 4 weights/2nd set of 4 indices. So I'll need to redo the way bones are processed to see if that fixes it.
    9 points
  4. There was A LOT of discussion here that was not related to AC Shadows localization. As a moderator I couldn't allow that, so I've removed all off-topic posts. From now on please post only comments that are directly connected with translation work. Thank you. 🙂
    8 points
  5. Version 1.0.0

    158 downloads

    My old tool for TLOU2 PS4 fixed to work with PC files. Unpack .psarc files with UnPSARC_v2.7, and then you can use any .PAK file with the tool. Use command line, or just drop .PAK file onto the .exe Work same as old tool, described here: https://web.archive.org/web/20230819184855/https://forum.xentax.com/viewtopic.php?t=22580 After extraction, model and skeleton are in separate files. So they must be manually combined to work together. SMD model & skeleton can be just imported separately and then connected in blender. For ascii it will not work, so you have to open model in text editor, remove first line (0), which is bone number, and copy-paste skeleton there instead of that zero. So far tested on models, textures, maps - all looks fine. Animations are probably wrong, i can look into that later.
    6 points
  6. Okay, here's a little bit of an update. I've added support for all the vertex types, and the textures should all load correctly now. I've also included the extra UVs where available, although they're not presently used. The bones are still messed up in a lot of cases, so that still needs some work. The materials also need more work. I've disabled the vertex colours for now as that was messing up a lot of the meshes as well. bleach_rebirth_tmd2.zip
    6 points
  7. I made an importer that import every tmd2 model correctly. it can read models with more than 255 bones, all uv layers, all vertex color layers, tangents, binormals, both sets of normals, etc... https://www.nexusmods.com/bleachrebirthofsouls/mods/63
    5 points
  8. I'm going to update my PS4 tool for this game to support PC remaster. Maybe it will only be some small change.
    5 points
  9. The kamzik123 texted me and I spoke with him and it seems that my view of him was wrong and there was a misunderstanding. He is currently not planning to release his tool until EOL for good reasons. If you wanna translate this game you can get the texts from attached file and send me the translated version to get a forge patch. (still you must prove that you are a creator by sending the link of your old translations) acs_texts.zip
    4 points
  10. These ones? From geomchr006. I think I've just about got the basic mesh format sorted.
    2 points
  11. 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%
    2 points
  12. Mod released: https://www.nexusmods.com/horizonforbiddenwest/mods/113
    2 points
  13. This script should be better handled import struct import zlib import sys from pathlib import Path def parse_index(input_path): index_data = [] current_path = [] with open(input_path, 'rb') as f: f.seek(44) while True: pos = f.tell() entry_type = struct.unpack('<H', f.read(2))[0] name_length = struct.unpack('<H', f.read(2))[0] if entry_type == 1: f.read(24) folder_name = f.read(name_length).decode('latin-1').rstrip('\x00') current_path = [folder_name] elif entry_type == 0: f.read(8) file_size = struct.unpack('<I', f.read(4))[0] uncompressed_size = struct.unpack('<I', f.read(4))[0] f.read(4) offset = struct.unpack('<I', f.read(4))[0] filename = f.read(name_length).decode('latin-1').rstrip('\x00') full_path = '/'.join(current_path + [filename]) index_data.append({ 'path': full_path, 'offset': offset, 'size': file_size, 'uncompressed_size': uncompressed_size }) else: break if f.tell() >= os.path.getsize(input_path): break return index_data def extract_files(input_path, output_dir, index_data): header_patterns = { b'\x04\x00\x00\x00': 8, b'\x08\x00\x00\x00': 12, b'\x0C\x00\x00\x00': 16, b'\x10\x00\x00\x00': 20, b'\x14\x00\x00\x00': 24, b'\x24\x00\x00\x00': 40, b'\x34\x00\x00\x00': 56 } with open(input_path, 'rb') as f: for entry in index_data: print(f"{entry['offset']} {entry['size']} {entry['path']}") output_path = Path(output_dir) / entry['path'] output_path.parent.mkdir(parents=True, exist_ok=True) f.seek(entry['offset']) full_data = f.read(entry['size']) skip_bytes = 0 for pattern, length in header_patterns.items(): if full_data.startswith(pattern): skip_bytes = length break compressed_data = full_data[skip_bytes:] try: decompressed = zlib.decompress(compressed_data) with open(output_path, 'wb') as out: out.write(decompressed) except Exception: pass if __name__ == '__main__': if len(sys.argv) != 3: print("Usage: python jrz.py <input_file> <output_dir>") sys.exit(1) input_file = sys.argv[1] output_dir = sys.argv[2] import os index_data = parse_index(input_file) extract_files(input_file, output_dir, index_data) jrz.py
    2 points
  14. You don't need to keep asking. If and when there is one, it'll be posted here somewhere.
    2 points
  15. You cen get the same result (and much more!) with ImageHeat https://github.com/bartlomiejduda/ImageHeat
    2 points
  16. This is an introduction section of the forum. Not a good place for posting any samples. If there is a research attempt, then OP should move with this to proper subforum.
    2 points
  17. Any update on the script? 🙂
    2 points
  18. Old Chipicao tool works fine: M3G2FBX.zip M3G2FBX-master.zip
    2 points
  19. MySims - Str Tool [PC / Nintendo Wii] By OAleex Test on Nintendo Wii MySims Str Tool.zip
    2 points
  20. yes, everything is almost same. Models, weights, UVs. Expect the fix soon.
    2 points
  21. yes, i downloaded the game, and format is very close. My PS4 tool even exports skeletons, textures and materials without any changes. Must be some small difference only. Textures are not swizzled of course.
    2 points
  22. I'm still tinkering with it as and when I get time, so it's going a bit slow at the moment. The bones are still messed up on a lot of models, and still quite a few texture types that need investigating as to how to use them properly. I think I've sorted all of the different vertex types at least, so the basic models should at least load correctly. I'm not sure about the stages as I don't have any samples of those.
    2 points
  23. They looks like encrypted by the same key. Unity bundles have large, mostly static header and this very helpful in our case: So, if simple XOR is used for encryption, we can try to get key using marked ^ part of header, adapted for Unity version used in game: (not sure in highlighted byte and too lazy to check, but it's better to note and change, if errors occurs) XOR have some interesting features: If you XOR 00 byte with any byte, you get this byte value in place of 00 - so, short keys can be visible with bare eyes if encrypted file have a lots of 00-bytes. If you XOR encrypted file with original one - you'll get <key><key><key> sequence on whole file content. We don't have original file, but we recreated first 35 bytes of it. So, i renamed a copy of game bundle to "s1" and XOR it as new "s1x" file using reconstructed header bytes as key, with XOR tool from Luigi Auriemma: xor s1 s1x 0x556E69747946530000000008352E782E7800323032312E332E39663100000000000000 And got partial <key><key> sequence: So, XOR key is: EA7B2B092B59433996F0B470B7B3FEA7BC0AA57B0208A7314420 Decoding test bundle as "s1t" file with this key: xor s1 s1t 0xEA7B2B092B59433996F0B470B7B3FEA7BC0AA57B0208A7314420 Looks very good ) Drag-and-drop "s1t" file to AssetStudioModGUI, and it loads without issues, so key is valid: Dealing with 36K files in cache isn't easy task, so i done a python script for mass decrypt and save to separate folder: # Mobile Suit Gundam - Iron-Blooded Orphans G bundles unxor import os xor_magic = b"\xBF\x15\x42\x7D" # xor key: EA7B2B092B59433996F0B470B7B3FEA7BC0AA57B0208A7314420 xor_key = bytearray(b"\xea\x7b\x2b\x09\x2b\x59\x43\x39\x96\xf0\xb4\x70\xb7\xb3\xfe\xa7\xbc\x0a\xa5\x7b\x02\x08\xa7\x31\x44\x20") output_path = R"C:\tmp\Cache" with os.scandir('.') as file_paths: for file_path in file_paths: if file_path.is_dir(follow_symlinks=False): pass else: with open(file_path, "rb") as work_file: file_magic = work_file.read(4) if file_magic == xor_magic: print("Processing file:", file_path.name) work_file.seek(0) encrypted_content = work_file.read() encrypted_content_size = len(encrypted_content) decrypted_content = bytearray(encrypted_content_size) xor_key_multiplier = int(encrypted_content_size / 26) + 1 xor_key_array = xor_key * xor_key_multiplier for byte in range(encrypted_content_size): decrypted_content[byte] = encrypted_content[byte] ^ xor_key_array[byte] out_file_name = str(file_path.name) + ".unity3d" write_path = output_path + "\\" + out_file_name os.makedirs(os.path.dirname(write_path), exist_ok=True) open(write_path, "wb").write(decrypted_content) print("Decrypted file saved:", write_path) work_file.close() Must be run inside of "Cache\assets\asset\" folder, and output to temporary folder on disk C (it's SSD usualy, to speed up things). But there's other problem occur - that cache folder taken from a game which survived many updates, so a lots of older copies of same file present here, they have same name in first part (before "_") and version code as second name part. So, i done another python script to separate latest file versions to another folder: # Mobile Suit Gundam - Iron-Blooded Orphans G cache sort import os import shutil work_dictionary = {} output_path = R"C:\tmp\Cache\Assets" with os.scandir('.') as file_paths: for file_path in file_paths: if file_path.is_dir(follow_symlinks=False): pass elif len(os.path.splitext(file_path)[0]) - 2 != 52: pass else: bundle_name = file_path.name[0:33] bundle_version = int(file_path.name[34:52]) if bundle_name in work_dictionary: if work_dictionary[bundle_name] >= bundle_version: pass else: work_dictionary[bundle_name] = bundle_version else: work_dictionary[bundle_name] = bundle_version for item in work_dictionary: file_name = item + "_" + str(work_dictionary[item]) + ".unity3d" destination = output_path + "\\" + file_name os.makedirs(os.path.dirname(destination), exist_ok=True) if os.path.isfile(file_name) == True: shutil.move(file_name, destination) print("Latest version file moved to:", destination) Must be run in folder with decoded bundles, it moves latest version files to Assets subfolder. Then you can move this folder to main game folder "G_2.0.2_apkcombo\assets\bin\Data\" and load game folder to AssetStudioModGUI (took 16+ Gb of RAM): Model export works fine, with animations: Files with names starting with "r" is not encrypted or encrypted using more secure algorithms - no luck here. Mobile_Suit_Gundam_cache_scripts.7z
    2 points
  24. iirc, I think it uses python 3.6 and higher to run. All I gotta do is run the tool, and a window will pop up.
    2 points
  25. Hey, im just an old game modder/researcher. Cant promise I will be all that active, but its nice to be here
    2 points
  26. Well I updated my tool for ac shadows but as always (like other games) I will keep it private. Why? Because I don't want idiots to take my tool and sell their garbage translations without even leaving a little credit for me. If you need help, you can send me link of your other translations in pm (so I can make sure) and I will help you (I will send the text + put it back into game) to make a patch ( obviously I don't ask for money)
    2 points
  27. Sure if you know full struct. Anyway here's bms for unpacking individual files. I have covered 4 file formats so far... ################################### get BaseFileName basename endian big get Unknown_0_Offset uint32 get Unknown_CRC uint32 idstring BANK getdstring Dummy 0x0C get TotalFileSize uint32 get Unknown_0 uint32 get Unknown_1 uint32 get Unknown_2 uint32 get ResourceCount uint32 get Unknown_3 uint32 get ResourceTableOffset uint32 get Unknown_1_Offset uint32 get Unknown_2_Offset uint32 get Unknown_3_Offset uint32 goto ResourceTableOffset get ResourceTableSize uint32 get Unknown_CRC uint32 for i = 0 < ResourceCount get ResourceOffset uint32 get ResourceSize uint32 get ResourceType uint32 get ResourceNameCRC uint32 savepos cPos goto ResourceOffset getdstring Dummy 0xC getdstring Sign 0x3 if Sign == "DD3" set Ext string "3dd" # Hiearchy elif Sign == "GD3" set Ext string "3dg" # Geometry elif Sign == "MD2" set Ext string "2dm" # Material elif Sign == "BD2" set Ext string "2db" # Texture else set Ext string "dat" # ? endif goto cPos string FileName p= "%s/0x%08x.%s" BaseFileName ResourceOffset Ext log FileName ResourceOffset ResourceSize next i And here Noesis for textures... from inc_noesis import * import noesis import rapi import os def registerNoesisTypes(): handle = noesis.register("Test Drive Unlimited - Xbox 360 Texture", ".2db") noesis.setHandlerTypeCheck(handle, noepyCheckType) noesis.setHandlerLoadRGBA(handle, noepyLoadRGBA) noesis.logPopup() return 1 def noepyCheckType(data): bs = NoeBitStream(data,NOE_BIGENDIAN) if len(data) < 20: return 0 return 1 def noepyLoadRGBA(data, texList): bs = NoeBitStream(data,NOE_BIGENDIAN) BaseName = rapi.getExtensionlessName(rapi.getLocalFileName(rapi.getInputName())) bs.readBytes(40) Width = bs.readUShort() Height = bs.readUShort() Unknown_0 = bs.readUByte() Unknown_1 = bs.readUByte() Unknown_2 = bs.readUByte() Unknown_3 = bs.readUByte() PixelFormat = bs.readUInt() Unknown_5 = bs.readUInt() Unknown_6 = bs.readUInt() Unknown_7 = bs.readUInt() bs.readBytes(4032) if PixelFormat == 132: bs.texSize = Width * Height //2 print("Pixel Format > DXT1") elif PixelFormat == 136: bs.texSize = Width * Height print("Pixel Format > DXT5") elif PixelFormat == 144: bs.texSize = Width * Height * 4 print("Pixel Format > RGBA32") data = bs.readBytes(bs.texSize) if PixelFormat == 132: data = rapi.imageUntile360DXT(rapi.swapEndianArray(data, 2), Width, Height, 8) texFmt = noesis.NOESISTEX_DXT1 elif PixelFormat == 136: data = rapi.imageUntile360DXT(rapi.swapEndianArray(data, 2), Width, Height, 16) texFmt = noesis.NOESISTEX_DXT5 elif PixelFormat == 144: data = rapi.imageUntile360Raw(data, Width, Height, 4) texFmt = noesis.NOESISTEX_RGBA32 texList.append(NoeTexture(rapi.getInputName(), Width, Height, data, texFmt)) return 1 Try to post one sample from x360 and another from pc, files must be same. I mean file name... EDiT: Has Noesis UInt64 data type? Thanks!
    2 points
  28. Hello, everyone. I am Pandora, a Guitar Hero and Rock Band here. Nice to meet you all. As of March 2025, I just noticed that Xentax/Zenhax were deprecated. It is sad that such a tragedy happened to the mod community. I actually was trying to look for help regarding reverse Engineering Guitar Hero 3 for PC, when I knew catched up with the topic. If its allowed, I share some of my links. Please, feel free to have a look. DeviantArt Thanks to the gaming mod community, I was able to extract and share these Guitar Hero 3D models from the PC Version of the game. I am specially proud of Midori and the Male Singer. https://www.deviantart.com/lindsaypandora/art/Midori-3D-Model-Guitar-Hero-3-673967952 https://www.deviantart.com/lindsaypandora/art/Vocalist-3D-Model-Guitar-Hero-3-676369139 YouTube Again, thanks to the Rock Band Modding Community called MiloHax and Emulation Community, I was able to share Performance Mode Videos of Rock Band 2 Deluxe (Unlisted at the time of this message), as well as Guitar Hero Background Videos. My most popular playlist is the PC Version of Guitar Hero 3 https://www.youtube.com/@pandoraday/playlists Again, nice to meet you everyone! Thanks!
    2 points
  29. yes, I'll post it when it's ready
    2 points
  30. Here you can use the script that I wrote for the WAD files here: ## Fear Effect 3 Inferno (PS2) (Prototype) - WAD extraction script by BloodRaynare ## For use with QuickBMS get HEADER_SZ long get DIRS long # value is always 1 get DIRNAME string padding 0x88 get ENTRY_OFFSET long # probably isn't needed since the script will always go to this offset after ENTRY_NUMS value is being read anyway get ENTRY_NUMS long for i = 0 < ENTRY_NUMS get FILES_ENTRY_OFFSET long get FILES_ENTRY long get FILES_DATA_SZ long get UNK long # something to do with file types? savepos ENTRY_OFFSET goto FILES_ENTRY_OFFSET for j = 0 < FILES_ENTRY savepos TMP get FNAME string string NAME p "%s/%s" DIRNAME FNAME padding 0x80 0 TMP get OFFSET long get UNK2 long # file type arrays? get SIZE long get ZERO long log NAME OFFSET SIZE next j goto ENTRY_OFFSET next i The models can be imported on blender w/ DragonFF addon as for the TXDs it can be opened with Magic.TXD No clue about animations (ANM) or the other files (DBX, CCD).
    2 points
  31. I finally managed to get rid of a problem where a wronlgy determined face index count led to corrupted obj files. I didn't find a simple solution with Make_H2O_pub, so I decided to fix that bug using hex2obj (which required a special TDUnlimited version to be created). So if you don't want to trick around with a dozen *.objx files (from old hex2obj versions) it's important to use the updated exe (TDUnl) from here. Said exe will create *_corr.obj (instead of *.objx) which means that they can be imported without renaming. (Heaven will tell whether _corr(ection) is correct, always.) The process is like so (read How-to-use_TDUnl_bnk.txt from zip) : Make_H2O exe creates H2O files from bnk files hex2obj creates obj files from bnk using said H2O files bunch of obj files to be imported into blender using included .py file Found sub meshes might be uncomplete - tested three (+ 2 interior) bnk files only Have fun. edit: forgot to mention that doors, steering wheel etc need a positional correction. (The offsets are probably in the bnk files but I'll leave this to you.) And yeah, uvs are missing - progress: 50% for interior (see exe in ...F2.zip) (For chassis uvs need a recheck.) edit: the above mentioned hex2obj version was optimized for creating multiple H2O files (File\SaveAs Mmesh) from TDunlimited bnk files. The caveat is that handling single H2O files is restricted. So don't press the go1 button here. Just the "mesh" button (and maybe correct the vertex count if you're told to do so). Make_H2O_TDU_bnk.zip F2 - exe only - you need the files from the previous zip! Make_H2O-TDUnl-bnk-F2.zip
    2 points
  32. Thanks. I had the incorrect offset for the UVs in that mesh type, so I've amended that one for whenever I do the next update.
    2 points
  33. Tool updated. I planned to also improve materials, but had no time. So only this fix.
    2 points
  34. yes, need latest BMS version and only quickbms_4gb_files.exe all attachments below AES_finder_0.9h.zip AES_finder_mobile_0.9e.zip custom_UE4_scripts.zip sound_extraction_UE4.zip UE4_specific_scripts.zip unreal_tournament_4_0.4.25e.zip unreal_tournament_4_0.4.27e.zip
    2 points
  35. Version 1.0.0

    904 downloads

    Uploading all my tools will take a lot of time, so this is temporary solution. Most of my tools were released on zenhax, and now available with wayback machine. But how to find them? Here is a list of all topics from Zenhax archived by wayback machine, including attachments and inline scripts. Find topic name with search or filter (see "horizon zero" screenshot as example), then copy URL for the list, and open it. This way you can download almost all of my tools. And also all tools/scripts published by others through the years.
    2 points
  36. I've had a quick look at the first archive. I don't know the exact format of the file tables and how they relate filenames to the actual files, but I can see that it uses LZ4 compression, so the raw files can be easily extracted without names. Here's an example image extracted manually as a test. If I can work out the filename/file relationship, a script should be easy enough.
    1 point
  37. damn, my bad then. thx for correction Also as for manifest.7z requiring a password, it's "Thank you!"
    1 point
  38. This is an amazing tool, and I am very grateful for its creation. I had not used it since the last big patch, and it is throwing an error now. I even re-downloaded Index and started from scratch and still get the same error. Is anyone else seeing this?
    1 point
  39. I can send you a stripped down Make_H2O project with the nudp function only asap. (But don't expect too much. As I wrote I didn't do a deep analysing of the format.) edit: uvs will need some fixing:
    1 point
  40. To be honest, I didn't check the format other than for the vif bytes. The loop searching for 0180xx78 ended after 23 results, I didn't search for the count (on a 2nd glance 17000000 isn't present in the file). If you're a coder you could use some code. (If you can compile it I could send you the code of the Make_H2O project which I created the obj files with (from my previous post) .)
    1 point
  41. Looks like a PS2 file with vif signatures, like 0180xx78 where xx is the (vertex) count of a block. (Found 23 assumed v blocks, will check it asap with some standard code from my Make_H2O project.)
    1 point
  42. OK, thanks for info. I will download it when i came back to home. Anyway the emd is quite complex. But i am getting through it.
    1 point
  43. Hey thanks! this works! The only problem however is that the make H20 cannot read some bnk files like for an example: interior for the 350Z Roadster, both files for the Dino, and the interior of the A4 DTM car. As for the rims it only managed to export the rims from the Lamborghini Diablo GT correctly however for the rest when i import in blender i get a small black dot? (its on the upper right) As for the textures they can be dumped with a ripper I've posted examples for the B. Engineering Edonis below. One folder is from the PC version of the game whereas the other one is from 360. Edonis.rar
    1 point
  44. but you have to donate to him, €10 is too expensive, i think
    1 point
  45. Hi, Can somebody please figure out vertex normals. They should be byte. But not sure. They are in 3848536924.VertexBuffer. It's the last thing i need to finish my 010 Editor template exporter. Here is info: 612424467.VertexBuffer Vertices Offset > 0x1C, Stride > 12, Vertex count > 7412 Data Type > Float 3848536924.VertexBuffer Normals, UV, etc Offset > 0x1C, Stride > 20, Vertex count > 7412 2139299717.IndexBuffer Indices Offset > 0xF5DC4, Index Count > 4320, Data type > uint16 Thanks in advance. f40_normals.7z EDiT: Tried this one but it doesn't yield nothing good byte bx = Var0, by = Var1, bz = Var2; double length = Math.Sqrt((bx * bx) + (by * by) + (bz * bz)); double dx = bx / length, dy = by / length, dz = bz / length; EDiT: I got some clues but not sure how they are converted. There is some unknown after x,y,z. maybe it's somehow involved in conversion. I can see some patern in it. 001 vn -78 -75 30 unknown 48 > vn 0.850738 -0.162228 -0.499926 002 vn -88 -95 46 unknown 47 > vn 0.830714 -0.115664 -0.544552 003 vn -88 21 -81 unknown 46 > vn 0.830885 -0.172438 -0.529052 004 vn -88 53 -50 unknown 47 > vn 0.830573 -0.225279 -0.509311 005 vn -78 37 -97 unknown 47 > vn 0.850253 -0.107755 -0.515227 006 vn -3 -47 -81 unknown 61 > vn 0.996954 -0.023489 -0.074376 007 vn -3 -63 -49 unknown 61 > vn 0.997029 -0.031295 -0.070382 008 vn -78 77 -66 unknown 48 > vn 0.850758 -0.213692 -0.480152 009 vn -3 41 0 unknown 2 > vn 0.997836 0.019600 0.062759 010 vn -3 -31 -97 unknown 61 > vn 0.996948 -0.016643 -0.076276 011 vn -3 -15 -97 unknown 61 > vn 0.997050 -0.007840 -0.076350 012 vn -78 -111 95 unknown 47 > vn 0.850449 -0.054870 -0.523188 013 vn -88 -115 95 unknown 46 > vn 0.830468 -0.056695 -0.554173 014 vn -3 -79 -17 unknown 61 > vn 0.997009 -0.039206 -0.066607 015 vn -78 -23 125 unknown 49 > vn 0.850203 -0.262448 -0.456372 016 vn -88 -55 -83 unknown 48 > vn 0.830695 -0.278314 -0.482170 017 vn -3 57 -16 unknown 1 > vn 0.997786 0.027350 0.060626 018 vn -3 69 -48 unknown 1 > vn 0.997821 0.033377 0.056907 019 vn -3 29 32 unknown 2 > vn 0.997684 0.013718 0.066627 020 vn -31 -43 48 unknown 10 > vn 0.941970 0.103787 0.319252
    1 point
  46. Version 0.15.3

    54 downloads

    ImageHeat is a program for viewing encoded textures. It's free and open source.
    1 point
  47. Here is sample file that you can check to be sure: type_109_ARGB4444_XBOX_SWIZZLE.zip Try it with newest version of EA Graphics Manager https://github.com/bartlomiejduda/EA-Graphics-Manager
    1 point
  48. Here is a set of H2O files for Shimura's armor. The creation of obj files may not be to everyone's taste but that's what I can provide. You'll need the newest version of hex2obj for this. Read '...multiple_H2O.txt' in the zip. hex2obj, v 0.25 Use File\SaveAs Mmesh (saving of single H2O files is not supported so far for xmesh because the required code change is not a 15 minutes job). H2o files appended here. Didn't check all uvs. For some an uvbSize of 20 instead of 4 might be required.) (Tool for creation of H2O files still under development.) edit: updated the zip with H2O files shimura_samurai_armor.xmesh_H2O.zip
    1 point
  49. I have a small collection of old BMS scripts and a Noesis plugin I just wanted to drop here to share and preserve. These were mainly created to convert texture formats and other files from visual novels such as Cupid Parasite, Taisho x Alice, etc. using the formats CL3, TID, PAK, etc. Noesis Python plugin for CL3 TID Noesis python plugin - tex_IdeaFactory_cl3_tid_BABA.zip BMS script for Taisho x Alice PAK Taisho x Alice.zip BMS script for Hakuouki Reimeiroku Nagorigusa *.mp_ hakuouki_mp.zip BMS script for Cupid Parasite RTEX cupipara.zip BMS script for MEMFS and MEMBODY memfs_membody.zip BMS script for BFSTM bfstm.zip
    1 point
×
×
  • Create New...