bsnes-plus icon indicating copy to clipboard operation
bsnes-plus copied to clipboard

Highlighting memory changes in memory editor

Open Eoin-ONeill-Yokai opened this issue 2 years ago • 3 comments

I made issue #304 which talked about trying to add something akin to Mesen's data change and access highlighting for the ram viewer. I made this addition last weekend as a kind of proof of concept. It starts disabled, but can be enabled on the right-hand panel.

This MR adds a basic value highlighting feature that illustrates changes in values when stepping through frames. Note that this only highlights actual changes in values, and doesn't highlight execution or reads. It would be a nice long term goal to have this work with arbitrary read/write/execute tracking, but this feels like a nice step toward that and could be extended to cover that in a later date.

The highlight color should respect system themes. Right now it uses the systems "link" color. It would also be nice for the other colors to respect system color schemes and provide a legend on the right-hand side for what each color means (since there's plenty of room to provide that info.)

Anyway, here's a kinda-low-quality gif of the feature in action. Should be enough fps to get the gist of what it's doing, though I'm quite happy with the fade effect! dkc

There's also a commit for ignoring QT project files in the .gitignore entry -- which would be nice to have to prevent accidental IDE project files from being added to the repository.

Thanks!

Eoin-ONeill-Yokai avatar Oct 16 '21 02:10 Eoin-ONeill-Yokai

Looks great, nice work! I'll take some time to look it over more soon.

devinacker avatar Oct 25 '21 13:10 devinacker

There seems to be an issue with random-looking highlighting being applied (and not fading) to areas of memory that aren't being written to at all, like code or uninitialized RAM: image

The way that data bytes get highlighted when being changed every frame (or nearly that often) also needs some adjustment, since it makes the background constantly the same as the foreground: image

devinacker avatar Dec 15 '21 00:12 devinacker

There seems to be an issue with random-looking highlighting being applied (and not fading) to areas of memory that aren't being written to at all, like code or uninitialized RAM: image

Ah I think I messed up on my data types there. I cleaned it up and it seems to be working more as expected.

The way that data bytes get highlighted when being changed every frame (or nearly that often) also needs some adjustment, since it makes the background constantly the same as the foreground: image

I was thinking about this myself. Could we perhaps transfer these colors to be compliant with QTs theming system? Here's how it looks on my system currently, where the blue text doesn't stand out on my dark theme:

image

Ideally we could have these colors respect system theming by using link / activated colors. This should also ensure that it stands out from the active text.

For now, I could actually just blend the color into the BG color so that the effect is more subtle. Alternatively, maybe a flashing hollowed box would be nice?

Eoin-ONeill-Yokai avatar Jan 05 '22 08:01 Eoin-ONeill-Yokai