How does it work - gbaHD/GBAHD-Shield GitHub Wiki

With the newly implemented features from @bbsan2k here is a quick overview how everything works together

In the past the Spartan Edge Accelerator Board (SEA) and the gbaHD-Shield had to be programmed separately. This meant when the gbaHD-Shield got an firmware update you had to disassamble the gbaHD, pull out the gbaHD-Shield, programm it and put everything back together.

With the newest release @bbsan2k and @ManCloud totally changed the way updates are made in the future.

  • First the SEA and the gbaHD can now talk to eachother. This gave us the possibility to host the firmware for the gbaHD-Shield in the ESP32-SPIFFS-FileSystem.
  • The gbaHD-Shield now has a TWI-Bootloader, which communicates with the ESP32 over two additional solderpoints.
  • On bootup the gbaHD-shield starts and waits for the ESP on the SEA-Board to bootup. The ESP starts the communication to the gbaHD-Shield (Green LED blinks rapidly) over TWI and checks it's code version.
  • If no update is needed the Shield starts up and powers on the GBA / GBASP (Green and Blue LED light up and go out)
  • If an update is available the ESP sends the code over TWI to the Shield (Blue LED is blinking) and restarts it after the Update was successfull.

Thanks to the communication between the ESP32 and the gbaHD-Shield we were able to implement Bluetooth-Controller support thanks to @ricardoquesada's BluePad-Implementation (https://github.com/ricardoquesada/bluepad32)

With the upgraded WebUI @bbsan2k also implemented OTA-Updates for the ESP32-firmware and @zwenergys Bitstreams for the gbaHD itself and the gbaHD-Shield firmware.