HoYoverse developers have added native support for dialog control with keyboard and mouse wheel. And with that, this program no longer has any meaning - it served its purpose, but that's the end of it.
Thank you, everyone. For using ADE, for your support, feedback, comments, help in development, in other words, for everything.
It's been a long road for me as a developer, and I've learned a lot along the way. But it's time to say goodbye friends, at least to this project.
ADE - is an application that extends the functionality of dialog interactions in various games.
Most games have the ability to select dialog options using mouse wheel or keyboard buttons, but some games either don't have this feature or it is implemented poorly. This application fixes this issue by means of extensions, individually developed for each game, thus extending the game functionality. Also, usage of this software cannot cause your account to be banned in any games you play (more in this section).
- Why can't you choose a dialog option using mouse wheel, the same way you would when selecting which item you want to place in your inventory?
- Why can you pick up an item with the
f
button, but the dialog can only selected with the mouse cursor? - Why is the cursor always in the center of the screen at the beginning of dialogs and cutscenes?
- Why can't you take screenshots in cutscenes and dialogs?
If you have ever asked such questions, then this application is for you.
📺 YouTube usage demonstration video
- Binding any keyboard and mouse key combinations to various actions
- Interacting with dialogs using key bindings
- Confirming dialog options
- Cycling through dialog options
- Cursor hiding
- Screenshots saving
- Dialog auto skipping
- And much more
- Windows 7 (x64) and up
- Administrator privileges (see here as to why)
- 2 MB of free space
- .NET Framework 4.8 (built in Windows by default)
As the development progressed, more and more features were added to the application, and although everything was aimed at providing the most convenience, now there is so much functionality that it became necessary to document it here.
The application is modular, and works with extensions individually developed for each game. Each extension is treated as a game profile, allowing you to fine-tune it.
To get it all going just download the application, run it and hit a big fancy Start
button. That's it.
And if you want to know more about other features, you can check them out below.
Hook
- is the corner stone of the application. In order to work, the application needs to find the running game process and attach to it. To do this, you need to select required Game Profile
and specify game process name.
In most cases, extension developers set everything up, but you can customize all the settings yourself.
Start
is the most important button of theProfile
subsection. When you click on it, the launch action you selected in theAdvanced settings
subsection is performed. If you want theGame
orLauncher
of the game to be launched along with it when the hook starts, change this setting.- When the hook is launched, the application will begin searching for the game process by its specified name, and if it finds one, it will connect to it.
- To avoid specifying all the paths manually, you can use
Locate
option in profileDrop-down menu
. Create shortcut
- creates an application shortcut to quickly launch the hook of selectedGame Profile
, with all specified settings.- In the same section you can set the directory for screenshots and
Exit with the game
setting.
In this section individual settings are specified for each Game Profile
. Default key bindings are set by extension developers. You can Reset
or Clear
those settings in Drop-down menu
.
Hide cursor on manual selection
- after detecting dialog options, clicking on one of them will hide the cursor.Cycle through dialog options
- switching to the first/last dialog options when selecting the next/previous one at the end and the beginning of the list, respectively.Single dialog option behavior
- dialog selection confirmation when only one option is present. You can highlight or select it without confirmation.Numeric action behavior
- confirmation of dialog choices selected by pressing number keys (e.g. 1, 2, 3) by highlighting them, or by selecting them without confirmation.Cursor behavior
- hide after any action in a dialog, hide after a selection, or do nothing.
Pause/Resume Hook
Reload hook
(necessary when changing game resolution, and repeating the search for dialog options)Take screenshot
Hide cursor
Select the dialog option
Select previous
Select next
Quick selection with numeric keys
In extensions it is possible to specify additional actions - points on the game screen where you can click to perform certain action during a dialog.
For example, in Genshin Impact, the Autoplay
action has been added - by clicking on the > Auto
button in the upper left corner of the screen in a dialog.
Here you can configure a script to quickly skip game dialogs:
Triggers
to start/stop the script- Setting the
Skip action button
- Script start condition:
Cursor presence
,Speaker name presence
- Skip mode:
Text only
,Text and replies
andReplies Only
(always selects the last reply), - Delays between clicks
The script stops when the following actions will occur:
- The game hid the cursor, giving you the ability to control your character again
- Manually pressing the
Trigger
buttons - Turning
Pause
on - Switching to another window / Collapsing the game
Note: It will ruin your story experience, but that's what you asked for _(:з)∠)
The application is developed with C# programming language using WPF technology. Using this technology, the author of the application developed a library of custom components and styles Why Orchid, which allowed not only to improve the graphical components of the application, but also to increase accessibility by implementing the following functionality:
- Selecting and creating of color schemes
- Changing of accent color
- Scaling
- Selecting of custom font
- Selecting of interaction cursor view
- Language setting
- Window state at startup (
Default
,Taskbar
,System tray
) - Window state when launching profile shortcut (
Default
,Taskbar
,System tray
) - Minimizing instead of closing
- Minimizing to taskbar
- Launching on Windows startup
- Opening a screenshots directory (if taken) when exiting the game
- Expert mode (allows to fine-tune the internals of the application)
- Opening the application folder and application settings folder
This section contains all the information about the program and its developers, as well as update mechanisms and notifications.
Everything you wanted to know but were afraid to ask 🤔
This is an OPC (One Person Company), so the developer works alone. Thus everything will be implemented, but not right away.
- Genshin Impact
- Star Rail
- Wuthering Waves
- Project Mugen
- Tower Of Fantasy
- Zoneless Zone Zero
Usually, when developing cheats and scripts for games (and this application is not a cheat!) certain data is found and used in the game memory. To prevent this, online game developers make anti-cheats. Some only respond to obviously unintended game behavior by allowing memory reads, while some also monitor memory reads from their games.
It would have been ten times easier to implement such an approach, adding a injectable library as well. But since this violates license agreement of some games, and there is a risk of getting banned, the application itself was developed to function as an intermediary that works with extensions, where the developers of those take responsibility for it.
Since each game is unique in its protection, each extension uses its own approach to bypass these limitations (if any), for example, Genshin Impact uses on-screen image processing. Therefore, for this game it is absolutely (99.9%) safe. Can you get banned in a game for taking a screenshot? No. The developer has been using and testing this application for over a year. He gives you his quality assurance - everything possible was done for it to be legal, not violating game's license agreement. In addition, use of scripts like AutoHotKey is allowed in almost all games.
How it works in detail for Genshin Impact
First we need to determine whether the game is in dialog mode. To do this, each time a registered action is performed in the program, we check whether the cursor is displayed (and when characters move, it is not displayed), whether an NPC is speaking to the character (for this we take a screenshot of a small area at the bottom of the game's window, and we determine the presence of NPC name by unique color range), and only after that a screenshot is taken of the limited area in which the dialog bubbles should be located. Then they are compared with a mathematically specified template.
Having taken screenshots of all possible screen resolutions in the game, patterns were derived to mathematically define where dialog bubbles are located, i.e. how the size of the game window defines their location and size. After that, the template is then programmatically set based on the contour lines of the dialog bubbles, brightness transition, icon presence, etc.
Long-term testing showed that this approach works for all game resolutions, starting from 800x600, and that the dynamically calculated formula gives a match result of 98%.
Which means that in incredibly rare cases the application may find an extra dialog option or miss an existing one. If this happens, all you have to do is press
f5
to perform the search again. It is also worth knowing that the search does not work with an already highlighted dialog option, i.e. when the mouse cursor is on it.The developer and testers were happy with the end result, I hope you will be happy with it too.
See also: Why I had to give up on OpenCV
This application intercepts keyboard and mouse events to respond to their click events, but due to Microsoft restrictions, applications with lower privileges cannot intercept events of applications with higher privileges. And since Genshin Impact only works with administrator privileges, application privileges must match. Nothing you can do about this.
The roadmap can be found here.
You've reached the last sections, congratulations!🥳 There's plenty to read here if you're interested in developer's thoughts and development path.
It was... A very long journey. I started developing this application purely for Genshin Impact, and solely for myself, because it was inconvenient for me to drink tea 🍵, eat cookies 🍪, read dialogs 💬 and move the mouse 🖱️ at the same time. Yes, programmers are very lazy. That’s why the development took... Almost a year 🥲. I started this project in early November 2022, and finished it in September 2023... I'm surprised that I got this to release, really... This is an achievement... I had been coding this application in evenings almost every day after finishing with my work (well... and during work hours too. Something I’m not very proud of 😓).
What else? No personal life, minimum entertainment, a ton of time and effort spent on this project... I can’t say what kind of response this will yield in the future, but as a programmer I have grown quite well.
This the third project out of ten that I started, that has saw the release. There are so many ideas, but very little time and energy... + I couldn’t have done it without the help and support of all my beloved friends, so a huge thank you to you all 💖
- Meowmaniac - Testing, criticism. Thanks for listening to me whining and constantly testing all the janky code. Sorry for the bug that took up all the space on your hard drive)))0) /^._.^\ฅ🔪
- NDS - Criticism, architectural consulting, whine listening. Thank you for your time, opportunities and support. Thank you, I mean it... (((°▽°)八(°▽°)))♪
- Tortuga - Testing, whine listening. Thank you for testing the program at least at the very end of development) Someday we will all get together again and play DnD... Someday ( ≧Д≦)🏰🎲🐲(≧▽≦)
- Vobraz - OpenCV consulting, criticism. This guy even rebuilt OpenCV for me, reducing the original size of the program from 60 MB to 24 MB... I asked him a lot of questions to understand the intricacies of the work, but in the end, having studied everything, I wrote my own super lightweight version of OpenCV, which is why the application size became... 2 MB. Well... It happened) Anyway, thanks, you're awesome! 🤩💯🔥ヾ(⌐■_■)ノ♪
- WertQj - English translator and editor, translation quality control. Perhaps, as you said, I could handle everything myself, but it would have taken much longer. ↜₍^ -༝-^₎ In any case, thank you, and not only for the translation, friend!
- ZloeZlo - Ukrainian translation, translation quality control. I know it was a joke (translation into Ukrainian), but you still managed it. Thank you) .⭐ ˖🦉‧₊˚ ☾.
- Special thanks to all of you, users of this application, for your use, criticism, feedback and discussion. This is very valuable. You are the best, I love you all.
- (づ ̄3 ̄)づ╭❤️~
- Microsoft - for severely restricting my previous GitHub account just because I live, in their opinion, in the wrong place >:(
- Gitee - for deleting my account after half a year without any warning.
- Microsoft once again - for having to use GitHub with VPN, and also for dropping support for the .NET Framework and WPF, and also for the fact that you can’t roll back from Windows 11 to Windows 10.
- JetBrains - Because they haven’t been able to fix XAML designer for WPF for a year now.
Although the application uses all the libraries listed below, at least 80% of each library had to be rewritten to optimize them for specific tasks, reducing the space they take up as well... Very little remains from the original versions, but, none the less, I would like to thank the developers for their work, ideas and open source code.
- AutoUpdater.NET - I don't know guys, it doesn't seem to me that using WebView2 is necessary for your library. And why is everything
static
everywhere? I don't understand... But thanks anyway. - NonInvasiveKeyboardHook - A unique idea of setting, tracking and responding to key combinations. Very cool, but I rewrote everything for my needs, + added support for mouse buttons. Thank you.
- Why Orchid - Oh, this one's mine. Pure WPF, nothing extra, which makes it very lightweight. I want to rewrite most of it in the future, so I don’t recommend relying on its release versions - edit the code yourself if you decide to use it.
- WPF Color Picker - A powerful color picker. So UWP has a built-in one, but WPF doesn’t? Thanks again Microsoft. To the author for this lib as well, even though I rewrote everything).
- Google Fonts - SVG icons and pictograms.
- Font Awesome - SVG icons and pictograms.
- Application icon - Northern lights.
One of the weighty and important reasons why the application was released was to notify as many people as possible about Creative Society project. I would not have put as much effort into improving the usability and quality of the application if I had not counted on its popularization and distribution... What is CS and why is it so important not only for me, but for everyone in general? Well, the answer is simple:
CS is an international project, the goal of which is to legally and peacefully transition to a new creative format of society throughout the world in the shortest possible time, in which human life will be the highest value.
Why is it important for me and you? This is important for me because for a third of my life now I have been living in a war zone with no borders, where nothing foreshadows its end, and where there is no value for human life. For you, just as for me, CS is that global way out of all crises, and not just wars, it is also a way to fight natural disasters.
There is a saying:
"If a scientist cannot explain to a 5-year-old child what he does, then he is a fraud."
The goal of Creative Society is to bring human life to the forefront legislatively, by adopting 8 principles in all countries of the world that will support and ensure that:
8 Pillars of the Creative Society
The 8 Pillars of the Creative Society are what people from all over the world desire. These are the fundamental values of the Creative Society that can become the basis of international law and legislation in all countries through a lawful expression of people's will at the world referendum.
Human life is the highest value. Life of any Human has to be protected as one's own. The goal of society is to ensure and guarantee the value of each Human's life. There is not and never can there be anything else more valuable than a Human's life. If one Human is valuable, then all People are valuable!
Every human is born with the right to be a Human being. All People are born free and equal. Everyone has the right to choose. There can be no one and nothing on Earth superior to a Human, his freedom and rights. The implementation of Human rights and freedoms must not violate the rights and freedoms of others.
No one and nothing in society has the right to create threats to the life and freedom of a Human!
Every Human is guaranteed free provision of essential life necessities, including food, housing, medical care, education and full social security.
Scientific, industrial and technological activities of the society should be aimed exclusively at improving the quality of human life.
Guaranteed economic stability: no inflation and crises, stable and same prices around the world, a single monetary unit, and a fixed minimal taxation or no tax.
The security of Human and society from any kind of threats is ensured by the unified global service that deals with emergency situations.
Every Human has the right to receive reliable information about the movement and distribution of public funds. Each Human has access to information about the status of implementation of the society’s decisions.
The mass media belong exclusively to the society and reflect information truthfully, openly, and honestly.
Ideology should be aimed at popularizing the best human qualities and stopping everything that is directed against a Human. The main priority is the priority of humanity, high spiritual and moral aspirations of a Human, humanness, virtue, mutual respect and strengthening of friendship.
Creating conditions for the development and education of a Human with a capital “H”, cultivating moral values in each person and society.
Prohibition of propaganda of violence, condemnation and denunciation of any form of division, aggression, and anti-humane manifestations.
Every person in the Creative society has the right to comprehensive development and personal fulfillment.
Education should be free and equally accessible to all. Creating conditions and expanding opportunities for a Human to implement his or her creative abilities and talents.
All natural resources belong to Humans and are fairly distributed among all people. Monopolization of resources and their irrational use is prohibited. These resources are fairly distributed among the citizens of the entire Earth.
A Human is guaranteed employment if he or she so desires. Pay for an identical position, specialty, or profession should be the same all over the world.
Everyone has the right to private property and income, however within the limits of the individual's capitalization amount set by the society.
The concept of "power" in the Creative society is absent, since the responsibility for society as a whole, its development, living conditions and harmonious format, lies with each Human.
Everyone has the right to participate in the management of the affairs of the Creative Society and in the adoption of laws aimed at improving Human life.
The solution of socially important, socially significant, and economic issues that affect the quality of a Human’s life is submitted for public discussion and voting (referendum).
In the Creative Society, thanks to the introduction of a new model of economy and new technologies, there will be no need to use money. Therefore, certain provisions of the 8 Pillars of the Creative Society, which proceed from the existence of monetary relations, will be relevant only in the transition period to the Creative Society.
Globalists? Yes. Sounds unrealistic and unfeasible? But the more support there is, the faster it will come true. All that is asked of you is to read about it and tell others. Now that you know about this project, half of the work is done, and whether to support it or not is a personal matter for everyone, although I would really like to finally live in a world where there is peace and justice...
Currently there is no need for financial support. I do have a full time job, and while it's not much, it's manageable.
The best thing you can do with your money, if you don't know how to spend it, is to spread the word about Creative Society. This is more essential right now 💖.
Other than that, you can leave a ⭐ Star
for this project, and I would be very grateful for that).