@horaceandspider I've got an arcade cabinet using 4 Sanwa-style arcade joysticks that are recognised as Dragonrise. The only way I've been able to address this problem of differentiating between joysticks is to use meleu's joystick configurator together with Attract Mode (which allows very easy programming of joystick controls "outside" the game environment) and xboxdrv (for in game control).
Basically, xboxdrv "ties" each joystick button/movement to keyboard inputs which have been set in Retroarch and also set in each non-Retroarch emulator (the key being that almost every emulator allows keyboard input). I then invoke xboxdrv via runcommand-onstart to start up the specific xboxdrv joystick configuration for that particular emulator. xboxdrv can even be used on a per-game basis, so it is very flexible.
This works very well and basically bypasses the problem of differentiating between each joystick as the effect is that you are "using the keyboard" when moving the joystick or pressing a joystick button, whichever joystick it might be.
However, I suspect it might prove to be quite a bit of work for you to set this up on an established system that is already devoted to emulationstation. You could achieve the same using emulationstation, leaving Attract Mode to one side, but I shifted over to Attract Mode about 2 years ago. Mediamogul is the guru on xboxdrv.