bsnes v0.038 released

Archived bsnes development news, feature requests and bug reports. Forum is now located at http://board.byuu.org/
Locked
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

We spent a lot of time on carefully removing all the different load options.

Now that a bug is uncovered in the system i suggest fixing that bug instead of reverting to the old method
exdeath
New Member
Posts: 7
Joined: Fri Nov 09, 2007 9:06 pm

Post by exdeath »

FitzRoy wrote:...Rather than try to represent every type of load combination in the menu, why not just have one load command that lets you select the slots you want filled/unfilled before running?...


I just said that idead because byuu said

byuu wrote:......how would you load two-part Sufami Turbo carts without a popup menu?.....


So i was just explaining that was possible.

And in my way, the user would be bothered about base cartridge just one time (more times if he want to change the base cartridge file).
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

Here's a couple of boolean advanced options I'd like to see:

misc.minimize_to_system_tray
misc.run_at_system_startup
misc.start_in_fullscreen_mode (moved from video section since it is a program frame setting that has nothing to do with image output)

A couple of renames I'd like to see:

"advanced.enable" to "misc.show_advanced_options" (ideally, this wouldn't exist)
"misc.opacity" to "misc.window_opacity"

video.invert can probably be removed, maybe the two file ones as well, not sure what use those have. My motives for wanting to clean up this section might become clearer later.

I'd also like a minor change in the system menu: flip the power settings with the controller settings.

Let me know when you're ready to talk about the readme overhaul.
henke37
Lurker
Posts: 152
Joined: Tue Apr 10, 2007 4:30 pm
Location: Sweden
Contact:

Post by henke37 »

It's officially called the notification area and you are not supposed to use it instead of the taskbar. Not that anyone actually follows this rule.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

That's a dumb name and rule, I rebel. I like the tray for programs that don't generally need multiple instances or text identification. It saves taskbar space for the programs that need it.
h4tred

Post by h4tred »

Not that anyone actually follows this rule.


Where in the MS HIG states that?
henke37
Lurker
Posts: 152
Joined: Tue Apr 10, 2007 4:30 pm
Location: Sweden
Contact:

Post by henke37 »

Well, I can not find any concrete rule about using the notification area vs the normal taskbar buttons, but I can find something about the name:
Why do some people call the taskbar the "tray"?
franpa
Gecko snack
Posts: 2372
Joined: Sun Aug 21, 2005 11:06 am
Location: Australia, QLD
Contact:

Post by franpa »

Windows 9x called the Notification Area the System Tray.
Core i7 920 @ 2.66GHZ | ASUS P6T Motherboard | 8GB DDR3 1600 RAM | Gigabyte Geforce 760 4GB | Windows 10 Pro x64
odditude
Official tech support dood
Posts: 2107
Joined: Wed Jan 25, 2006 7:57 am

Post by odditude »

franpa wrote:Windows 9x called the Notification Area the System Tray.
False.

However, in win9x, the application WAS named "systray.exe" (it was separate from explorer.exe).
Why yes, my shift key *IS* broken.
FirebrandX
Trooper
Posts: 376
Joined: Tue Apr 19, 2005 11:08 pm
Location: DFW area, TX USA
Contact:

Post by FirebrandX »

Even Microsoft's own support docs refer to the notification area as the "System Tray". Regardless of what the intended name was, "System Tray" has been adopted and used by MANY companies, including Microsoft and the general public at large. Whether or not its the official name is a moot point. You try going around telling everyone "Notification Area" and they will look at you like you're retarded. Much in the same way as if you always pronounced "karaoke" correctly.
King Of Chaos
Trooper
Posts: 394
Joined: Mon Feb 20, 2006 3:11 am
Location: Space

Post by King Of Chaos »

In the latest WIP I've notice Pro Action Replay codes aren't working anymore. For example, try these codes for Super Mario World (U);

Invincibility (Uneffected) 7E1497FF
Always Caped Mario 7E001902

Oh, and the codes are enabled. :P
Jonas Quinn
ZSNES Developer
ZSNES Developer
Posts: 115
Joined: Thu Jul 29, 2004 9:51 pm
Location: Germany

Post by Jonas Quinn »

Invalid input is always allowed in bsnes. The config file option doesn't change that.
Gil_Hamilton
Buzzkill Gil
Posts: 4267
Joined: Wed Jan 12, 2005 7:14 pm

Post by Gil_Hamilton »

FirebrandX wrote:Even Microsoft's own support docs refer to the notification area as the "System Tray". Regardless of what the intended name was, "System Tray" has been adopted and used by MANY companies, including Microsoft and the general public at large. Whether or not its the official name is a moot point. You try going around telling everyone "Notification Area" and they will look at you like you're retarded. Much in the same way as if you always pronounced "karaoke" correctly.
Or if you buy a package of AA cells. Or a battery of AAs.
byuu

Post by byuu »

New WIP.

- invalid input is blocked again when input.allow_invalid_input == false
- vertical scrollbar only appears when needed in multi-line textboxes
- cheat editor properly encodes / decodes quotes and line breaks
- advanced panel now allows double clicking boolean items to toggle their state
- cleaned up all of the nall template library
- nall::array was missing copy constructor, causing swap/sort to fail
- moved start in fullscreen to advanced panel for now
- renamed most of the options FitzRoy asked for

Jonas Quinn wrote:Invalid input is always allowed in bsnes. The config file option doesn't change that.


Thank you very much, that was a huge oversight.

KoC wrote:In the latest WIP I've notice Pro Action Replay codes aren't working anymore. For example, try these codes for Super Mario World (U);


Those work fine for me ... maybe try the next WIP?

FitzRoy wrote:Here's a couple of boolean advanced options I'd like to see:

misc.minimize_to_system_tray
misc.run_at_system_startup


System tray control is probably something the GUI library needs anyway, but its value is completely lost for Windows 7 -- the taskbar works similar to the system tray + quick launch. In fact, by default tray items are hidden and require you to go through a menu to get to them.

Run at startup would be tricky. I could only get that working on Windows, and it's really something the user should do externally. Drag it to the startup folder, put it in the registry, use MS config, whatever. Also seems very niche, no? You'd still have to load a game for it to be useful.

FitzRoy wrote:maybe the two file ones as well, not sure what use those have


One is for OS X users. Some of them don't understand file extensions. The other is for ROM hackers. It'd be needed to multi-chain UPS patches in the future, as well.

FitzRoy wrote:I'd also like a minor change in the system menu: flip the power settings with the controller settings.


Why? Seems arbitrary, and I like the current ordering. We can even make up some crazy stuff to support the current ordering:

1) Looking at an SNES from top to bottom, you have the cart slot, then power / reset, then controllers.

2) Group options that affect carts, then group options that affect input.

FitzRoy wrote:Let me know when you're ready to talk about the readme overhaul.


Will probably release v039 next weekend. Can work on the readme for v040, I guess.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

System tray control is probably something the GUI library needs anyway, but its value is completely lost for Windows 7 -- the taskbar works similar to the system tray + quick launch. In fact, by default tray items are hidden and require you to go through a menu to get to them.


Interesting, so the taskbar space being used to launch programs is a dead idea then? That's good, the area really needs to be exclusive to programs that are running, the desktop and menu were taking it over. Judging by some pictures, it looks like they are going with a sort of icon button system that groups multiple instances under the same icon. If they put a small number on the buttons to tell me how many instances there are without me doing a mouseover, I might have to install it.

Run at startup would be tricky. I could only get that working on Windows, and it's really something the user should do externally. Drag it to the startup folder, put it in the registry, use MS config, whatever. Also seems very niche, no? You'd still have to load a game for it to be useful.


Yeah, I can do it externally. Stupid MS, it should be as easy as having an option in the executable's properties pane. There are a lot of programs I use almost every time I startup, that's why it would be useful, I would never have to open bsnes or foobar again.

As for the controllers move, I guess I just wanted them closer, because they have that arrow business while reset doesn't.
Last edited by FitzRoy on Mon Jan 12, 2009 5:44 pm, edited 1 time in total.
creaothceann
Seen it all
Posts: 2302
Joined: Mon Jan 03, 2005 5:04 pm
Location: Germany
Contact:

Post by creaothceann »

byuu wrote:- advanced panel now allows double clicking boolean items to toggle their state

Thanks. :)
vSNES | Delphi 10 BPLs
bsnes launcher with recent files list
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

FitzRoy wrote:
System tray control is probably something the GUI library needs anyway, but its value is completely lost for Windows 7 -- the taskbar works similar to the system tray + quick launch. In fact, by default tray items are hidden and require you to go through a menu to get to them.


Interesting, so the taskbar space being used to launch programs is a dead idea then? That's good, the area really needs to be exclusive to programs that are running, the desktop and menu were taking it over. Judging by some pictures, it looks like they are going with a sort of icon button system that groups multiple instances under the same icon. If they put a small number on the buttons to tell me how many instances there are without me doing a mouseover, I might have to install it.
Windows 7 does look like an interesting beast. The new taskbar takes some getting used to, but it does feel like an improvement.

My system is not up-to-date enough, else i would be using Windows7 permanently
King Of Chaos
Trooper
Posts: 394
Joined: Mon Feb 20, 2006 3:11 am
Location: Space

Post by King Of Chaos »

Well you can make the taskbar in Windows 7 smaller to resemble the typical taskbar.

Oh, and the PAR issue is gone in the new WIP. ;) All is well!
byuu

Post by byuu »

With Win 7, bsnes' UI is really starting to look dated. Even having a menubar / statusbar just looks really out of place compared to their seamless title / toolbar look. Things like their panel menu and special taskbar icon actions (eg IE's download meter on the icon) are also important. Future versions will undoubtedly change even more.

We can probably skirt it until Windows 8 or so, but I think we're going to have to split the UI back to Windows-only and Linux-only, or risk looking like a 16-bit app on Windows 9x. That will really suck, as I value consistency greatly. But we're sacrificing a lot for it: GTK+ has native widget resizing; Windows buttons, editboxes and comboboxes are way too tall; Windows lacks a "true" fullscreen mode (even if it is becoming less important these days); the titlebar icon sucks on Windows; I can't do the fancy tree-view expanding menus with pretty icons everywhere; etc.

The BS-X / ST "Load / Cancel" buttons look ridiculous. Should we resize them to small buttons like the readme / license viewers and put them on the right? I don't want to cut down the textbox sizes any, and we need browse+clear, so shrinking the window width would be tough.

The task panel icon for Win 7 looks pretty pixellated. FitzRoy, I don't suppose you can add back the 48x48 version to the .ico file? :/

Anything else important we're missing before a new release?
King Of Chaos
Trooper
Posts: 394
Joined: Mon Feb 20, 2006 3:11 am
Location: Space

Post by King Of Chaos »

I'm sure you could make an updated quick GUI using Vista/7's Desktop Window Manager APIs... if GTK+ even supports it.
byuu

Post by byuu »

King Of Chaos wrote:I'm sure you could make an updated quick GUI using Vista/7's Desktop Window Manager APIs... if GTK+ even supports it.


http://geeks.pirillo.com/photo/windows-7-paint-1

Do you think I can match that UI in GTK+ with a few DWM APIs? :P
King Of Chaos
Trooper
Posts: 394
Joined: Mon Feb 20, 2006 3:11 am
Location: Space

Post by King Of Chaos »

The glass part? Yeah, possibly.
creaothceann
Seen it all
Posts: 2302
Joined: Mon Jan 03, 2005 5:04 pm
Location: Germany
Contact:

Post by creaothceann »

byuu wrote:[...] or risk looking like a 16-bit app on Windows 9x

You can roll out your own solution à la ZSNES, and it wouldn't matter much to me as long as the functionality is equal to or better than a native style.
vSNES | Delphi 10 BPLs
bsnes launcher with recent files list
byuu

Post by byuu »

Tried out Visual C++ 2008 Express SP1. Very impressed. It's infinitesimally faster than my home copy of MinGW4, and a good ~8-10% faster than the current build up on mingw.org. It also supports /GL (whole program optimization) and is a hell of a lot faster than MinGW to compile the entire app.

I wrote up this test app:

Code: Select all

alwaysinline int external(int x, int y);
alwaysinline int internal(int x, int y) {
  return x + y;
}


Then ran that 500000000 times and compared the speed. Output is clock time (in ms) + result (to verify it worked):

Visual C++ (/Ox /GL):

Code: Select all

internal       156 2551657984
external       156 2551657984


MinGW4 (-O3 -fomit-frame-pointer):

Code: Select all

internal       218 2551657984
external      1469 2551657984


The external part is really important. Because of GCC lacking WPO, I'm forced to inline many functions inside headers. This creates a lot of near-circular dependencies that force a very specific ordering of header files. Eg I inline the cheat code read function inside the memory read function, which is inlined for CPU access. That means I have to define the cheat header before the memory header.

It also means there's a ton of extra code (slowing down compilation time) hidden inside headers where it doesn't belong.

If I go with the Visual C++ model, I can write my code much cleaner and with no speed loss on Windows. But I'll suffer a ~10-15% speed penalty on Linux until GCC catches up to the 21st century. Is it worth it?
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

Oh, I was sadly mistaken. The Win7 taskbar actually keeps the quicklaunch bar and has now introduced something called "pinned programs", which is redundancy within redundancy, as the quicklaunch itself is superfluous to the desktop. The taskbar is much too small an area to serve as a launch station for programs, it very badly needs to be reserved for actively running programs.

http://www.youtube.com/watch?v=M6-2L0DPut4

That's the video I was looking at. The big downside to pinning and previews should be obvious.

(a) A pinned program that isn't running looks exactly the same as one that is. The obvious distinction between the two is now gone.
(b) There is now a "jumplist" next to the button in order to support this, which introduces a high probability of accidentally clicking on something you weren't intending to. Putting the option in the context menu would have been far better.
(c) The preview windows are pointless for text-based programs and websites, a downsampled image of document A looks the same as a downsampled image of document B, you still have to rely on the titlebar text, which the previews themselves help truncate the more you have.

Sorry, not trying to turn this thread into a Win7 discussion.

The task panel icon for Win 7 looks pretty pixellated. FitzRoy, I don't suppose you can add back the 48x48 version to the .ico file?


Can you tell me what I should include? 16, 32, 48, 64... and what else after that? The original is 256.
Locked