joncampbell123 / dosbox-x

DOSBox-X fork of the DOSBox project
GNU General Public License v2.0
2.77k stars 381 forks source link

Quake 2 for DOS crashes or does not start when the 3Dfx render is installed #1538

Open usergithub64 opened 4 years ago

usergithub64 commented 4 years ago

Describe the bug Quake 2 for DOS crashes or does not start or does not start fullscreen when the 3Dfx render is installed.

To Reproduce Steps to reproduce the behavior: Quake 2 for DOS: http://dk.toastednet.org/Q2DOS/

  1. Download Quake 2 for DOS https://bitbucket.org/neozeed/q2dos/downloads/Q2DOS_EXE_LATEST.7Z
  2. In addition, you still need files from the full version of Quake 2
  3. Copy the glide3x.dxe file from Q2DOS_EXE_LATEST.7Z\voodoo\sst1\ to the folder with q2.exe
  4. Run q2.exe and install: graphics renderer [3Dfx OpenGL] video resolution [800x600]

Although with the same settings in DOSBox ECE r4338, the game starts without bugs with 3Dfx rendering.

Environment (please complete the following information):

[cpu] cputype = pentium_mmx cycles = max [pci] voodoo = auto

usergithub64 commented 4 years ago

It does not start if you install output = overlay, opengl, openglnb, openglhq Runs only when: output = ddraw or surface

inukaze commented 4 years ago

Ok let me try under GNU/Linux with DOSBox-X 0.83.1 SDL1 (because some time ago, someone says me, the SDL2 version can't access fully to 3DFX but SDL1 yes and because of that i prefer use SDL1 version)

i use the follow configuration file and i saved with name q2dos.conf

[sdl]
fullscreen = false
fulldouble = false
fullresolution = desktop
windowresolution = desktop
output = openglnb
autolock = true
autolock_feedback = none
clip_key_modifier = disabled
clip_paste_speed = 20
sensitivity = 100
mouse_emulation = locked
waitonerror = true
priority = higher,normal
mapperfile = mapper-0.83.1.map
usescancodes = true
overscan = 0
titlebar =
showmenu = true

[cpu]
cputype = pentium_mmx
cycles = max
[pci]
voodoo = auto

[autoexec]
keyb sp
mount c /home/inukaze/Escritorio/Q2DOS/C
c:
cd q2dos

sst1 -> Voodoo Graphics q2dos

For me works, but in 640x480 is really slow, and when one enemy appears suffer a several slowdown.

I just put Q2DOS execetuble i make a symbolic link to the glide3x.dxe inside the subfolder "./voodoo/sst1"

Well i go to try with Voodo Rush (sst96) because for example with Tomb Raider 1 and Grand Theft Auto works better with that version of Voodoo file. (glide2x.ovl)

sst96 -> Voodoo Rush q2dos_vr_glide3xdll

Well i have no idea why need glide3x.dll if for msdos xD

cvg -> Voodoo2 : Can start in Software mode, if you try to change to 3DFX for one instant you can see the follow message : q2dos_cvg

h3 -> Banshee, Voodoo3 q2dos_h3

h5 -> Voodoo4 and Voodoo5 (also works for Banshee and Voodoo3.) q2dos_h5

Well i think Q2DOS need a specific optimizations for dosbox or well dosbox-x need some optimizations for play fine Q2DOS.

Some thing is strange i had download the "DOSLFN" (DLFN040E) from the site, i started before launch Q2DOS and don't let me start the game just show me the follow message :

q2dos_doslfn

I will try with the FreeDOS version of "DOS File Names" , well Same Result. is bad idea use that software if you want run Q2DOS.

The UniRefresh can't be installed becase need VBE 3.0 (Vesa 3.0?)

MTRRLFBE : Is not usable for this version of dosbox-x q2dos_mttr

I forget publish what happend if i try to run 3DFX with SDL2 version : q2dos-sdl2

usergithub64 commented 3 years ago

In DOSBox-X v0.83.10 x64 MinGW SDL1 (possibly in other versions too) Quake 2 For DOS does not start in full-screen mode under 3Dfx (also in the connected and installed Win98 image for DOSBox-X). Also does not start in fullscreen mode Quake 1 under 3Dfx in a connected and installed Win98 image for DOSBox-X. These games tend to go into windowed mode and cannot be switched to full screen mode even from the DOSBox-X menu. Earlier versions of DOSBox-X did not have this bug.

Wengier commented 3 years ago

@maximus105 I see you are using a 64-bit MinGW DOSBox-X build. The nGlide glider wrapper supports full-screen mode but it only supports 32-bit builds. Can you try a 32-bit DOSBox-X build instead in this case so that nGlide can support and see if it works?

usergithub64 commented 3 years ago

Ok, I'll check it out. But I am not using nGlide. Instead, i copied all the necessary files to the DOSBox-X folder for x64: Glide.dll, Glide2x.dll, Glide3x.dll (taken from DGVoodoo).

Wengier commented 3 years ago

@maximus105 Whether DOSBox-X can go to fullscreen mode in Glide mode depends entirely on the Glide wrapper. For this to work a Glide wrapper with fullscreen capability is needed, such as the 32-bit nGlide.

usergithub64 commented 3 years ago

At the same time, Carmageddon with 3Dfx starts normally in fullscreen mode with these x64 dll files taken from DGVoodoo.

usergithub64 commented 3 years ago

I installed nGlide v2.10 and tested Quake 2 For DOS: it does not launch in full screen mode (only launches in window) in MinGW x86 SDL1 and Visual Studio x86 SDL1 versions. In addition, I installed DOSBox-X v0.83.1 (2020-05-02) Visual Studio x64 SDL1 and checked Quake 2 For DOS: it starts correctly in full screen mode even without nGlide v2.10 or without Glide.dll, Glide2x.dll, Glide3x.dll (taken from DGVoodoo v2.73).

Wengier commented 3 years ago

@maximus105 DOSBox-X v0.83.1 (2020-05-02) does not support Glide wrappers at all. Glide wrapper support was only added in DOSBox-X 0.83.5. So you must be using something else for that version, which is not clear from your post. Please make sure to use the some method for comparisons between versions, and are you sure you are using 3dfx version of the game for that version?

usergithub64 commented 3 years ago

Yes, this is the DOS version of Quake 2 with 3Dfx. When starting Quake 2 for DOS, the menu is set to 3Dfx and the resolution is 800x600, and texture and shadow filtering is visible in the game itself.

Wengier commented 3 years ago

@maximus105 But I wonder how you can play the 3dfx game in full-screen in DOSBox-X 0.83.1? High-level 3dfx is simply not supported in that version, and full-screen mode is also not available for low-level 3dfx emulation.

usergithub64 commented 3 years ago

You can try running this game with 3Dfx in full screen mode in DOSBox-X v0.83.1, as I described at the very beginning of this topic. Just use the SDL1 version, as Quake2DOS in DOSBox-X v0.83.1 SDL2 doesn't really start (just like I said at the very beginning of this topic).

Wengier commented 3 years ago

@maximus105 Where did you get the full version of Quake 2 (as mentioned in your first post) from, like a download link?

usergithub64 commented 3 years ago

https://dl.old-games.su/get/Zd01qxTMoRUeeABFzZL6nw==,1614959272/pc/quake_2/files/Quake_2_ISO.rar

Wengier commented 3 years ago

@maximus105 Thanks for the link. It appears that the install program requires 32-bit Windows, so I will try it in an older Windows version within a VM instead.

usergithub64 commented 3 years ago

In DOSBox-X v0.83.12 x64 MinGW SDL1 with the image connected and Win98SE installed in it, Quake1 and Quake2 do not start at all (even in windowed mode) under 3Dfx. Then I just replaced dosbox-x.exe with dosbox-x.exe v0.83.11 x64 MinGW SDL1 and they started to run fine in Win98SE under 3Dfx in windowed mode. The dosbox.conf file did not change. What could go wrong in version 0.83.12? By the way, what did you find out about the launch of Quake2DOS under 3Dfx in the version DOSBox-X 0.83.1 ? Did you manage to run Quake2DOS under 3Dfx in full screen mode like me?

Wengier commented 3 years ago

@maximus105 Can you try the updated MinGW binaries below and see if the said games work in your Windows 98?

64-bit SDL1: dosbox-x-mingw64.zip

64-bit SDL2: dosbox-x-mingw64-sdl2.zip

P.S. I have not got time to try Quake2DOS in the VM yet, but I will try this later.

usergithub64 commented 3 years ago

No, on these two builds Quake1 and Quake2 also do not run under Win98SE with 3Dfx (they immediately crash together with DOXBox-X). In DOSBox-X v0.83.11 x64 MinGW SDL1 they run under Win98SE with 3Dfx (some artifacts are visible on the screen, the sound is interrupted with clicks and creaks), but at least they do not crash in v0.83.11. 2021-04-07_193711

Wengier commented 3 years ago

@maximus105 There are two Quake2 shortcuts after installation, the standard one and the one in compatibility mode. Which one did you try to run? When I run the standard one it may not display correctly, but it did not crash. On the other hand, the one in compatibility mode appears to run without issues, and below is a screenshot:

image

Also, I got the "Couldn't load pics/16to8.dat" message when trying to running the game in DOS in your first post, and the said file cannot found in the full version of Quake 2 you linked even after installation.

usergithub64 commented 3 years ago

I run the normal Quake 2 shortcut. I also have Patch v3.24 for Quake 2 installed. http://www.markshan.com/knightmare/downloads.htm

Wengier commented 3 years ago

@maximus105 It appears to work the same here with or without the patch installed. Meanwhile, can you try the following MinGW 64-bit SDL1 build and see if it works on your system?

usergithub64 commented 3 years ago

In this build GLQuake runs under Win98SE and freezes. (but at least does not crash with DOXBox-X). 2021-04-08_200400 Quake 2 with 3Dfx runs under Win98SE and freezes. (but at least does not crash with DOXBox-X).

Wengier commented 3 years ago

@maximus105 How about the updated MinGW 64-bit SDL1 build below?

usergithub64 commented 3 years ago

In this build, GLQuake is launched in windowed mode under Win98SE (but there is no sound at all and artifacts flicker on the screen) and even runs for about 10 seconds, then hangs with Win98SE and DOSBox-X. Quake 2 under 3Dfx is launched in windowed mode under Win98SE (but there is no sound at all and artifacts flicker on the screen) and even works.

Wengier commented 3 years ago

@maximus105 What if you set cputype to “auto” or “pentium”, or try the following build:

usergithub64 commented 3 years ago

I have had: core = dynamic cputype = pentium_mmx cycles = max I changed cputype = pentium_mmx to auto and everything started working fine on Win98SE in GLQuake and Quake 2 under 3Dfx (sound appeared, sound creaks and flickering artifacts disappeared) even on the official DOSBox-X v0.83.12 x64 MinGW SDL1 build. If you change cputype = pentium_mmx to auto, then in this build GLQuake runs in windowed mode under Win98SE and works fine with Win98SE and DOSBox-X. Quake 2 under 3Dfx runs in windowed mode under Win98SE and works fine with Win98SE and DOSBox-X (although it slows down a little and the sound stutters, but that was the case before). Also in this assembly and the official assembly of DOSBox-X v0.83.12 x64 MinGW SDL1, Quake2DOS starts and runs under 3Dfx in windowed in DOSBox-X, but the game slows down and the sound stutters, but this was the case before.

Wengier commented 3 years ago

@maximus105 I see. The updated MinGW builds are now available from:

64-bit SDL1: dosbox-x-mingw64.zip 64-bit SDL2: dosbox-x-mingw64-sdl2.zip

You can try keep the setting cputype = pentium_mmx with the updated build(s) and see how they work.

usergithub64 commented 3 years ago

In these builds, with cputype = pentium_mmx GLQuake is launched in windowed mode under Win98SE and hangs after about 10 seconds (with squeaks of sound and flickering artifacts) along with Win98SE and DOSBox-X. Quake 2 under 3Dfx runs in windowed mode under Win98SE with squeaks and flickering artifacts. If you change cputype = pentium_mmx to auto, then in these builds GLQuake is launched in windowed mode under Win98SE and works fine with Win98SE and DOSBox-X. Quake 2 under 3Dfx is launched in windowed mode under Win98SE and works fine with Win98SE and DOSBox-X.