EPIC FAQ: Other Software Problems


I have a button event assigned to Project Magenta, but FS changes views or does other wierd things when this event is sent.

 

    It could be that the GUID is missing from the FS9.CFG file. IF you have devices communicating with PM you have to put a dummy JOYSTICK_MAIN section in FS9.CFG otherwise FS2004 will do some screwy things with button events it sees.

 
    Look at  \Documents and settings\<your user name>\Application Data\Microsoft\FS9\FS9.CFG file and count the number of JOYSTICK_MAIN sections, if it is less than the number of Game Controller devices, that could be the problem.
 

Backup your existing FS9.CFG

 

Start FS2004. Go to FS joystick assignments (options | Controls | Assignments) and select the EPIC USB (probably the last one) that has your Project Magenta button on it.
Double click any event to assign , like ADF or anything. The assignment dialog will pop up. Hit your PM  button. A button number will be assigned to the ADF, exit FS.
Edit the FS9.CFG file and the last section should be the new JOYSTICK_MAIN{....GUID#....} and you should see the ADF button assignment. Delete every thing in that section leaving only the JOYSTICK_MAIN{...GUID#...} line.

 


(USB) What should be order of things?

in your project main EPL file:

#include <EPICDEFS.HPL>        //this is in your EPIC\Include directory and contains common definitions, program IDs etc.
                                                        //this was EPICHID.INC and is now renamed to EPICDEFS.HPL

definemodule..........                   //module definitions. Do not include Display modules

#include "device.hpl"            //your device descriptor file.

variable definitions. This includes byte, word, flag, BCD, etc.

:INIT{  ...initialization code...}      //This procedure is executed when a project load is done (F10)

.....other epl procedures .....

 

>>>>>>>>>>>>>>>>>>

device descriptor file:

#pragma hid_rpt_snd    xx        //where xx is the number of devices to send to direct input. These will show up in Game Controllers
                                                    // and will be in the order of definition. To send the first 3 devices for example, #pragma hid_rpt_snd 3

connector definitions                      // connectors have analogs and switch module/row definitions for use in devices.

direct input devices                       //These devices will show up in Game Controllers and can be used to pass analogs, buttons, POVs
                                                            to Flight Simulator and other programs

SEND_BUTTON_DLL devices   //These devices can be used to send direct events to a  program connected to EPICIO.DLL

physical devices                          // switches, displays, outputs, etc.

#include mousedevice.hpl        //the mouse device must be last


(USB) How can I load a project using a command line?

example using project name of "test"

cd\epic\projects\test
c:\epic\bin\epicenter test.def

If EPICenter is in the path:
cd\epic\projects\test
epicenter test.def

If .DEF files are registered to EPICenter (the .DEF will show as the EPICenter icon)
C:\epic\projects\test\test.def


(USB) I click on EPICenter icon and nothing happens

(Windows2000 ) CTRL-ALT-DEL / Task Manager / Processes /image name (twice to sort)
        Find EPICENTER.EXE , end task.

 

 


 

 

(USB) How can I restrict the number of devices sent to Direct Input?

    use #pragma hid_rpt_snd x  where "x" is the number of devices to send. This will send the first "x" devices described in your device descriptor file.


 

(USB) What do the status leds mean?

USBleds.pdf


(USB) I get no keystrokes when using EPIC as an HID keyboard (V0.56 and higher)

       1. start /  run   / regedit
                HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\HID
                There will be entries for Vid_A2C0..........
        2. exit regedit
        3. EPICenter (Version 1.0.0.0 and above)
        4. Tools
        5. Clean Registry
         6. check top two boxes, and uncheck the rest, then click "OK"
        7. regedit
                HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\HID
              make sure the Vid_A2C0 entries are gone
              check
             HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB
                make sure these are gone also
                IF the above are not gone:
                    1. run REGEDT32           (assuming win2k or XP asoperating system)
                        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB
                        make sure the HID section is highlighted
                    2. Security / Permissions
                        Make sure Administrator has "Full Contol" checkedand check if not checked , then "APPLY"
                        you should have an "everyone" section, make sure"Full Control" is checked and check if not. Then "APPLY"
                        you can give "Full Control" to others if you wish
                     3. exit Regedt32
                    4. Repeat steps 5 and below again.

           8. Unplug EPICUSB USB cable and plug back in.
               You should get "New Hardware Found"
               You may have to direct the install to EPIC\Install directory
Load your project
See if the keystrokes work now.


Controls are jumpy in FS98(EPICISA)

    Start/settings/control panel/Game Controllers/Advanced

    Uncheck "poll with interrupts enabled"


Controls are not recognized by WIN95 programs (EPICISA)


NEED for SPEED controls do not work correctly.


Cannot get EPIC to stay in device manager

You may have to use the ISA Configuration Utility to disable the gameport of a PNP card.

If the existing game port is on a PCI card

    1. Start/settings/control panel/system/device manager

    2. Click on existing Gameport

    3. Remove. Donot restart

    4. Install EPIC by WIN95.TXT method.

    5. Restart.

If EPIC is removed and the PCI gameport put back in

    Try the method in GAMEC.TXT

 

 


How can I load a file to a blank EEPROM?

EEPROM 28C256 150ns or faster.

Download EEBlank.txt and follow instructions. This is the "scary " method.


WIN95 conflict with "Motherboard Resources" port 202-20F


I get message "TSJR overflow ......" , or When running FS5 or FS6 views change when I hit my toe brakes

See "Hold Stack Error" below for debugging.

#define fastscan 0
definemodule(0,fastscan,0,7) ;scan all of module 0 DB15s

:test{
keyhit(a)
delay(100) ;delay 2 seconds
ifactive(0) jump test
}

definebutton(0,on,test)

:test{
keyhit(a)
delay(100) ;delay 2 seconds
ifactive(0) jump test
}

:test1{
disablescan(0)
call(test)
enablescan(0)
}

definebutton(0,on,test1)

flag(loop_active)

:test{
keyhit(a)
delay(100) ;delay 2 seconds
ifactive(0) jump test
}

:test1{
if(loop_active) jump return
setflag(loop_active)
call(test)
clearflag(loop_active)
}

definebutton(0,on,test1)

 


I get message "Hold Stack ERR ......" , views in FS5 or FS6 can start changing

The Hold Stack keeps track of multithread history when exiting out of the main command processor. This happens when there is a DELAY( ) within a CALLED routine. The message will occur when the nested level becomes greater than 8.

The source of the error can be found by running-

DUMPEPIC /Z /X280 > test.dmp

After getting the error. DONOT hit the RESET button or run any other EPIC program before running the DUMPEPIC as this will clear the debug buffer. Look at the file test.dmp and then look at the section labeled "backtrace buffer". Find the number 0001-0010 in the list. This is the error code. The numbers above that code are the last commands to be executed. Find the number lower than that number in the CMD Block section. This will be the start of your function in your .EPL file. Look at the .EPL file and find the same routine. You should find the error there. The usual error is a CALL back to the same routine (recursion overflow) or a JUMP in a local block back to the same routine that includes the local block.

 

definemodule(0,0,0,7)

;too many calls with delays. Error will occur at the eighth level down

:t1{keyhit(a) delay(1) call(t2)}
:t2{keyhit(b) delay(1) call(t3)}
:t3{keyhit(c) delay(1) call(t4)}
:t4{keyhit(d) delay(1) call(t5)}
:t5{keyhit(e) delay(1) call(t6)}
:t6{keyhit(f) delay(1) call(t7)}
:t7{keyhit(g) delay(1) call(t8)}
:t8{keyhit(h) delay(1) call(t9)}
:t9{keyhit(i) delay(1) call(t10)}
:t10{keyhit(j) delay(1) call(t11)}
:t11{keyhit(k) delay(1) call(t12)}
:t12{keyhit(l) delay(1) call(t13)}
:t13{keyhit(m) delay(1) call(t14)}
:t14{keyhit(n) delay(1) call(t15)}
:t15{keyhit(o) delay(1) call(t16)}
:t16{keyhit(p) }

:t{call(t1)}

;loop with call( ) . Error will occur on 8th iteration
:tt{
keyhit(x)
delay(20)
call(tt) ;this should be JUMP( tt ) not CALL( tt )
}


definebutton(0,on,t)
definebutton(1,on,tt)


Copyright © 1997 R&R Electronics, all rights reserved.
Send mail to: rrelect@mindspring.com