Method and system for providing backward compatibility
Abstract
Techniques for providing compatibility between two different game controllers are disclosed. When a new or more advanced controller is introduced, it is important that such a new controller works with a system originally configured for an existing or old controller. The new controller may provide more functionalities than the old one does. In some cases, the new controller provides more sensing signals than the old one does. The new controller is configured to work with the system to transform the sensing signals therefrom to masquerade as though they were coming from the old controller. The transforming of the sensing signals comprises: replicating operational characteristics of the old controller, and relocating virtually the sensing signals to appear as though the sensing signals were generated from inertial sensors located in a certain location in the new controller responsive to a certain location of the inertial sensors in the old controller.
Claims
exact text as granted — not AI-modified1 . A method for making a first controller backward compatible with a second controller, the method comprising:
generating a first set of inertial sensor data from the first controller; transforming the first set of inertial sensor data to masquerade as though the first set of inertial sensor data were coming from a second set of inertial sensors in the second controller, wherein said transforming the first set of inertial sensor data comprises:
replicating operational characteristics of the second controller; and
relocating virtually the first set of inertial sensor data from a first set of inertial sensors at physical locations in the first controller to appear as though the first set of inertial sensor data were generated from a second set of inertial sensors at virtual locations in the first controller in reference to a certain location of some of the second set of inertial sensors in the second controller, and
wherein said transforming is executed in a driver for the first controller or a software module running on a processing unit previously configured to work with the second controller, and the transformed first set of inertial sensor data of the first controller works with motion recognizers built for the second controller.
2 . The method as recited in claim 1 , wherein said transforming succeeds when maximum sensitivities and range of the second controller are known, and respective locations of the second set of inertial sensors in the second controller are known.
3 . The method as recited in claim 2 , wherein the first set of inertial sensor data of the first controller includes translational sensor data and angular sensor data, the angular sensor data is ignored when the second controller is not equipped with angular sensors.
4 . The method as recited in claim 3 , wherein the translational sensor data is from a plurality of accelerometers, and the angular sensor data is from a plurality of gyroscopes in the first controller.
5 . The method as recited in claim 3 , wherein the inertial sensor data from the first controller is received in the processing unit that is configured to discard the angular sensor data.
6 . The method as recited in claim 1 , further comprising:
treating the transformed first set of inertial sensor data to act as though the first set of inertial sensor data of the first controller is being generated from the second controller; and accounting for sensor noise to allow device independent recognition of the first controller using the motion recognizers provided for the second controller through a standard motion data library.
7 . The method as recited in claim 6 , wherein the standard motion data library is an application programming interface (API) including subtracting out tangential effects of rotation of accelerometers around a center of mass, moving back to acceleration at the center of mass, and compensating for gyroscopic effects.
8 . The method as recited in claim 1 , wherein the first controller includes a housing having at least a top surface and a bottom surface, the top surface including a number of buttons and a joystick operable by a finger of one hand, the bottom surface including a trigger operable by another finger of the hand, and wherein the second controller is different from the first controller.
9 . An apparatus for making a first controller backward compatible with a second controller, the apparatus being already configured for the second controller, the apparatus comprising:
a wireless interface to receive a first set of inertial sensor data from the first controller; a processor; a memory space for storing code executed by the processor to perform operations of: transforming the first set of inertial sensor data to masquerade as though the first set of inertial sensor data were coming from a second set of inertial sensors in the second controller, wherein said transforming the first set of inertial sensor data comprises:
replicating operational characteristics of the second controller; and
relocating virtually the first set of inertial sensor data from a first set of inertial sensors at physical locations in the first controller to appear as though the first set of inertial sensor data were generated from a second set of inertial sensors at virtual locations in the first controller in reference to a certain location of some of the second set of inertial sensors in the second controller, and
wherein the transformed first set of inertial sensor data of the first controller works with motion recognizers built for the second controller.
10 . The apparatus as recited in claim 9 , wherein said transforming succeeds when maximum sensitivities and range of the second controller are known, and respective locations of the second set of inertial sensors within the second controller are known.
11 . The apparatus as recited in claim 10 , wherein the first set of inertial sensor data from the first controller includes translational sensor data and angular sensor data, the angular sensor data is ignored when the second controller is not equipped with angular sensors.
12 . The apparatus as recited in claim 11 , wherein the translational sensor data is from a plurality of accelerometers, and the angular sensor data is from a plurality of gyroscopes in the first controller.
13 . The apparatus as recited in claim 9 , wherein the processor is configured to perform further operations of:
treating the transformed first set of inertial sensor data to act as though the first set of inertial sensor data is being generated from the second controller; and accounting for sensor noise to allow device independent recognition of the first controller using the motion recognizers provided for the second controller through a standard motion data library.
14 . The apparatus as recited in claim 13 , wherein the standard motion data library is an application programming interface (API) including subtracting out tangential effects of rotation of accelerometers around center of mass, moving back to acceleration at center of mass, and compensating for gyroscopic effects.
15 . The apparatus as recited in claim 9 , wherein the first controller includes a housing having at least a top surface and a bottom surface, the top surface including a number of buttons and a joystick operable by a finger of one hand, the bottom surface including a trigger operable by another finger of the hand, the housing sized to fit into the hand and having a holding portion designed to have the buttons and the joystick reachable by the finger when the holding portion is being held in the hand of a user, and wherein the second controller is different from the first controller.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.