What's new
Dear Bobby,
I am willing to test your great OpenJVS with my Logitech G25 that will be connected on Naomi 2.
So, I use a PI4 with DietPI distrib and instanned the code as mentionned on Github.

Then, with devtest I created this:

And then created my first map file for Crazy Taxi:

But before starting real tests, I have 3 questions, please:

JVS Cable
=========
Regarding the JVS cable, it is not clear if red cable must be connected to 5V or Ground:
- In your youtube video (
) -> connected to GND.
- In your doc at https://github.com/bobbydilley/JVSCore-Public -> connected to 5V.
- In your doc at https://github.com/bobbydilley/JVSEmulator/wiki/The-JVSE-Cable -> connected to GND
- And in Raiver's video -> connected to 5V.

-> Should I connect the red wire to GND and 5V at the same time then :) ?

Coin mapping
============
I didn't see information for mapping coin, is it possible ? What is the Naomi key, please?
If it's not possible due to the way coin event is managed through JVS IO Board, would it be possible to still have the real JVS IO Board connected (for Coin) + your OpenJVS (for Wheel, etc) ? There are 2 usb ports in fact on the Naomi, the first is hidden and I am not sure if we can use it ?

Mapping file
===========
I am willing to contribute here and I am ready to create other mapping files for all other racing games for Logitech G Series but how can I know what are the controls required for each game and what are their "Naomi keys" ? I can image that some have specific buttons, etc.

Thank you for your excellent work and I wait for your response before making the test.

Best regards
Fred
 

Attachments

  • G25.jpg
    G25.jpg
    150.6 KB · Views: 357
  • crazy_taxi-g25.txt
    872 bytes · Views: 244
Hey fred - thanks for the message and glad you're making use of the project. I'll reply on this thread as this info might be useful to everyone - but if you've got any more questions then DM me so that we don't keep notifiying millions of people!!

As far as the connection goes, it follows this:

If you're connecting from a computer/pi to an arcade motherboard, wire the RED wire to GROUND.
If you're connecting from a computer/pi to a JVS IO, wire the RED wire to +5v.

The two you've listed for connecting to 5v is JVSCore and Teknoparrot, where they are both trying to connect the computer to a JVS IO and not to a motherboard. The others mentioned are emulating the IO and so are being connected to a motherboard.

Coin mapping isn't impossible, I just didn't implement it as usually the service button / freeplay works. In the code if you do a search for a variable called coin, you can simply set a static amount of coins to be in the machine there - thats what I normally do.

In terms of creating mapping files, to work out which ones are which, I would create a keyboard map to map keys Q -> P onto player 1 buttons 0 -> 9, and then A -> L as 10 -> 18 etc... That way you can press the keyboard keys and see what happens on the machine in test mode, and then note down what buttons this game takes.

Thank you so much for that image showing the mappings of the G25 - that is super useful to the project, and will help us to create lots of maps.

At the moment we're actually working on a new version of OpenJVS that works slightly differently with map files. Only one map file per device is required, and then one seperate map file per game. This means that you don't map directly from the controller to the game, but use an intermediate stage to better support multiple games and controllers. It's not quite ready yet, so I'd suggest you keep using the original OpenJVS and i'll port all of your maps over to the new one when finished!

I hope this answers your questions - and feel free to DM me if you have anymore!
 
Hello Bobby !

Thanks for your awesome work !
I'm getting a Naomi board with net-dimm and will do some testing with lightgun games.

Wich software do you recommand to use wiimote with openjvs ?

Thnaks for your answer and again, great job on this ! :)
 
“At the moment we're actually working on a new version of OpenJVS that works slightly differently with map files. Only one map file per device is required, and then one seperate map file per game. This means that you don't map directly from the controller to the game, but use an intermediate stage to better support multiple games and controllers. It's not quite ready yet, so I'd suggest you keep using the original OpenJVS and i'll port all of your maps over to the new one when finished!“

@Fredobedo007 - maybe I am reading this wrong but it would be great if we could get mapping files for one wheel, whichever you have for all the games and we can buy that wheel in advance.. later the rest of the community could create files for different wheels.

does your solution works on the Lindbergh and RingEdge family of racing games? More specifically, Initial D and WMMT 5?
 
Hello. May I ask you a question?
In this OpenJVS3 it seems to have reproduced a light gun using the Wii remote control, but is this moving by "screen position data type"?
If not, is it possible to set it to "screen position data type"?
 
is it possible to set it to "screen position data type"?
Do you have a test case/game?
I know of a game that uses the "screen position data type" myself, but I don't have it. I'm sorry.
However, I'm sure there are those who are testing it.

The following games seem to be using the "screen position data type" feature
SEGA NAOMI
Touch de Uno!", "Touch de Uno! 2" and "Touch de Zunou.
NAMCO SYSTEM2X6
Dragon Chronicle", "THE IDOLM@STER", "Minna de Kitaeru Zenno Training", "Druaga Online: The Story of Aon

The genuine IO boards used in these boards are
SEGA "SEGA 837-13844-02
NAMCO "Namco V290 FCB PCB" and "Namco V300 FCB PCB
is used, and
#SCREEN X:12 Y:12 1CH" in SEGA games.
SCREEN X:16 Y:16 1CH" in NAMCO games
is being used.
Therefore, even if you use SEGA's IO for NAMCO game, only the bottom left side of the game reacts.
Touch panel is connected to the IO board by RS-232C.
SEGA is using "ELO touch screen" and NAMCO is using "3m touch screen".

For now, the information is like this.
It's getting harder to find these genuine parts, and I think it would be easier if I could use this one.
 
SCREEN X:12 Y:12 1CH" in SEGA games.
SCREEN X:16 Y:16 1CH" in NAMCO games
That's really curious SEGA decided to deviate from spec. The JVS spec calls for 16bit's for X/Y, or maybe it uses an earlier revision of the spec. I'm working on a separate project with similar goals to OpenJVS and just wrote in support for it, I think it should work but don't own a Naomi or any of those games, @bobbydilley has access to it, maybe he can try it out sometime.
 
SCREEN X:12 Y:12 1CH" in SEGA games.
SCREEN X:16 Y:16 1CH" in NAMCO games
That's really curious SEGA decided to deviate from spec. The JVS spec calls for 16bit's for X/Y, or maybe it uses an earlier revision of the spec. I'm working on a separate project with similar goals to OpenJVS and just wrote in support for it, I think it should work but don't own a Naomi or any of those games, @bobbydilley has access to it, maybe he can try it out sometime.
I wish there was a screen for JVS TEST, but it seems that there is only writing in the thread.
https://www.arcade-projects.com/for...-o-type-2-dip-switch-settings-and-pinout.873/

Honestly, I don't have the skills to rewrite the code, so I'll be thinking and praying and waiting for it to work.
 
I know the test menu on the Chihiro and Naomi (I would assume all JVS based arcade boards show such things) show info about the JVS IO boards and what it supports, and there's even an input test menu but it doesn't report info about screen position, just that there's a X/Y bits and # of channels. So the only real way to test would be to use one of those games.
 
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 X/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!
 
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
I think it would be great if it could be implemented (although I can't test it...)

The reason I gave the example of the Wii remote is because I thought that if it can be used for gun games, it would work on the touch panel too!

However, in the case of the Wii remote control, I think it is not practical for touch games because I think it will be left input.

It looks like the key mapping will end at about the service switch.

Is the IO board information referred to from "docs"? (Probably because I think I need to put the name of XY16bit IO board etc.)

Thank you so much for answering my question!
 
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.
Hi @bobbydilley and thanks for making OpenJVS.

I'm trying to make it work, but without any success so far.
I have a RPI3B+ with Ubuntu 20.4, I've managed to compile and install openjvs 3.
I plug the JVSE cable to my naomi, a wired XBOX 360 controller; then when I start openjvs, I get this error message:
Error: Failed to read serial settings for low latency mode

Another question is regarding the device and arcade folders. Is openjvs searching in these 2 folders for finding a matching mapping config file ?
Because it's not clear to me how to sart openjvs specifying a config without changing the global_config file.
 
Hey tom,

Are you using a Naomi 1 or Naomi 2?

The "Error: Failed to read serial settings for low latency mode" won't stop the program running and it should work without that - it should be more of a warning!

Currently you cannot specify the output map file other than in the global_config file located in /etc/openjvs.

OpenJVS will look at all the devices connected to your computer and look in /etc/openjvs/maps/device for files corresponding to the devices name (you can view devices using evtest).
OpenJVS will look at /etc/openjvs/global_config to get the default out mapping file, and then it will look in /etc/openjvs/maps/arcade for the one specified and run this one.

My plan is to add in the ability to list and specify the output file on the command line, and also rename /arcade to /games as that seems more fitting.

If you need more assistance with getting it to work feel free to PM me.
 
Thanks for your explanations.

I'm using a Naomi 2.

I've plugged my XBOX wireless receiver to the RPI.
The name of my controler is : Xbox 360 Wireless Receiver (XBOX)
I've copied your xbox-360-wireless-receiver file into "Xbox 360 Wireless Receiver (XBOX)" file.

When I start openjvs (after launching dolpihn blue for example), I get this message in loop and nothing works
Warning: This command is not properly supported [0x16]

If I plug jvs wire before loading game, I'm not able to successfully netloadc anymore... I'm stuck after a reboot...

Here is my global_config file:
Code:
DEFAULT_MAPPING buttons-generic
DEFAULT_IO 0
DEVICE_PATH /dev/ttyUSB0
SENSE_TYPE 0
DEBUG_MODE 0
ATOMISWAVE_FIX 1
 
If I plug jvs wire before loading game, I'm not able to successfully netloadc anymore... I'm stuck after a reboot...
Where do you plug in the "jvs wire" on the RasPi, do you have a picture ?
 
I would assume he's plugging a stripped USB A cable into an RS485 to USB converter, and then the USB side of the converter into the Pi.
 
@tom5151 thanks for the picture, can you tell us exactly which rs-485 adapter you are using ?
 
Back
Top