Closed patters-match closed 2 years ago
Ok. As the numbers grow larger the scaling factor trends towards 2.56 which resembles a power of 2, not 2.5. The easiest way to get x2.56 without floating point numbers is to multiply by 256 (0x100) and then divide by 100 (0x64). This yields precisely the observed results.
scale = int((scale * 0x100) / 0x64)
All other SuperDAT values are preserved in the emulator's ROM header, but the scale value is transformed by SNESAdvance.exe. This is not described in technotes.txt. For instance:
My script follows the spec and writes the value from the SuperDAT, but I can see that the behaviour of the official builder gives more optimal display results. These bytes are the only divergence between my script and the original Win32 builder.