throbber
PCT
`
`WORLD INTELLECTUAL PROPERTY ORGANIZATION
`International Bureau
`
`
`
`INTERNATIONAL APPLICATION PUBLISHED UNDER THE PATENT COOPERATION TREATY (PCT)
`
`
`
` WO 00/59594
`
`(11) International Publication Number:
`_
`(51) International Patent Classification 7 :
`A63F 13/06, G06F 3/033
`
`
`(43) International Publication Date:
`12 October 2000 (12.10.00)
`
`(74) Agents: HAYES, Daniel, L. et al.; Suite 500, 421 W. Riverside
`(21) International Application Number:
`PCT/USOO/08848
`
`
`Avenue, Spokane, WA 99201 (US).
`
`
`
`
`
`
`
`(81) Designated States: AE, AL, AM, AT, AU, AZ, BA, BB, BG,
`BR, BY, CA, CH, CN, CR, CU, CZ, DE, DK, DM, EE,
`ES, FI, GB, GD, GE, GH, GM, HR, HU, ID, IL, IN, IS, JP,
`KE, KG, KP, KR, KZ, LC, LK, LR, LS, LT, LU, LV, MA,
`MD, MG, MK, MN, MW, MX, NO, NZ, PL, PT. RO, RU,
`SD, SE, SG, SI, SK, SL, TJ, TM, TR, TT, TZ, UA, UG,
`UZ, VN, YU, ZA, ZW, ARIPO patent (GH, GM, KE, LS,
`MW, SD, SL, SZ, TZ, UG, ZW), Eurasian patent (AM, AZ,
`BY, KG, KZ, MD, RU, TJ, TM), European patent (AT, BE,
`CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, IT, LU, MC,
`NL, PT, SE), OAPI patent (BF, BJ, CF, CG, CI, CM, GA,
`GN, GW, ML, MR, NE, SN, TD, TG).
`
`Published
`With international search report.
`Before the expiration of the time limit for amending the
`claims and to be republished in the event of the receipt of
`amendments.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(22) International Filing Date:
`
`3 April 2000 (03.04.00)
`
`(30) Priority Data:
`60/127,972
`09/483,113
`09/497,914
`
`6 April 1999 (0604.99)
`14 January 2000 (14.01.00)
`4 February 2000 (04.02.00)
`
`US
`US
`US
`
`(71) Applicant: MICROSOFT CORPORATION [US/US]; One
`Microsoft Way, Redmond, WA 98052 (US).
`
`(72) Inventors: ANDREWS, Marcus, J.; 9206 162nd Place NE,
`Redmond, WA 98052 (US).
`FIRDOSH, Bhesania, K.;
`Apartment H—202, 10820 113th Court NE, Kirkland, WA
`98033 (US). HOLAN, Doron, J.; 1266 NE 87th, Kirkland,
`WA 98033 (US).
`INGMAN, Robert; 1121 37th Avenue,
`Seattle, WA 98122 (US). LEATHAM, Scott, R.; 13029
`326th Avenue NE, Duvall, WA 98019 (US). PERETZ,
`Ervin; 3649 E. Ames Lake Lane, Redmond, WA 98053
`(US). RAY, Kenneth, D.; 8127 149th Place NE #D320,
`Redmond, WA 98052 (US). SHARMA, Om, K.; 10933
`127th Place NE, Kirkland, WA 98033 (US). VERES, James,
`E.; 14029 17lst Lane NE, Woodinville, WA 98072 (US).
`
`(54) Title: GAME CONTROL DEVICE HAVING GENRE DATA
`
`
`
`
`
`
`
`
`
`Application
`
`0/8 and
`System
`Services
`
`USB Driver/
`Port
`
`Control Logic
`
`HID
`Descriptors
`
`Non—HID
`Descriptors
`
`‘ USB Port
`
`
`
`(57) Abstract
`
`A computer peripheral has a processor, non—volatile memory, and a plurality of controls. The non—volatile memory holds control
`mappings corresponding to a plurality of application program genres. The control mappings indicate actions to be performed in application
`programs of particular genres in response to actuation of particular controls. The control mappings indicate controls by unique string indexes
`that are also used in HID control descriptors associated with the computer peripheral.
`
`
`SCEA EX. 1004 Page 1
`
`SCEA Ex. 1004 Page 1
`
`

`

`FOR THE PURPOSES OF INFORMATION ONLY
`
`Codes used to identify States party to the PCT on the front pages of pamphlets publishing international applications under the PCT.
`
`Albania
`Armenia
`Austria
`Australia
`Azerbaijan
`Bosnia and Herzegovina
`Barbados
`Belgium
`Burkina Faso
`Bulgaria
`Benin
`Brazil
`Belarus
`Canada
`Central African Republic
`Congo
`Switzerland
`C6te d‘Ivoire
`Cameroon
`China
`Cuba
`Czech Republic
`Germany
`Denmark
`Estonia
`
`ES
`FI
`FR
`GA
`GB
`GE
`GH
`GN
`GR
`HU
`IE
`IL
`IS
`IT
`JP
`KE
`KG
`KP
`
`KR
`KZ
`LC
`LI
`LK
`LR
`
`Spain
`Finland
`France
`Gabon
`United Kingdom
`Georgia
`Ghana
`Guinea
`Greece
`Hungary
`Ireland
`Israel
`Iceland
`Italy
`Japan
`Kenya
`Kyrgyzstan
`Democratic People‘s
`Republic of Korea
`Republic of Korea
`Kazakstan
`Saint Lucia
`Liechtenstein
`Sri Lanka
`Liberia
`
`LS
`LT
`LU
`LV
`MC
`MD
`MG
`M K
`
`ML
`MN
`MR
`MW
`MX
`NE
`NL
`NO
`NZ
`PL
`PT
`R0
`RU
`SD
`SE
`SG
`
`Lesotho
`Lithuania
`Luxembourg
`Latvia
`Monaco
`Republic of Moldova
`Madagascar
`The former Yugoslav
`Republic of Macedonia
`Mali
`Mongolia
`Mauritania
`Malawi
`Mexico
`Niger
`Netherlands
`Norway
`New Zealand
`Poland
`Portugal
`Romania
`Russian Federation
`Sudan
`Sweden
`Singapore
`
`SI
`SK
`SN
`SZ
`TD
`TG
`TJ
`TM
`TR
`TT
`UA
`UG
`US
`UZ
`VN
`YU
`ZW
`
`Slovenia
`Slovakia
`Senegal
`Swaziland
`Chad
`Togo
`Tajikistan
`Turkmenistan
`Turkey
`Trinidad and Tobago
`Ukraine
`Uganda
`United States of America
`Uzbekistan
`Viet Nam
`Yugoslavia
`Zimbabwe
`
`
`
` AL
`
`AM
`AT
`AU
`AZ
`BA
`BB
`BE
`BF
`BG
`BJ
`BR
`BY
`CA
`CF
`CG
`CH
`CI
`CM
`CN
`CU
`CZ
`DE
`DK
`EE
`
`SCEA EX. 1004 Page 2
`
`SCEA Ex. 1004 Page 2
`
`

`

`WO 00/59594
`
`PCT/USOO/08848
`
`GAME CONTROL DEVICE HAVING GENRE DATA
`
`RELATED APPLICATIONS
`
`This is a continuation-in—part application of a prior US Patent Application
`
`filed January 10, 2000,
`
`titled “Mapping Input—Device Functions to Software
`
`Application Input Commands,” serial number 09/483,113.
`
`Priority is hereby
`
`claimed to this earlier application.
`
`10
`
`TECHNICAL FIELD
`
`This invention relates generally to the use of peripheral input devices with
`
`software applications and more specifically to the use of genres in conjunction with
`
`such input devices and software applications.
`
`15
`
`BACKGROUND OF THE INVENTION
`
`Various
`
`input devices are available that permit a computer user
`
`to
`
`communicate with a computer. A typical personal computer offers input devices
`
`such as a keyboard and a mouse. Numerous other devices are available, such as
`
`drawing pads, joysticks, and steering wheels (for use with driving games). These
`
`20
`
`devices can be connected to a computer, and they permit the user to communicate
`
`information to the computer;
`
`the information communicated instructs software
`
`applications running on the computer to perform specified actions.
`
`Ideally,
`
`a computer user
`
`loads
`
`a software application,
`
`connects an
`
`appropriate device to the computer, and the device and software work together
`
`25
`
`Without further configuration by the user. This ideal, however, has not been
`
`realized in prior systems.
`
`SCEA Ex. 1004 Page 3
`
`SCEA Ex. 1004 Page 3
`
`

`

`WO 00/59594
`
`PCT/USOO/08848
`
`2
`
`In order for a device to work with a given software application, there must
`
`be a defined relationship between the controls on the device and actions that the
`
`software application performs. However, there are few standards governing the
`
`way in which this relationship is defined. Traditionally, software developers design
`
`software applications to support the most common devices and to provide a device
`
`mapping control panel for those users who own other devices. This approach,
`
`however, has drawbacks: A software developer who wants to design an application
`
`to work well with many devices must know what controls are available on each
`
`device (e.g., buttons, levers, etc.) and how the device notifies the computer system
`
`of operational events (e.g., an input of 1001 signifies the pressing of a button).
`
`Additionally,
`
`the software developer must make design decisions as to which
`
`devices the software will support, and, on those devices that will be supported, how
`
`the controls will map to the actions that the software performs. This is a labor-
`
`intensive process for the software developer. Moreover,
`
`if a user owns an
`
`unsupported device,
`
`the user must generally resort to mapping the unsupported
`
`device manually by referring to generic pictures and tables in an application’s
`
`manual and using the device mapping control panel provided with the application.
`
`This is a notoriously difficult process.
`
`Some input device manufacturers address the problem of ensuring that
`
`specific applications work well with the device by supplying a software component
`
`with the device that dynamically reconfigures the device based on guesses as to
`
`what actions the application expects the device to support. Some manufacturers of
`
`devices with newer features provide filters to accommodate existing applications;
`
`frequently, these filters simulate keyboard presses or mouse movements for games
`
`that do not recognize enhanced features of the new device. Alternatively, some
`
`devices are supplied with mapping software that detects the presence of certain
`
`10
`
`15
`
`20
`
`25
`
`SCEA EX. 1004 Page 4
`
`SCEA Ex. 1004 Page 4
`
`

`

`WO 00/59594
`
`PCT/USOO/08848
`
`3
`
`applications on the system and configures the device to work better with those
`
`
`applications. However, these ad hoc approaches are error prone, may result in a
`
`relationship between device controls and software actions that feels unnatural to the
`
`user, and can only provide support for applications the device manufacturer knows
`
`about and chooses to support.
`
`The Human Interface Device (HID) standard, defined in conjunction with
`
`the Universal Serial Bus (USB) standard, addresses problems such as these. Using
`
`HID, an input device can store information about its controls. This information can
`
`be obtained by a requesting application program.
`
`10
`
`HID data generally describes the characteristics of device controls and the
`
`format of data generated by the controls.
`
`In addition, HID allows different labels or
`
`“usages” to be assigned to the controls of an input device. For example, a button
`
`might be designated as a “fire” button, as “buttonl”, “button2,” etc.
`
`In addition,
`
`HID can include “aliases” for a control. A given control might have a plurality of
`7) LC
`
`15
`
`aliases such as “buttonl,” “fire,
`
`torpedo,” etc.
`
`Usages and aliases, if used in a uniform and agreed upon way, provide useful
`
`hints about how to use a certain control on an input device.
`
`In some cases, for
`
`instance,
`
`the “fire” button will have an obviously corresponding action in an
`
`application program.
`
`In other cases, however, the usages and aliases might not
`
`correspond directly to any terminology known by the application program.
`
`A further complicating factor is that there is no agreed upon standard for
`
`naming HID controls. Even if there were such a standard, it would remain—in may
`
`cases—a very difficult task for an application program to determine an optimum set
`
`of mappings between numerous input device controls and the actions available in
`
`the application program. A determination such as this would require a complex
`
`20
`
`25
`
`algorithm, tailored specifically for the application program.
`
`SCEA EX. 1004 Page 5
`
`SCEA Ex. 1004 Page 5
`
`

`

`WO 00/59594
`
`PCT/USOO/08848
`
`4
`
`The difficulty lies not in finding a workable control for a particular action,
`
`but in assigning a combination of controls to a combination of desired actions. For
`
`example, any number of controls might work for a “drop bomb” action: a
`
`“buttonl,” a “button2,” a “fire” button,” a “trigger” button, etc. However, assigning
`
`the combination of these controls to a combination of different actions, such as
`
`“drop bomb,” “start engine,” “lower flaps,” and “zoom” can be much more
`
`difficult. The task is actually made more difficult by the use of numerous aliases
`
`for each control—each control might duplicate the same aliases.
`
`Accordingly, even with HID devices it is difficult for an application program
`
`to determine desirable control/action mappings for unanticipated input devices—
`
`input devices for which the application program does not have a pre-defined
`
`assignment of controls. The system described below solves this problem.
`
`SUMMARY OF THE INVENTION
`
`Described below is a game control device or other computer peripheral that
`
`stores information relating to genres.
`
`This information can be retrieved by
`
`programs running on a host computer. The information includes sets of control-to—
`
`action mappings for thc controls of the control device. There is a set for every
`
`supported genre.
`
`To establish a desirable combination of control-to—action
`
`mappings, the host computer simply requests the control mappings of the correct
`
`genre from the control device.
`
`The described embodiment is implemented in a USB control device, which
`
`includes HID report descriptors. However, the genre data is maintained within the
`
`control device in a non-HID format. The genre data is correlated with the HID
`
`report descriptors by the use of unique string indexes within the HID report
`
`descriptors. More specifically, each control is given a unique string index within
`
`l0
`
`15
`
`20
`
`25
`
`SCEA Ex. 1004 Page 6
`
`SCEA Ex. 1004 Page 6
`
`

`

`WO 00/59594
`
`PCT/USOO/08848
`
`the HID data. The actions specified in the non-HID data use these same string
`
`5
`
`indexes to specify controls.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Fig. l is a block diagram representing a computer system in which aspects of
`
`the invention may be incorporated;
`
`Fig. 2 is a block diagram showing the use of an input device mapper with
`
`input devices and software applications;
`
`Fig. 3 is a block diagram showing a sample control—semantic correlation and
`
`10
`
`its structure;
`
`Fig. 4 is a block diagram showing a sample action-semantic correlation and
`
`its structure;
`
`Fig. 5 is a block diagram showing a sample mapping created by an input
`
`device mapper;
`
`Fig. 6 is an image of an input device with action labels;
`
`Fig. 7 is a flowchart illustrating a process by which an input device mapper
`
`is used;
`
`Fig. 8 is a block diagram showing the use of a mapping created by an input
`
`device mapping;
`
`Fig. 9 is a block diagram of an exemplary computer and game control
`
`device;
`
`Fig. 10 is a block diagram of a non—HID data descriptor;
`
`Fig. 11 is a flowchart showing methodological aspects of the described
`
`embodiment.
`
`Figs. 12 and 13 are flowcharts showing methodological aspects of a USB
`
`implementation.
`
`15
`
`20
`
`25
`
`SCEA EX. 1004 Page 7
`
`SCEA Ex. 1004 Page 7
`
`

`

`WO 00/59594
`
`PCT/USOO/08848
`
`DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
`
`6
`
`Computer Environment
`
`Figure 1 and the following discussion are intended to provide a brief general
`
`description of a suitable computing environment in which the invention may be
`
`implemented. Although not required, the invention will be described in the general
`
`context of computer-executable instructions, such as program modules, being
`
`executed by a computer, such as a client workstation or a server. Generally,
`
`program modules include routines, programs, objects, components, data structures
`
`and the like that perform particular tasks or implement particular abstract data
`
`types. Moreover, those skilled in the art will appreciate that the invention may be
`
`practiced with other computer system configurations, including hand-held devices,
`
`multi-processor
`
`systems, microprocessor-based
`
`or programmable
`
`consumer
`
`electronics, home game machines, network PCs, minicomputers, mainframe
`
`computers and the like.
`
`The invention may also be practiced in distributed
`
`computing environments where tasks are performed by remote processing devices
`
`that are linked through a communications network. In a distributed computing
`
`environment, program modules may be located in both local and remote memory
`
`storage devices.
`
`As shown in Fig. 1, an exemplary system for implementing the invention
`
`includes a general purpose computing device in the form of a conventional personal
`
`computer 20 or the like, including a processing unit 21, a system memory 22, and a
`
`system bus 23 that couples various system components including the system
`
`memory to the processing unit 21. The system bus 23 may be any of several types
`
`of bus structures including a memory bus or memory controller, a peripheral bus,
`
`and a local bus using any of a variety of bus architectures. The system memory
`
`includes read-only memory (ROM) 24 and random access memory (RAM) 25. A
`
`10
`
`15
`
`20
`
`25
`
`SCEA Ex. 1004 Page 8
`
`SCEA Ex. 1004 Page 8
`
`

`

`WO 00/59594
`
`PCT/USOO/08848
`
`7
`
`basic input/output system 26 (BIOS), containing the basic routines that help to
`
`transfer information between elements within the personal computer 20, such as
`
`during start—up,
`
`is stored in ROM 24. The personal computer 20 may further
`
`include a hard disk drive 27 for reading from and writing to a hard disk, not shown,
`
`a magnetic disk drive 28 for reading from or writing to a removable magnetic disk
`
`29, and an optical disk drive 30 for reading from or writing to a removable optical
`
`disk 3l such as a CD-ROM or other optical media. The hard disk drive 27,
`
`magnetic disk drive 28, and optical disk drive 30 are connected to the system bus 23
`
`by a hard disk drive interface 32, a magnetic disk drive interface 33, and an optical
`
`drive interface 34, respectively. The drives and their associated computer—readable
`
`media provide non-volatile storage of computer
`
`readable instructions, data
`
`structures, program modules and other data for the personal computer 20. Although
`
`the exemplary environment described herein employs a hard disk, a removable
`
`magnetic disk 29 and a removable optical disk 31, it should be appreciated by those
`
`skilled in the art that other types of computer readable media which can store data
`
`that is accessible by a computer, such as magnetic cassettes, flash memory cards,
`
`digital video disks, Bernoulli cartridges,
`
`random access memories (RAMS),
`
`read-only memories (ROMS) and the like may also be used in the exemplary
`
`operating environment.
`
`A number of program modules may be stored on the hard disk, magnetic disk
`
`29, optical disk 3], ROM 24 or RAM 25, including an operating system 35, one or
`
`more application programs 36, other program modules 37, program data 38, and an
`
`input device mapper 39. A user may enter commands and information into the
`
`personal computer 20 through input devices such as a keyboard 40, a pointing
`
`device 42, a drawing pad 65, or a game controller such as driving game controller
`
`66. Other input devices (not shown) may include a microphone, joystick, game pad,
`
`10
`
`15
`
`20
`
`25
`
`SCEA Ex. 1004 Page 9
`
`SCEA Ex. 1004 Page 9
`
`

`

`WO 00/59594
`
`PCT/USOO/08848
`
`8
`
`satellite disk, scanner or. the like. These and other input devices are often connected
`
`to the processing unit 21 through a serial port interface 46 that is coupled to the
`
`system bus, but may be connected by other interfaces, such as a parallel port, game
`
`port, universal serial bus (USB), or a 1394 high-speed serial port. A monitor 47 or
`
`other type of display device is also connected to the system bus 23 via an interface,
`
`such as a video adapter 48. In addition to the monitor 47, personal computers
`
`typically include other peripheral output devices (not shown), such as speakers and
`
`printers.
`
`10
`
`15
`
`20
`
`25
`
`The personal computer 20 may operate in a networked environment using
`
`logical connections to one or more remote computers, such as a remote computer
`
`49. The remote computer 49 may be another personal computer, a server, a router,
`
`a network PC, a peer device or other common network node, and typically includes
`
`many or all of the elements described above relative to the personal computer 20,
`
`although only a memory storage device 50 has been illustrated in Fig.
`
`l. The
`
`logical connections depicted in Fig.
`
`1 include a local area network (LAN) 51 and a
`
`wide area network (WAN) 52. Such networking environments are commonplace in
`
`offices, enterprise-wide computer networks, Intranets and the Internet.
`
`When used in a LAN networking environment, the personal computer 20 is
`
`connected to the local network 51 through a network interface or adapter 53. When
`
`used in a WAN networking environment,
`
`the personal computer 20 typically
`
`includes a modem 54 or other means for establishing communications over the Wide
`
`area network 52, such as the Internet. The modem 54, which may be internal or
`
`external,
`
`is connected to the system bus 23 via the serial port interface 46. In a
`
`networked environment, program modules depicted relative to the personal
`
`computer 20, or portions thereof, may be stored in the remote memory storage
`
`device.
`
`It will be appreciated that the network connections shown are exemplary
`
`SCEA EX. 1004 Page 10
`
`SCEA Ex. 1004 Page 10
`
`

`

`WO 00/59594
`
`PCT/U800/08848
`
`and other means of establishing a communications link between the computers may
`
`9
`
`be used.
`
`Input Device Mapper
`
`Figure 2 depicts the use of an input device manager. Input device mapper 39
`
`is a software module that provides an interface between application programs 36
`
`and input devices, such as devices 42, 65, 66, and 67.
`
`Input device mapper 39
`
`could be a system services component of an operating system running on computer
`
`20, such as operating system 35, or a stand-alone software module, as shown in Fig.
`
`10
`
`2.
`
`Input device mapper 39 is associated with one or more genre descriptions,
`
`such as genre descriptions 211-213. An application program genre is a collection
`
`of games having similarities in operation and input device usage. A genre
`
`description for a specific genre defines mappings between input device controls and
`
`actions to be performed in a game of the genre. These actions are defined in terms
`
`semantics or labels.
`
`In the system described below, agreed upon genre semantics or labels are
`
`preferably publicized so that input device manufacturers and software developers
`
`can use input device mapper 39 in the manner described below to allow devices and
`
`software to work together. Specifically, a plurality of genres are defined and a set
`
`of possible actions is defined for each genre. This will be explained in more detail
`
`below.
`
`In Fig. 2, genre description 211 corresponds to a “driving game” genre
`
`(corresponding to example genre 1
`
`in the Examples section below). Genre
`
`description 212 corresponds to a “role playing” genre (corresponding to example
`
`genre 3 in the Examples section below). Genre description 213 corresponds to a
`
`15
`
`20
`
`25
`
`SCEA EX. 1004 Page 11
`
`SCEA Ex. 1004 Page 11
`
`

`

`WO 00/59594
`
`PCT/USOO/08848
`
`10
`
`“computer-aided design” (CAD) genre (corresponding to example genre 8 in the
`
`Examples section below).
`
`Input devices 65, 66, 67, and 42 provide input device mapper 39 with
`
`correlations or control mappings between their controls and the semantics of genre
`
`descriptions 211-213, called “control-semantic” correlations 221-225 (abbreviated
`
`“C-S correlation”).
`
`C-S correlation 221, which is shown in detail
`
`in Fig. 3,
`
`correlates the controls on driving game controller 66 with semantics chosen from
`
`the driving simulation genre.
`
`Joystick 67 is appropriate for use with both driving
`
`simulation applications and role-playing applications.
`
`Therefore,
`
`joystick 67
`
`provides two different C-S correlations: C-S correlation 222 provides a link to the
`
`controls on joystick 67 with the driving simulation genre, and C-S correlation 223
`
`provides a link to the controls on joystick 67 with the role playing genre. Mouse 42
`
`and drawing pad 65 provide C—S correlations 224 and 225, respectively, between
`
`their controls and the CAD genre.
`
`A device may provide additional C-S correlations for specific purposes. For
`
`example,
`
`the manufacturer of driving game controller 66 may provide C-S
`
`correlation 221 which is appropriate for the driving simulation genre generally, but
`
`may also provide additional C—S correlations (not shown), which refine C—S
`
`correlation 221 for use with particular driving games. Each C-S correlation may
`
`specify the applications (e.g., the “XYZ” driving game) or classes of application
`
`(e. g., all applications in a driving simulation genre) with which it may be used.
`
`Applications 36a and 36b provide input device mapper 39 with correlations
`
`between actions that they perform and available or predefined genres. These
`
`correlations are called “action-semantic” correlations (“A-S correlations”), and are
`
`referenced in Fig. 3 by numerals 231-233. Driving game application 36a provides
`
`A—S correlation 231, which is shown in detail in Fig. 4, between its actions and
`
`10
`
`15
`
`20
`
`25
`
`SCEA EX. 1004 Page 12
`
`SCEA Ex. 1004 Page 12
`
`

`

`WO 00/59594
`
`PCT/USOO/08848
`
`11
`
`semantics selected from the defined semantics of the driving simulation genre.
`
`Architectural design application 36b provides an A-S correlation between its
`
`actions and the defined semantics of the CAD genre.
`
`In addition to A-S correlation
`
`231, driving game application 36a also provides A-S correlation 232 between its
`
`actions and the defined semantics of the role-playing genre.
`
`Providing two
`
`different A-S correlations
`
`for a single application is appropriate when the
`
`application has two different phases that require different usage of the controls. For
`
`example, in driving game application 36a, the character begins by driving a car; this
`
`phase of the game is in driving simulation genre 211. Later, the character gets out
`
`of the car and explores on foot; this phase is in the role-playing genre 212.
`
`Input device mapper 39 receives C-S correlations 221-225 and A-S
`
`correlations 231-233.
`
`Input device mapper 39 creates a mapping for each
`
`application program 36a, 36b, on computer 20. For example, in order to create
`
`mapping 220 for driving game application 36a, input device mapper 39 first selects
`
`an appropriate device for the driving game genre, by determining which devices
`
`have a C—S correlation for the driving simulation genre.
`
`If there is more than one
`
`device having a C-S correlation for driving simulation genre 211, such as driving
`
`game controller 66 and joystick 67, then input device mapper 39 selects one of
`
`these devices. The selection may be made in various ways, for example by
`
`selecting the first appropriate connected device that input device mapper 39 locates,
`
`or by consulting a database of preferred devices for each genre. For example, input
`
`device mapper 39 selects game controller 66 because it is the first device that it
`
`locates which supports driving simulation genre 211. Once the device is selected,
`
`input device mapper 39 uses C-S correlation 221 and A-S correlation 231 to map
`
`controls on game controller 66 into actions that driving game application 36a
`
`performs. Input device mapper 39 may create the mapping by performing a simple
`
`10
`
`15
`
`20
`
`25
`
`SCEA EX. 1004 Page 13
`
`SCEA Ex. 1004 Page 13
`
`

`

`WO 00/59594
`
`PCT/USOO/08848
`
`12
`
`matching (i.e., by referring to C-S correlation 221 and A—S correlation 231 and
`
`linking each control with an action that is correlated with the same semantic), or it
`
`may take into account user preferences or overrides, as discussed below in the text
`
`accompanying Fig. 6.
`
`Input device mapper may create a second mapping (not shown) for a
`
`different phase of an application that requires controls to be used in a different
`
`context, such as the role-playing phase of driving simulation game 36a. That
`
`mapping is created by selecting an appropriate device for the role-playing genre,
`
`such as joystick 67, and using 08 correlation 223 and A—S correlation 232 to map
`
`the controls on joystick 67 into the actions for the role-playing phase of game
`
`application 36a. Some applications change context frequently, such as a baseball
`
`game application, where the context of the controls is different for pitching than it
`
`is for batting. Preferably, these different contexts may be supported by a single
`
`genre; for example,
`
`the baseball genre shown below (example genre 6 in the
`
`Examples section) has different semantics for batting, pitching, and fielding.
`
`Figure 3 depicts the detail of sample C—S correlation 221. Controls 301
`
`represent controls on driving game controller 66. Semantics 302 are semantics
`
`chosen from the driving simulation genre. C—S correlation 221 links controls 301
`
`with semantics 302‘ In the example depicted by Fig. 3, “Trigger 1” on game
`
`controller 66 is associated with the semantic “FIRE”, “Button 1” is associated with
`
`the semantic “SHIFT UP”, etc.
`
`Figure 4 depicts the detail of sample A-S correlation 231. Actions 401
`
`represent actions that driving game application program 236 can perform at the
`
`user’s request. Semantics 402 are semantics chosen from driving simulation genre
`
`211.
`
`In the example depicted by Fig. 4, the action performed by the driving game
`
`10
`
`15
`
`20
`
`25
`
`SCEA EX. 1004 Page 14
`
`SCEA Ex. 1004 Page 14
`
`

`

`WO 00/59594
`
`PCT/USOO/08848
`
`13
`
`described as “turn left or right” is associated with the semantic “STEER”, “speed
`
`up” is associated with the semantic “ACCELERATE”, etc.
`
`Figure 5 depicts a sample mapping 220 created by input device mapper 39,
`
`which links the controls on game controller 66 with actions performed by driving
`
`game application 36a. Controls 301 are correlated with semantics, as defined in C-
`
`S correlation 221. The semantics are correlated with software actions 401, as
`
`defined in A-S correlation 231. In the example, “trigger 1” 502 on game controller
`66 is correlated with the semantic “FIRE” 503, which, in turn, is correlated with the
`
`software action “fire machine guns” 504.
`
`The detail of an entry in the mapping is shown in items 511-513. Each entry
`
`contains a controller code 511, an application code 512, and a label 513. The
`
`controller code 511 is the data that an input device generates when a particular
`
`control has been operated. For example,
`
`the game controller could signify that
`
`trigger 1 has been pressed by generating the number “1002.” The application code
`
`512 is the item of input that an application expects to receive as an instruction to
`
`perform a particular action. For example, the input “64379” could instruct driving
`
`game application 36a to fire machine guns. Label 513 is a text string provided by
`
`application program 36a, which is a plain language description of the action that
`
`application program 36a will perform upon receiving application code 512 as its
`
`input. For example, “fire machine guns” is a label describing the action that will be
`
`performed by driving game application 36a when trigger 1 is depressed. The labels
`
`are helpful for displaying a graphic representation of the mapping, as described
`
`below in the text accompanying Fig. 6.
`
`A mapping can be bi—directional. For example,
`
`it will be observed that
`
`mapping 220 shows a software action “feedback” 509 mapped into the “vibrate”
`
`control 511 on game controller 66 through the semantic “RUMBLE” 510. A genre,
`
`10
`
`15
`
`20
`
`25
`
`SCEA EX. 1004 Page 15
`
`SCEA Ex. 1004 Page 15
`
`

`

`WO 00/59594
`
`PCT/USOO/08848
`
`14
`
`such as driving simulation genre 211, may contain semantics such as “RUMBLE,”
`
`which represent functions that the device is able to perform at the request of an
`
`application. The direction of the arrows indicates that “feedback” is a command
`
`that driving game application 36a issues to game controller 66. For example, game
`
`controller 66 may be equipped with a mechanical device that vibrates the game
`
`controller, and driving game application 36a may wish to provide feedback to the
`
`game player in response to certain events, such as a car crash.
`
`In this case, driving
`
`game application 36a includes a feedback—RUMBLE link in A-S correlation 231.
`
`Similarly, driving game controller 66 includes a vibrate—RUMBLE link in C-S
`
`correlation 221. Input device mapper 39 links “feedback” to “vibrate” in mapping
`
`220.
`
`Figure 5 also shows a control labeled “button 2” 505 on game controller 66,
`
`which is correlated with the semantic “TALK” 506, which might be appropriate for
`
`the action of operating a two-way radio to talk with other drivers. This correlation
`
`means that button 2 is mapped to an action correlated with the “TALK” semantic in
`
`an application that has such an action. Driving game application 36a, however,
`
`does not have an action correlated with the “TALK” semantic; therefore, button 2
`
`on game controller 66 does not map to any action in driving game application 36a.
`
`It will also be observed in Fig. 5 that mapping 220 uses a semantic
`
`“DASHBOARD” 507, which is correlated with the action in driving game
`
`application 36a of changing the dash display, and it will also be observed that game
`
`controller 66 does not have a control correlated with the “DASHBOARD”
`
`semantic. A feature of input device mapper 39 is that it provides an application
`
`with the model that all of the defined semantics in a genre are supported in any
`
`computer system on which the application may be running, such as computer 20.
`
`For example, even though game controller 66 does not have a control correlated
`
`10
`
`15
`
`20
`
`25
`
`SCEA EX. 1004 Page 16
`
`SCEA Ex. 1004 Page 16
`
`

`

`WO 00/59594
`
`PCT/U800/08848
`
`13
`
`with the “DASHBOARD” semantic, driving game 36a may still correlate its
`
`“change dash display” action with the semantic “DASHBOARD,” and input device
`
`mapper 39 will locate an appropriate auxiliary input for that action.
`
`In mapping
`
`220, auxiliary input 501 is selected by input device mapper 39 to implement the
`
`“DASHBOARD” semantic. Auxiliary input 501 may be a key on keyboard 40, an
`
`unused control on game controller 66 such as control 505, a pop-up menu that the
`
`user can control with pointing device 42, or any other mechanism by which the user
`
`can communicate with computer 20.
`
`The genres may be defined such that some semantics must be mapped to the
`
`primary input device selected by input device mapper 39 and may not be mapped to
`
`an auxiliary input outside of t

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket