Youjose / PyCriCodecs

Python frontend with a C++ backend for managing Criware formats.
65 stars 8 forks source link

HCA version question #12

Open Token713 opened 2 days ago

Token713 commented 2 days ago

This tool supports generating hca files of version 2.0. Do you know any tool that supports hca files of version 1.0? Thanks

Youjose commented 1 day ago

None from what I know, perhaps there's one in the official SDK (or the leaked one) but I never searched there, but from tools that are available in the internet, I do not know of any that support version 1.0. Perhaps it is possible to make an encoder of it, as it uses a slightly different method than V2.0 and V3.0. It's in my plans but it's very low priority and may never happen until presented.

Token713 commented 1 day ago

I found that CriAtomPlayer.exe can play both 2.0 and 1.0 versions of hca, and hcainfo (an hcainfo information viewer, view version and other information, link https://github.com/hozuki/libcgss) supports both 1.0 and 2.0 versions of hca information viewing, but I have a game, the official hca is 1.3 version, the tools I can find only support generating 2.0 version of hca, I imported the game and there is no sound. You said that 1.0 and 2.0 are slightly different, can you give me some advice, maybe I can modify it manually with HxD, this is my game data, can you please help me link:https://wwhi.lanzoux.com/iMOQT2h8qwfg Or, can you tell me the name of the leaked SDK? Thank you very much for your reply

Youjose commented 57 minutes ago

Windows flags the file you linked as malicious, I reccomend just sending the file as is in github, as that is better. In any case, a lot of viewers and decoders can decode and view info on versions v1.0 -> v1.3, just nothing on encoding them back to HCA. I don't know the full details of v1.3, I know that v1.0 used to have a working ATH chunk in its data. In v1.2/v1.3 this chunk is present but usually zeroed out. As for other codec information, there's some differences in chunks naming as well, v1.x uses dec\0 vs comp, as well some differences in VBR info. You can refer to VGMStream's implementation if you want details in code.

As for the SDK, you can maybe refer to the Internet Archive, and search around for Criware SDK.