Repository navigation
Add support for more resource formats and fix several extraction and decoding issues - #29
Conversation
Add the GswSys Pack 2.0 archive format and its GRP image format, supporting ヤミと帽子と本の旅人.
Add the IPFB variant (big-endian index) alongside the existing P00 archives, and rename the shared description to the Ikusabune engine. Register the p00-p09 data part extensions so parts can be opened directly, and detect each entry's type from its header (decompressing Z0/Z1 blocks first) so images and scripts get proper extensions.
Add little-endian T32/TBM variants and the console big-endian ones (T8aD/T8aC/T4aD/T4aC/T1aD/T1aC, TBMD/TBMC). Headers and parts tables are parsed by absolute offsets, including raw whole-image parts==0 handling and source clipping for negatively placed console parts.
The first 0x10000 bytes are XOR-encrypted with a keystream seeded from the file name (Mersenne Twister); the rest is a plain MPEG stream.
BroccoliPak matches the same layout already supported by the MOONSTONE implementation.
Add the IPG image format (raw RGBA32 pixels after a 12-byte "IPG0" header), used by SALA ONE and EDEN* (PSP).
Add the PB6 image format used by ACTGS engine PS2 games (8bpp with palette, or 24/32bpp pixel-RLE data after a 54-byte BMP-style header).
16bpp pixels were emitted as Bgr555 although PS1 stores red in the low bits, swapping red and blue channels. Rows are now read at their stored word width, 5-bit components are expanded by bit replication, and black (0,0,0) is treated as the transparency key.
DPK: FRID/DIRF index with either byte order. MSP: ' PSM' archives of TIM images. TTP: image archives storing TIM-like blocks that are rebuilt into standard TIM files on extraction.
|
Before commit your vibe code, you must ensure your agent strictly adheres to the coding paradigms used by GARbro. |
Fix stream lifetime, clipping and image size checks. Correct GHP3 prefix tables and reuse PrefixStream for video.
|
Adjusted. |
There was a problem hiding this comment.
Ensure it still works with supported games.
There was a problem hiding this comment.
All changes have been tested with the corresponding games. I also did the localization for v791, so I am very familiar with this game and can confirm that the changes here work correctly.
GARbro-Mod actually has two separate issues with this game.
The first one is the color issue in ImageTM2.cs This is unrelated to my changes, since I did not modify this file.
vis00507:

The second one is the extraction issue, which is fixed by this PR, as shown below:
vis30064:

If you are still concerned, here is the original
vis.pac
Codebase changes:
Fixes
New formats and improvements
DATA$TOParchives (evidence below). Tested on デ・ジ・キャラット ファンタジー.About removing
BroccoliPak.cs(f43831a)The removed opener claimed MOONSTONE
DATA$TOParchives — these_c11.wavit looks for is merely an entry name inside such an archive, which is already parsed by the existing ArcPAK.cs. Actual sample header:Refs #21