Hello everyone, I'm going to try to answer all the questions here, but feel free to reply if I've missed anything out.
- OpenJVS3 is the version I would recommend which you can get here:
https://github.com/bobbydilley/OpenJVS3
- OpenJVS3 current has a map file for the Microsoft Sidewinder Force Feedback wheel, and will be adding Freds G25 mapping in soon.
- There are device maps and game maps. We've got generic driving game maps, but generally they'll need some tweaking to play all the games you want to - it's not hard though, and so shouldn't put you off. I'll aim to do a video explaining how it all works later on.
- OpenJVS3 has been tested to work with Naomi, Naomi2, Chihiro, Triforce and Lindbergh. It unforunately doesn't work with Ring* systems at the moment, but it's being looked into.
It's interesting you'd mention the 'Screen position input' (command 0x25) part of the JVS spec as that was originally the reason I started OpenJVS - I really wanted to play Ninja Assault. I borroed the cart for a bit and played around with it but never managed to get it to register shots properly. I beleive this was due to the fact that (which I realised later) in Ninja Assault (0,0) is bottom left, not top left and so when calibrating I was giving it all the wrong values. OpenJVS could spoof a Rays PCB and the Ninja Assault Namco PCB and the game would accept it (it just checks the name string of the IO). Other games that have been mentioned such as the touch* series also use the screen position input so I can see why you'd want it. I've always thought it silly that Sega didn't properly use this command, as it seems to lend itself to light gun inputs, rather than using analogue channels 0,1,2,3 for x1,y1,x2,y2 channels.
I can implement this feature again easily, and I suggest that I just take the raw values from analogue 0,1,2,3 and send them as the two players of screen position input data. This will mean the wii remote will automatically start making positions with this command, and if you had a touch screen you could simply connect the ABS_X and ABS_Y to ANALOGUE_0 and ANALOGUE_1 and it would work with the touch games.
The only issues is that this won't work with games such as Ninja Assault as they require the data to be input backwards, and a specific IO string. I'll possibly try to add that in at some point, but I'll really have to have the game to test again - would be amazing if someone wanted to make Ninja Assault netbootable, or even give me any broken version that would get into the test menu
@whatnot "That's really curious SEGA decided to deviate from spec. The JVS spec calls for 16bit's for

Y" - It doesn't actually call for 16 bits, it just says that the maximum. Works in the same way as the analogue channels (they're maximum 16 bit, but most IOs use 10 bit for some odd reason). You can specify the maximum amount of bits you'll be sending when you respond to command 0x14 Function Check. I'm assuming like the analogue channels, the positional data if less than 16 should be left aligned.
- I'll make some github issues now for the screen input thing - but I hope this answers everyones questions!