yashsingh1/xdaforums huggingface dataset:
[Touch Cruise ROM Development] bally3:
As I've said numerous times here, please do not assume this is going to magically transform your rom - its a work in progress and if you are unable to search these forums to find the multitude of links to these files then you should probably wait until we have a working solution.

Sorry - but thats my 2p!
[Touch Cruise ROM Development] NikMel:
Flashing to my testing rom now and will tell you about the progress:)
[Touch Cruise ROM Development] NeoS:
As far as i know, all 3D apps work on my rom. I'm testing them as I type.

Billboard.exe (tested, trees are anti-aliased)

Fractal.exe (tested)

Lighting.exe (Tested, doesn't show lighting on background, but works, fast)

lights.exe (tested)

Matrices.exe (tested, REALLY FAST)

meshes.exe (tested, Works fast, tiger is anti-aliased)

Text3d.exe (tested, blurry and unreadable text)

Texture.exe (tested, Fast, like lights.exe)

D3DMDemo.exe (tested, really weird tripping screen like an off-sync TV channel)

hope it helps a bit.
[Touch Cruise ROM Development] NeoS:
Word. Until there is a stable cab, no links. Gotcha.

Oh and NikMel, could you send me your disptools.dll please?
[Touch Cruise ROM Development] aeroman:
can you give me the exact link for the HTC CA Driver.

On the main page, many drivers? With manila package or without?

Or what drivers should I take for the HTC Touch Cruise with Sysrius :confused:
[Touch Cruise ROM Development] dwaradzyn:
It is really simple to find it. Please do not ask for that again. It still does not work fully on Polaris at the moment, so you should do some searching before trying to use it. If you cannot find HTCCA cab you have not done your work well.
[Touch Cruise ROM Development] aeroman:
ok i found :)

http://www.htcclassaction.org/driverprogress.php#update_20080819_1
[Touch Cruise ROM Development] bally3:
Apparently this Kaiser build worked out of the box "HTC 5.2.19212" (with the htcclass driver that is!)

anyone able to rip it open and grab the disptools.dll and the ddi.dll files .. or is that what you're using NiKMel?
[Touch Cruise ROM Development] NikMel:
@bally3: I did that in my latest ROM
[Touch Cruise ROM Development] aeroman:
It works by me. :)

make before install a hardreset!

and then copy the dll's reset,

install the driver

reset and have fun

TEST on Polaris(TC) incl. UDK Syrius
[Touch Cruise ROM Development] bally3:
ok.. scrap that idea then! :P
[Touch Cruise ROM Development] NeoS:
See? i told you guys it would work. ;)

Now, does anyone have the disptools.dll from either the ROM by NikMel or the Kaiser ROM?
[Touch Cruise ROM Development] bally3:
ok.. so we have some ddi.dll files post 3.13 and before 3.28 to find.. and also I suspect the disptools.dll to go with them.

NikMel, any luck with the 3d apps (billboard etc)?
[Touch Cruise ROM Development] radem205:
Is it worth it to try, or are the performance not significant better?
[Touch Cruise ROM Development] NikMel:
Where can I get them?
[Touch Cruise ROM Development] bally3:
Cant copy disptools.dll its telling me it cant copy rom files. :confused:

Anyway, neoS2007 did you say manilla 3d was working for you but jerky?
[Touch Cruise ROM Development] aeroman:
OK when i run

- Lights.exe runs ok, i must reset to go out.

- Triangle Runs is ok "" ""

- Text3D runs, but text blurry? :confused:

- D3D Demo nut runs (on Screen stopped make wrong) :confused:
[Touch Cruise ROM Development] NeoS:
Did you take a look at my youtube video? it shows manilla working with 3D hardware. it just needs to get stable. (without the scrolling)
[Touch Cruise ROM Development] bally3:
Dammit aeroman will you PLEASE STOP posting on here!! :mad:

** Can a mod please remove these postings? its hard enough to communicate with people trying to help without these type of posts.
[Touch Cruise ROM Development] dwaradzyn:
The performance is a little better than software "omnia" driver. Not everything is working at the moment (not very usable) so beware that it can hang your device. But yes, it seems that the rendering is done by hardware. If you are geek enough you should be happy with the results as I am :)
[Touch Cruise ROM Development] bally3:
Looking hard to find them - I think we may need to go the rom route with opening up some nbh files. That build I gave earlier... is that the one you used?
[Touch Cruise ROM Development] NeoS:
I'm dumping Nikmel's rom to find the disptools.dll. Will post my findings once i have them. i think i may have to hard reset before adding it though... :S

This is the imageinfo.txt added with the .dll:

Module name: disptools.dll
e32_objcnt: 00000005
e32_imageflags: 0000212E
e32_entryrva: 0001D238
e32_vbase: 023F1000
e32_subsysmajor: 00000005
e32_subsysminor: 00000002
e32_stackmax: 00010000
e32_vsize: 00054000
e32_sect14rva: 00000000
e32_sect14size: 00000000
e32_timestamp: 49EB1FF3
e32_unit[0].rva: 0001E310
e32_unit[0].size: 000003C1
e32_unit[1].rva: 0001DE78
e32_unit[1].size: 000000A0
e32_unit[2].rva: 00000000
e32_unit[2].size: 00000000
e32_unit[3].rva: 00042000
e32_unit[3].size: 00000A58
e32_unit[4].rva: 00000000
e32_unit[4].size: 00000000
e32_unit[5].rva: 00054000
e32_unit[5].size: 00001000
e32_unit[6].rva: 00001000
e32_unit[6].size: 0000001C
e32_unit[7].rva: 00000000
e32_unit[7].size: 00000000
e32_unit[8].rva: 00000000
e32_unit[8].size: 00000000
e32_subsys: 00000009

o32[0].o32_vsize: 0001D6D1
o32[0].o32_rva: 00001000
o32[0].o32_psize: 0001D6D4
o32[0].o32_dataptr: 20000203
o32[0].o32_realaddr: 023F2000
o32[0].o32_flags: 60002020

o32[1].o32_vsize: 00022100
o32[1].o32_rva: 0001F000
o32[1].o32_psize: 00000800
o32[1].o32_dataptr: 00000000
o32[1].o32_realaddr: 01E4D000
o32[1].o32_flags: C0002040

o32[2].o32_vsize: 00000A58
o32[2].o32_rva: 00042000
o32[2].o32_psize: 00000A58
o32[2].o32_dataptr: 00000000
o32[2].o32_realaddr: 02433000
o32[2].o32_flags: 40002040

o32[3].o32_vsize: 00010300
o32[3].o32_rva: 00043000
o32[3].o32_psize: 00010300
o32[3].o32_dataptr: 00000000
o32[3].o32_realaddr: 02434000
o32[3].o32_flags: D0002040

o32[4].o32_vsize: 00001000
o32[4].o32_rva: 00054000
o32[4].o32_psize: 0000039C
o32[4].o32_dataptr: 10000000
o32[4].o32_realaddr: 00000000
o32[4].o32_flags: 42002042
[Touch Cruise ROM Development] NeoS:
I inserted the disptools.dll. I'm noticing a speed increase with manilla 3D, but still scrolling. We'll have to look further than just one .dll.

secondly, the device reboots after a few seconds of running manilla.
[Touch Cruise ROM Development] bally3:
Check out this forum and its thread... seems like they working on same issue!

http://forum.ppcgeeks.com/showthread.php?t=29754&page=27
[Touch Cruise ROM Development] NeoS:
Any other .dll's we could need? I have all files dumped from NikMels' ROM. You name it, i got it.

Another thing: now i have the same issue with the blank screen; it wont come up. So that's the disptools.dll that's responsible for this issue.
[Touch Cruise ROM Development] bally3:
"Everything went according to HTCClassAction’s instructions. Manilla does not work on the Kaiser and the screen rendering was really slow"

Read this on a site.. looks like we've made more progress than the kaiser guys did!
[Touch Cruise ROM Development] soterman:
Have you seen this?

http://www.youtube.com/watch?v=Sw9m9RMhlxc&feature=related

Maybe the poster of the video can be of help.

Keep up the good work, people!
[Touch Cruise ROM Development] NeoS:
lol. cool.

Some more info:

I also added nikmels' versions of:

d3dm.dll

ddraw.dll

netcfagl3_5.dll

netcfd3dm3_5.dll

GWES.exe

It seems to slow manilla down! So now we know that some of these files are used in the process.

By the way, what are they keys for Hard-resetting the Polaris? In case i can't boot anymore.
[Touch Cruise ROM Development] bally3:
Have a read of this:

http://blogs.msdn.com/markprenticems/archive/2006/03/10/547983.aspx
[Touch Cruise ROM Development] bally3:
Hold down windows and start key (bottom two) and hit soft reset hole.:rolleyes:
[Touch Cruise ROM Development] bally3:
wow!

if thats software rendered then its doing a very good job!

SuperJMN - looks like spanish to me .. you got a youtube account.. could you give him a go and see what he knows? maybe get him on here if he can speak english :)
[Touch Cruise ROM Development] NeoS:
Ok. hard reset again. Let's see. This time, i won't add disptools.dll, since it holds the blanks screen. Instead i'll just add the netcf dll's together with the other dll's i used to add.

Bally3, any progress regarding registry tweaks?
[Touch Cruise ROM Development] DMAND:
Looks more like TL than TouchFLO3D, correct me i Im wrong
[Touch Cruise ROM Development] NeoS:
You're wrong. Look at the weather tab. TL doesn't have those fancy graphics. :)
[Touch Cruise ROM Development] NikMel:
This is the latest manilla2D from http://xdaforums.com/showthread.php?t=398173.
[Touch Cruise ROM Development] bally3:
Neos2007 - do you have Gapi.dll in there?
[Touch Cruise ROM Development] NeoS:
No, is that needed?
[Touch Cruise ROM Development] bally3:
what about gx.dll?
[Touch Cruise ROM Development] NeoS:
I have it. Want me to add it?
[Touch Cruise ROM Development] bally3:
yes please.. I overwrote mine with an old one. lol!
[Touch Cruise ROM Development] bally3:
Heres the 3D cab if with the Billboards.exe and stuff.

View attachment 114381
[Touch Cruise ROM Development] NeoS:
I added GX.dll too. soft resetting and will install HTC CA drivers. Lights works VERY slow without the CA drivers, and i'm guessing it's using software rendering.

have you ever thought about the CA drivers for a second? Maybe the weird scrolling screen is caused by something added by them. Maybe someone from the original CA driver thread can help us with that?
[Touch Cruise ROM Development] bally3:
darn! I been so busy on here I hadnt seen it.. he really had me over for a moment! LOL :p
[Touch Cruise ROM Development] NikMel:
I can remember that they were having this **** too ayt the begining
[Touch Cruise ROM Development] NeoS:
Ok, here's what i think:

The drivers work. BUT: something in the CA driver causes the glitches.

Now, if we took the .cab apart, we can install the .dll's one by one, and see from where it starts to work, or glitch. Then address the .dll that causes it.

i'll make a list of dll's needed.
[Touch Cruise ROM Development] NikMel:
Can you see there what I do here?:D

I'm doin that now:)
[Touch Cruise ROM Development] NeoS:
dll's in CA drivers.cab

This is what the cab installs:

wce_rex_dm.dll

ahi2dati.dll

ahi2dati_dm.dll

clkregim.dll

d3dm_ati.dll

libgles_cm.dll

libgles_cm_ks.dll

msm_clk.dll

TrsTai_extensioF.dll

wce_reF.dll

And an edit to the registry: HKLM\System\D3Dm\Drivers localhook = d3dm_ati.dll

Let's see if we can do it ourselves, adding .dll's one by one and test.
[Touch Cruise ROM Development] bally3:
How about uploading it too!

Vis a Vis my post... :rolleyes:
[Touch Cruise ROM Development] NeoS:
new dll's

added a new zip. I also added the not stable dll's in a seperate folder.

DON'T USE THEM!

Let's compare the CA dll's to the ones we currently have and make a selection of the newest ones.
[Touch Cruise ROM Development] SuperJMN:
Boys, today I sent messages to every developer of the CA Kaiser drivers. Still no answers. I also sent a message to the creator of the video mentioned before although it's not Touch FLO 3D, lol.

I will stay tuned to inform you should there be any news.
[Touch Cruise ROM Development] bally3:
You guys having a good time there.. ?:P

I've been reading and reading and reading.. I've got Gapi, atifixes, remotehooks coming out of my ear.. :confused:
[Touch Cruise ROM Development] NeoS:
Thanks SuperJMN. Keep us informed.

Minor status update: i managed to do exactly what the HTC CA drivers cab does. And it gave me the scrolling 3D screens in Lights.exe. interesting extra: none of the files in the CA cab are present in the current rom OR the rom supplied by NikMel...

Can someone supply me with these files from Diamond or Raphael:

ahi2dati_dm.dll

ahi2dati.dll

Secondly, what does msm_clk.dll do?
[Touch Cruise ROM Development] bally3:
Its the dll checker
[Touch Cruise ROM Development] bally3:
neos2007, can you export your registry settings for:

hklm/system/D3D

and hklm/system/DDraw

please?
[Touch Cruise ROM Development] NeoS:
Very interesting find!

I deleted the msm_clk.dll from my windows dir. and suddenly lights wouldn;t run anymore, saying there's no 3D hardware! This file enable the 3D hardware! I copied it back, and 3D worked again.

oh and about the regdump, how do i do that?
[Touch Cruise ROM Development] SuperJMN:
Hmm, "MSM" = the Qualcomm chip. "CLK", I think it stands for "clock". Could it control some clock component of the chip? Maybe the graphic processor clock...?

It can be a key file, then.
[Touch Cruise ROM Development] NeoS:
Probably. Well, i'm off. Pretty exhausted. Reasearch continues tomorrow. Hope you guys find something interesting while i'm asleep.
[Touch Cruise ROM Development] SuperJMN:
Good night everybody.

See you tomorrow!
[Touch Cruise ROM Development] asa51n:
I've been fooling around with all of the dll and reg edits, there was one error i had with the lights 3d demo from HTC CA. it mentioned the core.dll file. What does the core.dll file have to do with the graphics?
[Touch Cruise ROM Development] bloedfisch:
Hello!

the ahi2dati.dll file is from the diamond. the ahi2dati_dm.dll file doesn´t exist. maybe the raphael has it. the file is hidden, because its a system file.

here it is:
[Touch Cruise ROM Development] NeoS:
Thanks for the .dll Bloedfisch. It's older and bigger than the ahi2dati.dll i currently have. Let's see what it can do.

edit: After copying it the lights.exe didn't give any messages, but it won't run either. The meshes.exe did return a message saying could not initialise D3D and it needed to close.

I guess this is one of they keyfiles to 3D rendering. It also seems to have connections with these files:

msm_clk.dll

coredll.dll

ddi.dll

ahi2dati_dm.dll

My device doesn't have a coredll.dll. So how does it work then?
[Touch Cruise ROM Development] bally3:
Morning everyone! :)

Maybe its not in the same directory? See if you can use Total Commander to search for it.
[Touch Cruise ROM Development] bally3:
Read this article:

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=712331&SiteID=1
[Touch Cruise ROM Development] NeoS:
Ah. I guess it would be abit out of the way to do things with coredll.dll.

The hardware 3D works, we only need to get it stable. So, the files added by the CA cab must trigger it somewhere combined with the new ddi.dll.

I'ma grab a cup o coffee... :confused:
[Touch Cruise ROM Development] NeoS:
Hmm, i think i may have it here. I just need some help from someone who knows what ScreenUpdateByCopy and ScreenUpdateByFlip does. I'm guessing that the values in the ddi.dll are wrong and it's causing the flipping screen issue.
[Touch Cruise ROM Development] NeoS:
Found something on wiki:

Double Buffering in Computer Graphics

In computer graphics, double buffering (sometimes called ping-pong buffering) is a technique used to reduce or remove visible artifacts from the drawing process. It may be implemented in either software or hardware.

Computer monitors constantly redraw the visible video page (at around 60 times a second), and so it is difficult to make changes to the video page (such as creation or movement of complex objects onscreen) without the monitor showing the results before the graphics operation is complete. This results in ugly artifacts such as flickering and tearing.

A software implementation of double buffering uses a video page stored in system RAM that all drawing operations are written to. When a drawing operation is considered complete, the whole page, or a portion of it, is copied into the video RAM (VRAM) in one operation. This is generally synchronised so that copy operation is ahead of the monitor's raster beam so that ideally (if the copy is faster than the video beam) artifacts are avoided. This software method is not always flawless, and has a higher overhead than the hardware method. Most notably, double buffering necessarily requires more video memory and CPU time than single buffering because of the video memory allocated for the buffer itself and the syncronisation copy respectively.

The hardware method is also known as page flipping. In this method, two graphics pages in VRAM are used. At any one time, one page is actively being displayed by the monitor, while the other, background page is being drawn. When drawing is complete, the roles of the two pages are switched, so that the previously shown page is now being modified, and the previously drawn page is now being shown. The page-flip is typically accomplished by modifying the value of a pointer to the beginning of the display data in the video memory.

The hardware method guarantees artifacts will not be seen as long as the pages are switched over during the monitor's vertical blank period when no video data is being drawn. This method requires twice the amount of VRAM that is required for a single video page. The currently active and visible buffer is called the front buffer, while the background page is called the back buffer.
[Touch Cruise ROM Development] rogro82:
Take a look at the following registry key:

HKLM \ Drivers \ Display \ Active \ Built In LCD

The screen display driver is mentioned here:

ddi.dll

But it also has a key named BufferMode from what i have read at microsoft

documents i think this can be used to set the back buffering mode.
[Touch Cruise ROM Development] NikMel:
Hello all:)

In this http://msdn.microsoft.com/en-us/library/aa925961.aspx m$ article it explaines what it is buffermode. Did you see that?
[Touch Cruise ROM Development] rogro82:
thats the one i meant ;)
[Touch Cruise ROM Development] NeoS:
I located this regkey:

HKEY_LOCAL_MACHINE\SYSTEM\GWE\PORepaint=0

I'll try various modes, starting with 1:

"GWES should save and restore the bits.

GWES saves the primary display surface, which resides in video memory, in system memory that is maintained during suspend operation. After resuming, the primary surface is restored.

Because other surfaces can be allocated in video memory, blit operations are faster, even though the primary surface is restored.

Other surfaces, such as bitmaps and icons, might contain useless data when the screen is refreshed. To resolve this, set PORepaint equal to DWORD:3."

HKEY_LOCAL_MACHINE\SYSTEM\GWE\PORepaint=1

Doesn't help.

step 2 (HKEY_LOCAL_MACHINE\SYSTEM\GWE\PORepaint=2):

"GWES should invalidate and repaint.

GWES assumes that all display surfaces reside in system memory, exceptfor the primary surface, which can be in video memory.

After resuming, GWES searches the list of windows and invalidates each.

Because the surfaces are assumed to be in system memory or at least in some form of nonvolatile storage, the invalidation process restores the video RAM contents with a new image.

This process can be slow."

Didn't help either.

Step 3 (HKEY_LOCAL_MACHINE\SYSTEM\GWE\PORepaint=3):

"GWES invokes DRVESC_SAVEVIDEOMEM at suspend time.

GWES and the driver must save video memory. This option allows the driver to save other nonprimary video surface data, which resides in video RAM, to some other location.

After suspending, GWES makes a DrvEscape call to retrieve the display driver to save all video surfaces, including the primary surface, into a nonvolatile location (for example, system RAM).

After resuming, GWES makes another DrvEscape call to the display driver to restore the contents of the video RAM.

The mechanism for storing and the storage location are the decisions of the display driver. GWES does not save the surface data directly."

Another no go.

Will try something with the HKEY_LOCAL_MACHINE\Drivers\Display\Active buffer dwords now.
[Touch Cruise ROM Development] NikMel:
when the velue is 2 then there is a performance gain
[Touch Cruise ROM Development] halorin:
Pretty incredible stuff you guys are doing. I wish you the best of luck. :)
[Touch Cruise ROM Development] NeoS:
Gain? the document states it "might be slow".

If i interpret it right, it copies video memory to system memory and keeps it there until video memory needs it again.
[Touch Cruise ROM Development] NikMel:
yes true:)

I will make my rom available that I use every day for my work and home and try it with that value.

When the value is set to 1 (this is the default value in this rom) the d3dmdemo.exe runs on avrg. 3,2 fps and if I change it to 2 then it runs on avrg. 3,8 fps.
[Touch Cruise ROM Development] SuperJMN:
That's exactly why I encouragely asked for the ROM :) Those so good results might lead us to the right bunch of files.

I don't know how much time we have to wait until a real solution is developed, but I feel that we are near... what do you think? Maybe somebody is already working in this yet, but only in the shadow... for the moment.

Who knows?
[Touch Cruise ROM Development] NikMel:
here you go http://xdaforums.com/showthread.php?t=426613
[Touch Cruise ROM Development] bally3:
(Posted in the "[NEW] WM6.1 ROM ==> video driver from O2 included just for ==>TESTING!!!<== " thread.

So from your testing SuperJMN, it looks like we have another WM6.0 ddi.dll with some tweaks as used by the other cooks... what do you think?
[Touch Cruise ROM Development] NikMel:
bally3,

My rom is a WM6.1 not WM6.0.

I will try to make it fully working.
[Touch Cruise ROM Development] bally3:
I'm hoping you are right.. I think we have come to a fork in the road as they say, and I think there are a number of interesting paths we should follow:

(I'm going to cut these posts into smaller easier to read/write posts as they are getting tediously long - even for me! :))
[Touch Cruise ROM Development] bally3:
1) Search for information for the official WM6.1 release - I hear there have been european releases from which the roms we are looking at and using are created. The key here is whether the ddi.dll file in all these roms are WM6.1 3.28 or later or just the old 6.0 dll files with tweaks - Nikmels rom would be a good start, what is the version of the file in that rom SuperJMN? I've already confirmed that swtos' rom contains an older ddi file. Anyone with he R0 want to confirm the ddi in UDK's? I suspect they are all the same version or similar.
[Touch Cruise ROM Development] bally3:
2) Find a 3.28 ddi.dll and research what dependencies there are, what regedits need to be made, is it that simple? My own thoughts are this: If it is possible to do this, the solution would only work with a 6.1 rom cooked with whatever files/registry additions required. Just something I picked up on one of the threads, I think it was the ddi landscape thread by Garmin who said something to that effect.
[Touch Cruise ROM Development] bally3:
That isnt in question Nikmel, I believe it is a 6.1 rom but is the ddi.dll a 3.28 or later?

And by the way, thank you for sharing the rom! I'm sure it will be improved and the fact that the performance is already improved on the 6.0, we should be grateful - at this moment in time its the only REAL improvements we have seen on our dear Polaris :)
[Touch Cruise ROM Development] dwaradzyn:
I can confirm that udK Syrius R0 has ddi.dll version 3.13.0.0.
[Touch Cruise ROM Development] NikMel:
DLL

This the dll that I use
[Touch Cruise ROM Development] bally3:
Thanks dwaradzyn and you too nikmel.

It looks like all three of the current roms (wwe) were cooked with the same file.

Now the question is: What was the latest 6.0 ddi.dll version in the Polaris and in parallel what versions were the kaiser ddi files in both 6.0 and 6.1?

It might be that the Polaris had earlier version numbers so the "3.28 or later" statement does not apply to the Polaris, which would then lead us back to the first question:

Why doesnt the HtcClassAction.org driver work on the Polaris?
[Touch Cruise ROM Development] NikMel:
It works too!

Take a look to the attached files
[Touch Cruise ROM Development] bally3:
Did you also cook this rom from the german 6.1 release Nikmel?
[Touch Cruise ROM Development] NikMel:
Yes!

The drivers coming out of that german rom