Looking through the Documentation I saw it supported the Beetle micro-controller, that form-factor of the CJMCU Beetle is amazing!Sorgelig wrote:for paddles, the best adapter is mr.Spinner:
https://github.com/MiSTer-devel/Retro-C ... rollersUSB
Joystick testing thread
-
- Atari freak
- Posts: 70
- Joined: Fri Dec 06, 2019 6:08 pm
Re: Joystick testing thread
Re: Joystick testing thread
Thanks paulbnl, that fix made my 4nes4snes adapter from raphnet working. Could it be merged with the main Mister repo so that I can use the disable_usb_merge=1 in the .ini file? Before, this adapter was merging all the controls in player 1.paulbnl wrote:Try the attached MiSTer file. Replace the MiSTer file and putAndreStarTrek wrote: I have try that but and many more. If power cycle the mister also loses the buttens except the dpad of one of the controllers. It look like it is always the first controller that is been setup. I also tried all the switch option on the controller adapter, setting 1 and A wil not work at all for the second controller. If I connect the adapter on my windows 10 pc in the 1 option it wil see 1 usb device and in option 2, 2 usb devices. But the problem could be that both of them are using the same device ID number, there is also only one file saved on the mister sdcard. Can mister handel 2 of the same devices with the same usb device ID's?in your MiSTer.ini and then power cycle the MiSTer.Code: Select all
disable_usb_merge=1
Then try all the switch options on the controller adapter again.
This is the log from the uart :
Open up to 30 input devices.
opened 0( 0): /dev/input/event3 (289b:0003) 0 "0003:289B:0003.0001" "raphnet.net 4nes4snes v1.5"
opened 1( 0): /dev/input/event2 (289b:0003) 0 "0003:289B:0003.0001" "raphnet.net 4nes4snes v1.5"
opened 2( 0): /dev/input/event1 (289b:0003) 0 "0003:289B:0003.0001" "raphnet.net 4nes4snes v1.5"
opened 3( 0): /dev/input/event0 (289b:0003) 0 "0003:289B:0003.0001" "raphnet.net 4nes4snes v1.5"
Re: Joystick testing thread
The merging was changed in the latest release but apparently there is still some unwanted merging.artfakt wrote: Thanks paulbnl, that fix made my 4nes4snes adapter from raphnet working. Could it be merged with the main Mister repo so that I can use the disable_usb_merge=1 in the .ini file? Before, this adapter was merging all the controls in player 1.
If it is ok with Sorgelig I will send the pull request to disable merging with the ini option.
Re: Joystick testing thread
before adding this quirk need to understand why some devices are merged. What devices are merged? They are physically different but got merged? Please give me a console log where input devices are listed.paulbnl wrote:The merging was changed in the latest release but apparently there is still some unwanted merging.artfakt wrote: Thanks paulbnl, that fix made my 4nes4snes adapter from raphnet working. Could it be merged with the main Mister repo so that I can use the disable_usb_merge=1 in the .ini file? Before, this adapter was merging all the controls in player 1.
If it is ok with Sorgelig I will send the pull request to disable merging with the ini option.
Re: Joystick testing thread
This is the adapter I bought https://www.raphnet-tech.com/products/4 ... /index.phpSorgelig wrote:before adding this quirk need to understand why some devices are merged. What devices are merged? They are physically different but got merged? Please give me a console log where input devices are listed.paulbnl wrote:The merging was changed in the latest release but apparently there is still some unwanted merging.artfakt wrote: Thanks paulbnl, that fix made my 4nes4snes adapter from raphnet working. Could it be merged with the main Mister repo so that I can use the disable_usb_merge=1 in the .ini file? Before, this adapter was merging all the controls in player 1.
If it is ok with Sorgelig I will send the pull request to disable merging with the ini option.
It's a 4 snes controller to usb. I put it into a snes multitap :

On windows, they appear as 4 hid devices with the same VID_PID but they add a &Col0X for each sub controller.

https://stackoverflow.com/questions/157 ... -parameter
So it seems to be a collection id.
Mister log from paulbnl fix :
Code: Select all
Minimig by Dennis van Weeren
ARM Controller by Jakub Bednarski
MiSTer code by Sorgelig
Version 200130
Looking for root device...
FileOpenEx(open) File:/media/fat/config/device.bin, error: No such file or directory.
Using SD card as a root device
Init SPI.
Identified 8BIT core
isPathDirectory(stat) path:/media/fat/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb0/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb0/games/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb1/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb1/games/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb2/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb2/games/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb3/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb3/games/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb4/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb4/games/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb5/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb5/games/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/cifs/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/cifs/games/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/games/MENU, error:No such file or directory.
Prefixed dir to games/MENU
Core name is "MENU"
*** Found SDRAM config: 3
** altcfg: no cfg
INI_PARSER : Start INI parser for core "MENU".
INI_PARSER : Opened file MiSTer.ini with size 4297 bytes.
INI_PARSER : line(0): "[MiSTer]".
INI_PARSER : Got SECTION 'MISTER' with ID 1
INI_PARSER : line(0): "key_menu_as_rgui=0".
INI_PARSER : Got VAR 'KEY_MENU_AS_RGUI' with VALUE 0
INI_PARSER : line(0): "forced_scandoubler=0".
INI_PARSER : Got VAR 'FORCED_SCANDOUBLER' with VALUE 0
INI_PARSER : line(0): "ypbpr=0".
INI_PARSER : Got VAR 'YPBPR' with VALUE 0
INI_PARSER : line(0): "composite_sync=0".
INI_PARSER : Got VAR 'COMPOSITE_SYNC' with VALUE 0
INI_PARSER : line(0): "vga_scaler=0".
INI_PARSER : Got VAR 'VGA_SCALER' with VALUE 0
INI_PARSER : line(0): "hdmi_audio_96k=0".
INI_PARSER : Got VAR 'HDMI_AUDIO_96K' with VALUE 0
INI_PARSER : line(0): "keyrah_mode=0x18d80002".
INI_PARSER : Got VAR 'KEYRAH_MODE' with VALUE 0x18d80002
INI_PARSER : line(0): "volumectl=1".
INI_PARSER : Got VAR 'VOLUMECTL' with VALUE 1
INI_PARSER : line(0): "vscale_mode=1".
INI_PARSER : Got VAR 'VSCALE_MODE' with VALUE 1
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "vscale_border=0".
INI_PARSER : Got VAR 'VSCALE_BORDER' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "rbf_hide_datecode=0".
INI_PARSER : Got VAR 'RBF_HIDE_DATECODE' with VALUE 0
INI_PARSER : line(0): "menu_pal=0".
INI_PARSER : Got VAR 'MENU_PAL' with VALUE 0
INI_PARSER : line(0): "hdmi_limited=0".
INI_PARSER : Got VAR 'HDMI_LIMITED' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "direct_video=0".
INI_PARSER : Got VAR 'DIRECT_VIDEO' with VALUE 0
INI_PARSER : line(0): "fb_size=0".
INI_PARSER : Got VAR 'FB_SIZE' with VALUE 0
INI_PARSER : line(0): "fb_terminal=1".
INI_PARSER : Got VAR 'FB_TERMINAL' with VALUE 1
INI_PARSER : line(0): "osd_timeout=30".
INI_PARSER : Got VAR 'OSD_TIMEOUT' with VALUE 30
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "bootcore_timeout=10".
INI_PARSER : Got VAR 'BOOTCORE_TIMEOUT' with VALUE 10
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "font=font/font.pf".
INI_PARSER : Got VAR 'FONT' with VALUE font/font.pf
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "reset_combo=0".
INI_PARSER : Got VAR 'RESET_COMBO' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "dvi_mode=0".
INI_PARSER : Got VAR 'DVI_MODE' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "video_mode=8".
INI_PARSER : Got VAR 'VIDEO_MODE' with VALUE 8
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "video_info=0".
INI_PARSER : Got VAR 'VIDEO_INFO' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "vsync_adjust=0".
INI_PARSER : Got VAR 'VSYNC_ADJUST' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "video_mode_ntsc=8".
INI_PARSER : Got VAR 'VIDEO_MODE_NTSC' with VALUE 8
INI_PARSER : line(0): "video_mode_pal=9".
INI_PARSER : Got VAR 'VIDEO_MODE_PAL' with VALUE 9
INI_PARSER : line(0): "".
INI_PARSER : line(0): "disable_usb_merge=1".
INI_PARSER : Got VAR 'DISABLE_USB_MERGE' with VALUE 1
INI_PARSER : line(4): "".
Set predefined video_mode to 8
Calculate PLL for 148.5000 MHz:
Fvco=445.500000, C=3, M=8, K=0.910000(3908420239) -> Fpix=148.500000
Set predefined video_mode to 9
Calculate PLL for 148.5000 MHz:
Fvco=445.500000, C=3, M=8, K=0.910000(3908420239) -> Fpix=148.500000
Set predefined video_mode to 8
Calculate PLL for 148.5000 MHz:
Fvco=445.500000, C=3, M=8, K=0.910000(3908420239) -> Fpix=148.500000
FileOpenEx(open) File:/media/fat/config/MENU_gamma.cfg, error: No such file or directory.
FileOpenEx(open) File:/media/fat/config/MENU_scaler.cfg, error: No such file or directory.
Send HDMI parameters:
video: 1920(1920), 88(88), 44(44), 148(148), 1080(1080), 4(4), 5(5), 36(36),
PLL: 0x4, 0x404, 0x3, 0x10000, 0x5, 0x20201, 0x9, 0x2, 0x8, 0x7, 0x7, 0xE8F5C28F, Fpix=148.500000
FileOpenEx(open) File:/media/fat/font/font.pf, error: No such file or directory.
sending keymap: 0
Loading config MENU.CFG
FileOpenEx(open) File:/media/fat/config/MENU.CFG, error: No such file or directory.
get cfgstring 0 = MENU
get cfgstring 1 = (null)
get cfgstring 2 = (null)
Switch to core frame buffer
Open up to 30 input devices.
done
read-only file system detected...done
opened 0( 0): /dev/input/event3 (289b:0003) 0 "" "raphnet.net 4nes4snes v1.5"
opened 1( 1): /dev/input/event2 (289b:0003) 0 "" "raphnet.net 4nes4snes v1.5"
opened 2( 2): /dev/input/event1 (289b:0003) 0 "" "raphnet.net 4nes4snes v1.5"
opened 3( 3): /dev/input/event0 (289b:0003) 0 "" "raphnet.net 4nes4snes v1.5"
Switch to core frame buffer
Switch to core frame buffer
Code: Select all
Minimig by Dennis van Weeren
ARM Controller by Jakub Bednarski
MiSTer code by Sorgelig
Version 200225
Looking for root device...
FileOpenEx(open) File:/media/fat/config/device.bin, error: No such file or directory.
Using SD card as a root device
Init SPI.
Identified 8BIT core
isPathDirectory(stat) path:/media/fat/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb0/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb0/games/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb1/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb1/games/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb2/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb2/games/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb3/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb3/games/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb4/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb4/games/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb5/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/../usb5/games/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/cifs/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/cifs/games/MENU, error:No such file or directory.
isPathDirectory(stat) path:/media/fat/games/MENU, error:No such file or directory.
Prefixed dir to games/MENU
Core name is "MENU"
*** Found SDRAM config: 3
** altcfg: no cfg
INI_PARSER : Start INI parser for core "MENU".
INI_PARSER : Opened file MiSTer.ini with size 4297 bytes.
INI_PARSER : line(0): "[MiSTer]".
INI_PARSER : Got SECTION 'MISTER' with ID 1
INI_PARSER : line(0): "key_menu_as_rgui=0".
INI_PARSER : Got VAR 'KEY_MENU_AS_RGUI' with VALUE 0
INI_PARSER : line(0): "forced_scandoubler=0".
INI_PARSER : Got VAR 'FORCED_SCANDOUBLER' with VALUE 0
INI_PARSER : line(0): "ypbpr=0".
INI_PARSER : Got VAR 'YPBPR' with VALUE 0
INI_PARSER : line(0): "composite_sync=0".
INI_PARSER : Got VAR 'COMPOSITE_SYNC' with VALUE 0
INI_PARSER : line(0): "vga_scaler=0".
INI_PARSER : Got VAR 'VGA_SCALER' with VALUE 0
INI_PARSER : line(0): "hdmi_audio_96k=0".
INI_PARSER : Got VAR 'HDMI_AUDIO_96K' with VALUE 0
INI_PARSER : line(0): "keyrah_mode=0x18d80002".
INI_PARSER : Got VAR 'KEYRAH_MODE' with VALUE 0x18d80002
INI_PARSER : line(0): "volumectl=1".
INI_PARSER : Got VAR 'VOLUMECTL' with VALUE 1
INI_PARSER : line(0): "vscale_mode=1".
INI_PARSER : Got VAR 'VSCALE_MODE' with VALUE 1
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "vscale_border=0".
INI_PARSER : Got VAR 'VSCALE_BORDER' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "rbf_hide_datecode=0".
INI_PARSER : Got VAR 'RBF_HIDE_DATECODE' with VALUE 0
INI_PARSER : line(0): "menu_pal=0".
INI_PARSER : Got VAR 'MENU_PAL' with VALUE 0
INI_PARSER : line(0): "hdmi_limited=0".
INI_PARSER : Got VAR 'HDMI_LIMITED' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "direct_video=0".
INI_PARSER : Got VAR 'DIRECT_VIDEO' with VALUE 0
INI_PARSER : line(0): "fb_size=0".
INI_PARSER : Got VAR 'FB_SIZE' with VALUE 0
INI_PARSER : line(0): "fb_terminal=1".
INI_PARSER : Got VAR 'FB_TERMINAL' with VALUE 1
INI_PARSER : line(0): "osd_timeout=30".
INI_PARSER : Got VAR 'OSD_TIMEOUT' with VALUE 30
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "bootcore_timeout=10".
INI_PARSER : Got VAR 'BOOTCORE_TIMEOUT' with VALUE 10
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "font=font/font.pf".
INI_PARSER : Got VAR 'FONT' with VALUE font/font.pf
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "reset_combo=0".
INI_PARSER : Got VAR 'RESET_COMBO' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "dvi_mode=0".
INI_PARSER : Got VAR 'DVI_MODE' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "video_mode=8".
INI_PARSER : Got VAR 'VIDEO_MODE' with VALUE 8
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "video_info=0".
INI_PARSER : Got VAR 'VIDEO_INFO' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "vsync_adjust=0".
INI_PARSER : Got VAR 'VSYNC_ADJUST' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "video_mode_ntsc=8".
INI_PARSER : Got VAR 'VIDEO_MODE_NTSC' with VALUE 8
INI_PARSER : line(0): "video_mode_pal=9".
INI_PARSER : Got VAR 'VIDEO_MODE_PAL' with VALUE 9
INI_PARSER : line(0): "".
INI_PARSER : line(0): "disable_usb_merge=1".
INI_PARSER : line(4): "".
Set predefined video_mode to 8
Calculate PLL for 148.5000 MHz:
Fvco=445.500000, C=3, M=8, K=0.910000(3908420239) -> Fpix=148.500000
Set predefined video_mode to 9
Calculate PLL for 148.5000 MHz:
Fvco=445.500000, C=3, M=8, K=0.910000(3908420239) -> Fpix=148.500000
Set predefined video_mode to 8
Calculate PLL for 148.5000 MHz:
Fvco=445.500000, C=3, M=8, K=0.910000(3908420239) -> Fpix=148.500000
FileOpenEx(open) File:/media/fat/config/MENU_gamma.cfg, error: No such file or directory.
FileOpenEx(open) File:/media/fat/config/MENU_scaler.cfg, error: No such file or directory.
Send HDMI parameters:
video: 1920(1920), 88(88), 44(44), 148(148), 1080(1080), 4(4), 5(5), 36(36),
PLL: 0x4, 0x404, 0x3, 0x10000, 0x5, 0x20201, 0x9, 0x2, 0x8, 0x7, 0x7, 0xE8F5C28F, Fpix=148.500000
FileOpenEx(open) File:/media/fat/font/font.pf, error: No such file or directory.
sending keymap: 0
Loading config MENU.CFG
FileOpenEx(open) File:/media/fat/config/MENU.CFG, error: No such file or directory.
get cfgstring 0 = MENU
get cfgstring 1 = (null)
get cfgstring 2 = (null)
Switch to core frame buffer
Open up to 30 input devices.
done
read-only file system detected...done
opened 0( 0): /dev/input/event3 (289b:0003) 0 "0003:289B:0003.0001" "raphnet.net 4nes4snes v1.5"
opened 1( 0): /dev/input/event2 (289b:0003) 0 "0003:289B:0003.0001" "raphnet.net 4nes4snes v1.5"
opened 2( 0): /dev/input/event1 (289b:0003) 0 "0003:289B:0003.0001" "raphnet.net 4nes4snes v1.5"
opened 3( 0): /dev/input/event0 (289b:0003) 0 "0003:289B:0003.0001" "raphnet.net 4nes4snes v1.5"
Switch to core frame buffer
Switch to core frame buffer
pFileExt = (null)
Start to scan dir: /media/fat/
Position on item:
Got 5 dir entries
Starting system message bus: done
Starting Bluetooth...Starting connman ... done.
Starting ntpd: OK
Starting ProFTPD: done
Starting sshd: OK
Starting network: *** Got SDRAM module type: 7
INFO: Video resolution: 529 x 240, fHorz = 15.7KHz, fVert = 59.8Hz, fPix = 10.00MHz
INFO: Frame time (100MHz counter): VGA = 1671559, HDMI = 1666666
Set vertical scaling to : 960
Failed to bring up wlan0.
Failed to bring up wlan1.
Re: Joystick testing thread
It seems to be 1 USB device with 4 controllers.
@artfakt can you post the output of 'cat /proc/bus/input/devices'?
@artfakt can you post the output of 'cat /proc/bus/input/devices'?
Re: Joystick testing thread
paulbnl wrote:It seems to be 1 USB device with 4 controllers.
@artfakt can you post the output of 'cat /proc/bus/input/devices'?
Code: Select all
cat /proc/bus/input/devices
I: Bus=0003 Vendor=289b Product=0003 Version=0101
N: Name="raphnet.net 4nes4snes v1.5"
P: Phys=usb-ffb40000.usb-1/input0
S: Sysfs=/devices/platform/soc/ffb40000.usb/usb1/1-1/1-1:1.0/0003:289B:0003.0001/input/input0
U: Uniq=4671
H: Handlers=js0 event0
B: PROP=0
B: EV=1b
B: KEY=ff 0 0 0 0 0 0 0 0 0
B: ABS=3
B: MSC=10
I: Bus=0003 Vendor=289b Product=0003 Version=0101
N: Name="raphnet.net 4nes4snes v1.5"
P: Phys=usb-ffb40000.usb-1/input0
S: Sysfs=/devices/platform/soc/ffb40000.usb/usb1/1-1/1-1:1.0/0003:289B:0003.0001/input/input1
U: Uniq=4671
H: Handlers=js1 event1
B: PROP=0
B: EV=1b
B: KEY=ff 0 0 0 0 0 0 0 0 0
B: ABS=3
B: MSC=10
I: Bus=0003 Vendor=289b Product=0003 Version=0101
N: Name="raphnet.net 4nes4snes v1.5"
P: Phys=usb-ffb40000.usb-1/input0
S: Sysfs=/devices/platform/soc/ffb40000.usb/usb1/1-1/1-1:1.0/0003:289B:0003.0001/input/input2
U: Uniq=4671
H: Handlers=js2 event2
B: PROP=0
B: EV=1b
B: KEY=ff 0 0 0 0 0 0 0 0 0
B: ABS=3
B: MSC=10
I: Bus=0003 Vendor=289b Product=0003 Version=0101
N: Name="raphnet.net 4nes4snes v1.5"
P: Phys=usb-ffb40000.usb-1/input0
S: Sysfs=/devices/platform/soc/ffb40000.usb/usb1/1-1/1-1:1.0/0003:289B:0003.0001/input/input3
U: Uniq=4671
H: Handlers=js3 event3
B: PROP=0
B: EV=1b
B: KEY=ff 0 0 0 0 0 0 0 0 0
B: ABS=3
B: MSC=10
I: Bus=0003 Vendor=0000 Product=0000 Version=0004
N: Name="MiSTer virtual input"
P: Phys=
S: Sysfs=/devices/virtual/input/input4
U: Uniq=
H: Handlers=sysrq kbd event4
B: PROP=0
B: EV=3
B: KEY=ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe
Re: Joystick testing thread
so all 4 devices have all identical identifications. So i don't see how to distinguish them. They look like 4 parts of the same device.artfakt wrote:paulbnl wrote:It seems to be 1 USB device with 4 controllers.
@artfakt can you post the output of 'cat /proc/bus/input/devices'?Code: Select all
cat /proc/bus/input/devices I: Bus=0003 Vendor=289b Product=0003 Version=0101 N: Name="raphnet.net 4nes4snes v1.5" P: Phys=usb-ffb40000.usb-1/input0 S: Sysfs=/devices/platform/soc/ffb40000.usb/usb1/1-1/1-1:1.0/0003:289B:0003.0001/input/input0 U: Uniq=4671 H: Handlers=js0 event0 B: PROP=0 B: EV=1b B: KEY=ff 0 0 0 0 0 0 0 0 0 B: ABS=3 B: MSC=10 I: Bus=0003 Vendor=289b Product=0003 Version=0101 N: Name="raphnet.net 4nes4snes v1.5" P: Phys=usb-ffb40000.usb-1/input0 S: Sysfs=/devices/platform/soc/ffb40000.usb/usb1/1-1/1-1:1.0/0003:289B:0003.0001/input/input1 U: Uniq=4671 H: Handlers=js1 event1 B: PROP=0 B: EV=1b B: KEY=ff 0 0 0 0 0 0 0 0 0 B: ABS=3 B: MSC=10 I: Bus=0003 Vendor=289b Product=0003 Version=0101 N: Name="raphnet.net 4nes4snes v1.5" P: Phys=usb-ffb40000.usb-1/input0 S: Sysfs=/devices/platform/soc/ffb40000.usb/usb1/1-1/1-1:1.0/0003:289B:0003.0001/input/input2 U: Uniq=4671 H: Handlers=js2 event2 B: PROP=0 B: EV=1b B: KEY=ff 0 0 0 0 0 0 0 0 0 B: ABS=3 B: MSC=10 I: Bus=0003 Vendor=289b Product=0003 Version=0101 N: Name="raphnet.net 4nes4snes v1.5" P: Phys=usb-ffb40000.usb-1/input0 S: Sysfs=/devices/platform/soc/ffb40000.usb/usb1/1-1/1-1:1.0/0003:289B:0003.0001/input/input3 U: Uniq=4671 H: Handlers=js3 event3 B: PROP=0 B: EV=1b B: KEY=ff 0 0 0 0 0 0 0 0 0 B: ABS=3 B: MSC=10 I: Bus=0003 Vendor=0000 Product=0000 Version=0004 N: Name="MiSTer virtual input" P: Phys= S: Sysfs=/devices/virtual/input/input4 U: Uniq= H: Handlers=sysrq kbd event4 B: PROP=0 B: EV=3 B: KEY=ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe
I have raphnet 2xSNES to USB converter and they looks as proper separate devices. May be there is a firmware update from raphnet to fix such issue. For me it looks like improper USB descriptor without correct splitting to sub-devices.
I've just pushed dual SNES to USB converter update based on Arduino Micro. It properly works as 2 input devices. Supports both NES and SNES gamepads including now NTT gamepad.
Re: Joystick testing thread
what i understood, collection ID is pure virtual, it doesn't come from USB descriptor. Just windows adds additional ID simply to make every device name unique.artfakt wrote:https://stackoverflow.com/questions/157 ... -parameter
So it seems to be a collection id.
Re: Joystick testing thread
Yeah that's why the option in MiSTer.ini is needed to disable USB merge for these kind of devices.Sorgelig wrote: so all 4 devices have all identical identifications. So i don't see how to distinguish them. They look like 4 parts of the same device.
Nice!Sorgelig wrote: I've just pushed dual SNES to USB converter update based on Arduino Micro. It properly works as 2 input devices. Supports both NES and SNES gamepads including now NTT gamepad.
Re: Joystick testing thread
this is with 2xSNES raphnet:
Code: Select all
opened 0( 0): /dev/input/event9 (289b:0057) 0 "0003:289B:0057.000D" "raphnet technologies Dual SNES to USB v2.2"
opened 1( 1): /dev/input/event6 (289b:0057) 0 "0003:289B:0057.000C" "raphnet technologies Dual SNES to USB v2.2"
Re: Joystick testing thread
The latest update from mister solved it! Thanks Sorg
Re: Joystick testing thread
I made a Spinner Controller with this Rotary Encoder.
https://www.amazon.de/dp/B015GYY7XU/ref ... E_SCE_dp_2


I am using a Arduino Leonardo Mini Clone with this skript (simulating mouse).
Works perfekt on Arkanoid Core.
Did not work on other cores like AY-3-8500 (Pong)/ Spy Hunter /Turbo Tag.
Are these cores only work with linear potentiometer with 10K-1M resistance?
https://www.amazon.de/dp/B015GYY7XU/ref ... E_SCE_dp_2


I am using a Arduino Leonardo Mini Clone with this skript (simulating mouse).
Code: Select all
#include <Mouse.h>
enum PinAssignments {
encoderPinA = 2,
encoderPinB = 3,
mouseLeftButton = 4,
clearButton = 8
};
volatile int encoderPos = 0;
int lastReportedPos = 1;
int encoderMove = 0;
boolean A_set = false;
boolean B_set = false;
void setup() {
pinMode(encoderPinA, INPUT);
pinMode(encoderPinB, INPUT);
pinMode(clearButton, INPUT);
pinMode(mouseLeftButton, INPUT_PULLUP);
digitalWrite(encoderPinA, HIGH); // turn on pullup resistor
digitalWrite(encoderPinB, HIGH); // turn on pullup resistor
digitalWrite(clearButton, HIGH);
// encoder pin on interrupt 0 (pin 2)
attachInterrupt(0, doEncoderA, CHANGE);
// encoder pin on interrupt 1 (pin 3)
attachInterrupt(1, doEncoderB, CHANGE);
// Serial.begin(9600);
Mouse.begin(); /*not sure if this is necessary, you'll have to test this tristan*/
}
void loop(){
if (lastReportedPos != encoderPos) {
encoderMove = (encoderPos-lastReportedPos);
//Serial.print("Index:");
//Serial.print(encoderPos, DEC);
//Serial.print("--encoderMove:");
//Serial.print(encoderMove, DEC);
//Serial.println();
if (digitalRead(clearButton) == LOW) {
encoderPos = 0;
}
if ((encoderMove<=127) && (encoderMove>=-127))
Mouse.move(encoderMove, 0, 0);
else
if (encoderMove>127)
Mouse.move(127, 0, 0);
else
Mouse.move(-127, 0, 0);
lastReportedPos = encoderPos;
}
// read the mouse button and click or not click:
// if the mouse button is pressed:
if (digitalRead(mouseLeftButton) == LOW) {
// if the mouse is not pressed, press it:
if (!Mouse.isPressed(MOUSE_LEFT)) {
Mouse.press(MOUSE_LEFT);
//delay(400); // delay to enable single and double-click
}
}
// else the mouse button is not pressed:
else {
// if the mouse is pressed, release it:
if (Mouse.isPressed(MOUSE_LEFT)) {
Mouse.release(MOUSE_LEFT);
}
}
delay(10);
}
// Interrupt on A changing state
void doEncoderA(){
// Test transition
A_set = digitalRead(encoderPinA) == HIGH;
// and adjust counter + if A leads B
encoderPos += (A_set != B_set) ? +1 : -1;
}
// Interrupt on B changing state
void doEncoderB(){
// Test transition
B_set = digitalRead(encoderPinB) == HIGH;
// and adjust counter + if B follows A
encoderPos += (A_set == B_set) ? +1 : -1;
}
Did not work on other cores like AY-3-8500 (Pong)/ Spy Hunter /Turbo Tag.
Are these cores only work with linear potentiometer with 10K-1M resistance?
Re: Joystick testing thread
Just wanted to report my experience with MickGyver's DaemonBite-Arcade-Encoder project on the Aurdino Leonardo.
Tried it with Sanwa JLF and Sanwa pushbuttons on the Mister. USB Polling rate configured to 1.
I doesn't work very well. It has the same problem as some other USB Controllers. When you try remap / configure the joystick, it double presses many times. It is like if it was "hyper-sensitive". Moving around the Menu is nearly imposible. I do not know if I'm doing anything wrong, but I think not.
I had the same controler working with a Xin Mo encoder without problems. I haven't changed anything apart from the encoder itself.
Just wanted to report in case same happens to others.
Tried it with Sanwa JLF and Sanwa pushbuttons on the Mister. USB Polling rate configured to 1.
I doesn't work very well. It has the same problem as some other USB Controllers. When you try remap / configure the joystick, it double presses many times. It is like if it was "hyper-sensitive". Moving around the Menu is nearly imposible. I do not know if I'm doing anything wrong, but I think not.
I had the same controler working with a Xin Mo encoder without problems. I haven't changed anything apart from the encoder itself.
Just wanted to report in case same happens to others.
Re: Joystick testing thread
Hi. Ok, so found solution. My bad!!!
You need to chanage #define DEBOUNCE 0 to #define DEBOUNCE 1 and recompile.
You need to chanage #define DEBOUNCE 0 to #define DEBOUNCE 1 and recompile.
Re: Joystick testing thread
Just yesterday i've changed API for Spinner/Paddle. You have to update mrSpinner firmware, Main, and cores using the spinner/paddle. All are released yesterday.SegaMan wrote: Works perfekt on Arkanoid Core.
Did not work on other cores like AY-3-8500 (Pong)/ Spy Hunter /Turbo Tag.
Are these cores only work with linear potentiometer with 10K-1M resistance?
P.S.: Spinner doesn't use mouse emulation. You have to use my firmware for spinner/paddle if you want to use the spinner/paddle with cores.
Re: Joystick testing thread
Thx, will try! 

Re: Joystick testing thread
Btw, for long term use i suggest to solder spinner and button. Header will give you instability after some time due to oxidisation.
Re: Joystick testing thread
Arduino Leonardo Pinout Question.
When using one Spinner.
Should i use TXO/RXI to wire the Spinner or can i also use Pin 2/ Pin7 vor Spinner_A and Spinner_B?
Get a error message when upload the code to my arduino leonardo board.
i am a arduino noob sry 
edit:
Get it work!
This files are needed too:
https://github.com/dxinteractive/Respon ... master/src
And i have to edit <ResponsiveAnalogRead.h> to "ResponsiveAnalogRead.h"
When using one Spinner.
Should i use TXO/RXI to wire the Spinner or can i also use Pin 2/ Pin7 vor Spinner_A and Spinner_B?
Get a error message when upload the code to my arduino leonardo board.
Code: Select all
Arduino: 1.8.12 (Mac OS X), Board: "Arduino Leonardo"
PaddleTwoControllersUSB:116:10: fatal error: ResponsiveAnalogRead.h: No such file or directory
#include <ResponsiveAnalogRead.h>
^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
exit status 1
ResponsiveAnalogRead.h: No such file or directory
Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.

edit:
Get it work!
This files are needed too:
https://github.com/dxinteractive/Respon ... master/src
And i have to edit <ResponsiveAnalogRead.h> to "ResponsiveAnalogRead.h"
Last edited by SegaMan on Wed Mar 04, 2020 2:00 pm, edited 1 time in total.
Re: Joystick testing thread
Anyone can point me an example of this? I want to replace my old and buggy XinMo adapter of my arcade machine (2 players) and I want a better solution. Thanks!Sorgelig wrote:it's a pity manufacturer cannot invest his money to develop correct USB adapter.luke79 wrote:However it works very well for one player.
A pity mister can't map 2 commands sets, one per player, for one USB device.
Enthusiasts doing similar converter for free.
Re: Joystick testing thread
For arcades with many buttons currently there is only single device per arduino:
https://github.com/MickGyver/DaemonBite-Arcade-Encoder
So you need 2 arduino micro boards for 2 joysticks.
Technically it's possible to implement 2 arcade joysticks in single arduino board as it's already done for paddles and spinners adapters. Since arduino micro has limited amount of pins, it will require 2 common pins for each joystick. So it's definitely doable. I'm thinking to make such adapter, but i'm not the fan of arcade cabinets so i have no such arcade controllers to wire.. May be some time in the future, or may be witchmaster will make such adapter.
https://github.com/MickGyver/DaemonBite-Arcade-Encoder
So you need 2 arduino micro boards for 2 joysticks.
Technically it's possible to implement 2 arcade joysticks in single arduino board as it's already done for paddles and spinners adapters. Since arduino micro has limited amount of pins, it will require 2 common pins for each joystick. So it's definitely doable. I'm thinking to make such adapter, but i'm not the fan of arcade cabinets so i have no such arcade controllers to wire.. May be some time in the future, or may be witchmaster will make such adapter.
Re: Joystick testing thread
Actually you should go to library manager option in arduino IDE, find ResponsiveAnalogRead library there and install. Then it will work without editing the file.SegaMan wrote: Get it work!
This files are needed too:
https://github.com/dxinteractive/Respon ... master/src
And i have to edit <ResponsiveAnalogRead.h> to "ResponsiveAnalogRead.h"
If you use only spinner, then you can simply remove paddle code and requirement of this library/header. I will add define to use spinner-only.
My adapter supports 2 spinners. So you can use either TXO/RXI or D2/D7 for single spinner. Or connect 2 spinners at the same time.SegaMan wrote:Should i use TXO/RXI to wire the Spinner or can i also use Pin 2/ Pin7 vor Spinner_A and Spinner_B?
Re: Joystick testing thread
Well I did it differently on my arcade controller. Since my controller is a mash of various input devicesSorgelig wrote:For arcades with many buttons currently there is only single device per arduino:
https://github.com/MickGyver/DaemonBite-Arcade-Encoder
So you need 2 arduino micro boards for 2 joysticks.
Technically it's possible to implement 2 arcade joysticks in single arduino board as it's already done for paddles and spinners adapters. Since arduino micro has limited amount of pins, it will require 2 common pins for each joystick. So it's definitely doable. I'm thinking to make such adapter, but i'm not the fan of arcade cabinets so i have no such arcade controllers to wire.. May be some time in the future, or may be witchmaster will make such adapter.
a) An Ultimarc board which covers two digital sticks and around 18 buttons as keyboard events, and a paddle as mouse x
b) 2 analog sticks which register themselves as controllers with additional buttons
c) a trackball as mouse
d) additional paddle as mouse y
Now this mix needs to expose 2 gamepads one mouse with appropriate buttons and additional keyboard events but not 1:1 more like an m:n setup.
Now all this now works on mister. I simply pushed the signals into a raspberry pi which is running an input multiplexer with a serial signal driver (self written stuff) and then the multiplexer pushes the signals appropriately into two teensies, which then deliver a keyboard, a mouse with two buttons and two gamepads.
This setup works like a charm although it is a little bit of overkill, but it is very flexible, given that changing the mapping means just to change the config file of the multiplexer.
I also thought about trying to shove the gamepad side of things into one teensy, but given that I am new to microcontroller programming, it was not worth my time to figure this out so I simply used two uart ports on the pi4 and two microcontrollers to pull it off.
This setup works great with most of the cores, including paddle games on the atari cores and on arkanoid, it fails however to identify the paddles for instance on pong, where instead of using mouse x and mouse y the analog sticks are used.
Any idea why? Guess the core does not really use the mouse signals of x and y for paddle 1 and 2, right?
Re: Joystick testing thread
This is too overcomplicated for a controller adapter. A single Teensy can do the whole job.werpu wrote: Well I did it differently on my arcade controller. Since my controller is a mash of various input devices
a) An Ultimarc board which covers two digital sticks and around 18 buttons as keyboard events, and a paddle as mouse x
b) 2 analog sticks which register themselves as controllers with additional buttons
c) a trackball as mouse
d) additional paddle as mouse y
Now this mix needs to expose 2 gamepads one mouse with appropriate buttons and additional keyboard events but not 1:1 more like an m:n setup.
Now all this now works on mister. I simply pushed the signals into a raspberry pi which is running an input multiplexer with a serial signal driver (self written stuff) and then the multiplexer pushes the signals appropriately into two teensies which ten deliver a keyboard, a mouse with two buttons and two gamepads.
This setup works like a charm although it is a little bit of overkill, but it is very flexible, given that changing the mapping means just to change the config file of the multiplexer.
I also thought about trying to shove the gamepad side of things into one teensy, but given that I am new to microcontroller programming, it was not worth my time to figure this out so I simply used two uart ports on the pi4 and two microcontrollers to pull it off.
It's only a matter of available GPIOs. Teensy 3.2 has great amount of GPIOs. If not enough then Teensy 3.5 has even more. both 3.1 and 3.5 are 5V TTL tolerant if it's matter. Teensy can implement mouse+kbd+joystick at the same time although its USB stack is less flexible than AVR USB stack.
Not sure if paddle as a mouse is great idea. Paddle has finite move around 270 degree while mouse has no limits.
Re: Joystick testing thread
Yes right for a single mouse and keybard and stick. I could not find any decent information on how to emulate two gamepads on one teensy, the teensy itself has defintiely enough power, given that some people even emulate a full blown ST with it. Unfortunately also the arcade controller delivers its signals over usb3, which also would mean having to add a usb host extension to the teensy and then adding/rewriting the mapper for the teensy in c as well.Sorgelig wrote: This is too overcomplicated for a controller adapter. A single Teensy can do the whole job.
It's only a matter of available GPIOs. Teensy 3.2 has great amount of GPIOs. If not enough then Teensy 3.5 has even more. both 3.1 and 3.5 are 5V TTL tolerant if it's matter. Teensy can implement mouse+kbd+joystick at the same time although its USB stack is less flexible than AVR USB stack.
Not sure if paddle as a mouse is great idea. Paddle has finite move around 270 degree while mouse has no limits.
Not really feasible in my case from a hardware availablity and time POV.
As for mouse paddles.. unfortunately thats how the paddles register themselves into the usb chain from the ultimarc boards. There is no way around that in my case

and I did not want to rewire and do everything over a set of teensies. I am past that point given that I was working for a full year on my arcade controller.
The paddles also have inifnite move they can be moved endlessly (not potentiometer based ones, different systems, I guess optical or magnetooptical). Sort of like the knobs on a AV receiver.