This commit looks a lot bigger than it really is, I noticed a couple spots where with these issues so I ran a regex to find all possible occurrences and switched all that could be, after manually ensuring it was actually correct
Using sizeof on the buffer (as long as the buffer is a char *array*, not a pointer!!) greatly reduces the chance of something having the wrong size because of a later change to the buffer, notably a couple snprintfs were missed in the UTF_BUFFER_BYTESIZE change
Makes it more clear why all of the buffers are being multiplied by 4
Fix UTF-8 bytesize macro
Before UTF_BUFFER_BYTESIZE(str_width - 10)] would multiply the 10, not the whole number, by UTF_MAX_BYTES_PER_RUNE
Do (rune_count + 1) * 4 in UTF-8 bytesize macro
Fix Resize/Truncate String snprintf size
Before it would break if the last character was multi-byte
- completely moved MCU interrupt handling outside of the critical section
- refactored a bit of the PXI code and command names
- merge the I2C read and write cmds to be one
- remove SET_VMODE cmd, now it's always initialized to BGR565 on boot and to RGB565 on firmlaunch
- atomic-ize more stuff
* extrcode already existed, but now has a progress bar and an entry in HelloScript.
* cmprcode recompresses a code binary into its original format. It takes 2-3 minutes.
* cp -p appends file 2 to the end of file 1 rather than overwriting it.
BPS standardization edits.
* Clean up headers.
* Move crc32.c to /crypto/.
* Rename beat.c to bps.c and move it to /system/ with the rest of the non-3DS file formats.
Allocate memory for Source and Target files when possible.
Last-minute BPS improvements.
* BPS fails more gracefully on error, freeing memory and showing a more detailed message.
* BPM no longer deletes the folder it patches to - that should be up to the user.
* BPM is scanned before patching to figure out the total output file size for a more accurate progress bar.
Add IPS support.