PHOTENSITIVE INPUT PERIPHERAL DEVICE IN A PERSONAL COMPUTER-BASED VIDEO GAMING PLATFORM

Abstract: An interactive video game computer system with a light sensitive peripheral device having a photosensitive transducer operating in conjunction with a personal computer platform. The gun or pen-shaped light-sensitive device is connected to a peripheral adapter coupled between the computer and a video monitor. The peripheral adapter captures the horizontal and vertical synchronization signals from the video adapter card in the computer and sends them to the light sensitive pheripheral device so that processing circuitry therein can generate a peripheral position signal indicative of the position of the field of view of the photosensitive transducer relative to the screen. The light sensitive peripheral device also has means for transmitting the peripheral position signal to the computer means for further processing. This allows a light gun or pen to be used with a conventional personal computer without having to modify the computer with additional circuit boards and operating system changes.

Description: PHOTOSENSITIVE INPUT PERIPHERAL DEVICE IN A PERSONAL COMPUTER-BASED VIDEO GAMING PLATFORM BACKGROUND OF THE INVENTION This invention relates to a light sensitive peripheral device having a photosensitive element for sensing the relative position of trie field of view of the device m relation to a video monitor screen, and m particular to such a device that is compatible with a personal computer based game platform. Video games are specifically used within the body of this document to describe this invention. It is tne intent that the term "video game" is to be interpreted as any application software program that could utilize a light sensitive device for user interaction with the video display such that positional feedback is provided to the computer system. Video games are extremely popular for many reasons attributable to the game being played, as well as the variety of different input devices available for use in controlling or playing the game. For example, input devices include joysticks, steering wheels, gas/brake pedal assemblies, and photosensitive light receiving devices such as light pens and light guns. Light guns are particularly popular for use with games where targets are presented on the screen and the player must shoot the target by pointing the gun at the target and pulling a trigger. In the home-based video game market, there are two basic types of platforms in use; the dedicated console platform, and the personal computer platform. Dedicated consoles are self-contained microprocessor-based units that function to receive game modules such as ROM cartridges or CD-ROMs, execute the instructions on the game module, and present the game's images and sounds to the player (s) via a conventional television set (or optionally a self-contained display screen) . Input devices such as the light gun are connected to the console to allow the player to control the operation of the game m conjunction with the images viewed and sounds heard via the television set. Personal computer based video games take advantage of existing computers already in use by millions of people, by allowing a player to play a game by simply loading and executing a video game program. Usually, a joystick is connected to a game port located within the computer, which allows the player to control operation of the game since the game port is coupled to the CPU via the computer' s various buses. If a joystick or game port is not available, the player may be able to control the game with the keyboard or mouse, but the ergonomics presented by these devices do not lend themselves to efficient playing or enjoyment of the game . Although many games can be played on the personal computer platform without the joystick, it is not practical to play a shooting game unless a light gun is utilized. That is, the very nature of the shooting game requires the player to aim at the screen with a sight on the gun and pull a trigger at the desired time m hopes of "hitting" the target. There is no practical way of emulating this experience with a keyboard or mouse since they cannot be aligned visually with the screen targets, and they cannot provide the screen positional feedback data (to be described below) to the CPU that is necessary to control the game. Application software, such as word processors, spreadsheets and Internet browsers predominantly utilize the keyboard and mouse for user input, text selection, or button activation. The display elements are indirectly acted upon by the relative movement of a mouse m a remote location with respect to the display. Light guns have been used with television sets connected to dedicated consoles for several years. The light gun relies on the physics of the television screen to αetect the specific location at which the light gun is pointed at any particular time. As well known in the art, television screens utilize a scanning electron beam (or beams) that trace horizontally and vertically in a raster pattern to form the image that the viewer's eyes perceive. As an aid n generating the raster pattern, horizontal and vertical synchronization signals are generated by the control electronics that produce the video signal and then detected and used by the electronics associated with the television to properly reproduce the image across the screen . Although the scanning of the beam across and down the screen is generally not perceivable to the human eye, it is possible for a photosensitive device to detect the existence of the beam at a particular position on the screen. This is the oasis on which light guns operate with dedicated video game consoles in use today. Thus, the light gun has a photosensitive device located at the tip of the simulated gun, as well as an electronic switch that is actuatable by pulling a simulated trigger. When the photosensitive device is pointed at a target area on the screen, it will sense when the electron beam is scanned across the screen and send that information (optionally in conjunction with a trigger press) to an input port on the dedicated game console. Since the CPU in the game console generated the images to be displayed on the screen, and in particular since it generated tne horizontal and vertical synchronization signals, it can determine the relative position on the screen at which the light gun was aimed by calculating the phase difference between the start of the raster pattern and the time the electron beam was sensed by the pnotosensitive device. Notwithstanding their popularity, light guns have heretofore not been able to be used with video games running on personal computers because of tne certain differences that exist between the dedicated game console and the personal computer, which make tne conventional light gun impossible to use. In a personal computer, the CPU provides digital image data in the form of frames or bit maps to a video adapter board (e.g., a VGA or SVGA board) . The video adapter board then generates the appropriate reα, green and blue analog signals that are output to the monitor (so- called RGB signals) . Importantly, the video board also generates the synchronization timing signals (vertical and horizontal synch) that are also sent to the monitor to control the scanning raster. Since the CPU d d not generate the synch signals, it cannot calculate the relative position on the screen at which the light gun was aimed. That is, the CPU cannot calculate the phase difference between the start of the raster pattern and the time the electron oeam was sensed by the photosensitive device since it does not know when the synch signals were generated. Thus, the personal computer platform is disadvantaged from the dedicated game console since a conventional light gun cannot be used m game play. One prior art system (by A-FOUR TECH CO., LTD.) attempts to overcome this disadvantage by providing an addon board that must be inserted into an empty ISA slot on the motherboard. A ribbon cable is then connected from the addon board to a VGA Feature Connector on the VGA card, and the light gun is plugged into the add-on board. This requires the user to open the computer, and install the add-on board and cable. This may not be practical since there may be no open board slots on the motherboard, the user may be unable to perform the technical operation of installing add-on boards, etc. In addition, the user cannot easily transfer the light gun to another computer without having to disassemble his computer, remove the add-on board, and install it on a companion's computer. This system is thus disadvantageous for most users . It is therefore an object of the present invention to overcome the prior art and provide a light sensitive peripheral system that can be utilized with a conventional personal computer video game and application platform. It is a further object of the invention to provide such a light sensitive peripheral system that will not require modification to the personal computer platform. It is a still further object of the present invention to provide such a light sensitive peripheral system that can be easily installed without having to dismantle the personal computer to install additional circuitry . SUMMARY OF THE INVENTION In accordance with these and other objects, provided is a video game system comprising a personal computer, a video monitor for displaying images on a screen, a light-sensitive video game peripheral device such as a pen or gun-shaped device, and a peripheral adapter coupled between the computer, the monitor, and the peripheral device. The video game system may also include application software other than games which may interact with a light sensitive device. More particularly, the personal computer comprises computer processing means for executing a video game program, the computer processing means generating a plurality of display frames representative of images to be displayed on the video monitor screen, and video adapter means coupled to the computer processing means for processing the display frames and generating analog display signals proportional thereto and synchronization signals correlated to the analog display signals, nerein the analog display signals and the synchronization signals are output to a video port connector. The peripheral adapter is coupled to the video port connector and is configured to output the analog display signals and the synchronization signals to the video monitor. The peripheral adapter is also configured to output the synchronization signals to the video game peripheral device. The video monitor is coupled to the peripheral adapter and processes the analog display signals and the synchronization signals to display images on its screen . The video game peripheral device comprises a photosensitive transducer for outputtmg an electrical signal proportional to light sensed thereby, means for receiving the synchronization signals from the peripheral adapter, peripheral processing means for processing the electrical signal from the photosensitive device and the synchronization signals from the peripheral adapter and for generating a peripheral position signal indicative of tne relative position of the field of view of the photosensitive transducer relative to the screen. The video game peripheral device also comprises means for transmitting the peripheral position signal to the computer means for further processing . The video game peripheral device may also comprise a manually operated switch configured to provide a trigger signal to the peripheral processing means, wherein the peripheral position signal is transmitted to the computer means in response to actuation of the switch. Preferably, the video game peripheral device is shaped like a gun comprising a barrel, and the photosensitive device is located near the tip of the barrel. Another embodiment of this device may be shaped like a pen with the photosensitive device located near the tip. The synchronization signals typically comprise a horizontal synchronization signal and a vertical synchronization signal, and the peripheral position signal comprises a relative x-coordmate and a relative y- coordmate . The peripheral processing means comprises initialization means for measurirσ a set of initialization parameters correlated to an x-dimension of a raster pattern traced on the video monitor screen and a y-dimension of the raster pattern, means for sensing an activation of a trigger signal, and means for determining the relative x-position and the relative y-position of the field of view of the photosensitive device positioned on the screen when the trigger is activated. The initialization means comprises first means for sensing the active polarity of the horizontal syncnronization signal, and second means for sensing the active polarity of the vertical synchronization signal. The initialization means also comprises first means for determining the y-resolution Ys of the raster pattern and second means for determining the x-resolution Xs of the raster pattern. The means for determining the relative x-position and the relative y-position of the field of view of the photosensitive device positioned on the screen when the trigger is activated comprises means for detecting a pulse in the electrical signal from the photosensitive device, means for counting the number of horizontal synchronization traces from the time the vertical synchronization signal transitioned to its active state until the time the pulse is detected, the number of traces being defined as Yc, and means for timing the duration of the horizontal synchronization signal from the time the horizontal synchronization signal transitioned to its active state until the time the pulse is detected, the timing means being reset when said horizontal synchronization signal transitions to its inactive state before the pulse is detected, the timed duration being defined as Xt . The peripheral position signal comprises the ratios Xt/Xs and Yc/Ys, and is sent to the computer wherein the computer processing means determines the X-pixel coordinate by the formula Xr*Xt/Xs, wherein Xr is the X-axis pixel resolution of the video monitor screen, and the computer processing means determines the Y-pixel coordinate by the formula Yr*Yc/Ys, wherein Yr is the Y-axis pixel resolution of the video monitor screen. In a second embodiment, the initialization means comprises first means for sensing the active polarity of the horizontal synchronization signal, and second means for sensing the active polarity of the vertical synchronization signal. The initialization means also comprises first means for determining the y-resolution Ys of the raster pattern and second means for determining the x-resolution Xs of the raster pattern. Measuring the time from a vertical refresh until the next vertical refresh Tv. Measuring the time to complete a horizontal trace and refresh Th and the time to complete a horizontal refresh Thl . In the second embodiment, the means for determining the relative x-position and the relative y- position of the field of view comprises means for detecting a pulse in the electrical signal from the photosensitive device, means for measuring the time from the vertical synchronization signal transitioned to its active state until the pulse is detected Yte, the value of Yt determined as a function of Tv, Th, and Yte, means for timing the duration of the horizontal synchronization signal from the time the pulse is detected until the time the horizontal synchronization signal transitioned to its inactive state Xte. The relative position determined as a function of Xte, Th and Thl being defined as Xt . The peripheral position signal comprises the ratios Xt/Xs and Yt/Ys, and is sent to the computer wherein the computer processing means determines the X-pixel coordinate by the formula Xr*Xt/Xs, wherein Xr is the X-axis pixel resolution of the video monitor screen, and the computer processing means determines the Y-pixel coordinate by the formula Yr*Yt/Ys, wherein Yr is the Y-axis pixel resolution of the video monitor screen. In an alternative embodiment, the peπpneral processing means for generating a peripheral position signal and the means for transmitting tne peripheral position signal to the computer means are both located within the peripheral adapter. A calibration algorithm is used to determine and compensate for the variations in personal computer systems that may have an effect on the accuracy of determining the detection location of the video game peripheral device. In one embodiment, the calibration algorithm executes on the processor of the PC. In another embodiment, the calibration software executes m the firmware of the micro-controller in the peripheral adapter of this invention. BRIEF DESCRIPTION OF THE DRAWING Figure 1 is an illustration of the mam components of the preferred embodiment of the present invention; Figure 2 is a detailed illustration of the peripheral adapter; Figure 3 is a block diagram of the electrical components of Figure 1; Figure 4 is a block diagram of a typical video adapter in the prior art; Figure 5 is a timing diagram of tne synchronization signals and RGB signals generated by the video adapter; Figure 6(a) is an illustration of a raster scan pattern; Figure 6(b) is an illustration of waveforms used with the raster scan pattern; Figure 7 is an illustration of a prior art monitor and control electronics; Figure 8 (a) is a detailed schematic of the peripheral device processing circuit; Figure 8 (b) is a schematic of the transmitter and power circuits in the light gun; Figure 8(c) is a schematic of the photosensor circuit in the light gun; Figures 9(a), 9(b) and 9(c) are flowcharts that illustrate the operation of the invention; Figure 10 illustrates an alternative embodiment of the invention; Figures 11(a) and 11(b) illustrate an alternative embodiment of the invention wherein the processing electronics is located in the adapter device rather than the light gun device; Figures 12(a), 12(b) and 12(c) are flowcharts that i llustrate the operation of the second embodiment of the invention; and Figure 13 is a view of the display position when a detect event occurs; Figure 14 is a data flow diagram of the calibration process of the present invention; Figure 15 is a data flow diagram of the second embodiment of the calibration process. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT The term video game system may be viewed in a larger sense as any application using a peripheral light sensing device as input for determining screen position. The term light gun may also include other devices such as a light pen within the spirit of the invention. The light pen would operate in close proximity to the video display to select or indicate discrete locations on the video display and would operate in a manner similar to the way in which a mouse is used. The light gun is typically used at a distance, away from the video display. The preferred embodiment of the present invention will now be described with reference to Figure 1. The video game system 10 comprises a personal computer 12, a light gun peripheral device 14, a video monitor 16, and a peripheral adapter 18. The computer 12 is a standard type that is capable of executing a video game program that is adapted to utilize the position data input from the light gun 14 on a serial port 6. For example, the computer 12 may utilize a 450 MHz Pentium II processor with 64M RAM, a video adapter card suitable for displaying images generated during operation of the video game, such as a VGA card and the like. The computer 12 needs no special internal hardware such as add-on boards or the like as in the prior art in order to implement the present invention. Likewise, the monitor 16 is a standard video monitor that utilizes industry standard RGB (red-green-blue) input signals as well known m the art. The video monitor also needs no special adaptation to operate with the present invention. The peripheral adapter 18 shown m Figure 2 is essentially a pass-through connector unit that has an industry standard VGA (video graphics adapter) male plug 2 at one end, suitable for coupling w th an industry standard VGA female connector 3 found on typical VGA adapter cards . The peripheral adapter 18 also comprises a standard VGA female connector 4 for coupling with the associated VGA male plug 5 that is connected to the monitor 16. Thus, the adapter 18 is inserted between the monitor 16 and the VGA connector 3 and passes the appropriate signals from the VGA adapter card through to the monitor 16 for processing in the usual manner. The peripheral adapter 18 also has wires from cable 22 that are connected to certain control signals (horizontal and vertical synchronization signals) that enables these signals to be passed to the light gun 14 for further processing as described below. The cable 22 also provides wires from the light gun 14 to a serial port connector 20, which is coupled to an associated serial connector 6 on the computer 12 as well known in the art. Position data signals are input through the cable 22 to the serial port connector 20 for input to the processing circuitry within the computer 12 as will be described below. The light gun 14 comprises a photosensor 24 and a trigger 26 as shown m Figure 1. The trigger 26 is coupled to an internal switch, and is adapted to provide a trigger signal to internal circuitry components for indicating that the player has pulled the trigger to emulate the act of shooting. The photosensor is also connected to the internal circuitry components, and provides an electrical signal that is proportionate to the light incident thereon. Specifically, the electrical signal will have an increased value as the brightness increases, and will be at a maximum when an electron scanning beam that is following a raster pattern on the monitor 16 crosses its field of view 17. Figure 3 illustrates a block diagram of the system 10. The computer 12 has standard internal components found n typical personal computers today, in particular a CPU 30, a memory 36, a VGA adapter card 34, and a serial interface circuit 38. These components are shown as communicating with each other via bus 32, which comprises data bus signals, address bus signals, and control bus signals as well known m the art. The memory 36 is used for storing program instructions for executing the video game, and may be CD-ROM, a hard disk drive, etc. The CPU 30 performs standard processing and control functions as well known m the art. The VGA adapter 34 is also well known in the art, and functions to convert digital data frames output by the CPU 30 into the appropriate RGB analog signals and synchronization signals that are sent to the monitor 16 in typical fashion. Thus, the VGA adapter 34 generates standard red, green and blue analog signals (R-G-B) that are used by the video monitor 16 to recreate the image desired on the screen. The R-G-B signals (described further below) are sent from the VGA adapter 34, through the peripheral adapter 18, and to the monitor 16. Likewise, horizontal and vertical synchronization signals are generated by the VGA adapter 34 and sent via the peripheral adapter 18 to the monitor 16 in order to control the raster scanning as well known in the art. The present invention, however, will utilize this synchronization information generated by the VGA adapter 34, which is unavailable to the CPU 30, to generate positional data that is fed back to the CPU 30 via the serial interface circuit 38. Thus, the peripheral adapter 18 feeds the horizontal and vertical synchronization signals to the light gun 14, in particular to the processing circuitry 40 located within the light gun. The light gun 14 has a photosensor 24 mounted strategically near the tip for emulation of a real gun. The player points the gun at the monitor screen, and pulls the trigger switch 26 when he desires to shoot an image displayed on the screen. When the trigger is pulled thusly, positional data is generated that is related to the x- coordinate and y-coordmate of the field of view 17 pointed at by the photosensor 24. The methodology for the determination of the particular position of the field of view 17 by utilizing horizontal and vertical synchronization signals as well as the output of the photosensor 24 is another aspect of the present invention that is described in detail below. Figure 4 illustrates a detailed block diagram of the VGA adapter card utilized with the present invention. The CPU 30 and VGA adapter 34 are both coupled to the bus 32, whicn enables the CPU to send frames of digital data (i.e., bit-maps) to the VGA adapter so it may convert the frames and provide appropriate signals to the monitor for display. The main components of the VGA adapter 34 are the CRT controller 50, the Video RAM (VRAM) 52, the multiplexer 54, and three separate but functionally equivalent digital- to-analog (D/A) converters: Red D/A 56, Green D/A 58, and Blue D/A 60. The VRAM 52 is dual-ported, meaning that it can be accessed by the CPU 30 (for data writes) or the CRT controller 50 (for data reads) . The CRT controller 50 generates appropriately timed horizontal and vertical synchronization signals hsynch and vsynch that are supplied to the connector 3 and eventually to the monitor and light gun processing circuitry via the peripheral adapter 18. The CRT controller 50 also reads the VRAM 52 at the appropriate time to generate the red, green and blue analog output signals that are fed to the monitor 16 via the connector 3. Figure 5 illustrates these signals for an exemplary VGA application. The vsynch signal is utilized by the monitor' s circuitry to initiate the start of a raster pattern, which is shown in Figure 6a. The low logic level pulse at the beginning of vsynch is used as a blanking interval for the time when the scanning beam in the monitor retraces from the bottom right portion of the screen 60 back to the upper left portion of the screen 62 for the next scan cycle. The horizontal synch signal, also shown in Figure 5, repeats a plurality of times for each vertical synch cycle, and is used to control the horizontal trace of the scanning electron beam. Likewise, the logic low level of hsynch is used to blank the electron beam when the horizontal trace is completed and the beam retraces back to the left portion of the screen. The red, green and blue signals are analog voltage levels with amplitudes that are proportional to the amount of that particular color that will be illuminated on a given area of the screen, the relative voltage levels being derived in accordance with the desired color, as well known in the art. Figure 7 illustrates the main functions of a typical computer monitor. The red, green and blue analog voltage levels are applied to a control grid 70, such that the intensity of the electron beam 72 generated by the control grid is greater when the amplitude of the analog input signal is greater. The horizontal synch signal is used by the horizontal deflection coils 74 to trace the beam across the screen continually, while the vertical synch signal is used by the vertical deflection coils 76 to trace the beam down the screen at a lower frequency than the horizontal sweep. The high frequency sawtooth wave shown in Fig 6(b) is generated by the horizontal synch signal; the lower frequency sawtooth wave is generated by the vertical synch signal. During the retrace period (when the sawtooth waves are at low volatge) , the beam is returned back to the appropriate starting position. During this return time, the synch signal is used to blank the screen by lowering the intensity of the beam via the control grid, as well known in the art. The result of this technique is that the electron beam is swept in the raster pattern shown in Figure 6(a) . More information on the use of VGA adapters and raster scanning video monitors may be found in The Personal Computer From The Inside Out, Sargent et al . , which is incorporated by reference herein. In order to determine the location of the field of view 17 of the photosensor 24 at which the player aims the light gun 14, the processing logic 40 that is used must be provided with information correlated to the timing of the raster pattern. In the prior art, this has not been easily done in the CPU of the computer because the CPU does not have access to this information without special internal add-on circuitry. In the present invention, however, part of the field-of-view location calculation is performed external to the computer CPU, by processing circuitry and logic 40 in the light gun 14, by feeding the synch signals from the peripheral adapter 18 of the present invention directly to the light gun 14 as herein described. The position data is then transmitted to the computer 12, where it is utilized by the CPU 30 along with the predetermined VGA resolution data (e.g. 640 x 480) to determine the pixel coordinates X, Y. Figure 8 (a) is a schematic diagram of the processing block 40 provided in the light gun. The processing block 40 comprises a programmable interrupt controller (PIC) 80, a counter control circuit 82, and an oscillator 84. The oscillator 84 operates with the counter control circuit 82 to provide counter functions as required. The analog electrical signal sensor that is generated by the photosensor 24 (shown in Fig. 8(c)) is input to the PIC 80 so that the initialization and timer routines will initiate whenever the trigger 26 is pulled by the player. The PIC 80 and counter control circuit 82 operate to count the number of complete horizontal traces made by the raster since the current vertical trace began. This number is reset for every new vertical trace. In one embodiment, in addition to counting the number of horizontal traces, the processing circuitry times the duration from the beginning of the current (incomplete) horizontal trace until the time the photosensor detects the presence of the electron beam in its field of view, which is dependent on the location of the screen at which the player aims. Thus, the logic can calculate the phase difference between the start of the raster scan and the time the beam is detected, and this information is sent to the computer 12 whenever the trigger is pulled by the player. This positional data PCDATA is sent as a serial bit stream by the light gun transmitter circuit 41 (Fig. 8(c)) into the cable 22. This serial data stream is received by the computer, via the serial connector 20, for processing by the CPU 30. The CPU calculates the X, Y pixel coordinates and can then take appropriate action as dictated by the requirements of the game. For example, the CPU can determine if the player hit or missed a particular target, and change the player's score accordingly. The detailed operation of the peripheral processing circuitry 40 will now be described with reference to the flowcharts of Figures 9(a) through 9(c) . The processing logic waits until it senses that the player has activated the trigger 26, which will be indicated by the signal Bt_fιre switching low. When BT_fιre goes low, a control byte is sent from the light gun 14 to the computer 16 to indicate that he trigger has been activated. This will cause the CPU 30 to generate several (e.g. 3 or 4 ) complete screens of white light. Since the field of view of the photosensor 24 may be pointed at a dark area of the monitor screen, and would therefore in such cases be unable to provide an electrical pulse at the time the beam is traced through the field of view (because dark areas are created by a scanning beam with little or no voltage) , there is a chance that a pulse will not be detectable when the trigger is pulled. By flashing the screen several times upon activation of the trigger, a pulse will be easy to detect (white light is caused by a scanning beam at maximum voltage) no matter where the filed of view is aimed on the screen. Moreover, the game being played will not be deleteriously affected because the player will not be able to perceive the flashing screen. After the screen is flashed several times as a iβsult of the control byte sent to the CPU, a parameter initialization process is initiated (described below) . This will provide for the determination of the polarity of the HSYNCH and VSYNCH signals, which may vary among different manufacturers. The initialization sequence also determines the resolution of the raster for subsequent X and Y coordinate calculations . After the parameters are initialized, the position of the field of view 17 of the photosensor 24 is determined by utilizing pulse counting and duration timing techniques upon detection of the input pulse from the photosensor 24 (described below) . The relative X and Y positional data are then calculated and transmitted in serial format to the computer 12. The CPU utilizes the relative X and Y positional data along with its knowledge of the VGA screen resolution (e.g. 640 x 480) to calculate the X and Y pixel coordinates and continue execution of the video game program. Figure 9 (b) illustrates the parameter initialization sequence. Upon detecting that the trigger has been activated by sensing Bt_fire going low, the polarity of VSYNCH is first determined. The PIC 80 counts the number of pulses of HYSNCH while VSYNCH is low (HYSYNCHLOW) , and also counts the number of pulses of HSYNCH while VSYNCH is high (HSYNCHHIGH) . If HYSYNCHLOW is greater than HYSNCHHIGH, then VSYNCH must be active low, and if HYSNCHHIGH is greater than HSYNCHLOW, then VSYNCH must be active high. Next, in one embodiment the Y-resolution Ys is determined by the number of pulses of HYSNCH that are counted during the VSYNCH active state just determined. That is, if VYSNCH is active high, then Ys is equal to HSYNCHHIGH. If, however, VSYNCH is active low, them Ys is equal to HSYNCHLOW. The polarity of HSYNCH is then determined by starting a timer function in the PIC 80. This is accomplished by switching INITIALPASS low, which gates the clock signal through AND gate 100. The timer function then counts the number of CLOCK pulses during the low-level period of HSYNCH (HSYNCHTIMELOW) , and the timer function likewise counts the number of CLOCK pulses during the high- level period of HSYNCH (HSYNCHTIMEHIGH) . If HYSYNCHTIMELOW is greater than HSYNCHTIMEHIGH, then HSYNCH must be active low, and if HYSYNCHTIMEHIGH is greater than HSYNCHTIMELOW, then HSYNCH must be active high. Next, the X-resolution Xs is determined by the time measured during the HSYNCH active state just determined. That is, if HYSNCH is active high, then Xs is equal to HSYNCHTIMEHIGH. If, however, HSYNCH is active low, them Xs is equal to HSYNCHTIMELOW. Finally, the PIC 80 will set either HIGHPASS to one or will set LOWPASS to logic one, depending on the previously determined active state of HSYNCH. That is, if HSYNCH is active low, then LOWPASS is set to one, but if HSYNCH is active high, then HIGHPASS is set to one. This enables the PIC to utilize HSYNCF while in its proper polarity. In a first embodiment, after this initialization process is completed, the position of the field of view of the photosensor is determined, as shown m Figure 9(c) . First, the PIC 80 switches INITIALPASS high, thus enabling the signal SENSOR to pass through to AND gate 100. The number of HSYNCH pulses since VSYNCH last went active is counted by the PIC 80. At the same time, the PIC 80 starts a timer function from the HSYNCH active edge, and stops the timer at the HSYNCH retrace edge (the end of the trace) . As long as SENSOR is high (inactive - no pulse detected yet) , then the HSYNCH pulse counter and timer functions keep operating. When SENSOR transitions low, indicating that the photosensor 24 has detected the scanning electron beam m its field of view on tne monitor screen, then the HSYNCH pulse count is stored in a register in the PIC 80 as Yc, and the current HSYNCH timer result is stored m a register in the PIC as Xt . Referring back to Figure 9(a), the X and Y position data is sent back to the CPU for further processing. That is, the ratios Xt/Xs and Yc/Ys are sent to the CPU. Each ratio represents the position on the screen of the field of view in terms of relative percentage. The CPU utilizes this data along with the predetermined VGA screen resolution to calculate the X and Y pixel coordinates at which the field of view is positioned. The X-pixel coordinate is defined by the equation X = Xr*Xt/Xs, where Xt is the measured HSYNCH timer result, Xs is the measured X- resolution, and Xr is a physical resolution coordinate that is stored in the computer 12 (e.g. Xr=640 for a 640 x 480 VGA resolution) . Likewise, the Y-pixel coordinate is defined by the equation Y = Yr*Yc/Ys, where Yc is the measured HSYNCH counter result, Ys is the measured Y- resolution, and Yr is a physical resolution coordinate that is stored m the computer 12 (e.g. Yr=480 for a 640 x 480 VGA resolution) . In a second embodiment a different timing method is used to generate the x and y positions of the light sensitive peripheral device. This method uses an initialization routine based on the duration of time as measured by a free running oscillator to identify the y resolution Ys and the x resolution Xs . In this embodiment, the Y-resolution Ys is determined by measuring the time duration when VSYNCH is active Tv, and measuring the times that HSYNCH is active and inactive. By using HSYNCHTIMEHIGH and HSYNCHTIMELOW the resolution Ys may be determined by dividing the overall vertical time by the time to redraw each scan line, Ys = (Tv/Th-Thl), where Th is the time from the start of one scan line to the start of the next scan line, and Thl is the horizontal retrace time (see FIG. 13) . After the initialization process is completed, the position of the field of view of the photosensor is determined, as shown m Figure 12(c) . First, the PIC 80 switches INITIALPASS high, thus enabling the signal SENSOR to pass through to AND gate 100. The PIC 80 starts a timer function from the VSYNCH active edge (Yto see FIG 13), and stops the timer at the pulse detect point (Yte) . As long as SENSOR is high (inactive - no pulse detected yet) , then the timer function keeps operating. When SENSOR transitions low, indicating that the photosensor 24 has detected the scanning electron beam in its field of view on the monitor screen, then the timer value is stopped and stored in a register in the PIC 80 as Yte. In one embodiment the same timer is used to calculate the horizontal position of the light sensitive device. The X value is determined by measuring the time from the detect event until the end of the horizontal line where the detection occurs. The timer is reset (Xto) and run until it is stopped at the HSYNCH retrace. The HSYNCH timer result is stored in a register in the PIC 80 as Xte. A calculation determines the values for Yt and Xt as a function of the times Yte and Xte and stores these values in their respective PIC 80 registers. Where Xt = ( (Th -Thl)- Xte) / (Th - Thl) and Yt = (Mod(Yte/Th) / (Mod(Tv/Th) ) where Tv is the overall vertical scan time, Th is the total horizontal scan time, Thl is the horizontal retrace time. Referring back to Figure 12(a), the X and Y position data is sent back to the CPU for further processing. That is, the ratios Xt/Xs and Yt/Ys are sent to the CPU. Each ratio represents the position on the screen of the field of view in terms of relative percentage. The CPU utilizes this data along with the predetermined VGA screen resolution to calculate the X and Y pixel coordinates at which the field of view is positioned. The X-pixel coordinate is defined by the equation X = Xr*Xt/Xs, where Xt is the calculated timer result, Xs is the measured X- resolution, and Xr is a physical resolution coordinate that is stored m the computer 12 (e.g. Xr=640 for a 640 x 480 VGA resolution) . Likewise, the Y-pixel coordinate is defined by the equation Y = Yr* Yt/Ys, where Yt is the calculated timer value, and Ys is the calculated resolution value and Yr is a physical resolution coordinate that is stored in the computer 12 (e.g. Yr=480 for a 640 x 480 VGA resolution) . Other embodiments may be used n conjunction with this invention. For example, the phase delay timing between the raster start time and the detection of the electron beam may be performed m other manners in order to determine the location of the field of view of the photosensor. In addition to transmitting the X and Y position data to the computer 12 via the serial interface, other means for providing the position data may be utilized. For example, the relatively recent Universal Serial Bus (USB), a parallel input port, a SCSI input port, a wireless infrared link, or an RF link and the like may be utilized in conjunction with the present invention. In addition, it is envisioned tnat the processing electronics contained in the light gun 14 (i.e. the peripheral processing circuitry 40 and the transmitter circuit 41) could be located in the peripheral adapter 18, as shown m Figures 11(a) and 11(b) . In this case, the light gun 14 would provide only the signals from the trigger (and other buttons) and the photosensor, which would be wired (or sent wirelessly if desired) to the processing circuitry 40 in the peripheral adapter 18. The X and Y position data would then be transmitted directly from the peripheral adapter 18 to the serial connector 20 and ultimately to the CPU 30 for further processing. An additional variation of this embodiment could include circuitry suitable for providing appropriate sensor and trigger press data to a dedicated game console platform as well as to the PC platform described herein. As shown m Figure 10, the adapter 18 would be configured to be connectable to a dedicated game console platform 12a, via connectors 20a and 6a. The appropriate processing circuitry would be added to tne adapter 18 that would enable it to also provide photosensor and trigger signals directly to the game console 12a as is standardized and well known in the art. In this case, the HSYNCH and VSYNCH signals would not have to be input to the adapter 18 because they are known to the controller circuitry within the game console 12a, and therefore the actual X, Y position and/or pixel data can be calculated within the game console 12a by providing to it only the sensor and trigger data signals. This embodiment allows the user to purchase one light gun device and adapter system, and utilize it with either the PC environment or the game console environment by simply plugging it into the desired platform. In yet another embodiment, the VGA adapter card may be specially designed to include the processing logic carried out by the processing circuitry 40, thus eliminating the requirement that the processing 40 be external to the computer 12. In this case, the VSYNCH and HSYNCH signals are of course available on the VGA adapter 34, and the sensor signal and trigger pull signal would be input directly from the light gun 14 to the computer 12 by the serial port. The calculation of the X and Y position data would then be carried out by the VGA adapter 34, and fed back to the CPU 30 via the system buses 32. Although this embodiment would require a specially designed VGA adapter 34 to be used (presumably supplied by the computer manufacturer at the option of the purchaser) , it would not require the user to add an additional board in an empty motherboard slot as in the prior art devices . In accordance with any of the preceding embodiments, a calibration algorithm should be employed to determine correction factors that should be applied to ad j ust the accuracy of the light detecting gaming device. The calibration means refers to memory and processor operations used to enable the calibration and re-calibration process. In order for this device to be usable on any PC system it must accurately determine the screen position of the detected light as sensed by the photosensitive transducer of the light sensitive peripheral device. The timing is affected by such factors as processor speed, video graphic controller type, monitor performance and variability in the performance of the light sensitive peripheral device of this invention. The calibration algorithm may be executed by the processor of the PC with a driver, in the firmware of the peripheral adapter or using a hardware circuit with no actual firmware residing on the peripheral adapter. The calibration process may be executed prior to play ° r during computer simulated play. A calibration process may be executed at the option of the user. In one mode of operation, the calibration process is performed during a trial period of game play where the actual measurements of system performance are recorded while the processor executes under user-play conditions. During calibration, maximum (TcMax) and minimum (TcMin) values are recorded for the horizontal timing (Th) , and maximum (TeMax) and minimum (TeMm) values are recorded for the vertical timing to the detection event (Te) . The calibration process then generates a series of offset values that are derived from the measured system parameters . These offsets are used to generate calibrated values that replace the aforementioned timing values generated by the initialization process. In another embodiment, the maximum (TcMax) and minimum (TcMm) values are calculated as a ratio of the horizontal timing (Th, Thl) and maximum (TeMax) and minimum (TeMm) values are calculated as a ratio of the vertical timing (Tv) . These values are used to generate calibrated values that replace the aforementioned timing values generated by the initialization process \the offsets, as mentioned above, are inferred) . The initialization and calibration variables are described below. Description of initialization variables (duplicated from above for convenience of the reader) : a. Th : horizontal trace period (left to right) b. Thl: horizontal trace period (left to right) plus reset period (right to left) c. Tc: norizontal trace period from start of reset to sensor point α. Tv: vertical trace period from top to bottom e. Te : vertical trace period from start of trace period (top) to sensor point Description of calibration variables: f. TcMax, TcMm: horizontal extents (maximum, minimum) g. TeMax, TeMm: vertical extents (maximum, minimum) h. Tel, TcR: horizontal offsets from left, rignt l. TeT, TeB: vertical offsets from top, bottom j. CTh: calibrated horizontal trace period k. CTc: calibrated horizontal sensor point 1. CTv: calibrated vertical trace period m. CTe: calibrated vertical sensor point n. X: calibrated horizontal position (X axis) o. Y: calibrated vertical position (Y axis) Where the intermediate offset values are: la. TcL = Th + Thl -TcMax lb. TcR = Thl - TcMm and lc. TeT = TeMm I d . TeB = Tv - TeMax and the calibrated values for Th, Tc, Tv and Te are respectively CTh, CTc, CTv and CTe : 2a. CTh = Th - (TcL - TcR) 2b. CTc = Tc - (Thl - TcR) and 2c. CTv = Tv - (TeT + TeB) 2d. CTe = Te - TeT and tne X and Y locations are calculated as : 3. X = (CTh - CTc) * (Rx / CTh) = CTe * (Ry / CTv) or in another embodiment where the calibrated values for Th, Tc, Tv and Te are respectively CTh, CTc, CTv and Cte: 4a. CTh = TcMax - TcMm 4b. CTc = Tc -TcMm and 4c. CTv = TeMax - TeMm 4d. Cte = Te - TeMm and the X and Y locations are calculated as 5. X = (CTh -CTc) * (Rx / CTh) Y = Cte * (Ry / CTv) In one embodiment, the calibration process as shown in Figure 14, executes by retrieving the timing values (Th, Thl, Tc, Tv and Te) . During the calibration process a series of measurements are taken to determine the maximum and minimum trace times for the horizontal and vertical refresn of the display by recording in memory the maximum and minimum times from the start to the end of the traces for the duration of the measurement portion of the calibration routine. When the measurement period has expired, the maximum and minimum values or extents are used to calculate the offsets to the horizontal and vertical timing corresponding to equations la-d (above) . The offsets are used to calculate the calibration values of equations 2a-d above. In another embodiment, the calibration process, as shown in Figure 15, executes by retrieving the timing values ^Th, Thl, Tc, Tv and Te) . During the calibration process, maximum and minimum trace times for the horizontal and vertical refresh of the display are calculated as ratios of the aforementioned timing values. The maximum and minimum values or extents, are used to calculate the calibration values of equations 4a-d above. The calibration values are then applied to the screen resolution to determine a calibrated X and Y pixel coordinate of the detected display position of the pixel. These calibration values will be used by the system CPU or micro-controller to pass the coordinates to the game software. If the calibration process executes on the microcontroller of the peripheral adapter, the maximum, minimum, offsets and calibration values will utilize the available memory of the micro-controller during the calibration process . Thus, the present invention advantageously provides for a light gun to be utilized with a personal computer video game system without requiring modification to the hardware configuration of the computer or to the operating system. The light gun may be easily transported to other computers for use therewith without having to dismantle the computer to retrieve added-on circuit boards. In a similar manner a light sensitive device such as a light pen could be used with any software system providing alternative input means, operating much like a mouse operates .

Claims: CLAIMS : 1. A video game system comprising: a) computer means comprising i) computer processing means for executing a video game program, said computer processing means generating a plurality of display frames representative of images to be displayed on a video monitor screen; ii) video adapter means coupled to said computer processing means for processing said display frames and generating analog display signals proportional thereto and synchronization signals correlated to said analog display signals, said analog display signals and said synchronization signals being output to a video port associated therewith; b) a peripheral adapter coupled to said video port, said peripheral adapter configured to output said analog display signals and said synchronization signals to a video monitor, said peripheral adapter further configured to output said synchronization signals to a video game peripheral device; c) a video monitor coupled to said peripheral adapter for processing said analog display signals and said synchronization signals to display images on a screen associated therewith; and d) " a video game peripheral device comprising i) a photosensitive transducer having a field of view, said photosensitive transducer outputting an electrical signal proportional to light sensed n its field of view, n) means for receiving said synchronization signals from said peripheral adapter, in) peripheral processing means for processing said electrical signal from said photosensitive device and said synchronization signals and for generating a peripheral position signal indicative of the relative position of the field of view of said photosensitive transducer on said screen; and IV) means for transmitting said peripheral position signal to said computer means for further processing. 2. The video game system of claim 1 wherein said video game peripheral device further comprises a manually operated switch, said switch configured to provide a trigger signal to said peripheral processing means, and further wherein said peripheral position signal is transmitted to said computer means response to actuation of said switch . 3. The video game system of claim 2 wherein said synchronization signals comprise a horizontal synchronization signal and a vertical synchronization signal . 4. The video game system of claim 3 wherein said peripheral position signal comprises an x-coordmate and a y- coordmate . 5. The video game system of claim 1 wherein said means for transmitting said peripheral position signal transmits m serial data format. 6. The video game system of claim 3 wherein said peripheral processing means comprises: initialization means for measuring a set of initialization parameters correlated to an x- dimension of a raster pattern traced on said video monitor screen and a y-dimension of said raster pattern; means for sensing an activation of a trigger signal; and means for determining the relative x-position and the relative y-position of the field of view of the light gun positioned on the screen when the trigger is activated. 7. The video game system of claim 6 wherein said initialization means comprises: first means for sensing the active polarity of the horizontal synchronization signal; and second means for sensing the active polarity of the vertical synchronization signal. The video game system of claim 7 wherein the second sensing means for sensing the active polarity of the vertical synchronization signal comprises: means for counting the number of horizontal synchronization pulses during a low state of said vertical synchronization signal; means for counting the number of horizontal synchronization pulses during a high state of said vertical synchronization signal; and means for establishing the polarity of the vertical synchronization signal to be (l) active high if the number of horizontal synchronization pulses counted during a high state of said vertical synchronization signal is greater than the number of horizontal synchronization pulses counted during a low state of said vertical synchronization signal; or (n) active low if the number of horizontal synchronization pulses counted during a low state of said vertical synchronization signal is greater than the number of horizontal synchronization pulses counted during a high state of said vertical synchronization signal. 9. The video game system of claim 7 wherein the first sensing means for sensing the active polarity of the horizontal synchronization signal comprises: means for timing the duration of the horizontal synchronization signal during a low state of the horizontal synchronization signal; means for timing the duration of the horizontal synchronization signal during a high state of the horizontal synchronization signal; and means for establishing the polarity of the horizontal synchronization signal to be (i) active high if the duration of the horizontal synchronization signal timed during a high state of said horizontal synchronization signal is greater than the duration of the horizontal synchronization signal timed during a low state of the horizontal synchronization signal; or (ii) active low if the duration of the horizontal synchronization signal timed during a low state of said horizontal synchronization signal is greater than the duration of the horizontal synchronization signal timed during a high state of the horizontal synchronization signal. 10. The video game system of claim 6 wherein the initialization means comprises first means for determining the y-resolution Ys of the raster pattern and second means for determining the x-resolution Xs of the raster pattern. 11. The video game system of claim 10 wherein said first determining means comprises means for counting the number of horizontal synchronization pulses while the vertical synchronization signal is in its active polarity. 12. The video game system of claim 10 wherein said second determining means comprises means for timing the duration of the horizontal synchronization signal while the horizontal synchronization signal is in its active polarity. 13. The video game system of claim 10 wherein said means for determining the relative x-position and the relative y-position of the field of view of the light gun positioned on the screen when the trigger is activated comprises: means for detecting a pulse in said electrical signal from said photosensitive device, means for counting the number of horizontal synchronization traces from the time the vertical synchronization signal transitioned to its active state until the time the pulse is detected, said number of traces being defined as Yc; means for timing the duration of the horizontal synchronization signal from the time the horizontal synchronization signal transitioned to its active state until the time the pulse is detected, said timing means being reset when said horizontal synchronization signal transitions to its inactive state before the pulse is detected, said timed duration being defined as Xt . 14. The video game system of claim 13 wherein said peripheral position signal comprises Xt/Xs and Yc/Ys. 15. The video game system of claim 14 wherein said computer processing means determines the X-pixel coordinate by the formula Xr*Xt/Xs, wherein Xr is the X-axis pixel resolution of the video monitor screen. 16. The video game system of claim 14 wherein said computer processing means determines the Y-pixel coordinate by the formula Yr*Yc/Ys, wherein Yr is the Y-axis pixel resolution of the video monitor screen. 17. The video game system of claim 2 wherein said video game peripheral device is shaped like a gun comprising a barrel and wherein said photosensitive device is located near the tip of the barrel. 18. The video game system of claim 10 wherein said means for determining the relative x-position and the relative y- position of the field of view of the light gun positioned on the screen when the trigger is activated comprises: means for timing the duration of the vertical synchronization signal from the time the vertical synchronization signal transitioned to its active state until the time the pulse is detected, said timed duration being defined as Yte; and means for timing the duration of the horizontal synchronization signal, said timing means being reset when the pulse is detected and stopped when the horizontal synchronization signal transitioned to its inactive state, said timed duration being defined as Xte. 19. The video game system of claim 18 wherein the processor means calculates Xt = ( (Th -Thl)- Xte) / (Th - Thl) and Yt = (Mod(Yte/Th) / (Mod(Tv/Th)) where Tv is the overall vertical scan time, Th is the total horizontal scan time, Thl is the horizontal retrace time. 20. The video game system of claim 19 wherein said peripheral position signal comprises Xt/Xs and Yt/Ys. 21. The video game system of claim 20 wherein said computer processing means determines the X-pixel coordinate by the formula Xr*Xt/Xs, wherein Xr is the X-axis pixel resolution of the video monitor screen. 22. The video game system of claim 20 wherein said computer processing means determines the Y-pixel coordinate by the formula Yr*Yt/Ys, wherein Yr is the Y-axis pixel resolution of the video monitor screen. 23. The video game system of claim 18 further comprising calibration means for resetting the timing values for Xte and Yte . 24. The video game system of claim 19 further comprising calibration means for resetting timing values of the system peripheral adapter further comprising memory means for storing the maximum and minimun values for Th, Thl, Tv and Te.

Inventors: DIETRICH KEVIN, SHI MINJIE, THANASACK BOUCHAN, DIETRICH, KEVIN, SHI, MINJIE, THANASACK, BOUCHAN
Applicants: ACT LABS LTD, ACT LABS LTD.
Application year: 1999
Main classification: A63F9
IPC codes: A63F13, G06F3