ReverseBox 0.36.0__tar.gz → 0.37.1__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.36.0 → reversebox-0.37.1}/PKG-INFO +1 -1
  2. {reversebox-0.36.0 → reversebox-0.37.1}/ReverseBox.egg-info/PKG-INFO +1 -1
  3. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/common.py +4 -0
  4. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/decoders/compressed_decoder_encoder.py +9 -5
  5. {reversebox-0.36.0 → reversebox-0.37.1}/setup.py +1 -1
  6. {reversebox-0.36.0 → reversebox-0.37.1}/LICENSE +0 -0
  7. {reversebox-0.36.0 → reversebox-0.37.1}/README.md +0 -0
  8. {reversebox-0.36.0 → reversebox-0.37.1}/ReverseBox.egg-info/SOURCES.txt +0 -0
  9. {reversebox-0.36.0 → reversebox-0.37.1}/ReverseBox.egg-info/dependency_links.txt +0 -0
  10. {reversebox-0.36.0 → reversebox-0.37.1}/ReverseBox.egg-info/requires.txt +0 -0
  11. {reversebox-0.36.0 → reversebox-0.37.1}/ReverseBox.egg-info/top_level.txt +0 -0
  12. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/__init__.py +0 -0
  13. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/checksum/__init__.py +0 -0
  14. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/checksum/checksum_adler32.py +0 -0
  15. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/checksum/checksum_cocos2d_pvr.py +0 -0
  16. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/checksum/checksum_fletcher16.py +0 -0
  17. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/checksum/checksum_fletcher32.py +0 -0
  18. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/checksum/checksum_internet_ipv4_header.py +0 -0
  19. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/checksum/checksum_sum8.py +0 -0
  20. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/checksum/checksum_sum8_2s_complement.py +0 -0
  21. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/checksum/checksum_unix_sum_bsd16.py +0 -0
  22. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/checksum/checksum_unix_sum_sysv.py +0 -0
  23. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/checksum/checksum_xor8.py +0 -0
  24. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/common/__init__.py +0 -0
  25. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/common/common.py +0 -0
  26. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/common/logger.py +0 -0
  27. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/common/numpy_helper_functions.py +0 -0
  28. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/compression/__init__.py +0 -0
  29. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/compression/compression_jcalg1.py +0 -0
  30. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/compression/compression_lzo.py +0 -0
  31. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/compression/compression_mio0.py +0 -0
  32. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/compression/compression_re_tiyoruga_dat.py +0 -0
  33. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/compression/compression_refpack.py +0 -0
  34. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/compression/compression_zlib.py +0 -0
  35. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/crc/__init__.py +0 -0
  36. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/crc/crc16_arc.py +0 -0
  37. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/crc/crc16_ccitt.py +0 -0
  38. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/crc/crc16_dnp.py +0 -0
  39. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/crc/crc16_ea_crcf.py +0 -0
  40. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/crc/crc16_kermit.py +0 -0
  41. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/crc/crc16_modbus.py +0 -0
  42. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/crc/crc16_sick.py +0 -0
  43. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/crc/crc32_asobo.py +0 -0
  44. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/crc/crc32_iso_hdlc.py +0 -0
  45. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/crc/crc64_asobo.py +0 -0
  46. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/crc/crc64_go_iso.py +0 -0
  47. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/crc/crc8.py +0 -0
  48. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/crc/crc_unix_cksum.py +0 -0
  49. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/encryption/__init__.py +0 -0
  50. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/encryption/encryption_hatch_engine.py +0 -0
  51. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/encryption/encryption_rot13.py +0 -0
  52. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/encryption/encryption_xor_basic.py +0 -0
  53. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/encryption/encryption_xor_basic_key_guesser.py +0 -0
  54. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/encryption/encryption_xor_gianas_return_zda.py +0 -0
  55. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/encryption/encryption_xor_retro64_eco.py +0 -0
  56. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/hash/__init__.py +0 -0
  57. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/hash/hash_additive.py +0 -0
  58. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/hash/hash_ap.py +0 -0
  59. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/hash/hash_djb2.py +0 -0
  60. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/hash/hash_fnv.py +0 -0
  61. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/hash/hash_jenkins_one_at_a_time.py +0 -0
  62. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/hash/hash_md2.py +0 -0
  63. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/hash/hash_md5.py +0 -0
  64. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/hash/hash_murmur3.py +0 -0
  65. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/hash/hash_pivotal_games_dat.py +0 -0
  66. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/hash/hash_sdbm.py +0 -0
  67. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/hash/hash_sha1.py +0 -0
  68. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/hash/hash_sha2.py +0 -0
  69. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/__init__.py +0 -0
  70. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/byte_swap.py +0 -0
  71. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/compression/__init__.py +0 -0
  72. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/compression/compression_gst.py +0 -0
  73. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/compression/compression_lzw.py +0 -0
  74. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/compression/compression_packbits.py +0 -0
  75. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/compression/compression_rle_executioners.py +0 -0
  76. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/compression/compression_rle_tga.py +0 -0
  77. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/compression/compression_zlib.py +0 -0
  78. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/decoders/__init__.py +0 -0
  79. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/decoders/bumpmap_decoder.py +0 -0
  80. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/decoders/gst_decoder.py +0 -0
  81. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/decoders/n64_decoder.py +0 -0
  82. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/decoders/yuv_decoder.py +0 -0
  83. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/encoders/__init__.py +0 -0
  84. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/encoders/gst_encoder.py +0 -0
  85. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/file_formats/__init__.py +0 -0
  86. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/file_formats/image_dds.py +0 -0
  87. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/image_decoder.py +0 -0
  88. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/image_encoder.py +0 -0
  89. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/image_formats.py +0 -0
  90. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/palettes/__init__.py +0 -0
  91. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/palettes/palette_random.py +0 -0
  92. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/palettes/palette_vga.py +0 -0
  93. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/pillow_wrapper.py +0 -0
  94. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/swizzling/__init__.py +0 -0
  95. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/swizzling/swizzle_3ds.py +0 -0
  96. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/swizzling/swizzle_bc.py +0 -0
  97. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/swizzling/swizzle_cmpr.py +0 -0
  98. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/swizzling/swizzle_gamecube.py +0 -0
  99. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/swizzling/swizzle_gst.py +0 -0
  100. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/swizzling/swizzle_morton.py +0 -0
  101. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/swizzling/swizzle_morton_ps4.py +0 -0
  102. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/swizzling/swizzle_ps2.py +0 -0
  103. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/swizzling/swizzle_ps2_4bit.py +0 -0
  104. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/swizzling/swizzle_ps2_suba.py +0 -0
  105. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/swizzling/swizzle_psp.py +0 -0
  106. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/swizzling/swizzle_psvita_dreamcast.py +0 -0
  107. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/swizzling/swizzle_switch.py +0 -0
  108. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/swizzling/swizzle_wii_u.py +0 -0
  109. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/image/swizzling/swizzle_x360.py +0 -0
  110. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/io_files/__init__.py +0 -0
  111. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/io_files/bytes_handler.py +0 -0
  112. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/io_files/bytes_helper_functions.py +0 -0
  113. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/io_files/check_file.py +0 -0
  114. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/io_files/file_handler.py +0 -0
  115. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/io_files/mod_handler.py +0 -0
  116. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/io_files/translation_text_handler.py +0 -0
  117. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/libs/DirectXTex.dll +0 -0
  118. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/libs/__init__.py +0 -0
  119. {reversebox-0.36.0 → reversebox-0.37.1}/reversebox/libs/refpack.dll +0 -0
  120. {reversebox-0.36.0 → reversebox-0.37.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ReverseBox
3
- Version: 0.36.0
3
+ Version: 0.37.1
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ReverseBox
3
- Version: 0.36.0
3
+ Version: 0.37.1
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
@@ -223,6 +223,10 @@ def get_block_data_size(img_format: ImageFormats) -> int:
223
223
  return 1
224
224
 
225
225
 
226
+ def get_bc_image_data_size(image_height: int, image_width: int, image_format: ImageFormats) -> int:
227
+ return ((image_height + 3) // 4) * ((image_width + 3) // 4) * get_block_data_size(image_format)
228
+
229
+
226
230
  def calculate_aligned_value(value: int, multiple: int) -> int:
227
231
  return ((value + multiple - 1) // multiple) * multiple
228
232
 
@@ -17,6 +17,7 @@ from ctypes import (
17
17
 
18
18
  from reversebox.common.common import get_dll_path
19
19
  from reversebox.common.logger import get_logger
20
+ from reversebox.image.common import get_bc_image_data_size
20
21
  from reversebox.image.image_formats import ImageFormats
21
22
 
22
23
  logger = get_logger(__name__)
@@ -41,7 +42,7 @@ class DXGIImage(Structure):
41
42
 
42
43
  class CompressedImageDecoderEncoder:
43
44
  """
44
- Decoder for any compressed images like BC1/DXT1, BC2/DXT2 etc.
45
+ Decoder/Encoder for any compressed images like BC1/DXT1, BC2/DXT2 etc.
45
46
  """
46
47
 
47
48
  def __init__(self):
@@ -94,7 +95,7 @@ class CompressedImageDecoderEncoder:
94
95
 
95
96
  def _convert_directxtex_image(self, image_data: bytes, img_width: int, img_height: int, image_format: ImageFormats, encode_flag: bool) -> bytes:
96
97
  """
97
- Function used for decoding compressed BC formats
98
+ Function used for decoding/encoding compressed BC formats
98
99
  """
99
100
  dll_path: str = get_dll_path("DirectXTex.dll")
100
101
  if encode_flag:
@@ -147,9 +148,12 @@ class CompressedImageDecoderEncoder:
147
148
  if h_result != 0:
148
149
  raise Exception(f"DLL decompression failed! H_result: {h_result}")
149
150
 
150
- decoded_data_size: int = img_height * img_width * 4
151
- decoded_data = bytearray((c_uint8 * decoded_data_size).from_address(ctypes.addressof(output_dxgi_image.pixels.contents)))
152
- return decoded_data
151
+ if encode_flag:
152
+ converted_data_size: int = get_bc_image_data_size(img_height, img_width, image_format)
153
+ else:
154
+ converted_data_size: int = img_height * img_width * 4
155
+ converted_data = bytearray((c_uint8 * converted_data_size).from_address(ctypes.addressof(output_dxgi_image.pixels.contents)))
156
+ return converted_data
153
157
 
154
158
  def decode_compressed_image_main(self, image_data: bytes, img_width: int, img_height: int, image_format: ImageFormats) -> bytes:
155
159
  return self._convert_directxtex_image(image_data, img_width, img_height, image_format, False)
@@ -8,7 +8,7 @@ from typing import Final
8
8
 
9
9
  import setuptools
10
10
 
11
- VERSION_NUM: Final[str] = "0.36.0"
11
+ VERSION_NUM: Final[str] = "0.37.1"
12
12
 
13
13
 
14
14
  def get_long_description() -> str:
File without changes
File without changes
File without changes