home *** CD-ROM | disk | FTP | other *** search
/ Unprotect 6 / Unprotect-6.0.iso / update / airwrtim / fix116b.doc next >
Encoding:
Text File  |  1994-12-31  |  7.5 KB  |  140 lines

  1.                FIX116B: Air Warrior Timing Patch V1.00
  2.                 Written by Bob Church  CIS:73207,3242
  3.  
  4. Background
  5.  
  6. FIX116B is a patching utility for SVGA Air Warrior V1.16B. It makes some
  7. minor modifications to a timing loop in the joystick routine in the V1.16B
  8. AIRWAR.EXE file to correct a problem which can occur with some game ports.
  9. It was also found to be useful in the case of some problems with video sync
  10. and lost key presses when Air Warrior is running at high frame rates. 
  11.  
  12. The problem with the joystick is one caused by 'Refire Delay'. The routine
  13. does not allow enough time between the reading of one axis and the next to
  14. allow all game ports to reset correctly. This will happen on faster machines,
  15. In the worst case, there will be a point on the Y axis (possibly on the 
  16. rudders and throttle as well), where as you move the stick from full forward 
  17. to full back, the joystick value as displayed by the 'ESC OJ1' command in Air 
  18. Warrior will suddenly drop off by 10 to 20 percent, maybe more. If you have 
  19. a throttle or hat switch, you may need to push them fully forward to observe 
  20. the effect. Try it both ways. It will happen at around the point where the Y 
  21. axis begins generating the highest value of the four joystick inputs as 
  22. reported on most any joystick test program. Lesser effects will generally
  23. just be a 'jittery' response from the Y axis, perhaps the rudder, and the
  24. throttle/hat inputs would be affected as well. The X axis would probably not
  25. show any problems.
  26.  
  27. The problems with video seem to be related to high frame rates in AW. The
  28. delay loop that FIX116B adjusts can be used to slow the frame rate down
  29. slightly, and this has been found to be sufficient to bring the video into
  30. sync on the system tested. It's worth a try if you're having that sort of
  31. problem.
  32.  
  33. What the Patch Does
  34.  
  35. Basically, there is a loop at the end of the Air Warrior joystick routine
  36. which waits for a fixed period of time or until the all four axes time out
  37. before it goes on to read the next stick. The FIX116B patch makes two changes.
  38. First, it forces the loop to time to conclusion, regardless of whether the
  39. sticks time out first. This effectively inserts a minimum delay between time 
  40. out and refire which will stabilize the joystick reads. Second, it lets you 
  41. adjust how long the time delay will be, so you can tune it for the optimum 
  42. performance with your system. This delay can also be used to drop the frame 
  43. rate slightly, which appears to circumvent the video sync problems.
  44.  
  45. System Configurations
  46.  
  47. How you use FIX116B depends somewhat on how your system is configured. There 
  48. are two basic classes, I'll call them 'fully configured' and 'partially 
  49. configured'. A fully configured system is one which has something connected 
  50. to all four analog inputs on the game card. The system would typically have 
  51. a joystick, rudder pedals, and either an analog throttle or a ThrustMaster FCS 
  52. hat. If your system doesn't meet all these conditions, then it is partially 
  53. configured for the purpose of this discussion. Note that an FCS passed through 
  54. a WCS would provide a fully configured system (assuming you have rudder 
  55. pedals) if either the Red or the Black switch is in Analog Mode. If both 
  56. switches are digital, the system is partially configured.
  57.  
  58. Fully configured systems are the only ones that are likely to encounter any
  59. of the problems mentioned above. The reason for this is that any open analog 
  60. input (which is the basic requirement for a partially configured system) will 
  61. cause the existing AW joystick routine to insert a delay of it's own while it 
  62. waits for the open axis to time out. This delay is generally more than enough 
  63. to circumvent the problem with refire. 
  64.  
  65. Partially configured systems can use the patch to make some minor improvements 
  66. in frame rate by limiting the time that AW will wait for the open stick time 
  67. out. The value that AW uses in the unpatched timing loop is 2303, which is 
  68. longer than necessary for most systems, especially if an adjustable game card 
  69. is being used. 
  70.  
  71. Using the Patch
  72.  
  73. First, if you are running a fully configured system and aren't experiencing
  74. any problems, the patch won't really accomplish anything and will cause a 
  75. slight drop in frame rate. If your sticks and video are stable, then there's
  76. nothing to be gained.
  77.  
  78. Using the patch is straightforward. You should make a copy of the AIRWAR.EXE
  79. file in case something goes wrong. That is the only file that is actually
  80. modified. Just put the FIX116B.EXE file in your Air Warrior directory and run 
  81. it with one of it's three command lines. 
  82.  
  83. The first form of the command is simply:
  84.  
  85.                               FIX116B<enter>
  86.  
  87. This will patch AW with a loop value of 1279. This is a good place to start.
  88. It will add about 6 milliseconds/frame on fully configured DX6 '66 and will
  89. save about 6 milliseconds/frame on partially configured systems. The change
  90. will be something less than that on faster machines. This should give plenty 
  91. of refire delay for the joystick, and was sufficient to fix the video sync 
  92. and keypress problem on the system for which the patch was developed.
  93.  
  94. The second form of the command is:
  95.  
  96.                             FIX116B nnnn<enter>
  97.  
  98. where 'nnnn' is a value between 1 and 65,535. This allows you to set the loop 
  99. value to something besides the 1279 default value. It is primarily useful for 
  100. tuning the value to match your system. Try the default first. If that clears 
  101. the problems, then try the second option and gradually lower the value. This 
  102. will get back some of the lost frame rate. You can keep pushing it down until
  103. problems reappear. If you go to low, you will definitely run into joystick 
  104. problems at some point, probably when the joystick is back or right of center, 
  105. the right rudder is depressed, the hat is centered, or the throttle is at the
  106. min throttle position.
  107.  
  108. If you have a copy of the ThrustMaster TMScope program, you can get an idea of 
  109. the minimum value necessary. Configure your system as it is for AW, including 
  110. your game card settings. Run TMScope and move all the flight controls through 
  111. their full range of travel. Take the highest 'Max' reading from the Raw Data 
  112. display and increase it by about 25%. That should be about optimum for the 
  113. delay value. If you have problems there, then go up with it until they go
  114. away.
  115.  
  116. If the default value doesn't work, then increase the value above the default
  117. and try again. I'm not sure how much delay it might take to correct the video
  118. sync problem on all systems, so you'll just have to experiment a bit.
  119.  
  120. The optimum value for a particular system will change if you change game card
  121. settings or your hardware configuration. If you are using a relatively high
  122. value, like the default, this is usually not a problem. If you've tweaked the
  123. value down, though, then changing things can cause problems to reaappear and
  124. you will need to rerun the patch. You can run it as many times as you need to.
  125. It isn't necessary to restore the original AIRWAR.EXE file each time.
  126.  
  127. The third option is:
  128.                              FIX116B 0<enter>
  129.  
  130. Setting a 0 value is seen by FIX116B as a request to remove the patch from
  131. the AIRWAR.EXE file and restore it to it's standard condition. 
  132.  
  133.  
  134. Distribution, Support, Etc.
  135.  
  136. I'm releasing this program for free use by anybody that wants to. You may
  137. distribute it freely, post it wherever you like. If you have questions, 
  138. comments, bug reports, etc., you can reach me via email on Compuserve. My 
  139. ID is at the top of this file. Have fun!
  140.