devinacker / bsnes-plus

debug-oriented fork of bsnes
http://bsnes.revenant1.net
326 stars 94 forks source link

Faster Access to Debug Windows #199

Open torridgristle opened 5 years ago

torridgristle commented 5 years ago

To access the Tile Viewer and related, you must first navigate to debug in the menu, then navigate to what you actually want in the new debug window's menu.

In the settings under Advanced and Miscellaneous there should be an option like Debug Mode what adds a debug menu to the main window that gives faster access to the Tile Viewer and related windows. This is a feature in Mesen and hoo boy that's a life saver. If I'm gonna have it open virtually every time I use the program then anything that can get me to it with less intermediate steps is appreciated.

devinacker commented 5 years ago

I recall Optiroc's semi-official macOS fork adding all of the main debug window's menus directly to the main window's menus in order to mesh better with the "global" macOS menu bar, so I was considering doing the same thing in other OSes just for ease of access. I'll likely at least add the various debug-tool-related menu items to the main window's Tools menu, if not just moving them there entirely.

aexoden commented 5 years ago

I'd add that it would be nice if any open debug windows were preserved across sessions. I end up having to reopen almost every debug window every time I have to restart the program (usually either because a) I needed to reboot or b) my joypad stopped working after being disconnected and later reconnected).

slidelljohn commented 5 years ago

I created this for the vram expand branch of bsnes plus. Test it out and let me know how it works. http://www.mediafire.com/file/l2zx8c2gclto0a3/bsnes_test.rar/file

Go to settings/configuration and while in configuration settings go to debugger and you will see some new settings. You have custom settings to open the checked debug windows when you start the debugger or you can select last which would open the previous opened windows the last time bsnes was opened. This bsnes plus has some things in it that I have been testing. Don't set any breakpoints. It will crash because I wrote a new cpu tracer. The cpu tracer is the fastest one that I have used and it has almost no slowdown while tracing cpu. The new cpu tracer is over 10,000 lines of code but its still not finished. I also included a cycle counter inside of the cpu trace files. I also made the tile viewer update the tiles faster. You can have the tile viewer open while tracing the cpu and it still is almost running at full speed. This is all stuff I'm still working on but I think the window setting is the feature that you want.

devinacker commented 5 years ago

I can't run this because you didn't include platforms/qwindows.dll and I don't have the same specific version of Qt installed that you used to build this. (I would also much prefer an actual patch with a single feature rather than a prebuilt binary with "over 10,000 lines" of completely unrelated changes that break basic functionality...)

Anyway, I may just add a single option to preserve the open status of windows across sessions; the config file already stores position/sizing for almost all windows so this would be a pretty easy/simple thing to uniformly implement.

slidelljohn commented 4 years ago

Sorry for posting and disappearing. I had/have a lot going on. I used the vramexpand branch to create this. This file should have the source code for the faster access to the windows without the new cpu tracer code in it. http://www.mediafire.com/file/pr0u6fr82yjflv6/bsnes-plus-vramexpand_faster_access_to_debug_windows.zip/file

I'm still learning c++ and I couldn't figure out how to access the the config file so I had to improvise to get it to work but I think this is something that torridgristle was looking to have implemented. I'm sure my code is probably useless because it can be better written but it does work.

I'm still very green with c++ patching and github so Ill try to figure this stuff out before I post more stuff like this. Again, sorry for taking so long to respond.