bsnes v0.036 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 »

exdeath wrote:why not create a bios area on the configuration part of the emulator??? a place where the user can go and configure where are bios files needed by the emulator. This would make the emulator more clean.
They're not really BIOS files, and there are too many obscure slotted cart contraptions to even fit in the paths section. And believe it or not, it's actually easier to have users load everything as they expect than ask them to set up some kind of destination of the base cart deep in the configuration area.
Audio bit depth, 16/24/32 (with advanced dithering) (This really helps on some crappy soundcards)
If a sound card can't do 16bit, it doesn't even deserve to be classified as a sound card. The audio industry won't stop at these if you don't draw the line, you know. There was never any worthwhile advantage above 16/48. If it isn't the human limit, then it's so damn close that the slightly detectable difference on amazing equipment is vastly outweighed by the cost, confusion, increased hardware complexity, and bandwidth that these new formats have unleashed. I can't even find anything quickly on audio boards anymore, they're littered with questions about the merits of each as it pertains to choice between audio products based on specs, how to resample between them, which one to record on because they're worred and want the best. It drives me batshit.
henke37
Lurker
Posts: 152
Joined: Tue Apr 10, 2007 4:30 pm
Location: Sweden
Contact:

Post by henke37 »

I know this isn't very portable, but here is an idea (quality checking limited), add some custom controls to the load file dialog and uhm, do something interesting? You could warn for incompatible games, add the ntcs/pal switch and what not. I am sure somebody else can think up a good use for this, I am too tired right now to think clearly.
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

FitzRoy wrote:If a sound card can't do 16bit, it doesn't even deserve to be classified as a sound card. The audio industry won't stop at these if you don't draw the line, you know. There was never any worthwhile advantage above 16/48. If it isn't the human limit, then it's so damn close that the slightly detectable difference on amazing equipment is vastly outweighed by the cost, confusion, increased hardware complexity, and bandwidth that these new formats have unleashed. I can't even find anything quickly on audio boards anymore, they're littered with questions about the merits of each as it pertains to choice between audio products based on specs, how to resample between them, which one to record on because they're worred and want the best. It drives me batshit.
The way i understand sound bitdepth is that it is responsible for the dynamic range of loudness. 16bit is nowhere near the limit of loudness.
To capture the complete dynamic range at sea level you would need 34bit(-20 to +180DB), and thats assuming all the changes will be integers, in reality this is not the case. Humans can hear a difference of 0.0002DB of loudness, the bitdepth would have to rise exponentially for this to be present in a sound recording (i bet floating point 34bit would probably do the trick though).

Still this information does not magically get added to a file when converting 16bit to 32bit. Dithering can add some phychoaccoustics though. The reason i want it is because it prevents my soundcard from using crappy rounding to destroy the original sound (by making the stream match the DAC and SPU exactly)
kode54
Zealot
Posts: 1140
Joined: Wed Jul 28, 2004 3:31 am
Contact:

Post by kode54 »

I hear ASIO is lots of fun to develop for, and Kernel Streaming is no longer supported under Vista.

Oh, and why do we need >16 bit output for a 16 bit signal? Is the resampler introducing noticeably greater dynamic range or something?
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

kode54 wrote:I hear ASIO is lots of fun to develop for, and Kernel Streaming is no longer supported under Vista.

Oh, and why do we need >16 bit output for a 16 bit signal? Is the resampler introducing noticeably greater dynamic range or something?
It's to prevent crappy upsampling by kmixer/hardware, in my case the soundcard internally works at 32/96 anything else gets resampled internally. If i feed it 32/96 the resampler gets disabled.

some 16>32bit dithering can add some psychoaccoustics, the extra data is a guestimate aimed at making the sound less tiring too listen too.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

byuu wrote:Anyway, yeah. I'm going to make ExpPort + Region only visible in advanced mode. Default will be BS-X on + Auto-detect. The BS-X add-on won't interfere with any other games.
When you do this, can you group Expansion Port with the other ports instead of with region?

And if these are going to disappear for average users, let's talk about the radio box option above input. So there are three options:

1. Pause emulation when unfocused (input can't control).
2. Run emulation when unfocused (input controls).
3. Run emulation when unfocused (input can't control).

Now, can someone tell me what the use of #3 is?
kode54
Zealot
Posts: 1140
Joined: Wed Jul 28, 2004 3:31 am
Contact:

Post by kode54 »

tetsuo55 wrote:It's to prevent crappy upsampling by kmixer/hardware, in my case the soundcard internally works at 32/96 anything else gets resampled internally. If i feed it 32/96 the resampler gets disabled.

some 16>32bit dithering can add some psychoaccoustics, the extra data is a guestimate aimed at making the sound less tiring too listen too.
I can understand the 32->96KHz upsampling, but how do get extra information to pad out the extra bits from 16 to 32? I've never heard of dithering to add information on upsampling, it's usually used when downsampling to simulate the higher precision that is usually lost.
byuu

Post by byuu »

Copy-paste from NESdev. Neat little blog, this was one of the programmers who worked on Uniracers. He mentioned that he had to get Nintendo R&D to approve their use of mid-frame OAM writes.

Someone should let him know that thanks to his efforts, true hack-free emulation of all commercial games will require a much more complex PPU renderer :P
Not complaining, quite the opposite. It gives justification to supporting things properly, just like d4s' BoF2 G + partial mul/div results.

http://dailly.blogspot.com/2008/09/wikipedia.html
When you do this, can you group Expansion Port with the other ports instead of with region?
Both expansion port and region need to have their own separators. It just looks bad with so many seps. But they're completely different things.
Now, can someone tell me what the use of #3 is?
Let the game run through a long boring intro while you do other things, listen to game music in a role playing game while you make a quick reply to a friend over IM, allow the use of a live debugger ...

It'd look tacky with only two options anyway (too much blank space), and I don't see what's bad enough about it to warrant its removal.
I know this isn't very portable, but here is an idea (quality checking limited), add some custom controls to the load file dialog and uhm, do something interesting?
I wouldn't know how to do it on either platform. If I were to try this, I'd want to make a custom ROM loading window from scratch. So, maybe in the future. It'll have to be an option, though. Lots of people love their default file open dialogs.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

byuu wrote: Both expansion port and region need to have their own separators. It just looks bad with so many seps. But they're completely different things.
Why do they both need separated? There are three peripheral ports, two switches, and a slot, you may as well group them as such. And region should probably be the only thing being hidden.
Let the game run through a long boring intro while you do other things, listen to game music in a role playing game while you make a quick reply to a friend over IM, allow the use of a live debugger ...

It'd look tacky with only two options anyway (too much blank space), and I don't see what's bad enough about it to warrant its removal.
Keyboard for console games, eh? Well, you probably have a better defense for #3 than #2 then. Only the active window should be getting input, it's a basic modus operandus for computers and with good reason. What I'd like to see is #2 discarded in favor of a true/false advanced setting called "misc.pause_when_inactive". As it is, it's a niche option that uglifies the input section needlessly, and without #2 it no longer has anything to do with input anyway.
byuu

Post by byuu »

Why do they both need separated? There are three peripheral ports, two switches, and a slot, you may as well group them as such. And region should probably be the only thing being hidden.
They may be "ports", but there's a lot of difference between a controller and an expansion port peripheral.

And why show the expansion port setting by default? The BS-X add-on won't affect any non-BSX games, so I don't know why anyone would want to turn it on. And everyone who doesn't know what it is will just be confused by the option.
Keyboard for console games, eh?
It's convenient, and works fine for RPGs, at least.
Well, you probably have a better defense for #3 than #2 then.
Meh. When emulator window does not have focus:

"Allow Input" - you're using a game pad, maybe have the window set to always on top, and want to be able to press buttons regardless of focus.

"Ignore Input" - you're using a keyboard, and don't want IM typing to be sent to the same, but you don't necessarily want to stop the game and music just because you switched a way for a second. More like a real console, where you'd just hit pause and walk away for a bit.

"Pause Emulation" - good for either keyboard or mouse, great for action games and games without a pause feature.

Clutter is an issue, sure. When I have enough other options to justify a miscellaneous panel, I can always move it there.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

byuu wrote: They may be "ports", but there's a lot of difference between a controller and an expansion port peripheral.
Alright.
byuu wrote:And why show the expansion port setting by default? The BS-X add-on won't affect any non-BSX games, so I don't know why anyone would want to turn it on. And everyone who doesn't know what it is will just be confused by the option.
For some reason, I don't like hiding something that the real system had and used. It's informational and harmless even if there's no sense in changing it. Stuff that allows user override of the type of system itself like the region and revision might be better suited for advanced users. They're not really system functions, they're system selections.
Meh. When emulator window does not have focus:

"Allow Input" - you're using a game pad, maybe have the window set to always on top, and want to be able to press buttons regardless of focus.
Yeah, I don't get that one. If you're in another program, you're over there, not holding a gamepad to play the window that just unfocused as a result of going in that other program.
byuu

Post by byuu »

For some reason, I don't like hiding something that the real system had and used.
Yeah, but nobody will ever need to change it. Ever.
Personally, I've always been for the advanced stuff. I tried to make the simple mode at your behest over the "Power Cycle" option. With that gone anyway, I suppose we can just leave all the options visible. If we could then get the audio panel to have the flexibility of advanced with the ease of simple mode, we could kill off the advanced mode concept entirely, which would be nice.

I do have more niche features I'd like to add in the future though, such as CPU/PPU1/PPU2 revision selection. And maybe way down the line, SMP/DSP selection. There's a few very minor variations in the mini-SNES that would be neat to emulate. That would probably not be a good idea for a normal mode. And then of course, the debugger ... one day.
Yeah, I don't get that one. If you're in another program, you're over there, not holding a gamepad to play the window that just unfocused as a result of going in that other program.
You keep switching up which one you don't like x.x
I will agree with you that "Allow Input" is the one I find least useful. Hmm, what if two people wanted to play a game on the same PC at the same time? Two copies of bsnes running, side by side (or on different monitors), each have their own controller in-hand. I'm sure that happens all the time, right? :/
wertigon
Rookie
Posts: 46
Joined: Sat Aug 07, 2004 7:20 pm

Post by wertigon »

Actually, I can see one big use case for that; If you don't have sloppy focus (like in Windows where a window has to be raised to accept input), and you have one browser window open to check a walkthrough, you might want to have the browser window and emulator window side by side to easier permit scrolling.
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

Could we do something like this with the audio panel??

Image

The sliders would only allow the non-advanced settings, the numbers would allow the beyond non-advanced settings.

Adjusting the numbers up/down beyond normal settings would grey-out the slider(thus enabling advanced mode), just like the ati screenshot each one would have a reset button
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

byuu wrote:You keep switching up which one you don't like x.x
Actually, he was still talking about the number #2 of his original post - in yours you put Pause Emulation last, making it number #1 instead ;)
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

byuu wrote: You keep switching up which one you don't like x.x
I was referring to #2 on my list, not #2 that you had just listed.
I will agree with you that "Allow Input" is the one I find least useful. Hmm, what if two people wanted to play a game on the same PC at the same time? Two copies of bsnes running, side by side (or on different monitors), each have their own controller in-hand. I'm sure that happens all the time, right? :/
Can't imagine it ever would. Even so, they'd have to figure out the cfg trick and one of them would have to play without sound. I'd also point out that option-happy emulators you might expect to have it like Nestopia don't go beyond run in background either. No one's ever asked because it's a manufactured scenario.
DancemasterGlenn
Veteran
Posts: 637
Joined: Sat Apr 21, 2007 8:05 pm

Post by DancemasterGlenn »

FitzRoy wrote:Yeah, I don't get that one. If you're in another program, you're over there, not holding a gamepad to play the window that just unfocused as a result of going in that other program.
This actually happens to me all the time, so I'd appreciate it if you not steal my precious setting from me. Clicking back and forth is a small hassle, but a hassle nonetheless... and I'd rather just have to worry about typing with my keyboard and playing a game with my pad rather than also having to move my mouse around to change the focus.

Well, either way, I'd like the option to stay. It's just like a real system anyway... if you're playing and you spin around because your toaster exploded, you're still able to press buttons on your gamepad while your focus has been diverted.

EDIT: Another thing to note, it's also incredibly useful for when I have a friend over who wants to play games while I'm doing online homework or writing emails.
I bring the trouble.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

The real system didn't have you using your controller to control another application on the same system, don't equate physical activities outside the system to that, those are possible in either case.

But basically, no one has ever complained about this in hundreds of other popular emulators and computer games, and bsnes with a userbase 1% the size suddenly has people finding it indispensable? Whatever, at least move it to the advanced section as a 0/1/2 option then, I'm done arguing about it.
byuu

Post by byuu »

byuu wrote:More like a real console, where you'd just hit pause and walk away for a bit.
Glenn wrote:It's just like a real system anyway...
FitzRoy wrote:The real system didn't have you using your controller to control another application
And the real system wasn't a personal computer. AM I RITE GUYS OR WHAT?

Seriously, we all do this, myself included. Maybe we should just be focusing on what makes the emulation experience most enjoyable.

The only real issue seems to be a struggle between simplicity and flexibility. And if GNOME vs KDE cannot figure that one out, what chance do we have?
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

Give these 1 in a million users a shovel and let them dig. No way should this be the first thing people see in the input section.
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

What about this solution

When the emulation window does not have focus:
Pause emulation [](checkbox)(enabled by default)
Allow Input [](checkbox)(disabled by default)(greyed out when pause emulation is checked)

The reasoning for this is:
-Not having focus should automatically dis-allow input
-Imho it's a little more logical and easier to guess what it all means


-----------------

I strongly feel that we should avoid any "advanced modes".

There should be only one mode, it should be clean and intuitive. Anything that isn't used often or does not require quick access can be moved to the configuration panels

I agree with FitzRoy's point that any menu\configuration screen should be ordered by "most to least important" and "most to least often accessed" from top to bottom
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

tetsuo55 wrote: I strongly feel that we should avoid any "advanced modes".
I disagree, there is absolutely no way to avoid having an advanced mode. There are numerous examples of weird stuff like this that barely anyone uses or simply don't fit in existing categories without inventing something. Input resistance? GUI opacity? Global hacks? Wanting something in the background to keep running processes? Crazy Mac users wanting to ignore file extensions? These need a land for misfit toys.
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

FitzRoy wrote:
tetsuo55 wrote: I strongly feel that we should avoid any "advanced modes".
I disagree, there is absolutely no way to avoid having an advanced mode. There are numerous examples of weird stuff like this that barely anyone uses or simply don't fit in existing categories without inventing something. Input resistance? GUI opacity? Global hacks? Wanting something in the background to keep running processes? Crazy Mac users wanting to ignore file extensions? These need a land for misfit toys.
I think the configuration panel is a great place to put all that wierdness.
But it does have a requirement: A very good explenation of what each function does.

I have seen programs where there is a short description off the function, but when you click on the description or hover over the function/description a detailed explenation pops up.

We could even decide to make the advanced type options have red text with a warning icon for the noobs
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

Sorry, I think I just confused advanced mode for an advanced section. I am for the advanced section, not so much an advanced mode.
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

Okay

We definately need a advanced section in the configuration panel.
Locked