ReverseBox 0.35.2__tar.gz → 0.35.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. {reversebox-0.35.2 → reversebox-0.35.5}/PKG-INFO +2 -2
  2. {reversebox-0.35.2 → reversebox-0.35.5}/README.md +1 -1
  3. {reversebox-0.35.2 → reversebox-0.35.5}/ReverseBox.egg-info/PKG-INFO +2 -2
  4. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/common/common.py +1 -1
  5. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/byte_swap.py +0 -3
  6. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/image_encoder.py +20 -0
  7. {reversebox-0.35.2 → reversebox-0.35.5}/setup.py +1 -1
  8. {reversebox-0.35.2 → reversebox-0.35.5}/LICENSE +0 -0
  9. {reversebox-0.35.2 → reversebox-0.35.5}/ReverseBox.egg-info/SOURCES.txt +0 -0
  10. {reversebox-0.35.2 → reversebox-0.35.5}/ReverseBox.egg-info/dependency_links.txt +0 -0
  11. {reversebox-0.35.2 → reversebox-0.35.5}/ReverseBox.egg-info/requires.txt +0 -0
  12. {reversebox-0.35.2 → reversebox-0.35.5}/ReverseBox.egg-info/top_level.txt +0 -0
  13. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/__init__.py +0 -0
  14. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/checksum/__init__.py +0 -0
  15. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/checksum/checksum_adler32.py +0 -0
  16. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/checksum/checksum_cocos2d_pvr.py +0 -0
  17. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/checksum/checksum_fletcher16.py +0 -0
  18. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/checksum/checksum_fletcher32.py +0 -0
  19. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/checksum/checksum_internet_ipv4_header.py +0 -0
  20. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/checksum/checksum_sum8.py +0 -0
  21. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/checksum/checksum_sum8_2s_complement.py +0 -0
  22. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/checksum/checksum_unix_sum_bsd16.py +0 -0
  23. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/checksum/checksum_unix_sum_sysv.py +0 -0
  24. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/checksum/checksum_xor8.py +0 -0
  25. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/common/__init__.py +0 -0
  26. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/common/logger.py +0 -0
  27. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/common/numpy_helper_functions.py +0 -0
  28. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/compression/__init__.py +0 -0
  29. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/compression/compression_jcalg1.py +0 -0
  30. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/compression/compression_lzo.py +0 -0
  31. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/compression/compression_mio0.py +0 -0
  32. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/compression/compression_re_tiyoruga_dat.py +0 -0
  33. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/compression/compression_refpack.py +0 -0
  34. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/compression/compression_zlib.py +0 -0
  35. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/crc/__init__.py +0 -0
  36. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/crc/crc16_arc.py +0 -0
  37. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/crc/crc16_ccitt.py +0 -0
  38. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/crc/crc16_dnp.py +0 -0
  39. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/crc/crc16_ea_crcf.py +0 -0
  40. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/crc/crc16_kermit.py +0 -0
  41. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/crc/crc16_modbus.py +0 -0
  42. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/crc/crc16_sick.py +0 -0
  43. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/crc/crc32_asobo.py +0 -0
  44. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/crc/crc32_iso_hdlc.py +0 -0
  45. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/crc/crc64_asobo.py +0 -0
  46. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/crc/crc64_go_iso.py +0 -0
  47. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/crc/crc8.py +0 -0
  48. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/crc/crc_unix_cksum.py +0 -0
  49. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/encryption/__init__.py +0 -0
  50. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/encryption/encryption_hatch_engine.py +0 -0
  51. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/encryption/encryption_rot13.py +0 -0
  52. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/encryption/encryption_xor_basic.py +0 -0
  53. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/encryption/encryption_xor_basic_key_guesser.py +0 -0
  54. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/encryption/encryption_xor_gianas_return_zda.py +0 -0
  55. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/encryption/encryption_xor_retro64_eco.py +0 -0
  56. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/hash/__init__.py +0 -0
  57. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/hash/hash_additive.py +0 -0
  58. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/hash/hash_ap.py +0 -0
  59. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/hash/hash_djb2.py +0 -0
  60. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/hash/hash_fnv.py +0 -0
  61. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/hash/hash_jenkins_one_at_a_time.py +0 -0
  62. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/hash/hash_md2.py +0 -0
  63. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/hash/hash_md5.py +0 -0
  64. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/hash/hash_murmur3.py +0 -0
  65. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/hash/hash_pivotal_games_dat.py +0 -0
  66. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/hash/hash_sdbm.py +0 -0
  67. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/hash/hash_sha1.py +0 -0
  68. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/hash/hash_sha2.py +0 -0
  69. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/__init__.py +0 -0
  70. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/common.py +0 -0
  71. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/compression/__init__.py +0 -0
  72. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/compression/compression_gst.py +0 -0
  73. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/compression/compression_lzw.py +0 -0
  74. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/compression/compression_packbits.py +0 -0
  75. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/compression/compression_rle_executioners.py +0 -0
  76. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/compression/compression_rle_tga.py +0 -0
  77. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/compression/compression_zlib.py +0 -0
  78. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/decoders/__init__.py +0 -0
  79. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/decoders/bumpmap_decoder.py +0 -0
  80. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/decoders/compressed_decoder.py +0 -0
  81. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/decoders/gst_decoder.py +0 -0
  82. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/decoders/n64_decoder.py +0 -0
  83. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/decoders/yuv_decoder.py +0 -0
  84. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/encoders/__init__.py +0 -0
  85. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/encoders/gst_encoder.py +0 -0
  86. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/file_formats/__init__.py +0 -0
  87. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/file_formats/image_dds.py +0 -0
  88. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/image_decoder.py +0 -0
  89. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/image_formats.py +0 -0
  90. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/palettes/__init__.py +0 -0
  91. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/palettes/palette_random.py +0 -0
  92. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/palettes/palette_vga.py +0 -0
  93. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/pillow_wrapper.py +0 -0
  94. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/swizzling/__init__.py +0 -0
  95. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/swizzling/swizzle_3ds.py +0 -0
  96. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/swizzling/swizzle_bc.py +0 -0
  97. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/swizzling/swizzle_cmpr.py +0 -0
  98. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/swizzling/swizzle_gamecube.py +0 -0
  99. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/swizzling/swizzle_gst.py +0 -0
  100. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/swizzling/swizzle_morton.py +0 -0
  101. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/swizzling/swizzle_morton_ps4.py +0 -0
  102. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/swizzling/swizzle_ps2.py +0 -0
  103. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/swizzling/swizzle_ps2_4bit.py +0 -0
  104. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/swizzling/swizzle_ps2_suba.py +0 -0
  105. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/swizzling/swizzle_psp.py +0 -0
  106. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/swizzling/swizzle_psvita_dreamcast.py +0 -0
  107. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/swizzling/swizzle_switch.py +0 -0
  108. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/swizzling/swizzle_wii_u.py +0 -0
  109. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/image/swizzling/swizzle_x360.py +0 -0
  110. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/io_files/__init__.py +0 -0
  111. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/io_files/bytes_handler.py +0 -0
  112. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/io_files/bytes_helper_functions.py +0 -0
  113. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/io_files/check_file.py +0 -0
  114. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/io_files/file_handler.py +0 -0
  115. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/io_files/mod_handler.py +0 -0
  116. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/io_files/translation_text_handler.py +0 -0
  117. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/libs/DirectXTex.dll +0 -0
  118. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/libs/__init__.py +0 -0
  119. {reversebox-0.35.2 → reversebox-0.35.5}/reversebox/libs/refpack.dll +0 -0
  120. {reversebox-0.35.2 → reversebox-0.35.5}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ReverseBox
3
- Version: 0.35.2
3
+ Version: 0.35.5
4
4
  Summary: A set of functions useful in reverse engineering.
5
5
  Home-page: https://github.com/bartlomiejduda/ReverseBox
6
6
  Author: Bartlomiej Duda
@@ -161,7 +161,7 @@ or software researchers).
161
161
  - Decode RGBA4444 ✔️
162
162
  - Decode ABGR4444 ✔️
163
163
  - Decode XBGR4444 ✔️
164
- - Decode RGBX4444 ✔️
164
+ - Decode/Encode RGBX4444 ✔️
165
165
  - Decode BGRA4444 ✔️
166
166
  - Decode BGRX4444 ✔️
167
167
  - Decode XRGB1555 ✔️
@@ -124,7 +124,7 @@ or software researchers).
124
124
  - Decode RGBA4444 ✔️
125
125
  - Decode ABGR4444 ✔️
126
126
  - Decode XBGR4444 ✔️
127
- - Decode RGBX4444 ✔️
127
+ - Decode/Encode RGBX4444 ✔️
128
128
  - Decode BGRA4444 ✔️
129
129
  - Decode BGRX4444 ✔️
130
130
  - Decode XRGB1555 ✔️
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ReverseBox
3
- Version: 0.35.2
3
+ Version: 0.35.5
4
4
  Summary: A set of functions useful in reverse engineering.
5
5
  Home-page: https://github.com/bartlomiejduda/ReverseBox
6
6
  Author: Bartlomiej Duda
@@ -161,7 +161,7 @@ or software researchers).
161
161
  - Decode RGBA4444 ✔️
162
162
  - Decode ABGR4444 ✔️
163
163
  - Decode XBGR4444 ✔️
164
- - Decode RGBX4444 ✔️
164
+ - Decode/Encode RGBX4444 ✔️
165
165
  - Decode BGRA4444 ✔️
166
166
  - Decode BGRX4444 ✔️
167
167
  - Decode XRGB1555 ✔️
@@ -39,7 +39,7 @@ def fill_data_with_padding(input_data: bytes, padding_length: int) -> bytes:
39
39
  # e.g. "aaa" and 5 --> "aaa\x00\x00"
40
40
  def fill_data_with_padding_to_desired_length(
41
41
  input_data: bytes, desired_padding_length: int
42
- ):
42
+ ) -> bytes:
43
43
  if len(input_data) > desired_padding_length:
44
44
  raise Exception("Data too big or desired padding too low!")
45
45
  elif len(input_data) == desired_padding_length:
@@ -20,9 +20,6 @@ def swap_byte_order_x360(image_data: bytes) -> bytes:
20
20
 
21
21
 
22
22
  def swap_byte_order_gamecube(image_data: bytes, img_width: int, img_height: int) -> bytes:
23
- if len(image_data) % 8 != 0:
24
- raise ValueError("The data must be a multiple of 8 bytes (the size of one BC block)")
25
-
26
23
  bw: int = img_width // 4
27
24
  bh: int = img_height // 4
28
25
  block_size: int = 8
@@ -146,6 +146,25 @@ class ImageEncoder:
146
146
  p[1] = (bgra4444 >> 8) & 0xFF
147
147
  return p
148
148
 
149
+ def _encode_rgbx4444_pixel(self, pixel_int: int) -> bytearray:
150
+ p = bytearray(2)
151
+
152
+ r = pixel_int & 0xFF
153
+ g = (pixel_int >> 8) & 0xFF
154
+ b = (pixel_int >> 16) & 0xFF
155
+ x = 0xFF
156
+
157
+ r4 = (r >> 4) & 0x0F
158
+ g4 = (g >> 4) & 0x0F
159
+ b4 = (b >> 4) & 0x0F
160
+ x4 = (x >> 4) & 0x0F
161
+
162
+ rgbx4444 = (x4 << 12) | (b4 << 8) | (g4 << 4) | r4
163
+
164
+ p[0] = rgbx4444 & 0xFF
165
+ p[1] = (rgbx4444 >> 8) & 0xFF
166
+ return p
167
+
149
168
  def _encode_rgba5551_pixel(self, pixel_int: int) -> bytearray:
150
169
  p = bytearray(2)
151
170
 
@@ -236,6 +255,7 @@ class ImageEncoder:
236
255
  ImageFormats.BGR565: (_encode_bgr565_pixel, 16, get_uint16, set_uint16),
237
256
  ImageFormats.ABGR4444: (_encode_abgr4444_pixel, 16, get_uint16, set_uint16),
238
257
  ImageFormats.BGRA4444: (_encode_bgra4444_pixel, 16, get_uint16, set_uint16),
258
+ ImageFormats.RGBX4444: (_encode_rgbx4444_pixel, 16, get_uint16, set_uint16),
239
259
  ImageFormats.RGBA5551: (_encode_rgba5551_pixel, 16, get_uint16, set_uint16),
240
260
  ImageFormats.BGRA5551: (_encode_bgra5551_pixel, 16, get_uint16, set_uint16),
241
261
  ImageFormats.RGBX5551: (_encode_rgbx5551_pixel, 16, get_uint16, set_uint16),
@@ -8,7 +8,7 @@ from typing import Final
8
8
 
9
9
  import setuptools
10
10
 
11
- VERSION_NUM: Final[str] = "0.35.2"
11
+ VERSION_NUM: Final[str] = "0.35.5"
12
12
 
13
13
 
14
14
  def get_long_description() -> str:
File without changes
File without changes