

                                 FORTE VFX1 SDK



                         Release Version 2.13 (2/26/96)



                                  !!!! NOTE !!!!

To ensure that you have the latest VFX1 Drivers contact Forte Technologies at:

        Internet address:
            support@fortevr.com
        World Wide Web:
            www.fortevr.com
        Support Hot Line (10 am - 6 pm EST)
            (716) 427-8604



CONTENTS

1.    Introduction
2.    VFX1 SDK Installation Program
3.    MS-DOS SDK
3.1     MS-DOS SDK Installation
3.2     MS-DOS Sample Code and Interface Routines
3.2.1      Quick Start
3.2.2      Example 1
3.2.3      Example 2
4.    Windows 95 SDK
4.1    Win95 SDK Installation
4.2    Windows 95 Sample Code and Interface Routines
4.3    Miscellaneous information
4.4    VFX1 DirectInput Driver Release Notes
4.4.1    BETA Version II
4.4.2    BETA Version III
5.  Note About Coordinate Systems




1. Introduction
------------

The Forte VFX1 SDK consists of 3 major components. The VFX1 MS-DOS
drivers, MS-DOS example code and the Windows 95 Utilities. The
Windows 95 Utilities include the Main, Head tracker, and CyberPuck
VxDs, a Control Panel application and example code.


2. VFX1 SDK Installation Program
------------

By switching to the floppy drive that has the VFX1 SDK diskette in
it and typing 'SDK' you will invoke the SDK installation program.
After an introductory screen you are given 4 options: 

    Copy latest software
    Install MS-DOS SDK
    Install Windows 95 SDK
    Done Installing


3. MS-DOS SDK
--------------

This section describes the MS-DOS related sections of the SDK. This
includes the installation process and the example code.


3.1  MS-DOS SDK Installation
---------------

  Install the DOS SDK on to the hard disk

    o Switch to the floppy drive containing the VFX1 SDK diskette and
        type VFX1SDK.EXE. This will run the VFX1 SDK installation program.
    o On the second screen select "Install MS-DOS SDK".
        location for the SDK is C:\VFX1\DOSSDK.
    o After the file copy is complete select "Done Installing" to exit
        the installation program and return to the DOS prompt.


3.2 MS-DOS Sample Code and Interface Routine
----------------------------------
Three example programs are included in the three directories on the
disk.  Please note that these example programs were written to work
with the VFX1 HeadGear Driver software version 2.0 and will not work
correctly with the old software due to a new video mode that isn't
implemented in the version 1.76 software.

3.2.1 Quick Start

The \QSTART directory:
   QSTART.EXE - A version of the program built with Borland C++ v3.1
   QSTART.C - An example of how to use the simplified VFX1 interface.
   VFX1REGS.C - The code for the simplified VFX1 interface.
   VFX1REGS.H - A header file that will allow you to use the
        VFX1REGS.C interface.
   VFX1.H - A header file used by QSTART.C and VFX1REGS.C for
        communicating with the VFX1 HeadGear.

   This program should compile correctly as a 16-bit DOS EXE under
   Borland C++ v3.1, Microsoft Visual C++ v1.52c or Watcom C++ v10.0a.
   It should also compile as a 32-bit DOS EXE under Watcom C++ v10.0a.
   For more info see Chapter 2 of the VFX1 HeadGear Programmers
   Reference Manual.

3.2.2 Example 1

The \EXAMPLE1 directory:
   EXAMPLE1.EXE - A version of the program built with Borland C++ v3.1
   EXAMPLE1.C - An example of how to use the VFX1.COM interface.
   VFX1.H - A header file used by EXAMPLE1.C for communicating with the
        VFX1 HeadGear.

   This program should compile correctly as a 16-bit DOS EXE under
   Borland C++ v3.1, Microsoft Visual C++ v1.52c or Watcom C++ v10.0a.

3.2.3 Example 2

The \EXAMPLE2 directory:
   EXAMPLE2.EXE - A version of the program built with Borland C++ v3.1
   EXAMPLE2.C - An example of how to use the VFX1.COM interface
        through DPMI simulated real mode interrupts.
   VFX1.H - A header file used by EXAMPLE2.C for communicating
        with the VFX1 HeadGear.
   DPMI.C - The module that allocates the configuration/report
        buffer to be shared with the VFX1.COM and makes the
        simulated real mode interrupts.
   DPMI.H - The header file required when using the dpmi.c module.
   EXAMPWAT.BAT - Example of WATCOM C DOS based batch file for
        example.exe
   MAKEFILE - The makefile for creating the DOS EXAMPLE.EXE program
        with Borland C++ v3.1.

   This program should compile correctly as a 32-bit DOS EXE under
   Watcom C++ v10.0a or as a Large model Windows 3.x EXE under
   Borland C++ v3.1 or as a 16-bit DOS EXE under Borland C++ v3.1.
   NOTE - If compiling under Borland C++ for windows, make sure
   that _WINDOWS is #defined.


4. Windows 95 SDK
-------------

  Make sure you have the latest version of the FORTE Technologies Direct
Input drivers for the VFX1 HEADGEAR and Cyberpuck installed or this code may
not work!

4.1 Win95 SDK Installation
--------------

  Install the Win95 SDK on to the hard disk

    o Open up Explorer and select the floppy drive that you have inserted
        the VFX1 SDK diskette.
    o Double click on VFX1SDK.EXE. This will open a DOS box and run the VFX1
        SDK installation program.
    o On the second screen select "Install Windows 95 SDK".  The default 
        location for the SDK is C:\VFX1\WIN95SDK.
    o After the file copy is complete select "Done Installing" to exit
        the installation program and close the DOS box.


4.2 Windows 95 Sample Code and Interface Routines
-----------------------------

\WIN95SDK -
  Documentation
   WIN95_DI.DOC - A Microsoft WORD document that describes the VFX1
       Mini-Driver and interface.

  Example Code
   VFX195.C - The Main interface functions for any HMD Headset under 
       Direct input.
   VFX195.H - Header file for main code.
   VFX1FRAG.C - An example code fragment to demonstrate the use of
       finding and polling an HMD setup under the direct input drivers.


4.3 Miscellaneous information
------------

    To configure MechWarrior 2 simply pick either device (VFX1 Head
        Tracker or CyberPuck) and assign to axis via the Cockpit controls
        section in MechII.
        
    To configure the application FURY3 the CyberPuck must be select as the 
        primary Joystick.  
        **** Be careful to follow the text instructions when calibrating.


    For new developers attempting to get tracking information from the
        Headset.  Look at the sample code supplied
      <VFX1FRAG.C>
            No adjustments should be made to the axes (EVER). Adjustments
            to axes scaling are handled by the VFX1 Control Panel
            application VFX1Cfg.exe through changes that it makes to the
            registry.
                
                All axis are considered to be 0 - 65535 
                being equal to -179 to 180 degrees.

                32768 is the zero position for all axis.  
                This will always be true.
            

4.4  FORTE VFX1 HEADGEAR/Cyberpuck Direct Input RELEASE NOTES
-------------

4.4.1    BETA Release II Version 1.1 (4/15/96)


    As of this release the following changes/bug fixes have been incorporated
        into the driver.

    o There was a bug in the vfx1cfg.exe application in which the index
        for an assigned HMD when not found was causing an application 
        error.

    o The vfx1cfg.exe app. now includes the ability to select the HMD
        to configure.  
        This works by asking for each joystick ID assigned to an HMD
        if this is the HMD to be configured. 

    o To get the version number for any given release of the Win95
        drivers the user needs to see the About dialog box in the 
        VFX1cfg.exe application.

    o Addition of functions to support the storing / retrieval of the
        zero set values as well as all other parameters such that upon
        reboot of windows the registry will be read and the proper values
        stored.  This prevents having to reconfigure after every reboot.

    o There was an init bug in the startup/config function in the 
        FORTE.vxd.  This bug would only show up when the VIP hardware
        did not init. properly. Bug has been fixed.

    o Updated the internal init function to download the current F3
        file.
        
    o Fixed the windows DOS Box video problem.  The Video mode was not
        being identified correctly.

    o Updated the FORTE.VxD driver to the proper VxD ID number.

    o Updated the ACCESS.bus init. process to include the most 
        recent copy of the VFX1.COM driver.  This corrected bugs with
        detecting devices after powerup.

Items to be incorporated in the next release, and currently being worked on

    o VFX1.COM compatible mode. either via VFX1.COM or implementing
        the VFX1.COM functions internally within the Win95 drivers.

    o Fix the Cancel button in the vfx1cfg.exe application to resort 
        to the configuration prior to any config changes.



4.4.2    BETA Release III Version 1.2 (4/26/96)

**************************************************************************

NOTE:    **** The Windows 95 drivers will now support DOS box apps. ****

NOTE:    **** The 2.0 VFX1 DOS software driver is now required for the 
             Windows 95 environment to run properly. ****

**************************************************************************

Since our last release the following Items are incorporated/fixed/changed
    to fit the requirements of the current version.

    o The video synching and mode control is now removed and left up to
        the VFX1.com driver.  The software hooks to identify mode changes
        where not working properly across DOS boxes as well as windows
        apps.

    o A bug was identified such that after a software reboot of windows
        the forte.vxd would not detect the devices properly; thereby, no
        tracking would be available for either the CyberPuck or the VFX1.
        This problem is now corrected.

    o In order for the Video Functions to be supported in both windows
        and DOS boxes (with protected mode apps. running) we determined 
        the VFX1.COM driver would be required.  However, in order for
        the VFX1.COM interface functions (INT 33 software calls) to be
        supported in the DOS boxes or in DOS mode the VxD driver would
        have to hook it.  Therefore, we resolved all of the above 
        problems by incorporating both solutions.  Thereby requiring the
        VFX1.COM driver to be loaded.
        The above fixes should allow a DOS box to be running a DOS VFX1
        application with windows running a windows application supporting
        Direct Input.

    o The vrmouse.com driver has an update to allow it to function in
        a Win 95 DOS box.  The update is now included in this release.
        This modification does not effect it's performance in the DOS
        Version and will be available in the next release of the VFX1 
	FORTE VFX1 Windows 95 Direct Input Drivers
        DOS software.  You will need to copy over your current version of
        vrmouse.com in the VFX1 install directory on your hard drive.

    o The keyboard injection process is now filtered up to the Windows
        forte.vxd driver.  There the key stuffing should function on any
        P.C. running windows.

    o A modification has been made to the SETVFX1.exe application to
        allow it to run from a windows DOS Box.  This update has been 
        included with this release and should show up in future DOS
        releases for the VFX1.  You will need to copy the version on
        the windows install disk into your VFX1 install directory.
	FORTE VFX1 Windows 95 Direct Input Drivers


5. Note About Coordinate Systems
-----------------------------

For the VFX1 and the CyberPuck, the rotation angles represent an
ordered sequence of signed rotations about a right handed coordinate
system.  These rotations represent a rotation from a fixed starting
orientation of the headset in space.  This fixed starting
orientation is with the headset level and its internal XYZ
coordinate axes aligned with an external set of XYZ axes.  This
position gives a 0,0,0 set of rotation angles returned by the
headset.  The internal XYZ axes of the headset are defined such
that the positive x axis is sprouting from the user's right ear,
the positive y axis is sprouting from the user's nose, and the
positive z axis is out of the top of the user's head.

A set of positive rotation angles for yaw, pitch and roll means
the user has first swung his head to the left (yaw), then raised
his line of sight upward (pitch), and then tilted his head about
the line of sight to the right (roll).  These motions represent
right hand rotations about the current internal z, x, and y axes,
respectively.

The CyberPuck uses the same coordinate system, although yaw is
inactive.  For instance, tilting the Puck back toward you results
in a positive pitch angle.

