The JJFFE FAQ

Return to main page

General questions

Version questions

Sound questions

Video questions

DirectX version specific questions

DJGPP version specific questions


General questions

What does JJFFE stand for?

John Jordan's Frontier: First Encounters. I never had any imagination for names.

What's the point of JJFFE?

FFE didn't run on Windows 95 as a result of using the Borland DPMI manager. Other than the inconvenience of dropping out to DOS, many PCI soundcards didn't work correctly with DOS emulation and newer versions of Windows (NT, 2k, ME) didn't have a DOS mode at all.

How was JJFFE created? Which FFE version is it based on?

JJFFE was created by decompiling FFE 1.06 disk version to NASM assembler using a custom decompiler based on NDISASM source. Library functions were then identified to allow recompilation. JJFFE versions 2.0 onwards were created by stripping all OS-specific and non-ANSI code out of the assembler into a separate API, allowing ported versions. A small quantity of AVI code was taken from the FFE 1.05 CD version and reintegrated.

How long did JJFFE take you to create

Initially around a month, including writing the decompiler and debugging the sound code. It would have taken a lot less if I'd known that IDA identified Borland libc functions. Modifying it to portable level (JJFFE 2.0) took another few weeks, and the Win32/DirectX version took a couple of weeks more. I've also spent a few months identifying various parts of the code.

Do Frontier Developments know about JJFFE?

Yes. They haven't commented on it, probably to avoid weakening their copyright. They haven't yet asked me to remove JJFFE though, so I'm happy with the situation.

Will the Elite Club ever happen?

You think I'd have put this much effort into it if I thought so? Seriously, I don't expect it to start much before Elite 4 is released, if not after.

What improvements are planned to JJFFE?

Once my RSI clears up, I shall hopefully be fixing the physics code and rewriting the 3d engine for 640x480x16. I wouldn't count on the last one though, it's a huge job.

I've found a bug. What should I do?

Note that FFE is full of bugs anyway, and I know most of them pretty well. However, if you think a bug might be JJFFE-specific, please contact me as soon as you can with OS, JJFFE executable name and as many details as possible.

Will you hack X for me?

Not unless you pay me or you have a bloody good reason.


Version questions

Which version should I download?

Check out the advice on the download/installation page.

I'm really confused by all these versions. What should I do?

Check out the idiot's guide on the download/installation page.

I'm using an older version of JJFFE. Should I switch?

Not necessary if it works reasonably well. No JJFFE version has any (additional) critical bugs except 1.3. However, version 2.2 has some minor gameplay improvements over earlier versions, so check over the version history and see if you're interested.

If you were running JJFFE 1.5 or earlier, the DJGPP/HMI version of JJFFE 2.0+ is equivalent and uses the same sound config setup.

Why should I run JJFFE? The DOS version works fine for me.

Luddite.

What are ffewdos.exe and ffewin.zip?

These are Windows-compatible FFE versions I created before JJFFE using a program called WDOSX (written by Michael Tippach). Unfortunately they suffer from some sort of precision bug which sometimes causes starports to be wildly displaced from their correct altitude. They also don't have any of the additional features of JJFFE versions.


Sound questions

Why doesn't the sound work?

You probably have a broken installation. See the installation instructions for more details.

If you're running either DJGPP version under Windows NT/2000, you will need to install a DOS sound emulation program. See the DJGPP version page for details.

If you're running the DJGPP/HMI (not DJGPP/Allegro) version of JJFFE, you need the hmi*.386 files that come with FFE. You also need to run the setup.exe program included with JJFFE. This may crash with some cards, in which case hmiset.cfg can still be configured manually. See the DJGPP version page for details.

Why do the notes seem to stick in the music?

Some of the FFE MIDI files (the ones not starting with QQ) were badly converted from the FE2 files. They seem to rely on soundcards automatically lifting notes after a few seconds. This generally works on FM chipsets but not with wavetable. Current workarounds include replacing the errant files or simply disabling them within FFE. Ideally someone would remove the stuck notes from the MIDI files, but it's not exactly my specialty.

Can I replace the music files with better versions?

Yes. It's easy with the Allegro and DirectX versions - just replace the *.mid versions of the files with identically named MIDI files. With the DJGPP/HMI version, you'll need to convert to HMP format first. Note that no version will currently play MP3s or any format apart from MIDIs.

Do I need to convert the *.hmp files to *.mid?

Not for version 2.2. The DirectX and Allegro versions of 2.0 and 2.1 required *.mid versions of the music files, but the conversion is now done automatically using code from Peter Pablowski.


Video questions

Why don't the video clips work?

The video clips require the AVI files from the FFE CD to be in relevant directory in the config file ([DIR], AVIPath). They should play automatically unless you turned them off in FFE's escape-menu config.

Why are all the journals blank?

This happens if you don't have mission.dat in the same directory as the JJFFE executable. This file comes with FFE, so it should be there if you've installed over the top of an FFE installation. See the installation instructions for more details.

The cabin backgrounds are horrible. Can they be changed?

Yes. Just edit the cabin*.bmp files in your preferred paint package, making sure that you leave the palette unchanged, only use the first 128 colours and save as an 8-bit (256 colour) uncompressed BMP file. Note that there are different cabin bitmaps for each ship size, and an extra one for the thargoid ship.

How do I increase the graphics resolution?

You can't. Even the versions that run in DirectX are at heart old DOS games, restricted to 320x200 in 256 colours. Never mind. If you play it for a couple of hours your brain will adjust.

How do I take screenshots?

An old but lesser-known feature is taking screenshots with the number-pad asterisk instead of the PrntScrn key. This is useful because by default Windows hooks the PrntScrn key for its own purposes.

Are you going to make space black?

I've done this in version 2.4 so you can stop pestering me now.

Why does part of the screen disappear in fullscreen modes?

Modern monitors often aren't set up properly for lower-resolution modes. You may need to resize the screen using the monitor controls. On some machines, this may only happen with the DirectX versions. These often emulate 320x200 modes using 640x400.


DirectX version specific questions

Why's it so slow?

The DirectX versions work fine on most video cards, provided that you're not trying to run anything else too taxing in the background. The main problem is that some cards don't support hardware scaling, so 640x400 windowed mode (the default) can be very slow. This can be detected by changing the winwidth to 320 and winheight to 200 in ffewin.cfg and checking the speed.

Any video card that doesn't properly support hardware 3d is likely to have problems with hardware scaling, with the ViRGE and older Matrox (pre G200) cards being the most recent offenders. Some Savage 4 drivers also don't seem to support it, but others are fine. For ViRGE or Matrox cards there's no fix for this other than running in fullscreen mode.

If changing the resolution to 320x200 windowed doesn't help, make sure that the display bit depth is 16bpp (Control Panel->Display->Colours). Higher bit depths are slightly slower anyway and some drivers scale much better in 16bpp.

If it's still very slow in 320x200x16bpp windowed, your video card probably has extremely poor DirectX drivers. This is most common in Windows NT/2k. Your only choices are to upgrade, try fullscreen mode or use a DJGPP version.

How do I make it go fullscreen?

Ctrl-F12 toggles between fullscreen and windowed modes. Note that using Ctrl-F12 to get back is generally safer than using alt-tab, because tab is also the key to lauch or change flight mode in FFE. You can make it start in fullscreen mode by setting fullscreen=1 in ffewin.cfg.

It gives me the error "Failed on SetDisplayMode" when I try to switch to fullscreen. Why?

This is usually caused by the 320x200x16bpp DirectX mode not being available. This is unfortunately becoming more common on newer cards. You can force it manually into fullscreen mode by setting fswidth=640, fsheight=480 in ffewin.cfg, but this tends to look pretty nasty and is likely to be even slower than windowed mode. If newer drivers don't enable the 320x200x16bpp mode, the only option is the DJGPP versions.

Why does the sound in the videos "click" frequently?

This was fixed (well, worked around) in version 2.6.

Why does the music sound worse than when I run it under DOS?

The music should generally sound identical, other than stuck notes acting slightly differently. However, it's possible that the default Windows MIDI driver is a software or FM one. Check Control Panel->Multimedia->MIDI (Win98, Win2k/NT unknown) and make sure the hardware wavetable driver is selected.

Why does the game pause for up to ten seconds when changing music?

This can happen if you have a DirectX version less than 6.1, causing JJFFE to use MCI for playing MIDIs. MCI is generally fine on Win9x, but can be very slow on WinNT. If you can't upgrade your DX version, you're probably stuck with the pauses unless you disable music.

Why does the game seem to lose keypresses?

This is supposed to be fixed by SP1 of Windows 2000. It shouldn't happen on any other operating system unless the frame rate is particularly low.

Why does the game take so long to start up?

DirectX is big, particularly versions 7 and 8. I have reports of them taking as long as 30 seconds to start up on a fragmented drive.

Why does the game freeze when I press ALT or F10?

This was fixed in version 2.6.


DJGPP version specific questions

Windows locks up when I run JJFFE. Why?

Some particularly buggy graphics drivers can't handle a simple mode 13h switch without locking up. There's a workaround for this - open up a DOS prompt, fullscreen it with alt-enter and run JJFFE from there.

Windows NT/2000 crashes when I run JJFFE. Why?

NT and 2000 are apparently set up to give DPMI programs pathetically little memory, and this can cause JJFFE to crash. This can be changed in the program properties - right-click on the executable, go to properties, the memory tab, then increase DPMI memory to at least 5MB. Thanks to Matt Dibb for that info.

Why does the screen flicker or band?

I have a report that the Voodoo 5000 series of cards emulates mode 13h rather than supporting it directly. FFE's dynamic-palette code tends not to work well with emulation. Try a DirectX version instead.


Return to main page