WinGun V0.82B Readme (If I had a quarter for every bug, I'd be rich) Author Acorns http://guncon.acornscity.com (View this document with Word Wrap enabled) Index: About WinGun Installation Uninstallation Main Menu Options Auto Calibration Manual Calibration Rating Profiles Button Configuration Macros Information Screen Editing the INI Command Line Options Troubleshooting/Known problems Comming Soon (Next Release) Comming Later or Never Version Log --About WinGun:-- WinGun is a program which allows you to use a Guncon2 or compatible lightgun with a windows computer, through a composite video connection. The lightgun will only work with your TV or arcade monitor in its normal state. With a hardware modification it can be made to work on CRT monitors (your PC's monitor), but this is not for beginners. See my website under FAQ's for more information. WinGun is not exactly a "driver", it is a userlevel program that uses another driver to communicate with the USB Gun device. Because of this, WinGun.exe must be running in order to move the mouse and press the buttons. It uses no more CPU power than a normal driver would, and sometimes less. This program was inspired by Smog's Guncon2Mouse project, however it uses nothing from that project. It does not hack Smog's driver to work with rolling X guns, nor does it use any code from Smog's Guncon2Mouse. You do NOT need to install Guncon2Mouse before you install WinGun, see Installation below. WinGun is a relatively new program and as always this release has not been very widely tested; so don't expect too much out of it. It may work for you, or it may not work for you. Visit the forums on my website for support and questions. NOTE ABOUT SCREEN BRIGHTENING: This WILL NOT work with every video card! Consider it a nice extra if it does! That said, the rate of success has been good. Every Nvidia card tested down to a TNT2 has worked. Every ATI card newer than and including a 9600 has worked. The ArcadeVGA card (a radeon 9200) does not work normally, however, it does seem to work in some PC games such as House of the Dead 2. --Installation:-- WARNING: For the release, it is important to replace WinGun.ini in order to take advantage of some new features. If you are using the installer this is done automaticly (even if INI Files is unchecked). Although WinGun should install fine overtop of Smog's Guncon2Mouse for the sake of cleanliness and preventing any possible problems I recommend uninstalling Smog's driver from the Add/Remove programs list before installing WinGun. With this release an installer has been made available. If you are using the installer you do not need to follow the instructions below - simply run the installer and follow the instructions on screen. For installing from the ZIP archive: First extract all the files to the same directory. To install the go-between driver and WinGun program you must have your gun connected to the USB port. Some guns require that they be connected to your TV/Arcade monitor and be recieving a stream before they will function. After you have connected your gun, run Install.bat. If you had smogs driver installed previously, this will act as an upgrade - you can roll back to his driver or reinstall it to go back (not recommended, see above). One box for WinDriver and one for each of your connected guns should appear asking you to install an uncertified driver, respond yes to all. Sometimes the console will display a timeout error, this has not effected the installation for me. After running install.bat, run WinGun.exe. You MUST do this for WinGun to work, and every time you wish to use WinGun. A window should pop up asking you to calibrate you gun. If no gun is connected, after about 5 seconds you should recieve a timeout error. If your gun is connected, disconnect then reconnect it, and click "Detect" in the main menu. If the gun fails to connect the first time you run the program you must go into the calibration menu and select "Autocalibrate" before the calibration routine will run. --Uninstallation:-- If you are using the new Installer, run Uninstall. It is found in the start menu, and in Add/Remove Programs. Simply run Uninstall.bat in the directory you extracted WinGun to and delete the directory. --Main Menu Options:-- The main menu can be accessed by starting the program, right clicking on the WinGun icon in the system tray and selecting Config, or double clicking on the tray icon. Note: options in the tray icon apply to the currently selected gun in the main menu ONLY. AutoFire - when you hold down a button multiple clicks/keypresses are made very rapidly. Best used in short busts. AutoFire Delay - the number of milliseconds to wait between repeating an autofire key. Most programs do not like it when you click too quickly. AutoReload - After (AutoReload Shots) one offscreen shot is inserted. You can define an offscreen shot to Click Edge or any keypress/macro in Button Config. Note that because autoreload is an inserted event, it may cause a 50ms delay before your next shot is fired. This is usually to short of a time to notice unless you are in AutoFire mode with a very low delay, but it is necessary. AutoReload Shots - The number of shots that should be fired before inserting an AutoReload shot. Flash Screen - A very requested feature. With the most recent improvements, this should allow you to shoot at completely black areas. Although this will not work with all video cards, if enabled it will attempt to brighten the screen to obtain a more valid coordinate to fire at when a trigger is depressed. May cause a slight delay in firing. Note: Currently, the screen is brightened for as long as the trigger is depressed in drag mode, and only flashed for an instant in single mode. Drag is good for machine guns, single is good for normal operation. Hide Mouse - Does not actually "hide" the mouse (it did at first and I found it very annoying. Try clicking a checkbox when you can't see the mouse), just causes no gun to send mouse move events. In other words, the gun will not track. Every time a gun button is pressed the mouse is moved into the lower-right corner, giving it a better impression of being hidden. Drag Mode - in drag mode, a keypress associated with the gun button is not released (let up) until you let up on the gun's button. Also affects Flash Screen. Single mode - Each time you press a gun button, the associated keypress is performed completely, very quickly. It is pressed when you press the button, then released 20 milliseconds later regardless of the fact that you are still depressing the gun button. Also affects Flash Screen. Gun # - select one of these radio buttons to configure a gun. Options shown apply to the current gun only, with the exception of Hide Mouse and Flash Screen. Detect - this button forces a redetection of avalible guns. It should not be nessessary to use this ever, unless you start the program without a gun connected. To Tray - closes the main menu, but leaves WinGun running in the system tray located beside the clock. It is an icon of a Mission Lightgun :) --Auto Calibration:-- The autocalibration option can be found in the calibration menu. To access it, open the main menu, select the radio button beside the gun you wish to calibrate and click Calibration then Autocalibrate. New in this version is Gun # Preferences. All this means is that as long as a gun is in the same USB port, then if you have multiple guns they should no longer "switch". Aka, Gun #1 becomming Gun #2 with all of Gun #2's calibration and button settings. These USB port associations are formed when you run autocalibration, or when you change any setting under manual calibration! If your guns are always connecting in the wrong order, either switch their USB ports or recalibrate both of them. To begin calibration WinGun must decide if you are using a gun that has the Rolling X problem. Wave your gun across the screen at a medium speed from left to right, then right to left between the two red lines displayed (Note: if no red lines are displayed your TV may not draw the extreme edges. In this case, pretend like they are there :)). If you wave your gun to slowly and it has the rolling x problem, it will not be detected. If this happens, just redetect by pressing Select on your gun, or exit autocalibration (shoot offscreen, or use the mouse to click Cancel) and run it again. If your gun does not have the rolling x problem, you will have to continue waving it for 5-20 seconds before the program will decide you do not have the problem. After WinGun has decided which mode to run it, a screen with four red lines, one for each edge should appear and the numbers for the edges should begin changing. At this point, wave your gun (very slowly) across each of the red lines (four sides) of your TV. When you are satisfied with the values you can continue to target mode by pressing select, or clicking next (do not use the gun to click next). Note: Some TV's will return values that are too low or to high for edge calibration, in this case target calibration will help. In target calibration you will shoot 6 targets located around the screen. Aim the center of your gun's lens at the center of the red dot in the target. Take your time, the more accurately you shoot the targets the more accurate your calibration will be. Your gun should be pressed against the screen for best results. Do not shoot the targets with your gunsight! A lot of people were confused in this area and tried to shoot the targets with the mouse cursor. Because of this, I have "hidden" the cursor for this section. If you need to use it, you will find it tucked away in the bottom-right corner, fully operational. When you are finished, fire anywhere to save your settings and return to the main WinGun window. After finishing autocalibration you may manually adjust the values in manual calibration (see below) by entering new ones yourself. You do not need to restart the program for these to take effect. Centering is not autodetected at all, because it is a user preference value. See manual calibration below for more information. --Manual Calibration:-- To access the manual calibration screen, select the radio button beside the gun you with to manually calibrate and click Calibration from the main menu. You can change 6 values and the gun mode, 4 of the settings for edges and two of them for centering. Lower the top edge value to have the gun read closer to the edge of the screen, and raise it if your cursor is reaching the edge before you are pointing at it. In the same manner, lower the left edge value to have the gun read closer to the edge of the screen, and raise it if your cursor is reaching the edge before you are pointing at it. For the bottom and right, raise the values. Some experimenting will be necessary to find what works best for you. Centering values should only be changed when the gun tracks nearly perfect in relation to the center of the lens! It can be used to align with your gunsights, but it will not help with faulty calibrations. Enter values between -32500 and 32500. Positive values will move the pointer further to the right/bottom, and negitive values to the left/top. Finally, you can select the "Normal" or "Rolling" option to overwrite what Autocalibration detects. Do this if your gun is misdetected. --Rating:-- This for fun feature tests your guns responsiveness to brightness, how much it jitters, and how accurate it is. It is currently in very early stages, so don't expect much more out of it. After clicking Rate in the calibration screen, follow the onscreen instructions. Note that you can cancel or exit at any time by shooting the gun offscreen. --Profiles:-- A profile is one group of from all to one setting. You may access the profile manager by clicking profiles in the main menu. In the profile screen, you may select which gun you wish to view profiles for be selecting the appropriate radio button. Only the profiles for this gun will be shown in the list. Clicking on a profile name in the list will aloow you to perform operations on that profile. You can change the order of profiles (useful for cycling/swapping in a macro, and nesessary if you wish to change the default profile). To set a profile as default, move it up to the top of the list. WARNING: if you move a profile that does not contain all settings to the top (making it the default) when you start WinGun the settings that are not contained will not be loaded, or saved to default later! You may Load a profile by clicking load. After you have loaded a profile, and changes you make in the interface will be saved to this profile (if the setting exists in said profile). Selecting a profile and clicking Duplicate will make an exact copy of the selectied profile and add it to the end of the list. In the same way, selecting a Gun # beside "Copy to" and clicking "Copy to" will copy that profile to the selected gun and add it to the bottom of its list. Delete will remove the currently selected profile. If this profile is loaded, the default profile will be loaded in its place. Create new will take you to a screen allowing you to select which options you wish to be included in the new profile, and basic settings that should be set. Edit will take you to a screen that allows you to edit basic settings included in the selected profile. It also allows you to view which settings are included in the profile, but not change them (this will come sometime). Please note: When dealing with profiles that do not contain all settings, only the settings that are contained will be saved/loaded from the profile! Also note: Profiles can now be loaded by -loadprofile from the command line! See "Command Line Parameters" below for usage information. --Button Configuration:-- You can assign your Gun's button to any mouse or keyboard button by clicking Button Config on the main screen. Remember to select the gun # of the gun you wish to configure before entering the menu. Clicking on Button Config will bring you to a screen showing your current configuration. Click on the button that has the name of the button you want to change, then press any key or click anywhere with the key/button you want to assign it to. Pressing the Tilde key "~" will clear the button and leave it unassigned. Pressing "Scroll Lock" will allow any gun button to be assigned to "Click Edge". Currently, only mouse and keyboard mappings are supported, not JoyStick or other. If you cannot get this Get Key mthod to work, click Select under the key you wish to configure for a visual representation of a keyboard. Also, macro mode is discribed in detail below. Default Key Config: By default, the buttons on the gun #1 are assigned as such: Trigger = Left Click Offscreen Trigger (when gun is pointed offscreen) = Click Edge (click once on the very edge of the screen) Start = Enter Select = Space Button A = A Button B = B Button C = C Dpad UP = Up Arrow Key Dpad Down = Down Arrow Key Dpad Left = Left Arrow Key Dpad Right = Right Arrow Key Primary Gun = Gun #1. Note: The primary gun is the one which track with the mouse on screen. This setting is ignored, but not changed, if Hide Mouse is enabled. The AF checkboxes located beside each button determine if that button will be pressed repeatedly in autofire mode, or only pressed once. This is useful (for example) if you want the trigger to fire rapidly, but the start button to only be pressed once. When you are finished, clicking Finish will save your changes to the currently loaded profile and return you to the main menu. You can reassign the keys in the Profile.ini's manually as well. --Macros:-- You can now assign up to 20 events to take place each time you press a button on your gun. To set a macro, click the Macro button below the gun button you wish to assign. This will bring you to a screen with many options that are discribed below. Basic theory on macros: A macro is comprised of up to 20 "events". An event is one keypress, and various values associated with that keypress. Each event is executed independently with the exception of a ComboKey (see below). You may navigate though the list of events for the current macro by clicking the next and previous buttons. If you only wish to press one key, you can use the normal button config discribed above. Macro features: Get Key - Click this button to aquire a key or mouse press to be associated with the current event. After clicking the button, your can press any key on your keyboard or click any button on your mouse. Pressing the Tilde key "~" clears the current keypress and leaves it unset. Select Key - Shows a visual representation of a keyboard that you can use to pick a key from. NEW: Real time recalibrating. Under Select Key in macros you may choose Quick Calib. This assigns a key to enabling and disabling Edge Calibration on the go. Useful if you wish to recalibrate in the middle of a game. Profile Change - Allows you to "Hot Swap" between profiles. You may choose one of two modes: In Cycle mode, all profiles in the list will be cycled through. Each time you press the associated gun button the next profile in the list (looping if it reaches the end) will be loaded. Note: in this mode, when the profile you are swapping to does not contain a setting that setting will be loaded from the default profile. In swap mode, you may only add one profile to the change list. When you press the associated gun button the profile you added will be loaded for the duration of the button press, reverting to the profile you had previously loaded when you release. This is useful as a kind of "Shift" button - allowing you to have twice as many mappings as your gun has buttons - or for loading a set of settings for only a short time. Profiles are complex. If you have questions, first play around for a bit, then ask them on my forum and I will try to answer and add your question to the FAQs. WARNING: In cycle mode, if you are loading a profile with the button set to cycle included, you must set the button in this profile to "macro" if you wish to be able to use it to continue cycling! If you do not, it will be used for whatever it is assigned to in the newly loaded profile. To assign the button to macro, just click "macro". There is only one set of macros (it doesn't change per profile) so your list will be intact. Hold Button - The amount of time in milliseconds to hold the key associated with the current event down. If you set this to lower than 20, most applications will not recognise that a key has been pressed. Note: this does not cause a key to be repeated, as holding a key down on the keyboard does. Use repeat event if you with to run the current event more than once, or enable autofire if you wish a key to be pressed repeatedly for as long as you depress a gun button. Delay Before - The amount of time in milliseconds to wait before executing the current event. This delay is implemented each time the event is ran, even if the event is run multiple times by setting the repeat value. Delay After - The amount of time in milliseconds to wait after executing the current event. This delay is implemented each time the event is ran, even if the event is run multiple times by setting the repeat value. Repeat - the amount of times to repeat the current event. If it is 0, the event will be executed once. If it is one, the event will be executed once then executed again as a "repeat". In other words, the event will be ran one time more than this number. Note: you cannot currently repeat a ComboKey event with success. The events are still independent at this point. Combo Key - if this checkbox is checked, the current event's keypress will not be released until the first event without combokey checked it reached. In other words, if you wish to press Ctrl-Alt-Del, then the events for Ctrl and Alt should have combokey checked and the event for Del should not. The Hold Button value is ignored for everything except the final combokey value (the one without combokey checked). Mouse X - If the current event is location sensitive you may set a location to move the mouse to. This will be done before the keypress is made. Values range from 0-65536, with 0 being the left side of the screen and 65536 being the right side. Mouse Y - Same as mouse X, with 0 being the top and 65536 being the bottom. Note: Your current mouse position is shown. You can use these values. Clear Event - Clears the current event, resetting all values to default. Does not clear the entire macro, only the current event. --Information Screen:-- This screen is mainly an aid to my troubleshooting other people's problems, however you may find it informative and useful for yourself. I will not go into depth, however I will make a couple quick notes. The direct values are values obtained directly from the gun, with no changes. Raw data. The translated values are from after the "location" and "section" parts of the direct values have been interpreted by my AI. These values are ready to be normalized into a mouse location. Absolute values show the current absolute location of the mouse. They only change when the gun is used to move the mouse. Log Console.txt creates or appends to a file called console.txt in the directory where wingun.exe is located. It is saved every time the console's buffer is reset, when you exit the program, and when you uncheck the Log Console checkbox. Log Data.txt creates a Gun#Data.txt in your wingun directory. It logs all data recieved from the currently selected gun. You may log for multiple guns by selecting the gun # and checking log data each time. WARNING: these logs will become large VERY quickly as they log a huge amount of data! Best used for short periods to resolve specific problems. --Editing the INI:-- You may open and edit any ini file manually, they are in plain text. All options except "Timeout" and "TrackAll" can be accessed from the configuration screens. Discriptions and possible values for each item are discribed inside the default ini's. Note for timeout: this is for use with people who have trouble with their guns disconnecting. It is set to NORMAL by default, which causes wingun to try and reconnect all guns after not receiving data for 2 seconds. If you find that you cannot open a game/program without the gun being reconnected set to NEVER or LONG. If your gun disconnects often, set to SHORT. Note for TrackAll: This new feature removes the restriction on non-primary guns from sending mouse move events. If set to ON, multiple guns will "track". This feature crashes a lot, and will often not work - experiment with it for fun ubt don't expect it to work. --Command Line Options:-- "-minimised" or "-m" - starts the program in minimised mode. The main menu will not be shown, and any scheduled autocalibrations will be skipped. This is mainly for people who want to start WinGun on startup, or without having to interact with it upcon opening. "-forceconfig" or "-fc" - starts WinGun in config mode. Forces all config options to be available even when no guns are connected. Good to use if you wish to configure a gun you do not current have to connect. "-loadprofile" or "-lp" - loads a profile based on the two pieces of data after -loadprofile/-lp. The first piece of data should be the gun number you wish to load the profile for. The second piece can either be a profile number (numbers start at 1) or a profile name. If you use a profile name, replace any spaces in the name with "_". for example, if the profile name is "Gun #1 Default" you should use "Gun_#1_Default" (no quotes). If you have multiple profile with the same name the first match found will be loaded. You may load multiple profiles by using multiple -loadprofile's. For example: wingun -loadprofile 1 Gun_#1_Default -loadprofile 2 Gun_#2_Default Also new to WinGun is single instance checking and command line passing. If you open a second copy of WinGun it will pass any parameters you gave it to the first instance then exit. The effect of this is you can use -loadprofile while WinGun is already running without first having to close it. --Troubleshooting/Known problems:-- The Rolling X problem is not fully fixable, we do not have all the information we need. Because of this, support for guns in Rolling X mode is a hack. The user MUST do the following with guns in Rolling X mode: When bringing the gun back onscreen from being offscreen, it must be done on the left or right side of the display. It cannot be on the top or bottom of the display. The gun should not be jerked from side to side, smooth motions work best. Guns in rolling x mode will always experience these problems: After pointing to a black or dark spot for a second or so, the gun may skip to the other side of the screen. Simply wave it offscreen then back on, or across the center in order to regain correct positioning. The gun cannot be moved across a dark center screen. If this situation occurs, you will need to bring the gun to the section you need to point at from the left/right edge (whichever is closer). Some guns (specifically the Namco official one) will jump to the center of the screen occasionally. This can cause the gun to move to the wrong side of the screen the same way a black spot can. I have done all I can to fix this, the gun is returning an incorrect position when it is in a darker but not black area. For all guns with the rolling x problem, you might have best luck shooting targets on the egdes of the screen by bringing the gun onscreen from the closest left/right edge. For both the rolling x and normal mode guns, tracking cannot be done on dark surfaces. So turn your brightness up, hope screen flashing works, and play a light game/use a light desktop. If you are playing a dark game like area51, the best you can do is aim at the target and fire - usually the pointer will be there, even if it did not track visibly across a dark surface to get to the target. For the INI file, completely blank lines can be read fine but the file is saved with none. I use // to add space. If you are unable to complete autocalibration in the targets phase (due to autocalibration exiting) your gun may be sending offscreen signals when it should not. This can be caused by a dirty gun lens, a cheap gun, smoked/darkened glass over your viewing surface, or a number of other issues. Note that you can manually adjust calibration values if you cannot get this section to work. If the gun works on the desktop but not in MAME there are a couple of known reasons. First, MAME is usually much darker than your desktop. If the cursor is jumping to to top/left every time your fire (or executing whatever you have mapped to offscreen shot) then you gun is not returning valid coords to fire at. If not, you might try setting TIMEOUT to NEVER in the ini - some guns seem to disconnect every time you change resolutions. One of my testers has noted that his antivirus program interferes with WinGun. If you are having odd delays in firing after 5 mins of use, or if your gun is connecting but not firing at all, you might try disabling any such programs. The Troubleshooter and WinGun should work together - however some testers have noted a delay is House of the Dead 1 and 2 when using multiple guns and the troubleshooter. This is being looked into, but can probably not be fixed with the current method of moving the mouse. I probably have not estimated every possible situation, and as such many more things may not work, or not work as expected. If you have problems, post a question in my forums! (address listed on the top of the page) and I will try to help. --Comming Soon (Next Release or so):-- Note: I'm almost out of ideas! If you have any, post them in the forums! Most of the things I'm implementing now are implemented as I think of them. An updated website and FAQ! Including a games list section, and more gun reviews. Cleaned up code. Better console logging. Support for multiple calibrations for multiple resolutions, with automatic switching between them. Improved support for profiles, easier to manage/setup. A new, more accurate rating system. This will always just be for fun though. A finished built in help system, including balloon tooltips for manual calibration and other things. Those prettier buttons I promised :) maybe :( (Its a lot of work for very little benefit, so it keeps getting pushed back) Jitter reduction, if I can stress enough the downsides of it. --Comming Later or Never:-- Support for JoyStick emulation, as well as games that only accept relative mice. --Version Log:-- Versions are counted like this: A = Alpha B = Beta D = Development R = Release 0.0X will be the alpha releases 0.X will be the beta releases 0.XX will be development releases, and eventually X.XX X.X will be releases V0.82B Fixed a critical bug with multiple guns and the new by USB port connection code. Fixed a couple other trivial bugs, like one with the input que (was executing one "blank" instruction every loop. Had no effect on gameplay), and insta-timeout on program start (again had very little effect, since the guns still all reconnected). Changed Quick Calib so it will work when used from the key select menu directly under button config. Spent the day researching and trying stuff out, implemented a system that shouldn't depend on the usb interface you are connected to. Woot. If you have old INI files, you don't need to replace them, but you might want to recalibrate to take advantage of this feature. V0.81B Fixed a critical input bug that was preventing extended periods of play. Fixed the screenflash issue where the guns that wern't primary wern't flashing when both players fired at once. Also with this fixed the issue where in drag/autofire mode guns that didn't have their triggers depressed could turn off the flash. Decided that checking for updates every time you entered the menu was too annoying. It only checks when you start the program now, or go into about. I may change this back or to something else depending on feedback. Corrected one "Select Key" issue where L was being mapped to I. V0.8B Added a new interface for mapping buttons to gun keys. It is a visual representation of a keyboard, useful for those of you with no keyboards connected or those having trouble with the "Get Key" function. Includes mouse mappings. Under macros, added the ability to switch quick calibration on and off (with a gun button press). This allows you to recalibrate using Edge Calibration at any point in time (even in game!). Added support for "Mouse4" and "Mouse5". But before you get all excited, mame doesn't seem to recognise them (though windows does). Remember any game that supports edge clicking (like Area51) will work with Click Edge for the second gun's reload now, and most other games support mapping reload to whatever you want. Added a hidden (no interface to change it) option in WinGun.ini. Allows for all guns to track. Doesn't always work. See readme.txt under "Editing the INIs". Proper support for command line parameters. This is mostly an internal thing - but the side effect is you get more of them :) Also, you can use multiple parameters now. Also for command line support added single instance checking! If you open a second copy of wingun, the command line parameters used will be passed to the first copy and the second copy closed. Woot! Added command line parameter -loadprofile (or -lp). You can use this to load a profile for any gun by gunnum, and profilenum or name! See readme.txt user "Command line parameters" for usage information! Automatic version checking! WinGun will now check to see if the version you are running is the most recent, and if it isn't, display a balloon tooltip (which you can click to get information about the newer version). This feature can be disabled under the new about screen, and requires an internet connection to work at all. Where it made sense replaced the nasty messageboxes with cute balloons. Woot. Gun connections are now mapped to a USB port - meaning if you have more than one gun connected, and reopen the program, the guns shouldn't reconnect in a different order. It also means that you can have only one gun plugged in, and if that gun is using the settings of Gun #2, Gun#2 can be enabled when Gun #1 is not. May sound complex, but it fixes a lot of the "weird" issues some of you have been having with multiple guns. Note about this: Your guns should be connected to one interface to make the best use of this possible. See Readme.txt under "USB". Output of mouse and keyboard events redone to a que system. Some disadvantages, but many more advantages - mostly for people with 2+ guns. They should work much more as expected now, being able to test myself was a huge help! Overall, multiple guns work 100x better. Click Edge now performs whatever is assigned to Main Trigger - at the edge of the screen. Threads terminated in a different manner - people with 1 gun shouldn't end up with wingun reporting 2 connected guns anymore. Installer added. Fun. Pretty. Includes uninstaller. And shortcuts. V0.7B Singlefire mode fixed, trigger detection fixed (was a simple line of debug code left in, sorry to any it affected!) 1/3rd of the offscreen shot detection secondary AI enabled. This is not really useful if Screen Brightening works for you, but if it doesn't it should help a little. Changed the way the screen flashes based on the current gun mode (single now flashes almost instantly, drag still stays bright for as long as you hold the trigger down) MAME Mode was renamed "Click Edge" - a lot of people were having trouble understanding that "MAME Mode" for offscreen shots was just a button press with an associated location (the edge of the screen). Hopefully this will help. Added the ability to map any button to "Click Edge" (Use Scroll Lock when getting a key) Added button presses to Data.txt logging. Fixed a bug in data.txt logging, you can now log all guns at once and it will work Added the ability for users to modify the time between autofire shots, and the number of shots between an autoreload. Autoreload is now mapped to whatever offscreen trigger is mapped to as it should be, instead of being limited to "mame mode". Yes, it will run a macro even. Added support for multiple, loadable profiles!! Along with this comes with a profile manager, and the ability to create and edit profiles from in the UI. A profile contains (up to) all settings for a certain gun, as well as the global settings. Profiles are now hot-swapable! This means a couple of things: First, you can set a button on your gun to cycle through a list of 2 or more profiles, loading and activating all the settings in each profile as you switch to it. Second, you can create a kind of "Shift" button. Instead of cycling though, it loads a second profile only for the duration of the button press! Added more console logging, in autocalibration and other places (easier to see problems). Added the ability to define which buttons are rapidly fired in autofire mode, and which ones are only pressed once in autofire mode. Fixed a couple of existing "quirks", such as not being able to enter a negative number in the centering boxes. Fixed many bugs, such as the "spaces in ini" bug that was causing crashes after a while. Updated what I do if "Hide Mouse" is checked. Cursor is reloacated to the bottom of the screen every time a gun fires when it is on now - slightly better at making it look hidden, but without locking the real mouse out from being used. Screen Flashing has been improved! If your card supports it, it should work almost flawlessly now - even on complete black. Note that for ATI, Radeon 9600+ has been confirmed to work, and for Nvidia, TNT2 and above is confirmed to work. Other brands or older cards may or may not work. A new fun "fun feature"; Gun Rating! Take the test and see how well your gun scores. This is in very early stages, and will become more reliable as time goes on. V0.6B Unfortunatly I did not keep a log of the changes, as I was not planning at the time on releasing further versions. One could say that WinGun has became an entirely new program in the meantime! I will try to list the main changes below: Support for multiple guns! Up to 4 guns will now work at the same time. Huge, huge thing to get working. Screen Brightening; causes the screen to flash bright when a trigger is depressed. Very requested, but doesn't work on all video cards. New autocalibration routine; includes easy to read on the TV instructions, and a new shoot the targets phase. Updated and further completed interface; includes a tray icon, and many more options. Redid so all menu's will fit on a 640*480 screen. Completely redone connection method. You can connect a gun and have it detected without user interaction, and if a gun stops sending data WinGun should attempt to reconnect it. Along with this change came many other connection code changes: it should be much more reliable now, and account for many more error situations. Added an "information" screen that is invaluable for debugging and troubleshooting. Added tons of console output messages for use with it, all timestamped and neat. Added the ability to log console output and gun output to files. Added support for basic macros in Button Config. Press Ctrl-Alt-Del, click in a specific location, etc. Up to 20 events, which can be delayed, told to execute multiple times, etc Added Hide Mouse option Redid, improved almost every internal function. Over 80% of the code for WinGun is different from 0.2B As noted, did and changed way more than I can possibly remember. V0.2B Interface for configuring the buttons. (woot!) New calibration routine, some tweaks to calibration. Fixed just about everything I know of that could help the rolling x problem. This is as good as it gets, until we solve it. Redid the interface. Added singlefire firemode, and option to switch in the interface Added the ability to switch between normal and rolling x modes manually in the interface Added auto-fire and auto-reload. Auto-fire is best not used in duck hunt, I've found. Fixed a bug where Buttons A-C wern't being read in from the INI and resorting to using the defaults. Cleaned up code, fixed other random minor bugs V0.1B First public release. Fixed a couple of file write bugs, added in about 10 error messages, and took out some debug code to make ready for a public release. Please note that the interface is brand new, most of the program was written using a console to output errors. It will be improved in the next release. V0.02A - Added ini file saving Added this readme Changed the routine for finding normal/rolling gun mode. The previous one took 30 seconds for guns that sent information at a slower rate. Fixed a couple of bugs V0.01A - First "release", only tested by one person other than myself.