PyLibMS 4.0.0__tar.gz → 4.0.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.
- {pylibms-4.0.0 → pylibms-4.0.2}/PKG-INFO +7 -14
- {pylibms-4.0.0 → pylibms-4.0.2}/PyLibMS.egg-info/PKG-INFO +7 -14
- {pylibms-4.0.0 → pylibms-4.0.2}/README.md +6 -13
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/flowchart/flw3.py +1 -2
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/flowchart/msbf.py +0 -1
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/flowchart/msbfio.py +0 -2
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/definitions/nodes.py +1 -1
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/presets/Tomodachi Life NA-EU.yaml +7 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/pyproject.toml +1 -1
- {pylibms-4.0.0 → pylibms-4.0.2}/LICENSE +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/MANIFEST.in +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/PyLibMS.egg-info/SOURCES.txt +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/PyLibMS.egg-info/dependency_links.txt +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/PyLibMS.egg-info/requires.txt +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/PyLibMS.egg-info/top_level.txt +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/__init__.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/common/__init__.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/common/field/__init__.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/common/field/io.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/common/field/lms_datatype.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/common/field/lms_field.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/common/lms_constants.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/common/lms_exceptions.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/common/lms_fileinfo.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/common/stream/fileinfo.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/common/stream/hashtable.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/common/stream/section.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/fileio/encoding.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/fileio/io.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/flowchart/__init__.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/flowchart/definitions/__init__.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/flowchart/definitions/flowchart.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/flowchart/definitions/lms_nodeexceptions.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/flowchart/definitions/node.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/flowchart/definitions/node_type.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/message/__init__.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/message/definitions/__init__.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/message/definitions/field/__init__.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/message/lms_messagetext.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/message/msbt.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/message/msbtentry.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/message/msbtio.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/message/section/__init__.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/message/section/atr1.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/message/section/nli1.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/message/section/tsy1.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/message/section/txt2.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/message/tag/__init__.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/message/tag/io/param_io.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/message/tag/io/tag_io.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/message/tag/lms_tag.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/message/tag/lms_tagexceptions.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/project/__init__.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/project/definitions/__init__.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/project/definitions/attribute.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/project/definitions/color.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/project/definitions/style.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/project/definitions/tag.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/project/msbp.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/project/msbpread.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/project/section/ali2.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/project/section/ati2.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/project/section/clr1.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/project/section/string.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/project/section/syl3.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/project/section/tag2.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/project/section/tgg2.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/project/section/tgp2.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/__init__.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/config.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/definitions/__init__.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/definitions/attribute.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/definitions/tags.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/definitions/value.py +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/presets/Badge Arcade.yaml +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/presets/Brain Age Concentration Training.yaml +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/presets/Kirby Planet Robobot.yaml +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/presets/Super Mario 3D Land.yaml +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/presets/Super Mario 3D World + Bowsers Fury.yaml +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/presets/Super Mario Odyssey.yaml +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/presets/The Legend of Zelda Echos of Wisdom.yaml +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/presets/The Legend of Zelda a Link Between Worlds.yaml +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/presets/Tomodachi Life Living The Dream.yaml +0 -0
- {pylibms-4.0.0 → pylibms-4.0.2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyLibMS
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.2
|
|
4
4
|
Summary: Python library built for the libMessageStudio (LMS) proprietary file formats from Nintendo. Supports MSBT, MSBP, and MSBF.
|
|
5
5
|
Author: AbdyyEee
|
|
6
6
|
License-Expression: MIT
|
|
@@ -18,20 +18,13 @@ Dynamic: license-file
|
|
|
18
18
|
PylibMS is a library built in Python 3.12+ for the libMessageStudio (LMS) proprietary file formats (`msbt`, `msbp`,
|
|
19
19
|
`msbf`) from Nintendo. It supports the following:
|
|
20
20
|
|
|
21
|
-
|
|
|
21
|
+
| Format | Read | Write | Configuration Support |
|
|
22
22
|
|-------------|------|-------|-------------------------------------------------------------------------------------------|
|
|
23
|
-
| MSBT | ✅
|
|
24
|
-
| MSBF | ✅
|
|
25
|
-
| MSBP | ✅
|
|
26
|
-
|
|
27
|
-
This library is designed to support LMS revision 3.0
|
|
28
|
-
following Nintendo platforms:
|
|
29
|
-
|
|
30
|
-
* Wii (Specific titles only)
|
|
31
|
-
* Nintendo 3DS
|
|
32
|
-
* Wii U
|
|
33
|
-
* Mobile (Specific titles only)
|
|
34
|
-
* Nintendo Switch
|
|
23
|
+
| MSBT | ✅ | ✅ | Complete attribute decoding + tag decoding down to official `mstxt` Nintendo tool syntax. |
|
|
24
|
+
| MSBF | ✅ | ✅ | Flexible node + parameter decoding through configuration definitions. |
|
|
25
|
+
| MSBP | ✅ | ❌ | N/A |
|
|
26
|
+
|
|
27
|
+
This library is designed to support LMS revision 3.0+ from most Nintendo consoles. However, MSBF files that use `FLW1` and `FLW2` are not supported.
|
|
35
28
|
|
|
36
29
|
# Features and Usage
|
|
37
30
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyLibMS
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.2
|
|
4
4
|
Summary: Python library built for the libMessageStudio (LMS) proprietary file formats from Nintendo. Supports MSBT, MSBP, and MSBF.
|
|
5
5
|
Author: AbdyyEee
|
|
6
6
|
License-Expression: MIT
|
|
@@ -18,20 +18,13 @@ Dynamic: license-file
|
|
|
18
18
|
PylibMS is a library built in Python 3.12+ for the libMessageStudio (LMS) proprietary file formats (`msbt`, `msbp`,
|
|
19
19
|
`msbf`) from Nintendo. It supports the following:
|
|
20
20
|
|
|
21
|
-
|
|
|
21
|
+
| Format | Read | Write | Configuration Support |
|
|
22
22
|
|-------------|------|-------|-------------------------------------------------------------------------------------------|
|
|
23
|
-
| MSBT | ✅
|
|
24
|
-
| MSBF | ✅
|
|
25
|
-
| MSBP | ✅
|
|
26
|
-
|
|
27
|
-
This library is designed to support LMS revision 3.0
|
|
28
|
-
following Nintendo platforms:
|
|
29
|
-
|
|
30
|
-
* Wii (Specific titles only)
|
|
31
|
-
* Nintendo 3DS
|
|
32
|
-
* Wii U
|
|
33
|
-
* Mobile (Specific titles only)
|
|
34
|
-
* Nintendo Switch
|
|
23
|
+
| MSBT | ✅ | ✅ | Complete attribute decoding + tag decoding down to official `mstxt` Nintendo tool syntax. |
|
|
24
|
+
| MSBF | ✅ | ✅ | Flexible node + parameter decoding through configuration definitions. |
|
|
25
|
+
| MSBP | ✅ | ❌ | N/A |
|
|
26
|
+
|
|
27
|
+
This library is designed to support LMS revision 3.0+ from most Nintendo consoles. However, MSBF files that use `FLW1` and `FLW2` are not supported.
|
|
35
28
|
|
|
36
29
|
# Features and Usage
|
|
37
30
|
|
|
@@ -3,20 +3,13 @@
|
|
|
3
3
|
PylibMS is a library built in Python 3.12+ for the libMessageStudio (LMS) proprietary file formats (`msbt`, `msbp`,
|
|
4
4
|
`msbf`) from Nintendo. It supports the following:
|
|
5
5
|
|
|
6
|
-
|
|
|
6
|
+
| Format | Read | Write | Configuration Support |
|
|
7
7
|
|-------------|------|-------|-------------------------------------------------------------------------------------------|
|
|
8
|
-
| MSBT | ✅
|
|
9
|
-
| MSBF | ✅
|
|
10
|
-
| MSBP | ✅
|
|
11
|
-
|
|
12
|
-
This library is designed to support LMS revision 3.0
|
|
13
|
-
following Nintendo platforms:
|
|
14
|
-
|
|
15
|
-
* Wii (Specific titles only)
|
|
16
|
-
* Nintendo 3DS
|
|
17
|
-
* Wii U
|
|
18
|
-
* Mobile (Specific titles only)
|
|
19
|
-
* Nintendo Switch
|
|
8
|
+
| MSBT | ✅ | ✅ | Complete attribute decoding + tag decoding down to official `mstxt` Nintendo tool syntax. |
|
|
9
|
+
| MSBF | ✅ | ✅ | Flexible node + parameter decoding through configuration definitions. |
|
|
10
|
+
| MSBP | ✅ | ❌ | N/A |
|
|
11
|
+
|
|
12
|
+
This library is designed to support LMS revision 3.0+ from most Nintendo consoles. However, MSBF files that use `FLW1` and `FLW2` are not supported.
|
|
20
13
|
|
|
21
14
|
# Features and Usage
|
|
22
15
|
|
|
@@ -148,7 +148,6 @@ def evaluate_node_parameter(reader: FileReader,
|
|
|
148
148
|
result = {}
|
|
149
149
|
|
|
150
150
|
if parameter_type is LMS_NodeParameterType.STRING:
|
|
151
|
-
print(definition, definition.parameter_type, parameter_type)
|
|
152
151
|
param_definition = definition.parameter_definitions[0]
|
|
153
152
|
value = reader.read_string_offset(section_start)
|
|
154
153
|
|
|
@@ -202,7 +201,7 @@ def write_flw3(writer: FileWriter, nodes: list[LMS_BaseNode], stream_ids: dict[L
|
|
|
202
201
|
writer.write_bytes(b"\x00" * 2)
|
|
203
202
|
writer.write_bytes(b"\x00" * 4)
|
|
204
203
|
|
|
205
|
-
write_next_node_id(writer, stream_ids[node.next_node])
|
|
204
|
+
write_next_node_id(writer, None if node.next_node is None else stream_ids[node.next_node])
|
|
206
205
|
|
|
207
206
|
writer.write_uint16(node.msbt_index)
|
|
208
207
|
writer.write_uint16(node.label_index)
|
|
@@ -73,7 +73,6 @@ class MSBF:
|
|
|
73
73
|
if entry_point is None:
|
|
74
74
|
entry_point = LMS_EntryNode(self.generate_next_id(), flowchart_name=flowchart_name)
|
|
75
75
|
|
|
76
|
-
print(entry_point.id)
|
|
77
76
|
flowchart = LMS_Flowchart(entry_point, self.generate_next_id)
|
|
78
77
|
self._flowcharts[flowchart_name] = flowchart
|
|
79
78
|
return flowchart
|
|
@@ -132,9 +132,7 @@ def write_msbf(file: MSBF) -> bytes:
|
|
|
132
132
|
for flowchart in file
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
print(index_map)
|
|
136
135
|
write_section(writer, "FLW3", write_flw3, nodes, stream_ids)
|
|
137
|
-
|
|
138
136
|
write_section(writer, "FEN1", write_labels, list(file.flowcharts.keys()), MSBF.DEFAULT_SLOT_COUNT, index_map)
|
|
139
137
|
write_file_size(writer)
|
|
140
138
|
return writer.get_data()
|
|
@@ -29,6 +29,13 @@ node_definitions:
|
|
|
29
29
|
parameters:
|
|
30
30
|
- name: pos
|
|
31
31
|
description: ''
|
|
32
|
+
- id: 48
|
|
33
|
+
name: SetupMessage
|
|
34
|
+
description: ''
|
|
35
|
+
parameter_type: p16_16
|
|
36
|
+
parameters:
|
|
37
|
+
- name: val1
|
|
38
|
+
- name: val2
|
|
32
39
|
- id: 58
|
|
33
40
|
name: SetupButtonPrompt
|
|
34
41
|
description: ''
|
|
@@ -7,7 +7,7 @@ include = ["lms*"]
|
|
|
7
7
|
|
|
8
8
|
[project]
|
|
9
9
|
name = "PyLibMS"
|
|
10
|
-
version = "4.0.
|
|
10
|
+
version = "4.0.2"
|
|
11
11
|
requires-python = ">=3.12"
|
|
12
12
|
description = "Python library built for the libMessageStudio (LMS) proprietary file formats from Nintendo. Supports MSBT, MSBP, and MSBF."
|
|
13
13
|
readme = "README.md"
|
|
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
|
{pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/presets/Brain Age Concentration Training.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/presets/Super Mario 3D World + Bowsers Fury.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/presets/The Legend of Zelda Echos of Wisdom.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{pylibms-4.0.0 → pylibms-4.0.2}/lms/titleconfig/presets/Tomodachi Life Living The Dream.yaml
RENAMED
|
File without changes
|
|
File without changes
|