# Resources

## Glossary

**Multiboot:** Nintendo's official protocol that lets you send a ROM directly to the GBA's RAM via the Link port, without a cartridge.

**SPI:** synchronous serial communication protocol used between the dongle and the GBA. CanoFlash runs at 4 MHz in SPI Mode 3 with 32-bit words.

**JEDEC:** flash chip identification standard. Each chip has a unique ID (Manufacturer + Device).

**EWRAM:** External Work RAM of the GBA (256 KB, accessible with 2 wait cycles by default).

**BPS / IPS:** binary patch formats. CanoFlash applies them server-side before sending the ROM to the dongle.

**FNV-1a:** fast (non-cryptographic) hash used to verify SPI chunk integrity. We picked it over CRC-32 because it's ~30× faster.

**OTA:** *Over The Air* — firmware updates without needing a cable.

**Repository:** ROM collection managed from the web. Can be shared via a token.

**Share Token:** 12-character identifier that lets another person subscribe to your repository.

## Tech specs at a glance

- **MCU:** Seeed Studio XIAO ESP32-S3
- **GBA communication:** SPI 4 MHz Mode 3, 32-bit words
- **Supported cartridges:** AMD/Spansion S29GL256 (32 MB)
- **ROM download chunk:** 8 KB
- **Save chunk:** 4 KB
- **Wi-Fi:** 2.4 GHz (no 5 GHz support)
- **GBA menu languages:** Spanish, English, French, German

## Community and contact

Got a problem, suggestion or just want to say hi? Use the contact form on the web.

## Changelog

Firmware version history is available to administrators in the Backoffice. Users can check and accept OTA updates from **Settings → Information → Firmwares → Check for updates** on the GBA.
