This is the sort of thing where Dear ImGui is simply perfect :) I also used it for the debugging UI in my emulators (https://floooh.github.io/tiny8bit/) - here's an example screenshot with the debug UI open (and the emulator integrated into a VSCode tab):
There are a lot of advantages when you can tightly couple the UI with the guts of the emulator (e.g. everything in the UI automatically shows the current emulator state at full display refresh rate without having to worry about UI update and rendering performance or doing complicated "data binding", just point the UI to the memory locations of the "live data", and everything updates automatically).
PS: the Spectrum Analyzer is actually using emulators from that same 'chips project' (https://github.com/floooh/chips). Props for the shoutout :)
Just one note: Please use UI scaling; it's near impossible to read on a 150% 4k screen (much less on 100%). Unfortunately, young eyes don't last forever.
The UI looks very much like ImHex (https://imhex.werwolv.net/). Is this a coincidence, or is it the standard ImGui look and feel?
I wish ImHex had a decompiler for Z80 as well, but this is much better.
It's not very well documented but if you put a font in the ./Fonts directory you can tell Spectrum Analyser to use it. If you edit the GlobalConfig.json you can put the font filename in the "Font" section. You can set the font size via the "FontSizePixels" entry. We can try to make this more obvious.
TBH I never tried it with scaling, but at least here in Chrome on macOS, it actually works nicely with the browser's scale feature (e.g. Cmd-plus/minus):
https://floooh.github.io/images/vscode-wasm-wasi-3.webp
There are a lot of advantages when you can tightly couple the UI with the guts of the emulator (e.g. everything in the UI automatically shows the current emulator state at full display refresh rate without having to worry about UI update and rendering performance or doing complicated "data binding", just point the UI to the memory locations of the "live data", and everything updates automatically).
PS: the Spectrum Analyzer is actually using emulators from that same 'chips project' (https://github.com/floooh/chips). Props for the shoutout :)
Here in the "sister project" there are some re-used windows from my debugger ui visible (https://colourclash.co.uk/cpc-analyser/), which I think is very cool because it shows how existing Dear ImGui code can be used as UI components (for instance I also re-used the hex editor from here: https://github.com/ocornut/imgui_club/tree/main/imgui_memory...)