ImGui integration for the popular 2D MMORPG Argentum Online
This is an integration of Dear ImGui (a bloat-free graphical user interface library for C++) into Argentum Online. For this, it's necessary to hook DirectX EndScene/BeginScene/Present in order to hijack the d3d device, serve it to ImGui and gain access to an extensive graphical interface.
When you inject a dll to a process, the interaction with I/O is either very poor (e.g spawning a console) or very complex (e.g having to make a GUI on C# and connect it with the dll via pipes). What this enables you is to have an extensive graphical interface to make complex components for the user to interact directly from your dll.
No. This can be extended to any DX8 game, the only thing you need to find by yourself is the method to feed ImGui the currently pressed keys (in this example, this is the way). Generally it can be done with a WndProc hook but it varies from game to game (e.g some may use DirectInput to which you will need to hook into the created devices to see which keys are being processed in-game).
- DirectX Software Development Kit
- dxwrapper to wrap dx8 calls into dx9 (put the d3d8.dll, dxwrapper.dll and dxwrapper.ini in the game executable directory and enable d3d8to9 setting on dxwrapper.ini)
ao-imgui-radar-poc.mp4
DISCLAIMER: Sole purpose of this showcase is giving people insight on how you can interact with the UI, this showcase/feature is not included in the repository and will never be, don't message me asking on how to achieve this.
ao-imgui-showcase.mp4
👤 Matias Pavan
- Github: @Reversive
Contributions, issues and feature requests are welcome!
Feel free to check issues page.
Give a ⭐️ if this project helped you!
Copyright © 2022 Matias Pavan.
This project is MIT licensed.
DISCLAIMER: Sole purpose of this repository is giving people insight into how to integrate ImGui to any dx8 game, please, don't do anything that negatively impacts someone.