The Notebook Review forums were hosted by TechTarget, who shut down them down on January 31, 2022. This static read-only archive was pulled by NBR forum users between January 20 and January 31, 2022, in an effort to make sure that the valuable technical information that had been posted on the forums is preserved. For current discussions, many NBR forum users moved over to NotebookTalk.net after the shutdown.
Problems? See this thread at archive.org.
 Next page →

    InDirect Console Development Thread (a Replacement for ASUS Direct Console)

    Discussion in 'ASUS Gaming Notebook Forum' started by RainMotorsports, May 8, 2009.

  1. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    Updated with the latest screen shots:

    [​IMG]

    [​IMG]

    [​IMG]

    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!
     
  2. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    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.
     
  3. Starfox

    Starfox Notebook Evangelist

    Reputations:
    81
    Messages:
    302
    Likes Received:
    0
    Trophy Points:
    30
    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.
     
  4. thalanix

    thalanix Notebook Deity

    Reputations:
    353
    Messages:
    1,012
    Likes Received:
    0
    Trophy Points:
    55
    if its anything like ovrclk.dll, the undecorated exports already have enough info to make calls
     
  5. Wingsbr

    Wingsbr NBR Decepticon NBR Reviewer

    Reputations:
    199
    Messages:
    807
    Likes Received:
    0
    Trophy Points:
    30
    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...
     
  6. Predator_MF

    Predator_MF Notebook Evangelist

    Reputations:
    343
    Messages:
    495
    Likes Received:
    0
    Trophy Points:
    30
    Could you send me the code that controls the GLED...it would speed up updating the GLED.dll plugin I made for LCDHype
     
  7. Predator_MF

    Predator_MF Notebook Evangelist

    Reputations:
    343
    Messages:
    495
    Likes Received:
    0
    Trophy Points:
    30
    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.
     
  8. Predator_MF

    Predator_MF Notebook Evangelist

    Reputations:
    343
    Messages:
    495
    Likes Received:
    0
    Trophy Points:
    30
    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 :)
     
  9. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    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.
     
  10. Delta_CT

    Delta_CT Notebook Evangelist

    Reputations:
    102
    Messages:
    636
    Likes Received:
    0
    Trophy Points:
    30
    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).
     
  11. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    The setfsb front end should be easy and of course so is throwing in the headphone toggle for those who need it.

    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.
     
  12. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    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.
     
  13. Wingsbr

    Wingsbr NBR Decepticon NBR Reviewer

    Reputations:
    199
    Messages:
    807
    Likes Received:
    0
    Trophy Points:
    30
    iss cool man. you are doing a good job and it will all work out. heck you got farther then I would have....
     
  14. Predator_MF

    Predator_MF Notebook Evangelist

    Reputations:
    343
    Messages:
    495
    Likes Received:
    0
    Trophy Points:
    30
    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" ?
     
  15. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    Its a capacitive touch sensitive button like the express gate and powerforgear and mouse disable buttons has the RoG logo on it the G1 has hard buttons in that area.
     
  16. Predator_MF

    Predator_MF Notebook Evangelist

    Reputations:
    343
    Messages:
    495
    Likes Received:
    0
    Trophy Points:
    30
    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
     
  17. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    Thats the trick, StarFox and my partner looked at the source and jumped right to it. Too tired todo anything now but consider it done.
     
  18. stouf

    stouf Notebook Consultant

    Reputations:
    6
    Messages:
    166
    Likes Received:
    0
    Trophy Points:
    30
    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 !
     
  19. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    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.
     
  20. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    Alright preview of the proposed interface for the clock speed controlling (and general app):
    [​IMG]

    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.
     
  21. mr_milo

    mr_milo Notebook Consultant

    Reputations:
    59
    Messages:
    100
    Likes Received:
    0
    Trophy Points:
    30
    WOW! That looks great! Thanks for all the coding can't wait to see / try it when you are finished. :)
     
  22. jacobxaviermason

    jacobxaviermason Notebook Consultant

    Reputations:
    329
    Messages:
    260
    Likes Received:
    1
    Trophy Points:
    31
    Keep up the good work! That will be one handy tool.
     
  23. Delta_CT

    Delta_CT Notebook Evangelist

    Reputations:
    102
    Messages:
    636
    Likes Received:
    0
    Trophy Points:
    30
    This will be awesome. Am I ever glad that you decided to get a G50.
     
  24. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    Yeah well I couldnt exactly program away the problems in the HP i was looking at j/k. I hope to include presets and features directed at all current asus models as well not just the G series, app needs a new title was a joke InDirect Console lol. The front end for SetFSB is easy as pie anyone could do it, the hotkeys is easy thanks to the author of AsusNBkeys.

    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.
     
  25. stouf

    stouf Notebook Consultant

    Reputations:
    6
    Messages:
    166
    Likes Received:
    0
    Trophy Points:
    30
    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 ^^
     
  26. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    That was one of my original idea's one that asus should have done, i moved my original post to a quote. The default button will be the direct console button but now that we have complete hot key control you can assign a different one. It can be tuned on or off or even set to cycle something else such as the headphone jack or led's (if we ever get that working).

    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.
     
  27. Templar001

    Templar001 Notebook Guru

    Reputations:
    0
    Messages:
    50
    Likes Received:
    0
    Trophy Points:
    15
    I'm really excited for this. If you need any help testing or something PM me.
     
  28. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    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.
     
  29. Samhaine

    Samhaine Newbie

    Reputations:
    0
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    5
    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.
     
  30. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    As im no good at writing low level drivers unlike maybe predator the only way i could do that is if RMClock has some way to be tied into. I doubt there is much i can do in that department though i do plan to allow for startup control of things like everest and lcdhype if only rmclock would remember its damn power management mode then autostarting that would be nice.
     
  31. Delta_CT

    Delta_CT Notebook Evangelist

    Reputations:
    102
    Messages:
    636
    Likes Received:
    0
    Trophy Points:
    30
    Changing the voltage would also be handy for undervolting, since RMClock doesn't do half-multipliers. But don't worry about that, we will be happy to get your program. Anything else is just icing on the cake!
     
  32. Gotei 13

    Gotei 13 Notebook Evangelist

    Reputations:
    15
    Messages:
    439
    Likes Received:
    1
    Trophy Points:
    31
    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.
     
  33. zakazak

    zakazak www.whymacsucks.com

    Reputations:
    106
    Messages:
    1,299
    Likes Received:
    24
    Trophy Points:
    56
    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 :p
     
  34. Exostenza

    Exostenza Notebook Evangelist

    Reputations:
    252
    Messages:
    493
    Likes Received:
    14
    Trophy Points:
    31
    This looks promising keep up the good work guys!
     
  35. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    I know no one hasnt read the first post, the first page second page or third but this is the entire point of this application, and u dont even have to launch it you can set it to change clock speed with the dc button press if u wish lol.
     
  36. Predator_MF

    Predator_MF Notebook Evangelist

    Reputations:
    343
    Messages:
    495
    Likes Received:
    0
    Trophy Points:
    30
    Could you do that dynamically, like adding an executable to a global table (like nVidia profiler) and writting that to a xml file (for best compatibility and extendability)
     
  37. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    Not 100% sure what you mean about doing it dynamically. However I get your point on being able to share a file with a similar program that does the gpu clocking. Ive never really messed with xml myself I get it and I will take a looking at nvidia profiler's table and see if I can't work with it.

    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.
     
  38. Predator_MF

    Predator_MF Notebook Evangelist

    Reputations:
    343
    Messages:
    495
    Likes Received:
    0
    Trophy Points:
    30
    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
     
  39. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    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.
     
  40. Predator_MF

    Predator_MF Notebook Evangelist

    Reputations:
    343
    Messages:
    495
    Likes Received:
    0
    Trophy Points:
    30
    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
     
  41. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    Object Pascal over here, got to love it j/k. Im pretty sure there is a xml parser class in my compiler, just never got around to using it. Im just waiting for next year when Delphi goes 64 bit. I am slowly teaching myself C++ but its hard to force myself todo it that way when I know a totally easier way to get it done alot faster.
     
  42. Predator_MF

    Predator_MF Notebook Evangelist

    Reputations:
    343
    Messages:
    495
    Likes Received:
    0
    Trophy Points:
    30
    I write Delphi too you know... :D
     
  43. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    Didnt know that, i started this app out in 2007 to avoid any unicode problems but now that I am including the functionality of asusnbkeys I am gonna move it to 2009 just incase someone has unicode char in directories.

    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.
     
  44. Predator_MF

    Predator_MF Notebook Evangelist

    Reputations:
    343
    Messages:
    495
    Likes Received:
    0
    Trophy Points:
    30
    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
     
  45. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    Nice to know, many good programs out there you would never know. I was wondering if you were willing to share code on turning the touchpad led on and off or know if it would do me any good. Is there something i can search for to target the other led's?

    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).
     
  46. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    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.
     
  47. Lord Haart

    Lord Haart Notebook Guru

    Reputations:
    0
    Messages:
    56
    Likes Received:
    0
    Trophy Points:
    15
    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?
     
  48. King of Interns

    King of Interns Simply a laptop enthusiast

    Reputations:
    1,329
    Messages:
    5,418
    Likes Received:
    1,096
    Trophy Points:
    331
    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 :eek:
     
  49. RainMotorsports

    RainMotorsports Formerly ClutchX2

    Reputations:
    565
    Messages:
    2,382
    Likes Received:
    2
    Trophy Points:
    56
    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.
     
  50. stouf

    stouf Notebook Consultant

    Reputations:
    6
    Messages:
    166
    Likes Received:
    0
    Trophy Points:
    30
    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) ?
     
 Next page →