SGB color palettes are actually programmed in the game, but apart from the first few screens, the functionality is unfinished. Telefang loads all palettes at the start of the game, by using the PAL_TRN command to read palettes from 0xEBC8, and then it loads colormaps by using the ATTR_TRN command to read colormaps from 0xEED8. To change the palette and colormap, Telefang uses PAL_SET, which picks a palette index and colormap index. Here's some more information about the palettes, though it currently doesn't mention the colormaps, many of which are unused:
https://tcrf.net/Keitai_Denjuu_Telefang/SGB_Colors
(Dumped colormaps can be found here:
http://www.mediafire.com/file/1d1vjow18otku48/attr_imgs.7z)
Note that the title screen is normally completely white, and the rest of the game is too, since the PAL_SET command is never run after the title screen. When I first added the SGB functionality, I replaced the bytes from ROM offsets 0xEBC8 to 0xEBCF (which are FF 7F (white) repeated four times) with other colors so that most of the game is actually visible. I arbitrarily picked grayish colors, but you can pick anything as long as you know the 15-bit blue/green/red format.
(Note that there's another way to fix this as well: At ROM offsets 0x94C5-94D1, which is executed just before the title screen loads, there's some ASM code to set several registers, followed by a call to 0x04C0, which changes the color palette and colormap. Registers b, c, d, and e determine the four SGB palettes based on the table in the link above, and register a determines which attribute file (a.k.a. colormap) to be used.
Modifying the value of register b (at ROM offset 0x94C6) makes the title screen and anything after that load a different palette index. Registers c, d, and e don't matter for this screen, since the title screen colormap only uses the first palette line.)
Finally, while a few SGB games use extra features like SNES-quality sound effects, or even an entire SNES program, Telefang just uses borders and color palettes.
I hope some of this makes sense! If this is still confusing, note that BGB's debugger lets you view how SGB packets are used -- In the debugger, go to Window -> SGB Packets. Every time a packet is sent, it will show up in this window. It helps in conjunction with this:
http://bgb.bircd.org/pandocs.htm#sgbfunctions