Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 01/18/2025 in all areas

  1. 10 points
  2. I'm going to do tools for it, and release it here on reshax. I plan to support characters and maps, like it was before with FF7 remake.
    8 points
  3. Good news. Issues with missing objects and incorrect normals were fixed. Now tool is really close to release.
    8 points
  4. Its getting there, I have more objects placed now. But still not all.
    7 points
  5. Currently testing map objects placing. Not ready yet, but hopefully soon.
    5 points
  6. Got staticmeshes working, now time to place them on a map.
    5 points
  7. Tools for Spider-Man 2 PC port will be released here. Right now main priority is model export/import. Usage will be very similar to Spider-Man 1 import tool. Tool already works, but has some restrictions. And these restrictions are different from SM1. For example, there is no more limit for number of bones, which means any model can be imported, including any head model, or spiderman mask. Another example is that lookgroups now have more complex layout, which is not supported yet. Second UV channel not supported now, but will be added soon.
    4 points
  8. Lot of great work being done in this thread, I've done a Lot of IDV extracting with the old QuickBMS scripts initially shared around on Xentax, and thankfully was able to back up all the files from before the new engine update, and have been extracting from those. But there's quite a lot of skins I'd like to extract to use in animations, and the old script doesn't work obviously. Thanks to everyone for their hard work in here. I've not seen the NeoXtractor before, but it seems really good, and hella helpful! Thank you for sharing it! I'm hoping to see more updates to NeoXtractor though, as it seems a lot easier and better to use just one app, to view the .npk, rather than having to decompile the entire thing, and then blindly browsing via RMA, which is what I have been doing this entire time. (I don't know how most people here get their textures, but I just use Ninjaripper 2 to extract them from the game whenever I find a model to use, as the textures are All over the place when extracted from the .npks..) Also, TeaEffTeu I've seen you around a few times and matched with you a few times recently on tha NA server! I always thought your name was fun, but I had no idea you were up to all this in the IDV community. Thanks for contributing to this, it's a huge thing for me, as someone who is a 3D animator and artist, being able to extract the models to use in Blender and such is not only fun, but just really cool. Thanks for contributing to that! Small world lol I remember altering my old BMS script in the past to kinda work when they made the new-ish .npk format after Fools Gold came out, but a better edit came along from someone else soon after. I'll make sure to share any helpful info I can involving the BMS scripts, or just the file formats in general. Thanks once again to everyone helping with this process! ^^
    4 points
  9. Thank @Franco for help me test importing text into gameresources_patch1_pc2.resources. It will be completed at least by next week or later.
    4 points
  10. I finally figured it out (after you mentioned my files looking completely different to yours.) It turns out when I used SH2Unpack it either didn't extract the internal file structure correctly or something got scrambled during the extraction process. So, I decided to go back, this time using Nistro's sh2ex Python script and now everything works as should and is perfectly viewable in software. Oh well, you live, you learn! Thank you for the help, everyone.
    3 points
  11. I had this idea some time ago already because I sometimes struggle to remember which standard tool I need to get a hold of different platforms, so I'm starting this list to have everything in one place. Also serves as a place to centralize some basic information for beginners to get started with VGM ripping or data mining in general. Of course this list is incomplete and doesn't include things like scripts for different engines. I'll add links to download or GitHub pages if I can find them. If you have another tool at the ready, post here and I'll edit this post. I'll leave out vgmstream and QuickBMS as those should be familiar enough. @admins - move to appropriate forum if this is the wrong place for such a post. ROM extractors/converters Nintendo: GameCube CISO > GCBM - https://github.com/AxionDrak/GameCube-Backup-Manager/releases Wii nkit & GameCube gcz > NKit - https://gbatemp.net/download/nkit.36157/ (or use Dolphin below) Wii rvz > Dolphin - https://dolphin-emu.org/ Config > Paths > add dir > right-click on image > Convert... Wii brsar (U-8 & containing .BIN Lz77 in some cases) > ShowMiiWads - https://github.com/WiiDatabase/showmiiwads-mod Tools > Unpack U8 Archive / Lz77 Decompress (needed for the icon music) WiiU wua > ZArchive - https://github.com/Exzap/ZArchive/releases drag wua onto exe WiiU wux > wudcompress - https://gbatemp.net/threads/wii-u-image-wud-compression-tool.397901/ drag wux onto WudComress.exe > open and extract with VGMToolbox (needs disckey.bin in same folder and ckey.bin in [vgmtoolbox]\external\wiiu) 3DS .3ds > Citra - https://citra-emulator.com/download/windows/ add game directory > right-click > Dump RomFS Switch NCA/XCI/RomFS > HACTool - https://github.com/SciresM/hactool, GUI: https://github.com/bodyXY/Ultimate-Material-Hactool-GUI/releases Switch NSP > Yuzu Sony: PSX bin/cue (PS2 in rare cases) > open .cue with ISOBuster and extract RAW right-click > Extract RAW Data (2352 bytes/block) (for .xa audio and .str video only) PSX, DC and old PC games with audio tracks (Red Book) > mount with Daemon Tools, then copy tracks with ExactAudioCopy (https://www.exactaudiocopy.de/) set up EAC with https://captainrookie.com/how-to-install-and-setup-eac-and-rip-cds-to-flac/ PSP umd > UMDGen - https://www.romhacking.net/utilities/1218/ PS2 chd > CHDman - https://onionui.github.io/docs/advanced/chdman PS2 & PC iso > WinRAR/7zip PS3 pkg > PS3GameExtractor - https://www.psx-place.com/resources/ps3-game-extractor.824/ PS3/PSP EBOOT.PBP (PSN/minis) > PSN PKG Decryptor and Extractor - https://wololo.net/talk/viewtopic.php?t=27773 (mostly for mini) or PBP Unpacker - https://www.psx-place.com/resources/pbp-unpacker-0-94.206/ PS4 pkg > PS4 PKG Tool - https://github.com/pearlxcore/PS4-PKG-Tool Clear directory list > add current dir > Load PKG > View & Extract in top menu > Extract full PKG leave passcode at `00000000000000000000000000000000` (works with already decrypted pkg files) PS4 pkg (alternative) > PS4PKGViewer- https://www.psxhax.com/threads/ps4pkgviewer-a-ps4-pkg-viewer-by-lman-theleecherman.4784/ (for titles with non-standard characters) Extra > Extract Package and Tools > Export Unencrypted Files > All Others: Microsoft Xbox 360 XBLA pirs > wxPirs - https://digiex.net/threads/wxpirs-extract-content-from-xbox-360-demos-video-dlc-and-arcade-game-containers.9464/ or http://gael360.free.fr/wxPirs.php Windows 16/32bit InstallShield installer CAB files > unshield - https://github.com/twogood/unshield (at least if you don't have a 32bit Windows VM set up anyway) all other iso archives are either supported by VGMToolbox (https://github.com/Manicsteiner/VGMToolbox) or can be opened/extracted with WinRAR/7zip Misc. Tools > Extraction Tools > Generic > ISO/Archive Extractor Video demuxing: ffmpeg - https://github.com/FFmpeg/FFmpeg (always use with options `-vn -acodec copy`) you can use this batch in the video folder (auto-trying the most common format where ffmpeg should be used; remove the trailing `_track1` for videos that only have a single audio track) for /L %%k in (1,1,5) do ( for %%i in (*.mp4, *.m4v, *.mov) do ( ffmpeg.exe -i "%%i" -vn -acodec copy -map 0:%%k "%%~ni_track%%k.m4a" ) for %%i in (*.avi) do ( ffmpeg.exe -i "%%i" -vn -acodec copy -map 0:%%k "%%~ni_track%%k.wav" ) for %%i in (*.bk2, *.bik2, *.bik) do ( ffmpeg.exe -i "%%i" -vn -acodec copy -map 0:%%k "%%~ni_track%%k.bik" ) for %%i in (*.mpg, *.mpeg) do ( ffmpeg.exe -i "%%i" -vn -acodec copy -map 0:%%k "%%~ni_track%%k.mp2" ) for %%i in (*.wmv) do ( ffmpeg.exe -i "%%i" -vn -acodec copy -map 0:%%k "%%~ni_track%%k.wma" ) ) VGMToolbox - https://github.com/Manicsteiner/VGMToolbox (mainly for bik, thp, sfd as well as EA and Sony formats) Misc. Tools > Stream Tools > Video Demultiplexer OGMDemuxer - https://www.bunkus.org/videotools/ogmtools/ (part of OGMTools) drag onto exe Unreal Engine: UE Viewer/UModel - https://github.com/gildor2/UEViewer (UE 1-4) FModel - https://github.com/4sval/FModel (needed for UE5) Wwise audio engine parser > Wwiser - https://github.com/bnnm/wwiser (needs Python installed) Unity: AssetBundleExtractor - https://github.com/SeriousCache/UABE AssetStudio.net - https://github.com/Perfare/AssetStudio File > Load Folder > select folder containing the .asset files (loading can take quite a while) Filter > Sounds Extract > Extract filtered selection same for video if available Other tools: Flash SWF > FFDec - https://github.com/jindrapetrik/jpexs-decompiler GameMaker > UndertaleModTool - https://github.com/UnderminersTeam/UndertaleModTool Scripts > Resource Unpackers > ExportAllSounds.csx > No > Yes Wwise sound engine > Wwiser - https://github.com/bnnm/wwiser Nova Extractor > https://gamebanana.com/tools/6569 (file format scanner) sometimes helpful for quick checks regarding the number of files when writing scripts, not to be used for proper rips in 99% of the cases batch-renaming files > Flexible Renamer (just a suggestion; been using it for around 15 years now and I'm used to the layout; doesn't properly scale to hires displays) Things to not forget Include all videos in properly demuxed format (= playable in vgmstream) careful, some demuxers in VGMToolbox don't work properly (like the XMV demuxer in some cases) if only the header is missing, you'll need to provide an accompanying .[ext].txth file (or one per file) > make sure you grab the playback info from the video header Make sure you check ALL audio files to not miss jingles/cues that are sitting in SFX folders or archives music files can be as short as 1-2 seconds, so make sure you're not missing those among the sounds! Old PC games > install/autostart music Don't use purely digital versions for rips (GOG/Steam) when the game was released in physical form! Music playing during install > exit installer > open %TEMP% and clear as much as possible > restart installer > check for new folders - usually a plain audio file is sitting in the temp folder Music playing in autostarter > check on disc; if it can't be located, you might need to parse the exe (there's a QuickBMS script for that) Wii, WiiU, PS3/PSP/PS4/Vita > icon music Wii > sound.bin inside opening.brstm > use ShowMiiWads, rename to opening.[ext] WiiU bootSound.btsnd > \meta\ PS3 snd0.at3 > \PS3_GAME\ PSP snd0.at3 > \PSP_GAME\ PS4 snd0.at9 > \Sc0\ (usually) Vita snd0.at9 > \sce_sys\ move into the main folder together with the txtp files, adding `icon - ` to the name start FSB archives > leave all of them untouched and provide TXTP files for playback; don't split them, this can lose information Quick Guide - Creating PROPER rips Keep all file names, extensions, headers and external instructions intact If any audio format isn't natively supported by vgmstream, but the audio codec itself is supported > provide .[ext].TXTH files in each folder necessary and make sure they play correctly (or ask in the HCS Discord if a format can be implemented in case it's used in enough games) Formats supported by vgmstream - https://github.com/vgmstream/vgmstream/blob/master/doc/FORMATS.md TXTH documentation - https://github.com/vgmstream/vgmstream/blob/master/doc/TXTH.md Keep the game's original folder structure! Extract everything into a `root/` subfolder, then delete all files and folders not needed (images, shaders etc.) until you're left with only the music, cutscenes and videos. Careful to not delete the following: external audio instruction files that provide info about loop points or references to the music system bigfiles that might contain additional music like jingles/stingers/cues Archive/bigfile extraction depends on the case: if it repeats an existing folder structure, integrate if it includes folders but doesn't repeat an existing folder structure (e.g. all assets in one file), extract into the same folder it is located if it doesn't include any folders, extract into a subfolder of the same name, delete the bigfile and add its extension to the folder name Properly demux all videos and make sure the resulting audio files are playable wma sometimes needs to be renamed to wma2 in order for vgmstream to recognize the format; wma_lossless still seems to be unsupported at the moment When everything is playing correctly, place one of the attached batch files in your game folder (i.e. the folder containing the root folder) and run it. Rename the txtp files (loosely sort by using `music - `, `video - `, `jingle - ` etc.) and manually split out FSB sub-tracks containing music make sure internal track names aren't lost when referencing sub-tracks Check if everything gets looped and faded correctly and if not, provide loop and fade markers inside your txtp files. Often times, ignoring a loop with `#i` or forcing a loop from start to end with `#E` is already enough. TXTP documentation - https://github.com/vgmstream/vgmstream/blob/master/doc/TXTP.md HAPPY RIPPING! txtp_creator.7z
    3 points
  12. Hi everyone! Formerly I made a text unpacker/repacker for Sniper Elite games and shared with you. However it had some problems, bugs, and was made in php, which I had troubles to make it a useable .exe to share with you. So I decided to reprogram it in a more modern language and environment. It took several days, but after all, totally worth it. I fixed several bugs, made new ones, but now it works with more Rebellion games and has more convenient usage. It usable with gui and command line too. Right now works with Sniper Elite 2-5 (the first one is too old and have different file format, have a separate repacker), Nazi Zombie Army 1-4, Strange Brigade, but probably works other Rebellion games which uses asura engine. It is downloadable from my website: http://lajti.hu/se_repacker.php I hope you will have fun to (not machine) translate with these games. Cheers!
    3 points
  13. Was checking out the samples and in 0x15300 the Integer value of 59600 corresponds with the what I refer as the model's chunk size. Assuming the first 16 bytes are header info we skip the value right at the start of the chunk data 0x15310 we end up at the end of the mesh. Each model should be made of multiple submeshes, where the information is also stored alongside it's name, in 0x15310, the submesh has 54 verts packed in 32 bytes, in total 1728 bytes, where the vert data starts at 0x1530C, and an additional 4 bytes of 00 00 00 17 that end the submesh chunk. Reading only within the model's total chunk gives me 21 Submeshes in total, which are built correctly, and if I build more it gets broken. Also, I think the 4 bytes right before the vert data is how it should build the faces to fill blanks but curious as to why its only per submesh that it changes, and not stored as a flag along with the verts This was actually alot closer to the PS2 Format I was working on before than I thought when I looked more clearly into the file's structure
    3 points
  14. @Franco @PlounchBoyTry it, pack text to resources. if you need more information, read README. IndyRes TextInjector.zip
    3 points
  15. Okay, I will do more research on font editing, and you can add your own characters.
    3 points
  16. My job is not to do YOUR work. My comment is for other people so they don't have the hope for something that not exist
    3 points
  17. Can you please explain your question more clearly as you've mentioned several unrelated things in one sentence.
    3 points
  18. Dear Reshax community, We’re grateful to have you as part of the Reshax family, and we hope you’ve found value in the discussions and resources our forum provides. As you may be aware, maintaining an active online community comes with costs—particularly for hosting and the necessary licenses to keep the forum running smoothly and securely. For almost a year, we’ve been covering these expenses ourselves to ensure the forum remains accessible to all. However, as the community continues to grow, so do the associated costs. We need your support to help cover the expenses for hosting services and licensing fees, which are essential for keeping the forum operational and maintaining its quality. Any contribution, no matter how small, will go directly towards these costs, allowing us to continue providing a reliable and engaging platform for everyone. Your support will help us ensure that the forum remains a place for learning, sharing, and connecting without disruption. We understand that not everyone is in a position to contribute, but if you are able to help, it would be greatly appreciated and would make a significant difference in keeping Reshax running strong. Thank you for being a part of our community and for considering supporting us. Together, we can sustain Reshax as a valuable resource for all. DONATION : https://reshax.com/clients/donations/1-license-and-hosting-cost/ Your Reshax team forever :)
    3 points
  19. yakuzatool.zipRun aexportall.py to export all text, edit the txt files and import with aimportall.py. You can send the other file too.
    2 points
  20. I think the uasset structure is very sensitive, it crashes at the slightest error. I'll write when I'm sure.
    2 points
  21. This tool succes export + import the file... But it doesn't convert offsets and character limits \ size well (not at all). --> crash It's possible to solve it with character limits (counting characters according to ANSI), but it's terrible... 😄 I hope that eventually someone will make a PUBLIC tool... (the non-public one is already ready for a few people... ugh..) Avowed uasset export.zip
    2 points
  22. I've developed a solution for the CompBlks format, but I'll need to clean up my implementation before I release it.
    2 points
  23. 2 points
  24. Version 0.4.1

    781 downloads

    Custom model import tool v0.4 beta + model export (from .model to .ascii) Usage: spiderman_2_pc_mi_04.exe <model> <ascii> <materials> You can use models previously converted form the game: export .model file with ModdingTool, then pass it to spiderman_2_pc_model.exe This will output a model in .ascii format, and materials.txt. Note that due to new LODs/lookgroups layout, export tool now exports ALL meshes with all LODs. You may want to delete lower LODs before importing back to game.
    2 points
  25. https://github.com/Ret-HZ/reARMP It works by drag and drop
    2 points
  26. You're right to ask that, because we're not on this site just to find solutions to our translation problems, but above all to share the ones we've found. I have successfully translated this game in the past using the tools below. I wrote about it on Zenhax. They can be used to extract data from the vis file, extract text from the vbin file and reinsert it. They can also be used to recreate the vis file. These tools can also be used for other modifications (scripts, fonts, unmasking images, etc.). Visionaire Tools.7z
    2 points
  27. Hello, yesterday after writing my last message, I immediately started with the work, the whole day till around 22:00. Yep, exactly this. I understood this soon after starting that I need only the specific functions which are inside of the scripts. I mainly used the function unswizzle_ps2 from swizzle_ps2.py and swizzle_psp from swizzle_psp.py I also only tried the unswizzle_ps2_palette function a few times, but didn't focus on it, because I haven't found a swizzle_psp_palette and decided to try all the textures with the original ps2 palette, to see how it will be. I understand that I don't need ResHax to learn Python, I haven't planned to ask for help here about Python itself 😄, this forum is focused on something different 👍 I started with the assistance/help of ai, through the whole day I communicated very much with ai for configuring the scripts which I explained very detailed, the very first short scripts worked like a charm, but later there were many not functionating outputs which were the longer and more complicated scripts, but in the end I received scripts after my wishes/configurations. Ok, I will note this for possible future work with Python, thank you for the tip 🙂 I understood everything of this what I said earlier. I understood that when working with python scripts you don't need specific commands like in other programs, because every exact move is written in the python script. I did every tiny changes in Notepad++ since ai did the main job with the scripts. Alright, I have two codes with your functions which do the unswizzling from PS2 and swizzle into psp, but with the help of ai I will try to create an all in one script, which will read the basic information about the textures from a .txt files so the script converts multiple textures at once with the needed parameters. Sorry for the mess with these many quotes, but I wanted to show that I take your answers seriously and really appreciate your help. Before writing this answer I finished the work today which I started yesterday, and I manually converted each texture by launching the 2 scripts for each of the texture. There are a total of 52! After that I manually added each (PS2) palette to each texture in HxD and the result of them all together was put into the .gfx file which is used by the game. While doing this I faced an unexpected problem for me. All of these textures have a BPP of either 4 or 8, but there was only one special which wasn't! It has the Comptype: VQ2 I have no idea what it is. All other have 2 offsets (Start offset for palette and End offset for palette+start of the texture) but this one has 3 offsets... I ignored this texture and pasted it how it is without changing anything on it. This is the result, exactly what I wanted for a looooong time: It just needs polishing, the textures are not clean enough but I am very sure (hopefully) that this is because I used the PS2 Palette without converting it to PSP. The healthbar is displaying a little bit wrong (Some colored background behind the heart), the speedometer also looks kinda weird, map is missing on radar and in general the textures are not smooth enough how they should be. Yesterday I tried to edit one palette manually after this method which I discovered and If I remember correctly, the texture had a smooth edge after that. The felony bar when in car and and when on foot seems to be not working, but this is an unrelated issue (not a graphic issue, maybe rather something .bin file related), which I will have to analyze later. So my next goal is to combine all these scripts into one, which will do the following: -Read basic info from .txt file which will be applied to each palette+texture individually for the converting process -Unswizzle Palette from PS2 -Unswizzle Texture from PS2 -Swizzle Texture into PSP -And hopefully some function which will put them all together in one file in an order like this: Palette1 Texture1 Palette2 Texture2 and so on... And I will play around with the file which has the comptype: VQ2 to see what is possible, this one is a real gamebreaker....😒 I want to say thank you very much for helping me to achieve my long awaited goal by telling me the needed information and providing such important scripts!! 🙂😀🤝 Edit: I checked the 9 steps again which you provided earlier and noticed at step 8, that swizzling the palette to psp palette is not neccessary. And I think the time has come to already mark your first answer as solution 🙂
    2 points
  28. If you rename the decompressed file to .BFRES it will open in Switch Toolbox:
    2 points
  29. Well, I have one piece of software that can fit easily to this category. It's not a standalone program, but rather plugin for OmegaT, which makes translating some games a little easier. https://github.com/bartlomiejduda/OmegaT-Character-Limiter-Plugin It is designed to help in cases where translated text can't be longer than original text and you want to insert new text without modyfing original offsets.
    2 points
  30. That's correct. You can compare multiple swizzling algorithms here https://github.com/bartlomiejduda/ReverseBox/tree/main/reversebox/image/swizzling It's my python implementation for each console. Not everything is there (like Nintendo Switch swizzle is missing currently), but you'll get the idea. Yes, you got it right! 🙂 I'm the creator of ImageHeat and I'm still working on adding new functionalities and fixing bugs. This program is free and open source and I'm very happy to see that users use it to analyze file formats and solve various graphics issues. You made my day with this comment. 🙂 So your goal is basically to convert PS2 textures to PSP format. That can be achieved, but probably not fully automatically (by script or something) and I'll explain why is that. After looking in ImageHeat's source code you would notice that it is just a frontend app (GUI) for ReverseBox dependency. https://github.com/bartlomiejduda/ReverseBox So all the heavy image decoding/encoding/swizzling/unswizzling logic is handled by ReverseBox, not the ImageHeat itself. What you really need to do to achieve your goal is to follow these steps (either it's done automatically by one script or manually by using some external tools etc.) 1. Unswizzle PS2 image data 2. Unswizzle PS2 palette 3. Decode PS2 image data and palette 4. Save it as some popular image format like PNG/DDS etc. 5. (optionally) Edit your image file in some editing software like GIMP or Adobe Photoshop and then save new PNG/DDS file. 6. Read RGBA data from your PNG/DDS file and encode it as a new image data and palette in the format used in PSP game 7. Swizzle your image data (with PSP swizzle algorithm) 8. Save it as RAW file (unswizzled palette + PSP swizzled image_data) 9. Copy your new file to game to see if everything works. Although items 1-5 and 7-9 are realtively easy to do right now (see some of my parsers as an examples https://github.com/bartlomiejduda/Tools/tree/master/ReverseBox_Demo), there would be an issue with item 6 as encoding is not fully supported by ReverseBox - especially for indexed formats. So as for today you would need to find a way to encode your data manually, but everything else can be automated. I'll try to add this encoding feature to ReverseBox in the future as you're not the first person who needs it. 🙂
    2 points
  31. 2 points
  32. You might search for the skipflag, if any. There's 20 mesh blocks after 0x43CB8, the last 30120500 block. Mabe they are related? Or it's possible that another auto creation algo is required for the face indices because if we're looking at the uvs of a "superfluous" mesh we see good and bad faces very obviously. Furthermore I've split up said sub mesh into two parts and it appears that the 2nd one contains more "good" than "bad" faces: edit2: it turned out that strips were not the best choice for the uvs but standard FIs give too less faces:
    2 points
  33. It's alright mate, at least we're on the right track with this one lel
    2 points
  34. Hello! New here. I just wanna point out that I have ripped the Sopranos models (not all of them) in a-pose from what was a corrupted version of the .iso done in a ROM corrupting program called RTC (Real Time Corruptor) and I've happen to stumble upon a stockpile which did included the models in a-pose. and after so much trial and error I finally got Ninja Ripper to get the models ripped. (Although there were some imperfections like distortions, misaligned UVs) I still have managed to get (some) of them fixed. I tried reaching out to those who were originally gonna tackle those .spg2 models down on a XenTax thread but had no luck with viewing them. I did contact one dude who wanted them through discord, but no reply was given back, unfortunately. And overtime I kinda started to think less and less of this until I've recently found out about this cool stuff you guys are doing. If anything can be done for the best, I'm happy enough to help you guys out : )
    2 points
  35. OK, each mesh has a header and some unknow bytes are there. I chose these as ID "80 00 00 00 40 02 30 12 05 00 00" to collect all meshes but bytes "40 02" changes in some meshes so now I chose only these bytes as ID: 30 12 05 00 00. Now it reads all meshes but we have a new problem, there are a lot of extra faces, lol(this shit always happens with PS2 models). I guess you can delete those manually. Yes, UVs look fine I think. Here is the script if you want to test it fmt_the_sopranos_ps2_sgp2.py
    2 points
  36. How to decode what you just wrote? Anyway No file/sample = No help.
    2 points
  37. Use this for triangle generation: https://github.com/Sparagas/Triangle-Generator
    2 points
  38. > no longer have a way to contact who helped Greetings again Dizzy. > Is this image mask format common ... Yes. RLE byte masks using the high-bit for the opacity and lower 7 bits for the run length count are pretty common (I've seen them a few times before). > Not sure why this works Because you're effectively masking off bits to just get the count, like you said x & 0x7F or x - 128. > I'm not sure why 0x80 is a special value A game could have arbitrarily chosen to use the low bit (0x01) instead and store the run in the upper bits (needing a >> 1), but using the high bit is easy to test and just requires a mask of 0x7F to get the count. > Is there a better way I can build this transparency mask, instead of pixel by pixel? Shrug, I know 0% about GDScript, but I can say that often "set pixel" functions on various image classes can be slower than desired, and that it's often efficient to supply all the data at once from a byte array. I see there's a set_data function, which might be faster, but measure your performance if you care ⏱️.
    2 points
  39. Version 1.3.0

    242 downloads

    Dragon Age The Veilguard tools. Work same as my previous frostbite tools. toc_dav.exe - dump tool Change .ini file parameters: - game path - dump path - selection to dump "ebx", "res", "chunks" or "all" Place oo2core_9_win64.dll from the game next to the tool. Then drop any .toc file onto .exe to dump assets. Or run from command line with 1 parameter - toc file name. Main file is default.toc, voice files are inside subfolders - en.toc and other languages Fb_dav.exe - model tool Takes .MeshSet as parameter. rgz_skeleton.ebx - main universal skeleton for all humanoids. Must be in the same folder. Game has 2 skeletons with this name, you need the one from "techanim" folder, which is bigger. If you need another skeleton, use its name as 2nd parameter. Or rename it to rgz_skeleton.ebx. Tool will try to find chunks automatically. If not, it gives error message with chunk name. Set of smd files - to fix distorted faces They are 2-frame animation files to transform head model to its normal state. fb_strands.exe & fb_strands_c.exe - hair tools Each hair model has .StrandHairResource and .StrandHairSet files, and also a small EBX file (about 5kb in size) next to it which has its parameters, including the initial position. This EBX file is usually called the same, with _strand_model.ebx or _model.ebx in the end of its name. Tool takes 2 or 3 parameters: fb_strands.exe <StrandHairResource> <StrandHairSet> [EBX] First 2 parameters are required, but if you add EBX in the end, it will try to place static part correctly. fb_strands_c.exe is experimental version for curly strands. It looks more or less fine, but not 100% proper, so i'm calling this tool experimental. Later it may be improved. Hairs will be exported as 2 OBJ files (one for flowing, one for static part) with curves, which can be later converted to meshes or particle systems in blender or other editor. OBJ files will have hair groups marked, which can be useful for rendering.
    2 points
  40. Donated $50 because I believe in this site. You should too!
    2 points
  41. Version 1.0.1

    11 downloads

    Currently, the test work has been carried out on Where Winds Meet, unless a certain game appears with the same index structure as theirs Applicable games Where Winds Meet Command processing Please put all the files you need into the same folder as the script patch mpk.py patch.mpkdb patch mpk.py *.mpkinfo Notice!!! patch.mpkdb only has the index of patchx.mpk or patchxx.mpk files For example patch.mpk patch1.mpk....patch50.mpk For other mpks, the index information should be in mpkinfo To make the script better handle, please do not put together .mpk files with the same number suffix. For example resources1.mpk LT1.mpk Because there are too many mpkinfo, many mpkinfo and mpk file names are not opposite. In some cases, there is no distinction logic written. If the numbers are the same, it may be misjudged as being to be processed. mpk If you really need to deal with it It is recommended to process step by step, such as importing resources1.mpk and resources.mpkinfo first. After the processing is completed, delete resources1.mpk and resources.mpkinfo in this folder, and then importing LT1.mpk and LT1.mpkinfo If you are dealing with mpkinfo named after the in-game name For example MpkCached_common_qinghe.mpkinfo It is recommended to put all patches of patchxxxx.mpk into this folder
    1 point
  42. SLPM-87214 Whistle! - Fuki Nukeru Kaze SLPM-87286 Gegege no Kitarou - Gyakushuu! Youma Daikessen(GeGeGe no Kitarō: Counterattack! The Great Yōkai-Demon War) SLPM-87121 GROOVE ADVENTURE RAVE - PLUE NO DAIBOUKEN SLPM-87174 Kaettekita Cyborg Kurochan SLPM-86932 KIDS STATION - KUMA NO POOH-SAN SLPS-02874 Kikansha Thomas to Nakamatachi …… GeGeGe no Kitarou is a great 2D action game
    1 point
  43. Regarding the Dalkon parser, a user on the server discussed it with a friend, who suggested that the issue is due to a missing DLL from a specific version of the C++ Runtime. To resolve this, I installed all available versions. However, I now get error 0x000007b, indicating that a required DLL is still missing. The problem is that many minor versions cannot be installed without conflicting with existing ones, making it impractical to install them individually. Is there any alternative solution for this? I tried to install all available versions but they ended up conflicting because some were already installed: https://github.com/abbodi1406/vcredist/blob/master/source_links/README.md
    1 point
  44. Is it worth the effort? Seems, it would be easier to create a "new parser" based on header files from the github project you linked to. (My personal opinion only, though.) Plus, it's not clear what Testing.exe and catalog.xml were good for exactly. (Might be worth a 2nd look if you could retrieve more information (or even sources) from web archives.)
    1 point
  45. Thanks. So before someone starts from scratch he should have a look at the python scripts, imho (though they were always a little bit hard to understand for me). (What were the results with the script from AlphaTwentyThree?)
    1 point
  46. Hey, Shako!! Happy to see you again! Apologies... I could not remember the exact details, I'll edit my original post, thank you! Also as you suggested here are some results of the script:
    1 point
  47. Hello Pepsee, before you send someone into a maybe frustrating job I'd really recommend to show some results with the blender script from the 2010 release of OSW. btw, I don't remember the script(s) of AlphaTwentyThree. (The Blender script was from M. Szkaradek123, iirc.)
    1 point
  48. Well, even after referencing the original Arcade documentation and combining it with the new DC discoveries, I'm still at a dead end: If I'm doing something wrong, I can't tell what that is. Here's the docs: Main header: char[23] filename; // 24 character filename that doesn't really contain anything useful uint32_t triangle_strip_table_pointer; // points to the first triangle_strip_t; uint8_t unk1; uint8_t unk2; uint8_t unk3; uint8_t submesh_count; // How many model_submesh_t instances exist; model_submesh_t[n] model_submesh_table; // One or more submesh headers. Usually no more than 17 typedef struct{ uint8_t bone_id0; // NULL on weapons? uint8_t bone_id1; uint32_t vertex_list_pointer; // points to a vertex_list_t uint32_t unknown; // Always 0x00000000? uint16_t vertex_count; uint16_t normal_count; int16_t bone_rotation_x; int16_t bone_rotation_y; int16_t bone_rotation_z; int16_t unknown; int16_t bone_position_x; int16_t bone_position_y; int16_t bone_position_z; int16_t parent_bone_id; } model_submesh_t; typedef struct{ float vertex_x; float vertex_y; float vertex_z; uint16_t vertex_index; uint16_t flags: // It's not clear what these do } vertex_list_t; typedef struct{ float normal_x; float normal_y; float normal_z; uint16_t normal_index; uint16_t flags: // It's not clear what these do } normal_list_t; typedef struct{ uint16_t vertex_index; // Reference to a vertex index fetched from a vertex_list_t; uint16_t vertex_color; // Influences shading uint32_t uv_coordinates; // UVs } triangle_t; typedef struct{ uint16_t strip_length; uint8_t uv_coordinate; // Why are there three UV coordinates? uint8_t unknown; triangle_t[strip_length-1] triangles; // Array of triangle_t elements; } triangle_strip_t; The current import script is attached below. soul_calibur_1_importer.py
    1 point
×
×
  • Create New...