VOGONS


3dfx voodoo chip emulation

Topic actions

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

Reply 181 of 386, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie
kekko wrote:

I never had any of the troubles described; anyway, here's the ovl I use, I hope it works for you too 😀

@kekko: Thanks for the ovl, kekko. Nice work. I will try to see if there is something that I can help for optimization.

For someone who is willing to try with the latest SVN, I posted a patch here. It is the almost the same as Kekko's one.

It would be really cool, I was thinking, if that when this Voodoo emulation is completed (or stable, at least) you incorporated it into your build with a selection between the software Glide wrapper passthrough to the host as we have now, or the full emulation. This way you could achieve the compatibility of both (the current one works great with most titles now, and is likely to always be faster than full emulation, but some titles may need full emulation) without having to have multiple copies of DOSBox installed.

@Yushatak: Providing both the full emulation and wrapper inside DOSBox? Disabling PCI and full emulation to turn off glide emulation might be possible to use glide wrapper. There should be an option to select one of the emulations as you said. I did not try it yet, so I am not sure if it would be really working. I prefer to only implement kekko's emulation if it becomes faster, because it does not require any external library and it is simple.

Attachments

  • Filename
    glide_20101105.diff
    File size
    495.32 KiB
    Downloads
    448 downloads
    File license
    Fair use/fair dealing exception

Reply 182 of 386, by Yushatak

User metadata
Rank Member
Rank
Member

Well the thing about the wrappers is that you can support Voodoo 2 games, if I'm not mistaken, under 95. Granted at the moment this isn't an appealing prospect, but in another few years DOSBox might be more evolved and computers will be more powerful. Otherwise I'm all for replacing it entirely with the full emulation if it gets that fast as you said.

Reply 183 of 386, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie
ykhwong wrote:

I did not try it yet, so I am not sure if it would be really working. I prefer to only implement kekko's emulation if it becomes faster, because it does not require any external library and it is simple.

It's not simple, it's complicated, and it's gonna become even more if opengl/threading/whatever is used to speed it up 😁. But it is simpler in the respect that at the moment it uses dosbox rendering so all the usual options + fullscreen switching work fine.
As of running both emulations at the same time - it shouldn't be a problem. It's just the matter of using the right ovl file. If you'd want a config setting, the ovl would probably need to get loaded on the Z: drive so that you don't have to switch it inside game directories... (except for the games that do not use ovl file in which case only the chip emulation can work)

http://www.si-gamer.net/gulikoza

Reply 184 of 386, by ADDiCT

User metadata
Rank Oldbie
Rank
Oldbie

From a user's point of view it would certainly be nice to have both features, and being able to choose which type of emulation to use. This could also be useful for debugging/identifying problematic games, as there'd be some "common ground" with which to test games with (like "game a works with the wrapper, but not with the full emulation" and such).

Reply 186 of 386, by dj_def

User metadata
Rank Newbie
Rank
Newbie

it's very simple... you have to download sdl sources, compile and install them (into msys environment), then you can compile dosbox (there is a file, something like SDL.h in the include directory of dosbox sources that you will have to remove, otherwise the make process will not end succesfully); to compile sdl:
./configure
make
make install
to compile dosbox:
./autogen.sh
./configure
make install
you will find the bin file of dosbox in /local/bin if I remeber 😀
the whole process into msys is not much different from the process into bash and gcc

Reply 187 of 386, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie
gulikoza wrote:

As of running both emulations at the same time - it shouldn't be a problem. It's just the matter of using the right ovl file. If you'd want a config setting, the ovl would probably need to get loaded on the Z: drive so that you don't have to switch it inside game directories... (except for the games that do not use ovl file in which case only the chip emulation can work)

Yes, you're right. I've done some modifications to it, and it was successful to switch ovl files. Tested with GTA1. 😀

Reply 188 of 386, by MediaVistaIntel

User metadata
Rank Newbie
Rank
Newbie

Hello I just compile dosbox with Microsoft Visual C 2010 Express through this tutorial Building DOSBox with Visual C 2008 Express, but after installing the 1st part of Windows 95 C OSR 2.5 on the drive C and restart to continue installation boot -l c did not start. How to install and run correctly with 3dfx Voodoo hardware, not software!
even after several minutes nothing happens!

Reply 189 of 386, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

this is not the thread to ask how to compile Dosbox nor how to install Windows 9x in Dosbox. Please keep the thread clean...

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 190 of 386, by kekko

User metadata
Rank Oldbie
Rank
Oldbie

This new patch adds compile-time precomputed scanline renderer technique, as available on mame.
The new "voodoo_raster.h" file contains few precomputed rasterizers from some of the games I tested.
If you want some speed boost for your game, you have to manually add the missing rasterizer and rebuild sources; the rasterizer entries which dosbox does not find in the voodoo_raster list, are sent to console while the game is running.
It boosts speed in a range from nothing up to nicely fast, depending on game.
I had this code on my hdd from few weeks, I just decided to make a patch out of it and make it available.

Attachments

  • Filename
    voodoo_20101127.zip
    File size
    99.46 KiB
    Downloads
    1741 downloads
    File license
    Fair use/fair dealing exception

Reply 191 of 386, by kekko

User metadata
Rank Oldbie
Rank
Oldbie

EF2000 with 3dfx acceleration, running under dosbox.

Attachments

  • ef2000_3dfx.PNG
    Filename
    ef2000_3dfx.PNG
    File size
    121.82 KiB
    Views
    4417 views
    File license
    Fair use/fair dealing exception
  • Filename
    ef2000_rast.txt
    File size
    2.36 KiB
    Downloads
    330 downloads
    File comment
    ef2000 rasterizer entries
    File license
    Fair use/fair dealing exception

Reply 194 of 386, by kekko

User metadata
Rank Oldbie
Rank
Oldbie
gulikoza wrote:

Can these be computed on the fly as some sort of cache?

that would require a sort of dynamic recompiler.
at this moment it just builds a group of functions where few parameters are compile-time constants instead of run-time variables, so the compiler optimizes out some of the IFs.
That's not much straightforward to move to run-time, not until you implement a dynamic recompliler that assembles (and caches) a scanline rasterizer on the fly.
That would in theory make it gain even more speed, but I'm not sure it worths the effort required.
Imho opengl seem the way to go, but I'm not much into it and have little time to spend with it. I would gladly accept help on this, especially how to properly and politely setup the opengl framework in dosbox. I may figure out how to render triangles by myself...maybe 😜

Reply 196 of 386, by kekko

User metadata
Rank Oldbie
Rank
Oldbie

first experiments with opengl.
it just draws wireframes tris, and the scene is upside down, but it works.
here's the patch (to apply after main patch)
software rasterizer should still work byjust putting v->ogl to false.
awaiting comments and suggestions 😀

Attachments

  • Filename
    voodoo_ogl_exp1.diff
    File size
    7.14 KiB
    Downloads
    372 downloads
    File license
    Fair use/fair dealing exception