`(12) Patent Application Publication (10) Pub. No.: US 2010/0073283 A1
`Enright
`(43) Pub. Date:
`Mar. 25, 2010
`
`US 20l00073283Al
`
`(54) CONTROLLER WITH USER-SELECTABLE
`DISCRETE BUTTON EMULATION
`
`(22)
`
`Filed:
`
`Sep. 19, 2008
`
`Publication Classification
`
`(76)
`
`Inventor:
`
`Robert Enright, Brentwood, NY
`(US)
`
`(51)
`
`Int CL
`G09G 5/00
`
`(2006.01)
`
`Correspondence Address:
`BARKUME & ASSOCIATES P.C.
`20 GATEWAY LANE
`3
`MANORVILLE, NY 11949 (US)
`
`(21) App], No;
`
`12/233,803
`
`(52) U.S. Cl. ...................................................... .. 345/156
`57
`ABSTRACT
`
`)
`(
`A user device with a position control device such as a thumb-
`stick may be used to emulate discrete button presses via user
`selection ofa mode switch on the device.
`
`DISCRETE BUTTONS
`
`$$®
`
` POSITION CONTROL 0
`
`DEVICE
`
`...>____--------__ N
`
`cU)rn:1 0IT!5nrn
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 001
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 001
`
`
`
`Patent Application Publication
`
`Mar. 25, 2010 Sheet 1 of 8
`
`US 2010/0073283 A1
`
`.3
`
`zo:<o_#E<
`
`s.<moo~E
`
`
`
`m4<zo_mzotamm._.mmom_o
`
`
`
`
`
`<._.<Om:.<z_omoouzo:._wo._
`
`
`
`
`
`mo_>mooz.Sn=2ou.50:
`
`
`
`—.mm:u_n_
`
`
`
`mzotammfimoma
`
`QQUQUQU
`
`
`
`.._om»zouzoEwoa
`
`wo_>mo
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 002
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 002
`
`
`
`
`
`
`
`
`
`Patent Application Publication Mar. 25, 2010 Sheet 2 of 8
`
`US 2010/0073283 Al
`
`
`
`
`
`mosmoozE.Es_oo._.mOI
`
`zo=<u:.E<
`
`Ezfiwmooma_
`
`._<zo_mmoo:
`
`
`
`
`
`55.005._<.r<Om»<z_amoouzoEmo..
`
`
`
`
`
`m._<zo_mzo._..5mmpmmoma
`
`Nmane:
`
`
`
`mzotbmw.E¢um_o
`
`°@®OU
`
`
`
`4om._.zouzo_.:mo._
`
`mo_>mo
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 003
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 003
`
`
`
`
`Patent Application Publication Mar. 25, 2010 Sheet 3 of 8
`
`US 2010/0073283 A1
`
`nmaze:
`
`
`
`
`
`f..\..mo_>moom»<mom:z_
`
`».
`
`zofi<o:am<
`
`2<moomm
`
`m
`
`
`
`._oEzoozoEmo._
`
`mu_>mo
`
`
`
`Ormzotnmm.m_mom_o
`
`QOUQUQU
`
`IU.:>>mwoos
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 004
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 004
`
`
`
`
`
`Patent Application Publication Mar. 25, 2010 Sheet 4 of 8
`
`US 2010/0073283 A1
`
`FIGURE 4
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 005
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 005
`
`
`
`Patent Application Publication Mar. 25, 2010 Sheet 5 of 8
`
`US 2010/0073283 A1
`
`FIGURE 5
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 006
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 006
`
`
`
`Patent Application Publication Mar. 25, 2010 Sheet 6 of 8
`
`US 2010/0073283 A1
`
`FIGURE 6
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 007
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 007
`
`
`
`Patent Application Publication Mar. 25, 2010 Sheet 7 of 8
`
`US 2010/0073283 A1
`
`46
`
`FIGURE 7A
`
`42
`
`52
`
`46
`
`
`
`FIGURE 7B
`
`48
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 008
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 008
`
`
`
`Patent Application Publication Mar. 25, 2010 Sheet 8 of 8
`
`US 2010/0073283 A1
`
`
`EXISTING SOFTWARE
`
`MANAGES INPUT TO AND
`
`OUTPUT FROM INPUT
`
`DEVICE
`
`
`
`
`
`INPUT: POSITIONAL
`
`COORDINATE DATA
`
`AND MODE SIGNAL
`
`FROM INPUT DEVICE
`
`
`
`IS
`MODE SWITCH
`
`PRESSED
`
`?
`
`
`
`
`
`OUTPUT NEUTRAL
`
`POSITION COORDINATE
`DATA FOR
`ASSOCIATED
`POSITIONAL POINTER
`
`
`
`
`
`
`
`
`
`USE POSITION COORDINATE
`DATA INPUT TO DETERMINE
`THE POSITION OF THE
`POINTER
`
`
`
`DETERMINE WHICH
`PREDEFINED REGION THE
`POSITIONAL POINTER
`RESIDES IN
`
`
`
`
`
`
`
`OUTPUT THE VALUE
`
`OF THE BUTTON
`ASSOCIATED WITH
`
`THAT REGION
`
`
`
`FIGURE 8
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 009
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 009
`
`
`
`US 2010/0073283 A1
`
`Mar. 25, 2010
`
`CONTROLLER WITH USER-SELEC TABLE
`DISCRETE BUTTON EMULATION
`
`could be activated by sweeping the position control pointer
`through multiple sections as defined by the application.
`
`TECHNICAL FIELD
`
`DISCLOSURE OF THE INVENTION
`
`[0001] This invention relates to input controller devices
`such as video game controllers and the like, and in particular
`to a system and method for implementing a user-selectable
`button emulation mode wherein the position data from a
`thumbstick or the like may be interpreted as presses of a
`discrete button.
`
`BACKGROUND OF THE INVENTION
`
`[0002] As electronic devices become more complex, with a
`growing list of functions, the associated user input devices
`have become more complex and harder to use. Looking for
`the correct button to implement a desired function has
`become a difiicult task, and when coupled with a need for
`speedy inputs (such as gaming), it has become an intimidating
`task for the user to move their finger from one button to next
`desired button. In addition, video equipment such as playback
`devices and set-top boxes have controllers that are clogged
`with small buttons placed close together, making it difficult to
`find and press only the desired button.
`[0003]
`In addition, in the video gaming field, game control-
`lers such as an XBOX360 controller include a position con-
`trol device, such as a thumbstick, that enables the user to
`direct the gaming application to move a character in a desired
`direction or to control a camera view angle. The user normally
`will manipulate the thumbstick as desired during game play,
`but then may need to depress one or more of several available
`discrete buttons in order to perform additional desired func-
`tions, such as having the character jump or kick. Moving the
`finger from the thumbstick to a button on the controller and
`then back to the thumbstick is a difficult task for many users,
`especially novice users.
`[0004]
`In addition, many applications such as video games
`will require the user to select two buttons at the same time in
`order to generate a certain function. That is, in order to gen-
`erate a first function the user must press button X, in order to
`generate a second function the user must press buttonY, and
`in order to generate a third function the user must press
`buttons X andY simultaneously. This is also a difficult task
`for many users, especially since it requires taking the finger
`off of the thumbstick and positioning the thumb over the
`control button without looking away from the game display.
`[0005]
`It is therefore desired to provide a user-operated
`controller device that can allow a user to easily select discrete
`button commands on the controller without looking at the
`buttons or having to move his finger off of the thumbstick or
`other type of position control device.
`[0006]
`It is also desired to provide a user-operated control-
`ler device that can allow a user to easily select button com-
`mands on the controller that would otherwise require simul-
`taneous selection of more than one button.
`
`It is further desired to provide a user-operated con-
`[0007]
`troller device that can allow a user to easily select additional
`button commands on the controller in addition to those
`
`assigned to existing buttons on the controller (i.e. to provide
`new additional options).
`[0008]
`It is also desired to assist memorization of com-
`mands for in-garne actions by relating those actions to spe-
`cific pointer/thumb movements. For example, swinging a bat
`
`[0009] The present invention accomplishes these obj ec-
`tives by selectively using the positional data from a position
`control device (such as a thumbstick) to mimic or emulate
`existing physical input buttons or to add functionality without
`having to provide additional buttons. Positional data, typi-
`cally X and Y coordinates, are used to define a point on a
`plane. Multiple X,Y data sets are typically used to determine
`movement of that point on the plane defined by the physical
`movement range of the X-Y input device. These movement
`data sets are then output to the controlled device (such as a
`gaming console or a personal computer).
`[0010] This invention will allow the plane defined by the
`movement area of the position control input devices to be
`divided logically into various regions, and to assign a unique
`output value to each section. If the physical movement range
`ofthe X-Y input device defines a circular plane, then multiple
`wedge-shaped regions ofthat circular plane would be defined
`by their X,Y values. The present invention reinterprets X,Y
`input data to determine which assigned discrete button value
`should be output to the controlled device.
`[0011] Thus, by defining regions of the plane as discrete
`buttons, the need to remove a finger from one button and
`move it to the next is eliminated. If desired, the cost and size
`ofthe input device can also be reduced with the elimination of
`each button that is now assigned to a section of the plane
`defined by the X-Y input devices physical movement range.
`[0012] The user is able to select between a position mode,
`for which the positional data from the position control device
`is interpreted as position data as in the prior art, and a discrete
`mode, for which the positional data from the position control
`device is interpreted as discrete button press information as
`described herein.
`
`[0013] Accordingly, the present invention in a first embodi-
`ment is a device that includes a housing and a user-control-
`lable mode switch connected to the housing enabling a user to
`select a position mode or a discrete mode. A position control
`device (such as a thumbstick or trackball) is also connected to
`the housing, and it is manipulatable by a user to provide
`position coordinate data that varies in accordance with a
`position of the position control device (such as X-Y coordi-
`nate data). Processing circuitry is coupled to the mode switch
`and the position control device, and is adapted to determine if
`a user has selected the position mode or the discrete mode.
`When the mode switch is in the position mode, the position
`coordinate data is output as a function of the position of the
`position control device. When the mode switch is in the
`discrete mode, at least one discrete signal may be output as a
`function of the position of the position control device.
`[0014] The position control device may be adapted to track
`manipulation thereof by a user over a predefined coverage
`area, wherein the coverage area is logically divided into a
`plurality of regions, and wherein each discrete signal is asso-
`ciated with one of the regions, such that manipulation of the
`position control device into a region will cause the processing
`circuitry to output the discrete signal associated with that
`region when the mode switch is in the discrete mode. The
`output of a discrete signal may emulate a single button selec-
`tion by the user, or it may emulate a dual button selection by
`the user, or any other function as defined by the application
`program.
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 010
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 010
`
`
`
`US 2010/0073283 A1
`
`Mar. 25, 2010
`
`[0015] A plurality of buttons may also be connected to the
`housing and coupled to the processing circuitry, wherein
`selection by the user of a button will cause the processing
`circuitry to output a discrete signal associated with that but-
`ton, and further when the mode switch is in the discrete mode,
`a discrete signal output by the processing circuitry as a func-
`tion ofthe position ofthe position control device emulates the
`selection by the user of an associated button. The housing
`may be a user input or control device such as, but not limited
`to, a video game controller, a computer mouse, or a gyro-
`scopic control device.
`[0016]
`In a second embodiment ofthe invention, a system is
`provided that includes a user device and a host computing
`device interconnectable with the user device. The user device
`
`includes a housing, a user-controllable mode switch con-
`nected to the housing, and a position control device connected
`to the housing. The mode switch outputs a mode signal that
`indicates if a user has selected a position mode or a discrete
`mode. The position control device is manipulatable by a user
`to provide position coordinate data that varies in accordance
`with a position ofthe position control device. The user device
`also has means for transmitting the mode signal and the
`position coordinate data to a host computing device, which
`may for example be a wireless or a wired connection. The host
`computing device includes means for receiving the mode
`signal and the position coordinate data from the user device,
`and processing circuitry that is adapted to determine if a user
`has selected the position mode or the discrete mode based on
`the mode signal. When the mode signal indicates that the
`mode switch is in the position mode, then the position coor-
`dinate data is processed as a function of the position of the
`position control device. When, however, the mode signal
`indicates that the mode switch is in the discrete mode, then the
`position coordinate data is processed as at least one discrete
`signal as a function of the position of the position control
`device.
`
`In a third embodiment ofthe invention, an integrated
`[0017]
`hand-holdable computing system is provided, that includes a
`housing, a user-controllable mode switch connected to the
`housing, a position control device connected to the housing,
`and processing circuitry. Optionally a display and/or speakers
`are provided. The mode switch outputs a mode signal that
`indicates if a user has selected a position mode or a discrete
`mode. The position control device is manipulatable by a user
`to provide position coordinate data that varies in accordance
`with a position of the position control device. The processing
`circuitry is adapted to determine if a user has selected the
`position mode or the discrete mode based on the mode signal.
`When the mode signal indicates that the mode switch is in the
`position mode, then the position coordinate data is processed
`as a function of the position of the position control device.
`When, however, the mode signal indicates that the mode
`switch is in the discrete mode, then the position coordinate
`data is processed as at least one discrete signal as a function of
`the position of the position control device.
`[0018]
`Provided also is a method of operating a device by
`enabling a user to operate a mode switch in order to select a
`position mode or a discrete mode, enabling the user to
`manipulate a position control device to provide position coor-
`dinate data that varies in accordance with a position of the
`position control device, and determining ifthe mode switch is
`in the position mode or the discrete mode. If the mode switch
`is in the position mode, then the position coordinate data is
`processed as a function of the position of the position control
`
`device, but if the mode switch is in the discrete mode, then at
`least one discrete signal is processed as a function of the
`position of the position control device.
`
`BRIEF DESCRIPTION OF THE DRAWING
`
`FIG. 1 is a block diagram of a first embodiment of
`[0019]
`the present invention which is implemented completely in a
`controller device that is separate from a host device.
`[0020]
`FIG. 2 is a block diagram of a second embodiment
`of the present invention which is implemented in a combina-
`tion controller device and a separate host device.
`[0021]
`FIG. 3 is a block diagram of a third embodiment of
`the present invention which is implemented in an integrated
`hand-holdable computing system.
`[0022]
`FIG. 4 shows an exemplary user device that may be
`utilized in accordance with the present invention.
`[0023]
`FIG. 5 illustrates the underside of the housing ofthe
`user device of FIG. 4.
`
`FIG. 6 illustrates the housing of the user device of
`[0024]
`FIG. 4, with the thumbstick controller partially removed to
`illustrate the operation of the thumbstick.
`[0025]
`FIG. 7A illustrates implementation of a four-region
`position control device, and FIG. 7B illustrates implementa-
`tion of an eight-region position control device.
`[0026]
`FIG. 8 illustrates a flowchart of the operation of the
`present invention.
`
`BEST MODE FOR CARRYING OUT THE
`INVENTION
`
`[0027] The present invention may be implemented in at
`least any ofthe three embodiments that will now be described
`with reference to the Figures. FIG. 1 is a block diagram of a
`first embodiment of the present invention which is imple-
`mented completely in a user controller device 2 that is sepa-
`rate from a host computing device 12. For example, the user
`device 2 may be a video game controller (wired or wireless)
`and the host computing device 12 may be a gaming console
`such as an XBOX3 60 or a personal computer. The user device
`2 includes a housing that has a user-controllable mode switch
`4 and a position control device 6 (such as a thumbstick)
`connected thereto, for example at least partially on the outside
`of the housing so as to give a user access to control of these
`devices. Processing circuitry 8 and supporting memory reside
`in the housing, and are coupled to the mode switch 4 and the
`position control device 6. Optionally, a set of discrete buttons
`10 (including for example, the X, Y, A and B buttons) are also
`provided on the housing. Other user control devices such as
`triggers, D-pads, and additions thumbsticks may be provided
`as known in the art.
`
`[0028] The mode switch 4 is preferably a two-position
`switch that may be selectively set to either a position mode or
`a discrete mode by the user during operation. For example,
`the mode switch may be a momentary switch that is normally
`biased in the position mode, but which is then momentarily
`set to the discrete mode by the user when desired. One of the
`functions of the processing circuitry, as will be further
`described herein, is to detect if the mode switch 4 is in the
`position mode or the discrete mode. When the processing
`circuitry detects the position mode, it will cause the position
`coordinate data generated by the position control device (e.g.
`the X-Y data) to be transmitted to the host computing device
`12 and processed by the application program 14 in a normal
`prior art manner. Thus, in the case wherein the host comput-
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 011
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 011
`
`
`
`US 2010/0073283 A1
`
`Mar. 25, 2010
`
`ing device 12 is a gaming console such as an XBOX360, and
`the user device 2 is an XBOX360 controller adapted in accor-
`dance with this invention, then the user device will send the
`X-Y data as generated by the position control device (thumb-
`stick) 6 as known in the art. When, however, the user selects
`the discrete mode by operating the mode switch 4, then the
`processing circuitry will analyze the position coordinate data
`from the thumbstick 6 in accordance with this invention, and
`as a result output various discrete (button) signals to the host
`computing device 12. This particular methodology will be
`described further below. When the user re-selects the position
`mode (such as by letting go ofthe mode switch 4 if it is biased
`to return to the position mode), then the position control data
`will resume being transmitted to the host computing device as
`in the prior art. In this embodiment of the invention, the
`processing and intelligence ofthe invention resides in the user
`device 2, and the host computing device is unaware as to how
`the various button press signals are generated. Thus, the user
`device 2 of this first embodiment may be used to retrofit
`existing game consoles and the like without requiring adap-
`tation to the console or gaming software executing thereon.
`[0029]
`FIG. 2 is a block diagram of a second embodiment
`of the present invention which is implemented in a combina-
`tion controller device and a separate host device. Here, the
`processing and intelligence to ascertain ifthe position control
`data should be interpreted as position control data or as button
`presses will reside in the host computing device 12. In FIG. 2,
`the processing circuitry of the user device 2 is shown as
`omitted for purposes of this invention, although it is under-
`stood that some processing circuitry will exist in the user
`device 2 as known in the art. In this case, the mode signal from
`the mode switch 4 is transmitted along with the position
`coordinate data (and optional discrete data from additional
`hardwired buttons if desired) directly to the processing and
`application program 16 of the host computing device 12.
`Here, the transmitting means may be any know device such as
`a USB transmitter, bluetooth transmitter etc., and the receiv-
`ing means in the host computing device may be any known
`compatible device such as a USB receiver, bluetooth receiver,
`etc. The determination of how to process the position coordi-
`nate date (i.e. as position coordinate data or as discrete button
`presses) will be made by the processing and application pro-
`gram 16. Thus, the invention in this embodiment is distributed
`amongst the user device 2 and the host computing device 12.
`It is noted that the application program itself (such as a video
`game program) may provide the analysis of the signal infor-
`mation from the user device 2, or the host operating system
`may be programmed accordingly and control the game soft-
`ware if desired.
`
`FIG. 3 is a block diagram of a third embodiment of
`[0030]
`the present invention which is implemented in an integrated
`hand-holdable computing system 22, such as a SONY PSP
`device. In this case, all functionality of the invention as
`described herein resides in the same hand-holdable housing.
`[0031] Referring back to the first embodiment, further
`details of the present invention are now provided. FIG. 4
`shows an exemplary user device 2 that may be utilized in
`accordance with the present invention. Hand-holdable hous-
`ing 24 is known in the art and is easily held by a user. The
`housing 24 contains at least one position control device,
`which in this example is the right-thumb thumbstick 26. Also
`shown in the housing 24 is a D-pad 28, a second (left-thumb)
`thumbstick 30, and a set of discrete buttons which include the
`X, Y, A and B buttons 25. The operation ofthis invention may
`
`provide for the thumbstick 26 to emulate the pressing of any
`or all of the buttons 25 alone or in selected combination, or it
`may emulate additional button presses of buttons not other-
`wise provided on the housing. This top side of the housing 24
`will appear to the user as any conventional game controller
`device as known in the art.
`
`FIG. 5 illustrates the underside of the housing 24,
`[0032]
`with a first mode switch 32 and a second mode switch 34
`
`provided. These have been added in accordance with the
`present invention and are not found in controllers of the prior
`art. Two mode switches 32, 34 are shown, although only one
`such mode switch is required for this invention. The device
`may be configured such that either of the mode switches 32,
`34 will change the mode of the thumbstick 26 in accordance
`with this invention. This will accommodate left-handed as
`
`well as right-handed users as desired. Or, ifdesired, one mode
`switch may operate in conjunction with the thumbstick 26
`and the other may operate in conjunction with the thumbstick
`30. Of course, it may be desired to provide only ofthese mode
`switches 32 or 34. For purposes of explanation we will refer
`to the mode switch 32 but the invention applies equally to the
`use of mode switch 34. In addition, these mode switches are
`shown in FIG. 5 on the underside since they will reside near
`the user’s finger(s), which makes for easy operation of the
`invention. That is, the user naturally grasps the housing 24
`such that one hand curls around the left grip 35 and the other
`hand curls around the right grip 33, making placement near
`the mode switches 32, 34 optimal. It is noted that the switches
`may be located elsewhere on the housing if ergonomically
`desired.
`
`FIG. 6 illustrates the housing 24 of FIG. 4, with the
`[0033]
`cap of thumbstick controllers 26 and 30 partially removed to
`illustrate the operation of the thumbstick. As can be seen, the
`thumbstick may be manipulated in two degrees of freedom,
`that is, in the X-Y plane. In the position mode (the normal
`prior art mode), the manipulation of the thumbstick by the
`user will provide a set of X-Y coordinates that indicate the
`relative location of the thumbstick. So, if the user is control-
`ling the movement of a character in a video game with the
`thumb stick, he may push the thumbstick all the way to the left
`to get the character to go the left. Similarly, he may have the
`character go partially to the left and partially forward by
`moving the thumbstick accordingly. Thumbstick technolo-
`gies (or any position control technology) are well known the
`art and need not be discussed further herein; suffice it to state
`that X-Y coordinate data is generated by movement of the
`thumbstick from the center (quiescent or null) position.
`[0034] When the user selects the mode switch 32 to be in
`the discrete mode, however, then the processing circuitry will
`interpret the position control data (the X-Y data) from the
`thumbstick to generate discrete signals indicative of associ-
`ated button presses. FIGS. 7A and 7B illustrate the coverage
`area of the thumbstick in this embodiment. In this case, the
`area is logically divided into four regions (FIG. 7A) or into
`eight regions (FIG. 7B). In both instances an additional null
`region 56 is provided in the center. Referring to FIG. 7A,
`when the user manipulates the thumbstick to be anywhere in
`region 40, then a discrete signal is generated by the process-
`ing circuitry 8 to indicate an associated button press by the
`user. In this embodiment, region 40 will cause the processing
`circuitry to signal that button A has been pressed by the user.
`Likewise, when the user manipulates the thumbstick to be
`anywhere in region 42, then a discrete signal is generated by
`the processing circuitry 8 to indicate that associated button
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 012
`
`PETITIONER VALVE CORPORATION, EX. 1004 p. 012
`
`
`
`US 2010/0073283 Al
`
`Mar. 25, 2010
`
`press B has been made by the user; when the user manipulates
`the thumbstick to be anywhere in region 44, then a discrete
`signal is generated by the processing circuitry 8 to indicate
`that associated button press Y has been made by the user; and
`when the user manipulates the thumb stick to be anywhere in
`region 46, then a discrete signal is generated by the process-
`ing circuitry 8 to indicate that associated button press X has
`been made by the user.
`[0035]
`So, when in the discrete mode, the user device 2 will
`output discrete button signals to the host device 12 whether
`they were generated by actually pressing the button on the
`housing or by manipulating the thumbstick as described
`above. The application program 14 running in the host com-
`puting device 12 is unaware of how the button presses were
`made by the user and operates on them regardless of their
`origin. By using the discrete mode of the present invention,
`the user may quickly depress the mode switch 32, 34 when he
`or she desires to emulate a button press ofX,Y, A or B without
`having to move his thumb off of the thumbstick, and then
`return to normal by releasing the mode switch when desired.
`[0036]
`In the alternative to emulating button presses of
`pre-existing buttons X, Y, A and B (or others on the housing),
`the present invention may be useful to emulate button presses
`of new buttons that have no hardware equivalent. That is, the
`application software may benefit from additional button
`presses without having to add buttons to the housing. So, if a
`housing has ten buttons in hardware, the application software
`may be adapted to accept fourteen buttons, which would be
`the ten existing hardware buttons and the four new emulation
`buttons from implementing the present
`invention. For
`example, as shown in FIG. 6, region B9 will cause buttonY to
`be emulated. Likewise, region B10 will cause buttonA to be
`emulated, region B11 will cause button X to be emulated, and
`region B12 will cause button B to be emulated. In the same
`manner, regions B5, B6, B7 and B8 in thumbstick 30 will
`optionally be associated with other discrete buttons for the
`device.
`
`[0037] This invention is not limited to emulation of four
`buttons, and may be extended further. As shown in FIG. 7B,
`the coverage area of the thumbstick may be logically divided
`into eight distinct regions 40, 42, 44, 46, 48, 50, 52, and 54, as
`well as null region 56 in the center. In this example, the
`processing circuitry is programmed to output discrete button
`signals for both buttons A and B when region 48 is entered.
`This is useful for the situation where a user needs to make a
`
`dual-button press, such as by pressing A and B simulta-
`neously the character will jump and kick. This can be an
`especially difficult move to make, and by allowing the user to
`select the discrete mode, and then manipulate the thumb stick
`into region 48, this otherwise difficult move is made much
`easier to implement. The same is true for region 50 (B andY
`presses emulated), region 52 (X andY presses emulated), and
`region 54 (A and X presses emulated). Likewise, any ofthese
`eight regions may be logically associated with any existing
`button or combination of buttons on the controller, or they
`may emulate additional buttons if desired.
`[0038] The null region 56 is provided for a quiescent posi-
`tion in which no button press is emulated and thus no discrete
`signals are generated by the processing circuitry 8. When the
`thumbstick is in the middle quiescent position, it will reside
`over the null region, and no signals are generated. Once the
`user manipulates the thumbstick into the desired region, how-
`
`ever, a predetermined threshold is reached and the corre-
`sponding button press(s) will be generated as described
`above.
`
`[0039] The present invention may operate optionally in a
`single press mode or in a repeat press mode. In the single press
`mode, the user manipulates the thumbstick into the desired
`region to generate the desired button press, and must exit that
`region (either to the null region or another button region) and
`then return to generate another ofthe same button press. In the
`alternative, in the repeat press mode, a timer function is used
`to determine if the thumb stick remains in the region for more
`than a predefined time. If the thumb stick remains in that
`region then successive button presses are generated by the
`processing circuitry until the user manipulates the thumb stick
`to another region or to the null region 56. This is similar to a
`repeat mode of a keypad wherein holding a certain key down
`will cause successive key entries until released.
`[0040] Various types of position control devices 6 may be
`used with this invention. There exist various types of thumb-
`stick or joystick controllers, both of the analog and digital
`type, that are useful in this invention. One example of an
`analog joystick uses a magnet, along with four small sensors.
`The sensors are arranged like a compass, with one at each of
`the cardinal points (north, south, east, west). The base of the
`joystick is shaped like a ball, with tiny spokes radiating out.
`The ball sits in a socket above the sensors. Spikes on the
`socket fit between the spokes on the ball. This allows for
`movement without letting the joystick twist out of alignment
`with the sensors. As the joystick is moved, the magnet in the
`base moves closer to one or two of the sensors, and farther
`from the others. The processing circuitry monitors the
`changes in induction caused by the magnet’s movement to
`calculate the position of the joystick.
`[0041]
`In another type of analog joystick, two wheels are
`positioned at right angles to each other below the joystick.
`Whenever the joystick is moved, the two wheels turr1 slightly.
`Tiny slots are arranged around the perimeter of each wheel.
`The wheels are each mounted between an LED (Light Emit-
`ting Diode) and a photocell. Light from the LED, shining
`through the slots in the wheel on the cell, creates a small
`amount of current. When the amount of light changes, the
`level of current changes. By monitoring the output of each
`photo cell, the processing circuitry can determine the exact
`angle at which the joystick is being held.
`[0042]
`In a further type of analog joystick, two potentiom-
`eters are positioned at right angles to each other below the
`joystick. Current flows constantly through each one, but the
`amount of current is determined by the amount of resistance.
`Resistance is increased or decreased based on the position of
`the joystick. By monitoring the output of each potentiometer,
`the processing circuitry can determine the exact angle at
`which the joystick is being held.
`[0043]
`In addition to thumbsticks orjoysticks, devices such
`as trackballs and computer mice may be used as a position
`control device in accordance with this invention. These may
`utilize analog technologies or digital technologies such as
`optical encoders, as well known in the art. For example, in a
`mouse embodiment, a mode switch may be provided so that
`the user can select the discrete mode and cause the mouse to
`
`output various discrete commands