Updated with the latest screen shots:
![]()
![]()
![]()
Below I am going to write out the development steps and planned road map (bear with me, will take time to get the info together):
Model Support
G50/G51 - In Progress
G1/G2/G70/G71 - Planned for Beta 1
M50/M51/M70 - Planned for Beta 1
W90 - Planned for Beta 2
All others currently planned post 1.0 release. PM me to help include support for your model!
-
RainMotorsports Formerly ClutchX2
-
RainMotorsports Formerly ClutchX2
I took a quick look myself an it appears Direct Console's LED.DLL exports the following functions
0CLED
1CLED
4CLED
EnumerateLED
GetLastError
SetLEDRegionCapability
SetAlwaysONOFF
SetConstantFlashInSpecificSpeed
SetConstantFlashWithAudioSource
SetLEDColor
EDIT - My coding partner has agreed to help and I have already sent him the dll, he should hopefully be able to get the parameters and work with me to figure out the G50's LEDs. With some help I may be able to work with a G70 owner and figure theirs out as well.
EDIT 2 - Okay he has gotten back to me with the calls they all seems to return a DWORD and some have parameters ofcourse.
EDIT 3 - My friend has just sent me all of the calls in object pascal, I will soon test turning the back 2 led's on and off.
EDIT 4 - I have gotten somewhere and no where, the function calls he sent were not right but I have corrected them to the point where i can call and get a result. EnumerateLED just returns a 0 and has no inputs, We believe the setonoff has an id and a status (0 and 1 for off and on).
I pm'd predator hoping for some insight as the old dll does still work on the touchpad with lcdhype. -
Need any help? I'm good at doing that sort if thing. I don't have my G50 yet, but if I get my hands on the DLL I can reverse engineer the hell out of it. Can't help you with object pascal though, but can get you an annotated header/lib for the dll exports.
PM Me, we can talk over IM. -
if its anything like ovrclk.dll, the undecorated exports already have enough info to make calls
-
Looking forward to this. I tried some program that's suppose to control setfsb and it never worked right. As of now I just have to go and turn it back on when the computer restarts...
-
Could you send me the code that controls the GLED...it would speed up updating the GLED.dll plugin I made for LCDHype
-
What I saw last time watching the disassembled LED.DLL of DirectConsole is - the dll runs it's own thread, it's created when you load it (DLLMain is called with DLL_PROCESS_ATTACH flag). That thread creates a COM object that I didn't find out what is it (my disassembly was showing nulls on the CLSID part of that code), then loops until a quit flag is issued by detaching the DLL. When you send a command with any of those exported functions it actually sets/clears an integer flag that this thread reads in it's loop and sets the state of the LED...a simple state machine. We need to find out the part of the code that controls the very LED, it's either that COM object that is loaded when that thread is initialized or a low level call to some internal address.
-
Uhm, just a couple of ideas around playing with the PLL...in the past I've made couple of projects that required directly accessing the ACPI controller, the PCI bus registers and LPT. As you may know, direct access to LPT or PCI is forbidden by any windows above 98, except if you have your own driver interface. I've made my own SMBUS drivers for ICH7 and ICH8 (and one Asus chipset also) using winio.dll, I remember by the time I write that code that I had access to the PLL also, when I get back to my workstation I'll find that code and send it to you, I think it would be a good starting point
-
RainMotorsports Formerly ClutchX2
I sent you a pm reply before I saw any of this, I was gonna go the indirect route on clock speed and just use setfsb to control the clock speed but make the program a front end like how autoset works at bootup.
I will send you what I was given, note that the actual functions we are using are not in C/C++. If I want to write my own device drivers I would have to use DDDK.
EDIT - Alright i have sent what I have so far. I think the problem is clarified as what you say. The DLL runs in its own thread so something todo with making a "create" call with the CLED class? Thats the only call thats given me anything back outside of a 0 and it doesnt even specify a return value..... probably why i getting something but no access violations or errors when I make the call. I did not try to call it and then something else yet. -
Clutch, that would be awesome if you could get this working eventually. I wouldn't mind having the ability to launch the replacement program using the same touch button as Direct Console (to make it a true replacement).
-
RainMotorsports Formerly ClutchX2
The LED's are a little beyond me but predator and me can probably help each other enough to get both sides done (gled update and my app working). If my partner had a G50 I know he can do it but he is 3,000 miles from me.
The only low level work i do is with storage devices. I write diagnostic tools and device hacking tools under another name in other community's. I have a coding partner who does anything I can't do and i just update it to work on vista and be unicode compatible because he doesnt do either lol.
Had a long day but I have monday and tuesday free probably get the app done minus led control during that time. -
RainMotorsports Formerly ClutchX2
Well good news and bad, setting the clock speed is easy as i thought and works just fine.
Run into a wall on the nicer part of this concept though. The direct console button does not directly call the application, if its not running it does not start it and does not call upon the process by name. Im guessing there is some sort of mutex or id that it calls and I have no clue where to start looking.
So until someone figures out how it calls upon the running executable this is nothing more then a tray icon based tool for setting clock speed and toggling the broken headphone jack....... I knew I announced this way too soon. -
iss cool man. you are doing a good job and it will all work out. heck you got farther then I would have....
-
It's either a global Win32 event/mutex or windows message. My guess is there are couple of hidden windows (check out HWND_MESSAGE in MSDN) that are being used for interprocess communication...
Btw, I'm not familiar with G50 much, what exactly is "direct console button" ? -
RainMotorsports Formerly ClutchX2
-
In that case you could try catching the button with AsusNBKeys (here in the forum). It also has the source published, as I recall a russian guy did it, very good program, works with the ATK0110 so it should be able to detect that button
-
RainMotorsports Formerly ClutchX2
-
If I could add something to the headphone toggle part, if you planned to use devcon.exe to "refresh" the sound adapter, please consider that devcon x86 or x64 don't work in Seven64. (I'm the tray toggler autor)
If I recall correctly, AsusNbKeys can interceptl DirectConsole button, and it's the only way I found to do it.
If you need help getting this thing working (testing mainly), feel free to ask !
I'm really looking forward for this tool ! -
RainMotorsports Formerly ClutchX2
I was gonna do the sound thing however that batch script does it except with direct calls to api didnt bother looking as it wouldnt be hard.
However you recommend doing it i will do as i dont have the issue yet. -
RainMotorsports Formerly ClutchX2
Alright preview of the proposed interface for the clock speed controlling (and general app):
Figured id allow for 5 total clocks, which is a bit overkill but you can turn them all off, all on and have 2 under/2 over or 3 over/1 under. Will allow for PCI-E clocking but im not testing it for you sorry lol. Must click box to enabled PCI-E editing for saftey and included an option to lock all values.
Two editing modes one is basic you can find the displayed value in SetFSB yourself which is usually wrong and based upon a 1:2 ratio. Or you can enter your ram and fsb rated speeds and it will figure the ratio for you so you can enter the real fsb speed instead of the one SetFSB needs.
App needs a real name and an icon, plenty left todo lol. Since im already using asusfbkeys methods for hijacking the direct console button i will include that apps functionality in this tool. My code isnt the same as his as its an entirley different language, though I would ask for his blessing he hasnt logged in in a year. -
WOW! That looks great! Thanks for all the coding can't wait to see / try it when you are finished.
-
jacobxaviermason Notebook Consultant
Keep up the good work! That will be one handy tool.
-
This will be awesome. Am I ever glad that you decided to get a G50.
-
RainMotorsports Formerly ClutchX2
This one may or may not be slow going, the initial test releases will target the G50 with SetFSB, Headphone fix and NBKeys integrated into it will add onto it until its problem free and determined safe then release it sans whatever isnt finished and make releases as more is done. The LED control is still dependant on other people as its above me but we have plenty of qualified people working on it all lacking the one tool that would make it easy.. a G50 lol.
I have a few projects from my previous scene to complete and havent been getting much done. Already been demoted from moderator and started preparing my withdraw. Once the apps for that platform is done and released I will be turning my attention to programming freeware for Windows and Linux targeted at PC's.
EDIT - First post has been updated to make the new info and screenshot easy to find. -
One nice feature would be to change overclocking preset with a button. IE, DirectConsole button rotates the overclocking modes.
Please don't stop working on it, that's the tool we all want
If you need help testing your soft, I'd be happy to do that for you ^^ -
RainMotorsports Formerly ClutchX2
As well as the dc button you can also cycle the clock by left clicking on the tray icon (once again can be disabled) or right clicking and selecting the speed you want, or as usual lauch the window and do it from there. You can also program the window to show when you press the dc button or click the tray icon if you want that instead which i doubt many people will Im just trying to keep the design versatile. -
I'm really excited for this. If you need any help testing or something PM me.
-
RainMotorsports Formerly ClutchX2
Ive decided on some more additions. I will add a tab for allowing overclocking based upon a particular app running (like say I overclock for crysis). Some other stuff like clock safety ranges and what not. Gonna do a battery test with a movie later and use the remaining time to program. Hope to have some screen shots later.
-
Once again,Clutch has blessed us with his skills,I was wondering if there is a way to adjust voltage in your app. If so i work on a heatsink mod.
-
RainMotorsports Formerly ClutchX2
-
-
I don't know if this has being mentioned but having a option to turn off ALL the lights on the lid in XP would be nice.
-
propably also an option to lunch the programm with the directconcolse button.
for the fsb: show how much mhz these overclocking gives as alot of ppl dont rly know -
This looks promising keep up the good work guys!
-
RainMotorsports Formerly ClutchX2
-
-
RainMotorsports Formerly ClutchX2
Not saying It wouldnt come later as i had more time but maybe to start I will do it just how i planned and then add sharing compatability to it. I just hand tthought of it or knew of many apps that did it, something i used to have on my Palm T5 pda.
Im a little slow and a little lazy and have a little on my plate as well. So trying todo as much with it as I can but also trying not to take everything head on. When my previous work is completed I will be free of obligated work and everything after that like this project is for fun and will have time todo anything I am capable of, or capable of learning. -
What I meant by dynamically is, you create a list of executables that your program detects. For each executable you can set a profile of your settings - low-clock/high-clock for games and applications. You just enable the user to add his own executables to that list by defining the settings for it. And the resulting table you just store into a XML file
-
RainMotorsports Formerly ClutchX2
Lower then stock clock is harder to pull off like this due to windows being a multi tasking operating systems it was easier on palm os as it was single threaded. I had given that some thought and while you can specify it the whole point on this is for overclocking while a particular process is running.
Outside of that the original idea was to have the user list their programs with the desired clock setting for each store along side the process name. You can set how often it checks but it would check for the running process and then clock based upon your settings. Unlikley to happen but if two apps are running the higher clock is what it choses.
XML file can be done I was going to use a proprietary format that all the config would be in but If I can work around how another clocking app works for the gpu I would be willing to use its format for sharing. Im also willing to allow for importing and exporting whenever i get around to it. -
I can help you out with the XML part, I use it everywhere in my code, I have couple of C++ libs for very easy work with XML and you'll love how fast and extendable it actually is
-
RainMotorsports Formerly ClutchX2
-
I write Delphi too you know...
-
RainMotorsports Formerly ClutchX2
2009 was a decent jump support for alot of things we should have had a long time ago like full unicode support in the vcl (should have been in 05 as 05 had full rtl support) PNG which well should have been forever and gif, since whenever the patent issues were over with. Support for MS rc compiling and built in rc management. Pointer math now on all variable types is very nice as well.
Takes a bit of getting used to for a strict delphi programmer though as we never had to account for 2 bit char. I have to use ansichar for old stuff as char now defaults to unicode. Ive ported alot of stuff that isnt officially working on 09 and i have just been to lazy to post it in the help forums of people struggling with it. -
The whole LCDHype is written with Delphi, my drivers are too, most of my plugins, except the MSN plugin...anyway
Unicode would not be a problem here, you won't have anything to do with it actually. Check out OmniXML, it's a great library for XML, easy to work with -
RainMotorsports Formerly ClutchX2
LED control is the last thing on the list but if there is anything i can do on my end to give you info let me know. I unfortunatly don't deal with any low level work outside of interfacing with storage devices and a little scsi here and there as well (non storage vendor commands and stuff). -
RainMotorsports Formerly ClutchX2
YAY.... sorta lol. Using the code Predator provided from the plugin i was able to turn the touch pad led on and off.
Now all I need todo is find the other LED's lmao. -
I would definitely love to see better control of the LEDs - can't read through the thread right now, but is it possible to turn them all off?
-
King of Interns Simply a laptop enthusiast
I never realised that the G50v had so many led's must be like a christmas tree lol. Any chance this program might work with the C90
-
RainMotorsports Formerly ClutchX2
The direct console app for its overclocking and whatever else should work on the C90 just fine im trying to cover all models in that respect.
Unfortunatly I wasnt paying attention to Predator when he was talking and missed the fact that this code the way it is isnt going to work on the gaming led as it isnt acpi controlled. It can still be done but what we really need is to get him a G50 lol or someone else qualified (not me).
Did get to turn on my useless bluetooth led lol. -
Aren't the gaming LEDs USB controlled ? I think it's recognized as "USB device" ???
Do you plan to keep overclocking control via command line (very useful for me) ?
InDirect Console Development Thread (a Replacement for ASUS Direct Console)
Discussion in 'ASUS Gaming Notebook Forum' started by RainMotorsports, May 8, 2009.