My brother bought one of these adapters for the Spectrum + I fitted out with a Raspberry pi (http://www.flickr.com/photos/113610905@ ... 510524445/)
Anyway, we then discovered that it didn't work on the PI so he set me the challenge to get it working. AND I DID!!!

The basic solution is as follows. Download the latest source code for raspbian from git hub and get everything ready to compile. But before doing so edit the hid-input.c file which is located in /drivers/hid/hid-input.c (Within the source code directory).
Now search in the file for "out-of-range". You will see the following:
Code: Select all
if ((field->flags & HID_MAIN_ITEM_VARIABLE) &&
(value < field->logical_minimum ||
value > field->logical_maximum)) {
dbg_hid("Ignoring out-of-range value %x\n", value);
return;
}
Code: Select all
if ((field->flags & HID_MAIN_ITEM_VARIABLE) &&
(value < field->logical_minimum ||
value > field->logical_maximum)) {
if(value < logical_minimum)
value=field->logical_minimum;
else
value= field->logical_maximum;
}
You can now compile the kernel and the modules etc and transfer them over to the pi. This will make the Up and Left function as they should but still leaves one problem. It is only detected as a single input device but with 4 axis.
So now edit the /boot/cmdline.txt file on the pi and at the end of the line of text, add the following:
Code: Select all
usbhid.quirks=0x1292:0x4154:0x040
And there you go!! When plugged in the device now adds two fully functioning Joysticks

Hope this has helped someone and thanks for all the work that people have already done as this really helped get this thing working.
Happy Emulating!
Matt.