-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Milestone
Description
Observation: RSM 1.5 files have an additional 4 bytes that are unaccounted for in the different implementations.
It seems that they're usually skipped as they can successfully be asserted to be zero bytes in every known instance, so no functional difference will be seen. My hypothesis is that these are "position animations" which are similarly unused as the "scale animations", later added in RSM2.
In the current decoder, tests and implementation ascertain that:
- The bytes are always present in RSM 1.5 files, and that they're always zero (
0x00000000) - They're never present in RSM 1.4 as well as all known Renewal versions (2.2 and 2.3)
- There are no unaccounted bytes if these are processed as "number of position animations" (
uint32_t)
Conflicting information was provided by these sources:
- Temtaime: https://rathena.org/board/topic/111484-make-ro-great-again/#comment-327227
- FlavioJS: https://github.com/flaviojs/eathena-devel-FlavioJS/blob/master/client/file_formats/rsm.txt
- Tokei: https://github.com/Tokeiburu/RSM2/
What could be done to possibly verify/disprove the hypothesis:
- Modify the presumed count and see if there are any errors/issues visible in the client
- Modify the count and add a presumed position animation to observe if there are any changes in the game
- Completely removed (delete) the presumed count and see if there are decoding errors in the client
- Check third-party implementations to see how/if they handle the extra bytes
- Attempt to contact Temtaime to see if they've further insights (unlikely to succeed as there hasn't been activity in years?)
- Publish the findings as part of the existing documentation (RSM specification and/or model rendering section)