Skip to content

Version 0.13.0

Compare
Choose a tag to compare
@AntonioND AntonioND released this 01 Feb 17:51
· 429 commits to master since this release
  • libnds:

    • Breaking change: Refactor input handling in the ARM9. In order to fix a race condition where the touch screen state could be updated between calls to scanKeys() and touchRead() it has become mandatory to call scanKeys() before touchRead(), keyboardGetChar(), keyboardUpdate() and the deprecated touchReadXY(). Most programs are already doing this, but this may break a small number of programs that don't do it.
    • Implemented isHwDebugger(), which returns 1 if the console running the code is a hardware debugger, regardless of the DS model and CPU state. This is meant to replace swiIsDebugger(), which only works if the cache is disabled, and only in DS models (not DSi). The documentation of swiIsDebugger() has been updated to mention its limitations.
    • Fix Slot-2 tilt API introduced in version 0.11.0, which hadn't been tested on hardware. The old peripheralSlot2TiltUpdate() has been replaced by peripheralSlot2TiltStart() and peripheralSlot2TiltRead().
    • Implemented utime() and utimes() for changing file modification dates.
    • Implemented scandir(), alphasort() and versionsort(),
    • Fixed statvfs() and fstatvfs() on NitroFS paths and files.
    • Added stubs for getwd() and get_current_dir_name().
    • Added stubs for getuid(), getgid(), etc.
    • Add helpers to load GRF files generated by grit.
    • Reintroduce logic to read Slot-1 cartridges with card commands from the ARM7 to save CPU cycles on the ARM9.
    • The value of the RAM size field in REG_SCFG_EXT in the ARM9 is now set to 16 MB or 32 MB instead of being fixed to 32 MB even in retail DSi units.
    • Some CP15 defines have been fixed.
    • Simplify logic in ARM7 input handler.
    • Generate default font from a PNG at build time instead of doing it from a preconverted BIN file to make it easier to replace it in the future.
  • grit:

    • Added the -D argument, specifying the destination folder for non-shared data as a counterpart to -O.
    • Fixed a situation in which the first color in an image's palette would be used as transparent if the user-provided color (with -gT) was not present in the image.
    • Breaking change: Fixed GRF file output to properly follow the RIFF chunk format. It will also export new information in the file header, like using special magic values to specify the formats A3I5, A5I3 and TEX4x4, and specifying the number of colors contained in the palette (for 16-bit
      textures it's 0). In order for the new information to fit in the header, some fields have been increased in size.
    • Fixed palette size calculation for DS textures.
    • Improvements to error messages.
  • libxm7:

    • Make types XM7_XMModuleHeader_Type and XM7_MODModuleHeader_Type private. Developers consider their MOD/XM files as a typeless blob of data, they shouldn't need to cast it to anything, the library should do it itself.
    • The structs that define the MOD and XM formats have been made private, as well as some definitions internal to the player.
    • Some defines have been turned into enums, which will help developers and IDEs identify what to use in which functions.
    • The documentation has been updated.
  • Tests:

    • Add test to read DSi SCFG registers to see which DSi features are available with the loader that has been used to launch the application.
    • Add test to display all configured MPU regions.