All Projects → zeldamods → byml-v2

zeldamods / byml-v2

Licence: GPL-2.0 License
Nintendo BYML or BYAML parser, writer and converter. Fully supports Breath of the Wild and Super Mario Odyssey files.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to byml-v2

SARC-Tool
Tool for extracting and packing SARC files present in Nintendo EAD games.
Stars: ✭ 60 (+160.87%)
Mutual labels:  nintendo, nintendo-switch, nintendo-wii-u
sarc
Nintendo SARC archive reader and writer
Stars: ✭ 16 (-30.43%)
Mutual labels:  nintendo, nintendo-switch, nintendo-wii-u
objmap
Breath of the Wild object map
Stars: ✭ 61 (+165.22%)
Mutual labels:  nintendo-switch, botw, nintendo-wii-u
Miyamoto
A supercharged fork of the modern day level editor.
Stars: ✭ 67 (+191.3%)
Mutual labels:  nintendo, nintendo-switch, nintendo-wii-u
switch-launcher
GUI-Based desktop switch payload launcher based on a modified reswitched injector
Stars: ✭ 19 (-17.39%)
Mutual labels:  nintendo, nintendo-switch
Switch-Screenshots
Script to organize Nintendo Switch screenshots by directory instead of date.
Stars: ✭ 50 (+117.39%)
Mutual labels:  nintendo, nintendo-switch
ShallowSea
ShallowSea - The AIO CFW package for the Nintendo Switch with Atmosphere
Stars: ✭ 513 (+2130.43%)
Mutual labels:  nintendo, nintendo-switch
botw-unexplored
Easily view the unexplored korok seeds and locations in your BotW savefile on your Switch
Stars: ✭ 79 (+243.48%)
Mutual labels:  nintendo-switch, botw
Sdsetup
The Ninite for your Nintendo Switch.
Stars: ✭ 234 (+917.39%)
Mutual labels:  nintendo, nintendo-switch
switch-cmake
CMake toolchain for Nintendo Switch homebrew development
Stars: ✭ 38 (+65.22%)
Mutual labels:  nintendo, nintendo-switch
switch joy con as mouse for macos
Tool to use Nintendo Switch Joy-Con as a mouse for macOS
Stars: ✭ 19 (-17.39%)
Mutual labels:  nintendo, nintendo-switch
Nintendo-Switch-JoyCon-Hack
Hardwiring a push button in a JoyCon to grant bootloader access
Stars: ✭ 44 (+91.3%)
Mutual labels:  nintendo, nintendo-switch
nx
Userland library for Nintendo Switch homebrew (and other potential purposes), written in pure Rust and some assembly bits
Stars: ✭ 67 (+191.3%)
Mutual labels:  nintendo, nintendo-switch
sys-clk-Overlay
Editor for your sys-clk configuration using ovl-loader!
Stars: ✭ 53 (+130.43%)
Mutual labels:  nintendo, nintendo-switch
reboot to rcm
A small app to reboot 1.0 Switches into RCM mode
Stars: ✭ 32 (+39.13%)
Mutual labels:  nintendo, nintendo-switch
Universal-Manager
Multimedia tool for Nintendo DSi, Nintendo 3DS and Nintendo Switch.
Stars: ✭ 26 (+13.04%)
Mutual labels:  nintendo, nintendo-switch
Sunriseos
Horizon/NX kernel reimplementation
Stars: ✭ 157 (+582.61%)
Mutual labels:  nintendo, nintendo-switch
Nstool
General purpose read/extract tool for Nintendo Switch file formats.
Stars: ✭ 159 (+591.3%)
Mutual labels:  nintendo, nintendo-switch
eshop-api-wrapper
API Wrapper to get information from Nintendo Eshop.
Stars: ✭ 24 (+4.35%)
Mutual labels:  nintendo, nintendo-switch
Mirage
Reimplementation of the Nintendo Switch firmware
Stars: ✭ 40 (+73.91%)
Mutual labels:  nintendo, nintendo-switch

Simple bymlv2 parser + writer + converters

Features:

  • Supports v2, v3 and v4 files. These versions are respectively used by The Legend of Zelda: Breath of the Wild and Super Mario Odyssey.
  • Supports 64-bit node types which are used in Super Mario Odyssey.
  • Supports both endianness. The little-endian format is used on the Switch.
  • Cross platform.
  • Easy to edit and readable output. No ugly XML. Unobtrusive type information.

Quick usage

Install Python 3.6+, then run pip install byml.

The 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.

BYML to YAML

byml_to_yml  PATH_TO_BYML    PATH_TO_YAML

If the byml is compressed, this tool will automatically decompress them.

To reuse the input file name and only change the extension, use !!.NEW_EXTENSION as the second argument.

Example: to convert to YAML in the same directory as the BYML, use byml_to_yml path_to_botw/Actor/ActorInfo.product.sbyml !!.yml

YAML to BYML

yml_to_byml  PATH_TO_YAML    PATH_TO_BYML

Add -b at the end if big endian should be used. For the Wii U version of Breath of the Wild, you must pass that flag.

To reuse the input file name and only change the extension, use !!.NEW_EXTENSION as the second argument.

If the target file extension starts with .s, the tool will automatically compress the BYML using yaz0.

Note about YAML integers/floats

  • !u before an integer indicates that the value is unsigned. In general, you should keep the signedness unchanged.

  • !l is for signed 64 bit values. (Not used in BotW.)

  • !ul is for unsigned 64 bit values. (Not used in BotW.)

  • !f64 is for binary64 floating point values. (Not used in BotW.)

Advanced usage

By default, if the destination argument is not specified, output will be sent to stdout, which is handy for looking at bymls without creating temporary files.

Library usage

import byml

parser = byml.Byml(raw_bytes)
document = parser.parse()

writer = byml.Writer(document, be=big_endian_mode, version=byml_version)
writer.write(writable_seekable_stream)

License

This software is licensed under the terms of the GNU General Public License, version 2 or later.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].