ProgSys/pg_disatools

START.DAT recompression

Closed this issue · 3 comments

Hello.
Thanks for thoses great tools.
I'm in the way of upscaling all animations sprite with xbrz(*2) with the original 16 colors palettes (great improvement over the original sprites to my mind).
I can realy well import and export sprites after modification (only one witch crash at saving is 1001_FILE.SH).

But any ways, any sprites i mod, as soon as the SUBDATA.DAT goes bigger than about 145Mo , the game crash everytime i try to save or load a game.

It's not sprite related, if i test some sprites (any of them) and i keep the SUBDATA.DAT below 140Mo no crash at loading nor saving

As the START.DAT is uncompressed, it's making SUBDATA.DAT bigger.

So a great option would be to recompress the START.DAT (or to found out why the game's crashing with big SUBDATA.DAT)

thanks a lot

Yes, it's a known problem, to which there is no solution currently. As you noticed, the game allocates a fixed amount of memory for all uncompressed sprites in the game. Why they did is this way, i have no idear. Maybe a leftover from the PlayStation 2, as today you can easily allocate memory dynamically.

As far i know, compressing will not help at all, given that the game uncompresses the data anyway. The only solution I can think of is to modify the .exe and set the fixed number to a higher value. While I looked into this, I have not enough experience in Assembler to actually do it. 😞

Too bad T_T
Thank for your answer !

May have a way to filter all the 2D sprites.
In the START.DAT there's a NEW_FACE.DAT witch conteint the 2D dialogs faces in 256 colors.
I found if i convert them to 32 colors then convert to DXT1 the ingame quality remain realy good but the total NEW_FACE.DAT goes down form 70mo to about 9mo so virtualy 61mo for more sprite texture upscale