splat64 0.33.2__tar.gz → 0.34.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.
- {splat64-0.33.2 → splat64-0.34.1}/CHANGELOG.md +7 -0
- {splat64-0.33.2 → splat64-0.34.1}/PKG-INFO +2 -2
- {splat64-0.33.2 → splat64-0.34.1}/README.md +1 -1
- {splat64-0.33.2 → splat64-0.34.1}/docs/Configuration.md +15 -0
- {splat64-0.33.2 → splat64-0.34.1}/docs/General-Workflow.md +2 -0
- {splat64-0.33.2 → splat64-0.34.1}/pyproject.toml +1 -1
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/__init__.py +1 -1
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/scripts/split.py +7 -3
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/segment.py +16 -8
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/log.py +12 -1
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/options.py +13 -1
- {splat64-0.33.2 → splat64-0.34.1}/.gitattributes +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/.github/workflows/black.yml +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/.github/workflows/mypy.yml +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/.github/workflows/publish_docs_to_wiki.yml +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/.github/workflows/pypi.yml +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/.github/workflows/test_lib.yml +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/.github/workflows/unit_tests.yml +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/.gitignore +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/LICENSE +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/create_config.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/docs/Adding-Symbols.md +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/docs/Advanced.md +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/docs/Examples.md +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/docs/Home.md +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/docs/Quickstart.md +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/docs/Segments.md +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/docs/VramClasses.md +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/mypy.ini +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/requirements.txt +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/split.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/__main__.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/disassembler/__init__.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/disassembler/disassembler.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/disassembler/disassembler_instance.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/disassembler/disassembler_section.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/disassembler/null_disassembler.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/disassembler/spimdisasm_disassembler.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/platforms/__init__.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/platforms/n64.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/platforms/ps2.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/platforms/psp.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/platforms/psx.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/py.typed +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/scripts/__init__.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/scripts/capy.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/scripts/create_config.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/__init__.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/__init__.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/asm.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/asmtu.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/bin.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/bss.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/c.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/code.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/codesubsegment.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/cpp.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/data.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/databin.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/eh_frame.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/gcc_except_table.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/group.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/hasm.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/header.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/lib.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/linker_offset.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/pad.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/rdata.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/rodata.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/rodatabin.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/sbss.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/sdata.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/segment.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/common/textbin.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/linker_entry.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/__init__.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/ci.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/ci4.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/ci8.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/decompressor.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/gfx.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/header.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/i1.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/i4.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/i8.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/ia16.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/ia4.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/ia8.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/img.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/ipl3.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/mio0.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/palette.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/rgba16.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/rgba32.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/rsp.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/vtx.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/n64/yay0.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/ps2/__init__.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/ps2/ctor.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/ps2/lit4.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/ps2/lit8.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/ps2/vtables.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/psp/__init__.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/psx/__init__.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/segtypes/psx/header.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/__init__.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/cache_handler.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/color.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/compiler.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/conf.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/n64/__init__.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/n64/find_code_length.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/n64/rominfo.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/palettes.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/progress_bar.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/psx/__init__.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/psx/psxexeinfo.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/relocs.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/statistics.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/symbols.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/utils.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/src/splat/util/vram_classes.py +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/Dockerfile +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/README.md +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/.gitignore +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/Makefile +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/build/basic_app.bin +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/dummy_ipl3.s +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/.splache +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/asm/data/main.bss.s +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/asm/data/main.data.s +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/asm/data/main.rodata.s +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/asm/handwritten.s +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/asm/header.s +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/asm/main.s +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/asm/nonmatchings/main/D_80000510.s +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/asm/nonmatchings/main/func_80000400.s +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/asm/nonmatchings/main/func_800004A0.s +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/assets/dummy_ipl3.bin +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/basic_app.d +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/build/test/basic_app/split/src/main.asmproc.d +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/src/main.c +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/undefined_funcs_auto.txt +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/undefined_syms_auto.txt +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/handwritten.s +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/header.s +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/basic_app/main.c +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test/test_gen_expected.sh +0 -0
- {splat64-0.33.2 → splat64-0.34.1}/test.py +0 -0
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# splat Release Notes
|
|
2
2
|
|
|
3
|
+
### 0.34.1
|
|
4
|
+
* Deprecate `--stdout-only` cli flag. Changed output such that errors and warnings go to stderr and all other output goes to stdout.
|
|
5
|
+
|
|
6
|
+
### 0.34.0
|
|
7
|
+
* Add new global option `is_unsupported_platform`. If enabled, disable checks on platform option.
|
|
8
|
+
* Add new global option `allow_segment_overrides`. If enabled, allows to take precedence over the splat builtin platform segments via splat extension.
|
|
9
|
+
|
|
3
10
|
### 0.33.2
|
|
4
11
|
* Change `make_full_disasm_for_code` to output other sections for the TU in addition to .text.
|
|
5
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: splat64
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.34.1
|
|
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.
|
|
79
|
+
splat64[mips]>=0.34.1,<1.0.0
|
|
80
80
|
```
|
|
81
81
|
|
|
82
82
|
### Optional dependencies
|
|
@@ -21,7 +21,7 @@ The brackets corresponds to the optional dependencies to install while installin
|
|
|
21
21
|
If you use a `requirements.txt` file in your repository, then you can add this library with the following line:
|
|
22
22
|
|
|
23
23
|
```txt
|
|
24
|
-
splat64[mips]>=0.
|
|
24
|
+
splat64[mips]>=0.34.1,<1.0.0
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
### Optional dependencies
|
|
@@ -154,6 +154,21 @@ check_consecutive_segment_types: False
|
|
|
154
154
|
```
|
|
155
155
|
|
|
156
156
|
|
|
157
|
+
### is_unsupported_platform
|
|
158
|
+
|
|
159
|
+
Disable checks on `platform` option.
|
|
160
|
+
|
|
161
|
+
Defaults to `False`.
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
### allow_segment_overrides
|
|
165
|
+
|
|
166
|
+
Allows to take precedence over the splat builtin platform segments via splat extension.
|
|
167
|
+
|
|
168
|
+
Setting it to `True` tells splat to look for platorm segments in `extensions_path`.
|
|
169
|
+
|
|
170
|
+
Defaults to `False`.
|
|
171
|
+
|
|
157
172
|
## Paths
|
|
158
173
|
|
|
159
174
|
|
|
@@ -124,6 +124,8 @@ For a GCC example, see the [include.h](https://github.com/AngheloAlf/drmario64/b
|
|
|
124
124
|
|
|
125
125
|
For IDO, you will need to use [asm-processor](https://github.com/simonlindholm/asm-processor) in order to include assembly code within the c files.
|
|
126
126
|
|
|
127
|
+
For MWCC, you will need [mwccgap](https://github.com/mkst/mwccgap) to include assembly code in the c files, similar to asm-processor.
|
|
128
|
+
|
|
127
129
|
## Assembly macros
|
|
128
130
|
|
|
129
131
|
splat relies on some assembly macros for the asm generation. They usually live on the `include/macro.inc` file. Without these macros then an assembler would not be able to build our disassemblies.
|
|
@@ -452,7 +452,8 @@ def main(
|
|
|
452
452
|
make_full_disasm_for_code=False,
|
|
453
453
|
):
|
|
454
454
|
if stdout_only:
|
|
455
|
-
|
|
455
|
+
log.write("--stdout-only flag is deprecated", status="warn")
|
|
456
|
+
progress_bar.out_file = sys.stdout
|
|
456
457
|
|
|
457
458
|
# Load config
|
|
458
459
|
global config
|
|
@@ -475,7 +476,8 @@ def main(
|
|
|
475
476
|
|
|
476
477
|
cache = cache_handler.Cache(config, use_cache, verbose)
|
|
477
478
|
|
|
478
|
-
|
|
479
|
+
if not options.opts.is_unsupported_platform:
|
|
480
|
+
initialize_platform(rom_bytes)
|
|
479
481
|
|
|
480
482
|
# Initialize segments
|
|
481
483
|
all_segments = initialize_segments(config["segments"])
|
|
@@ -537,7 +539,9 @@ def add_arguments_to_parser(parser: argparse.ArgumentParser):
|
|
|
537
539
|
help="Skips the disassembler's version check",
|
|
538
540
|
)
|
|
539
541
|
parser.add_argument(
|
|
540
|
-
"--stdout-only",
|
|
542
|
+
"--stdout-only",
|
|
543
|
+
help="Print all output to stdout (deprecated)",
|
|
544
|
+
action="store_true",
|
|
541
545
|
)
|
|
542
546
|
parser.add_argument(
|
|
543
547
|
"--disassemble-all",
|
|
@@ -99,10 +99,21 @@ class Segment:
|
|
|
99
99
|
if seg_type.startswith("."):
|
|
100
100
|
seg_type = seg_type[1:]
|
|
101
101
|
|
|
102
|
-
|
|
103
|
-
if segment_class == None:
|
|
104
|
-
# Look in extensions
|
|
102
|
+
if options.opts.allow_segment_overrides:
|
|
105
103
|
segment_class = Segment.get_extension_segment_class(seg_type)
|
|
104
|
+
if segment_class == None:
|
|
105
|
+
segment_class = Segment.get_base_segment_class(seg_type)
|
|
106
|
+
else:
|
|
107
|
+
segment_class = Segment.get_base_segment_class(seg_type)
|
|
108
|
+
if segment_class == None:
|
|
109
|
+
# Look in extensions
|
|
110
|
+
segment_class = Segment.get_extension_segment_class(seg_type)
|
|
111
|
+
|
|
112
|
+
if segment_class == None:
|
|
113
|
+
log.error(
|
|
114
|
+
f"could not load segment type '{seg_type}'\n(hint: confirm your extension directory is configured correctly)"
|
|
115
|
+
)
|
|
116
|
+
|
|
106
117
|
return segment_class
|
|
107
118
|
|
|
108
119
|
@staticmethod
|
|
@@ -147,11 +158,8 @@ class Segment:
|
|
|
147
158
|
ext_mod = importlib.util.module_from_spec(ext_spec)
|
|
148
159
|
assert ext_spec.loader is not None
|
|
149
160
|
ext_spec.loader.exec_module(ext_mod)
|
|
150
|
-
except Exception
|
|
151
|
-
|
|
152
|
-
log.error(
|
|
153
|
-
f"could not load segment type '{seg_type}'\n(hint: confirm your extension directory is configured correctly)"
|
|
154
|
-
)
|
|
161
|
+
except Exception:
|
|
162
|
+
return None
|
|
155
163
|
|
|
156
164
|
return getattr(
|
|
157
165
|
ext_mod, f"{platform.upper()}Seg{seg_type[0].upper()}{seg_type[1:]}"
|
|
@@ -18,7 +18,12 @@ def write(*args, status=None, **kwargs):
|
|
|
18
18
|
print("")
|
|
19
19
|
newline = True
|
|
20
20
|
|
|
21
|
-
print(
|
|
21
|
+
print(
|
|
22
|
+
status_to_ansi(status) + str(args[0]),
|
|
23
|
+
*args[1:],
|
|
24
|
+
**kwargs,
|
|
25
|
+
file=output_file(status),
|
|
26
|
+
)
|
|
22
27
|
|
|
23
28
|
|
|
24
29
|
def error(*args, **kwargs) -> NoReturn:
|
|
@@ -44,3 +49,9 @@ def status_to_ansi(status: Status):
|
|
|
44
49
|
return Style.DIM
|
|
45
50
|
else:
|
|
46
51
|
return ""
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def output_file(status: Status):
|
|
55
|
+
if status == "warn" or status == "error":
|
|
56
|
+
return sys.stderr
|
|
57
|
+
return sys.stdout
|
|
@@ -41,6 +41,10 @@ class SplatOpts:
|
|
|
41
41
|
gp: Optional[int]
|
|
42
42
|
# Checks and errors if there are any non consecutive segment types
|
|
43
43
|
check_consecutive_segment_types: bool
|
|
44
|
+
# Disable checks on `platform` option.
|
|
45
|
+
is_unsupported_platform: bool
|
|
46
|
+
# Allows to take precedence over the splat builtin platform segments via splat extension.
|
|
47
|
+
allow_segment_overrides: bool
|
|
44
48
|
|
|
45
49
|
# Paths
|
|
46
50
|
asset_path: Path
|
|
@@ -355,7 +359,13 @@ def _parse_yaml(
|
|
|
355
359
|
p = OptParser(yaml)
|
|
356
360
|
|
|
357
361
|
basename = p.parse_opt("basename", str)
|
|
358
|
-
|
|
362
|
+
is_unsupported_platform = p.parse_opt("is_unsupported_platform", bool, False)
|
|
363
|
+
|
|
364
|
+
if is_unsupported_platform:
|
|
365
|
+
platform = p.parse_opt("platform", str)
|
|
366
|
+
else:
|
|
367
|
+
platform = p.parse_opt_within("platform", str, ["n64", "psx", "ps2", "psp"])
|
|
368
|
+
|
|
359
369
|
comp = compiler.for_name(p.parse_opt("compiler", str, "IDO"))
|
|
360
370
|
|
|
361
371
|
base_path = Path(
|
|
@@ -399,6 +409,8 @@ def _parse_yaml(
|
|
|
399
409
|
target_path=p.parse_path(base_path, "target_path"),
|
|
400
410
|
elf_path=p.parse_optional_path(base_path, "elf_path"),
|
|
401
411
|
platform=platform,
|
|
412
|
+
is_unsupported_platform=is_unsupported_platform,
|
|
413
|
+
allow_segment_overrides=p.parse_opt("allow_segment_overrides", bool, False),
|
|
402
414
|
compiler=comp,
|
|
403
415
|
endianness=parse_endianness(),
|
|
404
416
|
section_order=p.parse_opt(
|
|
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
|
|
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
|
|
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
|
|
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
|
{splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/asm/nonmatchings/main/D_80000510.s
RENAMED
|
File without changes
|
{splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/asm/nonmatchings/main/func_80000400.s
RENAMED
|
File without changes
|
{splat64-0.33.2 → splat64-0.34.1}/test/basic_app/expected/asm/nonmatchings/main/func_800004A0.s
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
|