|
Post by teller on Jan 29, 2020 20:52:18 GMT
Hi, I tried to connect my Ultimate PC Interface for Classic Consoles (http://www.intellivision.us/intvgames/interface/interface.php) on my C64 Maxi. The interface supports many olden db9 controllers such as the Intellivision, Atari 2600, MSX... Unfortunately it doesn't get recognized on my Maxi so I thought to add it on the gamecontrollerdb.txt using UART mode.
I connected my Ultimate on my Raspberry Pi to find out the proper DeviceID and naming: 03000000d804000073f6000011010000,Microchip Technology Inc. Ultimate 2,
Unfortunately I have no idea what to put after the comma so I took the same code from the Logitech F710 Gamepad which works well actually and is well known:
03000000d804000073f6000011010000,Microchip Technology Inc. Ultimate 2,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
After connecting it to the C64 Maxi the Ultimate 2 still doesn't get recognized.
Actually it does work very well on my Raspberry Pi, on Windows and on my MiSTer FPGA device so it should also work on the C64 Maxi.
Maybe some of you do have a solution to get it running so that I can use my olden DB9 Joysticks on the C64 Maxi.
Thanks for your help!
|
|
|
Post by jj0 on Jan 29, 2020 21:31:24 GMT
|
|
|
Post by teller on Jan 30, 2020 22:48:52 GMT
Thanks to your advice the Ultimate 2 Interface gets finally recognized on the THEC64 Maxi. The fire button(s) are working but not up/down/left/right directions. I used the SDL Gamepad Tool and could find out the correct mappings.
Very important: The DeviceID on Windows isn't the same as on Linux, so in my case I had to use a Raspberry Pi to find out the right DeviceID. I used Retropie and mapped the Ultimate 2 and copied the 32 digit device number from the 'es_input.cfg'.
I tried both methods: leftx:a0,lefty:a1 (Analog) dpup:-a1,dpdown:+a1,dpleft:-a0,dpright:+a0 (DPAD)
03000000d804000073f6000011010000,Ultimate 2,righttrigger:b0,lefttrigger:b7,leftx:a0,lefty:a1,platform:Linux,
03000000d804000073f6000011010000,Ultimate 2,righttrigger:b0,lefttrigger:b7,dpup:-a1,dpdown:+a1,dpleft:-a0,dpright:+a0,platform:Linux,
I also doublechecked with this Online HTML5 Gamepad Tester (https://html5gamepad.com/) and compared the axis directions and numbers.
I don't why the directions aren't working on THE64 Maxi but I will find out.
Btw for all who have a Sega Megadrive/Genesis Mini, I could get the 3 Button USB controller running. here is the code you can add:
03000000a30c00002500000011010000,Sega Megadrive Mini 3 Button Controller,a:b5,b:b1,righttrigger:b2,start:b9,dpup:-a4,dpdown:+a4,dpleft:-a3,dpright:+a3,platform:Linux,
|
|
|
Post by jj0 on Jan 31, 2020 18:43:39 GMT
Good advice on the USB id being different on Windows and Linux. Weird that there are two DB9 to USB Joystick converters that don't work. I don't know what direction keywords you have tried in the gamecontrollerdb.txt, but as per my post in the other thread you could try 'leftstick' and 'rightstick', maybe these will work?
|
|
|
Post by teller on Jan 31, 2020 19:26:54 GMT
thanks, I tried 'leftstick' and 'rightstick' but don't know what to put afterwards.
all of these won't work: leftx:a0,lefty:a1 rightx:a0,righty:a1 dpup:-a1,dpdown:+a1,dpleft:-a0,dpright:+a0
I also tried a2,a3,a4, but the gamepad tool is showing a1 and a0 only so theoretically I should work like so. Maybe it doesn't work because there are not enough mapped buttons but then why the fire button is working?
Maybe I have to map the Ultimate in the Intellivison controller mode, there is a so called 'AutoSense' mode so if I plug a Atari Joystick and press Fire while connecting it changes to Joystick mode so the mapping behaves differently.
|
|
|
Post by jj0 on Jan 31, 2020 20:10:20 GMT
I'd guess leftstick:a0,rightstick:a1 just to see what happens. Or try assigning the button to one of the directions, just to see if any of them actually register. E.g. leftx:b0 and nothing else to see if something moves left when you press the button.
|
|
|
Post by teller on Jan 31, 2020 20:11:26 GMT
I've found out! dpup:b16,dpdown:b17,dpleft:b18,dpright:b19
Very weird mapping!
It doesn't make sense, I can't use this because only b0,b7,a0 and a1 are available for mapping in joystick mode.
|
|
|
Post by jj0 on Jan 31, 2020 21:33:41 GMT
I've found out! dpup:b16,dpdown:b17,dpleft:b18,dpright:b19 Very wierd mapping! It doesn't make sense, I can't use this because only b0,b7,a0 and a1 are available for mapping in joystick mode. How did you find out? And what do you mean when you say only b0,b7,a0 and a1 are available for mapping in joystick mode?
|
|
|
Post by teller on Jan 31, 2020 22:11:51 GMT
The Ultimate is a very complicated and strange interface because it has like different presets. If i use the Intellivision Flashback controller and press 0 during connecting to USB the interface has completely different keys available and as you may know the Intellivision had a huge numeric keypad. In Joystick mode I need to press the firebutton while connecting to USB and after that only B0, B7 and A1 & A0 are available for mapping. But as mentioned above the axis directions won't get recognized on THEC64 Maxi. Therefore I cannot use the Joystick mode because B16-B19 aren't available. It's complicated. Maybe I'll buy another compatible adapter or make one myself from the start.
|
|
|
Post by jj0 on Jan 31, 2020 22:55:24 GMT
Ah, I get it now. So you can control TheC64 games with the Intellivision Flashback controller (however cumbersome that might be)? In Joystick mode, did you try the 'evtest' program from the other thread to see if the joystick events are seen at the kernel level? I suspect it's only the emulator that doesn't see it.
|
|
|
Post by teller on Jan 31, 2020 23:12:03 GMT
In which directory do I have to copy the 'evtest' on my Maxi? I have root access.
|
|
|
Post by jj0 on Feb 1, 2020 7:16:42 GMT
In which directory do I have to copy the 'evtest' on my Maxi? I have root access. You can run it directly from the USB drive. E.g. if the USB drive is mounted at /mnt just run: # /mnt/evtest You can also copy it to /usr/bin. Then to be sure it is executable and then run it do a: # chmod +x /usr/bin/evtest # evtest
|
|
|
Post by teller on Feb 1, 2020 11:33:43 GMT
Events 4 & 5 are working fine, also the axis. Don't know why there are 3 events in total. I tried event 3 but there were no test results.
# /mnt/evtest No device specified, trying to scan all of /dev/input/event* Available devices: /dev/input/event0: RGL Multi Function Power Button /dev/input/event1: THEC64 Keyboard /dev/input/event2: THEC64 Keyboard /dev/input/event3: Microchip Technology Inc. Ultimate 2 /dev/input/event4: Microchip Technology Inc. Ultimate 2 /dev/input/event5: Microchip Technology Inc. Ultimate 2 Select the device event number [0-5]: 4 Input driver version is 1.0.1 Input device ID: bus 0x3 vendor 0x4d8 product 0xf673 version 0x111 Input device name: "Microchip Technology Inc. Ultimate 2" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 288 (BTN_TRIGGER) Event code 289 (BTN_THUMB) Event code 290 (BTN_THUMB2) Event code 291 (BTN_TOP) Event code 292 (BTN_TOP2) Event code 293 (BTN_PINKIE) Event code 294 (BTN_BASE) Event code 295 (BTN_BASE2) Event code 296 (BTN_BASE3) Event code 297 (BTN_BASE4) Event code 298 (BTN_BASE5) Event code 299 (BTN_BASE6) Event code 300 (?) Event code 301 (?) Event code 302 (?) Event code 303 (BTN_DEAD) Event code 720 (BTN_TRIGGER_HAPPY17) Event code 721 (BTN_TRIGGER_HAPPY18) Event code 722 (BTN_TRIGGER_HAPPY19) Event code 723 (BTN_TRIGGER_HAPPY20) Event code 724 (BTN_TRIGGER_HAPPY21) Event code 725 (BTN_TRIGGER_HAPPY22) Event code 726 (BTN_TRIGGER_HAPPY23) Event code 727 (BTN_TRIGGER_HAPPY24) Event type 3 (EV_ABS) Event code 0 (ABS_X) Value 0 Min -127 Max 127 Flat 15 Event code 1 (ABS_Y) Value 0 Min -127 Max 127 Flat 15 Event type 4 (EV_MSC) Event code 4 (MSC_SCAN) Properties: Testing ... (interrupt to exit) Event: time 942.871418, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001 Event: time 942.871425, type 1 (EV_KEY), code 288 (BTN_TRIGGER), value 1 Event: time 942.871530, -------------- EV_SYN ------------ Event: time 943.115528, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001 Event: time 943.115539, type 1 (EV_KEY), code 288 (BTN_TRIGGER), value 0 Event: time 943.115654, -------------- EV_SYN ------------ Event: time 943.858469, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90008 Event: time 943.858476, type 1 (EV_KEY), code 295 (BTN_BASE2), value 1 Event: time 943.858551, -------------- EV_SYN ------------ Event: time 944.196524, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90008 Event: time 944.196535, type 1 (EV_KEY), code 295 (BTN_BASE2), value 0 Event: time 944.196609, -------------- EV_SYN ------------ Event: time 945.542412, type 3 (EV_ABS), code 1 (ABS_Y), value -127 Event: time 945.542574, -------------- EV_SYN ------------ Event: time 945.720383, type 3 (EV_ABS), code 1 (ABS_Y), value 0 Event: time 945.720529, -------------- EV_SYN ------------ Event: time 946.783380, type 3 (EV_ABS), code 1 (ABS_Y), value 127 Event: time 946.783528, -------------- EV_SYN ------------ Event: time 947.026389, type 3 (EV_ABS), code 1 (ABS_Y), value 0 Event: time 947.026548, -------------- EV_SYN ------------ Event: time 954.145389, type 3 (EV_ABS), code 0 (ABS_X), value -127 Event: time 954.145553, -------------- EV_SYN ------------ Event: time 954.285369, type 3 (EV_ABS), code 0 (ABS_X), value 0 Event: time 954.285518, -------------- EV_SYN ------------ Event: time 955.219382, type 3 (EV_ABS), code 0 (ABS_X), value 127 Event: time 955.219533, -------------- EV_SYN ------------ Event: time 955.351369, type 3 (EV_ABS), code 0 (ABS_X), value 0 Event: time 955.351519, -------------- EV_SYN ------------
|
|
|
Post by MeneerJansen on Aug 26, 2020 15:50:51 GMT
Thanks to your advice the Ultimate 2 Interface gets finally recognized on the THEC64 Maxi. The fire button(s) are working but not up/down/left/right directions. I used the SDL Gamepad Tool and could find out the correct mappings. Very important: The DeviceID on Windows isn't the same as on Linux, so in my case I had to use a Raspberry Pi to find out the right DeviceID. I used Retropie and mapped the Ultimate 2 and copied the 32 digit device number from the 'es_input.cfg'. I tried both methods: leftx:a0,lefty:a1 (Analog) dpup:-a1,dpdown:+a1,dpleft:-a0,dpright:+a0 (DPAD) 03000000d804000073f6000011010000,Ultimate 2,righttrigger:b0,lefttrigger:b7,leftx:a0,lefty:a1,platform:Linux, 03000000d804000073f6000011010000,Ultimate 2,righttrigger:b0,lefttrigger:b7,dpup:-a1,dpdown:+a1,dpleft:-a0,dpright:+a0,platform:Linux, I also doublechecked with this Online HTML5 Gamepad Tester (https://html5gamepad.com/) and compared the axis directions and numbers. I don't why the directions aren't working on THE64 Maxi but I will find out. Btw for all who have a Sega Megadrive/Genesis Mini, I could get the 3 Button USB controller running. here is the code you can add: 03000000a30c00002500000011010000,Sega Megadrive Mini 3 Button Controller,a:b5,b:b1,righttrigger:b2,start:b9,dpup:-a4,dpdown:+a4,dpleft:-a3,dpright:+a3,platform:Linux, I had the same problem. Turns out I used captol letters in the deviceID. That can't be your problem though, you're using lower case and one button works. Did you solve the problem in the end? Does the "Ultimate 2 Interface" have two axis' perhaps? In Linux (or the X-Windows Mod which is Linux on TheC64) you can check axis, buttons etc. with the command: jstest /dev/input/js0
Good luck! P.S. I bought the DB9 to USB adapter from Monster Joysticks and got The C64 Maxi to work with my Atari 2600 joystick from 1983.
|
|