Apparently, at some point they started allowing maxlayers=3, which caused this code to not work.
Looking at latest FS, they always reference DataStorage instead of level+2 for the final level.
This fixes parsing update romfs for newer games, e.g. Super Mario Galaxy 2.
- Invoke Python scripts with `python3` if `python` is not available.
Despite SciresM preferring Python 2, the scripts used in the build all
worked in Python 3 already, so this is just a Makefile change.
- Export `MAKE` to work around a GNU bug.
See the comment for details.
- `rmdir --ignore-fail-on-non-empty` -> `rmdir 2>/dev/null`
macOS `rmdir` doesn't support `--ignore-fail-on-non-empty`.
This is a slight downgrade in functionality, because now we ignore all
errors from `rmdir` rather than just 'Directory not empty'. I could
have avoided this with a more complicated fix, but the benefit strikes
me as not worth the complexity. Let me know if you disagree.
- Append `$(DEVKITPRO)/tools/bin/` to `$PATH` when invoking
`build_romfs`.
This avoids the need to add devkitPro directories to `$PATH` when
building Atmosphere.
If you already have `build_romfs` in your PATH, then that will still
take precedence. (This seemed like the nicer option, though I don't
have strong opinions.)
Disable all warnings seen on devkitA64 GCC 15.1.0:
- Several false-positive `-Wmisleading-indentation` warnings (the
indentation is not actually misleading)
- One `-Wuse-after-free` warning, which looks alarming and represents
very dubious design, but is ultimately harmless (a freed pointer is
passed to a function that doesn't use it).
- Some `-Wunused-function` warnings in `simd/neon.h`
GCC warned that the output string would not be nul-terminated if the
input string was too long. Fix this by subtracting 1 from the size
argument, as is done for other `strncpy` calls in the file. (It would
probably be better to avoid `strncpy` entirely, but this is just a
simple fix.)
haze was including both `<switch.h>` and `vapours/types.hpp` which both
define `R_SUCCEEDED` and `R_FAILED`, producing compiler warnings.
The intent is that `vapours/types.hpp` only gets included when targeting
not-Switch and/or not-EL0. But the check didn't account for
Troposphère. Fix that.
Changes the formatting of the key values at `Code Type 0xC4: Begin Extended Keypress Conditional Block` in cheats.md so that it is perfectly clear that those values are 64-bit values rather than 32-bit or 28-bit like `Code Type 0x8: Begin Keypress Conditional Block`, and also for the fact that the formatting matches the rest of the document and is thus cleaner.