“Turn your Game Boy Advance into a Bluetooth Gamepad
Use a Gameboy Advance as a Bluetooth Gamepad to play your favorite games on emulators running on PC, Android, Mac or any Bluetooth compatible device
The device is basically an ESP32 connected to the GBA through the link port. With the device connected and without any cartridge inserted in the GBA, once the GBA turns on the ESP32 sends a small rom to be loaded in the GBA. This rom is a program made to enable communication between the ESP32 and GBA for both handling bluetooth connection and sending the user input to the ESP32 when it is connected to a bluetooth host and act as a gamepad. Unfortunately it only works with traditional GBA and I couldn’t make it work with GBA SP. I think GBA SP just doesn’t give enough power.
When turned on the ESP32 performs a multiboot sequence through the SPI to the GBA sending a rom that the ESP32 has stored in the flash memory. Once loaded the ESP32 enables the UART port in the same pins and the rom communicates with the ESP32 using UART through the link port.
The ESP32 is powered by the 3.3V the GBA gives through the port”