Gba Link Connection Versions Save

🔗 A set of Game Boy Advance (GBA) C++ libraries to interact with the Serial Port. Its main purpose is providing multiplayer support to homebrew games.

v6.3.0

3 weeks ago
  • ⏱️ Added LinkUART
  • 🖱️ Added LinkPS2Mouse
  • ⌨️ Added LinkPS2Keyboard

v6.2.3

2 months ago
  • 🌎 LinkUniversal:
    • LINK_UNIVERSAL_MAX_PLAYERS now defaults to 5

v6.2.2

2 months ago
  • 🌎 LinkUniversal:
    • send(...) now returns a boolean, honoring LinkWireless' response

v6.2.1

3 months ago
  • 🔌 LinkSPI:
    • Removed inline asm code, as it wasn't needed and it was causing compilation issues

v6.2.0

3 months ago
  • 📡 Added LinkWirelessMultiboot
  • 🔧🏛️ Added LinkWirelessOpenSDK
  • 💻 LinkCableMultiboot:
    • Refactored so it uses LinkRawCable internally
  • 🔧📻 LinkRawWireless:
    • Fixed ACKs during clock inversion, ensuring reliability no matter the wait state settings or compiler optimization level
    • Added maxTransmissions and waitTimeout settings to setup(...)
    • Switched to C-style strings and std::array to avoid unnecessary memory allocations
    • Logging code is now removed when LINK_RAW_WIRELESS_ENABLE_LOGGING is not defined
  • 🌎 LinkUniversal:
    • Added a compile-time option to filter rooms by game ID (LINK_UNIVERSAL_GAME_ID_FILTER)
  • 🔌 LinkSPI:
    • Optimized transfer(...) method
    • Added a compile-time option to use 8-bit packets instead of 32-bit (LINK_SPI_8BIT_MODE)
  • 🔗 General:
    • All examples have now been tested and compiled using the latest devkitPro
    • All examples now have a version number

v6.1.1

4 months ago
  • 📻 LinkWireless:
    • Switched to C-style strings to avoid unnecessary memory allocations
    • The adapter is now reset before sending the 0x3d (Bye) command to ensure the adapter always ends in low power consumption mode

v6.1.0

4 months ago
  • 🔧👾 Added LinkRawCable
  • 🔧📻 Added LinkRawWireless
  • 🔗 General:
    • Fixed A+B+START+SELECT combo in _full examples

v6.0.3

4 months ago
  • 📻 LinkWireless:
    • Added to the Server struct (returned by getServers(...)):
      • currentPlayerCount: number of active players in the room (or 0 if it's full)
      • isFull(): a boolean indicating whether the room is full or not (if true, the connection will fail)
    • When using maxPlayers, the library will now use the Wireless Adapter's native system to set the room's player limit. It no longer needs to run an EndHost command when a room is closed
    • Fixed incorrect usage documentation on receive(...) and LinkWireless_demo example
    • Added 'test lag' functionality to the LinkWireless_demo example
  • 🌎 LinkUniversal:
    • Fixed a bug when receiving wireless messages that could lead to crashes when transferring large data chunks
    • Fixed default value for maxPlayers (5 -> 4) when setting up LinkWireless
    • Removed code to update broadcast data to close the room since it's no longer needed
    • Added player limit option to the LinkUniversal_basic example

v6.0.2

4 months ago
  • 📻 LinkWireless:
    • serve(...) can now update the broadcast data if it's already serving
  • 🌎 LinkUniversal:
    • When the maximum number of players is reached in a wireless room, that room is closed by updating its broadcast data, so active rooms don't interfere with automatic pairing

v6.0.1

4 months ago
  • 📻 LinkWireless:
    • After calling deactivate(), the 0x3d command is sent to the adapter to put it in low consumption mode
    • The serve(...) method now accepts an optional gameId that will be broadcasted along with the game and user names