I was hoping there was a write-up somewhere as I'm not great at reading assembly or C. Tried reading Emerald's disassembly (C) to work it out, didn't go too well.
If anyone is fluent in GB ASM and/or C and willing to help me out by working out the protocol, it would be greatly appreciated!