Jump to content

Ai4rei

Members
  • Content Count

    242
  • Joined

  • Last visited

  • Days Won

    81

Posts posted by Ai4rei


  1. No, those tools usually override a system DLL (dinput.dll) or replace a RO DLL (mostly cps.dll, which is a trimmed down zlib1.dll). Either method uses a DLL that is hard-bound (import section) to the client and executes before the client code.

     

    This method loads DLLs as found, as many as you want, though it executes later than hard-bound DLLs.


  2. Simple DLL Loader for RO Clients

    npa.png

    About
    If you expect some super simple application, let me disappoint you, there is none; everything is already part of the RO client. Consider this post as a proof-of-concept. There are also certain catches that you should be aware of, before you start jumping for joy.

    All you need to do, is to give your library a .asi, .m3d or .flt extension instead of .dll and it will miraculously get loaded by the client when it starts up and is unloaded once it shuts down.

    While you can load pretty much any dynamic library this way, there is a major catch: when your DLL gets loaded, most of the initialization is already complete and the window is already visible, DirectX is not initialized at that point. So while this might be ideal for a client plug-in, that messes with the window or the client runtime, it's probably less usable for hot-patching of the initialization code. Another catch is, that the client will load fine when your DLL is deleted.

    Summary: While the process of loading a DLL with the extensions .asi, .m3d and .flt is simple, the point at which it gets loaded might be unsuitable for certain uses. Since it's not intrusive, it might be of use for client plug-ins.

    Demo: The linked demo consists of a pre-build DLL with source, that displays a message when loaded and unloaded for convenience of testing this PoC.

    Edit:
    Another issue noticed by Cataclysm: If "Sound Mode" in RO setup is set to "No Sound", DLLs will not be loaded.


    Download
    demo


    QA

    • How does this work?
      Your DLL is loaded as a driver for the Miles Sound System (mss32.dll), but since it does not register with it, it does not interfere with it in any way.

     

    License
    88x31by.png
    This work is licensed under a Creative Commons Attribution 3.0 Unported License.


  3. Is there anyway I could place a custom Button with URL? like what thor does. :D

     

    eg: forgot password.. :)

    Version 1.7.0

    Per request, added support for custom buttons with four actions to select from and skin-able as well.

     

    Version 1.7.1

    ! Fixed a crash when starting a client with unchecked "Save" (from 1.7.0).! Fixed a memory leak in MAC address retrieving code (from 1.6.0).

  4. In case eAthena r15263 will be merged and the community has use for it, there's an excess add-on code, that has not and will not be committed to eAthena, due to it's nature of being a custom.

     

    The patch allows to optionally reject completely transparent emblems as part of the emblem validation code. Transparent emblems are typically abused during WoE times to draw less attention in castles and were/are considered against the rules on some official and private RO servers.

     

    Commented lines are an alternative approach for same effect, and may be removed.

     

    patch

     

    80x15.png


  5. Since PlayOnLinux is uses WINE, it should work. But this is the first time I saw it, I'll look into it.

     

    Edit: Hmm, after playing around with it a bit, PlayOnLinux is just a front-end that does simple stuff, the complicated way. OpenSetup runs fine on WINE/PlayOnLinux in a VM when graphics accelerated emulation is off (VM settings) and WINE crashes when graphics acceleration is available. Since I do not have a real machine with linux installed, you should be more specific about what does not work for you.


  6. RO Patcher Lite

    rsu-cover.png

    About
    Replacement for Gravity's RO patcher. Works faster and doesn't consume your entire memory for just seeing it crashing, aside from this, it works almost exactly as the official patcher does, so that it shouldn't break, unless Gravity changes something vital to their patcher. It works on every 32-bit and 64-bit Microsoft* Windows* platform and is free of any cost.

    Known Issues
    None.

    Download & Website
    http://ai4rei.net/p/rsu

    License
    88x31by-nc-nd.png

    This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 4.0 International License.


  7. Reference topic, since you cared to post the image without attribution.

     

    tl;dr: The system is implemented, just does not work in real-time (you just get prevented from logging-in, but are not kicked as long you are in-game). It was not implemented the way it should be, because people were hysterically afraid, that all emulators would turn pay-to-play.


  8. Updated to 2.9.0, adds troubleshooting option for disabling hardware-accelerated graphics, detection of active mirror drivers (which prevent hardware-acceleration) and various tweaks to visuals and translations.

     

    New bits:

        IDCHECKBOX_HELDEVICE,           "Turns hardware-accelerated graphics on and off.nnThis option is only for troubleshooting graphics card issues. When enabled, graphics card will not be utilized by the client for graphics rendering.nNote: This option is NOT recommended for low and average system specification users."    IDINFOICON_VIDEO_MIRRORDRIVER,  "Warning: Mirror driver detected.nnYour graphics card cannot be detected when a mirror driver is active. This can be caused by an active VNC session, remote control server software or malware."    TEXT_DLG_HELDEVICE,             "Disable hardware-accelerated graphics"
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.