Page 1 of 1

Sequence prefix: did we overflow ?...

PostPosted: Sat Sep 12, 2020 12:29 pm
by Sirius
Hey there. I'm currently fixing some of ZLZ's bugs and found something that looks really nasty.

Quick question: sequence prefixes in MOULa are still 16 bits as mentioned in this thread, right ? Or was it changed ? From what I can tell of LibHSPlasma's source code, it's still 16.

Why is this a problem ? Well, 16 bits means all sequence prefixes should be in the range [-32768..32767]... And I just found Vee Tsah's "official" prefix is 40004, which obviously doesn't fit in there. Neither does Chiso Preniv at 40015.

I tried reading those Ages with PyHSPlasma. The plLocations reported for the main pages of those two Ages are <plLocation "-40260|33"> (notice page ID 33 instead of 1) and <plLocation "1236|1">. Apparently this completely screwed up the way HSPlasma reads those PRPs. On the other hand, PrpShop appears to read those correctly (although it does crash when opening most of those PRPs... dunno why or if it's related).

Now, this does not affect CC since it uses bigger sequence prefixes, and MOULa hasn't complained so far, so I guess it works one way or another. But it really sounds dangerous with how much info ends up baked in player Vaults, the non-matching .age file, negative sequence prefixes being reserved for global Ages, etc...

This can easily be avoided by preventing Korman users from picking wrong sequence prefixes/page IDs like 2^30. However I'm not sure whether those two Ages on MOUL should be reexported with another prefix/name, or remain as-is...