Yeah, it's a step in the right direction. Viktor told me about that feature in FreeDO too. I agree that emulating the mouse for 4DO would be best way to get "light gun" support integrated.
I was unable to figure out how FreeDO interfaces with its plugins and core, though. At one point I thought I was making progress, but it turns out that the data I was emulating for the mouse was just being interpreted as regular controller input by the FreeDO core. So, 4DO's controller emulation is merely capable of emulating regular controllers. I think it has to do with the first few bytes sent to the core emulation...
Right now those bytes are hard-coded always kept the same because once I found a working value I kept it. But I don't know if FreeDO is doing it that way, and believe they somehow indicate what type of controller is connected. I could not determine what the "correct" value for these first few bytes would be for a mouse input device, although I'm not positive that's the issue. However, the fact that I couldn't get an individual device to behave as anything than a plain controller indicates this. I'm thinking the FreeDO guys figured it out.
If I had the FreeDO source code, I could make sense of it.
![Sad :(](./images/smilies/icon_e_sad.gif)