Helix Lua Scripts
  1 / 2    
[quote="DHR"]Yep those streaks are normal....with the completely blurred screen, cycle through PS until the blur is gone. Mark that PS (write the hash somewhere) and copy that PS untouch in the ShaderOverride\PixelShaders...be sure the PS is the one with the hash you write. Maybe you have to use another lua script...i attach 9 lua script, try one by one. [url]https://s3.amazonaws.com/dhr/LUA_OPTIONS.zip[/url][/quote] The above is quoted from [url=https://forums.geforce.com/default/topic/912222/3d-vision/-quot-the-deadly-tower-of-monsters-quot-in-3d-/post/4789899/#4789899]here[/url] @DHR or anyone 1. Do these lua scripts only work with UE3 games? 2. Does just using the lua script by itself, fix anything? Or do you have to cycle and dump shaders, then re-name and put them in the shaderoverride folder before it fixes them. 3. Does the lua script need an entry in the dx9settings.ini to work or does simply dropping it in by the dx9.dll work? 4. What do the luascripts work on? lights, shadows, etc... 5. Do the lua scripts make shadows mono? I read that shadows shouldn't be stereoized? 6. Do the lua scripts do any depth correction 7. Do the lua scripts stereoize mono things like UI, huds, bloom, reflections? 8. Does the lua script work on all level of shadows, or must the game be set to low? 9. You said there are 9 different lua scripts, in the zip file, there are only 8 :( 10. In the zip file there are only luascripts for Pixel Shaders. How many different versions are there for Vertex Pixels and where can they be found?
DHR said:Yep those streaks are normal....with the completely blurred screen, cycle through PS until the blur is gone. Mark that PS (write the hash somewhere) and copy that PS untouch in the ShaderOverride\PixelShaders...be sure the PS is the one with the hash you write.

Maybe you have to use another lua script...i attach 9 lua script, try one by one.

https://s3.amazonaws.com/dhr/LUA_OPTIONS.zip


The above is quoted from here

@DHR or anyone

1. Do these lua scripts only work with UE3 games?

2. Does just using the lua script by itself, fix anything? Or do you have to cycle and dump shaders, then re-name and put them in the shaderoverride folder before it fixes them.

3. Does the lua script need an entry in the dx9settings.ini to work or does simply dropping it in by the dx9.dll work?

4. What do the luascripts work on? lights, shadows, etc...

5. Do the lua scripts make shadows mono? I read that shadows shouldn't be stereoized?

6. Do the lua scripts do any depth correction

7. Do the lua scripts stereoize mono things like UI, huds, bloom, reflections?

8. Does the lua script work on all level of shadows, or must the game be set to low?

9. You said there are 9 different lua scripts, in the zip file, there are only 8 :(

10. In the zip file there are only luascripts for Pixel Shaders. How many different versions are there for Vertex Pixels and where can they be found?

#1
Posted 06/18/2017 08:34 PM   
I saw where Helix and Mike_ar69 discussed his luascript on the blog, in the Mars War logs fix http://helixmod.blogspot.com/2013/04/mars-war-logs-3d-vision-fix.html But I don't really understand it.
I saw where Helix and Mike_ar69 discussed his luascript on the blog, in the Mars War logs fix


http://helixmod.blogspot.com/2013/04/mars-war-logs-3d-vision-fix.html


But I don't really understand it.

#2
Posted 06/18/2017 08:38 PM   
First i going to anwser the points: 1) yes 2) Fix a lot of stuff, but sometimes you grab some shader that don't need fixing, so you need to hunt them and use the unfixed ones. 3) Yes, need a couple of entries...in the .zip there are already used. 4) Basically: shadows, lights, reflections and halos effects 5) Fix shadows....shadows normally in UE3 are already 2D. 6) If you ask about HUD or crosshair...nopes! 7) No 8) Fix any settings, because is an online fix.....not offline batch 9) Maybe.. is a mistake from my side 10) If i remember correcly, onyl "Mars wars logs" The Lua fix is an online feature used in helix dll...it's an amazing tool!! basically do the same thing that TRIDEF do...it's an online fixing feature. In 3dmigoto we always use an offline approach. In Outlast 2 i try to use the Lua from "Bioshock infinite" with the help of bo3b (always a offline approach), but not sucess, the patterns was all different....so i have to solve all the patterns from scratch. Outlast 2 use a modded version of UE3....Maybe "Get Even" works with the offline version of the Lua script made by bo3b....
First i going to anwser the points:
1) yes
2) Fix a lot of stuff, but sometimes you grab some shader that don't need fixing, so you need to hunt them and use the unfixed ones.
3) Yes, need a couple of entries...in the .zip there are already used.
4) Basically: shadows, lights, reflections and halos effects
5) Fix shadows....shadows normally in UE3 are already 2D.
6) If you ask about HUD or crosshair...nopes!
7) No
8) Fix any settings, because is an online fix.....not offline batch
9) Maybe.. is a mistake from my side
10) If i remember correcly, onyl "Mars wars logs"

The Lua fix is an online feature used in helix dll...it's an amazing tool!! basically do the same thing that TRIDEF do...it's an online fixing feature. In 3dmigoto we always use an offline approach. In Outlast 2 i try to use the Lua from "Bioshock infinite" with the help of bo3b (always a offline approach), but not sucess, the patterns was all different....so i have to solve all the patterns from scratch. Outlast 2 use a modded version of UE3....Maybe "Get Even" works with the offline version of the Lua script made by bo3b....

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

#3
Posted 06/18/2017 09:20 PM   
[quote="DHR"]3) Yes, need a couple of entrie[/quote] What entries, because I looked at 3 different games using the lua script and they didn't seem to be the same Mars War Logs [General] UseEndScene = false DefPSViewSizeConst = 210 //DumpAll = true GetCurDirAtLoad = true DefSquareSurfaceMode = 2 DefDepthStencilSurfaceMode = 2 DefPSSampler = 14 //SkipSetScissorRect = true DefVSConst1 = 254 PresetsKeysList = 0;1;2; SurfaceCreationModeList = 0; Papo y Yo [General] //dumpall = true ProxyLib = D:\GAMES\Papo & Yo\Binaries\Win32\d3d9fx.dll UseEndScene = false DefPSSampler = 14 SkipSetScissorRect = true PresetsKeysList = 0;1; Zeno Clash [General] dumpall = true GetCurDirAtLoad = true UseEndScene = false OverrideMethod = 0 DefPSSampler = 14 DefVSConst1 = 250 DefVSSampler = 258 //DefDepthStencilSurfaceMode = 2 //DefSquareSurfaceMode = 2 SkipSetScissorRect = true PresetsKeysList = 1;2;3;4;10; I'm guessing DefPSSampler = 14 and UseEndScene = false?
DHR said:3) Yes, need a couple of entrie


What entries, because I looked at 3 different games using the lua script and they didn't seem to be the same

Mars War Logs
[General]
UseEndScene = false
DefPSViewSizeConst = 210
//DumpAll = true
GetCurDirAtLoad = true
DefSquareSurfaceMode = 2
DefDepthStencilSurfaceMode = 2
DefPSSampler = 14
//SkipSetScissorRect = true
DefVSConst1 = 254
PresetsKeysList = 0;1;2;
SurfaceCreationModeList = 0;

Papo y Yo
[General]
//dumpall = true
ProxyLib = D:\GAMES\Papo & Yo\Binaries\Win32\d3d9fx.dll
UseEndScene = false
DefPSSampler = 14
SkipSetScissorRect = true
PresetsKeysList = 0;1;

Zeno Clash
[General]
dumpall = true
GetCurDirAtLoad = true
UseEndScene = false
OverrideMethod = 0
DefPSSampler = 14
DefVSConst1 = 250
DefVSSampler = 258
//DefDepthStencilSurfaceMode = 2
//DefSquareSurfaceMode = 2
SkipSetScissorRect = true
PresetsKeysList = 1;2;3;4;10;

I'm guessing DefPSSampler = 14 and UseEndScene = false?

#4
Posted 06/18/2017 09:37 PM   
Well I had tried all 8 previously and tried all 8 again, adding those 2 lines, no luck. I sure wish the game would let me alt+F4 out, multiple exit prompts FTL :(
Well I had tried all 8 previously and tried all 8 again, adding those 2 lines, no luck.

I sure wish the game would let me alt+F4 out, multiple exit prompts FTL :(

#5
Posted 06/18/2017 11:40 PM   
D-Man11, yes you need the sampler as minimum (DefPSSampler = 14) and also copy the debug or release dll (the last ones). What game are you trying? also you need to grab the 32 or 64 version of the dll, depending of the game.
D-Man11, yes you need the sampler as minimum (DefPSSampler = 14) and also copy the debug or release dll (the last ones).

What game are you trying? also you need to grab the 32 or 64 version of the dll, depending of the game.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

#6
Posted 06/19/2017 11:53 AM   
[quote="D-Man11"]Well I had tried all 8 previously and tried all 8 again, adding those 2 lines, no luck. I sure wish the game would let me alt+F4 out, multiple exit prompts FTL :([/quote]I hate that, Alt+F4 should close anything and everything... if you have AHK installed you can 'rebind' Alt+F4 to WinClose, it usually works in games that Alt+F4 doesn't, if that doesn't do it you can try WinKill instead... if that doesn't do it well it's possible, it just takes a bit more... [code]!F4:: ; Rebind Alt+F4 to WinClose WinClose % "ahk_id " WinExist("A") Return[/code]
D-Man11 said:Well I had tried all 8 previously and tried all 8 again, adding those 2 lines, no luck.

I sure wish the game would let me alt+F4 out, multiple exit prompts FTL :(
I hate that, Alt+F4 should close anything and everything... if you have AHK installed you can 'rebind' Alt+F4 to WinClose, it usually works in games that Alt+F4 doesn't, if that doesn't do it you can try WinKill instead... if that doesn't do it well it's possible, it just takes a bit more...

!F4:: ; Rebind Alt+F4 to WinClose
WinClose % "ahk_id " WinExist("A")
Return
#7
Posted 06/19/2017 03:10 PM   
Interesting, luckily, most games allow it.
Interesting, luckily, most games allow it.

#8
Posted 06/19/2017 04:00 PM   
[quote="DHR"]D-Man11, yes you need the sampler as minimum (DefPSSampler = 14) and also copy the debug or release dll (the last ones). What game are you trying? also you need to grab the 32 or 64 version of the dll, depending of the game.[/quote] I tried quite a few different games that I had on disc and was not having any luck with the Helix debugger. So I thought I'd try something simpler, like a game using the Unreal 3 Engine. I've done the classes and understand how to disable a shader, either by opacity like in the lessons, or by using the method on the blog. I was also able to fix lava in the lesson. But I was hoping that the lua script would fix the issues, because it's primarily self silhouette, self shadow and team mate shadows from what I've seen. I'm using the latest DLL and dumped the shaders, then edited them to eight (letters/numbers) and placed them in the ShaderOverride folder, in the PixelShaders Folder. These folders are in the Binaries folder with theTWFC.exe The game is War for Cybertron, you fixed Fall of Cybertron, it's 32 bit, I'm using the latest debugger. I also see that you fixed all of the shaders by hand in that game, I'm thinking because it was prior to the luascript being available? I'd assume, that the luascript would have worked wit it. Shadows are supposed to render mono, corrrect? Or wihout a stereo offset at least?
DHR said:D-Man11, yes you need the sampler as minimum (DefPSSampler = 14) and also copy the debug or release dll (the last ones).

What game are you trying? also you need to grab the 32 or 64 version of the dll, depending of the game.


I tried quite a few different games that I had on disc and was not having any luck with the Helix debugger. So I thought I'd try something simpler, like a game using the Unreal 3 Engine. I've done the classes and understand how to disable a shader, either by opacity like in the lessons, or by using the method on the blog. I was also able to fix lava in the lesson.

But I was hoping that the lua script would fix the issues, because it's primarily self silhouette, self shadow and team mate shadows from what I've seen. I'm using the latest DLL and dumped the shaders, then edited them to eight (letters/numbers) and placed them in the ShaderOverride folder, in the PixelShaders Folder. These folders are in the Binaries folder with theTWFC.exe

The game is War for Cybertron, you fixed Fall of Cybertron, it's 32 bit, I'm using the latest debugger. I also see that you fixed all of the shaders by hand in that game, I'm thinking because it was prior to the luascript being available? I'd assume, that the luascript would have worked wit it.

Shadows are supposed to render mono, corrrect? Or wihout a stereo offset at least?

#9
Posted 06/19/2017 04:09 PM   
Interesting, it seems UseEndScene = false, might help in a couple of those other games [quote="eqzitara"]It makes the red text show properly in games that don't show. I guess you dont need to worry about it.[/quote] quoted from [url=http://helixmod.blogspot.com/2012/08/guidehow-to-install-helixmod-game-fixes.html]here[/url]
Interesting, it seems UseEndScene = false, might help in a couple of those other games

eqzitara said:It makes the red text show properly in games that don't show.

I guess you dont need to worry about it.


quoted from here

#10
Posted 06/19/2017 04:26 PM   
I dont' remember very well....but probably the fix for "Fall of Cybertron" was made prior the Lua Script....also eqzitara add some shaders later (batch fix)...but is not using the lua script. With "War for Cybertron", try to use the ini, dll and lua file from "Papo & Yo". If that don't work, try with the others Lua file i add in the .ZIP (one by one). If that don't work, probably the version of the engine, is not compatible with those lua files....and need a manual fix.
I dont' remember very well....but probably the fix for "Fall of Cybertron" was made prior the Lua Script....also eqzitara add some shaders later (batch fix)...but is not using the lua script.

With "War for Cybertron", try to use the ini, dll and lua file from "Papo & Yo". If that don't work, try with the others Lua file i add in the .ZIP (one by one). If that don't work, probably the version of the engine, is not compatible with those lua files....and need a manual fix.

MY WEB

Helix Mod - Making 3D Better

My 3D Screenshot Gallery

Like my fixes? you can donate to Paypal: dhr.donation@gmail.com

#11
Posted 06/19/2017 05:36 PM   
Thanks for the reply, I'll try some more :)
Thanks for the reply, I'll try some more :)

#12
Posted 06/19/2017 06:03 PM   
I didn't have much time yesterday to work on this. I was able to edit the Coalesced.ini and set DynamicShaders=False, which disabled player and team mate shadows. This makes the game more playable, but I'll still try to mess with it. So back to the LuaScript..... I decided to fix Papo Y Yo, since it had a known working LuaScript. Then perhaps I could make some observations about the bahavior. I could then look at your fix and try to see how it works. For some reason, even with DumpAll = true, no shaders were automatically dumped using the latest debugger DLL. So I might try another one. But I could clearly see a whole different log text being generated, it was evident that the LuaScript was loaded and doing some work. edit: POS fucking forums, every time I try to add the text file, it locks the page up and logs me out. I typed this reply 3 times, lol. The third, I did it in a text file. Anyways as soon as I type the word code, within these brackets [ ], the page instantly locks up, what da hell Cevo?
I didn't have much time yesterday to work on this. I was able to edit the Coalesced.ini and set DynamicShaders=False, which disabled player and team mate shadows. This makes the game more playable, but I'll still try to mess with it.

So back to the LuaScript.....

I decided to fix Papo Y Yo, since it had a known working LuaScript. Then perhaps I could make some observations about the bahavior. I could then look at your fix and try to see how it works.

For some reason, even with DumpAll = true, no shaders were automatically dumped using the latest debugger DLL. So I might try another one.

But I could clearly see a whole different log text being generated, it was evident that the LuaScript was loaded and doing some work.

edit: POS fucking forums, every time I try to add the text file, it locks the page up and logs me out. I typed this reply 3 times, lol. The third, I did it in a text file. Anyways as soon as I type the word code, within these brackets [ ], the page instantly locks up, what da hell Cevo?

#13
Posted 06/20/2017 01:41 PM   
[quote="D-Man11"] [code]// Start logging.. NV API initialized Direct3D Created GetAdapterIdentifier IDirect3D9 Direct3D Created CreateDeviced pPresentationParameters->Flags 0, pPresentationParameters->MultiSampleQuality 0, pPresentationParameters->PresentationInterval 1, pPresentationParameters->SwapEffect 1 gStereoTexMgr Init lpStereoTex Init 0x1F31A5C0 luaL_openlibs luaL_loadfile Lua info status 0 size 1 CreatePixelShader CRC: 0x8281E1FA luaL_openlibs luaL_loadfile Lua info // float4 ScreenPositionScaleBias; // float4 UniformPixelScalars_0; // float4 UniformPixelVector_0; // float4 UniformPixelVector_1; // float4 UniformPixelVector_2; // float4 UniformPixelVector_3; // // // Registers: // // Name Reg Size // ----------------------- ----- ---- // UniformPixelVector_0 c0 1 // ScreenPositionScaleBias c1 1 // UniformPixelVector_1 c7 1 // UniformPixelVector_2 c8 1 // UniformPixelVector_3 c9 1 // UniformPixelScalars_0 c10 1 // SceneColorTexture s0 1 // ps_3_0 def c2, 0, 9.99999997e-007, 1, 0 def c3, 0.300000012, 0.589999974, 0.109999999, 0 def c200, 0.0, 0.5, 0.0625, 0 dcl_texcoord4 v0 dcl_texcoord5 v1.xyw dcl_2d s0 dcl_2d s14 mov r16.xyw, v1 texldl r11, c200.z, s14 add r11.y, r16.w, -r11.y mul r11.x, r11.x, r11.y add r16.x, r16.x, r11.x rcp r0.x,r16.w mul r0.xy, r0.x,r16 mad r0.xy, r0, c1, c1.wzzw texld r0, r0, s0 add r0.xyz, r0, -c7 max r1.xyz, r0, c2.x rcp r0.x, c8.x rcp r0.y, c8.y rcp r0.z, c8.z mul r0.xyz, r0, r1 max r1.xyz, r0_abs, c2.y log r0.x, r1.x log r0.y, r1.y log r0.z, r1.z mul r0.xyz, r0, c9 exp r1.x, r0.x exp r1.y, r0.y exp r1.z, r0.z dp3 r0.x, r1, c3 lrp r2.xyz, c10.x, r0.x, r1 add_pp r0.xyz, r2, c0 mad_pp oC0.xyz, r0, v0.w, v0 mov_pp oC0.w, c2.z // approximately 23 instruction slots used (1 texture, 22 arithmetic) status 0 size 1536 CreatePixelShader CRC: 0xF9B0AB6F D3DXAssembleShader : // float4 ScreenPositionScaleBias; // float4 UniformPixelScalars_0; // float4 UniformPixelVector_0; // float4 UniformPixelVector_1; // float4 UniformPixelVector_2; // float4 UniformPixelVector_3; [/code] [/quote] FFS, I had to quote another post, then edit it with the above. It's only a small portion, but anyways, for anyone that's interested, you can clearly see that the LuaScript is loaded and working. As stated in previous post, this is from Papo Y Yo
D-Man11 said:

//
Start logging..

NV API initialized

Direct3D Created

GetAdapterIdentifier IDirect3D9

Direct3D Created

CreateDeviced pPresentationParameters->Flags 0, pPresentationParameters->MultiSampleQuality 0, pPresentationParameters->PresentationInterval 1, pPresentationParameters->SwapEffect 1

gStereoTexMgr Init

lpStereoTex Init 0x1F31A5C0

luaL_openlibs

luaL_loadfile

Lua info status 0 size 1

CreatePixelShader CRC: 0x8281E1FA

luaL_openlibs

luaL_loadfile

Lua info // float4 ScreenPositionScaleBias;
// float4 UniformPixelScalars_0;
// float4 UniformPixelVector_0;
// float4 UniformPixelVector_1;
// float4 UniformPixelVector_2;
// float4 UniformPixelVector_3;
//
//
// Registers:
//
// Name Reg Size
// ----------------------- ----- ----
// UniformPixelVector_0 c0 1
// ScreenPositionScaleBias c1 1
// UniformPixelVector_1 c7 1
// UniformPixelVector_2 c8 1
// UniformPixelVector_3 c9 1
// UniformPixelScalars_0 c10 1
// SceneColorTexture s0 1
//

ps_3_0
def c2, 0, 9.99999997e-007, 1, 0
def c3, 0.300000012, 0.589999974, 0.109999999, 0
def c200, 0.0, 0.5, 0.0625, 0
dcl_texcoord4 v0
dcl_texcoord5 v1.xyw
dcl_2d s0
dcl_2d s14
mov r16.xyw, v1
texldl r11, c200.z, s14
add r11.y, r16.w, -r11.y
mul r11.x, r11.x, r11.y
add r16.x, r16.x, r11.x
rcp r0.x,r16.w
mul r0.xy, r0.x,r16
mad r0.xy, r0, c1, c1.wzzw
texld r0, r0, s0
add r0.xyz, r0, -c7
max r1.xyz, r0, c2.x
rcp r0.x, c8.x
rcp r0.y, c8.y
rcp r0.z, c8.z
mul r0.xyz, r0, r1
max r1.xyz, r0_abs, c2.y
log r0.x, r1.x
log r0.y, r1.y
log r0.z, r1.z
mul r0.xyz, r0, c9
exp r1.x, r0.x
exp r1.y, r0.y
exp r1.z, r0.z
dp3 r0.x, r1, c3
lrp r2.xyz, c10.x, r0.x, r1
add_pp r0.xyz, r2, c0
mad_pp oC0.xyz, r0, v0.w, v0
mov_pp oC0.w, c2.z

// approximately 23 instruction slots used (1 texture, 22 arithmetic)

status 0 size 1536

CreatePixelShader CRC: 0xF9B0AB6F

D3DXAssembleShader : // float4 ScreenPositionScaleBias;
// float4 UniformPixelScalars_0;
// float4 UniformPixelVector_0;
// float4 UniformPixelVector_1;
// float4 UniformPixelVector_2;
// float4 UniformPixelVector_3;





FFS, I had to quote another post, then edit it with the above. It's only a small portion, but anyways, for anyone that's interested, you can clearly see that the LuaScript is loaded and working. As stated in previous post, this is from Papo Y Yo

#14
Posted 06/20/2017 02:03 PM   
Hmm, so in the above log file, you can see that the LuaScript fixed F9B0AB6F Now in the shaderoverride folder fix from the blog, only the following shaders are in the pixel override folder supplied by DHR. 4FED5462.txt, 5DE70890.txt, 09FC7D4E.txt, 085C9542.txt, AD70F0E8.txt, F16F1471.txt, F06082FE.txt [quote="D-Man11"]2. Does just using the lua script by itself, fix anything? Or do you have to cycle and dump shaders, then re-name and put them in the shaderoverride folder before it fixes them. [/quote][quote="DHR"]2) Fix a lot of stuff, but sometimes you grab some shader that don't need fixing, so you need to hunt them and use the unfixed ones.[/quote] So to answer question #2 It seems that the LuaScript loads and fixes shaders on it's own and has no relationship to the Dump Folders or the ShaderOverride folders. The shaders listed in the shaderoverride folder in Papo Y Yo are the ones that were fixed by hand. *please correct me, if this is wrong* edit: FWIW, there are not that many Unreal Engine 3 games left to be fixed, unless emulators for the XBox 360 and PS3 ever get up and running. https://en.wikipedia.org/wiki/List_of_Unreal_Engine_games So I don't know if this thread will really help anyone. Anyhow, I'll try some more on TWFC
Hmm, so in the above log file, you can see that the LuaScript fixed F9B0AB6F

Now in the shaderoverride folder fix from the blog, only the following shaders are in the pixel override folder supplied by DHR.
4FED5462.txt, 5DE70890.txt, 09FC7D4E.txt, 085C9542.txt, AD70F0E8.txt, F16F1471.txt, F06082FE.txt

D-Man11 said:2. Does just using the lua script by itself, fix anything? Or do you have to cycle and dump shaders, then re-name and put them in the shaderoverride folder before it fixes them.


DHR said:2) Fix a lot of stuff, but sometimes you grab some shader that don't need fixing, so you need to hunt them and use the unfixed ones.


So to answer question #2

It seems that the LuaScript loads and fixes shaders on it's own and has no relationship to the Dump Folders or the ShaderOverride folders.

The shaders listed in the shaderoverride folder in Papo Y Yo are the ones that were fixed by hand.


*please correct me, if this is wrong*

edit: FWIW, there are not that many Unreal Engine 3 games left to be fixed, unless emulators for the XBox 360 and PS3 ever get up and running. https://en.wikipedia.org/wiki/List_of_Unreal_Engine_games

So I don't know if this thread will really help anyone. Anyhow, I'll try some more on TWFC

#15
Posted 06/20/2017 02:45 PM   
  1 / 2    
Scroll To Top