/argentum-imgui

ImGui integration (DX7!) for the popular 2D MMORPG Argentum Online

Primary LanguageC++

Welcome to argentum-imgui 👋

License: MIT

ImGui integration for the popular 2D MMORPG Argentum Online

What is this?

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.

What is the usage?

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.

Is this only for Argentum Online?

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

Requirements

Showcase

Radar PoC

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.

ImGui Demo Menu

ao-imgui-showcase.mp4

Author

👤 Matias Pavan

🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page.

Show your support

Give a ⭐️ if this project helped you!

📝 License

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.