I've spent some time researching HVP archives and now it's clear to me what type of hash function was used to store filenames.
It turns out it was just regular CRC32.
File format is available on the wiki here http://wiki.xentax.com/index.php/Obscure_2_HVP
with all the notes/comments that should be useful for further research.
My focus was mainly on PC version of the game, but afaik PSP/PS2/WII versions uses the same file format.
I was able to correctly guess 80-90% of all hashes for PC release.
Here are the current results:
Code: Select all
cachpack.hvp --> 98.73%
kinepack.hvp --> 89.29%
loadpack.hvp --> 84.32%
datapack.hvp --> 91.37%
To make a good use of filenames, I've created a HVP extractor (and some other tools as well)
All of them are available here:
https://github.com/bartlomiejduda/Tools ... bsCure%202
Usage is explained in the readme file.
It is possible to get 100% of the correct hashes, but it requires a lot of time.
If you want to help, you can send me a PM with correct filenames and I will add them to the tool.
Here is a tutorial with explanation how to do it:
https://ikskoks.pl/tutorial-how-to-rest ... -archives/
Also, game is able to read files outside of the archives, but I didn't figure out how to do it yet.
(even with the files unpacked in the correct directory, game preferred to load files from HVP archives)
If you know how to help with that, please let me know.
By the way, if you are interested in my "Obscure 1" research as well, here are the links:
http://wiki.xentax.com/index.php/Obscure_HVP
https://github.com/bartlomiejduda/Tools ... script.bms