PyLibMS 4.0.1__tar.gz → 4.0.3__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.
Files changed (84) hide show
  1. {pylibms-4.0.1 → pylibms-4.0.3}/PKG-INFO +9 -14
  2. {pylibms-4.0.1 → pylibms-4.0.3}/PyLibMS.egg-info/PKG-INFO +9 -14
  3. {pylibms-4.0.1 → pylibms-4.0.3}/README.md +8 -13
  4. {pylibms-4.0.1 → pylibms-4.0.3}/lms/flowchart/flw3.py +1 -1
  5. {pylibms-4.0.1 → pylibms-4.0.3}/lms/titleconfig/definitions/nodes.py +1 -1
  6. {pylibms-4.0.1 → pylibms-4.0.3}/lms/titleconfig/presets/Tomodachi Life NA-EU.yaml +7 -0
  7. {pylibms-4.0.1 → pylibms-4.0.3}/pyproject.toml +1 -1
  8. {pylibms-4.0.1 → pylibms-4.0.3}/LICENSE +0 -0
  9. {pylibms-4.0.1 → pylibms-4.0.3}/MANIFEST.in +0 -0
  10. {pylibms-4.0.1 → pylibms-4.0.3}/PyLibMS.egg-info/SOURCES.txt +0 -0
  11. {pylibms-4.0.1 → pylibms-4.0.3}/PyLibMS.egg-info/dependency_links.txt +0 -0
  12. {pylibms-4.0.1 → pylibms-4.0.3}/PyLibMS.egg-info/requires.txt +0 -0
  13. {pylibms-4.0.1 → pylibms-4.0.3}/PyLibMS.egg-info/top_level.txt +0 -0
  14. {pylibms-4.0.1 → pylibms-4.0.3}/lms/__init__.py +0 -0
  15. {pylibms-4.0.1 → pylibms-4.0.3}/lms/common/__init__.py +0 -0
  16. {pylibms-4.0.1 → pylibms-4.0.3}/lms/common/field/__init__.py +0 -0
  17. {pylibms-4.0.1 → pylibms-4.0.3}/lms/common/field/io.py +0 -0
  18. {pylibms-4.0.1 → pylibms-4.0.3}/lms/common/field/lms_datatype.py +0 -0
  19. {pylibms-4.0.1 → pylibms-4.0.3}/lms/common/field/lms_field.py +0 -0
  20. {pylibms-4.0.1 → pylibms-4.0.3}/lms/common/lms_constants.py +0 -0
  21. {pylibms-4.0.1 → pylibms-4.0.3}/lms/common/lms_exceptions.py +0 -0
  22. {pylibms-4.0.1 → pylibms-4.0.3}/lms/common/lms_fileinfo.py +0 -0
  23. {pylibms-4.0.1 → pylibms-4.0.3}/lms/common/stream/fileinfo.py +0 -0
  24. {pylibms-4.0.1 → pylibms-4.0.3}/lms/common/stream/hashtable.py +0 -0
  25. {pylibms-4.0.1 → pylibms-4.0.3}/lms/common/stream/section.py +0 -0
  26. {pylibms-4.0.1 → pylibms-4.0.3}/lms/fileio/encoding.py +0 -0
  27. {pylibms-4.0.1 → pylibms-4.0.3}/lms/fileio/io.py +0 -0
  28. {pylibms-4.0.1 → pylibms-4.0.3}/lms/flowchart/__init__.py +0 -0
  29. {pylibms-4.0.1 → pylibms-4.0.3}/lms/flowchart/definitions/__init__.py +0 -0
  30. {pylibms-4.0.1 → pylibms-4.0.3}/lms/flowchart/definitions/flowchart.py +0 -0
  31. {pylibms-4.0.1 → pylibms-4.0.3}/lms/flowchart/definitions/lms_nodeexceptions.py +0 -0
  32. {pylibms-4.0.1 → pylibms-4.0.3}/lms/flowchart/definitions/node.py +0 -0
  33. {pylibms-4.0.1 → pylibms-4.0.3}/lms/flowchart/definitions/node_type.py +0 -0
  34. {pylibms-4.0.1 → pylibms-4.0.3}/lms/flowchart/msbf.py +0 -0
  35. {pylibms-4.0.1 → pylibms-4.0.3}/lms/flowchart/msbfio.py +0 -0
  36. {pylibms-4.0.1 → pylibms-4.0.3}/lms/message/__init__.py +0 -0
  37. {pylibms-4.0.1 → pylibms-4.0.3}/lms/message/definitions/__init__.py +0 -0
  38. {pylibms-4.0.1 → pylibms-4.0.3}/lms/message/definitions/field/__init__.py +0 -0
  39. {pylibms-4.0.1 → pylibms-4.0.3}/lms/message/lms_messagetext.py +0 -0
  40. {pylibms-4.0.1 → pylibms-4.0.3}/lms/message/msbt.py +0 -0
  41. {pylibms-4.0.1 → pylibms-4.0.3}/lms/message/msbtentry.py +0 -0
  42. {pylibms-4.0.1 → pylibms-4.0.3}/lms/message/msbtio.py +0 -0
  43. {pylibms-4.0.1 → pylibms-4.0.3}/lms/message/section/__init__.py +0 -0
  44. {pylibms-4.0.1 → pylibms-4.0.3}/lms/message/section/atr1.py +0 -0
  45. {pylibms-4.0.1 → pylibms-4.0.3}/lms/message/section/nli1.py +0 -0
  46. {pylibms-4.0.1 → pylibms-4.0.3}/lms/message/section/tsy1.py +0 -0
  47. {pylibms-4.0.1 → pylibms-4.0.3}/lms/message/section/txt2.py +0 -0
  48. {pylibms-4.0.1 → pylibms-4.0.3}/lms/message/tag/__init__.py +0 -0
  49. {pylibms-4.0.1 → pylibms-4.0.3}/lms/message/tag/io/param_io.py +0 -0
  50. {pylibms-4.0.1 → pylibms-4.0.3}/lms/message/tag/io/tag_io.py +0 -0
  51. {pylibms-4.0.1 → pylibms-4.0.3}/lms/message/tag/lms_tag.py +0 -0
  52. {pylibms-4.0.1 → pylibms-4.0.3}/lms/message/tag/lms_tagexceptions.py +0 -0
  53. {pylibms-4.0.1 → pylibms-4.0.3}/lms/project/__init__.py +0 -0
  54. {pylibms-4.0.1 → pylibms-4.0.3}/lms/project/definitions/__init__.py +0 -0
  55. {pylibms-4.0.1 → pylibms-4.0.3}/lms/project/definitions/attribute.py +0 -0
  56. {pylibms-4.0.1 → pylibms-4.0.3}/lms/project/definitions/color.py +0 -0
  57. {pylibms-4.0.1 → pylibms-4.0.3}/lms/project/definitions/style.py +0 -0
  58. {pylibms-4.0.1 → pylibms-4.0.3}/lms/project/definitions/tag.py +0 -0
  59. {pylibms-4.0.1 → pylibms-4.0.3}/lms/project/msbp.py +0 -0
  60. {pylibms-4.0.1 → pylibms-4.0.3}/lms/project/msbpread.py +0 -0
  61. {pylibms-4.0.1 → pylibms-4.0.3}/lms/project/section/ali2.py +0 -0
  62. {pylibms-4.0.1 → pylibms-4.0.3}/lms/project/section/ati2.py +0 -0
  63. {pylibms-4.0.1 → pylibms-4.0.3}/lms/project/section/clr1.py +0 -0
  64. {pylibms-4.0.1 → pylibms-4.0.3}/lms/project/section/string.py +0 -0
  65. {pylibms-4.0.1 → pylibms-4.0.3}/lms/project/section/syl3.py +0 -0
  66. {pylibms-4.0.1 → pylibms-4.0.3}/lms/project/section/tag2.py +0 -0
  67. {pylibms-4.0.1 → pylibms-4.0.3}/lms/project/section/tgg2.py +0 -0
  68. {pylibms-4.0.1 → pylibms-4.0.3}/lms/project/section/tgp2.py +0 -0
  69. {pylibms-4.0.1 → pylibms-4.0.3}/lms/titleconfig/__init__.py +0 -0
  70. {pylibms-4.0.1 → pylibms-4.0.3}/lms/titleconfig/config.py +0 -0
  71. {pylibms-4.0.1 → pylibms-4.0.3}/lms/titleconfig/definitions/__init__.py +0 -0
  72. {pylibms-4.0.1 → pylibms-4.0.3}/lms/titleconfig/definitions/attribute.py +0 -0
  73. {pylibms-4.0.1 → pylibms-4.0.3}/lms/titleconfig/definitions/tags.py +0 -0
  74. {pylibms-4.0.1 → pylibms-4.0.3}/lms/titleconfig/definitions/value.py +0 -0
  75. {pylibms-4.0.1 → pylibms-4.0.3}/lms/titleconfig/presets/Badge Arcade.yaml +0 -0
  76. {pylibms-4.0.1 → pylibms-4.0.3}/lms/titleconfig/presets/Brain Age Concentration Training.yaml +0 -0
  77. {pylibms-4.0.1 → pylibms-4.0.3}/lms/titleconfig/presets/Kirby Planet Robobot.yaml +0 -0
  78. {pylibms-4.0.1 → pylibms-4.0.3}/lms/titleconfig/presets/Super Mario 3D Land.yaml +0 -0
  79. {pylibms-4.0.1 → pylibms-4.0.3}/lms/titleconfig/presets/Super Mario 3D World + Bowsers Fury.yaml +0 -0
  80. {pylibms-4.0.1 → pylibms-4.0.3}/lms/titleconfig/presets/Super Mario Odyssey.yaml +0 -0
  81. {pylibms-4.0.1 → pylibms-4.0.3}/lms/titleconfig/presets/The Legend of Zelda Echos of Wisdom.yaml +0 -0
  82. {pylibms-4.0.1 → pylibms-4.0.3}/lms/titleconfig/presets/The Legend of Zelda a Link Between Worlds.yaml +0 -0
  83. {pylibms-4.0.1 → pylibms-4.0.3}/lms/titleconfig/presets/Tomodachi Life Living The Dream.yaml +0 -0
  84. {pylibms-4.0.1 → pylibms-4.0.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyLibMS
3
- Version: 4.0.1
3
+ Version: 4.0.3
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,15 @@ 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
- | File Format | Read | Write | Configuration Support |
21
+ | Format | Read | Write | Configuration Support |
22
22
  |-------------|------|-------|-------------------------------------------------------------------------------------------|
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 |
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
26
 
27
- This library is designed to support LMS revision 3.0 and above, with the associated file formats used across the
28
- following Nintendo platforms:
27
+ This library is designed to support LMS revision 3.0+ from most Nintendo consoles.
29
28
 
30
- * Wii (Specific titles only)
31
- * Nintendo 3DS
32
- * Wii U
33
- * Mobile (Specific titles only)
34
- * Nintendo Switch
29
+ **Note**: MSBF files that use `FLW1` and `FLW2` are not supported, and will not be supported as they are revision <3.0 of LMS.
35
30
 
36
31
  # Features and Usage
37
32
 
@@ -44,7 +39,7 @@ MSBT/MSBF
44
39
 
45
40
  ```py
46
41
  from lms.message.msbtio import read_msbt_path
47
- from lms.message.msbfio import read_msbf_path
42
+ from lms.flowchart.msbfio import read_msbf_path
48
43
 
49
44
  msbt = read_msbt_path("Game.msbt")
50
45
  msbf = read_msbf_path("Game_Flowchart.msbf")
@@ -54,7 +49,7 @@ msbf = read_msbf_path("Game_Flowchart.msbf")
54
49
 
55
50
  ```py
56
51
  from lms.message.msbtio import write_msbt_path
57
- from lms.message.msbfio import write_msbf_path
52
+ from lms.flowchart.msbfio import write_msbf_path
58
53
 
59
54
  write_msbt_path("Out_Game.msbt")
60
55
  write_msbf_path("Out_Game_Flowchart.msbt")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyLibMS
3
- Version: 4.0.1
3
+ Version: 4.0.3
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,15 @@ 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
- | File Format | Read | Write | Configuration Support |
21
+ | Format | Read | Write | Configuration Support |
22
22
  |-------------|------|-------|-------------------------------------------------------------------------------------------|
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 |
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
26
 
27
- This library is designed to support LMS revision 3.0 and above, with the associated file formats used across the
28
- following Nintendo platforms:
27
+ This library is designed to support LMS revision 3.0+ from most Nintendo consoles.
29
28
 
30
- * Wii (Specific titles only)
31
- * Nintendo 3DS
32
- * Wii U
33
- * Mobile (Specific titles only)
34
- * Nintendo Switch
29
+ **Note**: MSBF files that use `FLW1` and `FLW2` are not supported, and will not be supported as they are revision <3.0 of LMS.
35
30
 
36
31
  # Features and Usage
37
32
 
@@ -44,7 +39,7 @@ MSBT/MSBF
44
39
 
45
40
  ```py
46
41
  from lms.message.msbtio import read_msbt_path
47
- from lms.message.msbfio import read_msbf_path
42
+ from lms.flowchart.msbfio import read_msbf_path
48
43
 
49
44
  msbt = read_msbt_path("Game.msbt")
50
45
  msbf = read_msbf_path("Game_Flowchart.msbf")
@@ -54,7 +49,7 @@ msbf = read_msbf_path("Game_Flowchart.msbf")
54
49
 
55
50
  ```py
56
51
  from lms.message.msbtio import write_msbt_path
57
- from lms.message.msbfio import write_msbf_path
52
+ from lms.flowchart.msbfio import write_msbf_path
58
53
 
59
54
  write_msbt_path("Out_Game.msbt")
60
55
  write_msbf_path("Out_Game_Flowchart.msbt")
@@ -3,20 +3,15 @@
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
- | File Format | Read | Write | Configuration Support |
6
+ | Format | Read | Write | Configuration Support |
7
7
  |-------------|------|-------|-------------------------------------------------------------------------------------------|
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 |
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
11
 
12
- This library is designed to support LMS revision 3.0 and above, with the associated file formats used across the
13
- following Nintendo platforms:
12
+ This library is designed to support LMS revision 3.0+ from most Nintendo consoles.
14
13
 
15
- * Wii (Specific titles only)
16
- * Nintendo 3DS
17
- * Wii U
18
- * Mobile (Specific titles only)
19
- * Nintendo Switch
14
+ **Note**: MSBF files that use `FLW1` and `FLW2` are not supported, and will not be supported as they are revision <3.0 of LMS.
20
15
 
21
16
  # Features and Usage
22
17
 
@@ -29,7 +24,7 @@ MSBT/MSBF
29
24
 
30
25
  ```py
31
26
  from lms.message.msbtio import read_msbt_path
32
- from lms.message.msbfio import read_msbf_path
27
+ from lms.flowchart.msbfio import read_msbf_path
33
28
 
34
29
  msbt = read_msbt_path("Game.msbt")
35
30
  msbf = read_msbf_path("Game_Flowchart.msbf")
@@ -39,7 +34,7 @@ msbf = read_msbf_path("Game_Flowchart.msbf")
39
34
 
40
35
  ```py
41
36
  from lms.message.msbtio import write_msbt_path
42
- from lms.message.msbfio import write_msbf_path
37
+ from lms.flowchart.msbfio import write_msbf_path
43
38
 
44
39
  write_msbt_path("Out_Game.msbt")
45
40
  write_msbf_path("Out_Game_Flowchart.msbt")
@@ -261,7 +261,7 @@ def write_flw3(writer: FileWriter, nodes: list[LMS_BaseNode], stream_ids: dict[L
261
261
  writer.write_bytes(b"\x00" * 2)
262
262
  writer.write_bytes(b"\x00" * 4)
263
263
 
264
- write_next_node_id(writer, node.next_node_id)
264
+ write_next_node_id(writer, None if node.next_node is None else stream_ids[node.next_node])
265
265
  writer.skip(6)
266
266
  case LMS_JumpNode():
267
267
  writer.write_bytes(b"\x00" * 2)
@@ -93,7 +93,7 @@ class NodeDefinition:
93
93
  return NodeDefinition(
94
94
  name=data["name"],
95
95
  id=id,
96
- description=data["description"],
96
+ description=data.get("description", ""),
97
97
  type=node_type,
98
98
  parameter_type=parameter_type,
99
99
  parameter_definitions=converted_parameters,
@@ -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.1"
10
+ version = "4.0.3"
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