- Convert access from min cluster size to block size
Also allow read/writes to less than cluster size
- In case of intercluster access throw an error
- Do not error on zero size
On reads buffer still needs to be block (instead of cluster) aligned.
On writes, buffer still needs to be readable out of bounds.
The FAT tables are now always aligned 1MB which can increase the FAT traversing
speed. Additionally, always aligning the FAT tables to minimum 16KB fixes a case
where PrFILE2 SAFE could be disabled because of unaligned FAT.
A bug was fixed that was causing full parent object invalidations when tapping into a window.
Now if the object is already on top the invalidation is skipped and the whole rerender/draw is skipped, saving valuable cpu time.
- Default data alignment is now 1MB **when it's not set**
- Default volume alignment is now based on data alignment and not hardcoded to 16MB.
- Change max allowed alignment to 64MB.
The above changes allow selecting alignments for volume and data between 1MB and 64MB.
(From the previous 1 to 16MB for data and 16MB for volume).
Avoid writing garbage to a file by checking string pointer passed to f_puts and f_printf.
Important on many embedded platforms that do not abort on NULL dereference.
BDK will allow developers to use the full collection of drivers,
with limited editing, if any, for making payloads for Nintendo Switch.
Using a single source for everything will also help decoupling
Switch specific code and easily port it to other Tegra X1/X1+ platforms.
And maybe even to lower targets.
Everything is now centrilized into bdk folder.
Every module or project can utilize it by simply including it.
This is just the start and it will continue to improve.