Jump to content

Question regarding ATI Truform (pre-DX11 tessellation implementation)


Guest
 Share

Recommended Posts

Guest

I've been scouring the internet for information on how to re-enable ATI Truform, a pre-DX11 and OpenGL 4 method of tessellation, on games which supported it, but all the information I've found thus far seems to point to the following conclusions:

  1. You need a Truform-compatible ATI card for Truform to be enabled in supported games - even though Truform can be run through software (and was on certain ATI hardware).
  2. There are per-game re-implementations of Truform functionality, such as for Quake 3 (video demonstration here).
  3. There is no publicly-available generic method to enable Truform in software for compatible games or wrap it to modern DX11 hardware tessellation.

As such, is anyone here knowledgeable in Truform willing to weigh in?

Link to comment
Share on other sites

  • 2 months later...
Guest

As requested by Mirh, below is an archive containing our discussion on this topic for the sake of future reference.
 

Sent 06 January 2014 - 01:01 AM

Mirh,

 

I was wondering if you could give any insight into getting ATI's Truform technology working using modern graphics cards - no programming, mind you, more like hacks, wrappers, or other such programs. Judging from your wiki commits, you seem to be the most familiar with older PC gaming standards, hence why I'm asking you, specifically. If you could please get back to me regarding this, I'd greatly appreciate it!

 

-Expack3

 


 

Sent 06 January 2014 - 12:30 PM

Expack3, on 05 Jan 2014 - 8:01 PM, said:

Mirh,

 

I was wondering if you could give any insight into getting ATI's Truform technology working using modern graphics cards - no programming, mind you, more like hacks, wrappers, or other such programs. Judging from your wiki commits, you seem to be the most familiar with older PC gaming standards, hence why I'm asking you, specifically. If you could please get back to me regarding this, I'd greatly appreciate it!

 

-Expack3

Oh

Ahah, lol

The funny thing was that i was only 3 at the time of all those Aureal 3D stuff.. but now i understand what has been lost with time.. and i don't think there are so many others people on the Earth who know this. So this is why i'm trying to making old things restoring as plain as possible

 

Anyway, back to business

In what game did you need truform? if i have not misunderstood, last ati cards with enabled hardware support were the 9000series
 (another funny thing: the first GPU i bought was a 9250)

 

I found this (for morrowind), this (for UT2004)

And, if all games were this easy (you just need to edit an .ini file for UT).. i think we should have done with this :p

But probably this won't be enough for most game (like i found here)

 

I saw you have an Intel Core i7 950 @ 3.07GHz, so at a guess, i think you are the first person who interested to the problem with the right chances to succeed (in 2002 they hadn't those 4 4ht cores monsters)

Give a try to 3DAnalyze too. it's not bad when it comes to emulated graphics cards

 

And tomorrow school is starting again, so I don't know if I'll have times in the following days

 


 

Sent 06 January 2014 - 02:54 PM

Loool

While I was going on with my usual research on past 3D audio

i spotted this. So after a quick search between google and web.archive.org i found UnrealTorunament Truform render (whom zip is mirrored here)

Then, i was able to spot Serious Sam enforcing way too

Instead in the original Half-Life typing "ati_npatch 1" in the console should be enough to made the trick

 

 

Last but not least, after finding this i made a quick scan of my registry with "Truform" key and i found that at

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{random numbers}\0000\UMD

then

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{random numbers}\0000[0001 and even 0002]\UMD

and then

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\amdkmdag\UMD

I have a string called TruformMode_DEF which is set to 0

... I wonder what could happen if i would set it to 1

 

EDIT: i see you have an nvidia GPU.. so i think that for this last thing i'm alone(nevertheless try to do the same search). Thanks Steam i own Serious Sam the first encounter (the original version).. so I could try later

ps. variousotherslinks

 


 

Sent 12 January 2014 - 04:38 PM

Hey Mirh,

 

Sorry I haven't gotten back to you - the forum messenger never notified me of your responses for some reason.

 

I've got several games which have TruForm support: UT2004 and C&C Renegade. The first one doesn't work with a simple switch of the NPatches line or modifying the tessellation amount - and the OpenGL driver patched for TruForm gives me the error "The procedure entry point GTimestamp could not be located in the dynamic link library Core.dll" and a final error that the OpenGLDrv file cannot be found (see EDIT). The latter has NPatches support which - apparently - is stripped from the game when using the latest Tiberium Technologies patches, so I'll have to re-install the game to re-enable TruForm support before I come to a conclusion. Also, emulating DirectX 8.1 in software using 3D-Analyze doesn't seem to do anything for TruForm support, even when tricking games into thinking I'm using a Raedon 8500, and I'm unable to find any truform keys in my system registry. It's a frustrating dead-end, to be sure!

 

However, the fact that AMD's current drivers still seem to have TruForm references in its registry entries seems promising for you - I hope it ends up paying out (metaphorically)! Furthermore, in the event it does pay out, be sure to post the results (pictures and video included) on other sites besides PCGamingWiki, such as the Reddit sub r/games and YouTube - if TruForm can still be used on modern AMD GPUs, the world needs to hear about it as it would be a colossal boon for retro games!

 

Good luck, and I hope to be able to be of some use in getting TruForm to work.

 

Expack3

 

EDIT: I have no idea why I thought an OpenGL driver for the original Unreal Engine would work on an Unreal Engine 2 game...stupid me! :(

 


 

Sent 13 January 2014 - 01:07 AM

Ahah, the hugeness of the improvements of this technology seems to be second only to mine Aureal 3D restoration :p

For this latter, the only place where i thought I could find fellow audiophiles was head-fi.org

But I wouldn't know were to post about truform. And.. how to say? I'm "hesitant" when facing the biig reddit

 

Anyway, let me sum up:

Truform should be a toggleable setting in the in-game options? Or it's something driver force-able in every Dx8 game (like antialiasing for example)? Because i was thinking the first.. but I gave a look to serious sam and i couldn't find it (even though it's listed in the readme file as present there..)

I tried forcing it through the console.. but I got no answers.. so without errors or any other thing, I can't try

 

Going with madden NFL 2004 demo tomorrow.. I hope it will be easier to find the setting.. but it seems even 10 years ago they had their problems

 

If i'm not nosey, could i ask where you first see this technology?

And  if you know, is it really this graphical improvement?

 


 

Sent 14 January 2014 - 11:12 PM

Mirh, on 12 Jan 2014 - 8:07 PM, said:

Ahah, the hugeness of the improvements of this technology seems to be second only to mine Aureal 3D restoration :p

For this latter, the only place where i thought I could find fellow audiophiles was head-fi.org

But I wouldn't know were to post about truform. And.. how to say? I'm "hesitant" when facing the biig reddit

 

Anyway, let me sum up:

Truform should be a toggleable setting in the in-game options? Or it's something driver force-able in every Dx8 game (like antialiasing for example)? Because i was thinking the first.. but I gave a look to serious sam and i couldn't find it (even though it's listed in the readme file as present there..)

I tried forcing it through the console.. but I got no answers.. so without errors or any other thing, I can't try

 

Going with madden NFL 2004 demo tomorrow.. I hope it will be easier to find the setting.. but it seems even 10 years ago they had their problems

 

If i'm not nosey, could i ask where you first see this technology?

And  if you know, is it really this graphical improvement?

Sounds like a plan, my good fellow. :)

 

Since you aren't being nosey at all (seriously - you raised a good, valid question!), I first saw TruForm when I stumbled across a rather unusual set of commands while digging through theFallout New Vegas config file for things to tweak. Given as I don't have a graphics card which would actually run TruForm, I can't say whether TruForm actually works with the game or if it was disabled by the developers. However, I did some preliminary research, and then, being a UT2004 owner, I thought to myself, "I can has tessellation in mah Unreal Tournament?! Made of epic win!!!" (Translation: There's tessellation in UT2004? Awesome!)

 

Also, as you might have noticed in your research, it depends on the game. Some games, like C&C Renegade, seem to have models designed explicitly for TruForm - thus resulting in a dramatic quality increase when the technology is turned on. Those whose models which weren't optimized for TruForm, such as Serious Sam, tend to have issues like absurd, balloon-like objects caused by models having too sharp of angles. (This behavior was corrected in TruForm 2.0, but by then, no-one cared about the technology anymore.)

 


 

Sent 15 January 2014 - 04:44 PM

Expack3, on 14 Jan 2014 - 6:12 PM, said:

 

Mirh, on 12 Jan 2014 - 8:07 PM, said:

Ahah, the hugeness of the improvements of this technology seems to be second only to mine Aureal 3D restoration :p

For this latter, the only place where i thought I could find fellow audiophiles was head-fi.org

But I wouldn't know were to post about truform. And.. how to say? I'm "hesitant" when facing the biig reddit

 

Anyway, let me sum up:

Truform should be a toggleable setting in the in-game options? Or it's something driver force-able in every Dx8 game (like antialiasing for example)? Because i was thinking the first.. but I gave a look to serious sam and i couldn't find it (even though it's listed in the readme file as present there..)

I tried forcing it through the console.. but I got no answers.. so without errors or any other thing, I can't try

 

Going with madden NFL 2004 demo tomorrow.. I hope it will be easier to find the setting.. but it seems even 10 years ago they had their problems

 

If i'm not nosey, could i ask where you first see this technology?

And  if you know, is it really this graphical improvement?

Sounds like a plan, my good fellow. :)

 

Since you aren't being nosey at all (seriously - you raised a good, valid question!), I first saw TruForm when I stumbled across a rather unusual set of commands while digging through the Fallout New Vegas config file for things to tweak. Given as I don't have a graphics card which would actually run TruForm, I can't say whether TruForm actually works with the game or if it was disabled by the developers. However, I did some preliminary research, and then, being a UT2004 owner, I thought to myself, "I can has tessellation in mah Unreal Tournament?! Made of epic win!!!" (Translation: There's tessellation in UT2004? Awesome!)

 

Also, as you might have noticed in your research, it depends on the game. Some games, like C&C Renegade, seem to have models designed explicitly for TruForm - thus resulting in a dramatic quality increase when the technology is turned on. Those whose models which weren't optimized for TruForm, such as Serious Sam, tend to have issues like absurd, balloon-like objects caused by models having too sharp of angles. (This behavior was corrected in TruForm 2.0, but by then, no-one cared about the technology anymore.)

 

Fallout new vegas .ini file entries must date back to the TES:morrowind engine

 

Anyway, NFL demo really sucks for what i'm looking for

So, fortunately, i found neverwinter nights and rainbow six raven shield demos (it's incredible how common game trials where years ago)

 

It seems Turform on nvidia was possible but i can't understand how. Even more, truform support has been cut off from ATI drivers itself, so I don't think registry hack could work (even though i haven't tried yet)

 

I would try DXTweaker if i had the time. I has a plugin which "Forces global activation for N-Patch Tesselation if available on the graphics adapter."

But probably we would need another step, something like a wrapper... Dunno..

 

I'm starting thinking this summer (ie, when i have plenty of free time) i could resurrect my old 9250(and windows xp :/) and see there what variables i'm missing

 

we'll see

ps. technical reading here

 


 

Sent 28 January 2014 - 02:18 PM

Ok sorry for the delay.

School is back again and so on..

Anyway, when I'll finish the other stuff i'm working on I'll focus on this (ETA ..1 month?)

For now I just wanted to report I found this tool which let you spoof graphics card vendor

Rivatruner should made your day if you an nvidia gpu too

 

If I'm not wrong Radeon 8500 should be our target GPU (since it was that with more truform capabilities, please check)

According to pcidatabase.com, AMD's vendor id is 0x1002, while the specific gpu one is 0x514C or 0x516C

Let me know any your other progress ;)

Cheers

 


 

Sent 25 February 2014 - 03:48 PM

Would you mind moving this private chat to your original public thread?

I mean, for future references

 

I count to finish my endless A3D odyssey in a week or so, and then I could even start looking into this

If this doesn't mind you of course, otherwise I could do this when I'll found time

Edited by Expack3
Link to comment
Share on other sites

  • 2 months later...

So, I'm slowly resuming this work

Thanks to a video, I could find other truforum implementations.

It took a little to find out that opengl mod last truform enabled version though, since with catalyst 5.9 (september 2005) ATI removed tessellation support altogether and practically every community effort on truform ceased

 

I then downloaded catalyst 5.8 (thanks Guru3D) which are the latest working drivers.. Who knows, maybe there will be something interesting inside

 

EDIT: I just wanted to point out, TruForm setting seems to be handled by HKLM\System\CurrentControlSet\Control\Video\{random}\0000\TruformMode and HKLM\SYSTEM\CurrentControlSet\Control\Video\{3CF2F324-A341-473C-8DF4-2215895896AC}\0000\OpenGL\OGLTruformMode

Edited by Mirh
I was deleting old gibberish and I wanted to write down last things
Link to comment
Share on other sites

So, I have another bunch of news

 

The greatest one is that actually nvidia cards could really support this kind of feature. 

This was then removed in late 2001 somewhere before mid-october 2001 in forceware 21.81, since although software mode was perfectly working, it was killing their performance in the games which made use of truform

"When a [Nvidia] card doesn't support N-Patches on a hardware level the API triesd to [software] emulate them using RT-Patches."

 

So you could use that with serious sam (where I finally found the damn truform/n-patches setting) and morrowind

In this regard I found an additional website which talks of its FPS optimizer

The option (in SS) is grayed out of course, but now I know what I should first look

 

Then, I found lots of tech demos/demos (brief description)

 

Last, this should be an extension to the wikipedia games list. Counterstrike should require a patch, and it seems even half life 2 should have supported tessellation

 

Random. info. here.

 

Now, I think I should have probed almost all the net, and I could start the real affair

Edited by Mirh
added newer link and precised date and NVIDIA
Link to comment
Share on other sites

Ok, so.. monitoring game calls had no results..

Now, I was trying to look inside drivers.. but the dll are all compressed/encrypted.. just use expand -r *

 

But thankfully I found out my radeon 7500LE uses the same drivers!

So.... i'll just have to dust off it

Edited by Mirh
updated dll extraction
Link to comment
Share on other sites

Here we are again (and now I even have an avatar :p)

So, I tried 5.8 drivers which indeed still had truform support, but with my 7500LE this is grayed out.. Software emulation was removed from ati drivers somewhere between technology presentation (may 2001) and november~december of the same year then

Truform was never implemented in 7500... there just were games which had an "embedded emulator". See #7

After some extreme digging I think I could have found one (if not the latest?) drivers with intact software truform (thanks hexus.net!)
But I'll have better to check this

As I said, truform was never there with radeon 7x00 series


Another thing to note is that goldsrc games had software truform "patched" somewhen between december 2001 and august 2002
Last (certainly?) working CS version should be 1.3, whilst latest HL should be (probably) 1.1.0.8


Eventually, I even found a kind of official list of games and a cool serious sam (1st encounter) truform review

 

 

EDIT: there are reports which claims only radlinker would effectively allow to enable truform [from catalyst 5.5 to 5.8]

Edited by Mirh
corrected assumption && added further discovery
Link to comment
Share on other sites

Ok.. I spent the entire day trying to figure out how to make dolphin demo start [mirror]

In my opinion all effort should be focused there, since it explicitly requires truform and just truform, no RT patches, nothing else. Then it's also free and it's a really light benchmark

Even though it was a Radeon 8500 demonstration, it is perfectly capable to run on software implementations, provided they expose the required functions

If we would be able to make this run, everything else will be fixed too I'm sure

 

It must be noted then that some games or demos had something like an hardcoded truform subset which was completely software and handled by the application graphical engine itself (w/o nothing requested to the operating system or any drivers action). I couldn't really get out some other reasons to explain why there's so many mess like here. Newest games (with proper hardware requirement) or further patches (like in serious sam case or as happened for goldsrc games in last post) had to really confuse people of that time

 

These are probably the kind of things which led me to believe my 7500LE could unflinchingly and flawlessly do it.... Instead I tried every freaking driver released between september 2001 (card wasn't even in the stores then!) and february 2002.. without any result -links are ordered by date btw-

And if I were less lazy I could even realize before that, as per 8500 demos release notes, first completely truform working driver version was 7.63.01 (aka 6.13.10.3286 on WXP) = 14 november 2001 -.-

 

Said this, now it's the even worse news time

First, we should separate directx early tessellation support from opengl early tessellation support

With the former the situation is better, take a look at the -crappy- scheme

 

Drivers ==> [optional drivers-settings] ==>> direct3d (N-Patches/Rectangular & Triangular Patches) ==> application ("truform enabled")

ps: the net is overcrowded of opinions, I couldn't really get to understand if RT-patches are (besides a competitive algorithm) also a kind of n-patches fallback mode (for nvidia graphics cards), or instead games simply supported nvidia cards because they supported both HOS methods (this later hypothesis is easier to think, but it's harder to believe)

 

Now, in this case we only miss the driver support for high order surfaces d3ddevcaps -even though it had to be a mandatory feature for DX8.0 compliance-

-is DDSCAPS2_NPATCHES perhaps used in non-8500 software emulating cards??-

I see we could have some options for this (this list doesn't claim to be exhaustive):

1) Figuring out how to make our own DX8 general software renderer:

a) By making somewhat use of the good old WineD3D on Windows

b) By using Direct3D reference device (and as somewhat suggested here)

2) Take corresponding modern ati/nvidia dlls and literally throwing/hacking D3DDEVCAPS_NPATCHES (or at least D3DDEVCAPS_RTPATCHES) in. Difficultty? Probably abnormal

 

But with OpenGL we have a different situation (even though previously mentioned serious sam 1.04 complete opengl truform emulation may be worth an additional look)

 

Drivers ==> [optional drivers-settings] ==>> opengl (GL_ATI_pn_triangles) ==> application ("truform enabled")

 

As you may notice, here, besides drivers issues, we would have even an OGL problem..

I'll better explain: windows has no sort of proper opengl implementation. Microsoft, in all its kindness, decided vanilla windows had to be only OGL 1.1 compliant. So to reach decency, it's usually up to the graphics cards manufacturer to provide updated OGL versions and drivers

And now we should take their place

Writing an implementation for an opengl extension is nothing really impossible certainly (I'm sure people enjoy this kind of work on mesa3d.org for example) but a skillful developer is required

-nvidia had it's own HOS ogl extension but afaik nobody has ever used it-

 

Some nice tool to check your actual support for one of these "standards" are DXcapsviewer (included with last DX SDK, check HAL=> devcaps) or gpu caps viewer respectively for DX and OGL, and KluDX or lavalys's EVEREST for both

 

Said this, I end here with some random chatter as always

-R8500 supported rt-patches too

-Registry hacks exist[ed?]

-I don't know how and when, but nvidia rt-patches support was added back in drivers [could be this?] (I had even another reference but I can't found it anymore)

-Nvidia describes here its superior but never used technology

-This guy it's a sort of graphics driver monster (check its curriculum). Also, its website has lots of cool demo. One day it may be worth to listen to him

-Dx8.1 actually introduced some other tessellation techniques

-This demo run very good. Everything works but tessellation though

-Matrox Parhelia supported n-patches, in silicon and even with DX9

-FIFA 2002 eventually supported n-patches too

 

That was all... good night

Link to comment
Share on other sites

Guest

Very thorough research, Mirth! Here are some thoughts I'd like to add to yours.

 

First, if a willing developer could be found, two additional options for re-adding TruForm support could be done:

  1. Translate TruForm calls Wine-style to modern DX11 tessellation calls. While this would be far faster than emulating TruForm in software, this would require access to documentation explaining the calls TruForm makes and expects to receive back, tricking the OS into thinking the device supports D3DDEVCAPS2_ADAPTIVETESSNPATCH (and, optionally, D3DDEVCAPS2_ADAPTIVETESSRTPATCH), etc. (I believe TruForm documentation used to exist, but I can't find it anymore.)
  2. Similar to #1, but instead of doing Wine-style translation, perform TruForm-like tessellation in software. Thankfully, the NPatchViewer you linked to previously comes with a source code example of how to do this!

Second, instead of using the abominably-slow D3D reference device (see this image of it performing N-Patches tessellation), one could use the Windows Advanced Rasterization Platform (WARP) reference device instead. While it would limit the solution to Windows 7 and higher, this beast is capable of running Crysis (albeit at the lowest settings and at 800x600) in DX10 mode with double-digit framerates! That being said, the documentation is unclear on whether it supports D3DDEVCAPS2_ADAPTIVETESSNPATCH, so it may not be viable.

 

Thirdly, I was able to determine that the N-Patch demo you linked to uses DX9 - problem is, it doesn't like the version of WineD3D for Windows I have uploaded to the site. I tried the official version of WineD3D for Windows, which seemed to work - I couldn't really tell - but didn't allow my card to do N-Patches tessellation.

Link to comment
Share on other sites

Holy sheep! I had read reference device was slow.. but I didn't think it was this slow. I mean, I thought that was things of the past, when you had single core CPUs ... :/

Anyway, truform was emulated with vertex shader [afaik] on non-8500 graphics cards. So, it should be one of the features you could say to the reference device to emulate (and just this hopefully)

 

Windows Advanced Rasterization Platform works only on Windows 7 and higher, but even support only DirectX10 and higher, so it is not something usable

 

Besides, Alex Vlachos worked at ATi as Software Engineer and he developed itself N-Patches (absolutely not nuts!)

I would try to contact him myself, if I wasn't already busy with other things these days

 

Then I even found other people trying to patch back truform

 

Last, but not least here's all the documentation I could find.

btw, radeon HD2xxx tessellation could be somewhat.. interesting, I don't really know (don't forget to check references)

Link to comment
Share on other sites

  • 6 months later...

Just a quick remainder.

I got TES: Morrowind yesterday and coincidentally it's one of those games with broad TRUFORM support (or at least FPS optimizer make me believe this)

Anyway, -at least in this game- it seems that from catalyst 3.3 to catalyst 3.9 truform was broken in the catalyst drivers. 3.10 (18 December 2003) should have solved this issue.

 

More specifically, everything but Radeon 8500, which is probably linked to the fact that it was the only GPU with 100% hardware implementation

Link to comment
Share on other sites

  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Found PCGamingWiki useful? Please consider making a Donation or visiting our Patreon.
  • Who's Online   2 Members, 0 Anonymous, 429 Guests (See full list)

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Forum Statistics

    1.8k
    Total Topics
    9.2k
    Total Posts
×
×
  • Create New...