Leaderboard
Popular Content
Showing content with the highest reputation since 10/13/2025 in all areas
-
I have released an early version of the tool that can do just meshes with their material names/skeleton:5 points
-
Version 1.0.0
10 downloads
Broken Sword - Shadow of the Templars (1996) * bs1_1996_clu_export.py * bs1_1996_clu_import_and_patch.py Required: Python. When installing, make sure to check “Add python.exe to PATH.” Usage: * Copy the swordres.rif and text.clu files into the same folder as the .py files. * Run bs1_1996_clu_export.py: this will extract the texts into Text_exported.txt. * Translate it, then rename the finished file to Text_translated.txt. * Run bs1_1996_clu_import_and_patch.py: this will insert the translated texts back into text.clu and modify swordres.rif. * The new files will be created with the _new suffix. Tested with GoG (2.0.0.8) and Steam Reforged Free DLC FEARka3 points -
2 points
-
2 points
-
I am updating the Noesis script from this post to handle more versions of the 3D model rsf format. Soon I will release an update to the script. Meanwhile, as a sample, I want to show some extracted models that we were not able to extract with the old script. On the top left corner we find the Orange Bowl stadium from NCAA 08. On the top right corner we see the hologram (a ficticious one) stadium from Madden 13. The low left corner shows the LA Memorial Coliseum from Madden 12 or 13 and finally on the low right corner we find the Louisiana Tech stadium from NCAA 12. All these rsf files come from the PS3 versions of the games with data in big endian. The script can handle data in little endian too, for example rsf files coming from PS Vita games. I am almost 100% sure that the updated script will be able to handle rsf files from NCAA 08 to NCAA 14 and Madden 07 to Madden 17 with no issues.2 points
-
Format: .avi Codec: MV30 Coding program: VirtualDub build 13719/release You can decode it using ffmpeg. Standard videos of the old format.2 points
-
There might be a way to find the password using Cheat Engine. Install Cheat Engine, load the game and open the games process. Click on Memory View, go to Search, Find memory and search for this text - jPGbPK6KENwG9ey If found, the password should be very close to this, 44 char long - M2Q6Dj6a*7NxX|gYHe8UH8o9]3CWDjPGbPK6KENwG9ey2 points
-
Okay I figured out all of the .mdl's thanks to Shak's original response. All of them can be previewed and exported using the Fable 2 Asset Browser now, which is what I was kind of aiming for. I can get the skeletons out, idk if they're necessarily correct or not, but they works so I can only assume it's fine. So I'm going to turn my attention to the .tex file compression and animations. Obviously looks better in blender but yeah. I'm sure everyone gets the point.2 points
-
2 points
-
You can use my latest Fmod Bank Tools - https://www.nexusmods.com/rugbyleaguelive3/mods/2 https://github.com/Wouldubeinta/Fmod-Bank-Tools Just PM me for the bank password.2 points
-
1 point
-
I did the descompressor and compressor but in c++, need to test the compressor thought, because is compressing better than the original. Test in game and show the results, if works. MACROSS_PS1_TOOL.zip1 point
-
1 point
-
What I'm trying to do is create a new texture and trying to add an alpha channel while hex editing. The Zip File I provided is mostly for demonstration purposes. I'm trying to edit NINJA_FACE_DAMAGE_000, NINJA_FACE_DAMAGE_001, and NINJA_FACE_DAMAGE_002. My biggest problem is that the textures I'm trying to add an alpha channel to is different than it's original textures and is swizzled differently thus the alpha channel will be different. I am aware the image data will always start at 592 (0x250) and palette data differs depending on the size of the texture 64x64 (0x12A0), 128x128 (0x42A0), 256x256 (0x102D0). Anyways, I was able to use ImageHeat to get an alpha channel from the original textures with PAL8 pixel and RGBA8888 palette and exported it. Also, was able to use the ReverseBox Demo 2 to export and import the original textures just to get familiar with it. These are just a few textures that I'm trying to insert into the game and the alpha channels. MKD Texture Edit.zip1 point
-
Version 1.0.0.0
1 download
// Gorky 17 Modding tools GUI .:: Introduction ::. Gorky 17 Modding Tools is a powerful utility that lets you extract and build .kdt and .dta archives. It supports both single-file (selected file) and full archive extraction. In addition, the program includes an SPR-to-image converter, file list generator, script reader, image inspector, and many other useful features! .:: Knowing issues ::. There's an unknown issue with the .spr files. They can be read, displayed, and converted to any image format, but I assume there’s a problem with the RLE compression. The investigation is in progress, and this issue will be fixed in the next update. .:: OS Support ::. Built and tested on Windows 11 64 bit. The native linux version of the tool will be released soon. .:: Special thanks to ::. Krisztian Kispeti, Lead Dev: K's Interactive.1 point -
Okay, thanks for the lead. I successfully uncompressed the PUD file, and it is indeed a container. The value 0x2 represents the number of files within it. The uncomressed images are raw pixel data and need to be combined with the PAL file to get the correct image. can use imageheat to view the correct image.1 point
-
1 point
-
fmt_psaVita_ValkyrieDrive.py Here's a old noesis plugin to view and export most of the mib, msb and mab of the PSVisa version of the game.1 point
-
Edit - just tested it and no 4 mrts is uv, you was right in saying the 4th one is the uv maps by the rule1 point
-
I tried using the head models and tested two of them (DDP and Rovyal). I was able to get the models to work. From my understanding, all of the heads share the same offsets and parameters, so if you can get one model to construct with no weird faces, you can use the same parameters for the other models. I’m just having an issue with the ears, as you can see in the photo below. If you could share your parameters and offsets, I think it would be very helpful. update 1 : got it woriking however the uvs are not working but you can transfer it using copy vertex order plugin in blender UPDATE 2: got the uvs to work for the model using these params but i still have to go inside blender uv unwrap and then copy uv maps to the main model . is there a way i can get uv maps and model all in 1 in hex2obj ? sorry if this is a rookie question since ive never used hex 2 obj before Final Update : I just have to save the mesh from hex2obj settings and the uvs will be added to the obj. thanks for your help Hex2Obj1 point
-
1 point
-
Actually your file is a container with a bunch os zstd files. attached the first file decompressed. I did a tool, long time ago, i will search here. head_conor_mcgregor_model_CB540.mcd.zip1 point
-
It's not just 1 block of data, there are multiple compressed ZSTD blocks in your sample file that have to be joined together - e.g. at 0, 0x129b0, 0x31dd0, etc.. It looks as though each file is preceded by the compressed size and anotherr value, except the first block, which looks to be a compressed size of 0x129a0. You might have cut that bit off in your sample. Each block seems to decompress to 0x40000 bytes except for the last one, which is shorter. I guess the header might have some useful info.1 point
-
1 point
-
Hello guys, I need help to the correct read UV`s and Textures, from the Reckless Racing game. Earlier, durik256 helped me read the mesh format and some UV data from the *.sggr format, but to this day I haven’t been able to figure out the UV scaling and materials. Here’s the link to the discussion: https://reshax.com/topic/1067-reckless-racing-ios-vfs-files/ Below is the Noesis script for reading the mesh data. Script have two problems: - Sometimes the script reads the LOD versions of the mesh models. - It also doesn’t read the UV scale, and the mesh isn’t split by materials. I’m asking for your help in updating this script. from inc_noesis import * def registerNoesisTypes(): handle = noesis.register("Reckless Racing", ".sggr") noesis.setHandlerTypeCheck(handle, noepyCheckType) noesis.setHandlerLoadModel(handle, noepyLoadModel) return 1 def noepyCheckType(data): if data[:4] != b'\x4D\x3C\x2B\x1A': return 0 return 1 def noepyLoadModel(data, mdlList): bs = NoeBitStream(data) ctx = rapi.rpgCreateContext() ofs_res = data.find(b'#RES') if ofs_res != -1: bs.seek(ofs_res + 44) unk, vnum, zero = bs.read('3I') skip = 12 if unk == 4368 else 0 vbuf = b'' vbuf, uvbuf = b'', b''#bs.read(vnum*24) for x in range(vnum): bs.seek(2,1) vbuf += bs.read(2) bs.seek(2,1) vbuf += bs.read(2) bs.seek(2,1) vbuf += bs.read(2) bs.seek(5,1)#4 uvbuf += bs.read(2) bs.seek(2,1) uvbuf += bs.read(2) bs.seek(1,1)#2 bs.seek(skip,1)#12+ rapi.rpgBindPositionBuffer(vbuf, noesis.RPGEODATA_SHORT, 6) rapi.rpgBindUV1Buffer(uvbuf, noesis.RPGEODATA_USHORT, 4) u0, inum, u1 = bs.read('3I') ibuf = bs.read(inum * 2) rapi.rpgCommitTriangles(ibuf, noesis.RPGEODATA_USHORT, inum, noesis.RPGEO_TRIANGLE) try: mdlList.append(rapi.rpgConstructModel()) except: mdlList.append(NoeModel()) return 11 point
-
Hey all, I also recently got interested in modding the original QP Shooting. I'm currently working on a command-line tool that so far allows for extracting and repacking the LAG assets, with decoding and encoding of dialogue/system files also now planned to be implemented. However, it seems after reviewing this thread that I wrongfully assumed that the graphics were red-blue-swapped A16B16G16R16 DDS surfaces rather than a special Luna/LAG image format... so that's probably another thing I need to fix up (although the assets can be modified fine with an editor that supports that DDS format once the header is written, so maybe it is just a slightly tweaked version of DDS). I'll post the GitHub link here when I polish and finish it up : )1 point
-
1 point
-
Hello, you really should put more effort in your request. People who could help don't have all the time in the world, to unpack a vfs, search for the sggr in question, which samples have the "lod problem", etc, etc. WHY not simply upload the samples in question plus a description what EXACTLY you've done so far to get uvs. Your post here is not very insightful, imho.1 point
-
Hello! I was working on a Python script that replace Sprites data with another for Unity games but Unity has another trick in its sleeve. For those who use AssetStudio, you will extract sprites like this (from Dungeon Clawler 2024 Demo): But with a tweak, I found out Unity uses more data to store RGBA32 sprites! Unity uses an Anisotropic filter to enhance the quality. Something that is difficult to replicate with Python and every sprites doesn't follow the same rule! We have to follow them individually. Another example with Clawcula. Interestingly enough, a partial replacement works and those which lack shearing, like the Logo, are easier to replace. Not every sprites use all "layers" which should make things easier. What I replaced with: And here is the original one: Despise the flaw, it's sufficient replacement. I was close to replace the sprites with Animal Crossing cub villagers without using Unity (after the Unity controversy, which lead me to mod Unity games with Python). Video Example: https://drive.google.com/file/d/18L1NBMWRQjwmCnFElAzJ2ww6KMtV2YE9/view?usp=drive_link If you have information on reproducing correctly their Anisotropic effect, feel free to share! Python Scripts: Unity Image Extractor: This extract all sprite data from resource files. Work on RGBA32 and RGB24. Don't forget to create a new folder, I don't know how to make the script allow you to choose one. Unity Image Extractor Script FINAL.py Unity Image Replacer: This replace all sprites with those from the batch. Although it works for RGBA32 and RGB24, it works better for the latter. Unity Image Replacer Script FINAL.py Unity Ano Simulate (Work in Progress): An attempt to simulate the Anisotropic effect for a bulk. Work best for no shear one. Unity Ano Simulate Script (Bulk) with Shear.py1 point
-
1 point
-
1 point
-
The fonts are the last issue, i dont know where the character map for japanese and english is, i can redo all the pointers to support my text but i assume the charmap is in the fonts correct? that is my latest issue currently. I will link a folder with the decompiled and deswizzled files, although about half have no tile info or are swizzled with a different format, I will also link the decompiled file base as well. for example, most of the character and backround assets use the same texture format, but i dont know what tools or things to use for finding the fonts for the game, i just need the character map so i can remap all the characters to english. Here is the decompiled vers (images + files) : https://www.mediafire.com/file/8i7852px88k3ztv/extract1.zip/file and here is the compiled vers: (files + bms + decompile script): https://www.mediafire.com/file/ycglpfcr47vq6tq/iop.zip/file i have a working reswizzler if needed and i will just attach the tools below. I also need some help with the smaller images as the buttons have to be redone by a pixel guy i know and they are in smaller file formats / not being processed, also some of the title images and other miscellaneous images have different file and palette offsets that need to be found so that i can fully translate everything. Thank you! deswizzlenew.py reswizzlenew.py1 point
-
Good Have you investigated the font for this game? Is it perhaps located within a specific NKT file? Several KONAMI games use this development toolset. Besides NANA, this includes: Gantz: The Game Cy Girls Mahoromatic The file formats are all identical. If I can figure out the textures and fonts, perhaps I could also try to translate this game into my language in the future.1 point
-
This is a screenshot with the settings I used. You can see each tile is 128 x 64 - I've just put the height as 512 so you can see multiple tiles. They just need to be arranged correctly. I've looked at the header, but can't make much sense of it at the moment. If all the info was known, then a script should be easy enough to put together.1 point
-
I just did it manually using ImageHeat. There's some header data, presumably info for each tile, but it's not 100% clear what all the values mean. So it's not really a proper solution yet for all files that might have different size headers.1 point
-
i update my plugin : fmt_DS2_PS3_geo.py *(The uvs file must be located in the same folder as the model, either in the "MeshVolatile" subfolder or next to the model.)1 point
-
1 point
-
1 point
-
Bigfile was in SOR4 too. There's at least some sort of base to work with, but the sor4 tools don't really work with Absolum.1 point
-
1 point
-
(just my old plugin that was made from example files of another theme) fmt_kn5.py *(don't support encryption)1 point
-
I know this is from April but I want to give my two cents on this because I just figured out how to do this myself and I hope this can help other people as well. I'll try and simplify this in a step-by-step format as best as I can. Preliminary requirements Programs you will need include: Ryujinx (or any application that can extract NSP files) RevilLib (for file conversions) Kuriimu2 (for .arc file viewing & exporting) (Optional) Notepad++ or VS Code, I prefer these to create and format .json files in. 1. Getting the extracted files Using Ryujinx is the easiest way to convert the switch rom format (NSP) into something that will be readable by other programs. Right click on the game in the game list>Extract Data>RomFS. It will ask you where you want to output the files, I recommend somewhere you'll easily remember. This will take a few minutes. 2. Locating the desired files After you're done exporting the NSP, open Kuriimu and find the .arc file that you want to open. I haven't (for now) put together a library of monster IDs, but know that large monsters start with "em_xxx" in their file IDs, and small monsters are "ems_xxx". This is where the model and texture files for whatever monster you have selected will be (generally). The "mot" folder has the .lmt files in it though, so I would recommend exporting those into the same folder as the model and texture files. 3. Converting the .mod file(s) This is by far the easiest step. You can simply drag and drop the .mod file onto the mod_to_gltf batch file in RevilLib's folder and it should automatically convert the .mod file to .glb in the same location where the .mod file is stored. 4. Converting the .lmt files After exporting your .lmt files, make sure that your .mod file is in the same location. This will speed up the rest of this process, and is also necessary for the spike batching we're about to do. In the same folder as the .lmt and .mod files, create a .json file (I usually just name it "batch.json). Open it up in your text editor of choice, and now I will quickly explain how the spike batching works. 4.1. Spike Batching Here is an example of my code (which exports the Rathian animations): [ [ "em001_00.glb", "em001_00_0.lmt", "em001_00_1.lmt", "em001_00_2.lmt", "em001_00_3.lmt", "em001_00_4.lmt" ] ] The .json file reads from its root directory, so there is no need to link to individual file paths. Thankfully, this program will also automatically group all the animations together, so when you view them in Blender (using the action viewer, in the dope sheet), it is nice and consolidated. What this does is pretty obvious, but we are just telling the program that the .glb file is the model we want to use with the animations, and the .lmt files are the animations that we are assigning to the model. When you are done with this file, drag and drop it onto the lmt_to_gltf batch file (located in the RevilLib folder, same as mod_to_gltf), and you should have the .glb file containing the animations in your root folder. It will have "out" at the end of the filename, if it isn't clear to you which one it is. 5. Importing to Blender Because I use Blender, that is the program that I will refer to in this step. It's really simple to do this because Blender, thankfully, has .gltf and .glb file-reading built-in, so import the xxx_out.glb file that we just got and everything should import correctly, animations and all. The textures are another beast, but I'm willing to explain those as well if needed.1 point
-
1 point
-
why don't you just connect the vertices in a 3d editor. the plugin opens the models, that's all you need. the rest you can work on yourself1 point
-
1 point
-
Does anyone know more about the mcd format used by EA? Models are packed inside the rsf format and it is possible to extract them with the rsf.bms script. I managed to make a Noesis script to view the models, but reading the skeletons is hard for me and I don't know how to proceed with them. Vertex weights are stored in a table that starts with the tag TIEW in mcd and skeleton data in FRGS in .skel file. I would appreciate any kind of help to import the skeletons into noesis. Preview in Noesis: https://imgur.com/a/o2dQvCl fmt_NHL21_mcd.py rsf.bms.zip nhl21model.zip1 point
-
my plugin for vfs work with your file EDIT: and i made preview plugin for *.sggr fmt_sggr.py (*.pvr its image, use pvrTexTool)1 point
-
1 point
-
Maybe I didn’t quite understand your goal, but you can’t just take files from the game and compile them back into the game.) Edit: ah, I read a few posts above, you need to compile Asset Studio, not the game files.1 point
-
Hello Everyone! So i'm back, i'm taking some time to explain the way i made things working. Who knows, it may give some insights? So let's begin (I'll try to update a bit this post to make a cleaner tutorial. first, i'm giving the .rar with the updated .exe and extra files to make things running the easy way, i'll update a bit later my git to create a fork of the original source code) So... let's begin! ___ ➡️The Easy Path : 1. Download the MK11PackageExtractor.rar 2. Extract the content in your MK11 folder (from steam, whatever, it's just the base : DriverLetter:\yourpathtothegame\Mortal Kombat 11\ 3. ⬇️ ➡️Drag your .xxx files out of assets folder (the ones you want) - copy them... it's better for your game can still run XD - and drop them at the same level of your MK11PackageExtractor.exe. ➡️Clic on decompress.bat and you can check the extraction in the created "output" folder with your "NameOfExtractedPackage". (It's a loop fetching your .xxx files) (careful, it only works for XXX files, though the source code implemented the feature, I don't know why PSF isn't working. But it doesn't matter because PSF are not compressed like .XXX so Ravioli Game Tools can do the job without problem) 4. In "NameOfExtractedPackage", you may find a ".upk" at its base. There, you can use Ravioli Game Extractor to check the information within and perform a clean extraction of the files. Most of the time, the sound format is .wem, so unless you use vgstream in foobar2000, you'd have to convert the file to listen to the file. ____ ➡️The Dev Path : (long term solution) - I haven't posted the things on github yet - so forget the part i'm giving my updated code, yet, i'm sharing what you need in order to perform the compiling To get the code working, get your dev tool (i'm using VS Code - it's free). ✅1. Download Mingw64 - i think latest version - to get the compiler working ✅2. IntelliSense being deprecated, use the last version at disposal (the time i'm writing, it's C / C++) ✅2. Clone the original git (The one who belongs to thethiny), or mine if you want the modifications used to make the code working ✅3. 3 steps : ↪️You'll need to add libraries in some headers, cstdint for most, fstream for a few ↪️in MK11file.h, i added the XXX hex code to focus on XXX files PFS = 0x0008u, 🆙 XXX = 0x0040u, OODLE = 0x0100u ↪️In extract.cpp, modify the algorithm so the compression flag for .xxx files can ALSO be applied while using oodle. Why? Because otherwise, .xxx files can't be checked with oodle compression, in other words : it won't work and you'll get an error. With so little documentation, i had to fetch things by myself, it's all because of an hex code for .xxx files not being taken into account, that's strange when you think of it because the original program should check the .xxx files 😄 ⏹️4. I added a quick text log to MK11file.cpp to compare file informations in ::validate_header ✅5. In Tasks.json, you'll need to help setting up the compiler path to create the file. I'm really not an expert in this part so i'm just focusing on MK11PackageExtrator.exe (or rename the file if you like) - This is the part most would prefer my task.json if you want a faster working thing. Here is maybe the most important part : "tasks": [ { "type": "shell", "label": "C/C++: g++.exe build active file", "command": "Driver:\\pathtomingw64\\msys64\\ucrt64\\bin\\g++.exe", //replace Driver:\\pathtomingw64 with your folder to mingw64 "args": [ "-g", "${workspaceFolder}/src/extract.cpp", "${workspaceFolder}/src/implementations/*.cpp", "-o", "MK11PackageExtractor.exe", "-std=c++11", "-I", "${workspaceFolder}/src/headers" ], "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$gcc" ], "group": "build" }, ✅✅6. Use g++, not gcc (there are errors of compilation in gcc) ✅7. for Visual Studio Code, the part if you want to get a faster compilation : Ctrl + Shift + B while targetting main.cpp Once again, i'm a total newb in C++, i'm not even a senior developper, i just know how to thinker some stuff and that's it. 😄Oh and i forgot, the dev didn't add the required .dll for the .exe to work with .xxx, I had to fetch them but you're lucky, they're part of the .rar so you don't have to do the same i did🙂 Happy extracting! 😄 PS : i'm not english native speaker, forgive my bad way of explaining the technical stuff 🔲PS2 : Edit, because i like to manage several projects at the same time : Pushed a mod on Nexus for Mass Effect (i think i'll prefer hanging to less sites than too many, Nexus is a bit much above github), made new music extracts + edits, creating fly camera scripts... -. I still haven't pushed the code modifications on github for MK11 😅 I'll make a fork of the original code, then put all my modifications + a clean release when possible! MK11PackageExtractor.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!