View Single Post
Old 11-18-24, 02:20 PM   #5
Fifi
Navy Seal
 
Fifi's Avatar
 
Join Date: Dec 2012
Location: France
Posts: 6,094
Downloads: 466
Uploads: 0


Default

Quote:
Originally Posted by Hebe Vollmaus View Post
As an example open unmoded SH3v14 NBB_Bismark.zon in S3D.
Change first found Box ArmorLevel from -1,00003 to something else.
Change it back to -1,00003.
Save As file maybe as NBB_Bismark.zon1.zon right next to the original.
Compare both files HEX-values of the ArmorLevel in a HEX-Editor.
The representation has been changed! Original is FF 00 80 BF; the new is FC 00 80 BF.
Hint: S3D will change Positions somewhat, so the found Position in the new saved file is different.

Why is that? Is S3D broken? -- No!
It must have been to do with the Nature of Floating-Point-Arithmetic.
Think of the number Pi, there will never be an exact representation. When you press such a number into only four HEX-bytes, which represents so called System-Single or only Single (as of Single-Precision), or MS calls it Float, it can only be presented by rounding.
So there is some more Hex-values means the same, it depends from the calculation-method you use.

j2c
Thanks for your information

Fifi is online   Reply With Quote