The clock ratio for the Super Game Boy is just the main S-CPU rate, 21.477272MHz, divided by five. It shouldn't matter a whole lot there.

The main transmission protocol is a really, really slow serial thing over the joypad ports. But to send large amounts of data, eg for custom borders, it turns the screen off, then puts a lot of graphics into video RAM, sends a special command and the SGB BIOS uses the next frame's VRAM data for whatever the command was for.

The problem is that $7800 is a streaming auto-increment port, and those commands seem arbitrary and show up whenever. There's never a command-write that says "sync $7800 so the next read starts at offset 0." I think it may be related to the very unusual writes to $6001, but nothing I tried worked. So what kept happening was these commands would read out their own data and end up reading it from the wrong spot, resulting in gibberish custom data, and then the screen video output would get thrown off and the top of the screen would be moved a few lines, kind of like a lousy V-hold or something.

Anyway, on my WIP forum, Fras posted v045 wip09. That one has Super Game Boy support with sound. You should be able to see what I mean from it. The version of gambatte included has a couple of patches to expose the LY-counter, and to load and save to memory instead of disk.

Also, I tried e-mailing Costis to see if he'd be interested in looking into the two registers, but his lack of response seems to indicate he would not. Ah well, worth a try anyway.