Skip to content

Version 1.15.0

Choose a tag to compare

@AntonioND AntonioND released this 07 Oct 18:06
· 527 commits to master since this release
  • libnds:

    • Fix reading console ID with SCFG_ROM registers disabled. @edo9300
    • Ensure crypto has been initialized when a NAND read/write command is received in the ARM7. @edo9300
    • Support using write() to send text to the console with file descriptors STDOUT_FILENO and STDERR_FILENO.
    • Fix potential cache corruption caused by DC_InvalidateRange() in readFirmware(). It has been replaced by DC_FlushRange(), and all calls to DC_InvalidateRange() have been removed. For more details, check Cearn's articles here and here.
    • Add some missing SCFG and NDMA register definitions.
    • Add no$gba debug register definitions (also used in melonDS).
    • Simplify no$gba message print on the ARM9 (melonDS doesn't support the simplified system on the ARM7).
  • DSWiFi:

    • Add new DSi mode driver with support for Open, WEP and WPA2 networks. @shinyquagsire23 is the original author of the driver. It has been extracted from dsiwifi and modified to integrate it with the previous DSWiFi code.
    • This driver can be enabled by passing WIFI_ATTEMPT_DSI_MODE as one of the flags to Wifi_InitDefault(). It's also possible to use WIFI_DS_MODE_ONLY to force DS mode even on DSi consoles (this is the default setting).
    • The new DSi driver doesn't support NiFi mode, it's only available in backwards-compatible DS mode.
    • The library now reads all Access Points configured in the WFC settings of DSi consoles. It uses them even in backwards-compatible DS mode (but it ignores access points that use WPA).
    • Wifi_ConnectAP() has been deprecated, Wifi_ConnectSecureAP() supersedes it. It's more convenient because it takes as input a key and key length instead of a key and hardware definitions. It supports WPA, WEP and open networks.
    • The code on the ARM7 side is now divided into two parts. One of them is for DS mode, which is always loaded. The other one is for the DSi driver, which is only loaded to RAM in DSi mode. Some code can be shared between both modes, but not much.
    • The code has been refactored a lot. The WIFI_MODE, WIFI_AUTHLEVEL and WIFI_CONNECT_STATE state machines are now decoupled and they can't directly change the state of other state machines, making it easier to understand the execution flow.
    • The internal IPC code of the library has been simplified. Several status flags have been removed as they are no longer needed.
    • Wifi_FindMatchingAP() has been simplified. It now only checks the BSSID and SSID of the reference AP we're looking for.
    • Some new fields related to the security of the AP have been added to struct Wifi_AccessPoint. Also, field rssi is now signed instead of unsigned.
    • Mbed TLS 3.4.6 has been added to the repository. This is required by the WPA2 handshake code. The license has been added to the repository, and the SDK documentation has been update to mention the new requirements.
    • Flag WFLAG_APDATA_ADHOC no longer works as ad hoc mode support has been removed (this is different from multiplayer mode, that's still supported). Field macaddr has been removed from struct Wifi_AccessPoint.
    • Unused define WFLAG_APDATA_SHORTPREAMBLE has been removed.
    • The strings of ASSOCSTATUS_STRINGS have been modified to make them useful.
    • The network interface (netif) used by lwIP is now set down when the WiFi connection is lost and set up when the console connects to an access point. This helps lwIP do some things better, like DHCP.
    • Scan mode is now a bit faster in DS mode, the library stays for a shorter period of time in each channel.
    • A few definitions and structs have been added to the public headers, as well as freeaddrinfo() and getaddrinfo().
  • SDK:

    • Improve SDK version string generation. The makefiles of all tools (except for dldipatch) have been modified to use the value of VERSION_STRING provided by the user. If the string is not provided, it tries to generate a version string in 2 different ways. If that fails, it defaults to "DEV".

    • Added a prototype Mbed TLS 3.6.4 package to the pacman repository. Note that the entropy generation isn't correct, so don't use this for any application that requires security for now!

    • All tools (except for dldipatch) now accept a -V flag. When the tools are run with -V they print the version string and exit right away. This flag has been selected because some tools were already using -v for other purposes (like verbose output).

    • The file $BLOCKSDS/version.txt will now contain the value of VERSION_STRING generated when building BlocksDS instead of the commit ID.

    • Update license information about DSWiFi.

    • To reduce the size of NDS ROMs the default ARM9-only Makefile now uses the default ARM7 core with maxmod but without DSWiFi. Programs that require DSWiFi need to select the right core by adding this line to the Makefile: ARM7ELF := $(BLOCKSDS)/sys/arm7/main_core/arm7_dswifi_maxmod.elf

    • Examples:

      • New example that lets you display the photos stored in the NAND of a DSi console. @edo9300
      • The DSWiFi examples have been updated to use DSi mode and connect to WPA2
        networks whenever possible.
      • There's a new example to show how to use the new version check helpers.