mirror of https://github.com/bsnes-emu/bsnes.git
Update to bsnes v039r10? release.
New WIP adds a ton of refinement. I feel it's exceeded the old UI in quality already, so I added the platform-functions (realpath, userpath, ...), so now it'll look for the multi-user config file, falling back on single-user. If you use an old config, most settings from v039 will be lost, but some will be pulled in. It now looks for bsnes.cfg and style.qss (for theming.) Slight issue with relative paths and realpath() on Linux. New initargs() function adds back support for non-ANSI paths. Path window shows <startup path (/path/used)> rather than just <startup path>. All buttons trigger on release (mouse up / off) rather than press (mouse down). Revamped the centering code. All windows respect the reserved screen areas (taskbar, dock, etc) and center perfectly. They only center on the first show, after that they will remember where you placed them. Completely rewrote the windowed / fullscreen handling code. It works properly even on Linux now. Scale max is great, perfect fit to the edges of your screen sans reserved areas. If menu+status toggle are bound to the same key, it'll only refresh the window once to reflect the new state now. Going back to the forced size thing. I need to re-add the menu checks. You can't shrink the window smaller than your current settings, and if you make it bigger, you get black borders (since I can't disable the resize reliably on all platforms.) Makes more sense this way anyway, the menu options should reflect what you see, not what the startup state is. It remembers the fullscreen setting automatically now. I took it a bit further, though. If you have no ROM loaded, it will show the menu+status in fullscreen to alert you there's no cart and give you a chance to select one. I also re-added command-line loading, and if you successfully load a game there, it will turn off the menu+status for you. There was a slight delay there. You see, loading a game calls snes.init() which needs the interface (video, etc drivers) setup. Those drivers rely on the UI being created. So we have to make the UI, setting the menubar visibility, before we can verify that we're going to load a game. _Yes, I can work around this!_ Add a first-run boolean and validate the command-line path is valid, or separate cart load from SNES init so I can load, setup GUI then start, etc etc. It's just annoying, not sure if it's worth the effort to hide the menubar 2ms sooner. ROM slot loader and cheat path windows now both disable buttons when no cart is loaded. Major work in progress, lots of stuff left to do here. When you pick a file with the ROM loader, it doesn't steal focus to the main window anymore. When you pick a path, it clears the audio buffer to prevent audio looping. Not sure if I want to hook move / resize events, since Linux doesn't block as much as Windows. Maybe I'll #ifdef it. Qt 4.4 has a bug with GTK+ file open, if you give it a blank path it spits out lots of errors. It needs a fully-qualified path. Going to make my old-style "remember last selected path" thing that I used in hiro/gtk to fix it later. [No archive available]
This commit is contained in:
parent
85b08fd24b
commit
c64232a479