bsnes v0.031 released

Archived bsnes development news, feature requests and bug reports. Forum is now located at http://board.byuu.org/
Locked
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

I'd like to make a few last minute suggestions:

1. I always thought the "mute sound" option in the settings menu didn't quite fit in. It's the only one without an arrow, it starts with a verb. Sound Output > Mute would look better. But I think it would be an even better idea to just put a "Sound" settings option in the configuration window and have a full blown volume slider from 0 to 100. Internal volume settings might be the one thing that makes any kind of sense there, as I can see someone possibly wanting to have light rather than no sound in the background if they're using another sound program. There isn't really a need for a default button either, it's too obvious of a setting.

2. The wording for your Configuration navigation doesn't need to include "settings" or "configuration" after every section. That's implied. Do for everything what you do for "Advanced" and leave it out.

Input
Raster
Sound
Paths
Cheat Codes
Advanced

3. Note on the above list that I moved "Input" to first. I would think that "Input" is the most popular destination when first hitting that configuration button. Might as well make it the first thing that shows up rather than the color settings.

4. Consider changing "Speed Regulation" to be more descriptive. "Speed" itself could be interpreted as an ingame performance thing. And how come we aren't given the effects of the presets?

Emulation Speed>
-50%
-25%
Normal
+50%
+100%
Unlimited
byuu

Post by byuu »

The main problem is that we already have four or five completed translations ready to go. If I change things now, all of those break.

But let's see ...

The sound thing, I do kind of like the idea of a software volume adjust. I know it's very superfluous, but it'd help with Linux where Audacious' volume slider doesn't work with OSS4.

I think putting mute in that window is too buried, though. I use that mute option a lot, and I left it in the main menu for exactly that reason. That was the idea, the absolute most common stuff in the menus, the rest inside the config windows.

You're right that "configuration" after everything is redundant. I'll remove that, either for v032 or v032.01. I never liked having raster at the top of that list, it's there because I was going for consistency.

Both in the menu and in that screen, I wanted to sort by "video, audio, input, others." It wasn't bad when I had real video mode options long ago, but it's kind of silly now that raster is the default. Maybe I'll leave the list order as-is, but default to input config at startup.

I don't have a better name for speed regulation, and the reason I don't list the speeds is because they used to be customizable via the config file. I still plan to make that the case in the future. I'd like to allow the user to set both the emulation speed and the frameskipping for each profile.

I used to even perform some math to print the speed, (eg "Slowest (%d)", speed / playbackrate * foo.) I believe someone here asked for that to be removed. Don't recall.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

byuu wrote:The main problem is that we already have four or five completed translations ready to go. If I change things now, all of those break.
Which is why I'm not waiting any longer to share them, as we're certainly going to keep getting more languages and the people who are currently doing them are still here. Chances are that only a fraction of the people making these are going to stick around to make changes in the distant future, as I was trying to point out earlier. So the earlier the changes get made, the better.
I don't have a better name for speed regulation, and the reason I don't list the speeds is because they used to be customizable via the config file. I still plan to make that the case in the future. I'd like to allow the user to set both the emulation speed and the frameskipping for each profile.
I was trying to suggest "Emulation Speed" with the subsequent change of "Disabled" to "Unlimited".
I used to even perform some math to print the speed, (eg "Slowest (%d)", speed / playbackrate * foo.) I believe someone here asked for that to be removed. Don't recall.
I would also prefer it displayed one way or the other. Parentheses are ugly in menus and generally avoidable.
byuu

Post by byuu »

"Emulation Speed" works for me. How about "Uncapped" instead of "Unlimited"? Unlimited sounds a bit strange, since it's certainly limited by your processor speed :P

How about instead of +/- stuff, we just do raw percentages?

Emulation Speed >
50%
75%
100%
150%
200%
---
Uncapped

I still like the other settings more, especially since it preserves "Normal", and yet doesn't end up mixing percentages and strings. I see your side, too, it's nice to be specific about what they do.

Maybe it's best to keep them as strings for when I re-add user configurable rates there.
Hunter
New Member
Posts: 9
Joined: Sat May 24, 2008 8:43 am

Post by Hunter »

Hi, I'm new to the boards. I've just finished a Brazilian Portuguese translation. Since I don't have access to the WIPs, I used tukuyomi's file as base.

As soon you resolve the final nomenclature I'm going to update it if necessary :wink: .
creaothceann
Seen it all
Posts: 2302
Joined: Mon Jan 03, 2005 5:04 pm
Location: Germany
Contact:

Post by creaothceann »

byuu wrote:How about instead of +/- stuff, we just do raw percentages?

Emulation Speed >
50%
75%
100%
150%
200%
---
Uncapped
I was going to suggest that myself. :wink:


Emulation Speed >
50%
75%
100% (default)
150%
200%
---
Uncapped
vSNES | Delphi 10 BPLs
bsnes launcher with recent files list
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

byuu wrote:"Emulation Speed" works for me. How about "Uncapped" instead of "Unlimited"? Unlimited sounds a bit strange, since it's certainly limited by your processor speed :P

How about instead of +/- stuff, we just do raw percentages?

Emulation Speed >
50%
75%
100%
150%
200%
---
Uncapped

I still like the other settings more, especially since it preserves "Normal", and yet doesn't end up mixing percentages and strings. I see your side, too, it's nice to be specific about what they do.

Maybe it's best to keep them as strings for when I re-add user configurable rates there.
I like that. I don't know why I wanted to keep normal, seems easy enough to infer, plus you're the only who probably uses this stuff anyway :P

As for user-definable rates mucking this up... would someone actually need something like 20% or 78%? Seems kind of pointless to have that kind of flexibility, you have a good assortment of intervals for practical purposes.

And I know you think you're clarifying or something with the separation bar, but it honestly seems confusing to see it used like that. It makes me think that clicking on uncapped will create a second checkmark and override the first in the other group. But they're all the same group by definition of what they do. Do you separate "None" in the filter settings? No, you leave it in the group, and it makes perfect sense.
byuu

Post by byuu »

Hunter, thank you very much for the translation.

I'm very sorry that I forgot to respond to your PM earlier. I'm actually seeing two accounts for you, "Sugna" and "Hunter" -- I'll PM a link to the WIP to each.

Thanks again for the translation!
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

byuu wrote:Emulation Speed >
50%
75%
100%
150%
200%
---
Uncapped
That looks good. If you want these to be user configurable, why not store those percentages in the config file and reserve the possibility of making them changeable in the settings screen? Then just reload the text for these menu entries when you exit the settings. I also agree with FitzRoy about the separation bar being a bit superfluous and possibly confusing.
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

I'm starting to see Fitzroy's point(s).

I read the keynote on "programmers don't understand end-users" and it seems Fitzroy is completely understanding the end user. Also at work we are completely remodeling the customer experience, going for easy access and intuive usage for all users

I was about the suggest similar things to what Fitzroy did, here is my take on things:

The End user just wants to relive his snes on tv days, this means that bsnes is basically emulating 2 devices:
The TV
The Snes
When using the snes IRL there are limited options.

First some things we do not need:
The TV will obviously always be on when wanting to play the snes so we can assume its on and leave that part out
We can assume everything has been hooked up already, ready to play.

So what can de end user do intuitively, in correct order:
-Place a cheatcart if we want to cheat
-Place an addon into a slotted cart
-Place a cart into the snes unit
-Plug in/out the needed controllers or other input devices needed for that particular game
-Turn on the snes, and later turn it off, thus leaving it in its current configured state
-Reset the game while playing using the reset button

Now while the game is running there is the possibility of changing the following things with the remote of the tv(or with the buttons on the tv)

-Volume up/down
-Mute
-Brightness up/down
-Saturation up/down
-Contrast up/down

There are no other options in real life, so these basic options should be available through the menu in an intuitive way.

Then there is the fact that we are using an emulator, so we need some kind of advanced settings thing to configure bsnes.

-Configure Controllers and other input devices
-Configure the TV (video+audio settings)
-Configure internal behaviour of the snes unit

And then there is the emulation upgrades
-Emulation speed regulation
-Savestates (currently unavailable)
-Audio/Video recording

Now imho there should be different sections for different parts, also which would be much more difficult would be to have bsnes pre-configure the snes based on the game loaded.

Bsnes would:
-Popup a question when loading slottet or special carts, as to what to do with them, there would be an option to save the answer.
-Configure all input devices, and popup a question about which to use if multiple options are possible, there would be an option to save the answer.
-Remember the per-game settings for tv configuration (audio/video)



-----------------------
The menu structure could look like this:

Code: Select all

Snes
-Power ON (continue from last time, if remember settings is added)
-Insert Cart (autodetection for slotted and special carts)(this will autopower on if the above option is not added)
(-Insert Slotted Cart (needed if autodetection is not added))
(-Insert Special Cart (needed if autodetection is not added))
-Reset
-Connect/Disconnect Controller/lightgun/mouse/etc (should be added but hidden until other input devices are supported)
-Use Cheat code
-Stop playing (exit)

TV(image and sound)
-Volume
-Mute
-Saturation
-Brightness
-Contrast

Emulation options
-Emulation speed settings
-Log audio(/video) data
-Savestates

Bsnes Configuration
-PC Input settings
-Internal snes emulation settings
-PC audio/video settings

Advanced Settings
-Debugger
-Unstable emulation settings
-Toggle advanced features 

About Bsnes
-help
-legal
-about 
Some things might need to be renamed, the thing im going for is as simple as possible and as close to what someone would think when playing the original console as possible

Also instead of 0-200% selectable options i was thinking about sliders for all settings which are configurable in this way. but with snappoints at the current % settings for easy access to the current settings, in the case of speed regularion the mute checkbox could be changed to unlimited checkbox

The Power ON button could be "advanced"
It would dynamically change, to display the last game played.
Power ON with Cart "$" inserted($ is romname), it would basically be a last played list with only 1 game, but it would also remember all non-persistant settings for that session.
Insert Cart could be changed to Insert Cart and Power on Snes

What do you guys think?

PS Byuu, if you like this please do not delay the current release for it and just add it to the next wip cycle
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

tetsuo55 wrote: The End user just wants to relive his snes on tv days
They do? We didn't have an NTSC filter in SNES emulators for like eight years. I'd say 30% at most today use it. I think a lot of people use unfiltered or one of the blend filters. And I'm guessing there are tons of people who never even owned the original system using the emulator. Look at all the people who can't live without savestates. No, I think the end user is much more inclined with the emulator aspect.
tetsuo55 wrote:this means that bsnes is basically emulating 2 devices:
The TV
The Snes
When using the snes IRL there are limited options.
Well, bsnes simulates some aspects of a TV with blargg's filter. As for a real SNES, it's true, there's no frameskip, no joypad mapping, no keyboard shortcuts, no pausing, no filters, no path settings... but this is a program and I don't think anyone is confused that it doesn't act the way a real system does for certain reasons. Cheating, for example, was a cumbersome process on a real system compared to the ease with which it's done now in emulators. They're both effectively doing the same thing, I imagine, when applying a cheat to a game. Saying it's less intuitive because it's creating its own process is a mistake, I think, though I'm not opposed to it being made possible if it can be. But I wouldn't call having to find some unlicensed rom and load it up before every game a very intuitive thing.
Bsnes would:
-Popup a question when loading slottet or special carts, as to what to do with them, there would be an option to save the answer.
-Configure all input devices, and popup a question about which to use if multiple options are possible, there would be an option to save the answer.
-Remember the per-game settings for tv configuration (audio/video)
I think this is way harder than it sounds. Real games don't initiate a special system function to tell you when you play them if they supported a certain device, and the values aren't present in rom data itself either, so bsnes is not able to tell you. Find a list online, like the one in the compatibility thread. And no, this is not a good argument for headers. The costs incurred by headers vastly outweigh the benefits, by definition making it a poor system.
-----------------------
The menu structure could look like this:

Code: Select all

Snes
-Insert Cart (autodetection for slotted and special carts)
-Reset
-Connect/Disconnect Controller/lightgun/mouse/etc
-Stop playing (exit)
[/quote]

This is mostly just different wording of the same thing. Insert/eject is the same as load/unload, cart is shorthand for cartridge. Why use "SNES" if the Japanese system was called the "SFC"? Even with localization, I imagine someone will want to load an SFC game on an SNES system, or should they not be allowed to do this? Maybe we should have separate emulators, now that I think about it, for every region, since there were physical differences in each preventing you from playing games from other regions :P. May as well just call it system. And exit implies that you've stopped playing, unless you believe that exiting the place where the system is enables you to keep playing.

I think you raise an interesting point, though, with the controller selection being in the system menu when they're ready. Technically, you're right, with the way byuu has it set up now. If we aren't treating it like a program loading files, then renaming it to system carries with it the logic of having to put port selection in the "system" menu and not the emulator "settings" menu.

[quote]
TV(image and sound)
-Volume
-Mute
-Saturation
-Brightness
-Contrast
[/quote]

The true analogy is that if bsnes represents the SNES system, then these are external features represented by your PC monitor and speakers. bsnes is kind and offers program-level settings so you don't have to dick with your monitor or video card drivers every time you use and leave bsnes to get the best picture. PC's are very multi-purpose things, thus the intuitive nature of having such features.
grinvader
ZSNES Shake Shake Prinny
Posts: 5632
Joined: Wed Jul 28, 2004 4:15 pm
Location: PAL50, dood !

Post by grinvader »

I have nothing against bsnes enlarging its userbase... But do you really want Joe Retard and his friends to feel at ease using it (if that's even possible) ?
Sounds like an elitist ass - which is what I am, mind you - but have fun catering to the most stupid and ungrateful layer of humanity that currently exists.
皆黙って俺について来い!!

Code: Select all

<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)
Pantheon: Gideon Zhi | CaitSith2 | Nach | kode54
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

I don't think it's so much catering to one particular group as it is including them in the picture and trying to make things as logical and efficient for everyone, minimizing confusion and inquiries as well. It almost feels like the pursuit of a "standard model" at this point. Sure, it seems masochist at times, but load up one of the first versions of bsnes and there's no question that its GUI has become undoubtedly clearer, prettier, and more efficient over time. What helps is that byuu, for a creator, is incredibly open to logical arguments. He doesn't often override them for his own personal preference, though I totally defend a creator's right to do that.
byuu

Post by byuu »

What helps is that byuu, for a creator, is incredibly open to logical arguments. He doesn't often override them for his own personal preference, though I totally defend a creator's right to do that.
Well, let's be honest ... bsnes is not an end user emulator. Sure, a few people use it that way. But it's never going to replace ZSNES or Snes9X. Those two are getting increasingly accurate while remaining blazingly fast and feature filled.

Why would an end user want to use 3-4x the resources of ZSNES v2 for an accuracy increase that only visibly affects a half dozen obscure golf games? Especially on a laptop's battery?

But at the same time, I don't see that as an excuse for sloppy UI design, or intentionally omitting features that I can quickly and easily add (multitap actually would take me quite a bit of time, mouse/SS even moreso.)

I try and be open, because I look at things like the Firefox 3 "Awesomebar" and the recent Pidgin entry box fiascos, and it really sickens me that the developers are so out of touch with their userbase that they really think they "know better" than everyone else.

I know that I'm a terrible UI designer. I'm a programmer, and have a very poor sense of aesthetics. What seems obvious to me is quite obviously confusing to others. So the input suggestions here actually are very helpful.

But at the same time, I realize that it's ultimately up to the developer to lead a project, and indeed I wouldn't allow persuasion on accuracy issues solely because of speed or the death of important features like savestates. I hope I don't come across like the FF3/Pidgin devs in doing so ...

It's really hard to find that balance between writing a program for myself, and writing a program for everyone else.

I guess I'd just prefer to cater to actual users, eg do what the people here want, while still aiming for the original goals of the emulator. Aside from really burning out lately on the reverse engineering front, it seems to be working okay.
load up one of the first versions of bsnes and there's no question that its GUI has become undoubtedly clearer, prettier, and more efficient over time.
What are you talking about?

Image

That GUI rocked! File had "Load ROM, Reset, Exit" and Help had "About". Clicking "Debug Mode" doesn't appear to do anything at all. Totally awesome :D
DancemasterGlenn
Veteran
Posts: 637
Joined: Sat Apr 21, 2007 8:05 pm

Post by DancemasterGlenn »

byuu wrote:Image
That gives me a warm, fuzzy feeling inside ^_^
I bring the trouble.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

lulz, I guess you can be pretty clean and efficient when you've got two options. I don't remember that far back, I only remember around .017
byuu

Post by byuu »

You guys can still check it out if you want.

byuu.org/files/bsnes_v002_ir9.rar

If you don't mind hacking out SPC700 communications tests on your own, you can get about ~20% compatibility with it. Otherwise, stick to sound-less demos.

Oh and tetsuo, thank you for the suggestions. Yeah, we'll look into reworking things for the next release. I'll just make the name changes for this version, so as not to impede the translators much.
Gil_Hamilton
Buzzkill Gil
Posts: 4294
Joined: Wed Jan 12, 2005 7:14 pm

Post by Gil_Hamilton »

byuu wrote:
What helps is that byuu, for a creator, is incredibly open to logical arguments. He doesn't often override them for his own personal preference, though I totally defend a creator's right to do that.
Well, let's be honest ... bsnes is not an end user emulator. Sure, a few people use it that way. But it's never going to replace ZSNES or Snes9X. Those two are getting increasingly accurate while remaining blazingly fast and feature filled.

Why would an end user want to use 3-4x the resources of ZSNES v2 for an accuracy increase that only visibly affects a half dozen obscure golf games? Especially on a laptop's battery?
Well, if nothing else, it's a great "fallback" emulator.

If you DO happen to run across a bug in your preferred emulator, you can pull out "the big guns" and throw bSNES at the game.
I try and be open, because I look at things like the Firefox 3 "Awesomebar" and the recent Pidgin entry box fiascos, and it really sickens me that the developers are so out of touch with their userbase that they really think they "know better" than everyone else.
Firefox has never been about what the users want.
It's ALWAYS been about a few people thinking they know what's best.
For a long time, the most popular Firefox extensions were ones that added functionality that the developers had decreed meaningless clutter and removed when they forked from Mozilla.

And then they added meaningless clutter that no one wanted, and insulted everyone that told them it was meaningless clutter.


And the "not a memory leak" argument is STILL being thrown around every time someone finds an example of Firefox being totally out of control.

But at the same time, I realize that it's ultimately up to the developer to lead a project, and indeed I wouldn't allow persuasion on accuracy issues solely because of speed or the death of important features like savestates. I hope I don't come across like the FF3/Pidgin devs in doing so ...
You ask for and respond to feedback, and don't just tell people to fuck off when they disagree with you. That's all anyone can do, really.
Locked