splat64 0.32.0__py3-none-any.whl → 0.32.2__py3-none-any.whl
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.
- splat/__init__.py +1 -1
- splat/disassembler/spimdisasm_disassembler.py +1 -1
- splat/scripts/split.py +6 -6
- splat/segtypes/common/bin.py +8 -1
- splat/segtypes/common/codesubsegment.py +1 -1
- splat/segtypes/common/data.py +10 -0
- splat/segtypes/common/group.py +9 -1
- splat/segtypes/common/rodata.py +10 -0
- splat/segtypes/common/segment.py +1 -1
- splat/segtypes/segment.py +34 -0
- splat/util/statistics.py +4 -4
- {splat64-0.32.0.dist-info → splat64-0.32.2.dist-info}/METADATA +6 -5
- {splat64-0.32.0.dist-info → splat64-0.32.2.dist-info}/RECORD +16 -16
- {splat64-0.32.0.dist-info → splat64-0.32.2.dist-info}/WHEEL +1 -1
- {splat64-0.32.0.dist-info → splat64-0.32.2.dist-info}/entry_points.txt +0 -0
- {splat64-0.32.0.dist-info → splat64-0.32.2.dist-info}/licenses/LICENSE +0 -0
splat/__init__.py
CHANGED
|
@@ -7,7 +7,7 @@ from typing import Set
|
|
|
7
7
|
|
|
8
8
|
class SpimdisasmDisassembler(disassembler.Disassembler):
|
|
9
9
|
# This value should be kept in sync with the version listed on requirements.txt and pyproject.toml
|
|
10
|
-
SPIMDISASM_MIN = (1,
|
|
10
|
+
SPIMDISASM_MIN = (1, 32, 0)
|
|
11
11
|
|
|
12
12
|
def configure(self):
|
|
13
13
|
# Configure spimdisasm
|
splat/scripts/split.py
CHANGED
|
@@ -271,11 +271,9 @@ def do_scan(
|
|
|
271
271
|
for segment in scan_bar:
|
|
272
272
|
assert isinstance(segment, Segment)
|
|
273
273
|
scan_bar.set_description(f"Scanning {brief_seg_name(segment, 20)}")
|
|
274
|
-
typ = segment.type
|
|
275
|
-
if segment.type == "bin" and segment.is_name_default():
|
|
276
|
-
typ = "unk"
|
|
277
274
|
|
|
278
|
-
|
|
275
|
+
for ty, sub_stats in segment.statistics.items():
|
|
276
|
+
stats.add_size(ty, sub_stats.size)
|
|
279
277
|
|
|
280
278
|
if segment.should_scan():
|
|
281
279
|
# Check cache but don't write anything
|
|
@@ -287,7 +285,8 @@ def do_scan(
|
|
|
287
285
|
|
|
288
286
|
processed_segments.append(segment)
|
|
289
287
|
|
|
290
|
-
|
|
288
|
+
for ty, sub_stats in segment.statistics.items():
|
|
289
|
+
stats.count_split(ty, sub_stats.count)
|
|
291
290
|
|
|
292
291
|
symbols.mark_c_funcs_as_defined()
|
|
293
292
|
return processed_segments
|
|
@@ -305,7 +304,8 @@ def do_split(
|
|
|
305
304
|
split_bar.set_description(f"Splitting {brief_seg_name(segment, 20)}")
|
|
306
305
|
|
|
307
306
|
if cache.check_cache_hit(segment, True):
|
|
308
|
-
|
|
307
|
+
for ty, sub_stats in segment.statistics.items():
|
|
308
|
+
stats.count_cached(ty, sub_stats.count)
|
|
309
309
|
continue
|
|
310
310
|
|
|
311
311
|
if segment.should_split():
|
splat/segtypes/common/bin.py
CHANGED
|
@@ -3,7 +3,7 @@ from typing import Optional
|
|
|
3
3
|
|
|
4
4
|
from ...util import log, options
|
|
5
5
|
|
|
6
|
-
from .segment import CommonSegment
|
|
6
|
+
from .segment import CommonSegment, SegmentType
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class CommonSegBin(CommonSegment):
|
|
@@ -33,3 +33,10 @@ class CommonSegBin(CommonSegment):
|
|
|
33
33
|
|
|
34
34
|
f.write(rom_bytes[self.rom_start : self.rom_end])
|
|
35
35
|
self.log(f"Wrote {self.name} to {path}")
|
|
36
|
+
|
|
37
|
+
@property
|
|
38
|
+
def statistics_type(self) -> SegmentType:
|
|
39
|
+
stats_type = self.type
|
|
40
|
+
if self.is_name_default():
|
|
41
|
+
stats_type = "unk"
|
|
42
|
+
return stats_type
|
|
@@ -122,7 +122,7 @@ class CommonSegCodeSubsegment(Segment):
|
|
|
122
122
|
)
|
|
123
123
|
|
|
124
124
|
# Gather symbols found by spimdisasm and create those symbols in splat's side
|
|
125
|
-
for referenced_vram in func_spim.
|
|
125
|
+
for referenced_vram in func_spim.referencedVrams:
|
|
126
126
|
context_sym = self.spim_section.get_section().getSymbol(
|
|
127
127
|
referenced_vram, tryPlusOffset=False
|
|
128
128
|
)
|
splat/segtypes/common/data.py
CHANGED
|
@@ -145,6 +145,16 @@ class CommonSegData(CommonSegCodeSubsegment, CommonSegGroup):
|
|
|
145
145
|
self.get_most_parent(), symbol.contextSym
|
|
146
146
|
)
|
|
147
147
|
|
|
148
|
+
# Gather symbols found by spimdisasm and create those symbols in splat's side
|
|
149
|
+
for referenced_vram in symbol.referencedVrams:
|
|
150
|
+
context_sym = self.spim_section.get_section().getSymbol(
|
|
151
|
+
referenced_vram, tryPlusOffset=False
|
|
152
|
+
)
|
|
153
|
+
if context_sym is not None:
|
|
154
|
+
symbols.create_symbol_from_spim_symbol(
|
|
155
|
+
self.get_most_parent(), context_sym
|
|
156
|
+
)
|
|
157
|
+
|
|
148
158
|
# Hint to the user that we are now in the .rodata section and no longer in the .data section (assuming rodata follows data)
|
|
149
159
|
if (
|
|
150
160
|
self.suggestion_rodata_section_start
|
splat/segtypes/common/group.py
CHANGED
|
@@ -3,7 +3,7 @@ from typing import List, Optional
|
|
|
3
3
|
from ...util import log
|
|
4
4
|
|
|
5
5
|
from .segment import CommonSegment
|
|
6
|
-
from ..segment import Segment
|
|
6
|
+
from ..segment import empty_statistics, Segment, SegmentStatistics
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class CommonSegGroup(CommonSegment):
|
|
@@ -124,6 +124,14 @@ class CommonSegGroup(CommonSegment):
|
|
|
124
124
|
return True
|
|
125
125
|
return False
|
|
126
126
|
|
|
127
|
+
@property
|
|
128
|
+
def statistics(self) -> SegmentStatistics:
|
|
129
|
+
stats = empty_statistics()
|
|
130
|
+
for sub in self.subsegments:
|
|
131
|
+
for ty, info in sub.statistics.items():
|
|
132
|
+
stats[ty] = stats[ty].merge(info)
|
|
133
|
+
return stats
|
|
134
|
+
|
|
127
135
|
def get_linker_entries(self):
|
|
128
136
|
return [entry for sub in self.subsegments for entry in sub.get_linker_entries()]
|
|
129
137
|
|
splat/segtypes/common/rodata.py
CHANGED
|
@@ -112,6 +112,16 @@ class CommonSegRodata(CommonSegData):
|
|
|
112
112
|
)
|
|
113
113
|
generated_symbol.linker_section = self.get_linker_section_linksection()
|
|
114
114
|
|
|
115
|
+
# Gather symbols found by spimdisasm and create those symbols in splat's side
|
|
116
|
+
for referenced_vram in symbol.referencedVrams:
|
|
117
|
+
context_sym = self.spim_section.get_section().getSymbol(
|
|
118
|
+
referenced_vram, tryPlusOffset=False
|
|
119
|
+
)
|
|
120
|
+
if context_sym is not None:
|
|
121
|
+
symbols.create_symbol_from_spim_symbol(
|
|
122
|
+
self.get_most_parent(), context_sym
|
|
123
|
+
)
|
|
124
|
+
|
|
115
125
|
possible_text = self.get_possible_text_subsegment_for_symbol(symbol)
|
|
116
126
|
if possible_text is not None:
|
|
117
127
|
text_segment, refenceeFunction = possible_text
|
splat/segtypes/common/segment.py
CHANGED
splat/segtypes/segment.py
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import collections
|
|
2
|
+
import dataclasses
|
|
1
3
|
import importlib
|
|
2
4
|
import importlib.util
|
|
3
5
|
from pathlib import Path
|
|
@@ -67,6 +69,27 @@ def parse_segment_section_order(segment: Union[dict, list]) -> List[str]:
|
|
|
67
69
|
return default
|
|
68
70
|
|
|
69
71
|
|
|
72
|
+
SegmentType = str
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
@dataclasses.dataclass
|
|
76
|
+
class SegmentStatisticsInfo:
|
|
77
|
+
size: int
|
|
78
|
+
count: int
|
|
79
|
+
|
|
80
|
+
def merge(self, other: "SegmentStatisticsInfo") -> "SegmentStatisticsInfo":
|
|
81
|
+
return SegmentStatisticsInfo(
|
|
82
|
+
size=self.size + other.size, count=self.count + other.count
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
SegmentStatistics = dict[SegmentType, SegmentStatisticsInfo]
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def empty_statistics() -> SegmentStatistics:
|
|
90
|
+
return collections.defaultdict(lambda: SegmentStatisticsInfo(size=0, count=0))
|
|
91
|
+
|
|
92
|
+
|
|
70
93
|
class Segment:
|
|
71
94
|
require_unique_name = True
|
|
72
95
|
|
|
@@ -520,6 +543,17 @@ class Segment:
|
|
|
520
543
|
else:
|
|
521
544
|
return None
|
|
522
545
|
|
|
546
|
+
@property
|
|
547
|
+
def statistics(self) -> SegmentStatistics:
|
|
548
|
+
stats = empty_statistics()
|
|
549
|
+
if self.size is not None:
|
|
550
|
+
stats[self.statistics_type] = SegmentStatisticsInfo(size=self.size, count=1)
|
|
551
|
+
return stats
|
|
552
|
+
|
|
553
|
+
@property
|
|
554
|
+
def statistics_type(self) -> SegmentType:
|
|
555
|
+
return self.type
|
|
556
|
+
|
|
523
557
|
@property
|
|
524
558
|
def vram_end(self) -> Optional[int]:
|
|
525
559
|
if self.vram_start is not None and self.size is not None:
|
splat/util/statistics.py
CHANGED
|
@@ -24,15 +24,15 @@ class Statistics:
|
|
|
24
24
|
self.seg_sizes[typ] = 0
|
|
25
25
|
self.seg_sizes[typ] += 0 if size is None else size
|
|
26
26
|
|
|
27
|
-
def count_split(self, typ: str):
|
|
27
|
+
def count_split(self, typ: str, count: int = 1):
|
|
28
28
|
if typ not in self.seg_split:
|
|
29
29
|
self.seg_split[typ] = 0
|
|
30
|
-
self.seg_split[typ] +=
|
|
30
|
+
self.seg_split[typ] += count
|
|
31
31
|
|
|
32
|
-
def count_cached(self, typ: str):
|
|
32
|
+
def count_cached(self, typ: str, count: int = 1):
|
|
33
33
|
if typ not in self.seg_cached:
|
|
34
34
|
self.seg_cached[typ] = 0
|
|
35
|
-
self.seg_cached[typ] +=
|
|
35
|
+
self.seg_cached[typ] += count
|
|
36
36
|
|
|
37
37
|
def print_statistics(self, total_size: int):
|
|
38
38
|
unk_size = self.seg_sizes.get("unk", 0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: splat64
|
|
3
|
-
Version: 0.32.
|
|
3
|
+
Version: 0.32.2
|
|
4
4
|
Summary: A binary splitting tool to assist with decompilation and modding projects
|
|
5
5
|
Project-URL: Repository, https://github.com/ethteck/splat
|
|
6
6
|
Project-URL: Issues, https://github.com/ethteck/splat/issues
|
|
@@ -26,6 +26,7 @@ License: MIT License
|
|
|
26
26
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
27
27
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
28
28
|
SOFTWARE.
|
|
29
|
+
License-File: LICENSE
|
|
29
30
|
Classifier: License :: OSI Approved :: MIT License
|
|
30
31
|
Classifier: Programming Language :: Python :: 3
|
|
31
32
|
Requires-Python: >=3.9
|
|
@@ -41,7 +42,7 @@ Requires-Dist: mypy; extra == 'dev'
|
|
|
41
42
|
Requires-Dist: n64img>=0.3.3; extra == 'dev'
|
|
42
43
|
Requires-Dist: pygfxd; extra == 'dev'
|
|
43
44
|
Requires-Dist: rabbitizer<2.0.0,>=1.12.0; extra == 'dev'
|
|
44
|
-
Requires-Dist: spimdisasm<2.0.0,>=1.
|
|
45
|
+
Requires-Dist: spimdisasm<2.0.0,>=1.32.0; extra == 'dev'
|
|
45
46
|
Requires-Dist: types-colorama; extra == 'dev'
|
|
46
47
|
Requires-Dist: types-pyyaml; extra == 'dev'
|
|
47
48
|
Provides-Extra: mips
|
|
@@ -49,7 +50,7 @@ Requires-Dist: crunch64<1.0.0,>=0.5.1; extra == 'mips'
|
|
|
49
50
|
Requires-Dist: n64img>=0.3.3; extra == 'mips'
|
|
50
51
|
Requires-Dist: pygfxd; extra == 'mips'
|
|
51
52
|
Requires-Dist: rabbitizer<2.0.0,>=1.12.0; extra == 'mips'
|
|
52
|
-
Requires-Dist: spimdisasm<2.0.0,>=1.
|
|
53
|
+
Requires-Dist: spimdisasm<2.0.0,>=1.32.0; extra == 'mips'
|
|
53
54
|
Description-Content-Type: text/markdown
|
|
54
55
|
|
|
55
56
|
# splat
|
|
@@ -75,7 +76,7 @@ The brackets corresponds to the optional dependencies to install while installin
|
|
|
75
76
|
If you use a `requirements.txt` file in your repository, then you can add this library with the following line:
|
|
76
77
|
|
|
77
78
|
```txt
|
|
78
|
-
splat64[mips]>=0.32.
|
|
79
|
+
splat64[mips]>=0.32.2,<1.0.0
|
|
79
80
|
```
|
|
80
81
|
|
|
81
82
|
### Optional dependencies
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
splat/__init__.py,sha256=
|
|
1
|
+
splat/__init__.py,sha256=a-EuQ-1jQ9RLrnfrNmIp7R4dCc2ShUTZv0j4car-jHI,291
|
|
2
2
|
splat/__main__.py,sha256=T333dHDgr-2HYYhtARnYMEjdECnYiNIKfcXDD99o22A,732
|
|
3
3
|
splat/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
splat/disassembler/__init__.py,sha256=IubLMnm_F5cZ7WUPBfk1VJ7vdj6i1if5GG6RBvEoBEA,226
|
|
@@ -6,7 +6,7 @@ splat/disassembler/disassembler.py,sha256=2ynehZRz1P6UnaBk6DWRy4c3ynRnnWApMhf0K9
|
|
|
6
6
|
splat/disassembler/disassembler_instance.py,sha256=09GW7QYoNolgE2wnO7ALngw_CxgF-mfyLiXBsyv22jA,916
|
|
7
7
|
splat/disassembler/disassembler_section.py,sha256=J9jtplQVDVeGBmyEOcMpC3Hv3DyecqaNjlYc7zqEqDI,7459
|
|
8
8
|
splat/disassembler/null_disassembler.py,sha256=jYuDMtfPiBifwz0H-ZHLMWtpGa19X_iLgy4K-dQhPYY,328
|
|
9
|
-
splat/disassembler/spimdisasm_disassembler.py,sha256=
|
|
9
|
+
splat/disassembler/spimdisasm_disassembler.py,sha256=Z3eLbmO1Q7uY9zdbFzGJH1zE1LgHSLRQWRwyYpNFuzQ,5685
|
|
10
10
|
splat/platforms/__init__.py,sha256=qjqKi63k5N3DUdILNfuk6qpJJkVeAWpjAs36L97vvP4,100
|
|
11
11
|
splat/platforms/n64.py,sha256=kgWr6nesGC0X-qVydmu8tSq48NbqVf9mF6EyqvUuoUM,421
|
|
12
12
|
splat/platforms/ps2.py,sha256=QI_8Ve43LZeNqpuk8_CFxIqsNJpMTacRHXdZVh3iY6c,336
|
|
@@ -15,35 +15,35 @@ splat/platforms/psx.py,sha256=YxQERdOBr4p3ab9Wk80FNhVYi-uvmh7p_jeykSFp23M,40
|
|
|
15
15
|
splat/scripts/__init__.py,sha256=OY0nHg6a7JB437Sb96qLbZ_7ByVsal1gStj35wJAI_Y,101
|
|
16
16
|
splat/scripts/capy.py,sha256=svbOfLO34-QN3xLiBy9vk2RGs_To8TWMWEKBw6yx2xQ,3674
|
|
17
17
|
splat/scripts/create_config.py,sha256=nFwIt1UWzlWE9C3i-2dGsVyGX2cuXzIqkp2kur2-pdE,7670
|
|
18
|
-
splat/scripts/split.py,sha256=
|
|
18
|
+
splat/scripts/split.py,sha256=INZ8gwyv9ulSfrNYJuPykkg5BWWsYLnto6JVXXIiHG0,20704
|
|
19
19
|
splat/segtypes/__init__.py,sha256=-upUw_4JGQtvyp6IfTMzOq_CK3xvVaT_0K0_EipHyOo,208
|
|
20
20
|
splat/segtypes/linker_entry.py,sha256=m2qrZEZaRqsurUVlgo5rQt-4OZwDywK8hTqY1SoF2D8,24689
|
|
21
|
-
splat/segtypes/segment.py,sha256=
|
|
21
|
+
splat/segtypes/segment.py,sha256=Ey4d4hxGWL4e8ZsxVRGXafP9GCFXB-3F6loaBFVDU-k,28764
|
|
22
22
|
splat/segtypes/common/__init__.py,sha256=mnq0acScilSCCo6q2PvkDk0Or3V8qitA7I8QMVw8haI,631
|
|
23
23
|
splat/segtypes/common/asm.py,sha256=_EfIbDOlQdmvAVqPq_Jxgp335zIxEPLnuQc96x9EyOY,1819
|
|
24
24
|
splat/segtypes/common/asmtu.py,sha256=hrflvDGZ4BcVEA8CRkkIOlqt0tUCC4iNb4oclht2o6s,2274
|
|
25
|
-
splat/segtypes/common/bin.py,sha256=
|
|
25
|
+
splat/segtypes/common/bin.py,sha256=6rxYRXTdAVEs3AFMgmhelOwOmKMg3bbkl-j4k4wqql4,1229
|
|
26
26
|
splat/segtypes/common/bss.py,sha256=EIN8E7CfqwcWRMWb_JIbGBicu6VKREdIbvQZNBM-6sM,3037
|
|
27
27
|
splat/segtypes/common/c.py,sha256=NWLc1ArOQ3t2xfIJj8I2AGzm8xNR9DPbb5Wgg9L1VNY,19755
|
|
28
28
|
splat/segtypes/common/code.py,sha256=23VZJXNFi3PYq3xH269DlxjCiqasSQnMuxwQkh-1qXU,10629
|
|
29
|
-
splat/segtypes/common/codesubsegment.py,sha256=
|
|
29
|
+
splat/segtypes/common/codesubsegment.py,sha256=fRDFUu9RzBSMeHo_vsT0Ko1qoeLDq8kLaIX4asJGMa4,7015
|
|
30
30
|
splat/segtypes/common/cpp.py,sha256=p-duowCt4czrmaWgj1LuFw5LGfdyB_uaeLTKVmH80Cg,180
|
|
31
|
-
splat/segtypes/common/data.py,sha256=
|
|
31
|
+
splat/segtypes/common/data.py,sha256=ZR6ZVgAOWuKJOMpKAe4nK2ORH9oAjQ8uSszcTJaZ1j8,5997
|
|
32
32
|
splat/segtypes/common/databin.py,sha256=ucbbsc_M1332KifjExuDsf1wqm4-GZAiLqOwwrUwUpQ,1194
|
|
33
33
|
splat/segtypes/common/eh_frame.py,sha256=MzL373ej2E38leM47py3T5beLq2IolsYszLZM8PYS2Y,913
|
|
34
34
|
splat/segtypes/common/gcc_except_table.py,sha256=-ZrQL5dCcRu7EPFFPgL8lIJwWL5FsEeeQoSUVfTkyIg,2112
|
|
35
|
-
splat/segtypes/common/group.py,sha256=
|
|
35
|
+
splat/segtypes/common/group.py,sha256=DIDLeiOlpguIPatw8a9vHmvsQ2LXI-QWbFy_D7PhVgQ,5928
|
|
36
36
|
splat/segtypes/common/hasm.py,sha256=HW6OADo-2D3Jln0q5KAoE8zUGOUiJAUEHqHOG4dRmw8,1130
|
|
37
37
|
splat/segtypes/common/header.py,sha256=NspQdk-L69j9dOBzBtDKb7bc11Gwa0WDWIVCd2P4mfE,1257
|
|
38
38
|
splat/segtypes/common/lib.py,sha256=WaJH0DH0B8iJvhYQWYBjThbNeEXz3Yh7E8ZyONe5JtQ,2349
|
|
39
39
|
splat/segtypes/common/linker_offset.py,sha256=IaEXMXq62BS2g95I4lS0wax5Ehjfi3O3C-uSDUbMjvI,767
|
|
40
40
|
splat/segtypes/common/pad.py,sha256=-7SaRgXrmGeOINKVV9v1c3e9jn8aVQknD8EVaEPcPrw,758
|
|
41
41
|
splat/segtypes/common/rdata.py,sha256=ab2MFZVjlnD2p5nDVNroo3W9blaVJND2jN2PJPy6a_Y,142
|
|
42
|
-
splat/segtypes/common/rodata.py,sha256=
|
|
42
|
+
splat/segtypes/common/rodata.py,sha256=sv-QCqKTQ2RNB5W0-BjiiSQhxB99pU0gEBFbd8e9SZo,6175
|
|
43
43
|
splat/segtypes/common/rodatabin.py,sha256=uqp60QuwHwvlMwHq0nZrU3y3yYcHbv2twT0PIDp4NzM,1199
|
|
44
44
|
splat/segtypes/common/sbss.py,sha256=blIEuVYie4qNEOYMmlSdltn5f4MvgJu3AV8vqVD8Nh4,131
|
|
45
45
|
splat/segtypes/common/sdata.py,sha256=dnLzNSNtSyclLZiNUmFTv0e0BWN8glxB1km1MSRq6xY,136
|
|
46
|
-
splat/segtypes/common/segment.py,sha256=
|
|
46
|
+
splat/segtypes/common/segment.py,sha256=vVFyFjs-gS5qIWO8Pd0pMJYxboP-iBRKvxcDV8YxdYM,94
|
|
47
47
|
splat/segtypes/common/textbin.py,sha256=6WXGaAPJhqFYamqoUPeSr2nq2M6Go3BxG1_s7UozEUA,4296
|
|
48
48
|
splat/segtypes/n64/__init__.py,sha256=tf2yWlijeKmOp1OhEEL-aW88mU-mWQRC2lSjQ5Ww1eI,569
|
|
49
49
|
splat/segtypes/n64/ci.py,sha256=An7wIHcoZ89KiGCKpCRbM7IrmDNYBidXT-6kjKn2vH0,2400
|
|
@@ -84,7 +84,7 @@ splat/util/options.py,sha256=XrOq83KPdNU-RjrIMx-G6jZ8-y0wtsnazuuqcSaSWeY,28061
|
|
|
84
84
|
splat/util/palettes.py,sha256=d3KoZnwt-zunI9eNwb3txysXg4DY3xnF0O5aQRxM4so,2920
|
|
85
85
|
splat/util/progress_bar.py,sha256=41VehpIFK1cphENaXV_Aq6_3mFx25eQ8V7Z51SKFPeM,166
|
|
86
86
|
splat/util/relocs.py,sha256=cgQYSaAtNpLlUZQdhEfa7ZpI8i0HqoDhwB88QtFqdJs,4212
|
|
87
|
-
splat/util/statistics.py,sha256=
|
|
87
|
+
splat/util/statistics.py,sha256=8C88vLW8q4Xd4i1Crz8X24NLoraLyKd0lw3ebbeonSo,1906
|
|
88
88
|
splat/util/symbols.py,sha256=CMYn6dQDJJEx6bd6IHai8jnqkRwC3EkLdtvMJWz4AlM,29688
|
|
89
89
|
splat/util/utils.py,sha256=EtuU2f7S3vI8kH9C9KaIpjANsUCUkoFz4VBNLWK9lQY,187
|
|
90
90
|
splat/util/vram_classes.py,sha256=UH4rkugEwoec_-alJ4smNOcnU51G-V5OG7Pfsj47eaM,3491
|
|
@@ -93,8 +93,8 @@ splat/util/n64/find_code_length.py,sha256=uUoPoUORAjsAvH8oGqwnGvw6j8I_NnSrZtA-x9
|
|
|
93
93
|
splat/util/n64/rominfo.py,sha256=U6TieblUAmxhZsn7u8nbjOKkbC6ygsC_7IiLLaOWwUE,14646
|
|
94
94
|
splat/util/psx/__init__.py,sha256=kCCaR-KB1mNlIcXB4OuuSQ2zVLbWg_SnIZIUeyjeBBI,39
|
|
95
95
|
splat/util/psx/psxexeinfo.py,sha256=MrxY28nes0uzpFmCz0o9JFbF8s1eQRQNOpC_82wsMVI,5725
|
|
96
|
-
splat64-0.32.
|
|
97
|
-
splat64-0.32.
|
|
98
|
-
splat64-0.32.
|
|
99
|
-
splat64-0.32.
|
|
100
|
-
splat64-0.32.
|
|
96
|
+
splat64-0.32.2.dist-info/METADATA,sha256=yd7HFS__8mQ3lqO6kA14ZYdwImHBVTcQc0zdtOaGDYI,3830
|
|
97
|
+
splat64-0.32.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
98
|
+
splat64-0.32.2.dist-info/entry_points.txt,sha256=O7Xy-qNOHcI87-OQrWJ-OhRDws74SuwVb_4rtnp0eLo,52
|
|
99
|
+
splat64-0.32.2.dist-info/licenses/LICENSE,sha256=97VMVzjG8yQvsf8NG2M9IFSbh7R8cifJnc6QK1cZqj8,1070
|
|
100
|
+
splat64-0.32.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|