Fursphere, regarding having two different cabinets and linking them together; I was thinking about that, but how are you doing that while also allowing each cabinet to be independently played for different games? (Or is it just a cabinet dedicated for players 3 and 4, which seems pretty easy with a mirrored dual monitor set up?)
Its a little complicated, but not really once you break it down.
-Both cabinets running Windows 10, and using LaunchBox/BigBox for the front end (front end can be anything, but LB/BB has built in support)
-MAME is imported into the front end and setup to prefer 2 player versions of games. This platform is used for isolated cabinet play.
-RetroArch with FBNEO Core (final burn neo) is setup as a separate platform with an FBNEO romset. (very similar to mame, but some differences)
-RetroArch supports Netplay, along with the FBNEO Core supporting Netplay (to my knowledge, the MAME cores in RetroArch do not currently support netplay)
-FBNEO is imported into the frontend as a MAME set to prefer 4 player games / roms.
-retroarch takes care of the player mapping - no need to change ANY key bindings
-Cab-A retroarch advanced network config is setup to start with "Player 1" and "Player 2" when joining Netplay games
-Cab-B retroarch advanced network config is setup to start with "Player 3" and "Player 4" when joined Netplay games
(you can get more advanced with custom config loading to do like 1/3 and 2/4)
Cab-A starts as "HOST" and Cab-B starts as "Join Cab-A".
Launchbox has a Retroarch netplay browser built into the frontend - so you just say "start netplay game" on Cab-A as host, and "join netplay game" on Cab-B and then select Cab-A to join.
And then you have four player gaming across two local cabinets. For a short time I had a 3rd cabinet and actually got 6-player X-Men going for a minute. But three cabinets just took up too much room in the space I have, so I let one go. You can easily have player 5 and player 6 use gamepads or something if you really want to go there.
Now, If you want to go more crazy, I have figured out how to automatically launch the game on Cab-B from Cab-A using autohotkey scripting and some networking. That's more for fun than anything and really not needed.
You can do some crazy stuff with Steam "Play with friends" games too.