icon picker
Binary Breakdown

This is where it starts to get confusing, but I will do my best to explain these as detailed as possible. You will start to see formats marked as a “binary” format. This means it literally reads the values as 1’s and 0’s instead of the usual ASCII plain text with .json, or .ini formats.

Binary Format Cheat Table Breakdown

Byte = 0000 0000 (every 1 and 0 here is called a bit)
Hex = 0x00

Note: Every Hex value you see ALWAYS uses 1 byte, so just keep that in mind. We will also be ignoring the 0x part of the hex in the SSPM formats since they completely use the hex format. No binary magic optimization is used in any of the SSPM formats. Another note that they all use Little Endian format which means all the bytes for every number are in reverse order.

Here is the difference
Big Endian: 0x00 0x01 0x02 0x03 0x04
Little Endian: 0x04 0x03 0x02 0x01 0x00

For example, the SSPMv1 version number is 0x01 0x00. In Little Endian, it means just 1.

For the custom value examples (such as note millisecond, PNG data, etc) in the binary formats, I will be using all 00s as examples so you can get an idea of how long it would be in a Hex Editor.

For UTF-8 String conversion stuff, you can just use this website to see what it would look like in hexadecimal format.

If you are wondering “Omg how do they know how many bytes to use for audio data or map names if it’s not a set value??!?” There is usually a length byte at the start, or is a newline-terminated string (meaning it uses whitespaces to know how long the string is, for example: every \n is a new line whitespace)
For more info, look at the table in this wikipedia page.

What does unsigned vs signed mean?! unsigned = only positive numbers. signed = positive and negative numbers.

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.