Write your TAS using BizHawk with the mGBA core
run a python script to convert the bk2 to a movie for Game Boy Interface (it will output as GBITimestamps.txt)
py -3 thescript.py yourmovie.bk2
Rename+move the GBI output to an SD card for playback and set it as the movie in GBI's CLI file
--movie=yourmovie.txt
Run GBI with whatever method you use to load GameCube homebrew
(optional) you may need to clear your cartridge's save data to defaults before attempting playback. Separate cart dumping and flashing is not needed due to GBI. GBI can backup the cart's ROM and save data, and can flash those saves back or flash mGBA saves with the extension changed to .FLA/.SRM/.EEP for Flash/SRAM+FeRAM/EEPROM. The menu for this can be accessed in GBI-SR by putting default.mb.gz in the GBI folder and adding default.mb.gz to the CLI file. This can also be useful to dump the initial ROM before TASing a game to ensure that you're using the exact revision while TASing that will end up being needed on console
this pipeline is more experimental than GB/GBC, but it should provide a framework for documenting any issues with console sync
credit to Extrems and Endrift for their work on GBI and mGBA respectively