Browsing this Thread:
1 Anonymous Users
|
Re: USB joystick and posseidon
|
||||
|---|---|---|---|---|
|
Home away from home
![]() |
Dizzy: Hehe :) Great work. What are you drinking? Finlandia :D
Posted on: 2018/9/29 20:33
|
|||
|
www.aspireos.com
|
||||
|
||||
|
Re: USB joystick and posseidon
|
||||
|---|---|---|---|---|
|
Home away from home
![]() |
And here's ofcourse a video about it...
Video EDIT: Think it's better to stop committing any more source code as I'm drunk as a monkey... and it's not my personal repository, as I've been told... IGNITE
Posted on: 2018/9/29 16:38
|
|||
|
||||
|
Re: USB joystick and posseidon
|
||||
|---|---|---|---|---|
|
Home away from home
![]() |
For the lowlevel problem I'll see if there's anything that comes up when I get to that point that I'll try to output data to something.
But in the meanwhile, I need to distinguish between wireless and wired controller. I think I know where it is informed (couple of suspects at the moment), but I need some information from controllers other than Logitech F710 or Logitech F310. My first suspect is that it is in the XInput descriptor that Linux doesn't parse on lsusb command but shows as numbers. If anyone has access to Linux setup and some XBox wired/wireless controllers I'd be interested on the lsusb output. EDIT: Found one place on net, let's see if it has what I need... https://github.com/linuxhw/LsUSB/search?p=2&q=xinput&unscoped_q=xinput EDIT: Nope! It wasn't there... (EDIT: You are really messed in the head right now, you know F710 and F310 has the same XInput descriptor) might be on that other location... EDIT: Found out that we can get a bitmask for all the inputs on a XInput gamepad, haven't seen that mentioned anywhere. :)
Posted on: 2018/9/29 13:02
Edited by DizzyOfCRN on 2018/9/29 14:36:25
Edited by DizzyOfCRN on 2018/9/29 19:28:26 Edited by DizzyOfCRN on 2018/9/29 19:31:28 |
|||
|
||||
|
Re: USB joystick and posseidon
|
||||
|---|---|---|---|---|
|
Home away from home
![]() |
Dizzy: What you wrote about 2 controllers is probably right. It is something wrong there. I can not get 2 player or 2 joysticks to work on anything. I know I configure everything correct with unit 1 and 0 in Trident, but only unit 1 seams to work correct.
Posted on: 2018/9/28 21:05
|
|||
|
www.aspireos.com
|
||||
|
||||
|
Re: USB joystick and posseidon
|
||||
|---|---|---|---|---|
|
Home away from home
![]() |
Looks cool!
![]()
Posted on: 2018/9/28 15:08
|
|||
|
||||
|
Re: USB joystick and posseidon
|
||||
|---|---|---|---|---|
|
Home away from home
![]() |
I've enabled some rumble effects on the code. The intensity should vary according to the left thumb stick.
arosx.class AbiV1.i386 Works for Logitech F710 at least, not sure if the class even shows any output on other XInput gamepads... A Video...
Posted on: 2018/9/28 14:30
|
|||
|
||||
|
Re: USB joystick and posseidon
|
||||
|---|---|---|---|---|
|
Home away from home
![]() |
Got back from work and the Poseidon is much more clever than what I was afraid.
It tries to patch the lowlevel.library for every device(interface) but does so only once and stores it at the class base. It also tries to patch it with the same install patch code function when DOS is available (might mean that AROS has opened at least the boot-up shell). The patched function first reads value from the original lowlevel function and overwrites, merges or disables it with ALL interfaces it has in turn. I might be a bit tired but something does not look right...
result = AROS_CALL1(ULONG, nh->nh_LLOldReadJoyPort, AROS_LCA(ULONG, port, D0), struct Library *, nh->nh_LowLevelBase);
Pseudo code: 0: get result from original function 1: get interface mode for writing the data and the data 2: apply the data over the result in which way the mode describes it 3: loop to 1 while there are interfaces still left. If one sets two different joysticks to the same ll-port and one of them is overwrite then the value depends on who got there first... also there might be a third stick, not intended to be used but the user forgot to go the settings and disable it. On Trident it seems possible to map interfaces to the same ll-port. Merge would be safe but overwrite is touch and go.
Posted on: 2018/9/28 11:34
|
|||
|
||||
|
Re: USB joystick and posseidon
|
||||
|---|---|---|---|---|
|
Home away from home
![]() |
The merger idea sounds good to me. The only extra info needed is which class occupied which lowlevel ports.
Posted on: 2018/9/28 10:23
|
|||
|
My AROS&MorphOS ports
Arguments that explain everything... explain nothing. |
||||
|
||||
|
Re: USB joystick and posseidon
|
||||
|---|---|---|---|---|
|
Home away from home
![]() |
There are few options that come to mind.
Firstly don't patch the lowlevel.library directly in hid.class, but send the information to a "merger" that has patched the lowlevel.library. arosx.class could also safely send it's outputs there then Second aproach is bit hacky... make some lowlevel compatible arosx_ll.library and alter lowlevel.library's name in the game file(s) in hex editor to that :)
Posted on: 2018/9/28 9:14
|
|||
|
||||
You can view topic.
You cannot start a new topic.
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.






