Leaderboard
Popular Content
Showing content with the highest reputation since 06/03/2025 in Posts
-
Added support for version 4 of locres to UE4localizationsTool Added to row editor, edit or add new Item ID for row UE4localizationsTool-v2.7.2.zip5 points
-
Warhammer 40,000 Space Marine - Anniversary Edition (2011) and Warhammer 40,000: Space Marine - Master Crafted Edition (2025) ucs.pc Export and Import python tool. Warhammer 40000 Space Marine .PC Tools.zip4 points
-
This is the forum. Not help site sort of speak. In here, ppl are exchange the skills. Stop bumping the topic, this is against our rule! You asking for some help and in next to hours asking again. Stop doing it..3 points
-
Please do not help anyone or provide guidance on how to convert TXT or JSON files into LOCRES files3 points
-
Requirements UABEA PXR.py (For text extract and import) UnityPlayer.dll FFPR_FontTool (Optional, for font editing) Locating and Editing Texts Text files are stored inside the message_assets_all file "FINAL FANTASY_Data\StreamingAssets\aa\StandaloneWindows64" Open this file with UABEA and Select the four English text files by holding Ctrl and left click: system_en, story_mes_en, story_cha_en, etc_text_en On the right panel, click Plugins and export as txt. Create a new folder and move these exported .txt files into it. Download PXR.py and place it inside the same folder. Run the PXR.py and type 1 to extract the texts. Edit the generated merged_output_en.txt file as you want. After editing run PXR.py again and type 2 to import edited texts. Open message_assets_all with UABEA again, choose txt files > Plugins > Import.txt and choose the "merged" folder. And do Ctrl + S to save. Font Editing (Fonts are located in FINAL FANTASY_Data\StreamingAssets) Run FFPR_FontTool. Choose option D, then drag the font_en.bundle file into the tool. Choose a random name to extract the font files. This will decrypt the bundle. Open the extracted font files in UABEA. Select SE-ALPSTN and sqex-MonoSix files, then click Plugins > Export.ttf to export them. Edit the fonts, or you can use another font if you wish. After that Plugins > Import fonts with UABEA. Run FFPR_FontTool again, choose option E, drag your edited font files, and save as font_en.bundle. Textures Locations common_title.bundle: Title Screen Textures common_assets.bundle: Title Logo and Language Textures hit_sprite.bundle: Hit Textures miss_sprite.bundle: Miss Textures Installation For mods to work properly, you need to use the "UnityPlayer CRC Check Bypass" mod otherwise your mod will not work. https://www.nexusmods.com/finalfantasypixelremaster/mods/90 Credit: Shiryu64 on Moogles & Mods Discord FINAL_FANTASY_PIXEL_REMASTER_FONT_MODDING_TUTORIAL.pdf3 points
-
Here is the script if you want to test it. You need to press F4 or the red icon on bottom("Toggle face cull"). fmt_fear_effect_inferno_ps2_rmd.py2 points
-
I made a Noesis script to read all meshes from .RMD files but the meshes are in the center so we need the skeleton but I don't know how to do that, lol. I used the function "CreateTriList" from other PS2 script(made by leeao), it works fine. This function uses the last 4 bytes of vertices buffer as flag and pad: 12 bytes verts, 1 short flag, 1 short pad. Here is DBULL.RMD but like I said, we need the skeleton:2 points
-
Hi, it was brought to my attention that the Beta xbox version has additional outfits that the PC version does not have. The models are in a different format, namely .xgg - Which is slightly similar to the pc version. The ps2 version is also in a different format .pgg - However I won't be looking at this at the moment. I created a script for the character models, it probably won't work for terrain or objects. At this stage I am not going to expand on it further or create a new thread as it is the same game. XGG_convert.py2 points
-
edit: seems instead of experimenting I'd try to get TGE's RMD maxscript, maybe from xentax backup archives edit 2; found Amiticia, but exporting the clump creates no file The bones with parent ids: 0 *jtroot* -1 1 *jtbody* 0 2 *jtwaist* 1 3 *jtchest* 2 4 *jtrshoulder* 3 5 *jtrarm* 4 6 *jtrelbow* 5 7 *jtrwrist* 6 8 *jtrpalm* 7 9 *jtlshoulder* 3 10 *jtlarm* 9 11 *jtlelbow* 10 12 *jtlwrist* 11 13 *jtlpalm* 12 14 *jtneck* 3 15 *jtmouth* 14 16 *jtlip* 15 17 *jtlleg* 1 18 *jtlknee* 17 19 *jtlankle* 18 20 *jtltoe* 19 21 *jtrleg* 1 22 *jtrknee* 21 23 *jtrankle* 22 24 *jtrtoe* 23 floats from the matrices (undefined values replaced by 0.0 0.0 0.0): 0.0 0.0 0.0 jtroot 0.413449 -0.995091 0.495473 0.357034 -0.674350 0.553032 0.982738 -0.695039 0.691009 0.253196 -0.269279 0.291826 0.216968 -0.236668 0.236830 0.0 0.0 0.0 jtrelbow 0.032668 -0.201254 0.164289 0.0 0.0 0.0 jtrpalm 0.253197 -0.269279 0.291826 0.216968 -0.228647 0.236830 -0.044276 -0.264800 0.184460 -0.039168 -0.199243 0.158531 0.0 0.0 0.0 jtlpalm 0.722860 -0.408135 0.387143 0.038753 -0.180144 -0.108344 0.0 0.0 0.0 jelelbow 0.016553 -0.456171 0.428642 -0.045874 -0.276716 0.403431 0.037943 -0.777463 0.348391 0.0 0.0 0.0 jtmouth 0.016552 -0.456171 0.428642 0.0 0.0 0.0 jtlleg 0.037943 -0.777463 0.348391 0.0 0.0 0.0 jtlankle edit: uvs are a little bit weird, as usual:2 points
-
Those .PS2 files are textures, you can examine those with Console Texture Explorer. I found some info too like width and height, image data offset and palette offset. About .RMD files, these have a lot of submeshes but we need to find a way to collect all. I will try to check that later... Here is texture head0.PS2 from DCHAIR folder:2 points
-
Hi all! I've been reverse engineering this engine on and off for a while now (specifically the engine for Spy vs Spy 2005). I'm assuming there wasn't major changes over the years, here is some potentially useful info. Custom File Format The game is actually fully programmed in the custom files described above (the engine itself doesn't have any game logic). Custom files are all serialized the same way, which is a series of versioned nested nodes that define objects/fields (in the 2005 engine, there's ~400 object types). The first reference to an object initialized it. These objects are everything from entities, meshes, textures, etc. The raw data often matches a standard format for the console (for xbox: textures are mostly mipmaps of A8/DXT images and audio is ADPCM). To put this in context, here is what you might have to do to go get a texture (assuming the first instance is being referenced by the script that fires when the map loads): .map file -> FileObject - field: object -> MapObject - field: onMapStart -> ScriptNode - field: children -> SpawnActionNode - field: entity -> Entity - field: materials -> Material - field: texture -> Texture - field: color_buffer TL; DR, it's quite hard to reverse engineer the custom file formats without deep understanding of the engine. My Research I made a GitHub org that has all my work: https://github.com/vicious-rebirth Currently, all the repos are private because I'm trying to figure out the best way to release without getting a cease and desist (I think Little Orbit still owns the engine and there's some algos that are patented by MS). This said, I'll try to release my web tool on GitHub page for extracting assets (mileage will vary). I can give read access to anyone interested. Useful Videos Vicious Engine Demo (a good summary of the features from the devs) Vicious Engine Tutorial (a partial series of tutorials of how to use the engine - useful to understand the various types of objects) Extract Model (a preview of a model I extracted for proof)2 points
-
Railway Empire 2 translation tools and description. Railway Empire 2 Tools.zip2 points
-
2 points
-
I have made a Noesis script but it's basic. Just simple mesh export. No materials/ no bones/ no skin. Anyway this is mesh struct. Just basic. //------------------------------------------------ //--- 010 Editor v14.0 Binary Template // // File: // Authors: // Version: // Purpose: // Category: // File Mask: // ID Bytes: // History: //------------------------------------------------ LittleEndian();OutputPaneClear(); local uint32 i,j,k,l,TotalSize=FileSize(); string MeshName; uint32 Unknown_0; uint32 Unknown_1; float Unknown_2[27]; float Unknown_3[5]; uint32 TotalVertexCount; uint32 StrideType; if (StrideType == 19) { byte VertexBuffer[TotalVertexCount*24]; byte ColorBuffer[TotalVertexCount*4]; } else if (StrideType == 23) { byte VertexBuffer[TotalVertexCount*24]; byte UVBuffer[TotalVertexCount*8]; byte ColorBuffer[TotalVertexCount*4]; } uint32 TotalIndexCount; byte IndexBuffer[TotalIndexCount*6]; uint32 ShapeIndex; struct { string MaterialName; uint32 IndexCount; // *3 uint32 Unknown_0; uint32 VertexCount; uint32 Unknown_1; }ShapeInfo[ShapeIndex]<optimize=false>; FSeek(startof(VertexBuffer)); if (StrideType == 19) { struct { float VPosX,VPosY,VPosZ,VNPosX,VNPosY,VNPosZ; }Vertices[TotalVertexCount]<optimize=false>; } else if (StrideType == 23) { struct { float VPosX,VPosY,VPosZ,VNPosX,VNPosY,VNPosZ; }Vertices[TotalVertexCount]<optimize=false>; struct { float UVPosX,UVPosY; }UnitVector[TotalVertexCount]<optimize=false>; } FSeek(startof(IndexBuffer)); for (i=0; i < ShapeIndex; i++) { struct { uint16 F1,F2,F3; }Indices[ShapeInfo[i].IndexCount]<optimize=false>; }2 points
-
2 points
-
//------------------------------------------------ //--- 010 Editor v14.0 Binary Template // // File: // Authors: // Version: // Purpose: // Category: // File Mask: // ID Bytes: // History: //------------------------------------------------ LittleEndian();OutputPaneClear(); local uint32 i,j,k,l,InfoOffset=FileSize(); FSeek(InfoOffset - 20); uint32 CheckSum<format=hex>; // Must be updated after edit > 32 bit LE checksum uint32 TableOffset; // Must be updated after edit uint32 TotalFileSize; // Must be updated after edit uint32 Flag; uint32 Unknown; // Not sure what is for... FSeek(TableOffset); ubyte ResourceCount; struct { ubyte StrLen; char ResourcePath[StrLen]; uint32 ResourceOffset; // Must be updated after edit uint32 ResourceSize; // Must be updated after edit uint32 Null; }ResourceInfo[ResourceCount]<optimize=false>;2 points
-
2 points
-
i think its not armor, its uvs (skip z) i made plugin fmt_gb3.py *(parsing all blocks, if desired you can add parsing of materials, nodes, etc.)2 points
-
Here's Noesis script for textures. from inc_noesis import * import noesis import rapi import os def registerNoesisTypes(): handle = noesis.register("Psi Ops - Texture", ".w32") 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())) bs.read(20) ResourceTableOffset = bs.readUInt() bs.read(12) StringTableOffset = bs.readUInt() bs.seek(ResourceTableOffset, NOESEEK_ABS) ResourceCount = bs.readUInt() for i in range(0, ResourceCount): Extension = bs.readUInt() Unknown_0 = bs.readUInt() ResourceSize = bs.readUInt() ResourceNameOffset = bs.readUInt() cPos_0 = bs.tell() bs.seek(StringTableOffset + ResourceNameOffset, NOESEEK_ABS) ResourceName = bs.readString() bs.seek(cPos_0, NOESEEK_ABS) ResourceOffset = bs.readUInt() Unknown_1 = bs.readUInt() cPos_1 = bs.tell() if Extension == 544761204: bs.seek(ResourceOffset, NOESEEK_ABS) TextureWidth = bs.readUInt() TextureHeight = bs.readUInt() RawDataSize = bs.readUInt() -20 Unknown_0 = bs.readUInt() BufferInfoOffset = bs.readUInt() Unknown_1 = bs.readUInt() MipMap = bs.readUInt() Unknown_2 = bs.readUInt() PixelFormat = bs.readUInt() Unknown_3 = bs.readUInt() RawDataOffset = bs.readUInt() bs.seek(RawDataOffset, NOESEEK_ABS) TextureBuffer = bs.read(RawDataSize) bs.seek(cPos_1, NOESEEK_ABS) if PixelFormat == 19: print("Pixel Format > R8") elif PixelFormat == 12: print("Pixel Format > DXT1") elif PixelFormat == 14: print("Pixel Format > DXT3") elif PixelFormat == 15: print("Pixel Format > DXT5") elif PixelFormat == 18: print("Pixel Format > RGBA8") else: print("Unknown Pixel Format > ",PixelFormat) if PixelFormat == 12: texFmt = noesis.NOESISTEX_DXT1 elif PixelFormat == 14: texFmt = noesis.NOESISTEX_DXT3 elif PixelFormat == 15: texFmt = noesis.NOESISTEX_DXT5 elif PixelFormat == 18: texFmt = noesis.NOESISTEX_RGBA32 elif PixelFormat == 19: TextureBuffer = rapi.imageDecodeRaw(TextureBuffer, TextureWidth, TextureHeight, "b0 g0 r8 a0") texFmt = noesis.NOESISTEX_RGBA32 texList.append(NoeTexture(ResourceName, TextureWidth, TextureHeight, TextureBuffer, texFmt)) return 12 points
-
2 points
-
I've been chipping away at this for... Weeks now? I've been making improvements to the program called StudioCCS which is a model viewer/exporter for the .hack games. My primary focus is the original series' model animations. I have had some successes - characters largely now look a little bit off rather than twisted and deformed. I have, however, hit the limits of my understanding. An archived XenHax post indicates these use standard PS2 vif tags, and despite reading over the linked posts (through the wonders of the Wayback Machine), I still don't know what I can do. I've had some successes with fixing some of the rotation values so things don't look like garbage, and implemented a few things like exporting a current scene and exporting all animation data. A lot of what I've done is a little hacky, for now, and my code is a mess of commented out attempts and whatnot. My repo is here, and does include a built version in the bin/Debug folder (it's how what I forked from what doing, so I stuck with it): https://github.com/taarna23/StudioCCS I'm attaching 3 character models that the program will load. I hope someone will be able to help. ccs_chara_models.zip2 points
-
2 points
-
public static Byte[] iDecrypt(Byte[] lpBuffer, UInt32 dwKey = 0x6E6B7270) { UInt32 dwMagic = BitConverter.ToUInt32(lpBuffer, 0); if (dwMagic == 0x53524944) { UInt16 wFlag1 = BitConverter.ToUInt16(lpBuffer, 8); UInt16 wFlag2 = BitConverter.ToUInt16(lpBuffer, 10); if (wFlag1 == 1 && (wFlag2 & 1) != 0) { UInt16 wValue1 = BitConverter.ToUInt16(lpBuffer, 12); UInt16 wValue2 = BitConverter.ToUInt16(lpBuffer, 14); dwKey = (UInt32)(dwKey * (wValue1 ^ wValue2)); UInt32 dwSize = ((BitConverter.ToUInt32(lpBuffer, 4) + 3) >> 2) - 4; Boolean dwRemaning = ((BitConverter.ToUInt32(lpBuffer, 4) + 3) >> 2) == 4; if (!dwRemaning) { for (Int32 i = 16; i < dwSize * 4 + 16; i += 4) { UInt32 dwData = BitConverter.ToUInt32(lpBuffer, i); dwData ^= dwKey; dwKey = 5 * dwKey + 1; lpBuffer[i + 0] = (Byte)dwData; lpBuffer[i + 1] = (Byte)(dwData >> 8); lpBuffer[i + 2] = (Byte)(dwData >> 16); lpBuffer[i + 3] = (Byte)(dwData >> 24); } } } } return lpBuffer; } FS.DIR is encrypted, so the code above will help to decrypt it. if someone wants to check it and help to reverse structure i also attached the decrypted file. Looks like entry table is flipped... some examples Some correct paths FS_DECRYPTED.zip2 points
-
2 points
-
I'm monitoring your posts and your activity in general. No please not thx, nothing and keep, keep asking. This is your last notification.2 points
-
Usage: Export text: Run ExportText.exe, select *.Localization_Package file Import text: Run ImportText.exe, select translated file PoPForgottenSandsTextToolByGier.7z2 points
-
The locres file refers to a file that contains text in the Unreal Engine. Depending on the game, some use locres files while others use uasset files. Please clarify which game you are referring to. And before creating a new thread, please make sure to use the search function in this forum.2 points
-
Yeah, but the problem is that the previous maybe positions I found had too many zero vectors. These ones look better - maybe the previous ones are the rotations? edit: yay, that seems to work (without rotations atm), save as cityman1.smd file: version 1 nodes 0 "jtroot" -1 1 "jtbody" 0 2 "jtwaist" 1 3 "jtchest" 2 4 "jtrshoulder" 3 5 "jtrarm" 4 6 "jtrelbow" 5 7 "jtrwrist" 6 8 "jtrpalm" 7 9 "jtlshoulder" 3 10 "jtlarm" 9 11 "jtlelbow" 10 12 "jtlwrist" 11 13 "jtlpalm" 12 14 "jtneck" 3 15 "jtmouth" 14 16 "jtlip" 15 17 "jtlleg" 1 18 "jtlknee" 17 19 "jtlankle" 18 20 "jtltoe" 19 21 "jtrleg" 1 22 "jtrknee" 21 23 "jtrankle" 22 24 "jtrtoe" 23 end skeleton time 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1 0.000000 3.300000 0.000000 0.000000 -0.000000 0.000000 2 0.000000 0.402560 -0.178039 0.000000 -0.000000 0.000000 3 0.000000 0.580854 0.078039 0.000000 -0.000000 0.000000 4 -0.400000 0.521687 0.100000 0.000000 -0.000000 0.000000 5 -0.354819 -0.119668 0.000002 0.000000 -0.000000 0.000000 6 -0.059615 -0.945793 0.041228 0.000000 -0.000000 0.000000 7 0.000000 -0.731849 -0.031247 0.000000 -0.000000 0.000000 8 -0.040038 -0.391559 -0.009981 0.000000 -0.000000 0.000000 9 0.400000 0.521687 0.100000 0.000000 -0.000000 0.000000 10 0.354819 -0.119668 -0.000000 0.000000 -0.000000 0.000000 11 0.059615 -0.945796 0.041228 0.000000 -0.000000 0.000000 12 0.000000 -0.731846 -0.031247 0.000000 -0.000000 0.000000 13 0.044455 -0.391561 -0.009981 0.000000 -0.000000 0.000000 14 0.000000 1.055681 0.036543 0.000000 -0.000000 0.000000 15 0.000000 0.060915 -0.159504 0.000000 -0.000000 0.000000 16 0.000000 -0.004216 -0.124180 0.000000 -0.000000 0.000000 17 0.300000 -0.398914 -0.076741 0.000000 -0.000000 0.000000 18 0.000000 -1.214391 -0.019746 0.000000 -0.000000 0.000000 19 -0.000000 -1.312631 0.048992 0.000000 -0.000000 0.000000 20 -0.000000 -0.374064 -0.777951 0.000000 -0.000000 0.000000 21 -0.300000 -0.398914 -0.076741 0.000000 -0.000000 0.000000 22 0.000000 -1.214391 -0.019746 0.000000 -0.000000 0.000000 23 0.000000 -1.312631 0.048992 0.000000 -0.000000 0.000000 24 0.000000 -0.374064 -0.777951 0.000000 -0.000000 0.000000 end1 point
-
1 point
-
Addon curtesy of REDxEYE __init__.py to be used with https://github.com/REDxEYE/UniLoader and with it there is my audio .raw file converter all the extracted resources can be found here ill link my extractor aswell if i can find it https://drive.google.com/file/d/10uo-DmmpNkiYlogR9eWmIyy74_AfaM05/view Program.zip1 point
-
1 point
-
if you want to extract Resources.mpk, Use Patch.mpkinfo from game folder !! rename Patch.mpkinfo to Resources.mpkinfo and put it in the same folder with Resources.mpk. sorry this is my mistake for not giving instructions. i don't know why Patch.mpkinfo can work on Resources.mpk1 point
-
Then please extract the other bundles (one with skeleton) from the zip because I don't have the time to do it. Also it would be nice to have a picture from "unproper rigging".1 point
-
Struct of SGS/SGC is pretty much same... Here's some info... //------------------------------------------------ //--- 010 Editor v14.0 Binary Template // // File: // Authors: // Version: // Purpose: // Category: // File Mask: // ID Bytes: // History: //------------------------------------------------ LittleEndian();OutputPaneClear(); local uint32 i,j,k,l,TotalSize=FileSize(); string Sign; struct { do { struct { uint32 ResourceSign; enum <uint32> { Mesh = 0, Bone = 3, Material = 5, MaterialEffect = 15, Skeleton = 18, }ResourceType; uint32 Unknown_2; uint32 Unknown_3; uint32 ResourceSize; local uint32 ResourceInfoEndOffset=FTell(); byte ResourceData[ResourceSize]; local uint32 cPos=FTell(); }ResourceInfo; } while (ResourceInfo.ResourceSign == 12 & ResourceInfo.cPos != TotalSize); }ResourceTable; EDiT: Now you can dump it with this bms script. ################################### get BaseFileName basename get FileSize asize get Sign string do get ResourceSign uint32 get ResourceType uint32 get Unknown_2 uint32 get Unknown_3 uint32 get ResourceSize uint32 savepos ResourceOffset getdstring ResourceData ResourceSize savepos cPos if ResourceType == 0 set Extension string "mesh" elif ResourceType == 3 set Extension string "bone" elif ResourceType == 5 set Extension string "material" elif ResourceType == 15 set Extension string "materialEffect" elif ResourceType == 18 set Extension string "skeleton" else set Extension uint32 ResourceType endif string FileName p= "%s/%u.%s" BaseFileName ResourceOffset Extension log FileName ResourceOffset ResourceSize while ResourceSign == 12 & cPos != FileSize1 point
-
Dunno. If I had known the cars have already been reversed I'd checked the character SGS instead.1 point
-
You can download it online. You can use shadps4-win64-qt-0.7.0 to unpack PKG files. Or use fake pkg to unpack pkg files. With PS4, you need the sys_modules folder you need to run shadps4.1 point
-
1 point
-
1 point
-
1 point
-
because the structure is different Previously you used the android version code to unpack the model: but after the model there is still a skeleton and after the skeleton there is still a lot of data. I haven't checked what it is1 point
-
There are no plans for adding those features to ImageHeat, but you can do it already by using ReverseBox directly (it was designed to work this way) Here's an example https://github.com/bartlomiejduda/Tools/blob/master/ReverseBox_Demo/Raw Image Edit - Example 1/raw_image_edit_example1.py1 point
-
Here is the Script, I hope this provides use for other games with the RSF format. final note is that I found some RSF that don't contain XDNI or 16DI tags and so I've not figured out how to import these. but these weren't too important to me as they were things like vehicles in the background scenery like ambulances etc. Feel free to ask for any clarifications Nascar_09_RSF_Import.py1 point
-
There is a lot here Use Crypto.json: C:\Program Files\Epic Games\UE_5.6\Engine\Binaries\Win64>UnrealPak.exe "X:\XboxGames\Coral Island\Content\ProjectCoralGDK\Content\Paks\ProjectCoralGDK-WinGDK.pak" -Extract "X:\XboxGames\Coral Island\Content\ProjectCoralGDK\Content\Paks\Deneme" -cryptokeys="C:\Program Files\Epic Games\UE_5.6\Engine\Binaries\Win64\Crypto.json" CryptoFile.zip1 point
-
Try this program, it helped me in some games. uabea-windows night.zip1 point
-
Rugby 25 Blobset Tools and TXPK Creator - https://mega.nz/folder/7rwCkbDY#AMvbYrULQGH9_2N7RsOtBg/folder/nmZgXR7A1 point
-
1 point
-
I've just released a new version of ImageHeat https://github.com/bartlomiejduda/ImageHeat/releases/tag/v0.14.2 Changelog: - Added changing canvas color feature. Three colors are available: Gray (default), black and white - Added config file feature. Now program's settings are stored in "config.ini" file - Added translation feature. Two initial languages are supported for this release: English (default) and Polish - Rewritten logic for indexed formats. Now there is an additional combobox where palette format can be selected - Added support for Nintendo Switch swizzling - Added support for PAL_I8A8 format - Added tooltip for longer filenames in Info Box - Fixed bug with mixed shortcuts when using CTRL or SHIFT - Removed support for some rare pixel formats (e.g. RGB121) - Added support for showing palette file name in GUI - Added shortcuts (N/M) for changing palette format - Removed rawutil dependency completely1 point
-
1 point
-
Huge thanks to swuforce for the scripts! Use: 1.) Download and istall the autoit: https://www.autoitscript.com/site/autoit/downloads/ 2.) Search the script and paste in "Include (put these files to your AutoIt Include folder)" folder. 3.) Start the game script export-import tool. (some scripts are already out of date) Download: swuforce scripts source codes.zip1 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!