splat64 0.32.2__py3-none-any.whl → 0.32.3__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/segtypes/common/bss.py +3 -1
- splat/segtypes/common/code.py +2 -0
- splat/segtypes/common/group.py +11 -2
- splat/segtypes/segment.py +3 -1
- splat/util/options.py +4 -4
- {splat64-0.32.2.dist-info → splat64-0.32.3.dist-info}/METADATA +2 -2
- {splat64-0.32.2.dist-info → splat64-0.32.3.dist-info}/RECORD +11 -11
- {splat64-0.32.2.dist-info → splat64-0.32.3.dist-info}/WHEEL +0 -0
- {splat64-0.32.2.dist-info → splat64-0.32.3.dist-info}/entry_points.txt +0 -0
- {splat64-0.32.2.dist-info → splat64-0.32.3.dist-info}/licenses/LICENSE +0 -0
splat/__init__.py
CHANGED
splat/segtypes/common/bss.py
CHANGED
|
@@ -60,7 +60,9 @@ class CommonSegBss(CommonSegData):
|
|
|
60
60
|
f"Segment '{self.name}' (type '{self.type}') requires a vram address. Got '{self.vram_start}'"
|
|
61
61
|
)
|
|
62
62
|
|
|
63
|
-
next_subsegment = self.parent.get_next_subsegment_for_ram(
|
|
63
|
+
next_subsegment = self.parent.get_next_subsegment_for_ram(
|
|
64
|
+
self.vram_start, self.index_within_group
|
|
65
|
+
)
|
|
64
66
|
if next_subsegment is None:
|
|
65
67
|
bss_end = self.get_most_parent().vram_end
|
|
66
68
|
else:
|
splat/segtypes/common/code.py
CHANGED
|
@@ -270,6 +270,8 @@ class CommonSegCode(CommonSegGroup):
|
|
|
270
270
|
sibling.siblings[segment.get_linker_section_linksection()] = segment
|
|
271
271
|
|
|
272
272
|
ret = self._insert_all_auto_sections(ret, base_segments, readonly_before)
|
|
273
|
+
for i, seg in enumerate(ret):
|
|
274
|
+
seg.index_within_group = i
|
|
273
275
|
|
|
274
276
|
return ret
|
|
275
277
|
|
splat/segtypes/common/group.py
CHANGED
|
@@ -110,11 +110,16 @@ class CommonSegGroup(CommonSegment):
|
|
|
110
110
|
self.special_vram_segment = True
|
|
111
111
|
segment.is_auto_segment = is_auto_segment
|
|
112
112
|
|
|
113
|
+
segment.index_within_group = len(ret)
|
|
114
|
+
|
|
113
115
|
ret.append(segment)
|
|
114
116
|
prev_start = start
|
|
115
117
|
if end is not None:
|
|
116
118
|
last_rom_end = end
|
|
117
119
|
|
|
120
|
+
for i, seg in enumerate(ret):
|
|
121
|
+
seg.index_within_group = i
|
|
122
|
+
|
|
118
123
|
return ret
|
|
119
124
|
|
|
120
125
|
@property
|
|
@@ -165,13 +170,17 @@ class CommonSegGroup(CommonSegment):
|
|
|
165
170
|
return sub
|
|
166
171
|
return None
|
|
167
172
|
|
|
168
|
-
def get_next_subsegment_for_ram(
|
|
173
|
+
def get_next_subsegment_for_ram(
|
|
174
|
+
self, addr: int, current_subseg_index: Optional[int]
|
|
175
|
+
) -> Optional[Segment]:
|
|
169
176
|
"""
|
|
170
177
|
Returns the first subsegment which comes after the specified address,
|
|
171
178
|
or None in case this address belongs to the last subsegment of this group
|
|
172
179
|
"""
|
|
173
180
|
|
|
174
|
-
|
|
181
|
+
start = current_subseg_index if current_subseg_index is not None else 0
|
|
182
|
+
|
|
183
|
+
for sub in self.subsegments[start:]:
|
|
175
184
|
if sub.vram_start is None:
|
|
176
185
|
continue
|
|
177
186
|
assert isinstance(sub.vram_start, int)
|
splat/segtypes/segment.py
CHANGED
|
@@ -255,7 +255,7 @@ class Segment:
|
|
|
255
255
|
|
|
256
256
|
@staticmethod
|
|
257
257
|
def parse_suggestion_rodata_section_start(
|
|
258
|
-
yaml: Union[dict, list]
|
|
258
|
+
yaml: Union[dict, list],
|
|
259
259
|
) -> Optional[bool]:
|
|
260
260
|
if isinstance(yaml, dict):
|
|
261
261
|
suggestion_rodata_section_start = yaml.get(
|
|
@@ -354,6 +354,8 @@ class Segment:
|
|
|
354
354
|
# Is an automatic segment, generated automatically or declared on the yaml by the user
|
|
355
355
|
self.is_auto_segment: bool = False
|
|
356
356
|
|
|
357
|
+
self.index_within_group: Optional[int] = None
|
|
358
|
+
|
|
357
359
|
if self.rom_start is not None and self.rom_end is not None:
|
|
358
360
|
if self.rom_start > self.rom_end:
|
|
359
361
|
log.error(
|
splat/util/options.py
CHANGED
|
@@ -554,10 +554,10 @@ def _parse_yaml(
|
|
|
554
554
|
detect_redundant_function_end=p.parse_opt(
|
|
555
555
|
"detect_redundant_function_end", bool, True
|
|
556
556
|
),
|
|
557
|
-
#
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
),
|
|
557
|
+
# Setting either option will produce a full disassembly,
|
|
558
|
+
# but we still have to check the yaml option first to avoid leaving option unparsed,
|
|
559
|
+
# because splat would complain about an unrecognized yaml option otherwise.
|
|
560
|
+
disassemble_all=p.parse_opt("disassemble_all", bool, False) or disasm_all,
|
|
561
561
|
global_vram_start=p.parse_optional_opt("global_vram_start", int),
|
|
562
562
|
global_vram_end=p.parse_optional_opt("global_vram_end", int),
|
|
563
563
|
use_gp_rel_macro_nonmatching=p.parse_opt(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: splat64
|
|
3
|
-
Version: 0.32.
|
|
3
|
+
Version: 0.32.3
|
|
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
|
|
@@ -76,7 +76,7 @@ The brackets corresponds to the optional dependencies to install while installin
|
|
|
76
76
|
If you use a `requirements.txt` file in your repository, then you can add this library with the following line:
|
|
77
77
|
|
|
78
78
|
```txt
|
|
79
|
-
splat64[mips]>=0.32.
|
|
79
|
+
splat64[mips]>=0.32.3,<1.0.0
|
|
80
80
|
```
|
|
81
81
|
|
|
82
82
|
### Optional dependencies
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
splat/__init__.py,sha256=
|
|
1
|
+
splat/__init__.py,sha256=AVWbICqaSjTvM62olB32zeBhCtNyKbP8PxwBjyVh4dE,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
|
|
@@ -18,21 +18,21 @@ splat/scripts/create_config.py,sha256=nFwIt1UWzlWE9C3i-2dGsVyGX2cuXzIqkp2kur2-pd
|
|
|
18
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=Y8OaNle09VeQ8pghzMQtxu8I2sWKy8fWPdfRH1zkUXU,28820
|
|
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
25
|
splat/segtypes/common/bin.py,sha256=6rxYRXTdAVEs3AFMgmhelOwOmKMg3bbkl-j4k4wqql4,1229
|
|
26
|
-
splat/segtypes/common/bss.py,sha256=
|
|
26
|
+
splat/segtypes/common/bss.py,sha256=nktRbKrDivweyLdsUQkL5guSayqpwn7NK5j3gq3arKc,3084
|
|
27
27
|
splat/segtypes/common/c.py,sha256=NWLc1ArOQ3t2xfIJj8I2AGzm8xNR9DPbb5Wgg9L1VNY,19755
|
|
28
|
-
splat/segtypes/common/code.py,sha256=
|
|
28
|
+
splat/segtypes/common/code.py,sha256=CFDbn2YCoRIpUT07vTW0rUQtG58X0sxTtp17VPbrZsc,10706
|
|
29
29
|
splat/segtypes/common/codesubsegment.py,sha256=fRDFUu9RzBSMeHo_vsT0Ko1qoeLDq8kLaIX4asJGMa4,7015
|
|
30
30
|
splat/segtypes/common/cpp.py,sha256=p-duowCt4czrmaWgj1LuFw5LGfdyB_uaeLTKVmH80Cg,180
|
|
31
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=4g8jrpUjlsvxFuFRauS4rdxTvAAePebc941fQj96qEA,6197
|
|
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
|
|
@@ -80,7 +80,7 @@ splat/util/cache_handler.py,sha256=N0SggmvYwh0k-0fngHXoHG1CosC2rCsnlCTDsG8z5aE,1
|
|
|
80
80
|
splat/util/color.py,sha256=FSmy0dAQJ9FzRBc99Yt4kBEyB62MC_YiVkqoWgPMsRU,371
|
|
81
81
|
splat/util/compiler.py,sha256=g9MjVe6E1kSGRxgDRgWGEd4qdDf2LzGLK1QRtp4znMc,1493
|
|
82
82
|
splat/util/log.py,sha256=GguW9AolH-EXGBmh-8aZXgUeBFJthqAOb3qKtRYUSj8,999
|
|
83
|
-
splat/util/options.py,sha256=
|
|
83
|
+
splat/util/options.py,sha256=evfJntGz7xC3Bhxr9VA7Ib9MSF15E3NzJ0eVUqP2Z8I,28197
|
|
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
|
|
@@ -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.3.dist-info/METADATA,sha256=_6qnWfXwIdhpMVWpoflJDGU8H3_wT7QGLa7InRwrBvM,3830
|
|
97
|
+
splat64-0.32.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
98
|
+
splat64-0.32.3.dist-info/entry_points.txt,sha256=O7Xy-qNOHcI87-OQrWJ-OhRDws74SuwVb_4rtnp0eLo,52
|
|
99
|
+
splat64-0.32.3.dist-info/licenses/LICENSE,sha256=97VMVzjG8yQvsf8NG2M9IFSbh7R8cifJnc6QK1cZqj8,1070
|
|
100
|
+
splat64-0.32.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|