VOGONS

Common searches


Direct3D games in DosBox

Topic actions

  • This topic is locked. You cannot reply or edit posts.

Reply 21 of 78, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
Kisai wrote:

I've also found that usually the problem doesn't really lie with the NT kernel itself, but the game's installer or the video card and its drivers, along with the way the game accesses CD audio playback (usually solvable with _inmm).

Problems with the video card and its drivers are bad enough, really.

We have had threads with examples before.
Are there still PC games that we can't run?
Win9x games that don't work on XP
Games: when do you stop using Windows 98, and start using Windows XP?

Old versions of VMWare used to be able to emulate a win9x class machine, and no longer do so.

Sure they do. They don't bother including the VMware Tools for Win9x anymore, but you can just get those from an older version.

Freddo wrote:

Discworld Noir is another game that refuse to work on NT Windowses, it only works on 9x, because of DRM. Very annoying. Hope ResidualVM will support the game at some point in the future.

Surely every variety of ten-year-old DRM has been cracked at this point?

Reply 22 of 78, by truth_deleted

User metadata
gulikoza wrote:
truth5678 wrote:

I am hopeful that there is source code for the glide2x_emu.ovl file, and wondering whether it is crucial for the video hardware acceleration.

glide2x_emu.ovl in Daum build is the original 3dfx glide2x.ovl from the voodoo(2?) driver package. It is not used by DOSBox (the program itself) but by the game running inside (and DOS titles only). The file is loaded from the DOSBox directory and put onto internal Z: drive. This allows the patched dosbox to switch between glide wrapper emulation and 3dfx hadware emulation (simply by switching the ovl file that is available on the z: drive).

Thank you for the information - that is very good to hear! Given the glide2x_emu.dll code is fairly stable, which it should be, then the build should remain always portable and proof against future operating systems. It's a commendable project that you and others have developed and kept open!

OSH wrote:

truth, can you post binaries??

I would be glad to. If there is no objection, I will attach it to this message within a day. (edit: it's now attached)

The binary would include a few DLL files that are required for the executable to run. Perhaps it would be ideal to install the Daum build, and then copy the new binary and DLL files over it. This may ensure that the Visual C++ runtimes were previously installed.

Also, I would like to add a strategy to increase virtual drive space. I didn't succeed at expanding the current virtual drive because any larger disk image went unrecognized; and so I assume there is a 2gb limit inside the DosBox build, at least for a FAT32 partition.

Instead I duplicated the Windows 98 disk image file (2gb in size). This duplicate was mounted as a drive (via OSFmount), then formatted via the Disk Management tool in the Windows host (not via the guest OS in DosBox), and finally mounted as a second drive in DosBox. Also useful is Daemon Tools (Win98 version) to mount an ISO image of a CD. This allows for software installation via CD.

IMPORTANT NOTES: It is strongly recommended to newly install Daum's build into a directory and then overwrite with the attached files. The attached executable, the one inside the zip file, can be renamed from DosBox-test.exe to DosBox.exe. The five DLL files are required. Take note that the glide2x.dll file is an older version than in Daum's build, but I compiled with the older source code. Last, this build was compiled for speed, not file size, and now has near the same performance as Daum's release build.

Also, I modified the openglhq output to only run fullscreen at 1280x1024, therefore I wouldn't use this build with that output mode. I would mainly test with output=openglnb, voodoo=opengl, glide=emu.

Attachments

  • Filename
    TestBuild.zip
    File size
    2.09 MiB
    Downloads
    239 downloads
    File comment
    DaumBuild+Voodoo1enhanced-ForTestingOnly
    File license
    Fair use/fair dealing exception

Reply 25 of 78, by truth_deleted

User metadata
OSH wrote:

Big thanks truth!!!

It's a showcase for kekko's work! Attached is an updated test build with a working openglhq output mode along with kekko's enhanced Voodoo1 device.

I was able to add the openglhq patch from ykhwong's site to the SDL 1.2.15 library, and then compile. It required the use of Visual Studio 2008. As in the previous test build, however, the fluidsynth and SDL_sound libraries are not active; the latter library supports file-based audio in cuesheets.

As before, I would install a fresh copy of Daum's build, and then copy the test executable/DLL files in that same directory.

ykhwong wrote:

truth5678, can you post source if any changes were made to the build?

Hi ykhwong, I appreciate all the work you have done to assemble the DAUM build and the continual efforts in updating it! I am fortunate that you have made these efforts available. Attached is the source code for your DAUM build along with very few modifications made to enable the added memory on the Voodoo1; and edits to code so that Visual Studio 2010 would compile your source code. The fluidsynth and SDL_sound related functions are disabled.

Please let me know if I can help in some modest way.

Attachments

  • Filename
    TestBuild-2.zip
    File size
    2.11 MiB
    Downloads
    215 downloads
    File comment
    Modified DAUM build+enhancedVoodoo1 (TestBuild #2)
    File license
    Fair use/fair dealing exception
  • Filename
    source.zip
    File size
    2.39 MiB
    Downloads
    185 downloads
    File comment
    Source code-modified DAUM build+enhancedVoodoo1 (TestBuild #2)
    File license
    Fair use/fair dealing exception

Reply 26 of 78, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie
truth5678 wrote:

Hi ykhwong, I appreciate all the work you have done to assemble the DAUM build and the continual efforts in updating it! I am fortunate that you have made these efforts available. Attached is the source code for your DAUM build along with very few modifications made to enable the added memory on the Voodoo1; and edits to code so that Visual Studio 2010 would compile your source code. The fluidsynth and SDL_sound related functions are disabled.

Please let me know if I can help in some modest way.

Hi, truth5678. Thanks for the info that VS2010 simply won't compile my current source code. I didn't notice that because my integrated development environment is VS2012 with Update 2 as of now. Also thanks for posing the source code.

Reply 27 of 78, by OSH

User metadata
Rank Member
Rank
Member

Hi!
I can't understand, why I can't install driver for S3 - I've got a message this card is incorrect. I've tried to install driver for S3 Trio 64V+ but this seems be incorrect. And Second problem is - I can't install voodoo - according telanus guide - (Guide) How to Install Win98se with 3dfx driver in Dosbox but Windows 98 can't find "PCI BUS", which is necessary for installing Voodoo...

Reply 28 of 78, by truth_deleted

User metadata
ykhwong wrote:
truth5678 wrote:

Hi ykhwong, I appreciate all the work you have done to assemble the DAUM build and the continual efforts in updating it! I am fortunate that you have made these efforts available. Attached is the source code for your DAUM build along with very few modifications made to enable the added memory on the Voodoo1; and edits to code so that Visual Studio 2010 would compile your source code. The fluidsynth and SDL_sound related functions are disabled.

Please let me know if I can help in some modest way.

Hi, truth5678. Thanks for the info that VS2010 simply won't compile my current source code. I didn't notice that because my integrated development environment is VS2012 with Update 2 as of now. Also thanks for posing the source code.

Any difficulty I had in VS2010 can be attributed to my continued inexperience working with the 3rd party libraries. 😀

OSH wrote:

Hi!
I can't understand, why I can't install driver for S3 - I've got a message this card is incorrect. I've tried to install driver for S3 Trio 64V+ but this seems be incorrect. And Second problem is - I can't install voodoo - according telanus guide - (Guide) How to Install Win98se with 3dfx driver in Dosbox but Windows 98 can't find "PCI BUS", which is necessary for installing Voodoo...

OSH, I had posted a brief installation guide for Windows 98SE:
Jedi Knight: Dark Forces2 +D3d in DosBox

Hopefully, the above guide won't be necessary. If you had installed 98SE, then the "PCI bus" is added *manually* via "Add New Hardware". This device will allow recognition of the Voodoo1 along with other devices. On the other hand, the S3 video has a driver already included with Windows 98SE. Windows should automatically detect this compatible driver; there should be no need to obtain one from another source.

If the devices are still not recognized, then I would try Windows 98SE and use jDosBox (java version) to complete the installation. This version has an IDE controller and compatible BIOS, so the Windows installation is not greeted with errors. After installation, the Windows disk image can be reliably booted via Daum's DosBox.

kekko wrote:

I guess it would even run 2001 games like serious sam, but I never fixed my mmx patch.

Here is a list of almost 500 games which require DirectX5 and therefore must be supported by a combination of the virtual S3 (2d) and the Voodoo1 (3d):
http://www.mobygames.com/attribute/sheet/attributeId,10/

Edit: A better list is of Windows games requiring a Pentium class CPU (although 486 games are not on this list?):
http://www.mobygames.com/attribute/sheet/attributeId,68/p,3/

However, the list has omitted Starcraft which is supported and it also doesn't include titles prior to DirectX5. In addition, it's expected that many non-3d and software-rendered 3d titles would be supported above DirectX5. I was able to run certain DirectX6 titles in hardware mode (Direct3D), too, but there is evidence of texture anomaly; at least in the current code. In theory these later titles should be supported, but the Windows Direct3D diagnostics (dxdiag) suggest that the DirectX5 list would better serve as an initial compatibility list for verification.

Edit: I confirmed that the DirectX5 titles are showing excellent compatibility with this setup. These titles include Jedi Knight in Direct3D mode and WW2 Fighters demo (3d mode). The latter has a patch according to a forum post which enables hardware mode via Glide or other 3d interface.

The DirectX5 titles should all work. Among those with DirectX6, the 2d titles should run fine but the Direct3D6 titles have occasional glitches, although playable. (Edit #2: glitches mainly caused by ATI HD6000 configuration; not observed otherwise). Among the DirectX7, I have verified that 2d titles will run, however, the Direct3D7 will have glitches. For instance, among the DirectX7 2d titles, Baldur's Gate 2 runs well; in the graphics options, the "software transparent blt" should be turned on. This will eliminate the any green textures which occur on the screen.

If a DirectX6 or DirectX7 title supports Glide or OpenGL, then these are candidates which are expected to run in the DAUM+Voodoo1 setup.

Last, for the 2d titles without 3d acceleration, try the OPENGLHQ output mode. It smooths over the pixelation of the graphics to a very high extent, leading to near full correction of stretching a 640x480 image to full screen. On the 3d accelerated titles, stay with the recommended settings as outlined in this thread (desktop=original, output=openglnb, voodoo=true, glide=emu).

Last edited by truth_deleted on 2013-06-13, 04:53. Edited 3 times in total.

Reply 30 of 78, by truth_deleted

User metadata
OSH wrote:

Something is really wrong. What kind of CPU should I set for jDosbox? When I try install Win98SE, after preparing for setup assistent (which takes really much time) I've got a message "Windows 98 requires at least 66 MHz processor". I set as processor Pentium!

Win98SE requires a 486DX-66 or higher processor. In the jdosbox configuration file, try setting the CPU settings to "auto". Also, I would run the setup executable from the Win98SE directory with all the "cab" files, not from the topmost directory of the CD.

To speed up the installation, since it is slow, please set the frameskip in the configuration file to 5 (or larger number).

Reply 31 of 78, by robertmo

User metadata
Rank l33t++
Rank
l33t++
OSH wrote:

Something is really wrong. What kind of CPU should I set for jDosbox? When I try install Win98SE, after preparing for setup assistent (which takes really much time) I've got a message "Windows 98 requires at least 66 MHz processor". I set as processor Pentium!

I remember i had to turn off with a setup/someparameter speed detection when installing win95 on a 386 machine. Never had that problem in dosbox. Are you using dynamic core and max 105% cycles?

Reply 32 of 78, by OSH

User metadata
Rank Member
Rank
Member

The farther the worse...I've created an 2GB image, formatted it with /s parameter, everything was ok. But after injecting something by WinImage - jDOSBOX claims "can't create drive from file" - testBuild Daum works, but in status window I see, volume is mounted as FAT12! Only when volume is mounted as FAT16 - jDOSBOX recognizes mounted volume properly, but during Win98 installation I've got error SU0013. I think, WinImage corrupts image file...when I force to change from FAT16 to FAT32 under fdisk - "can't create drive from file"...

Reply 33 of 78, by truth_deleted

User metadata

[quote="OSH"][/quote]
1. Download jDosBox version 0.74.28: http://jdosbox.sourceforge.net/downloads.html

2. Navigate to a Windows installation guide here:
Windows 9x DOSBox Guide (Not officially supported)

Scroll down to the files that are attached to the parent post; find 2GBFreeDOS.zip and download.

3. Create a directory called Dosbox. For the instructions to work, this directory must initially contain no files or folders. Unzip the file from step #2 into this directory. This will create the hard drive image named 2GB.img. Rename it to Win98.img.

Also, place the downloaded file, jdosbox.jar, in your Dosbox directory.

4. Find your CD of Windows 98SE. Find a directory on this CD named "Win98". Copy this directory (Win98) to your Dosbox directory. There should now appear a file named Win98.img in this directory and also a folder named Win98.

5. Download OSFmount and install this program on your computer:
http://www.osforensics.com/tools/mount-disk-images.html

Use this program while logged in as an administrator.

6. Using OSFmount, mount the Win98.img as a drive. When selecting a partition to mount, choose Partition 0 (do not choose "Use entire image file"); also, unselect the checkbox marked "Read-only drive". In Windows Explorer, verify that the Win98.img is mounted as a drive. The image should have been assigned a drive letter and a file should appear: KERNEL.SYS. There is also a hidden operating system file named COMMAND.COM.

Copy the Win98 folder from your Dosbox directory into the drive mapped to the disk image (Win98.img). There should now appear a Win98 folder and a KERNEL.SYS file in this drive.

Then, unmount the drive which is mapped to the disk image.

7. Download a DOS6.22 boot disk (named 622c.zip) from here:
http://bootdisk.com/bootdisk.htm

Do not download a boot622.exe file, scroll down to the files under the title "Non-Windows Based Image Files W/ImageApp" and find the DOS 6.22 image (622c.zip). Unzip this file and find an image named 622c.img. Copy this file to your Dosbox directory.

8. Start jDosBox which was previously moved into the Dosbox directory. The first time you run jDosBox, a folder will be created inside your Dosbox directory; it will be named .dosbox and contain a file named dosbox-0.74.conf. This is its configuration file. Close jDosBox. (Do not modify this configuration file)

Open the configuration file in a text editor such as WordPad. Find the last line of the configuration file (underneath [autoexec]) and enter the following lines:
imgmount 0 C:\DosBox\622c.img -fs none -t floppy
imgmount 2 C:\DosBox\Win98.img -fs none -size 512,63,64,1023

Next, edit the above lines so that the directory locations reflect the location of the Dosbox directory on your drive.

9. Start jDosBox. The line should appear which was typed into the configuration file; there should appear no error. Next, type "boot -l a" at the Z:\> command line prompt in jDosBox. Type this line without the double-quotes and then press Enter to boot your disk image inside jDosBox.

Then, at the command line prompt, type: c:

Next, at the C:\ command line prompt, type "cd win98" (without the double-quotes).

Next, type: setup /NM /IS

The Windows 98 Setup screen should appear. Install Windows 98SE as routinely done; takes ~1 hour or more to complete.

After the install routine asks to reboot, then allow this. If you return to a prompt or have an error, then the next step is to close jDosBox.

Open the jDosBox configuration file and change the following lines:
memsize=32
core=normal

Start jDosBox and enter this at the command line:
type "boot -l c" at the DOS prompt, again without the double-quotes.

Finish Windows 98SE installation. During this stage you will be prompted for a Product Key and then it will set up hardware devices. Please be very patient during the last steps. Once Windows shuts down, the window may not close itself. Once you see this shutting down screen, then manually close jDosBox, if necessary.

Finally, start jDosBox and type: boot -l c
During Windows 98 startup, devices will be detected and after several minutes you should be greeted with the Windows 98 desktop. After the desktop appears, then press Start->Shutdown. Make sure DosBox has closed. Go to step #10.

(note: to release the mouse pointer from the jDosBox window, Press Ctrl-F10; this allows the user to use the Host Desktop as normal, also, the pointer may be placed back into DosBox by clicking inside the DosBox window; don't release the pointer during the final setup routine, however)

Do not continue with the next step until the above installation is fully completed.

10. Download the DAUM build of DosBox from this web site:
http://ykhwong.x-y.net/xe/143

The file is named: 20130506.7z
This file can be uncompressed by using the 7-zip program.
Place the contents of this compressed file into your Dosbox directory (i.e., dosbox.exe, sdl.dll, etc.)

11. In your Dosbox directory, there should now be a configuration file named: dosbox.conf

This file will be detected by DAUM DosBox (a program named dosbox.exe)

Change the following lines of dosbox.conf:
output=openglnb
machine=svga_s3
memsize=64
scaler=none
core=dynamic
cputype=pentium
cycles=max
voodoo=opengl
glide=emu
xms=false
ems=false
umb=false

Next, add a line to the last line of this configuration file:
imgmount 2 C:\DosBox\Win98.img -fs none -size 512,63,64,1023

As previously, edit the above directory location, if necessary, so that it correctly points to your disk image file.

Start DosBox (DAUM build) and type "boot -l c" at the command line, without the double-quotes. Enter Windows 98.

13. Next, install the "PCI bus" via "Add New Hardware". To do this, enter the Control Panel, then Add New Hardware. Click the button "No, the device isn't in the list", then Next, then "No, I want to select hardware for a list. Then, System Devices, and finally PCI bus. The driver should now install automatically and then find a number of devices bound to the PCI bus. This allows detection of the Voodoo1 device along with other devices.

The Voodoo1 device will now appear under "Sound, video and game controllers" (this information is located via Control Panel -> System -> Device Manager.

Shut down Windows 98SE and then ensure DosBox is closed.

14. The following steps are performed on the host computer, not in DosBox.

Download Windows 98SE Service Pack 2.1:
http://exuberant.ms11.net/98sesp.html

Next, download the Voodoo1 driver:
http://www.falconfly.de/downloads/voodoo1-30100.zip

Unzip the Voodoo1 driver.

15. Copy the above driver and service pack to Windows 98SE. Use OSFmount to map a drive to the disk image, ensure it is not read-only, and then use Windows Explorer to perform the copy operation.

16. Start DAUM DosBox and then install the service pack. Next, install the Voodoo1 driver. When you run this driver, it will uncompress a number of files to a directory of your choosing (i.e., c:\windows\temp). Next, you will choose update driver which is available via Control Panel -> System -> Device Manager -> Sound, video and game controllers -> 3dfx Voodoo. Update the driver with the files which were uncompressed.

17. Repeat the above file transfer method for DirectX7.0a, available from: http://www.falconfly.de/directx.htm

18. In Windows 98SE, select Start -> Run. Type: msconfig
a. choose Startup tab, unselect TaskMonitor
b. choose General tab, then press Advanced button; check the following: Disable Virtual HDD IRQ, Force Compatibility disk mode access, Disable ScanDisk after bad shutdown. Press Ok.

Go to Display properties via Control Panel. Select Effects tab, unselect Animate windows, menus and lists.

Optionally, disable the APM device which is located via Device Manager (identify by yellow exclamation point).

19. Find the S3 video device via the following dialog boxes:
Control Panel -> System -> Device Manager

There may appear two devices matching the S3 video card. If so, disable the device labelled S3 and retain the other device labelled S3 Trio 32/64 PCI (732/764). Press Ok.

20. Optionally, backup the Daum DosBox build and try the Test Build #2 attached to a previous post in this thread. This will enable the enhanced Voodoo1. Also, you may compare the stability inside Windows between the two builds.

Last edited by truth_deleted on 2013-06-08, 04:07. Edited 1 time in total.

Reply 34 of 78, by leileilol

User metadata
Rank l33t++
Rank
l33t++

If using OSFMount is just for putting Win98 in the image, don't forget you could image your Win98SE CD and then just mount that in DOSBox while using a Win98SE startup diskette to boot with. It's what I do, though what I do is also use WinImage when I need to inject a file (i.e. like a winzip, a 3dfx driver or a directx)

There's more than one way to skin a cat 😀

I've been using this build for awhile now and it seems to crash with Half-Life for me (output=openglnb, voodoo=true, glide=emu, memsize=62, cputype=pentium). I tried to recreate my 2000-era machine with it with all the 2000-era stuff that fails in VirtualPC 😀

apsosig.png
long live PCem