39 Commits

Author SHA1 Message Date
YeLike
be3bf61c82 [CatSystem2] 封包支持 2026-04-28 23:13:48 +08:00
scientificworld
c1bef5d0b2 Merge remote-tracking branch 'add-catsystem-arc-zt' 2026-01-26 13:21:58 +08:00
morkt
bfd81f9ec4 Formats update.
(HG3): attempt to recognize swapped Red/Blue channels.
Fairytale BDT archives.
(XP3, VF): add 'exe' to extensions list.
(DXR): consolidated Macromedia Director archives.
(SND): support mp3 streams.
(QPK): PSP resource archive.
(GRC): support encrypted images.
2023-09-14 19:17:31 +04:00
Robert Jordan
3f5795a5e0 implemented '.zt' archives.
Add CatSystem2 `.zt` extension archive format (*CatSystem2 pack file*).

* Usage: Extras/export pack files for CatSystem2 - often used to save wallpapers, wav files, or other extras to the user's computer.
* Tag: `ZT/PACK` (chosen over *just* `ZT`, based on the devkit tool name: `ztpack.exe`, which also describes it as a *"pack file"*).
* Extension: `*.zt` (found in `export.int` archive).
* Signature: No file signature of any kind, immediately starts with an entry structure. A lot of sanity checks have been added.
* Hierarchic: Yes, although this is rarely used, and CS2's implementation is rather buggy.
    * Buggy enough that Frontwing gave up and started putting zip files **into** zt files!
	* The specification at least, is still well defined.
* Archive layout is the standard offset-next approach seen in other CS2 formats. But there's two offset-next fields, one for subdirectory entries, and one for the next flat (current) directory entry.
    * Folders have their own entries, which are what point to child file entries.
2021-05-25 22:44:41 -04:00
morkt
3f672e8594 (HG2): support limited depth images. 2019-03-11 10:46:01 +04:00
morkt
4664274125 implemented 'CsPack2' archives. 2019-03-11 10:45:14 +04:00
morkt
1c0c9e62c7 (INT): reworked widget backend. 2019-01-06 23:23:40 +04:00
morkt
63e321ca62 (HG3): fixed Jpeg reader (#214) 2018-11-02 06:14:02 +04:00
morkt
a711f02e45 (HG3): recognize different contained formats. 2018-11-02 06:11:31 +04:00
morkt
1bdbaf714a (HG2): recognize older version. 2018-10-08 08:45:12 +04:00
morkt
9f3b92e0c4 (HG3): recognize 24bpp images. 2018-09-13 20:45:20 +04:00
morkt
cd4e1174af fixed code to work with new resource settings interface. 2018-01-08 20:04:23 +04:00
morkt
8724e8131c (INT): added scheme lookup by executable name. 2017-07-28 16:53:34 +04:00
morkt
42dce0e586 (ExeFile): new class to seek for resources within EXE files. 2017-01-23 18:35:16 +04:00
morkt
c771b13d4e renamed some ImageDecoder properties and classes. 2016-10-26 15:42:27 +04:00
morkt
2c06c1cbcd added some IImageDecoder implementations. 2016-10-26 05:10:30 +04:00
morkt
bb18303eb4 IBinaryStream migration. 2016-10-16 09:22:53 +04:00
morkt
f1d66206bc (IResource.CanWrite): new property.
(ArchiveFormat.CanCreate): renamed to CanWrite.
2016-10-11 00:05:22 +04:00
morkt
db0d39f863 (Blowfish): moved to GameRes.Cryptography namespace.
(BlowfishDecryptor): ICryptoTransform interface implementation.
(BlowfishStream): removed as unused.
2016-10-08 05:06:29 +04:00
morkt
303a8551b0 Crc32 implementation moved to separate file.
this implementation uses 'normal' polynomial representation unlike Crc32
defined in GameRes.
2016-08-19 09:29:06 +04:00
morkt
36494147a5 (MersenneTwister): moved to Cryptography namespace. 2016-08-02 05:16:20 +04:00
morkt
60fdc6e70f (IntOpener): redundant directory clear. 2016-03-05 17:21:06 +04:00
morkt
92caed4901 (IntOpener.TryOpen): clear directory before attempting new entry size. 2015-12-07 18:20:36 +04:00
morkt
bfc1d4e5ee implemented HG2 images containing multiple frames. 2015-11-30 03:52:18 +04:00
morkt
3a6f30f316 use TgaStream.Create where appropriate. 2015-11-30 03:50:03 +04:00
morkt
ca919c1ee9 implemented CatSystem HG2 images. 2015-11-29 12:28:12 +04:00
morkt
bc0af8d910 overhauled HG3 reader. 2015-11-29 12:27:49 +04:00
morkt
dea492a27f support old INT archives with different index entry size. 2015-11-29 07:29:45 +04:00
morkt
aed3a38bf8 (Hg3Reader.ApplyDelta): replaced 4 tables with one multi-dimensional array. 2015-11-21 10:25:42 +04:00
morkt
1f7e1e9f50 (IntOpener.DecipherName): check for array bounds. 2015-11-20 17:47:02 +04:00
morkt
33e83b196d implemented key extraction from executable resources for encrypted INT archives. 2015-11-20 01:01:25 +04:00
morkt
2b592c89f3 refactored INT archives implementation. 2015-11-17 21:33:24 +04:00
morkt
0dc038be69 (Hg3Opener.OpenEntry): flip image according to Hg3Reader. 2015-10-19 09:17:14 +04:00
morkt
4b2217d80c multi-frame HG-3 images could be opened as archives now. 2015-10-19 09:08:56 +04:00
morkt
19d707828c refactored HG-3 decoder. 2015-10-19 09:08:23 +04:00
morkt
2d1f18903a use ImageData.Create method instead of BitmapSource.Create. 2015-10-12 12:16:23 +04:00
morkt
9a8bff184d implemented external storage of resource schemes. 2015-09-18 01:27:53 +04:00
morkt
46dbf2b142 GameRes refactoring.
(FormatCatalog.CreateEntry): method renamed to 'Create' and made generic
towards Entry type.
2015-08-30 22:34:06 +04:00
morkt
b05c253e8b reorganized project directory structure. 2015-08-19 21:40:32 +04:00