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 »

byuu wrote:We'll have cart insertion auto-power on the system, and I guess power off will just be a special pause state, to keep the game in-memory.
That's pretty much how I saw it.
Removing exit ... I just don't know. It's a pretty bold move. I can't think of a single application without a quit option in the main menu. I know, there's the X at the top right (what 99% of people use). And you can escape out of fullscreen mode easily enough, though it's slightly handy to have the exit option there in case people forget the shortkey to exit fullscreen mode. But yeah, it's really pushing it ...
Yes, yes it is bold. Here's another concept, using less dividers:

Code: Select all

Cartridge Port...
Controller Port 1 >
Controller Port 2 >
Expansion Port    >
-------------------
Power             >
Reset
I was thinking about "Leave" at the bottom, but it's a bit goofy because in the hotkey section it's "Exit Emulator." Exit really does pertain to the program, it's hard to use this in the system menu scheme you've created (which I like). I think no one would mind if you put it in the Misc section or removed it.
Last edited by FitzRoy on Wed Sep 24, 2008 2:44 am, edited 2 times in total.
byuu

Post by byuu »

fairly the same just less letters,
Yes, I know about the ternary operator :P
Believe it or not, my copy of MinGW4 and VC2k5 actually generate slightly less efficient code with ternary than with if/else pairs. I was pretty surprised by that, but MinGW4 + assembler output, combined with performance tests showed it to be true.
Yes, yes it is bold.
Alright ... what do the rest of you think about moving exit to misc?

Other ways to close emulator:
- icon at top left or X at top right (windowed mode only)
- right click on taskbar item (windowed mode only)
- alt+F4
- keyboard shortcut binding
- circuit breaker
- physically kicking PC tower as hard as possible
_willow_
Hazed
Posts: 51
Joined: Mon Dec 24, 2007 2:03 am
Location: Russia
Contact:

Post by _willow_ »

System (File ?)
|
|- Log audio data
|- -------------------
|- About
|- -------------------
|- Exit
|
SNES (Console ?)
|
|- Cartridge Port...
|- Controller Port 1 >
|- Controller Port 2 >
|- Expansion Port >
|- -------------------
|- Power >
|- Reset
|
Settings
|
|- Video mode >
|- Video filter >
|- Video frameskip >
|- -------------------
|- Mute audio output
|- -------------------
|- Emulation speed >
|- -------------------
|- Configuration...


And no more misc at all, clean and neat
[url=http://quake2xp.quakedev.com]quake2xp[/url] audio engineer
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

English might not be your native language, so let me just say that game "system" and game "console" are pretty much synonymous. So what is meant by the first system? You're exiting the system, you're viewing something "about" the system? The SNES was also called the SFC in Japan.
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

Awesome.

Power OFF should remember the inserted cart, but should reset ram/registers.
This feature would be even better if bsnes remembers the cart even after exit. So the next time you open bsnes you can go to power on and start playing again (basically bringing back the last game played history)

It would require the gui to tell us there is a game inserted already though, but this could be done in the status bar?

------

Here is my idea, some small changes to _willow_'s format

bsnes (File ?)
|
|- About
|- -------------------
|- Exit
|
Console or System
|
|- Cartridge Port...
|- Controller Port 1 >
|- Controller Port 2 >
|- Expansion Port > (Hidden for now)
|- -------------------
|- Power On/Off (changes dynamically)
|- Reset
|
Settings
|
|- Video mode >
|- Video filter >
|- Video frameskip >
|- -------------------
|- Mute audio output
|- -------------------
|- Emulation speed >
|- -------------------
|- Log audio data
|- -------------------
|- Configuration...

Found some stuff on google for dynamic menu's (different wordings in the same place based on what the program is doing) http://www.google.com/search?client=ope ... 8&oe=utf-8
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

Made a completely new one

There are basically 3 things we're dealing with

Bsnes the program
Snes the console
Display the tv/monitor

Bsnes needs to have:
-About
-Exit
-Configuration
-Audio logging

snes needs to have:
-All ports
-power button(powercycle)
-reset button
-over/underclocking dial

Display needs to have:
-video mode(size)
-video filter(type)
-audio dials(including mute)


bsnes (program/emulator specific stuff)
|
|- About
|- Configuration...
|- -------------------
|- Log audio data
|- frameskip >
|- -------------------
|- Exit
|
Console (physical manipulation of the console)
|
|- Cartridge Port... (auto power on)
|- Controller Port 1 >
|- Controller Port 2 >
|- Expansion Port > (Hidden for now)
|- -------------------
|- Power On/Off (changes dynamically)(replaced with powercycle when advanced option is selected)
|- Reset
|- -------------------
|- Over- Underclocking >(Emulation speed >)
|
Display (tv calibration settings)
|
|- Size > (Video mode >)
|- Type > (Video filter >)
|- -------------------
|- Volume >
|- Mute audio output
|

Not too sure about this last extra one, but it would be awesome for testing translations and such.

Game (things that alter the bahaviour of the rom)
|
|-Patches > (would include an option to dynamically unpatch/patch)
|-Cheats >
_willow_
Hazed
Posts: 51
Joined: Mon Dec 24, 2007 2:03 am
Location: Russia
Contact:

Post by _willow_ »

Application
|
|- Log audio data <checkbox>
|- -------------------
|- About
|- -------------------
|- Exit
|
Emulation
|
|- Cartridge Port...
|- Controller Port 1 >
|- Controller Port 2 >
|- Expansion Port >
|- -------------------
|- Power > (checkbox?)
|- Reset
|
Settings
|
|- Video mode >
|- Video filter >
|- Video frameskip >
|- -------------------
|- Mute audio output <checkbox>
|- -------------------
|- Emulation speed >
|- -------------------
|- Configuration...


My Sparseebo [Thank you] goes to FitzRoy for his note.
[url=http://quake2xp.quakedev.com]quake2xp[/url] audio engineer
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

FitzRoy wrote:I'm afraid I don't know what enough about what Emulation Speed actually does to suggest renaming it to something like "Clock Rate" and moving that over as tetsuo suggests.
Emulation Speed is just the speed at which frames are allowed to render, which can be limited with the Sync to Audio option. i.e. if your soundcard outputs at 48000 samples per second and you're playing an NTSC game, at 100% the next frame won't be rendered until 48000 / (60 * 1) = 800 samples have passed, at 200% it won't be rendered until 48000 / (60 * 2) = 400 have passed, et cetera. (bsnes might not do it that way exactly, but you get the idea)
franpa
Gecko snack
Posts: 2374
Joined: Sun Aug 21, 2005 11:06 am
Location: Australia, QLD
Contact:

Post by franpa »

A bug/issue.

Bsnes creates A folder under "Application Data" even when the Bsnes.cfg file is located in the Bsnes folder. (so, Bsnes is making a empty folder for no reason)
Core i7 920 @ 2.66GHZ | ASUS P6T Motherboard | 8GB DDR3 1600 RAM | Gigabyte Geforce 760 4GB | Windows 10 Pro x64
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

Power On/Off (changes dynamically)(replaced with powercycle when advanced option is selected)
Not only is this difficult to do, why hide the current setting? Did it hide itself on a real system? You should be able to see what mode a switch is on, not have to infer it based on the manifestation of the contrary.
Display (tv calibration settings)
I'm not sure what the TV had to do with resolution duplication and Linear/Point. If anything represents the TV, it's the computer monitor and speakers, which are externally configurable. What bsnes is doing to the output is program specific.

After abandoning the familiar but nonsensical file/help categorization, it's natural to still want familiarity of location. But I say just move Exit to Misc until people realize how unnecessary it is.
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

FitzRoy wrote:
Power On/Off (changes dynamically)(replaced with powercycle when advanced option is selected)
Not only is this difficult to do, why hide the current setting? Did it hide itself on a real system? You should be able to see what mode a switch is on, not have to infer it based on the manifestation of the contrary.
The real thing would change too, it would change from down to up, the button would be in the same place but it would physically look different.
Also it was impossible to turn it on and off at the same time.

Most important reason for it though would be that it saves space.

Also the dynamic menu things looks fairly easy and the the code looks similarish for both windows and linux/bsd
FitzRoy wrote:
Display (tv calibration settings)
I'm not sure what the TV had to do with resolution duplication and Linear/Point. If anything represents the TV, it's the computer monitor and speakers, which are externally configurable. What bsnes is doing to the output is program specific.
I agree that display is not the right wording for it.

Maybe we could go for image, video, view, audiovisual, audio/video
Last edited by tetsuo55 on Wed Sep 24, 2008 4:01 pm, edited 2 times in total.
franpa
Gecko snack
Posts: 2374
Joined: Sun Aug 21, 2005 11:06 am
Location: Australia, QLD
Contact:

Post by franpa »

Something else, why does Bsnes v0.36 sync to the screens refresh rate instead of what happens in 0.35? (sync to display is on, audio is not synced)
Core i7 920 @ 2.66GHZ | ASUS P6T Motherboard | 8GB DDR3 1600 RAM | Gigabyte Geforce 760 4GB | Windows 10 Pro x64
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

What is happening to our posts? I was originally replying to FitzRoy's latest post, but now it's two posts below mine and doesn't contain the comment I was replying to!
byuu

Post by byuu »

Wasn't me. He probably removed the post and re-added it. Or accidentally hit edit instead of quote on someone else's post. I do that one all the damn time.
henke37
Lurker
Posts: 152
Joined: Tue Apr 10, 2007 4:30 pm
Location: Sweden
Contact:

Post by henke37 »

It is not called a cartridge port, it is called the cartridge slot. Btw, can we get less "Set" buttons on the Audio panel? It's kinda silly to have that many buttons. And could you please add keyboard navigation to the configuration?
And to end this list of not that important demands, how about some epsilons on the buttons that opens more windows? I think I mentioned it before, but unless you are going to use it, please hide that "open as readonly" checkbox in the open dialog.
byuu

Post by byuu »

Btw, can we get less "Set" buttons on the Audio panel? It's kinda silly to have that many buttons.
advanced.enable = false, now you have sliders instead of buttons.
And could you please add keyboard navigation to the configuration?
Nope. Windows has only one way to do it, IsDialogMessage(), and there's a bug with it / the statusbar control that causes the main window to beep every time you press a key when its enabled. What happens is that the status bar accepts focus when it shouldn't, and then never returns it. I don't know of a way to work around that.
I think I mentioned it before, but unless you are going to use it, please hide that "open as readonly" checkbox in the open dialog.
Don't know how, I never specified for a readonly box to appear.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

Verdauga, I tried to delete it before anyone replied because I wanted to elaborate my original thoughts, but you managed to quote it within 60 seconds of my posting it. I appreciate you answering that question, though.
tetsuo55 wrote: The real thing would change too, it would change from down to up, the button would be in the same place but it would physically look different.
Also it was impossible to turn it on and off at the same time.
Yes, it was one switch with two settings, both visible regardless of which one it was on. And yes, you can't do both at the same time, that's why there's one checkmark that moves between them. I didn't put a divider between them, did I?
Most important reason for it though would be that it saves space.
It creates a new and redundant class of menu behavior that makes it impossible to know whether you are looking at a 1-entry checkable or a dynamically changing action. There shouldn't be any dynamically changing actions, just actions and checkables.
henke37
Lurker
Posts: 152
Joined: Tue Apr 10, 2007 4:30 pm
Location: Sweden
Contact:

Post by henke37 »

byuu wrote:
I think I mentioned it before, but unless you are going to use it, please hide that "open as readonly" checkbox in the open dialog.
Don't know how, I never specified for a readonly box to appear.
Luckily I do.

Code: Select all

OPENFILENAME::Flags |= OFN_HIDEREADONLY;
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

FitzRoy wrote:Verdauga, I tried to delete it before anyone replied because I wanted to elaborate my original thoughts, but you managed to quote it within 60 seconds of my posting it.
Hah, fair enough. I wouldn't have brought it up because at first it was only my post, but then your post moved beneath franpa's as well ;)
byuu

Post by byuu »

I've asked three other people who don't post here, and they all unanimously want "Exit" in the first menu option. And I do not want the cart loading option to be in anything but the first option.

The only apps I can find without "File->Exit" are the custom-skinned ones: Google Chrome, WMP, Winamp ...

---

Another thing ... Nach (correctly) pointed out that the insertion sort algorithm in nall::sort is shit, at O(n^2). I'm not a fan of Quick Sort, as it's unstable, and I've been sitting on a merge sort O(n log n) version for a while; but in truth I have zero use for it. I've never had to sort anything in any of my apps ...

I was thinking it'd be nice to find a use for it, perhaps add an alphabetical "Sort" button to the cheat code screen (a great use for a stable sort -- unstable could re-order entries with identical descriptions but different codes), but the layout won't work well with a fourth button. Should we redesign that, remove the toggle button (may not be obvious to all you can double click lines to toggle the code as well), or leave the sort out entirely?
t creates a new and redundant class of menu behavior that makes it impossible to know whether you are looking at a 1-entry checkable or a dynamically changing action.
The difference is that it's supposed to be radio boxes for the groups, and checkboxes for toggle options. They all show up in Windows as checkboxes, because that's all it has. The distinction is much clearer on Linux / GTK+.

You're basically advocating removal of all checkboxes, which isn't a terrible idea, given the issue with Windows menus.
Luckily I do.
Awesome. I'll add it tonight, thank you.
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

FitzRoy wrote:
tetsuo55 wrote: The real thing would change too, it would change from down to up, the button would be in the same place but it would physically look different.
Also it was impossible to turn it on and off at the same time.
Yes, it was one switch with two settings, both visible regardless of which one it was on. And yes, you can't do both at the same time, that's why there's one checkmark that moves between them. I didn't put a divider between them, did I?
Aahhh checkmark in the menu item, gotcha.

That works too :)
funkyass
"God"
Posts: 1128
Joined: Tue Jul 27, 2004 11:24 pm

Post by funkyass »

Traditionally the headers for multi-columned list boxes manage the sorting for the data contained, no real need for another button
Does [Kevin] Smith masturbate with steel wool too?

- Yes, but don’t change the subject.
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

That gives me an idea(probably impossible)

the load window could have types
snes rom(any)
bsx rom
and so forth...

But that would mean that bsnes scans the files and creates a library(because windows can only use that function based on extention)
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

byuu wrote:I've asked three other people who don't post here, and they all unanimously want "Exit" in the first menu option. And I do not want the cart loading option to be in anything but the first option.

The only apps I can find without "File->Exit" are the custom-skinned ones: Google Chrome, WMP, Winamp ...
It's important to realize, though, that emulators are unique. They are trying to translate the functions of a machine into a software menu. And if the machine had many ports that could have numerous types and chains of objects attached to them, and power and reset options that cleared ram differently, then that complicates things greatly. This stuff just built up to the point where a typical File menu with Print Preview and Save and Save As just appeared ridiculous. Look at Windows Calculator, it didn't bother to include a file menu just to have Exit. There is no immortal importance surrounding it, and it never even made sense to begin with. If the only reason we can think of for doing it is popularity, then we are officially a mob.
The difference is that it's supposed to be radio boxes for the groups, and checkboxes for toggle options. They all show up in Windows as checkboxes, because that's all it has. The distinction is much clearer on Linux / GTK+.

You're basically advocating removal of all checkboxes, which isn't a terrible idea, given the issue with Windows menus.
Checkables can act just like radio boxes, if you always use separators to group choices. That doesn't mean I wouldn't want unfilled boxes on unselected checkables to better differentiate them from actions. I actually e-mailed Microsoft for kicks to see what they would say, but got a canned response rather than an actual reason for not doing this. This was after blargg pointed out that "..." is technically only for unfinished commands, not anything that opens another window. So in Microsoft's world, something that spawns a new window, something that acts on the opened file, and an unchecked checkable should all look exactly the same in a menu. Crazy.
byuu

Post by byuu »

Look at Windows Calculator, it didn't bother to include a file menu just to have Exit.
Excellent! An application with a normal menubar and no "Exit". So far we have: Calculator, Windows Media Player, Google Chrome and Winamp that we can reference as other similar applications without an exit menu option.

I suppose we'll try it out, and see how it goes.
I actually e-mailed Microsoft for kicks to see what they would say, but got a canned response rather than an actual reason for not doing this.
Yeah, to be honest, I kind of wish Microsoft had more refined HIG. Not crazy on the order of Apple, but at least some sort of semblance. Hell, their own apps all look and act completely different. Wait until you see Windows 7 Paint and Wordpad ... there's like ~20 icons packed at the top left of the window, and I have no idea what any of them do.
This was after blargg pointed out that "..." is technically only for unfinished commands, not anything that opens another window.
Well, at least the current usage of ellipses fulfills that condition, too. And it will after adding them to the window buttons, as well.
Locked