xbox classic support

General Chat, Feel Free To talk about anything here.
neomatrix888
Posts: 1
Joined: Wed Jan 11, 2017 12:00 pm

xbox classic support

Post by neomatrix888 »

dear GIMX team.
i am happy user of ps3 and xbox360
but sometimes i like to play on my classic xbox
i have luck to buy fanatec speedster 3 (best wheel to this console) cheap on german ebay, ( i bought 5 :-) but currently its almost impossible
to buy xbox version of that wheel. its easy to buy ps2 version.
Classic xbox had 4 joypad ports (compatible with USB 1.1) on ebay you can buy cheap xbox joypad-usb adapter
i've got new and sealed fanatec speedster 3 which i want to send you ( together with SUPER JOY BOX 9 = xbox controller adapter for windows )
if you only want to write gimx software to emulate xbox wheel signal to let me think - logitech driving force gt (ps2, ps3 and pc wheel very popular not like fanatec.)
please write me an anserw and if yes write me where i should send it.
if you write gimx to emulate classic xbox wheel signal to more popular wheels you will make big favor to classic xbox fans which have not so much
luck like me.
sorry i know my english is terrible.
thanks and god bless you
User avatar
Matlo
Posts: 5768
Joined: Wed Jul 06, 2011 7:01 am
Location: France
Contact:

Re: xbox classic support

Post by Matlo »

Hi,
The challenging part is reversing the FFB protocol. This can take a lot of time, and I don't think I have enough time for this.
Could you make a USB capture using my serialusb tool? This is the minimum input for someone to take this task.
GIMX creator
AllWheelDie
Posts: 7
Joined: Thu Mar 30, 2017 1:57 pm

Re: xbox classic support

Post by AllWheelDie »

Hey there,

This is literally what I've been wanting to do for too long. All I want to do is use my G27 to play Rallisport Challenge 2 on my old Xbox. I'm willing to go to extreme lengths to get it working.

Is there anything I can do to contribute? I don't have any experience doing this stuff, but if I can be walked through this I will do my best to get you the information you need.

I'm even ok with just having the wheel emulate the controller analog stick if that's what it comes down to, which it probably will because from what I've read online is that back then the original Xbox didn't really have any good options for wheel.

Please let me know what I can do.
Car Enthusiast
Evo VIII GSR Owner
G27 User
Steam: http://steamcommunity.com/id/broski270
User avatar
Matlo
Posts: 5768
Joined: Wed Jul 06, 2011 7:01 am
Location: France
Contact:

Re: xbox classic support

Post by Matlo »

Hi,
Making a USB capture as said in my previous post is the first step.
GIMX creator
AllWheelDie
Posts: 7
Joined: Thu Mar 30, 2017 1:57 pm

Re: xbox classic support

Post by AllWheelDie »

Sorry for not getting around to this, I've had things come up irl that's been keeping me busy.

Anyways, I came across this: http://xboxdevwiki.net/Xbox_Input_Devices

Does that help at all?
Car Enthusiast
Evo VIII GSR Owner
G27 User
Steam: http://steamcommunity.com/id/broski270
User avatar
Matlo
Posts: 5768
Joined: Wed Jul 06, 2011 7:01 am
Location: France
Contact:

Re: xbox classic support

Post by Matlo »

There already is a Xbox Classic firmware, it's called EMUXBOX. It's mostly untested.
GIMX creator
neo451
Posts: 12
Joined: Fri Jun 23, 2017 10:27 pm

Re: xbox classic support

Post by neo451 »

Hi,
When you say "It's mostly untested" it means that it wasn't working or it was created based on some documentation without connecting it to the real OG XBOX?
I recently tried to connect Dualshock4 to OG XBOX via DIY USB adapter (adapter that works perfectly fine with DFGT and PS4). Loaded (with gimx_loader) EMUXBOX firmware (atmega32u4.hex) onto adapter without problems. Created new config for DS4 with XboxPad preset.
But GIMX is not recognizing the adapter for some reason:

Code: Select all

global option -l with value `log.txt'
global option -c with value `Dualshock4_XBOX.xml'
controller #1: option -p with value `/dev/ttyUSB0'
now reading arguments for controller #2
status flag is set
subpos flag is set
force_updates flag is set
GIMX 6.7 ARMv6
Raspbian GNU/Linux 8.0 (jessie)
Linux 4.1.13-v7+ #826 SMP PREEMPT Fri Nov 13 20:19:03 GMT 2015 unknown
Bus 001 Device 011: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
Bus 001 Device 010: ID 054c:05c4 Sony Corp. 
Bus 001 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M
        |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M
        |__ Port 2: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 2: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 2: Dev 4, If 2, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 3: Dev 10, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 5: Dev 11, If 0, Class=Vendor Specific Class, Driver=cp210x, 12M
USB adapter detected, controller type is: XboxPad.
can't read packet header
Can't get adapter status.
gimx.c:208 main: no adapter detected 
GIMX running on Raspbian Jessie.

When I connect adapter usb side to Windows PC it's being recognized as "XBCD Xbox Controller" (VID_045E&PID_0202) so I assume that firmware is correct, but still GIMX gives the same error as with OG XBOX.
Is there any way to debug it?
User avatar
Matlo
Posts: 5768
Joined: Wed Jul 06, 2011 7:01 am
Location: France
Contact:

Re: xbox classic support

Post by Matlo »

Hi,
neo451 wrote: Fri Jun 23, 2017 11:00 pm When you say "It's mostly untested" it means that it wasn't working or it was created based on some documentation without connecting it to the real OG XBOX?
Yes that's what it means. I only tested it with a PC.

Please try this new firmware:
xbox_emu.hex.zip
(3.19 KiB) Downloaded 891 times
GIMX creator
neo451
Posts: 12
Joined: Fri Jun 23, 2017 10:27 pm

Re: xbox classic support

Post by neo451 »

Thanks for such a quick response but I think it got worse. Maybe not worse but different.
Still no response on OG XBOX side after launching GIMX on new firmware but it did not say "no adapter detected".
After loading new firmware my Windows PC stopped recognizing it as "XBCD Xbox Controller" - after plugging in for a second Windows sees it as "Arduino Micro bootloader (COMX)" and then it's gone. It's not being recognized as anything. If it's necessary I can launch some USB debugger to find out more.
I can also attach my controller config file but I don't think it's causing the problem - as you can see below buttons are identified correctly.

Code: Select all

global option -l with value `log.txt'
global option -c with value `Dualshock4_XBOX.xml'
controller #1: option -p with value `/dev/ttyUSB0'
now reading arguments for controller #2
grab flag is unset
status flag is set
subpos flag is set
force_updates flag is set
GIMX 6.7 ARMv6
Raspbian GNU/Linux 8.0 (jessie)
Linux 4.1.13-v7+ #826 SMP PREEMPT Fri Nov 13 20:19:03 GMT 2015 unknown
Bus 001 Device 007: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
Bus 001 Device 008: ID 054c:05c4 Sony Corp. 
Bus 001 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M
        |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M
        |__ Port 2: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 2: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 2: Dev 4, If 2, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 3: Dev 8, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 4: Dev 7, If 0, Class=Vendor Specific Class, Driver=cp210x, 12M
USB adapter detected, controller type is: XboxPad.
no pass-through device is needed
using default refresh period: 8.00ms
0 1498431192.744512, left (255)
0 1498431192.928484
0 1498431193.104471, up (255)
0 1498431193.248486
0 1498431193.400459, right (255)
0 1498431193.520461
0 1498431193.664525, down (255)
0 1498431193.808500
0 1498431194.096520, rstick x (4)
0 1498431194.104536, rstick x (27)
0 1498431194.112541, rstick x (63), rstick y (1)
0 1498431194.120518, rstick x (99), rstick y (1)
0 1498431194.128511, rstick x (112), rstick y (1)
0 1498431194.152509, rstick x (113), rstick y (1)
0 1498431194.160506, rstick x (118), rstick y (1)
0 1498431194.168506, rstick x (128)
0 1498431194.176534, rstick x (128)
0 1498431194.440505, lstick x (-2), rstick x (128)
0 1498431194.448518, lstick x (-29), rstick x (128)
0 1498431194.456508, lstick x (-56), rstick x (128)
0 1498431194.464536, lstick x (-86), rstick x (128)
0 1498431194.472514, lstick x (-112), rstick x (128)
0 1498431194.480506, lstick x (-128), rstick x (128)
0 1498431194.736510, lstick x (-118), rstick x (128)
0 1498431194.744532, lstick x (-94), rstick x (121), rstick y (6)
0 1498431194.752544, lstick x (-70), rstick x (101), rstick y (12)
0 1498431194.760513, lstick x (-32), rstick x (77), rstick y (13)
0 1498431194.768512, rstick x (45), rstick y (13)
0 1498431194.776506, rstick x (2), rstick y (8)
0 1498431194.784529
0 1498431194.792510, lstick x (1)
0 1498431194.800508, lstick x (24), rstick x (-9)
0 1498431194.808511, lstick x (56), rstick x (-36)
0 1498431194.816534, lstick x (89), lstick y (1), rstick x (-71)
0 1498431194.824513, lstick x (116), lstick y (5), rstick x (-109)
0 1498431194.832506, lstick x (128), lstick y (6), rstick x (-128)
0 1498431194.840502, lstick x (128), lstick y (6), rstick x (-128)
0 1498431194.848548, lstick x (128), lstick y (6), rstick x (-128), rstick y (1)
0 1498431194.928503, lstick x (128), lstick y (6), rstick x (-128), rstick y (2)
0 1498431194.936508, lstick x (128), lstick y (6), rstick x (-128), rstick y (4)
0 1498431194.952506, lstick x (128), lstick y (5), rstick x (-128), rstick y (4)
0 1498431194.968508, lstick x (128), lstick y (2), rstick x (-128), rstick y (2)
0 1498431194.976534, lstick x (128), rstick x (-113), rstick y (2)
0 1498431194.984512, lstick x (128), rstick x (-98), rstick y (1)
0 1498431194.992509, lstick x (128), rstick x (-85)
0 1498431195.000509, lstick x (128), rstick x (-74)
0 1498431195.008540, lstick x (125), lstick y (-2), rstick x (-70)
0 1498431195.016508, lstick x (120), lstick y (-17), rstick x (-67), rstick y (-2)
0 1498431195.024507, lstick x (108), lstick y (-41), rstick x (-66), rstick y (-16)
0 1498431195.032512, lstick x (98), lstick y (-64), rstick x (-64), rstick y (-28)
0 1498431195.040538, lstick x (87), lstick y (-89), rstick x (-64), rstick y (-45)
0 1498431195.048518, lstick x (81), lstick y (-113), rstick x (-64), rstick y (-72)
0 1498431195.056505, lstick x (77), lstick y (-128), rstick x (-64), rstick y (-98)
0 1498431195.064504, lstick x (66), lstick y (-128), rstick x (-64), rstick y (-128)
0 1498431195.072528, lstick x (56), lstick y (-128), rstick x (-64), rstick y (-128)
0 1498431195.080510, lstick x (51), lstick y (-128), rstick x (-64), rstick y (-128)
0 1498431195.088513, lstick x (39), lstick y (-128), rstick x (-64), rstick y (-128)
0 1498431195.096499, lstick x (35), lstick y (-128), rstick x (-64), rstick y (-128)
0 1498431195.104538, lstick x (24), lstick y (-128), rstick x (-54), rstick y (-128)
0 1498431195.112517, lstick x (20), lstick y (-128), rstick x (-44), rstick y (-128)
0 1498431195.120509, lstick x (13), lstick y (-128), rstick x (-36), rstick y (-128)
0 1498431195.128509, lstick x (12), lstick y (-128), rstick x (-28), rstick y (-128)
0 1498431195.136531, lstick x (12), lstick y (-128), rstick x (-25), rstick y (-128)
0 1498431195.168528, lstick x (12), lstick y (-128), rstick x (-24), rstick y (-128)
0 1498431195.176508, lstick x (12), lstick y (-128), rstick x (-22), rstick y (-128)
0 1498431195.184510, lstick x (12), lstick y (-128), rstick x (-21), rstick y (-128)
0 1498431195.272504, lstick x (12), lstick y (-128), rstick x (-20), rstick y (-128)
0 1498431195.280511, lstick x (10), lstick y (-128), rstick x (-20), rstick y (-128)
0 1498431195.288511, lstick x (8), lstick y (-128), rstick x (-20), rstick y (-113)
0 1498431195.296536, lstick x (1), lstick y (-98), rstick x (-20), rstick y (-79)
0 1498431195.304515, lstick y (-48), rstick x (-18), rstick y (-17)
0 1498431195.312510, rstick x (-4)
0 1498431195.320507, rstick y (22)
0 1498431195.328541, lstick y (17), rstick y (56)
0 1498431195.336513, lstick y (55), rstick y (118)
0 1498431195.344509, lstick y (105), rstick x (-4), rstick y (128)
0 1498431195.352517, lstick y (128), rstick x (-4), rstick y (128)
0 1498431195.360538, lstick y (128), rstick x (-2), rstick y (128)
0 1498431195.368526, lstick y (128), rstick y (128)
0 1498431195.536524, lstick y (128), rstick x (1), rstick y (128)
0 1498431195.544580, lstick y (128), rstick x (5), rstick y (112)
0 1498431195.552579, lstick y (128), rstick x (5), rstick y (52)
0 1498431195.560542, lstick y (128)
0 1498431195.592502, lstick y (128)
0 1498431195.600535, lstick y (116)
0 1498431195.608525, lstick y (95)
0 1498431195.616531, lstick y (33)
0 1498431195.624522
0 1498431196.168513, black (255)
0 1498431196.304505
0 1498431196.432507, white (255)
0 1498431196.576537
0 1498431196.736525
0 1498431196.744518, RT (110)
0 1498431196.752513, RT (255)
0 1498431196.928530, RT (255)
0 1498431196.936515, RT (159)
0 1498431196.944512, RT (32)
0 1498431196.952511
0 1498431196.960529
0 1498431196.968520
0 1498431196.992534
0 1498431197.000507
0 1498431197.008510, LT (124)
0 1498431197.016505, LT (255)
0 1498431197.296502, LT (129)
0 1498431197.304516
0 1498431197.312538
0 1498431197.320518
0 1498431197.528501, A (255)
0 1498431197.664528
0 1498431197.824531, X (255)
0 1498431197.936502
0 1498431198.064503, Y (255)
0 1498431198.168498
0 1498431198.280505, B (255)
0 1498431198.424499
0 1498431198.648501, A (255)
0 1498431198.792506
Exiting 
User avatar
Matlo
Posts: 5768
Joined: Wed Jul 06, 2011 7:01 am
Location: France
Contact:

Re: xbox classic support

Post by Matlo »

This is normal operation, the controller now starts communicating when GIMX gets started.

The Xbox Classic controller is very special, it contains a hub which connects a gamepad and a memory controller to the console.
The provided firmware only implements the gamepad, not the hub and the memory controller. Maybe this is a problem.
GIMX creator
Post Reply