Skip to content

Conversation

@Yanis002
Copy link

@Yanis002 Yanis002 commented Jul 28, 2025

I started to work on a memory viewer few days ago (the reason is simple: as a Linux user I'm really tired of using Windows just for that), it's to a point where it's very usable but there's still things I need to do (for instance interactive editing and also comply to the contribution guidelines), I'm opening this PR just to let people know this is a thing now 🎉

I wasn't sure about what to use to create it, I first thought of using labels but then I was concerned about the hit on the performances, I chose to use QGraphicsView and the related stuff as it's the best Qt feature I know of to make things with tons of interactions like this, it's not perfect at all I think but it's still very nice (and will be very useful either way), also opening the dialog adds 2% CPU usage on my computer, decreasing the update rate (to the minimum possible, which I made it 5ms) makes it 6% (so about 8-9% total), but with 20ms it's stable at 4% of usage so I think it's not that bad, but I'm still concerned about that if I allow more rows to be drawn, hence why I limited the view at 16 rows for 16 columns, for a total of 256 values displayed (+ the 16 addresses on the left, the decoded view and the digits at the top), btw lmk if there's a better way, I did it like that because it felt like a great balance between efficiency and difficulty

This was mostly made for myself hence why it looks so "personal" sometimes but feel free to steal this, also untested on Windows and macOS and still a work in progress, btw as you might see I'm not really a C/C++ expert so I hope my code won't hurt your eyes lol (I tried my best with my current knowledge), either way feel free if you have suggestions 💪

additional note: commit 9a758db is meant to be temporary as it allows me to build this project, if I ever end up opening the PR for review this will be reverted of course

also I'm aware that debug tools aren't a priority (read that somewhere in the issues), I understand this so I don't really expect this PR to be merged or whatever

new updates: image
older revision image

- search box: removed automatic jump in favor of a "go" button and enter key press
- added a "go" button
- added "hex value" checkbox in the value setter to allow decimal input when the text don't have 0x prefix
- adjusted widths and positions of the other widgets to get them aligned properly
- moved current addr label in the scene's top-left corner
- fixed issue where cur addr label was editable
- added object names
@Isaac0-dev
Copy link

This is awesome! Thanks for opening this pr even if it was for personal use. I couldn't find a DS emulator that has wifi support working, and a memory viewer/dumper. So this is perfect for me.
I kinda wish main stream Melonds would add debug features just because it's the only DS emulator to provide features like wifi.

@Yanis002
Copy link
Author

Yanis002 commented Sep 4, 2025

This is awesome! Thanks for opening this pr even if it was for personal use. I couldn't find a DS emulator that has wifi support working, and a memory viewer/dumper. So this is perfect for me. I kinda wish main stream Melonds would add debug features just because it's the only DS emulator to provide features like wifi.

thanks! I think I should probably mark as ready for review at some point because I'm basically done for now on this, something I had (low priority) on my todo list is dump the RAM to a file, also refactor the existing memory research because it's not great, I've seen cases where it overwrite data and overall I find it annoying to use unfortunately, that said I'm busy with other things so it'll have to wait (also sorry I meant to reply earlier)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants