RGSS Color 직렬구조 메모

https://github.com/zh99998/OpenRGSS/blob/master/lib/openrgss/color.rb#L60

Color 클래스는 Animations.rxdata 에서 사용하고 있었다.

그리고 예상과 달리 놀랍게도 R, G, B, A는 각각 1바이트 unsigned 정수가 아니라 IEEE754 표준 64비트 부동소수점이었다.


0x000001A81BA40093  3a 0a 43 6f 6c 6f 72 25  :.Color%

0x000001A81BA4009B  00 00 00 00 00 e0 6f 40  .....?o@

0x000001A81BA400A3  00 00 00 00 00 e0 6f 40  .....?o@

0x000001A81BA400AB  00 00 00 00 00 e0 6f 40  .....?o@

0x000001A81BA400B3  00 00 00 00 00 e0 6f 40  .....?o@

0x25 = 37 - 5(\x5) = 총 32 바이트

  • 00 00 00 00 00 e0 6f 40 -> Red:   0x 40 6f e0 00 00 00 00 00
  • 00 00 00 00 00 e0 6f 40 -> Green: 0x 40 6f e0 00 00 00 00 00
  • 00 00 00 00 00 e0 6f 40 -> Blue:  0x 40 6f e0 00 00 00 00 00
  • 00 00 00 00 00 e0 6f 40 -> Alpha: 0x 40 6f e0 00 00 00 00 00



0x 40 6f e0 00 00 00 00 00를 10진수로 변환하면 255가 나온다.

댓글