mirror of
https://github.com/afska/gba-link-connection.git
synced 2026-03-21 17:44:21 -05:00
Version => v6.3.0
This commit is contained in:
parent
4aa43dfcb6
commit
33f0d2ca4e
|
|
@ -12,7 +12,7 @@ A set of Game Boy Advance (GBA) C++ libraries to interact with the Serial Port.
|
|||
- [🌎](#-LinkUniversal) [LinkUniversal.hpp](lib/LinkUniversal.hpp): Add multiplayer support to your game, both with 👾 *Link Cables* and 📻 *Wireless Adapters*, using the **same API**!
|
||||
- [🔌](#-LinkGPIO) [LinkGPIO.hpp](lib/LinkGPIO.hpp): Use the Link Port however you want to control **any device** (like LEDs, rumble motors, and that kind of stuff)!
|
||||
- [🔗](#-LinkSPI) [LinkSPI.hpp](lib/LinkSPI.hpp): Connect with a PC (like a **Raspberry Pi**) or another GBA (with a GBC Link Cable) using this mode. Transfer up to 2Mbit/s!
|
||||
- [⏱️](#-LinkUART) [LinkUART.hpp](lib/LinkUART.hpp): Easily connect to **any PC** using a USB to UART cable!
|
||||
- [⏱️](#%EF%B8%8F-LinkUART) [LinkUART.hpp](lib/LinkUART.hpp): Easily connect to **any PC** using a USB to UART cable!
|
||||
|
||||
*(click on the emojis for documentation)*
|
||||
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ int main() {
|
|||
// Sender options
|
||||
if (isSenderMode) {
|
||||
if (result != LinkCableMultiboot::Result::SUCCESS)
|
||||
log("LinkCableMultiboot_demo\n (v6.2.3)\n\nPress START to send the "
|
||||
log("LinkCableMultiboot_demo\n (v6.3.0)\n\nPress START to send the "
|
||||
"ROM...\nPress B to set client mode...");
|
||||
|
||||
if (keys & KEY_START) {
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ int main() {
|
|||
u16 keys = ~REG_KEYS & KEY_ANY;
|
||||
linkCable->send(keys + 1); // (avoid using 0)
|
||||
|
||||
std::string output = "LinkCable_basic (v6.2.3)\n\n";
|
||||
std::string output = "LinkCable_basic (v6.3.0)\n\n";
|
||||
if (linkCable->isConnected()) {
|
||||
u8 playerCount = linkCable->playerCount();
|
||||
u8 currentPlayerId = linkCable->currentPlayerId();
|
||||
|
|
|
|||
|
|
@ -93,10 +93,10 @@ inline void setUpInterrupts() {
|
|||
|
||||
void printTutorial() {
|
||||
#ifndef USE_LINK_UNIVERSAL
|
||||
DEBULOG("LinkCable_full (v6.2.3)");
|
||||
DEBULOG("LinkCable_full (v6.3.0)");
|
||||
#endif
|
||||
#ifdef USE_LINK_UNIVERSAL
|
||||
DEBULOG("LinkUniversal_full (v6.2.3)");
|
||||
DEBULOG("LinkUniversal_full (v6.3.0)");
|
||||
#endif
|
||||
|
||||
DEBULOG("");
|
||||
|
|
|
|||
|
|
@ -89,10 +89,10 @@ int main() {
|
|||
|
||||
while (true) {
|
||||
#ifndef USE_LINK_UNIVERSAL
|
||||
std::string output = "LinkCable_stress (v6.2.3)\n\n";
|
||||
std::string output = "LinkCable_stress (v6.3.0)\n\n";
|
||||
#endif
|
||||
#ifdef USE_LINK_UNIVERSAL
|
||||
std::string output = "LinkUniversal_stress (v6.2.3)\n\n";
|
||||
std::string output = "LinkUniversal_stress (v6.3.0)\n\n";
|
||||
#endif
|
||||
|
||||
linkConnection->deactivate();
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ int main() {
|
|||
|
||||
while (true) {
|
||||
// (3) Use the pins
|
||||
std::string output = "LinkGPIO_demo (v6.2.3)\n\n";
|
||||
std::string output = "LinkGPIO_demo (v6.3.0)\n\n";
|
||||
|
||||
// Commands
|
||||
u16 keys = ~REG_KEYS & KEY_ANY;
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ int main() {
|
|||
u16 prevKeys = 0;
|
||||
|
||||
while (true) {
|
||||
std::string output = "LinkRawCable_demo (v6.2.3)\n\n";
|
||||
std::string output = "LinkRawCable_demo (v6.3.0)\n\n";
|
||||
u16 keys = ~REG_KEYS & KEY_ANY;
|
||||
|
||||
if (!linkRawCable->isActive()) {
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ void DebugScene::load() {
|
|||
|
||||
log("---");
|
||||
log("LinkRawWireless demo");
|
||||
log(" (v6.2.3)");
|
||||
log(" (v6.3.0)");
|
||||
log("");
|
||||
log("START: reset wireless adapter");
|
||||
log("A: send command");
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ int main() {
|
|||
u32 counter = 0;
|
||||
|
||||
while (true) {
|
||||
std::string output = "LinkSPI_demo (v6.2.3)\n\n";
|
||||
std::string output = "LinkSPI_demo (v6.3.0)\n\n";
|
||||
u16 keys = ~REG_KEYS & KEY_ANY;
|
||||
|
||||
if (!linkSPI->isActive()) {
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ int main() {
|
|||
bool firstTransfer = false;
|
||||
|
||||
while (true) {
|
||||
std::string output = "LinkUART_demo (v6.2.3)\n\n";
|
||||
std::string output = "LinkUART_demo (v6.3.0)\n\n";
|
||||
u16 keys = ~REG_KEYS & KEY_ANY;
|
||||
|
||||
if (!linkUART->isActive()) {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ void init() {
|
|||
int main() {
|
||||
init();
|
||||
|
||||
log("LinkUniversal_basic (v6.2.3)\n\n\nPress A to start\n\n\nhold LEFT on "
|
||||
log("LinkUniversal_basic (v6.3.0)\n\n\nPress A to start\n\n\nhold LEFT on "
|
||||
"start:\n -> force cable\n\nhold RIGHT on start:\n -> force "
|
||||
"wireless\n\nhold UP on start:\n -> force wireless server\n\nhold DOWN "
|
||||
"on start:\n -> force wireless client\n\nhold B on start:\n -> set 2 "
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ void MultibootScene::load() {
|
|||
|
||||
log("---");
|
||||
log("LinkWirelessMultiboot demo");
|
||||
log(" (v6.2.3)");
|
||||
log(" (v6.3.0)");
|
||||
log("");
|
||||
if (fs == NULL) {
|
||||
log("! GBFS file not found");
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ int main() {
|
|||
|
||||
start:
|
||||
// Options
|
||||
log("LinkWireless_demo (v6.2.3)\n\n\n\nPress A to start\n\n\n\n\nhold LEFT "
|
||||
log("LinkWireless_demo (v6.3.0)\n\n\n\nPress A to start\n\n\n\n\nhold LEFT "
|
||||
"on start:\n -> disable forwarding\n\nhold UP on start:\n -> disable "
|
||||
"retransmission\n\nhold B on start:\n -> set 2 players\n\nhold START on "
|
||||
"start:\n -> async ACK");
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
#define LINK_CABLE_BIT_GENERAL_PURPOSE_HIGH 15
|
||||
#define LINK_CABLE_BARRIER asm volatile("" ::: "memory")
|
||||
|
||||
static volatile char LINK_CABLE_VERSION[] = "LinkCable/v6.2.3";
|
||||
static volatile char LINK_CABLE_VERSION[] = "LinkCable/v6.3.0";
|
||||
|
||||
void LINK_CABLE_ISR_VBLANK();
|
||||
void LINK_CABLE_ISR_SERIAL();
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@
|
|||
return error(FAILURE_DURING_HANDSHAKE);
|
||||
|
||||
static volatile char LINK_CABLE_MULTIBOOT_VERSION[] =
|
||||
"LinkCableMultiboot/v6.2.3";
|
||||
"LinkCableMultiboot/v6.3.0";
|
||||
|
||||
const u8 LINK_CABLE_MULTIBOOT_CLIENT_IDS[] = {0b0010, 0b0100, 0b1000};
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
else \
|
||||
REG &= ~(1 << BIT);
|
||||
|
||||
static volatile char LINK_GPIO_VERSION[] = "LinkGPIO/v6.2.3";
|
||||
static volatile char LINK_GPIO_VERSION[] = "LinkGPIO/v6.3.0";
|
||||
|
||||
const u8 LINK_GPIO_DATA_BITS[] = {2, 3, 1, 0};
|
||||
const u8 LINK_GPIO_DIRECTION_BITS[] = {6, 7, 5, 4};
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@
|
|||
} \
|
||||
}
|
||||
|
||||
static volatile char LINK_RAW_CABLE_VERSION[] = "LinkRawCable/v6.2.3";
|
||||
static volatile char LINK_RAW_CABLE_VERSION[] = "LinkRawCable/v6.3.0";
|
||||
|
||||
class LinkRawCable {
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@
|
|||
#define LINK_RAW_WIRELESS_COMMAND_WAIT 0x27
|
||||
#define LINK_RAW_WIRELESS_COMMAND_BYE 0x3d
|
||||
|
||||
static volatile char LINK_RAW_WIRELESS_VERSION[] = "LinkRawWireless/v6.2.3";
|
||||
static volatile char LINK_RAW_WIRELESS_VERSION[] = "LinkRawWireless/v6.3.0";
|
||||
|
||||
const u16 LINK_RAW_WIRELESS_LOGIN_PARTS[] = {
|
||||
0x494e, 0x494e, 0x544e, 0x544e, 0x4e45, 0x4e45, 0x4f44, 0x4f44, 0x8001};
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@
|
|||
#define LINK_SPI_BIT_GENERAL_PURPOSE_LOW 14
|
||||
#define LINK_SPI_BIT_GENERAL_PURPOSE_HIGH 15
|
||||
|
||||
static volatile char LINK_SPI_VERSION[] = "LinkSPI/v6.2.3";
|
||||
static volatile char LINK_SPI_VERSION[] = "LinkSPI/v6.3.0";
|
||||
|
||||
const u32 LINK_SPI_MASK_CLEAR_SO_BIT = ~(1 << LINK_SPI_BIT_SO);
|
||||
const u32 LINK_SPI_MASK_SET_START_BIT = (1 << LINK_SPI_BIT_START);
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
#define LINK_UART_BIT_GENERAL_PURPOSE_HIGH 15
|
||||
#define LINK_UART_BARRIER asm volatile("" ::: "memory")
|
||||
|
||||
static volatile char LINK_UART_VERSION[] = "LinkUART/v6.2.3";
|
||||
static volatile char LINK_UART_VERSION[] = "LinkUART/v6.3.0";
|
||||
|
||||
void LINK_UART_ISR_SERIAL();
|
||||
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
#define LINK_UNIVERSAL_SERVE_WAIT_FRAMES 60
|
||||
#define LINK_UNIVERSAL_SERVE_WAIT_FRAMES_RANDOM 30
|
||||
|
||||
static volatile char LINK_UNIVERSAL_VERSION[] = "LinkUniversal/v6.2.3";
|
||||
static volatile char LINK_UNIVERSAL_VERSION[] = "LinkUniversal/v6.3.0";
|
||||
|
||||
void LINK_UNIVERSAL_ISR_VBLANK();
|
||||
void LINK_UNIVERSAL_ISR_SERIAL();
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@
|
|||
if (!reset()) \
|
||||
return false;
|
||||
|
||||
static volatile char LINK_WIRELESS_VERSION[] = "LinkWireless/v6.2.3";
|
||||
static volatile char LINK_WIRELESS_VERSION[] = "LinkWireless/v6.3.0";
|
||||
|
||||
void LINK_WIRELESS_ISR_VBLANK();
|
||||
void LINK_WIRELESS_ISR_SERIAL();
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ const u8 LINK_WIRELESS_MULTIBOOT_ROM_HEADER_PATCH_OFFSET = 4;
|
|||
const u8 LINK_WIRELESS_MULTIBOOT_ROM_HEADER_PATCH_SIZE = 12;
|
||||
|
||||
static volatile char LINK_WIRELESS_MULTIBOOT_VERSION[] =
|
||||
"LinkWirelessMultiboot/v6.2.3";
|
||||
"LinkWirelessMultiboot/v6.3.0";
|
||||
|
||||
class LinkWirelessMultiboot {
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
LINK_WIRELESS_OPEN_SDK_HEADER_SIZE_CLIENT)
|
||||
|
||||
static volatile char LINK_WIRELESS_OPEN_SDK_VERSION[] =
|
||||
"LinkWirelessOpenSDK/v6.2.3";
|
||||
"LinkWirelessOpenSDK/v6.3.0";
|
||||
|
||||
class LinkWirelessOpenSDK {
|
||||
public:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user