You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
💥 Breaking changes:
⚙️ Since libtonc is no longer a dependency, lib/_link_common.hpp needs to be included
👾📻 In LinkCable and LinkWireless, the remoteTimeout parameter has been removed. Now, there's a single timeout, measured in frames. This change simplifies things by making timeouts independent of the interval value
📻 In LinkWireless, the asyncACKTimerId parameter has been removed. With the latest changes, it's no longer needed and actually burns more cycles
🔗 LINK_SPI_8BIT_MODE was moved to a runtime argument to allow using two different data sizes in the same project. Now, to use 8-bit SPI, pass LinkSPI::PacketSize::SIZE_8BIT as last constructor argument
💥 The remoteTimeout constructor parameter has been removed. The functionality remains the same, but now both IRQ-timeouts and message timeouts use the timeout parameter, measured in frames
Send buffer is cleared after every SERIAL interrupt, preventing duplicate packets
Timeout checking was moved to the VBlank handler to avoid extra checks for every timer tick
💻 LinkCableMultiboot:
Made some changes to improve stability/reliability of transfers
Added an SPI mode, to transfer ROMs using a GBC Link Cable
Added a compile-time constant to change the logo's palette data
The example can now send multiple ROMs and launch them. It's now bundled with every other gba-link-connection example
📻 LinkWireless:
💥 The remoteTimeout constructor parameter has been removed. The functionality remains the same, but now both IRQ-timeouts and message timeouts use the timeout parameter, measured in frames
💥 The asyncACKTimerId parameter has been removed. With the latest changes, it's no longer needed and actually burns more cycles
Communications with the adapter now use timeouts 10 times smaller, so when disconnected, the synchronous methods are faster
Added optional turnOff parameter to deactivate()
If initialization fails, the timers and SPI serial mode are now stopped
When already serving, calling serve(...) to update broadcast data will no longer cause disconnections if the adapter is busy. In such case, the method will return false and getLastError() will be BUSY_TRY_AGAIN
Added compile-time constant to enable nested interrupts so time-critical VBlank handlers (e.g. an audio player) can run on time
Added compile-time constant to optimize the library for two-player games and allow sending small unchecked packets as fast as possible
Fixed bad memory access when a hacked client spoofs its player ID
The example now shows the compile-time settings
The example can now test quick send/receive (2-player only)
The profiler example can now change the broadcast data with the UP key
📡 LinkWirelessMultiboot:
Improved disconnection and acknowledgment handling
Added cancel option to example
The example can now send multiple ROMs and launch them. It's now bundled with every other gba-link-connection example
🔧📻 LinkRawWireless:
Added wait to prevent timing issues with clock inversion. This improves wireless multiboot!
🌎 LinkUniversal:
Improved performance when the Wireless Adapter is not connected and the protocol is AUTODETECT
Now, the Wireless Adapter is put in low consumption mode only on deactivate() and not after every switch
Added a constructor parameter to initialize the random seed
Added sanity checks to ensure that setting LINK_UNIVERSAL_MAX_PLAYERS to less than 4 won't produce undefined behavior