DJGPP JJFFE information

Elsewhere on the site


Versions

There are two DJGPP versions of JJFFE, one using the original HMI drivers for sound and raw low level routines for input and graphics, and another using Allegro 3.12 for all low-level code.

The Allegro version has the advantage of auto-configuring sound, but has no joystick support and MIDI often sounds slightly worse than the HMI version. Other than this the versions are essentially identical.

The two current binary releases include the following files:

dosjjffe28b.zip:

ffedos28.exe    -   Replacement DOS executable for FFE
ffedos.cfg      -   Example config file for the above
joycal16.exe    -   Joystick calibration file generator
mouseacc.exe    -   Mouse accelerator (for raw DOS)
setup.exe       -   Hacked version of sound config program
jjffe28.txt     -   Basic readme file for all versions
	

daljjffe28b.zip:

ffedal28.exe    -   Replacement DOS/Allegro executable for FFE
ffedosal.cfg    -   Example config file for the above
jjffe28.txt     -   Basic readme file for all versions
	

Running DJGPP versions under raw DOS

ffedos28.exe and ffedal28.exe are a DJGPP executables and so require an external DPMI server to run. You can get a DOS one from any Simtel mirror, or:

http://www.jaj22.demon.co.uk/csdpmi4b.zip
(Source at: http://www.jaj22.demon.co.uk/csdpmi4s.zip)

Unzip csdpmi4b.zip into the FFE directory and then run ffedos28.exe or ffedal28.exe as usual.

Running DJGPP versions under Windows NT or 2000:

This can be made to work. To enable sound you need a DOS sound emulation program. A freeware one can be obtained from http://sourceforge.net/projects/vdmsound/

Alternatively there is a commercial DOS sound emulation program called sfx2000 which is time-limited shareware. You can get the trial version from http://www.softsystem.co.uk/page3.htm.

To avoid the timelimit (although not the evaluation message), add the following value into the registry under HKEY_LOCAL_MACHINE\Software\SoftSystems\SoundFX:

value name = PSQR@+,>
value = 0x19541009 (hexadecimal)
	

To prevent crashes, you may need to increase the amount of DPMI memory available to the program - 5MB should be fairly safe. Using hardware timer compatibility emulation is also recommended.

Running DJGPP versions under Linux with DOSEMU:

There is as yet no known way to make the sound work under DOSEMU, and it tends to lock up the program. Other than that it should run with normal DOSEMU settings. To disable sound in the HMI version, simply delete hmiset.cfg. To disable sound in the Allegro version, add the following to allegro.cfg:

[sound]
digi_card=0
midi_card=0
	

Running DJGPP versions under OS/2:

"the latest DJGPP versions work fine in an OS/2 fullscreen DOS session including sound. You don't even need an extra DPMI extender, since OS/2's DOS mode has a built-in one. The only thing that needs to be done is to set DPMI_DOS_API to ENABLED to turn it on and specify a suitable amount of memory via DPMI_MEMORY_LIMIT in the DOS session's settings."

Thanks to Christian Hennecke for that one. A suitable amount of memory is probably around 5MB.


Configuring sound for the HMI version:

This only covers the settings contained in hmiset.cfg - sound file locations are covered on the main page.

Configuring hmiset is easy enough if you can convince setup.exe to run. A hacked version of the original is now included which is much more reliable, but some soundcards when attempting to autodetect.

If you can't get either setup.exe to work, you'll need to work out the correct settings yourself and enter them manually in hmiset.cfg. Possible values are listed in setup.ini. Under Windows, you can find out your real values by looking at the resources used by the relevant devices in the device manager.

An example hmiset.cfg is shown below:

[DIGITAL]
DeviceName  = Sound Blaster Pro
DeviceIRQ   = 5
DeviceDMA   = 1
DevicePort  = 0x220
DeviceID    = 0xe001

[MIDI]
DeviceName  = Sound Blaster Pro
DevicePort  = 0x388
DeviceID    = 0xa002
	

These settings will work on the majority of machines - if not, try 7 instead of 5 for the IRQ. You can often get wavetable cards working by using:

[MIDI]
DeviceName  = MPU-401
DevicePort  = 0x330
DeviceID    = 0xa001
	

Configuring the joystick for the HMI version:

joycal16.exe is the utility used to produce the joycal16.cfg files needed for joystick support in ffedos20.exe onwards. To use, just plug in your joystick and run it.

Note that the two "Centre joystick and press any key" tests will often give different results. Many sticks are designed to give different values depending on which direction you approach the centre from.

Scaling exponent values above 1.0 cause output values to increase slower near the centre of the stick, hopefully giving you more control. Values of 2.0 are usually ok, but experiment to find your preferred settings.

The deadzone is the region around the centre position that maps to zero movement. You want this set to the smallest value for which drift is zero. Usually one or two percent is fine.

The maximums change how fast you turn at maximum stick displacement. 512 is usually about right.

Polling the stick in interrupts can cause a noticeable drop in frame rates on slower PCs, but is more accurate. Choose 1 if you have a powerful PC.

Resetting on centre is down to personal preference. I prefer setting this to 1 because it's more predictable.


Return to main page