Types like u8 and u16 aren't always a good idea. For example:
void function(u8 x, u8 y)
{
u32 value = (x << 16) | y;
}
The left shift of x will overflow because x is 8 bits wide. It is better
to make both arguments 32 bit wide.
It may also cause the compiler to introduce bit masking operations at
the caller side because the caller doesn't know how the function
behaves internally.
In order to prevent this kind of issues, it's better to use 32 bit
variables unless there is a very good reason to use smaller types (like
in structs, to save RAM).
- Creative Commons (except for CC0) shouldn't be used for code:
https://creativecommons.org/faq/#can-i-apply-a-creative-commons-license-to-software
MIT has the same spirit as the CC-BY license.
- CC-BY has been retained for the assets included in the repository.
- Also, the years were wrong, this library was started in 2009.
- Make all examples use the CC0 license.
The previous license was CC BY-NC 4.0, which doesn't allow commercial
use of the library. Nowadays this exception isn't really helpful, and
it may discourage people that are thinking about using the library (and
may be thinking about maybe selling the ROM in websites like itch.io).
- Bring the source and include directories in nflib to the root of the
repository to match the organization of other libraries.
- Expect users to install NFlib in the devkitPro folder.
- Update all Makefiles for modern devkitPro.
- Remove all redundant copies of NFlib in all examples. The only
remaining copy of the library is in the extras/wifi example, but
that one includes more files, so I have left it untouched for now.