VOGONS

Common searches


VIDEO - 3dfx voodoo emulation (SDL1)

Topic actions

Reply 40 of 108, by Enverex

User metadata
Rank Newbie
Rank
Newbie
zirkoni wrote:
Enverex wrote:

unfortunately I get about 5fps in Carmageddon so it doesn't look like it was worth it!

Did you set voodoo=opengl in dosbox.conf? Carmageddon 3Dfx runs quite well even on my laptop.

No, I noticed lots of references to different configuration options for the different patches and couldn't find the right ones, I'll try that.

Dominus wrote:

Also... 32bit vs 64bit... at least on OS X the 64bit build is only a fraction as speedy as the 32bit one...

AFAIK 64bit Linux builds with the dynarec so I should be ok there.

Reply 41 of 108, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

Yes, but the dynarec core for 64bit is not as performant as the 32bit core. As I wrote, on OS X the 64bit built is extremely slow.

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox

Reply 42 of 108, by Enverex

User metadata
Rank Newbie
Rank
Newbie

Ah I see, I thought you meant that the 64bit version was missing the dynarec. I'll try 32bit at some point later then.

That config option... kinda helped? I get about 10fps now, so obviously still not great (it's an i7-5775C processor, so not much above it) so I'm wondering if I'm using the wrong glide2x.ovl file. Which should I be using?

The one that comes with OpenGlide doesn't work, it crashes DOSBox with "terminate called after throwing an instance of 'char*' - Aborted (core dumped)".

The one that comes with the GoG release of the game works, but that's the one I only get 10fps with.

I also tried the Official one that comes with the Voodoo drivers. Oddly enough that's the only one that produces any terminal output from DOSBox - "VOODOO: OpenGL: mode set, resolution 640:480 (fullscreen)" - but unfortunately the screen just stays black and the game doesn't seem to load (or it does load and I can't see it).

Reply 43 of 108, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

As it enulates the Voodoo card I think the official should be used. As this is the only one that triggers the terminal Voodoo output I'd say go from there.
Black screen often hints that you need a different output in the config

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox

Reply 44 of 108, by Enverex

User metadata
Rank Newbie
Rank
Newbie

Tried all output modes, black screen / window with all of them. If I used anything other than opengl or openglnb then I didn't even get the "VOODOO: OpenGL: mode set, resolution 640:480" message.

Reply 45 of 108, by zirkoni

User metadata
Rank Member
Rank
Member
Enverex wrote:

I'm wondering if I'm using the wrong glide2x.ovl file. Which should I be using?

The one from DOSBox Daum seems to work well with most games:
https://github.com/paalfe/mixedcontent/ ... 2x_emu.ovl

https://www.youtube.com/user/zirkoni88

Reply 46 of 108, by Enverex

User metadata
Rank Newbie
Rank
Newbie

Aren't glide2x_emu.ovl and glide2x.ovl 2 different things though? One emulates it and the other is part of the version that converts Glide calls to OpenGL, thus the former is a lot slower?

EDIT: There's a non-emu one too (https://github.com/paalfe/mixedcontent/ ... lide2x.ovl) so I'll try that.

EDIT2: That one doesn't really seem to work at all. In the DOSBox window itself, it says: "glidedll:Warning, using default LFB address: 0x600000000" and... doesn't seem to progress past that point. The _emu one does exactly the same.

Reply 47 of 108, by zirkoni

User metadata
Rank Member
Rank
Member
Enverex wrote:

Aren't glide2x_emu.ovl and glide2x.ovl 2 different things though?

AFAIK, glide2x_emu.ovl is to be used with chip emulation and glide2x.ovl with the Glide patch.
Glide2x.ovl won't work correctly with chip emulation and glide2x_emu.ovl won't work with a Glide wrapper.

EDIT:
BTW, you did rename glide2x_emu.ovl to glide2x.ovl and put it in the game directory, right?

Last edited by zirkoni on 2016-10-08, 18:26. Edited 1 time in total.

https://www.youtube.com/user/zirkoni88

Reply 51 of 108, by Kisai

User metadata
Rank Member
Rank
Member
bored wrote:

Does anyone know if there has been a combination of this 3dfx patch with an SDL2 patch?

From a quick search of the forum, it looks like the answer is no, so may have to do it myself. 🙁

I attempted to do this today, the results are OK-ish, but I've run into a few specific issues.

First issue, I suspects affects SDL1.2 as well, but I think people aren't using the software renderer much to replicate it. If you capture video, voodoo_interface.cpp:Voodoo_UpdateScreen sets the frame rate to 16fps, which results in avi's playing back at 16fps (while the audio plays back as if it were 60fps.) This could probably be fixed by having it actually calculate a fixed 15fps, 30fps, 45fps or 60fps locked rate, but it's just incomplete in the code as it is. (Literately "TODO proper implementation of refresh rates and timings")

Under SDL 2.0, it will not compile out of the box, obviously, but even after you switch the SQL 1.2 for 2.0 commands so it compiles, it won't get past the OpenGL extensions, which I'm assuming is some kind of conflict with SDL's use of OpenGL as a renderer.
It will compile with #define C_OPENGL 0 set, and the OpenGL renderer not compiled in.

But what happens under SDL 2.0

e:\c\dosbox_svn_r4000_sdl2_glide\src\hardware\voodoo_vogl.h(30): error C2365: 'glActiveTextureARB': redefinition; previous definition was 'function' (compiling source file ..\src\hardware\voodoo_vogl.cpp)
1> E:\C\SDL2-2.0.4\include\SDL_opengl.h(2019): note: see declaration of 'glActiveTextureARB' (compiling source file ..\src\hardware\voodoo_vogl.cpp)
1>e:\c\dosbox_svn_r4000_sdl2_glide\src\hardware\voodoo_vogl.h(31): error C2365: 'glMultiTexCoord4fARB': redefinition; previous definition was 'function' (compiling source file ..\src\hardware\voodoo_vogl.cpp)
1> E:\C\SDL2-2.0.4\include\SDL_opengl.h(2047): note: see declaration of 'glMultiTexCoord4fARB' (compiling source file ..\src\hardware\voodoo_vogl.cpp)
1>e:\c\dosbox_svn_r4000_sdl2_glide\src\hardware\voodoo_vogl.h(32): error C2365: 'glMultiTexCoord4fvARB': redefinition; previous definition was 'function' (compiling source file ..\src\hardware\voodoo_vogl.cpp)
1> E:\C\SDL2-2.0.4\include\SDL_opengl.h(2048): note: see declaration of 'glMultiTexCoord4fvARB' (compiling source file ..\src\hardware\voodoo_vogl.cpp)

However all the other extension lines it doesn't complain about. I presume it's this thing that is broken, because if I comment out the lines in voodoo_vogl.h and voodoo_vogl.cpp I just get a linker error. The fix suggested here is to modify gl.h, which is a kludge of a solution, but I went and did it anyway just to get it to compile, and it works.

Well as much as I can expect it to. The patch destroys and recreates the SDL window like it did with 1.2 which apparently isn't supposed to be necessary any more to switch to full screen, but I haven't changed the functionality. You can not capture video in the Voodoo window, you can not use scalers in the Voodoo window (obviously.) I'm pretty sure there is a way to copy back the framebuffer for video capture, but I haven't looked into it yet.

Attachments

Reply 52 of 108, by framer

User metadata
Rank Newbie
Rank
Newbie
Da Easy Mitch wrote:
Out of curiosity I applied kekkos patch to the current SVN (r3957) and tried it with Screamer Rally. And it worked! :) Here's th […]
Show full quote

Out of curiosity I applied kekkos patch to the current SVN (r3957) and tried it with Screamer Rally. And it worked! 😀 Here's the binary if everyone wants to check it out more:

DOSBOX_3Dfx.7z

I will try out more games asap.
UPDATE: Bleifuss 2 / Screamer 2 works, too, as well as Fatal Racing / Whiplash.

This build got my 3dfx build of Whiplash working in 3dfx 😎 😀

It runs better than E V E R...

Thanks
framer

Reply 53 of 108, by Yesterplay80

User metadata
Rank Oldbie
Rank
Oldbie

I'm currently trying to get a Linux build of DOSBox working, but the patch won't compile under Linux. I get the following errors:

In file included from voodoo_opengl.h:33:0,
from voodoo_emu.cpp:81:
voodoo_vogl.h:28:34: error: ‘void (* glActiveTextureARB)(GLenum)’ redeclared as different kind of symbol
extern PFNGLACTIVETEXTUREARBPROC glActiveTextureARB;
^
In file included from /usr/include/SDL/SDL_opengl.h:46:0,
from voodoo_vogl.h:24,
from voodoo_opengl.h:33,
from voodoo_emu.cpp:81:
/usr/include/GL/gl.h:1971:23: note: previous declaration ‘void glActiveTextureARB(GLenum)’
GLAPI void GLAPIENTRY glActiveTextureARB(GLenum texture);
^
In file included from voodoo_opengl.h:33:0,
from voodoo_emu.cpp:81:
voodoo_vogl.h:29:36: error: ‘void (* glMultiTexCoord4fARB)(GLenum, GLfloat, GLfloat, GLfloat, GLfloat)’ redeclared as different kind of symbol
extern PFNGLMULTITEXCOORD4FARBPROC glMultiTexCoord4fARB;
^
In file included from /usr/include/SDL/SDL_opengl.h:46:0,
from voodoo_vogl.h:24,
from voodoo_opengl.h:33,
from voodoo_emu.cpp:81:
/usr/include/GL/gl.h:1999:23: note: previous declaration ‘void glMultiTexCoord4fARB(GLenum, GLfloat, GLfloat, GLfloat, GLfloat)’
GLAPI void GLAPIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t,
^
In file included from voodoo_opengl.h:33:0,
from voodoo_emu.cpp:81:
voodoo_vogl.h:30:37: error: ‘void (* glMultiTexCoord4fvARB)(GLenum, const GLfloat*)’ redeclared as different kind of symbol
extern PFNGLMULTITEXCOORD4FVARBPROC glMultiTexCoord4fvARB;
^
In file included from /usr/include/SDL/SDL_opengl.h:46:0,
from voodoo_vogl.h:24,
from voodoo_opengl.h:33,
from voodoo_emu.cpp:81:
/usr/include/GL/gl.h:2000:23: note: previous declaration ‘void glMultiTexCoord4fvARB(GLenum, const GLfloat*)’
GLAPI void GLAPIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v);
^
voodoo_emu.cpp: In function ‘void init_fbi(voodoo_state*, fbi_state*, int)’:
voodoo_emu.cpp:566:14: error: ‘FALSE’ was not declared in this scope
f->vblank = FALSE;
^
voodoo_emu.cpp: In function ‘UINT32 register_r(UINT32)’:
voodoo_emu.cpp:2784:25: error: ‘TRUE’ was not declared in this scope
update_statistics(v, TRUE);
^

Kekko, do you know what might cause these errors and how to fix them? If so, would you please provide an updated patch?

My full-featured DOSBox SVN builds (without debugger) for Windows: Vanilla DOSBox and DOSBox ECE (Enhanced Community Edition)

Reply 54 of 108, by DarthNvader

User metadata
Rank Newbie
Rank
Newbie
Yesterplay80 wrote:

Since kekkos last patch the file "src\hardware\makefile.am" obviously changed a little bit. The patch still worked because the patcher found the correct lines to replace by itself, but nontheless I updated the patch to work without any warnings during patching with current DOSBox SVNs:

voodoo_20160825.diff

What version of DOSBox should I run the patch against?

Could someone tell me the proper command to run this patch, I tried:

patch < voodoo_20160825.diff 

Reply 55 of 108, by Yesterplay80

User metadata
Rank Oldbie
Rank
Oldbie
DarthNvader wrote:
What version of DOSBox should I run the patch against? Could someone tell me the proper command to run this patch, I tried: […]
Show full quote

What version of DOSBox should I run the patch against?
Could someone tell me the proper command to run this patch, I tried:

patch < voodoo_20160825.diff 

The patch works with every SVN since 2016-08-25, including the current SVN (r4006 at this moment). Run it from your dosbox source directory with

patch -p0 -i <path where your patchfile is located>

My full-featured DOSBox SVN builds (without debugger) for Windows: Vanilla DOSBox and DOSBox ECE (Enhanced Community Edition)

Reply 56 of 108, by DarthNvader

User metadata
Rank Newbie
Rank
Newbie

Ok, I'm on OS X, so I cd to the dosbox source dir, and run:

patch -p0 -i /Users/jam2/dosbox/dosbox-code-0/voodoo_20160825.diff 
(Stripping trailing CRs from patch.)
patching file include/logging.h
(Stripping trailing CRs from patch.)
patching file include/Makefile.am
(Stripping trailing CRs from patch.)
patching file include/pci_bus.h
(Stripping trailing CRs from patch.)
patching file include/video.h
(Stripping trailing CRs from patch.)
patching file include/voodoo.h
(Stripping trailing CRs from patch.)
patching file src/debug/debug_gui.cpp
(Stripping trailing CRs from patch.)
patching file src/hardware/Makefile.am
(Stripping trailing CRs from patch.)
patching file src/hardware/memory.cpp
(Stripping trailing CRs from patch.)
patching file src/hardware/pci_bus.cpp
(Stripping trailing CRs from patch.)
patching file src/hardware/pci_devices.h
(Stripping trailing CRs from patch.)
patching file src/hardware/vga_s3.cpp
(Stripping trailing CRs from patch.)
patching file src/hardware/voodoo.cpp
(Stripping trailing CRs from patch.)
patching file src/hardware/voodoo_data.h
(Stripping trailing CRs from patch.)
patching file src/hardware/voodoo_def.h
(Stripping trailing CRs from patch.)
patching file src/hardware/voodoo_emu.cpp
(Stripping trailing CRs from patch.)
patching file src/hardware/voodoo_emu.h
(Stripping trailing CRs from patch.)
patching file src/hardware/voodoo_interface.cpp
(Stripping trailing CRs from patch.)
patching file src/hardware/voodoo_interface.h
(Stripping trailing CRs from patch.)
patching file src/hardware/voodoo_opengl.cpp
(Stripping trailing CRs from patch.)
patching file src/hardware/voodoo_opengl.h
(Stripping trailing CRs from patch.)
patching file src/hardware/voodoo_types.h
(Stripping trailing CRs from patch.)
patching file src/hardware/voodoo_vogl.cpp
(Stripping trailing CRs from patch.)
patching file src/hardware/voodoo_vogl.h
(Stripping trailing CRs from patch.)
patching file src/dosbox.cpp
(Stripping trailing CRs from patch.)
patching file visualc_net/dosbox.vcproj

Then I run ./autogen.sh and ./configure then make, but make bombed out with the error:

1 warning generated.
mv -f .deps/memory.Tpo .deps/memory.Po
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/local/include/SDL -D_GNU_SOURCE=1 -D_THREAD_SAFE -g -O2 -mno-ms-bitfields -MT pcspeaker.o -MD -MP -MF .deps/pcspeaker.Tpo -c -o pcspeaker.o pcspeaker.cpp
mv -f .deps/mixer.Tpo .deps/mixer.Po
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/local/include/SDL -D_GNU_SOURCE=1 -D_THREAD_SAFE -g -O2 -mno-ms-bitfields -MT pci_bus.o -MD -MP -MF .deps/pci_bus.Tpo -c -o pci_bus.o pci_bus.cpp
pci_bus.cpp:29:10: fatal error: '..\ints\int10.h' file not found
#include "..\ints\int10.h"
^
1 error generated.
make[4]: *** [pci_bus.o] Error 1
make[4]: *** Waiting for unfinished jobs....
mv -f .deps/pcspeaker.Tpo .deps/pcspeaker.Po
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

So I tried the diff linked on the first page as well:

patch -p0 -i /Users/jam2/Downloads/voodoo_fix.diff 

Run make clean, ./autogen.sh,and configure, then make, but it bombs out with the same error.

1 warning generated.
mv -f .deps/memory.Tpo .deps/memory.Po
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/local/include/SDL -D_GNU_SOURCE=1 -D_THREAD_SAFE -g -O2 -mno-ms-bitfields -MT pcspeaker.o -MD -MP -MF .deps/pcspeaker.Tpo -c -o pcspeaker.o pcspeaker.cpp
mv -f .deps/mixer.Tpo .deps/mixer.Po
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -I/usr/local/include/SDL -D_GNU_SOURCE=1 -D_THREAD_SAFE -g -O2 -mno-ms-bitfields -MT pci_bus.o -MD -MP -MF .deps/pci_bus.Tpo -c -o pci_bus.o pci_bus.cpp
pci_bus.cpp:29:10: fatal error: '..\ints\int10.h' file not found
#include "..\ints\int10.h"
^
1 error generated.
make[4]: *** [pci_bus.o] Error 1
make[4]: *** Waiting for unfinished jobs....
mv -f .deps/pcspeaker.Tpo .deps/pcspeaker.Po
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Any idea what I'm doing wrong?

EDIT: Got around that error by specifying the path to the int10.h in the pic_bus.cpp, but now I get about the same error that was in the post before my first post:

voodoo_emu.cpp:566:14: error: use of undeclared identifier 'FALSE'
f->vblank = FALSE;
^
voodoo_emu.cpp:2784:25: error: use of undeclared identifier 'TRUE'
update_statistics(v, TRUE);
^
2 errors generated.
make[4]: *** [voodoo_emu.o] Error 1
make[4]: *** Waiting for unfinished jobs....
voodoo_opengl.cpp:1054:33: error: assigning to 'UINT32' (aka 'unsigned int')
from incompatible type 'GLhandleARB' (aka 'void *')
extra->info->so_shader_program=m_hProgramObject;
^~~~~~~~~~~~~~~~~
voodoo_opengl.cpp:1055:32: error: assigning to 'UINT32' (aka 'unsigned int')
from incompatible type 'GLhandleARB' (aka 'void *')
extra->info->so_vertex_shader=m_hVertexShader;
^~~~~~~~~~~~~~~~
voodoo_opengl.cpp:1056:34: error: assigning to 'UINT32' (aka 'unsigned int')
from incompatible type 'GLhandleARB' (aka 'void *')
extra->info->so_fragment_shader=m_hFragmentShader;
^~~~~~~~~~~~~~~~~~
voodoo_opengl.cpp:1082:24: error: comparison between pointer and integer
('GLhandleARB' (aka 'void *') and 'UINT32' (aka 'unsigned int'))
if (m_hProgramObject != extra->info->so_shader_program) {
~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
voodoo_opengl.cpp:1083:26: error: cannot initialize a parameter of type
'GLhandleARB' (aka 'void *') with an lvalue of type 'UINT32'
(aka 'unsigned int')
glUseProgramObjectARB(extra->info->so_shader_program);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
voodoo_opengl.cpp:1084:21: error: assigning to 'GLhandleARB' (aka 'void *') from
incompatible type 'UINT32' (aka 'unsigned int')
m_hProgramObject = extra->info->so_shader_program;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
voodoo_opengl.cpp:1795:33: warning: comparison of unsigned expression >= 0 is
always true [-Wtautological-compare]
...if (info->so_vertex_shader >= 0) glDetachObjectARB(info->so_shader_progr...
~~~~~~~~~~~~~~~~~~~~~~ ^ ~
voodoo_opengl.cpp:1795:57: error: cannot initialize a parameter of type
'GLhandleARB' (aka 'void *') with an lvalue of type 'UINT32'
(aka 'unsigned int')
...>= 0) glDetachObjectARB(info->so_shader_program, info->so_vertex_shader);
^~~~~~~~~~~~~~~~~~~~~~~
voodoo_opengl.cpp:1796:35: warning: comparison of unsigned expression >= 0 is
always true [-Wtautological-compare]
...if (info->so_fragment_shader >= 0) glDetachObjectARB(info->so_shader_pro...
~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
voodoo_opengl.cpp:1796:59: error: cannot initialize a parameter of type
'GLhandleARB' (aka 'void *') with an lvalue of type 'UINT32'
(aka 'unsigned int')
...>= 0) glDetachObjectARB(info->so_shader_program, info->so_fragment_shader);
^~~~~~~~~~~~~~~~~~~~~~~
voodoo_opengl.cpp:1797:33: warning: comparison of unsigned expression >= 0 is
always true [-Wtautological-compare]
...if (info->so_vertex_shader >= 0) glDeleteObjectARB(info->so_vertex_shader);
~~~~~~~~~~~~~~~~~~~~~~ ^ ~
voodoo_opengl.cpp:1797:57: error: cannot initialize a parameter of type
'GLhandleARB' (aka 'void *') with an lvalue of type 'UINT32'
(aka 'unsigned int')
...(info->so_vertex_shader >= 0) glDeleteObjectARB(info->so_vertex_shader);
Show last 22 lines
                                                     ^~~~~~~~~~~~~~~~~~~~~~
voodoo_opengl.cpp:1798:35: warning: comparison of unsigned expression >= 0 is
always true [-Wtautological-compare]
...if (info->so_fragment_shader >= 0) glDeleteObjectARB(info->so_fragment_s...
~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
voodoo_opengl.cpp:1798:59: error: cannot initialize a parameter of type
'GLhandleARB' (aka 'void *') with an lvalue of type 'UINT32'
(aka 'unsigned int')
...>= 0) glDeleteObjectARB(info->so_fragment_shader);
^~~~~~~~~~~~~~~~~~~~~~~~
voodoo_opengl.cpp:1799:24: error: cannot initialize a parameter of type
'GLhandleARB' (aka 'void *') with an lvalue of type 'UINT32'
(aka 'unsigned int')
...glDeleteObjectARB(info->so_shader_program);
^~~~~~~~~~~~~~~~~~~~~~~
4 warnings and 11 errors generated.
make[4]: *** [voodoo_opengl.o] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Reply 57 of 108, by Serious Callers Only

User metadata
Rank Member
Rank
Member

Same here on linux. I changed the backflips (windows) '\' to linux '/' ones on the int10.h include error and got some similar errors later. I'm using the 2016 version of the patch that Yesterplay80 kindly provided here.

In file included from voodoo_opengl.h:33:0,
from voodoo_emu.cpp:81:
voodoo_vogl.h:28:34: error: ‘void (* glActiveTextureARB)(GLenum)’ redeclared as different kind of symbol
extern PFNGLACTIVETEXTUREARBPROC glActiveTextureARB;
^
In file included from /usr/include/SDL/SDL_opengl.h:46:0,
from voodoo_vogl.h:24,
from voodoo_opengl.h:33,
from voodoo_emu.cpp:81:
/usr/include/GL/gl.h:1971:23: note: previous declaration ‘void glActiveTextureARB(GLenum)’
GLAPI void GLAPIENTRY glActiveTextureARB(GLenum texture);
^
In file included from voodoo_opengl.h:33:0,
from voodoo_emu.cpp:81:
voodoo_vogl.h:29:36: error: ‘void (* glMultiTexCoord4fARB)(GLenum, GLfloat, GLfloat, GLfloat, GLfloat)’ redeclared as different kind of symbol
extern PFNGLMULTITEXCOORD4FARBPROC glMultiTexCoord4fARB;
^
In file included from /usr/include/SDL/SDL_opengl.h:46:0,
from voodoo_vogl.h:24,
from voodoo_opengl.h:33,
from voodoo_emu.cpp:81:
/usr/include/GL/gl.h:1999:23: note: previous declaration ‘void glMultiTexCoord4fARB(GLenum, GLfloat, GLfloat, GLfloat, GLfloat)’
GLAPI void GLAPIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t,
^
In file included from voodoo_opengl.h:33:0,
from voodoo_emu.cpp:81:
voodoo_vogl.h:30:37: error: ‘void (* glMultiTexCoord4fvARB)(GLenum, const GLfloat*)’ redeclared as different kind of symbol
extern PFNGLMULTITEXCOORD4FVARBPROC glMultiTexCoord4fvARB;
^
In file included from /usr/include/SDL/SDL_opengl.h:46:0,
from voodoo_vogl.h:24,
from voodoo_opengl.h:33,
from voodoo_emu.cpp:81:
/usr/include/GL/gl.h:2000:23: note: previous declaration ‘void glMultiTexCoord4fvARB(GLenum, const GLfloat*)’
GLAPI void GLAPIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v);
^
voodoo_emu.cpp: In function ‘void init_fbi(voodoo_state*, fbi_state*, int)’:
voodoo_emu.cpp:566:14: error: ‘FALSE’ was not declared in this scope
f->vblank = FALSE;
^
voodoo_emu.cpp: In function ‘UINT32 register_r(UINT32)’:
voodoo_emu.cpp:2784:25: error: ‘TRUE’ was not declared in this scope
update_statistics(v, TRUE);
^
Makefile:437: recipe for target 'voodoo_emu.o' failed
make[4]: *** [voodoo_emu.o] Error 1
make[4]: Leaving directory '/media/i30817/Huggin/Documents/projects/dosbox/src/hardware'
Makefile:457: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/media/i30817/Huggin/Documents/projects/dosbox/src/hardware'
Makefile:436: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/media/i30817/Huggin/Documents/projects/dosbox/src'
Makefile:377: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/media/i30817/Huggin/Documents/projects/dosbox'
Makefile:318: recipe for target 'all' failed
make: *** [all] Error 2

Reply 58 of 108, by Yesterplay80

User metadata
Rank Oldbie
Rank
Oldbie

The patch you're trying to use is for Windows and differs from the one for Linux and possibly OSX. Please try this one:

Filename
1_voodoo_gl.diff
File size
404.67 KiB
Downloads
64 downloads
File license
Fair use/fair dealing exception

There's a thread about compilig DOSBox with 3Dfx under Linux: Tutorial: dosbox with Glide under Linux

My full-featured DOSBox SVN builds (without debugger) for Windows: Vanilla DOSBox and DOSBox ECE (Enhanced Community Edition)

Reply 59 of 108, by Serious Callers Only

User metadata
Rank Member
Rank
Member

Compiled... 2 small questions then:

1. does this patch work with Redguard? I had to get the glide2x.ovl from the original glide drivers here. My reward was a blackscreen on load instead of 'missing dll' message (gog version).
edit : 🤣, copied the archimedian dynasty glide2x.ovl to the redguard dir and it started mysteriously working... maybe i downloaded the wrong driver? Pity this version of the dll has that obnoxious uninterruptible 3dfx logo intro.
edit2: it also needs 'cputype=486_slow' on svn for some reason... Performance is abyssal as somewhat expected.

2. when it does work, (i tried archimedian dynasty that worked out of the box), is there any way to make the resolution changes on 3dfx mode not show the desktop underneath and still scale up the image non-distorted? I have the patch to scale up 15 and 16bpp on opengl output but not the pixel perfect output patch, do i need it for this?

In archimedian dynasty at least, it seems to switch between voodoo mode and not eg:

VOODOO: OpenGL: mode set, resolution 640:480 (fullscreen) //3dfx logo
GFX LF: fullscreen switching not supported
VOODOO: OpenGL: quit //on the menu
VOODOO: OpenGL: mode set, resolution 640:480 (fullscreen) //into a mission

And it really switches rez instead of scaling it up like i'm used to if i use
[sdl]
fullresolution=desktop
output=openglnb //or just opengl

which seems different and quite inconvenient behavior.

BTW, as the log shows, fullscreen switch is not supported, and what is worse, alt+tab switch doesn't seem to either.
edit: this seems supported on output=surface and overlay. Unfortunately, these do no scale up, i need to to test the pixel perfect patch.