well, shit
As I decided to continue working on the new cheat system for melonDS, I devised a simple binary file format that melonDS will use to store cheat codes and associated metadata. Nothing terribly difficult.

Except then I need to properly design my basic blocks (AR code list parser thing, AR engine, etc) so that they can be interconnected nicely.

Which is where I began thinking about the kind of interface I would need for entering cheat codes.

And...

Uh oh.

libui doesn't support the kind of controls I want to use.

Generic has been thinking of a kickass debugger UI and running into the same issue.

So... it's time to take a decision here.

We haven't taken a decision yet. Basically we need a good UI toolkit, that, ideally, is lightweight yet well-featured, modular (so you don't need to embed a complete behemoth if you aren't using everything), uses native UI controls, supports drawing areas and OpenGL...

This is going to be another great moment of 'fuck technology'.

If you have any ideas that aren't Qt, your input is welcome.
Anonymous says:
Feb 25th 2020
I know next to nothing about UI toolkits, but GTK 3 comes to mind when I think of cross-platform GUIs
Stovent says:
Feb 25th 2020
There is wxWidgets, which is fairly complete and very lightweight compared to Qt (and still lightweight IMO, my executables are less than 8MB with GUI and C++ libraries statically linked).
There is also GTK but AFAIK it's not easy to use.

(Some emulators like BizHawk are doing the GUI parts in C# and the emulation stuffs in C++, maybe it's worth it if you know C#)
meunierd says:
Feb 25th 2020
I came to second wxWidgets. For something that wraps native UI components that and Qt are pretty much the only games in town. The only other thing that comes to mind is PyGUI which is obviously Python only.
MelonMan says:
Feb 25th 2020
I think melonDS used to bus use wxWidgets before and then switched to libui.
MelonMan says:
Feb 25th 2020
I don't know where the word "bus" came from in my comment.
MelonMan says:
Feb 25th 2020
I found this list.
https://www.reddit.com/r/cpp/comments/babfl5/a_pretty_big_list_of_c_gui_libraries/
AkumaX says:
Feb 25th 2020
You guys could give a try ImGui, it is based on OpenGL and it's very bloat-free:
https://github.com/ocornut/imgui
It was used in the game Wonder Boy: The Dragon's Trap, with other major game dev usages.
The author, Omar Cornut, is a well-known name in the emulator (SMS Meka emu, Mame) & game dev community.
AkumaX says:
Feb 25th 2020
Btw, congrats for a fantastic DS emu on PC/Switch & keep the good work!
DoublePoint says:
Feb 25th 2020
I second the ImGui suggestion above.
Also a second suggestion: allow the users to load AR codes from a simple external text file for now and focus on developing anything else on melonDS instead of being stuck on the cheats feature while the devs can't decide which library is fit for the task
poudink says:
Feb 26th 2020
doesn't generic/rs_duck's switch port use imgui? it's in the credits, anyway
poudink says:
Feb 26th 2020
doesn't generic/rs_duck's switch port use imgui? it's in the credits, anyway
Generic aka RSDuck says:
Feb 26th 2020
> doesn't generic/rs_duck's switch port use imgui? it's in the credits, anyway

yes, it uses imgui, though I want to replace the GUI at some point. Dear Imgui is great for temporary and debug UIs, but for a permanent desktop frontend I would prefer a native GUI every day.
Pillow says:
Feb 26th 2020
I have 2 questions.

1. When will Melon DSi start resume development?

2. Will this work with Melon DSi?

You can also use the default Windows GUI thing for the UI to make it native for Windows. Like the default radio, checkbox etc.
Amadeus says:
Feb 27th 2020
Will this emulator allow me to run a pokemon distribution rom to give my normal dsi event pokemon or will that not work?
Miranda says:
Feb 27th 2020
This may be my naivete, but if I may ask, why is Qt out of the question?
Post a comment
Name:
DO NOT TOUCH