ReverseBox 0.26.1__tar.gz → 0.26.2__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.
- {reversebox-0.26.1 → reversebox-0.26.2}/PKG-INFO +2 -1
- {reversebox-0.26.1 → reversebox-0.26.2}/README.md +1 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/ReverseBox.egg-info/PKG-INFO +2 -1
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/common.py +8 -4
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/image_decoder.py +34 -25
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/image_formats.py +1 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/setup.py +1 -1
- {reversebox-0.26.1 → reversebox-0.26.2}/LICENSE +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/ReverseBox.egg-info/SOURCES.txt +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/ReverseBox.egg-info/dependency_links.txt +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/ReverseBox.egg-info/requires.txt +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/ReverseBox.egg-info/top_level.txt +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/__init__.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/checksum/__init__.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/checksum/checksum_adler32.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/checksum/checksum_cocos2d_pvr.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/checksum/checksum_fletcher16.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/checksum/checksum_fletcher32.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/checksum/checksum_internet_ipv4_header.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/checksum/checksum_sum8.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/checksum/checksum_sum8_2s_complement.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/checksum/checksum_unix_sum_bsd16.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/checksum/checksum_unix_sum_sysv.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/checksum/checksum_xor8.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/common/__init__.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/common/common.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/common/logger.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/common/numpy_helper_functions.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/compression/__init__.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/compression/compression_jcalg1.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/compression/compression_lzo.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/compression/compression_mio0.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/compression/compression_refpack.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/compression/compression_zlib.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/crc/__init__.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/crc/crc16_arc.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/crc/crc16_ccitt.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/crc/crc16_dnp.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/crc/crc16_ea_crcf.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/crc/crc16_kermit.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/crc/crc16_modbus.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/crc/crc16_sick.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/crc/crc32_asobo.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/crc/crc32_iso_hdlc.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/crc/crc64_asobo.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/crc/crc64_go_iso.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/crc/crc8.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/crc/crc_unix_cksum.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/encryption/__init__.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/encryption/encryption_hatch_engine.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/encryption/encryption_rot13.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/encryption/encryption_xor_basic.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/encryption/encryption_xor_basic_key_guesser.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/encryption/encryption_xor_gianas_return_zda.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/encryption/encryption_xor_retro64_eco.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/hash/__init__.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/hash/hash_additive.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/hash/hash_ap.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/hash/hash_djb2.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/hash/hash_fnv.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/hash/hash_jenkins_one_at_a_time.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/hash/hash_md2.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/hash/hash_md5.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/hash/hash_murmur3.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/hash/hash_sdbm.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/hash/hash_sha1.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/hash/hash_sha2.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/__init__.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/compression/__init__.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/compression/compression_gst.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/compression/compression_lzw.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/compression/compression_packbits.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/compression/compression_rle_executioners.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/compression/compression_rle_tga.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/compression/compression_zlib.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/decoders/__init__.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/decoders/bumpmap_decoder.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/decoders/compressed_decoder.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/decoders/gst_decoder.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/decoders/n64_decoder.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/decoders/yuv_decoder.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/encoders/__init__.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/encoders/gst_encoder.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/file_formats/__init__.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/file_formats/image_dds.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/image_encoder.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/palettes/__init__.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/palettes/palette_random.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/palettes/palette_vga.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/pillow_wrapper.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/swizzling/__init__.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/swizzling/swizzle_3ds.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/swizzling/swizzle_bc.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/swizzling/swizzle_cmpr.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/swizzling/swizzle_gamecube.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/swizzling/swizzle_gst.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/swizzling/swizzle_morton.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/swizzling/swizzle_morton_ps4.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/swizzling/swizzle_ps2.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/swizzling/swizzle_psp.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/swizzling/swizzle_psvita_dreamcast.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/swizzling/swizzle_switch.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/swizzling/swizzle_x360.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/io_files/__init__.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/io_files/bytes_handler.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/io_files/bytes_helper_functions.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/io_files/check_file.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/io_files/file_handler.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/io_files/mod_handler.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/io_files/translation_text_handler.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/libs/DirectXTex.dll +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/libs/__init__.py +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/libs/ea_swizzle.dll +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/reversebox/libs/refpack.dll +0 -0
- {reversebox-0.26.1 → reversebox-0.26.2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ReverseBox
|
|
3
|
-
Version: 0.26.
|
|
3
|
+
Version: 0.26.2
|
|
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
|
|
@@ -172,6 +172,7 @@ or software researchers).
|
|
|
172
172
|
- Decode PAL4 ✔️
|
|
173
173
|
- Decode PAL8 ✔️
|
|
174
174
|
- Decode PAL16 ✔️
|
|
175
|
+
- Decode PAL32 ✔️
|
|
175
176
|
- Decode PAL_I8A8 ✔️
|
|
176
177
|
- Decode N64_RGB5A3 ✔️
|
|
177
178
|
- Decode N64_I4 ✔️
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ReverseBox
|
|
3
|
-
Version: 0.26.
|
|
3
|
+
Version: 0.26.2
|
|
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
|
|
@@ -172,6 +172,7 @@ or software researchers).
|
|
|
172
172
|
- Decode PAL4 ✔️
|
|
173
173
|
- Decode PAL8 ✔️
|
|
174
174
|
- Decode PAL16 ✔️
|
|
175
|
+
- Decode PAL32 ✔️
|
|
175
176
|
- Decode PAL_I8A8 ✔️
|
|
176
177
|
- Decode N64_RGB5A3 ✔️
|
|
177
178
|
- Decode N64_I4 ✔️
|
|
@@ -83,7 +83,8 @@ def get_bpp_for_image_format(image_format: ImageFormats) -> int:
|
|
|
83
83
|
ImageFormats.N64_I4,
|
|
84
84
|
ImageFormats.BC1_DXT1,
|
|
85
85
|
ImageFormats.BC4_UNORM,
|
|
86
|
-
|
|
86
|
+
ImageFormats.PAL4,
|
|
87
|
+
):
|
|
87
88
|
return 4
|
|
88
89
|
elif image_format in (ImageFormats.RGBX2222,
|
|
89
90
|
ImageFormats.RGBA2222,
|
|
@@ -110,7 +111,8 @@ def get_bpp_for_image_format(image_format: ImageFormats) -> int:
|
|
|
110
111
|
ImageFormats.GST222,
|
|
111
112
|
ImageFormats.GST422,
|
|
112
113
|
ImageFormats.GST822,
|
|
113
|
-
|
|
114
|
+
ImageFormats.PAL8,
|
|
115
|
+
):
|
|
114
116
|
return 8
|
|
115
117
|
elif image_format in (ImageFormats.YUV410P, ):
|
|
116
118
|
return 9
|
|
@@ -152,8 +154,9 @@ def get_bpp_for_image_format(image_format: ImageFormats) -> int:
|
|
|
152
154
|
ImageFormats.YUV422_YUY2,
|
|
153
155
|
ImageFormats.YUV440P,
|
|
154
156
|
ImageFormats.BUMPMAP_SR,
|
|
155
|
-
|
|
156
|
-
|
|
157
|
+
ImageFormats.PAL16,
|
|
158
|
+
ImageFormats.PAL_I8A8,
|
|
159
|
+
):
|
|
157
160
|
return 16
|
|
158
161
|
elif image_format in (ImageFormats.YUVA420P, ):
|
|
159
162
|
return 20
|
|
@@ -175,6 +178,7 @@ def get_bpp_for_image_format(image_format: ImageFormats) -> int:
|
|
|
175
178
|
ImageFormats.B32,
|
|
176
179
|
ImageFormats.RGBM8888,
|
|
177
180
|
ImageFormats.AYUV,
|
|
181
|
+
ImageFormats.PAL32,
|
|
178
182
|
):
|
|
179
183
|
return 32
|
|
180
184
|
elif image_format in (ImageFormats.RGB48,
|
|
@@ -564,6 +564,7 @@ class ImageDecoder:
|
|
|
564
564
|
ImageFormats.PAL8: 8,
|
|
565
565
|
ImageFormats.PAL16: 16,
|
|
566
566
|
ImageFormats.PAL_I8A8: 16,
|
|
567
|
+
ImageFormats.PAL32: 32,
|
|
567
568
|
}
|
|
568
569
|
|
|
569
570
|
def _get_endianess_format(self, endianess: str) -> str:
|
|
@@ -579,7 +580,7 @@ class ImageDecoder:
|
|
|
579
580
|
decode_function, bits_per_pixel, image_entry_read_function = image_format
|
|
580
581
|
image_handler = BytesHandler(image_data)
|
|
581
582
|
texture_data = bytearray(img_width * img_height * 4)
|
|
582
|
-
read_offset = 0
|
|
583
|
+
read_offset: int = 0
|
|
583
584
|
image_endianess_format: str = self._get_endianess_format(image_endianess)
|
|
584
585
|
|
|
585
586
|
if bits_per_pixel == 4:
|
|
@@ -648,20 +649,39 @@ class ImageDecoder:
|
|
|
648
649
|
image_endianess_format: str = self._get_endianess_format(image_endianess)
|
|
649
650
|
palette_endianess_format: str = self._get_endianess_format(palette_endianess)
|
|
650
651
|
|
|
651
|
-
palette_data_ints = []
|
|
652
|
+
palette_data_ints: list = []
|
|
652
653
|
for i in range(len(palette_data) // palette_entry_size):
|
|
653
654
|
palette_entry = palette_handler.get_bytes(palette_offset, palette_entry_size)
|
|
654
655
|
palette_entry_int = palette_entry_read_function(palette_entry, palette_endianess_format)
|
|
655
656
|
palette_offset += palette_entry_size
|
|
656
657
|
palette_data_ints.append(palette_entry_int)
|
|
657
658
|
|
|
658
|
-
if img_bits_per_pixel ==
|
|
659
|
+
if img_bits_per_pixel == 4:
|
|
660
|
+
for i in range(0, img_width * img_height, 2):
|
|
661
|
+
palette_index: bytes = image_handler.get_bytes(image_offset, 1)
|
|
662
|
+
palette_index_int: int = struct.unpack(image_endianess_format + "B", palette_index or b'\x00')[0]
|
|
663
|
+
if image_endianess == "little":
|
|
664
|
+
texture_data[i * 4:(i + 1) * 4] = decode_function(self, palette_data_ints[palette_index_int & 0xf]) # noqa
|
|
665
|
+
texture_data[(i + 1) * 4:(i + 2) * 4] = decode_function(self, palette_data_ints[(palette_index_int >> 4) & 0xf]) # noqa
|
|
666
|
+
elif image_endianess == "big":
|
|
667
|
+
texture_data[i * 4:(i + 1) * 4] = decode_function(self, palette_data_ints[(palette_index_int >> 4) & 0xf]) # noqa
|
|
668
|
+
texture_data[(i + 1) * 4:(i + 2) * 4] =decode_function(self, palette_data_ints[palette_index_int & 0xf]) # noqa
|
|
669
|
+
else:
|
|
670
|
+
raise Exception(f"Endianess not supported! Endianess: {image_endianess}")
|
|
671
|
+
image_offset += 1
|
|
672
|
+
elif img_bits_per_pixel == 8:
|
|
673
|
+
for i in range(img_width * img_height):
|
|
674
|
+
palette_index: bytes = image_handler.get_bytes(image_offset, 1)
|
|
675
|
+
palette_index_int: int = struct.unpack(image_endianess_format + "B", palette_index or b'\x00')[0]
|
|
676
|
+
texture_data[i * 4:(i + 1) * 4] = decode_function(self, palette_data_ints[palette_index_int]) # noqa
|
|
677
|
+
image_offset += 1
|
|
678
|
+
elif img_bits_per_pixel == 16:
|
|
659
679
|
for i in range(img_width * img_height):
|
|
660
|
-
if
|
|
680
|
+
if image_format is ImageFormats.PAL_I8A8:
|
|
661
681
|
palette_index: bytes = image_handler.get_bytes(image_offset, 1)
|
|
662
682
|
alpha_value: bytes = image_handler.get_bytes(image_offset+1, 1)
|
|
663
|
-
palette_index_int: int = struct.unpack(image_endianess_format + "B", palette_index)[0]
|
|
664
|
-
alpha_value_int: int = struct.unpack(image_endianess_format + "B", alpha_value)[0]
|
|
683
|
+
palette_index_int: int = struct.unpack(image_endianess_format + "B", palette_index or b'\x00')[0]
|
|
684
|
+
alpha_value_int: int = struct.unpack(image_endianess_format + "B", alpha_value or b'\x00')[0]
|
|
665
685
|
output_bytes: bytes = decode_function(self, palette_data_ints[palette_index_int]) # noqa
|
|
666
686
|
|
|
667
687
|
decoded_bytes: bytearray = bytearray(4)
|
|
@@ -678,29 +698,18 @@ class ImageDecoder:
|
|
|
678
698
|
|
|
679
699
|
texture_data[i * 4:(i + 1) * 4] = decoded_bytes
|
|
680
700
|
else:
|
|
681
|
-
palette_index = image_handler.get_bytes(image_offset,
|
|
682
|
-
palette_index_int = struct.unpack(image_endianess_format + "
|
|
701
|
+
palette_index: bytes = image_handler.get_bytes(image_offset, 1) # PAL16 = I8P8
|
|
702
|
+
palette_index_int: int = struct.unpack(image_endianess_format + "B", palette_index or b'\x00')[0]
|
|
683
703
|
texture_data[i * 4:(i + 1) * 4] = decode_function(self, palette_data_ints[palette_index_int]) # noqa
|
|
684
704
|
image_offset += 2
|
|
685
|
-
elif img_bits_per_pixel ==
|
|
705
|
+
elif img_bits_per_pixel == 32:
|
|
686
706
|
for i in range(img_width * img_height):
|
|
687
|
-
palette_index = image_handler.get_bytes(image_offset, 1)
|
|
688
|
-
palette_index_int = struct.unpack(image_endianess_format + "B", palette_index)[0]
|
|
707
|
+
palette_index: bytes = image_handler.get_bytes(image_offset, 1) # PAL32 = I8P24
|
|
708
|
+
palette_index_int: int = struct.unpack(image_endianess_format + "B", palette_index or b'\x00')[0]
|
|
689
709
|
texture_data[i * 4:(i + 1) * 4] = decode_function(self, palette_data_ints[palette_index_int]) # noqa
|
|
690
|
-
image_offset +=
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
palette_index = image_handler.get_bytes(image_offset, 1)
|
|
694
|
-
palette_index_int = struct.unpack(image_endianess_format + "B", palette_index)[0]
|
|
695
|
-
if image_endianess == "little":
|
|
696
|
-
texture_data[i * 4:(i + 1) * 4] = decode_function(self, palette_data_ints[palette_index_int & 0xf]) # noqa
|
|
697
|
-
texture_data[(i + 1) * 4:(i + 2) * 4] = decode_function(self, palette_data_ints[(palette_index_int >> 4) & 0xf]) # noqa
|
|
698
|
-
elif image_endianess == "big":
|
|
699
|
-
texture_data[i * 4:(i + 1) * 4] = decode_function(self, palette_data_ints[(palette_index_int >> 4) & 0xf]) # noqa
|
|
700
|
-
texture_data[(i + 1) * 4:(i + 2) * 4] =decode_function(self, palette_data_ints[palette_index_int & 0xf]) # noqa
|
|
701
|
-
else:
|
|
702
|
-
raise Exception(f"Endianess not supported! Endianess: {image_endianess}")
|
|
703
|
-
image_offset += 1
|
|
710
|
+
image_offset += 4
|
|
711
|
+
else:
|
|
712
|
+
raise Exception(f"Bpp {img_bits_per_pixel} not supported!")
|
|
704
713
|
|
|
705
714
|
return texture_data
|
|
706
715
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{reversebox-0.26.1 → reversebox-0.26.2}/reversebox/checksum/checksum_internet_ipv4_header.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{reversebox-0.26.1 → reversebox-0.26.2}/reversebox/encryption/encryption_xor_basic_key_guesser.py
RENAMED
|
File without changes
|
{reversebox-0.26.1 → reversebox-0.26.2}/reversebox/encryption/encryption_xor_gianas_return_zda.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/compression/compression_packbits.py
RENAMED
|
File without changes
|
{reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/compression/compression_rle_executioners.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{reversebox-0.26.1 → reversebox-0.26.2}/reversebox/image/swizzling/swizzle_psvita_dreamcast.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|