First post, by truth_deleted

User metadata

Jedi Knight: Dark Forces II features Direct3d 5.0. It is running inside DosBox at very high frame rates with 3d acceleration. See wikipedia for background on this game: en.wikipedia.org/wiki/Star_Wars_Jedi_Knight:_Dark_Forces_II. The community of gamers are in debt to the DosBox authors and contributors, especially for kekko's patch.

Instructions are below, but mostly from memory. As others find steps vague or missing, reply to this thread so I can update. First, obtain two versions of DosBox, the SVN Daum build (5/6/13) and JDosBox (jdosbox.sourceforge.net). Next, navigate to this thread: www.vogons.org/viewtopic.php?t=17324. Follow the "short instructions" as kindly provided by DosFreak, except for his step #1. Instead, use jDosBox (java version) to install Windows98SE. I had no errors while installing and the process takes about 45 minutes given typical conditions.

After installation, then that hard disk image can be booted via the SVN Daum build of DosBox. Here are notes for modifying the dosbox configuation file, dosbox.conf, in this build:

# line below is hint to mount a Dos 6.22 disk; to boot, follow the line with "boot -l a"
# imgmount 0 C:\DosBox\Win98\622C_boot.IMG -t floppy -fs none

# line below is hint to boot off the hard disk image
imgmount 2 C:\DosBox\Win98\Win98.img -fs none -size 512,63,64,1023
# line below is for booting image "2" as the C: drive
# boot -l c
------------------END OF CONFIGURATION FILE----------------------------

To complete the below steps, there must be a way to transfer files to and from the hard disk image. Given "OSFmount" is compatible with your operation system, use this tool to mount the disk image as a drive.

Once in Windows98 within DosBox, then install the unofficial Windows98SE Service Pack 2.1a; available here: exuberant.ms11.net/98sesp.html. Second, install the "PCI bus" via "Add New Hardware". This allows detection of the Voodoo1 virtual card along with a few other virtual devices. Then install the Voodoo1 drivers available from the thread by DosFreak (Voodoo1-v3.01.00-9x.zip). After unzipping the Voodoo1 drivers, then enter System in Control Panel and upgrade the driver for the 3dfx graphics adapter (underneath the Sound devices). Next, install DirectX 7.0a; download sites via google search. Do not install newer versions of DirectX because there are reports it is not fully compatible with Voodoo1 (partially verified). Fortunately, Windows98SE already includes robust drivers for video and audio. Note that the APM and Hard Drive Controller devices are not yet compatible with Windows drivers, you may disable these devices (identify them by their yellow exclamation point).

In the Display panel, there should now appear a tab for "3dfx graphics". I turned vsync off for both glide and d3d; verify that the checkbox for d3d is active, too.

Jedi Knight has a demo available here: www.gamershell.com/download_4675.shtml. Install. Within the Setup screen in-game, note to enable 3d acceleration and choose 640x480 resolution only. Increase the view size to maximum. The game ran on a slow Core2Duo system and the frames per second ranged between 50 and 150.

Also, have been able to play Rogue Spear and NOLF using the above configurations. Both range between 10 - 15 fps but with graphical artifacts, especially in NOLF. Started Rogue Spear in software mode; modified in-game settings so advanced graphical features were disabled.

* edited to modify configuration and change suggested directx version; added Rogue Spear and NOLF as near playable.

Last edited by truth_deleted on 2013-05-26, 03:15. Edited 1 time in total.

Reply 2 of 6, by Dominus

User metadata
Rank DOSBox Moderator
DOSBox Moderator

Not everyone runs a Windows host 😉
But if it runs great in Wine... Then I wouldn't bother...

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper

Reply 4 of 6, by danoon

User metadata
Rank Member

I spent a lot of time getting Win98 to work under jDosbox. I did that work quite a while ago so hopefully I what I'm about to say is correct.

On a real CPU every instruction that can cause a page fault can be re-entered after the page fault is handled. In Dosbox this is not true because they implemented their own dos and bios calls so those calls are complex enough that to make them reentrant would be difficult. So instead dosbox runs the page fault in place and once handled it will continue to execute where it left off.

Windows 98 expects that some page faults will not be handled correctly and thus the Dosbox method will not work as expected.

jDosbox keeps the old Dosbox way of handle page faults in place for dos and dosbox bios calls, but if its not in a dos or bios call it will change the instruction pointer to the page fault handler and not remember anything about where it happened, that way if it doesn't handle the page fault no harm will be done.

Reply 5 of 6, by bloodbat

User metadata
Rank Oldbie
robertmo wrote:

But Dark Forces 2: Jedi Knight + high resolution textures update works nicely in Windows 7 in d3d mode.

Kind of...at least mine has to window the menus and, I think, videos. (Steam version).

Reply 6 of 6, by robertmo

User metadata
Rank l33t++
bloodbat wrote:
robertmo wrote:

But Dark Forces 2: Jedi Knight + high resolution textures update works nicely in Windows 7 in d3d mode.

Kind of...at least mine has to window the menus and, I think, videos.

me too