Future graphics card emulation

Support and general discussion.
User avatar
SarahWalker
Site Admin
Posts: 2006
Joined: Thu 24 Apr, 2014 4:18 pm

Future graphics card emulation

Post by SarahWalker »

Requests for "please emulate 'x' graphics card" seem to be popping up periodically, so I've made this post in a (probably futile) attempt to stop this. Below are my thoughts on every graphics card that might be considered for emulation, along with how difficult it is and how likely I am to look at it.


A few things that I would have thought I wouldn't need to point out but probably do :

This is based on how difficult _I_ would find emulating each card and how likely _I_ am to emulate them. While it's theoretically possible that someone else will come along with a complete emulation of a TNT or something, so far this hasn't happened so I'm sticking to reality here.

If the card you're thinking of isn't listed then it probably isn't interesting enough to be worth emulating.

For difficulty, 'Easy' means a rough time estimate would be in days, 'Medium' weeks, 'Hard' months. This is an _estimate_, not a guarantee. Unexpected issues do occur, particularly when PCem is involved.

'High' likelihood means I have plans to implement it. 'Medium' means I would like to get round to it at some point. 'Low' means given infinite time I might get round to it, but I probably won't. 'None' means there's no chance of it happening.

None of this is a _promise_ that I will emulate any of these.


Anyway :

3Dfx Voodoo Rush (Alliance)
Probably doable, I have technical reference for the AT25 chip used on this and a real card to test against. Would require AT25 emulation (SVGA, 2D acceleration, video acceleration), plus some refactoring of Voodoo emulation to allow integration and to emulate the few Rush-specific features.

Difficulty: Medium
Likelihood of being added: Medium


3Dfx Voodoo Rush (Macronix)
I've not seen any documentation for the Macronix 2D chip, which would make this a non-starter.

Difficulty: Very high
Likelihood of being added: None (unless a datasheet shows up)


3Dfx Voodoo Banshee
I did write emulation for the SVGA core for this a few years ago, this has probably bitrotted a bit but could be brought back into shape. 2D acceleration needs writing, given the way this integrates into the 3D command submission system this will probably be non-trivial. The 3D core is basically the same as Voodoo 2 but there will be quite a bit of work refactoring it to integrate everything together. This is on my list for in the next year or so.

Difficulty: Medium
Likelihood of being added: High


3Dfx Voodoo 3
Functionally this is a Banshee variant, so emulation would come 'for free' with the Banshee. However the existing render code is nowhere near fast enough for V3 performance so this would be a bit pointless without (a lot of) further work to try to bring the speed up.

Sadly I suspect that if I tried to add the Banshee without also adding the V3, regardless of performance, someone would end up adding it themselves and going "ha ha! Sarah's crap and couldn't emulate it come use my fork instead".

Difficulty: High (mostly optimisation)
Likelihood of being added: Medium


3Dfx Voodoo 4/5
No chip documentation available and no open source drivers to look at (Glide source releases only go up to V3, Mesa driver just talks to Glide) mean this would require a lot of reverse engineering. It would also run deep into the performance issue again (VSA-100 is a lot faster than V3 for single texturing) so realistically this isn't going to happen. Sorry.

Difficulty: Very high (reverse engineering, plus a lot of optimisation)
Likelihood of being added: Low


3DLabs GameGlint (Creative 3D Blaster VLB)
Probably looks like a Permedia subset, in which case if the Permedia2 was emulated then it _might_ be possible to emulate this. No promises.

Difficulty: Medium (hopefully, once Permedia2 added)
Likelihood of being added: Low


3DLabs Permedia
Similar situation to the GameGlint, probably looks like a subset of Permedia2. Not very interesting on it's own.

Difficulty: Medium (hopefully, once Permedia2 added)
Likelihood of being added: Low


3DLabs Permedia2
I have register documentation. This would mainly be interesting to try to emulate the older chips though, as by itself it's just a poor D3D accelerator.

Difficulty: Hard
Likelihood of being added: Low


Alliance AT25
Would be implemented as part of Voodoo Rush work. Not very interesting on it's own.

Difficulty: Medium
Likelihood of being added: Medium


Alliance AT3D
AT25 with an awful 3D core (or rather, AT25 is AT3D with the 3D core either absent or non-functional). I have the technical reference, but why bother?

Difficulty: Medium (on top of AT25)
Likelihood of being added: Low


ATI 3D Rage
Basically Mach64 with extended video acceleration and a crap 3D engine. I do have register documentation, however the 3D engine is so lacklustre (it doesn't even support z buffering, meaning compatibility is awful) that there doesn't seem to be much point.

Difficulty: Medium
Likelihood of being added: Low


ATI 3D Rage II
3D Rage with an improved 3D engine and more video functions. No register documentation, though I think it's a superset of the original 3D Rage rather than something totally new. But why bother when you could emulate the Rage Pro instead?

Difficulty: High
Likelihood of being added: Low


ATI 3D Rage Pro
3D engine register documentation isn't available, but the Mesa driver gives most of the details, including of the DMA command system. It's still largely Mach64 based so this wouldn't be a start-from-scratch situation. This is on my list for some point in the future.

I have Personal History and Unresolved Trauma with the Rage Pro, which is why it's more likely to be emulated than some of the other cards here.

Difficulty: Medium/high
Likelihood of being added: Medium


ATI Rage 128
Mesa driver again gives register documentation, but this doesn't look like a Mach64 variant so would be a lot more work.

Difficulty: High bordering on very high
Likelihood of being added: Low


ATI Radeon
Hahahahahahaha.

Difficulty: Ultra high
Likelihood of being added: None


Cirrus Logic Laguna3D
I have full register documentation, but it's not a very interesting chip to emulate; it's just a bad D3D accelerator.

Difficulty: Medium
Likelihood of being added: Low


Matrox Millennium
Looks like it should just be a Mystique without the 3D functionality, and with external RAMDAC and clock generation. If it's that simple it should be in the next release, if not then it won't.

Difficulty: Low (hopefully)
Likelihood of being added: High (next release?)


Matrox Mystique
Code exists in buggy form. I intend to try to get this releasable for the next PCem release.

Difficulty: Medium (hopefully)
Likelihood of being added: High (next release?)


Matrox G100
Mostly a Mystique superset, adding texture filtering, 'better' alpha stippling and AGP support. Wouldn't be impossible to add as an extension to the Mystique emulation, but the only value would be for comedy screenshots; unlike the Mystique, there aren't any chip-specific games

Difficulty: Medium (once Mystique is in)
Likelihood of being added: Low


Matrox G200
Hmm. This again looks like a Mystique extension, though there are quite a number of differences in the 3D engine. Register documentation exists for everything except the Warp Engine (a RISC processor that does triangle setup), which could be a showstopper. Apparently the D3D microcode has been RE'd to the point where a HLE-type emulation of this might be possible, but I'd have to be convinced that this will actually be reliable in the long term.

Difficulty: High
Likelihood of being added: Low (though someone at VOGONS was looking at it I think)


Matrox G400
G200++

Difficulty: High (once G200 was implemented)
Likelihood of being added: Low


nVIDIA NV-1
I believe this mostly looks like a Riva 128 with a very different 3D engine. Not a lot of direct documentation around, but it may be possible to reverse engineer the bits that are needed. Maybe.

Difficulty: High (once Riva 128 was implemented)
Likelihood of being added: Medium


nVIDIA Riva 128
The most likely of the early nVIDIA boards to be implemented. No official documentation, but there is some unofficial stuff in existence. Would likely involve some level of reverse engineering and digging through things like UtahGLX, but if it could be made to work then a lot of the code could be reused for other nVIDIA chips.

Difficulty: High bordering on very high
Likelihood of being added: Medium


nVIDIA TNT/TNT2
If the 3D engine looks like an extension of the Riva 128 then this may be possible. If not then it would be much more difficult. nouveau has TNT support so could be used as a source for documentation. This would involve a lot of the same optimisation work that V3 would require, especially for TNT2.

Difficulty: Medium/high (once Riva 128 was implemented)
Likelihood of being added: Medium


nVIDIA GeForce
Hahahahahahaha.

Difficulty: Ultra high
Likelihood of being added: None


PowerVR PCX1/2
I think there was someone looking at this, at least at one point? No register documentation, acres of reverse engineering, and something I doubt I'm going to involve myself in.

Difficulty: Very high/Ultra high
Likelihood of being added: Low


PowerVR Neon250
Technically the Dreamcast guys have emulated most of this, so the DC version could be used as a starting point. Still a lot of work though, and it was never a very good card anyway.

Difficulty: Very high
Likelihood of being added: Low


Rendition V1000
Quite an interesting architecture on the Verite cards. I'm quite interested in looking at this at some point. The documentation I have is for the V2200, but most of it applies to the V1000 as well.

Difficulty: High
Likelihood of being added: Medium


Rendition V2200
While the documentation I have is actually for this chip, I'd probably add the V1000 first. The V2200 mostly adds some fixed-function hardware as well as a few tweaks to the RISC architecture.

Difficulty: Medium (after V1000 added)
Likelihood of being added: Medium


S3 Trio64V+
On paper this should be fairly easy - Trio64 + something that looks a lot like the ViRGE video overlay. Of course this is PCem so _nothing_ is ever easy.

Difficulty: Easy (I think)
Likelihood of being added: Medium/High


S3 Trio3D
No available documentation that I can find, but my understanding is it's basically ViRGE/DX plus some new blend modes and AGP in some versions. Shouldn't be the most difficult reverse engineering to do, but it's frankly not very interesting.

Difficulty: Medium (probably)
Likelihood of being added: Low


S3 Savage3D
Mostly the same as Savage4, hence emulate that one first. Mesa documents the register differences between this and Savage4. Maybe PCem should emulate terrible chip yield?

Difficulty: Medium (after Savage4 added)
Likelihood of being added: Medium/Low


S3 Savage4
I have register documentation (though I don't think it's 100% complete), plus there's a Mesa driver to stare at. Probably would be lower priority than the V3, Rage Pro or TNT though.

Difficulty: Hard
Likelihood of being added: Medium


S3 Savage2000
Not seen any register documentation. Mesa's Savage driver seems to have some S2000 support but it looks pretty incomplete. Given that this is a card with a roughly GeForce-level feature set and hugely buggy drivers I don't fancy reverse engineering it if I'm honest...

Difficulty: Ultra Hard
Likelihood of being added: None
kekko
Posts: 6
Joined: Fri 22 Nov, 2019 4:01 pm

Re: Future graphics card emulation

Post by kekko »

Hi,
have you ever considered a "virtual" d3d-compliant card driver as an option?
I know it's not actual emulation, but still, I think it might be interesting.
A mock-up video card, basically a win9x driver which just forwards actual rendering calls to the host, using opengl as backend.
On dosbox, more than a decade ago, I made a win9x porting of a dos mock-up glide2x.ovl driver made by another contributor.
This allowed win9x games (which use glide2x.dll) to detect a 3dfx and use host machine for rendering. No actual hardware emulation.
this is a test run of Croc (sorry for the bad video quality)
[url]https://www.youtube.com/watch?v=MWOrj_Sk2ms[/url]
It ran pretty well and with very acceptable performance for my old 2009 machine.
Thanks and please share your thoughts on this.
User avatar
SarahWalker
Site Admin
Posts: 2006
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Future graphics card emulation

Post by SarahWalker »

No, that's not really in the spirit of PCem.
User avatar
leilei
Posts: 896
Joined: Fri 25 Apr, 2014 4:47 pm

Re: Future graphics card emulation

Post by leilei »

Any view on the Intel i740? The Supermodel emulator (Sega Model 3) emulates the earlier related Real3D chip (through GL though...). Dunno if there were data sheets out on that and don't know if it shares a lineage with the Intel Extremes on later Intel chipset boards (which are wayyyyyy out of the scope anyway).

The best most explicit doc I could ever find on the PCX2 (D62011GD) is are NEC's papers having chip pinout in japanese. I tried to replicate the post-dither as a shader once. The many papers for the PowerVR chips just blurb about the similar architecture, whether that's enough to go by to reverse PCX from CLX2 emulation is an unknown anyway (especially as no DC emulator emulates the tiled rendering nor the whole plot-pixel-from-the-front-and-then-work-on-it anti-overdraw system)

There was also the Matrox MGA Impression 3d card (1994) but..... is accelerated Creep Clash worth it? :shock:

S3 Trio64V+ BIOSes are compatible with Trio64 drivers and work fine with the emulation (from my experience, as well as the data sheet making mentions of Trio64 compatibility), so there's at least that to begin with.

As for bad video cards with traumatic experiences, I have some mild interest in trying to do Realtek RTG-3105IEH emulation.. this was a 1994 very budget minded VESA-compliant small card with slow performance. According to someone on VOGONS it's been compared to be similar with Trident TVGA regarding the quirks, though performance is more akin to having that set to 8-bit speed in PCem. Probably fits most appropriately in a 486SLC+WSS sandwich.
User avatar
omarsis81
Posts: 921
Joined: Thu 17 Dec, 2015 6:20 pm

Re: Future graphics card emulation

Post by omarsis81 »

Thanks for sharing your thoughts on the future of PCem!

As leilei mentioned, the Intel 740 could be interesting to look at some point (I'm sure there's lot of documentation for it)
Also I mention the Trident Blade XP and SiS 6326... I'm not particulary interested in those, but I mentioned them in case you forgot

by the way, what is your unnresolved trauma with the Rage Pro? Hahaa
User avatar
leilei
Posts: 896
Joined: Fri 25 Apr, 2014 4:47 pm

Re: Future graphics card emulation

Post by leilei »

I had a Rage Pro somewhere. I recall it did alpha blending through software and it'd look noticeably noisy (especially in motion). The GL ICD on the last driver would bring flashing textures in idTech3 stuff. Turok looked awful.
Cheez
Posts: 65
Joined: Tue 19 Dec, 2017 4:08 am

Re: Future graphics card emulation

Post by Cheez »

So what you're saying is that it's a very good card.
User avatar
leilei
Posts: 896
Joined: Fri 25 Apr, 2014 4:47 pm

Re: Future graphics card emulation

Post by leilei »

Well... "Good" in that it was a popular common OEM card *cough*eMachines*cough*Compaq Deskpro*cough* and a lot of 99-00 Direct3D games were tuned for it in mind. I believe XP supported it out of the box as well
User avatar
SarahWalker
Site Admin
Posts: 2006
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Future graphics card emulation

Post by SarahWalker »

omarsis81 wrote:
Wed 10 Jun, 2020 2:48 am
Also I mention the Trident Blade XP and SiS 6326... I'm not particulary interested in those, but I mentioned them in case you forgot
If the card you're thinking of isn't listed then it probably isn't interesting enough to be worth emulating.
Blade XP and SiS 6326 definitely fall under 'not interesting'.
by the way, what is your unnresolved trauma with the Rage Pro? Hahaa
Had one as my primary card until 2001...
User avatar
SarahWalker
Site Admin
Posts: 2006
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Future graphics card emulation

Post by SarahWalker »

leilei wrote:
Wed 10 Jun, 2020 12:51 am
Any view on the Intel i740? The Supermodel emulator (Sega Model 3) emulates the earlier related Real3D chip (through GL though...). Dunno if there were data sheets out on that and don't know if it shares a lineage with the Intel Extremes on later Intel chipset boards (which are wayyyyyy out of the scope anyway).
Curiously there doesn't seem to be much available documentation for the i740. There is register documentation for the GPU on the i810 though, which is apparently the same as the i752 which is apparently developed from the i740...
As for bad video cards with traumatic experiences, I have some mild interest in trying to do Realtek RTG-3105IEH emulation.. this was a 1994 very budget minded VESA-compliant small card with slow performance. According to someone on VOGONS it's been compared to be similar with Trident TVGA regarding the quirks, though performance is more akin to having that set to 8-bit speed in PCem. Probably fits most appropriately in a 486SLC+WSS sandwich.
Can't find a datasheet, but REALTEK.TXT in the PCGPE documents the (minimal) register set. Could be a good learning exercise I suppose!
User avatar
omarsis81
Posts: 921
Joined: Thu 17 Dec, 2015 6:20 pm

Re: Future graphics card emulation

Post by omarsis81 »

SarahWalker wrote:
Wed 10 Jun, 2020 6:50 am
leilei wrote:
Wed 10 Jun, 2020 12:51 am
Any view on the Intel i740? The Supermodel emulator (Sega Model 3) emulates the earlier related Real3D chip (through GL though...). Dunno if there were data sheets out on that and don't know if it shares a lineage with the Intel Extremes on later Intel chipset boards (which are wayyyyyy out of the scope anyway).
Curiously there doesn't seem to be much available documentation for the i740. There is register documentation for the GPU on the i810 though, which is apparently the same as the i752 which is apparently developed from the i740...
As I'm not a programmer I'm not sure if that's what you need, but there is a good website with many datasheets
[Moderator : link removed]
look for the "Download attachments" on page 27 from that PDF it lists the registers

PS: I hope datasheets are not copyrighted... :oops:
User avatar
SarahWalker
Site Admin
Posts: 2006
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Future graphics card emulation

Post by SarahWalker »

The i740 datasheet doesn't document the 3D engine registers.
User avatar
Rikintosh
Posts: 8
Joined: Sat 06 Jun, 2020 5:10 pm
Location: São Paulo, Brazil

Re: Future graphics card emulation

Post by Rikintosh »

I didn't find the rtx 2080 super SLI, I searched a lot to download it, but all I got was viruses. When will you implement it on pcem?









-- Just kidding :D
User avatar
leilei
Posts: 896
Joined: Fri 25 Apr, 2014 4:47 pm

Re: Future graphics card emulation

Post by leilei »

Kyro wasn't mentioned and before anyone does mention, i'd say this also falls under "Hahahahahaha". Can you imagine the CPU cache choking on the 8-pass texturing with that house demo? Yeah. Also it doesn't support the SGL stuff either and the actual card has had buggy drivers (for the first few years it wasn't able to run many mainstream games of 2002 without major problems), so doesn't have much merit for either old or newer games.

Cyrix MediaGX _allegedly_ does (bad) 3D acceleration, but couldn't find concrete info about that anywhere since it's not exactly a card and can only find more press releases than test results...

A Riva 128 rasterizer could probably be fast since the blending precision's awful enough to get away with a 15bpp lookup table... I wanted to reverse the nvidia dither matrix pattern at one point (resembling a 16x16 "Restore Down" button)
f2bnp
Posts: 1
Joined: Mon 04 Dec, 2017 2:54 pm

Re: Future graphics card emulation

Post by f2bnp »

Just dropping in to mention that MediaGX has no 3D acceleration features, at least none that I know of. I own a board with a MediaGXm at 266MHz, so pretty much the last one of them, and there's no such thing no matter what driver I used. If anyone working on PCEm is interested in the platform, I can lend it to you for as long as you wish, its CPU core is essentially a supercharged 486 (5x86 variant to be exact) and at that frequency it actually keeps up with a Pentium 133 or so :P .
kekko
Posts: 6
Joined: Fri 22 Nov, 2019 4:01 pm

Re: Future graphics card emulation

Post by kekko »

Matrox G200
Hmm. This again looks like a Mystique extension, though there are quite a number of differences in the 3D engine. Register documentation exists for everything except the Warp Engine (a RISC processor that does triangle setup), which could be a showstopper. Apparently the D3D microcode has been RE'd to the point where a HLE-type emulation of this might be possible, but I'd have to be convinced that this will actually be reliable in the long term.
About G200, quite some time ago, I compared registers specifications with mystique ones, and I remember they share quite some of the basic stuff, apart of course the triangle setup engine, because G200 and above had a programmable RISC chip for that.
As you may already know, linux driver sources (available on matrox ftp) provide pre-built microcode macros for commonly used pipes (search for mga_ucode.h):

Code: Select all

/*
 * WARP pipes are named according to the functions they perform, where:
 *
 *   - T stands for computation of texture stage 0
 *   - T2 stands for computation of both texture stage 0 and texture stage 1
 *   - G stands for computation of triangle intensity (Gouraud interpolation)
 *   - Z stands for computation of Z buffer interpolation
 *   - S stands for computation of specular highlight
 *   - A stands for computation of the alpha channel
 *   - F stands for computation of vertex fog interpolation
 */
For more about this topic, also search (with quotes):
"MATROX GRAPHICS INC. Setup Engine DDK"

Assuming that linux drivers are a mere windows porting, I guess we can also safely assume that d3d just relies on the very same fixed-function pipes.
In theory, on WIADDR = WMODE_START command, it might be possible to compare microcode at memory location in WIMEMADDR register, with known macros from mga_ucode.h, in order to detect the selected pipe, then HLE from there onwards.
Please share your thoughts.
User avatar
SarahWalker
Site Admin
Posts: 2006
Joined: Thu 24 Apr, 2014 4:18 pm

Re: Future graphics card emulation

Post by SarahWalker »

Like I said, I'd need to be convinced that such an approach would be truly reliable. An emulation that only works on some drivers but not others wouldn't be very useful.
PoloniumRain
Posts: 7
Joined: Sun 07 Jun, 2020 8:18 pm

Re: Future graphics card emulation

Post by PoloniumRain »

Thanks for that long post Sarah.

I don't get why people are asking about much faster GPU's like the Voodoo 4/5 though, even if you ignore that it likely isn't possible because of no documentation.

The big problem with the faster GPU's is that even the current Voodoo2 SLI option is completely bottle-necked by the slow ~200MHz CPU's that can currently be emulated, at best. No hardware exists yet that can emulate the significantly faster CPU's of 1998/99 that went up to around 800MHz when the Voodoo2/3 were released. So it would be wise to focus on other GPU's of that era that are no faster than Voodoo2 SLI/Voodoo3.

People can try out: If you have a fast enough PC, setup Voodoo2 SLI with a ~200MHz CPU, then run 3DMark 2000 on Windows 98 at 640x480 resolution, then run it again at 1024x768... The score and frame rates will be exactly the same because the emulated CPU is a massive bottleneck.

Check out this Voodoo2 scaling project with hundreds of results:
https://www.philscomputerlab.com/voodoo-2-and-sli-processor-scaling-project.html

Even at 1GHz the Voodoo2 SLI machine is still seeing slight benefits from faster CPU's. You'd have to emulate something around 500MHz to begin to make use of Voodoo2 in SLI, but a current high-end CPU overclocked to a ridiculous 7GHz still couldn't emulate that at 100% speed. So unless the devs can somehow make use of all those unused threads on CPU's like my Threadripper 3960X, in order to emulate faster CPU's, then i think emulating faster GPU's is probably a complete waste of time for the next 3+ years...
User avatar
leilei
Posts: 896
Joined: Fri 25 Apr, 2014 4:47 pm

Re: Future graphics card emulation

Post by leilei »

V2SLI still texture thrashes harder though (more than a single card), and that can still be felt on slower CPUs and PCem properly emulates that thrash problem... I have a P2 system with a V2 and a V3 and V3 still shows quite some gains over V2 there, especially thanks to the new memory controller. IMO I wouldn't hold trust in inflated Forsaken results as that barely pushes much triangles and is less detailed than Descent and any other PC game that came out in 1998... Try Quake3 on a V2SLI with r_picmip 0 then watch that crawl (especially around portals), and try it on a V3 where it's fine (or probably any other late 98 video card will also do, Banshee doesn't thrash either).

The only Voodoo3 that might have a slim chance for usability would be the 2000 PCI and would only be performance practical for running games in 320x240-400x300 where the older Voodoos (besides Banshee) couldn't.

A PowerVR PCX2 also benefits nicely from faster CPUs and boards than what was available in the '90s, it doesn't mean it's an untapped potential super scaling card though, and i'm not a fan of the whole V2 mysticism about scaling, or the misinformation on how it's a 24mb card while there's disbelief of the driver reporting 4mb with common misunderstandings of how SLI works, etc.
kekko
Posts: 6
Joined: Fri 22 Nov, 2019 4:01 pm

Re: Future graphics card emulation

Post by kekko »

SarahWalker wrote:
Thu 11 Jun, 2020 4:13 pm
Like I said, I'd need to be convinced that such an approach would be truly reliable. An emulation that only works on some drivers but not others wouldn't be very useful.
A possible solution to this might be actually faking the card in PCem (almost there with the mystique), minus the risc chip.
Nothing will be actually rendered to screen, but it would implement the ability to dump microcode blocks from memory and collect it to file.
Then, several combinations of application software and driver releases might be run. Eventually we should be able to identify a (hopefully small) set of recurring routines.
Chances are that most software/drivers relies on the very same routines, each implementing one of the common render styles.
Please, share any thought on this or any other approach you might think of.
PoloniumRain
Posts: 7
Joined: Sun 07 Jun, 2020 8:18 pm

Re: Future graphics card emulation

Post by PoloniumRain »

leilei wrote:
Fri 12 Jun, 2020 1:11 am
V2SLI still texture thrashes harder though (more than a single card), and that can still be felt on slower CPUs and PCem properly emulates that thrash problem... I have a P2 system with a V2 and a V3 and V3 still shows quite some gains over V2 there, especially thanks to the new memory controller. IMO I wouldn't hold trust in inflated Forsaken results as that barely pushes much triangles and is less detailed than Descent and any other PC game that came out in 1998... Try Quake3 on a V2SLI with r_picmip 0 then watch that crawl (especially around portals), and try it on a V3 where it's fine (or probably any other late 98 video card will also do, Banshee doesn't thrash either).
Yeah i know. That's why i said anything faster than a Voodoo2 SLI/Voodoo3 is likely a waste of time for now.

But looking at the 'Host machine survey' thread on here, most people don't even have a PC/laptop that can emulate a Pentium 120MHz at 100% speed. That's way too much of a bottleneck for any decent GPU from the late 90's. Even my overclocked AMD Threadripper 3960X can't quite emulate an AMD K6-2 233MHz without it dropping to 95% emulation speed when running 3DMark 2000 on Windows 98... lol. And 233MHz is still too slow to get much use out of a Voodoo3 anyway.

That's why i think there must surely be far more useful things the PCem devs can focus their time on instead of faster GPU's... unless someone somehow manages to make PCem use more CPU cores/threads in order to give it a massive speed boost at emulating faster systems (PCem never uses more than 6% of more 24 core CPU).
User avatar
omarsis81
Posts: 921
Joined: Thu 17 Dec, 2015 6:20 pm

Re: Future graphics card emulation

Post by omarsis81 »

PoloniumRain, you are new here, so I going to explain a few things:

1) Sarah (the main programmer of PCem) said many, many times CPU emulation cannot be divided into many threads, so, for PCem the best host processors would be the one that performs the best with single thread operations, like an Intel 9900KS. Your threadripper has many cores and threads but a low ghz per core, so it is not ideal for PCem usage.

2) While is true that with current hardware we can't take full advantage of the V2 SLI with most of us barely using a Pentium 200/233. PCem is more than 10 years old and Sarah won't maintain it forever, so I believe it would be nice to have emulated hardware that we can't use now, but have it ready when more powerful real hardware develops in a few years.
Plus: as you notice in this thread there are many graphics cards to be emulated and is a lot of work, so maybe when all if finished we might have more powerful hardware to play with.
tk421
Posts: 92
Joined: Sat 18 Jun, 2016 6:57 am

Re: Future graphics card emulation

Post by tk421 »

My experience with the K6-2 300 Mhz on just a socket 7 motherboard was positive. Star Trek Armada II, a game that requires a Pentium II 300 or an AMD Athlon processor of similar performance, ran just fine on the K6-2 300 on that socket 7 motherboard. The Voodoo 2 worked well for that game, and most programs I tried on PCem.

My experience with PCem would seem to confirm what many people have stated here for the last four years. A high-clocked Intel CPU is desirable when running PCem at full performance.

Like everyone here, I know I would welcome the addition of the Voodoo Banshee and the Voodoo3, but not at the cost of wrecking PCem or overworking Sarah and leilei. I agree with PoloniumRain. There are many things Sarah and leilei can do to improve PCem without adding the Voodoo3. There does come a point where people can simply use WinXP through VMWare or VirtualBox to run some of the more modern programs that do run under Win98, but probably run better on WinXP.

I do not know if many other people here tried this, but I gave the Voodoo3 a try on Bochs. While Bochs did recognize the V3 on boot, Win98 never recognized the V3, so installation failed every time. I am sure many people reading this have succeeded in installing a V3 on a Win98 computer, but my attempt in Bochs was not a success. I am very grateful to Sarah and leilei for building PCem to be such a great program that is really easy and fun to use. PCem works well already and I believe Sarah and leilei have an excellent plan and design for future PCem development. It is a perfect program.
User avatar
omarsis81
Posts: 921
Joined: Thu 17 Dec, 2015 6:20 pm

Re: Future graphics card emulation

Post by omarsis81 »

tk421 wrote:
Sun 14 Jun, 2020 7:07 am
Like everyone here, I know I would welcome the addition of the Voodoo Banshee and the Voodoo3, but not at the cost of wrecking PCem or overworking Sarah and leilei. I agree with PoloniumRain. There are many things Sarah and leilei can do to improve PCem without adding the Voodoo3. There does come a point where people can simply use WinXP through VMWare or VirtualBox to run some of the more modern programs that do run under Win98, but probably run better on WinXP.

I do not know if many other people here tried this, but I gave the Voodoo3 a try on Bochs. While Bochs did recognize the V3 on boot, Win98 never recognized the V3, so installation failed every time. I am sure many people reading this have succeeded in installing a V3 on a Win98 computer, but my attempt in Bochs was not a success. I am very grateful to Sarah and leilei for building PCem to be such a great program that is really easy and fun to use. PCem works well already and I believe Sarah and leilei have an excellent plan and design for future PCem development. It is a perfect program.
That's the problem: lots of people here say: don't worry, for higher demanding games we can use VMWare or any other virtualization program, but the true is, they suck

I tried Bochs and commented my resulted in the "Voodoo3 thread", it was a fail for me too. As for VMWare Workstation it works fine for 2D applications, but when it comes to 3D acceleration it is barely usable. To give you an idea: 3DMark99 doesn't even work and 3DMark2000 gives between 350 and 450 marks and a real Voodoo3 2000/3000 gives more than 3000 marks. So that gives an idea how crap VMware is.

I don't want to sound obsequious, but the truth is (and I always said) that PCem is the best emulator to play old games
Last edited by omarsis81 on Sun 14 Jun, 2020 10:28 pm, edited 2 times in total.
JosepMa
Posts: 184
Joined: Tue 20 Jun, 2017 6:25 pm

Re: Future graphics card emulation

Post by JosepMa »

And to add to the virtual machines talk... VirtualBox has had experimental support for 3D on WinXP (which seems that it was done replacing some DirectX libraries but I couldn't do anything serious), and version 6.1 has removed it.
Now 3D support is only present for Windows Vista onwards.
win2kgamer
Posts: 73
Joined: Sun 09 Nov, 2014 12:24 am

Re: Future graphics card emulation

Post by win2kgamer »

Never really liked Bochs and could never get VMware or VirtualBox working well for games myself. I've gotten almost all of my DX8/9-era stuff running in Wine though (Linux is my primary OS these days).

I am a bit curious on the possibility of emulating the ATi Mach32 or the S3 805 at some point in the future as NeXTSTEP 3.x supports little else when using 16-bit color modes (it's essentially that or grayscale on these versions). A little cursory searching turned up no technical documentation for the S3 805 (but there is some stuff out there for the similar and slightly newer S3 928) and some register-level documentation for the Mach32 (which seems to have at least some familial relation with the Mach64GX already in PCem.) Other somewhat-exotic guest OSes would probably benefit as well.
User avatar
leilei
Posts: 896
Joined: Fri 25 Apr, 2014 4:47 pm

Re: Future graphics card emulation

Post by leilei »

On the DOS gaming side, all that I know with Mach32 support is LineWars II for a special accelerated drawing mode, which is probably similar to the mode it has for early S3 cards (which works)
tk421 wrote:
Sun 14 Jun, 2020 7:07 am
I believe Sarah and leilei have an excellent plan and design for future PCem development.
I think you're overstating my role a bit too much here... I have no plans and designs; if there's a patch I post, it's all because I felt like it (after going through my confidence filter). That's it. There's no involvement beyond that. I don't see myself higher than others contributing patches.
User avatar
omarsis81
Posts: 921
Joined: Thu 17 Dec, 2015 6:20 pm

Re: Future graphics card emulation

Post by omarsis81 »

Speaking about patches I remember long ago you were working on a patch to improve the quality of the Voodoo2 and you posted screenshots of textures of two different versions of PCem and a real Voodoo2. That was a great work! But I believe that patch wasn't committed or finished
User avatar
leilei
Posts: 896
Joined: Fri 25 Apr, 2014 4:47 pm

Re: Future graphics card emulation

Post by leilei »

I';m sure that patch will get looked at when Sarah's in the 3dfx mood later on. It's also relevant for Voodoo3 because that offers options to switch this dither subtraction on and off overall (as "Alpha blend quality" in the 3dfx Tools panels)

I have no glide conformance tests to know if the dithersub bits to work with actually are for real though... there's lots of unclear parts in 3dfx's stuff (like that "24BPP" setting which only toggled the screen filter on my real V2 as far as I could tell)
Bogus
Posts: 20
Joined: Tue 31 Jan, 2017 2:16 pm

Re: Future graphics card emulation

Post by Bogus »

I found documentation for voodoo 5 5500, but and so doesn't make sense, too powerful this card, is on [Moderator : link removed]
For riva 128 documentation also is available, search for riva128.txt sourceforge.
Even 86box had emulation this card in 2018 before removing and even drivers was working, but only in vga and vbemp is working in svga, probably missing some 2d features.
Post Reply