English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   request.UAE Wishlist (https://eab.abime.net/forumdisplay.php?f=56)
-   -   Direct USB support in WinUAE? (https://eab.abime.net/showthread.php?t=82131)

Aegis 23 March 2016 18:23

Direct USB support in WinUAE?
 
Been meaning to post this for ages :)

Toni - how feasible/interesting do you think it would be for direct USB support via an emulated Deneb (or similar)?

I'm thinking the way something like VMWare works where it disconnects the device from the host OS and passes it on to the client?

Deneb support would in theory work for both 3.x and 4.x no? Then we could potentially use usb gamepads, tablets, MIDI devices, flash drives etc. (assuming the drivers are available).

I've got no shortage of things to test :D

Toni Wilen 23 March 2016 18:50

Same problem as with virtual host network card. Find working, stable, license compatible, signed Windows driver that does it and has good enough documentation.

Aegis 23 March 2016 19:06

First thing I found that looks viable: http://libusb.info/ LGPL? (Sorry, not open-source license savvy).

Toni Wilen 23 March 2016 20:04

Ok, so that is already solved problem. Maybe. Next bigger problem: USB is extremely uninteresting for me.

-> Not going to happen for free and without full specs of Amiga USB hardware.

Aegis 23 March 2016 20:25

Quote:

Originally Posted by Toni Wilen (Post 1079731)
Ok, so that is already solved problem. Maybe. Next bigger problem: USB is extremely uninteresting for me.

-> Not going to happen for free and without full specs of Amiga USB hardware.

Ahaha! Ok - those next two may take a little longer - let me get back to you ;)

*Edit* here's some basic info: http://amiga.resource.cx/exp/deneb (Zorro III)

There's also the Highway: http://amiga.resource.cx/exp/highway (Zorro II, non-FPGA)

Toni Wilen 24 March 2016 08:30

I am not going to do any reverse-engineering whatsoever for as boring (and totally useless for me) thing as USB.

I require FULL specs and support from manufacturer. Or someone else need to volunteer to do the reversing stuff.

As usual it also needs to be "all OS" supported.

Aegis 24 March 2016 11:07

I'm speaking to the hardware developer at the moment - he's happy to help and has the full specs available for you but it depends on getting the permission of the Poseidon software developer - more news if/when I have it :)

Deneb is Zorro II/III with 3.x/4.x support and would also work with AROS 68k if they recompile the AROS Poseidon port for 68k (Olaf is looking into it).

Gilloo 24 March 2016 15:08

Don't bother Toni with usb on Windows :)
The better thing to do is to use a pass thru via an external dll and libusb (or libusbX) directly.
Like that:

http://aminet.net/package/driver/other/anaiis_hostusb

of course it *works* (with a lot of limitations) with ANAIIS, not Poseidon.

The only use is gamepad with return force in amiga games.
SJA_RumbleSetSlowMotor, SJA_RumbleSetFastMotor and SJA_RumbleOff tags of lowlevel.library extensions.

Toni Wilen 24 March 2016 15:19

I never said USB hardware emulation won't happen. I only said it is extremely boring and useless for me but it most likely WILL happen someday. (Just like PPC happened many, many years after I said something else..)

It is the only way to be "all OS" compatible, including NetBSD, Linux etc.. It is the correct way from emulation point of view, not necessarily the most optimal way :)

Toni Wilen 24 March 2016 15:56

Quote:

Originally Posted by Aegis (Post 1079842)
I'm speaking to the hardware developer at the moment - he's happy to help and has the full specs available for you but it depends on getting the permission of the Poseidon software developer - more news if/when I have it :)

I don't think I want to touch any USB stacks (too big black box, even with a source..) but some debugging/testing program that directly accesses the USB card and returns some diagnostics information (connected USB device type and other information) is also required.

btw, you (I don't mean OP only) should have already learned that NO answer from me only means "NO! at this moment, it is not necessarily 'NO!' many months or year(s) later.." or something like that...

wawa 25 March 2016 02:18

well, poseidon actually logs the usb devices and information about them (i dont remember to what extent), as far as they become viisible on usb port. poseidon is included in aros rom/usb and builds for 68k afair. i have a deneb laying around i have not used for some time, busy with other stuff, but i could put it back in the machine to test, whether with aros or aos, as soon as i get back to berlin.

Aegis 26 March 2016 16:21

Quote:

Originally Posted by Toni Wilen (Post 1079916)
I don't think I want to touch any USB stacks (too big black box, even with a source..) but some debugging/testing program that directly accesses the USB card and returns some diagnostics information (connected USB device type and other information) is also required.

I'm pretty sure the devs can help you with that. I know you're busy with 3.3.0 at the moment but I've sent you an email with the (positive) responses I've had from the hardware and software developers - hopefully my investigations will be of some use if/when you decide to take a look at USB emulation :)

kolla 13 June 2016 00:40

Why not just ... http://usbip.sourceforge.net - use for example a raspberry pi as USB host controller from any networked Amiga.

Toni Wilen 29 December 2016 16:33

3.4 is out, now is the best time to find Amiga USB hardware specs before I lose too much interest :)

There was some talk about Deneb specs in early 2016 but not much happened. (DMA capability makes this optimal choice for emulation)

Locutus 29 December 2016 18:14

I just took a quick look in the AROS tree for what all is included from Poseidon and its a bit of a downer.

The only host drivers included are for PCI attached *HCI controllers. Not terribly interesting. (I assume that all real Amiga hardware host drivers were contributed and thus didn't fall under Chris Hodges' ownership)

There is a virtual usb driver (didn't read through it, my coffee break is only that long) which might make a interesting starting point but that would also require writing a new Poseidon host class 'fun'.

So someone will have to write the owner of a USB Poseidon host class and ask for GPL'd code, good luck :-)

Toni Wilen 29 December 2016 19:13

This has "nothing" to do with drivers or Poseidon. Hardware emulation = existing drivers work.

Locutus 29 December 2016 19:51

Well yes/no....... if there were a host driver (for say, the algor) with some readable code and heavens forbid some hardware documentation in the tree it would definitely make life easier then not having any hardware docs.

Edit: i assume your idea is to write a good-enough emulation of a preexisting real-Amiga USB controller.
Edit2: People keep yelling 'but there is AROS code!' so i wanted to know what all was actually included.

Toni Wilen 30 December 2016 09:30

Quote:

Originally Posted by Locutus (Post 1130854)
Edit: i assume your idea is to write a good-enough emulation of a preexisting real-Amiga USB controller.

Exactly. It must be existing very well supported USB controller = controller must have drivers for all Amiga compatible operating systems. No one writes multiple drivers for "new" devices.

Locutus 30 December 2016 10:00

That essentially only leaves the E3B Highway and Subway which are supported by Poseidon and ANAIIS, NetBSD/Linux don't support native USB hardware anyway.

Of those the Highway would be preferable as Subway isn't autoconfig hardware.

Toni Wilen 30 December 2016 10:57

What exactly does different controllers support? Information availability seems to be not that good..

I'd still prefer DMA capability because it will make data transfers "instant" in emulation, PIO only wastes CPU time, both emulated and emulator's CPU time. (USB hardware level speed capability is mostly irrelevant)


All times are GMT +2. The time now is 03:06.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.08088 seconds with 11 queries