Display important stats in separate window or on your smartphone. (How To!)

Discussion in 'General Entropia Universe Discussion' started by McCormick, May 13, 2015.

  1. Ay, totally lost track of this...also because I still use Ronis G19 keyboard and have everything I need. ;p
    Also Im on a new PC and all data collected about this Emulator got lost. Not in the mood to start from scratch right now. :S

    And no I didnt know that the capture fuction did great results. :O
     
  2. Wistrel

    Wistrel Kick Ass Elf

    Hello again

    Well I'm done on this for a while again too. I've been having a dig and found some interesting stuff but it is time to put it to bed again for me at least for a while again.

    Sooooo.... new discoveries. Where to start... OK so the thing that was throwing us all off (assuming I finally have it right now) is that Logitech changed the keyboard API after about version 3.02. They sorta made it all simple like.

    To cut a long story short, the current API isn't what MA are using. They are using the old one version 3<= as that supports colour 320x240 screens (earlier versions didn't). Unfortunately the only docs I could find on this API are the ones linked earlier but they are v1.03 not 3+ The best I could find was https://github.com/Tharit/g15-im-applets/tree/master/LCDFramework/g15sdk which has the header and lib file and some examples written to do LCD things with instant messengers.

    From having a read, I think then what MA do is just include the header and the lib and write code to talk to the LCD as "documented" in the header (a pdf would be useful). The Lib file deals with actually determining if you have a keyboard on the go and it does this by dynamically linking to the file C:\Program Files\Logitech Gaming Software\LcdApi\x64\LgLcdApi.dll if it is there. If it isn't there, the emulator (in my case) doesn't work with Entropia. So this is definitely what it is doing. Other apps (that use the new API) carry on fine regardless of if LgLcdApi.dll is there or not.

    From looking at some of the examples, it seems a common thing is to have a bitmap and use GDI stuff to put text of different colour and fonts and lines etc on it. Then I think this bitmap gets sent down the line to the dll. If I've got it right then, this "bitmap" isn't just pixels but essentially a whole bunch of info on how to "draw a picture" which may include straight up pixels (like the map) but also text and so forth (like the other pages). This would be why we get weird render issues with text in the emulator.

    So where does this leave us? Well probably in major league hacking territory to be honest. I imagine it might be possible to figure out all the functions that exist in LgLcdApi.dll and then in essence "make a new one" to replace it that simply says "yes" to everything and allows you to get at the info contained within the "bitmap" i.e. the text and so forth when it arrives.

    If someone could do this it would give them some cool stuff for use in community tools. For example you could make something that figures out people's locations automatically (you'd need to match the map segment to a set of known ones and locate the X mark and translate it into coordinates) or does more accurate analysis of damage and hit numbers which is what I think McCormmick was interested in.

    Anyhow. Leaving it there for now as all this is beyond me.

    Enjoy
    Wistrel
     
  3. Hmmmm...using it to display "everything"................like, mob ID...a no no no no no ;D
     
  4. Wistrel

    Wistrel Kick Ass Elf

    You joke and reference that debug picture from Cyrene right? Not sure how that would be useful even if it were possible via this route. No I'm only talking of getting out what MA share to the keyboard screen Dll anyhow. You wouldn't be able to get anything else without breaking the EULA because that definitely would be a form a of hacking the game files.

    As for LgLcdApi.dll apparently it only has these 3 "exported" functions? I think the last 2 are something to do with windows registering the DLL... not really knowing enough about this stuff I can't know for sure and we don't know what is being called from LgLcd.lib (assuming that is even right that it is being used). I think LG kept what goes on between LgLcd.lib and the Dll to themselves.

     
  5. Wistrel

    Wistrel Kick Ass Elf

    ah I think there may have been a cyrene one too but yeh similar sort of thing. Anyhow, to bed until someone who knows more about this stuff comes along
     
  6. Wistrel

    Wistrel Kick Ass Elf

    So latest is I come back to concluding that while MA might write on/construct the bitmaps in a structured way - given only a bit map is the only thing being "sent" I don't think you can reverse pull that text out of it. Thia still leaves the mystery of the flickery text though that is fine when saved to disc as an image.

    Not any closer to knowing how to pick up the bitmaps though. Ahh the GetInterface function....
     
    • Thanks Thanks x 1
  7. Liu

    Liu

    Go ahead, find something neat ! Make me dream !
     
  8. Go ahead to...2004, that might make you dream again. ;)
    Alchemic dream ;D

    p.s.
    Did you ever do conversations with Aurelien Merville...now that I metnion it ?
    https://www.linkedin.com/in/merville/?ppe=1
     
  9. Wistrel

    Wistrel Kick Ass Elf

    Nothing new I'm afraid. Not been looking at it, concentrating on a different Entropia related project mostly of late.
     
  10. Liu

    Liu

    Actually, never I think. We used his forum ages ago, and I thought it died when being renamed/bought by playmmo.com....didnt know the company Alchemic Dream was still alive !!!!! Tell me about bringing old memories back !!!
     
  11. Wistrel

    Wistrel Kick Ass Elf

    Excuse me while I necro this.

    Aside from the LCD screen thing (which may or may not be a dead duck) in case anyone is interested, the info above about damage/heal effects etc can be got from the standard chat log. While not a display of "current" health levels, if someone was motivated enough to want to parse this, they could make something that tries to keep track of health and display it elsewhere. You'd need to know your starting health and some notion of "rate of natural heal" too since natural heal doesn't generate entries in the log.

    TBH I doubt it is really worth it and it would likely get out of sync fairly easily and I bet the pills would change stuff like rate of natural heal these days anyhow.

    If someone really cares though, it's an option.
     
  12. Wistrel

    Wistrel Kick Ass Elf

    Still working in 2021

    LCDScreen_0308_225803.png LCDScreen_0308_225600.png LCDScreen_0308_225429.png LCDScreen_0308_225213.png

    - they seem to have changed their map icon from a cross to a... well what is that?

    what.jpg
     
  13. narfi

    narfi Lost

    Rorschach Test!!!

    It is a sailboat
     
    • Funny Funny x 1
  14. Wistrel

    Wistrel Kick Ass Elf

    Aha! I've got it. If you look at the old icon, you can ask the question:

    "When is a cross not a cross?"
    "When MA draw it!" X'D X'D


    Untitled.jpg

    (line for line, it's the same but with an extra blank line inserted after every line - this speaks absolute volumes)

    This may even explain why it was crashing... chances are the bottom half is going "somewhere"... maybe "somewhere it shouldn't go"
     
  15. NotAdmin

    NotAdmin Administrator

    It's a schooner.jpg
     
  16. Wistrel

    Wistrel Kick Ass Elf

    Keeping stuff in one place. From what I can tell the mysterious dll uses something called COM (Component Object Model) which is some form of allowing the sharing of code between languages.... possibly. So rather than the dll saying "Hello, here are some functions I make available for you to run" it instead has essentially just one function, the mysterious GetInterface, which gives you something from which you can run a bunch of functions from. The trouble is... it seems you need to know what those functions are and how they are used before this is helpful. I think some COM interfaces are system wide and well advertised. For example there is a great demo with autohotkey where you can use the speech API and just say "yo gimie thing" and gives you a thing from which you can just run functions from like "say some shizzle". It's dead simple. Trouble is the mysterious dll doesn't seem to be "named" within the system so you can't say "yo, gimmie thing" cause what thing to ask for? Also you don't know what it can do (what functions) even if you have it.
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.