3dfx voodoo chip emulation is back!

Here you can discuss the development of patches

Re: 3dfx voodoo chip emulation is back!

Postby Enverex » 2016-10-07 @ 18:21

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.
User avatar
Enverex
Newbie
 
Posts: 32
Joined: 2016-2-09 @ 10:05
Location: UK

Re: 3dfx voodoo chip emulation is back!

Postby Dominus » 2016-10-07 @ 18:31

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.
User avatar
Dominus
DOSBox Moderator
 
Posts: 7023
Joined: 2002-10-03 @ 09:54
Location: Vienna

Re: 3dfx voodoo chip emulation is back!

Postby Enverex » 2016-10-07 @ 18:37

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).
User avatar
Enverex
Newbie
 
Posts: 32
Joined: 2016-2-09 @ 10:05
Location: UK

Re: 3dfx voodoo chip emulation is back!

Postby Dominus » 2016-10-07 @ 19:48

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
User avatar
Dominus
DOSBox Moderator
 
Posts: 7023
Joined: 2002-10-03 @ 09:54
Location: Vienna

Re: 3dfx voodoo chip emulation is back!

Postby Enverex » 2016-10-07 @ 23:35

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.
User avatar
Enverex
Newbie
 
Posts: 32
Joined: 2016-2-09 @ 10:05
Location: UK

Re: 3dfx voodoo chip emulation is back!

Postby zirkoni » 2016-10-08 @ 10:08

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/blob/master/gaming%20(linux)/DOSBox/engine/lin_DOSBox_SVN-Daum_20150125/dosbox_svn-daum_32bit/glide2x_emu.ovl
User avatar
zirkoni
Newbie
 
Posts: 86
Joined: 2014-7-17 @ 08:54

Re: 3dfx voodoo chip emulation is back!

Postby Enverex » 2016-10-08 @ 11:14

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/ ... g%20(linux)/DOSBox/engine/lin_DOSBox_SVN-Daum_20150125/dosbox_svn-daum_32bit/glide2x.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.
User avatar
Enverex
Newbie
 
Posts: 32
Joined: 2016-2-09 @ 10:05
Location: UK

Re: 3dfx voodoo chip emulation is back!

Postby zirkoni » 2016-10-08 @ 11:27

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.
User avatar
zirkoni
Newbie
 
Posts: 86
Joined: 2014-7-17 @ 08:54

Re: 3dfx voodoo chip emulation is back!

Postby Enverex » 2016-10-08 @ 17:24

I tried the actual glide2x.dll from there in the game and also the emu one renamed to glide2x.dll in the game, same effect with both.
User avatar
Enverex
Newbie
 
Posts: 32
Joined: 2016-2-09 @ 10:05
Location: UK

Re: 3dfx voodoo chip emulation is back!

Postby zirkoni » 2016-10-08 @ 18:27

Sorry, typo/mixing ovl&dll. I meant rename glide2x_emu.ovl to glide2x.ovl.
Last edited by zirkoni on 2016-10-08 @ 22:48, edited 1 time in total.
User avatar
zirkoni
Newbie
 
Posts: 86
Joined: 2014-7-17 @ 08:54

Re: 3dfx voodoo chip emulation is back!

Postby Enverex » 2016-10-08 @ 21:38

I tried both, same behavior either way oddly enough.
User avatar
Enverex
Newbie
 
Posts: 32
Joined: 2016-2-09 @ 10:05
Location: UK

Re: 3dfx voodoo chip emulation is back!

Postby Kisai » 2016-10-15 @ 23:17

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
Code: Select all
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.
You do not have the required permissions to view the files attached to this post.
Kisai
Newbie
 
Posts: 94
Joined: 2010-5-05 @ 08:04

Re: 3dfx voodoo chip emulation is back!

Postby framer » 2017-1-08 @ 22:24

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 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 :cool: :happy:

It runs better than E V E R...

Thanks
framer
framer
Newbie
 
Posts: 2
Joined: 2016-4-19 @ 17:57

Re: 3dfx voodoo chip emulation is back!

Postby Yesterplay80 » 2017-1-16 @ 12:22

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:
Code: Select all
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)
User avatar
Yesterplay80
Member
 
Posts: 116
Joined: 2016-2-23 @ 11:02
Location: Germany

Previous

Return to DOSBox Patches

Who is online

Users browsing this forum: No registered users and 1 guest