flipper-gblink
flipper-gblink copied to clipboard
Game Boy Game Link Cable interface library for Flipper Zero
Flipper Game Boy Game Link Cable API
Simple API that can be included in projects to provide a flexible and easy way to handle data exchange over a Game Link Cable.
Current Version: 0.62
Available from: https://github.com/kbembedded/flipper-gblink
Current feature status and future roadmap:
- [x] Ability to use EXT clock source. i.e. connected device drives the clock line
- [x] Callback on byte transfer completion
- [x] Flexibility in IO pin selection at alloc time
- [x] Ability to enable and disable interrupt on input clock
- [x] Ability to set timeout in microseconds between clock edges. If exceeded, it is assumed the next clock is the first bit of a byte
- [x] Set a NO_DATA_BYTE pattern. i.e. after a byte transfer is complete, a default byte is prepared to be sent out if no new data is provided before the transfer starts
- [x] Supports communication to GBC
- [x] Supports communication to GBA using GBC games
- [x] Supports older MALVEKE pinouts that would previously cause the Okay button to stop functioning after a trade
- [ ] Supports communication to GB (untested, but should work)
- [ ] Supports communication to GBA using GBA games
- [ ] Function as INT clock source. i.e. Flipper Zero drives the clock line
- [ ] Drive clock at varying speeds as GBC supports
- [ ] Proper documentation
Use example
See https://github.com/kbembedded/Flipper-Zero-Game-Boy-Pokemon-Trading
To include this in a Flipper Zero application, add this repo as a submodule in the lib/ directory of the application source. Then add the following to application.fam:
App(
...
fap_private_libs=[
Lib(
name="flipper-gblink",
),
],
...
)