Version 1.15.2
-
libnds:
- Fix mounting filesystems in SD cards with multiple partitions. @edo9300
-
DSWiFi:
- A potential buffer overflow has been fixed in the DSi RX/TX queues.
- The DS RX/TX queues that transfer packets between the ARM9 and ARM7 have been rewritten to behave like in DSi mode. Now packets are written to the circular buffer one after the other, but they are never cut into two parts when the end of the buffer is reached. This guarantees that packets are always stored in one piece, which means that the ARM9 can avoid doing an extra copy to concatenate both parts, making communications faster.
- In DS mode packets are now read from/written to MAC RAM using DMA for extra speed and simplify the code.
- Now that packets are always stored in one piece, it isn't needed to use
Wifi_RxRawReadPacket()to copy them to a user-allocated buffer. FunctionWifi_RxRawReadPacketPointer()has been implemented as an alternative. It returns an uncached pointer to the packet in RAM. Please, check the documentation for advice on how to use them. - Improve random number generation. Previously, in DS mode,
W_RANDOMwas used for WEP seeds, a bad handmade RNG was used for WPA2 handshakes, andrand()was used in Mbed TLS instead of hardware entropy collection. A new system has replaced all of them. It constantly collects randomness from different events and updates a seed that is used to seed a xorshift32 generator. It isn't super secure because there is no real source of randomness on the DS, but it's better than the previous systems. - The
Wifi_TxHeaderandWifi_RxHeaderstructs are now private. They are never required by user code, and there is no equivalent in DSi mode, so it's better to hide them.
-
SDK:
- Fix linker warning about the implementation of
__sync_synchronize. Thanks to @asiekierka for the workaround. - In a DSWiFi example some missing instructions have been added to the console output.
- The SSL DSWiFi example has been updated with more test websites.
- Fix linker warning about the implementation of