{"id":28999923,"url":"https://github.com/zeldamods/byml-v2","last_synced_at":"2025-06-25T08:09:28.337Z","repository":{"id":62560571,"uuid":"131118506","full_name":"zeldamods/byml-v2","owner":"zeldamods","description":"Nintendo BYML or BYAML parser, writer and converter. Fully supports Breath of the Wild and Super Mario Odyssey files.","archived":false,"fork":false,"pushed_at":"2024-06-19T19:46:25.000Z","size":2540,"stargazers_count":47,"open_issues_count":4,"forks_count":8,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-15T07:32:09.711Z","etag":null,"topics":["botw","byaml","nintendo","nintendo-switch","nintendo-wii-u","parser","python3","tool"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zeldamods.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-26T07:39:59.000Z","updated_at":"2025-06-11T11:22:05.000Z","dependencies_parsed_at":"2022-11-03T14:45:27.170Z","dependency_job_id":null,"html_url":"https://github.com/zeldamods/byml-v2","commit_stats":null,"previous_names":["leoetlino/byml-v2"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/zeldamods/byml-v2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeldamods%2Fbyml-v2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeldamods%2Fbyml-v2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeldamods%2Fbyml-v2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeldamods%2Fbyml-v2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zeldamods","download_url":"https://codeload.github.com/zeldamods/byml-v2/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeldamods%2Fbyml-v2/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261832976,"owners_count":23216500,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["botw","byaml","nintendo","nintendo-switch","nintendo-wii-u","parser","python3","tool"],"created_at":"2025-06-25T08:09:26.225Z","updated_at":"2025-06-25T08:09:28.324Z","avatar_url":"https://github.com/zeldamods.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Simple bymlv2 parser + writer + converters\n\nFeatures:\n\n* **Supports v2, v3 and v4 files.** These versions are respectively used by\n*The Legend of Zelda: Breath of the Wild* and *Super Mario Odyssey*.\n* **Supports 64-bit node types** which are used in *Super Mario Odyssey*.\n* **Supports both endianness**. The little-endian format is used on the Switch.\n* **Cross platform**.\n* **Easy to edit and readable output**. No ugly XML. Unobtrusive type information.\n\n### Quick usage\n\nInstall Python 3.6+, then run `pip install byml`.\n\nThe C module for PyYAML is currently a **hard dependency**. If you are on Windows, you don't have to do anything special. If you are on Linux or on macOS, you will need to install libyaml.\n\n### BYML to YAML\n\n```shell\nbyml_to_yml  PATH_TO_BYML    PATH_TO_YAML\n```\n\n**If the byml is compressed, this tool will automatically decompress them.**\n\nTo reuse the input file name and only change the extension, use `!!.NEW_EXTENSION` as the second argument.\n\nExample: to convert to YAML in the same directory as the BYML, use `byml_to_yml path_to_botw/Actor/ActorInfo.product.sbyml !!.yml`\n\n### YAML to BYML\n\n```shell\nyml_to_byml  PATH_TO_YAML    PATH_TO_BYML\n```\n\n**Add `-b` at the end if big endian should be used. For the Wii U version of Breath of the Wild,\nyou must pass that flag.**\n\nTo reuse the input file name and only change the extension, use `!!.NEW_EXTENSION` as the second argument.\n\nIf the target file extension starts with `.s`, the tool will **automatically compress**\nthe BYML using yaz0.\n\n### Note about YAML integers/floats\n\n* `!u` before an integer indicates that the value is unsigned. **In general, you should keep\nthe signedness unchanged.**\n\n* `!l` is for signed 64 bit values. (Not used in BotW.)\n* `!ul` is for unsigned 64 bit values. (Not used in BotW.)\n* `!f64` is for binary64 floating point values. (Not used in BotW.)\n\n### Advanced usage\n\nBy default, if the destination argument is not specified, output will be sent to stdout,\nwhich is handy for looking at bymls without creating temporary files.\n\n### Library usage\n\n```python\nimport byml\n\nparser = byml.Byml(raw_bytes)\ndocument = parser.parse()\n\nwriter = byml.Writer(document, be=big_endian_mode, version=byml_version)\nwriter.write(writable_seekable_stream)\n```\n\n### License\n\nThis software is licensed under the terms of the GNU General Public License, version 2 or later.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeldamods%2Fbyml-v2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeldamods%2Fbyml-v2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeldamods%2Fbyml-v2/lists"}