Btw, currently the FM chip is permanently attached to the Mark III (sg1000m3) driver, what is wrong. For that driver, it needs to be included in a new device (FM Sound Unit), that is plugged to an expansion port, compatible with the SG1000, that isn't coded yet. But doing correctly requires sharing this new expansion port with the sg1000.c driver, and convert its keyboard code to also be a pluggable device. And the keyboard has its pluggable devices, too. Going on, there's a Mark III game that can use a link between keyboards of two consoles for a 2 player mode.
Just an update: I managed to understand how the keyboard of the sc3000 driver (in sg1000.cpp) worked and successfully split it into a separate device. I created a new SG1000 expansion slot to connect the keyboard, this way I got support for it in the SG1000 and Mark III (sg1000m3 in sms.cpp) drivers. Then finally I could create a FM device for the expansion slot, used by the Mark III driver just like the real thing worked. These new features are contained in MAME 0.175.
Besides the SP-400 plotter printer, the keyboard just misses the link with another keyboard via the printer port, that is used by F-16 Fighting Falcon for its 2 player mode. Currently there's no emulator that supports this link, AFAIK, and there's documentation
here and on sc3000/sk1100 docs about the printer read/write bits, but I lack the skills to emulate that connection on MAME. I have the same problem with the Gear-to-Gear link, for 2p mode of Game Gear games, that has two link modes (serial and raw) with enough documentation available on the GG official docs and SMSPower, if a mamedev wants to take a look.