bsnes v0.036 released

Archived bsnes development news, feature requests and bug reports. Forum is now located at http://board.byuu.org/
Locked
byuu

Post by byuu »

Re: frameskip not saving:
Yeah, i didnt report it because it thought it might be on purpose
Yes, that's intentional. I use frameskip a lot, and I don't like the idea of saving it. I know some people need to always use frameskip, but I'd honestly think few people in that category would use bsnes at all. Playing with frameskip absolutely sucks. Further, frameskip will be going away with a dot-based PPU anyway.
So far so good cheat wise. Testing several games and no problems whatsoever.
Awesome, thanks a bunch for testing that :D
By the way, do you think you could make the emulation speed settings universal rather than mode-specific?
The speed settings aren't universal already? I mean, the sync to video option isn't, because you may want to switch it up -- but since I don't have true fullscreen (eg no refresh rate change), I suppose we can make that universal if you like.

The %, and sync to audio, are universal.
Does the cleanup of the OBC-1 code have any effect on its speed or accuracy?
The chip is the most simplistic of all. It's a very, very, very simple memory re-mapper to help with OAM (sprite) table building. It was already bit-perfect. I just cleaned it up a touch, suppose it wasn't really worth mentioning, but there you go.
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

byuu wrote:
Does the cleanup of the OBC-1 code have any effect on its speed or accuracy?
The chip is the most simplistic of all. It's a very, very, very simple memory re-mapper to help with OAM (sprite) table building. It was already bit-perfect. I just cleaned it up a touch, suppose it wasn't really worth mentioning, but there you go.
Every improvement in your eyes is worth mentioning imho(cleanups are improvemtns too)
creaothceann
Seen it all
Posts: 2302
Joined: Mon Jan 03, 2005 5:04 pm
Location: Germany
Contact:

Post by creaothceann »

byuu wrote:Re: frameskip not saving:
Yeah, i didnt report it because it thought it might be on purpose
Yes, that's intentional.
Maybe there could be an "advanced" setting that controls if the frameskip setting gets saved.
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:Re: frameskip not saving:
Yes, that's intentional. I use frameskip a lot, and I don't like the idea of saving it. I know some people need to always use frameskip, but I'd honestly think few people in that category would use bsnes at all. Playing with frameskip absolutely sucks. Further, frameskip will be going away with a dot-based PPU anyway.
I'm curious, why is it that you sometimes but not always need to use it? A computer not being fast enough isn't a sometimes thing...
I mean, the sync to video option isn't, because you may want to switch it up -- but since I don't have true fullscreen (eg no refresh rate change), I suppose we can make that universal if you like.
Yes, sync to video, that's what I meant.

P.S.
I came up with this mock-up today, it's a different loading menu. Basically, it:

1. replaces physical preparations with system actions, making power on/off explicit rather than hiding them
2. groups reset with them, eliminating a bar
3. treats carts the same, eliminating a dupe entry
4. it's readily adoptable for systems with a BIOS/OS to enter (Just add "With Nothing...")

So, it's simpler and more descriptive, but it takes about 1/2 of a second longer to load a standard cartridge. Not a big deal, IMO. The real debate is going to be Power On's behavior. Should it gray out while a game is loaded and make you power off before powering on with another cart like a real system? That's a downside of about 2-3 seconds and an extra click. The upside is that it makes more sense, because you can't power on something that's already powered on.

Image
byuu

Post by byuu »

I do like the menu idea, especially as it allows grouping reset in there; but yes, it will slow down loading normal carts, which is what will be used 99+% of the time.

I'll leave it up to a vote, if most people prefer your idea, then we'll go with it.
I'm curious, why is it that you sometimes but not always need to use it? A computer not being fast enough isn't a sometimes thing...
I use frameskip +9 and disable sync to quickly get to certain parts in games, eg to test bugs and potential fixes, and just generally for playing games quickly.
Maybe there could be an "advanced" setting that controls if the frameskip setting gets saved.
I don't want to bloat the code with options for every last minor detail.
Fras
Hazed
Posts: 54
Joined: Tue Jan 16, 2007 5:32 pm

Post by Fras »

In my case, i would say that the slowdown is trivial. I usually just play 1-3 games when I have started bsnes.
By the way, isn't there a 'load cartridge' quick key? Easily used for quick loading. :D
creaothceann
Seen it all
Posts: 2302
Joined: Mon Jan 03, 2005 5:04 pm
Location: Germany
Contact:

Post by creaothceann »

In my experience, submenus (and subdirectories too) don't bring any advantages for usability as long as the number of items is small enough to fit on one screen. The items can all be together as long as it's easy to see the subgroup they belong to (via separators / common filename prefixes).

How about this?

Image
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 »

creaothceann wrote:In my experience, submenus (and subdirectories too) don't bring any advantages for usability as long as the number of items is small enough to fit on one screen.
Categorizing avoids making excessive duplicates of the same function, it avoids making menu entries sentences, and it keeps other functions as conveniently distanced as possible.

Not readily apparent is that whatever fraction of a second is lost by doing this is probably offset by making Reset, Power Off, Controller Ports, and Exit one to two entries closer than they were before.
franpa
Gecko snack
Posts: 2374
Joined: Sun Aug 21, 2005 11:06 am
Location: Australia, QLD
Contact:

Post by franpa »

I prefer creaothceann's.
Core i7 920 @ 2.66GHZ | ASUS P6T Motherboard | 8GB DDR3 1600 RAM | Gigabyte Geforce 760 4GB | Windows 10 Pro x64
creaothceann
Seen it all
Posts: 2302
Joined: Mon Jan 03, 2005 5:04 pm
Location: Germany
Contact:

Post by creaothceann »

FitzRoy wrote:Categorizing avoids making excessive duplicates of the same function, it avoids making menu entries sentences, and it keeps other functions as conveniently distanced as possible.

Not readily apparent is that whatever fraction of a second is lost by doing this is probably offset by making Reset, Power Off, Controller Ports, and Exit one to two entries closer than they were before.
I'm not against categorizing. (How is "function duplicating" related to this?) Separators also group items into their categories. The advantage is that all options are visible at once. IMO a hierarchy with few "levels" is easier to work with.

It's not primarily about time either. A submenu is just a little bit more annoying each time you use it. The horizontal mouse movement must be relatively precise, otherwise you leave the submenu and it disappears. It's like walking a tightrope.
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 »

Imho they both have something going for them.

FitzRoy's looks cleaner overall.
creaothceann's has less submenus.

I vote for FitzRoy's the slight slowdown and missclick chance is worth it when i consider the following points:

-The power-on with.. list is likely to grow eventually when more cart types get supported, its also prepared for strange combos like using a real action replay image.
-The controller ports are using submenus anyway
-I like FitzRoy's placement of reset, it feels better to me, but creaothceann's idea could be changed to the same placement.

I bet dynamic menus are possible, this would be even beter imho.

On bsnes startup, no rom loaded:

-Power on with....
-Reset(greyed out)
----------
-Controller port 1.....
-Controller port 2.....
----------
-Exit (bsnes)

After loading a rom, the menu options change too:

-Power off, then Power on with....
-Reset
----------
-Controller port 1.....
-Controller port 2.....
----------
-Exit (bsnes)
Last edited by tetsuo55 on Fri Sep 19, 2008 5:02 pm, edited 1 time in total.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

creaothceann wrote: I'm not against categorizing. (How is "function duplicating" related to this?) Separators also group items into their categories. The advantage is that all options are visible at once. IMO a hierarchy with few "levels" is easier to work with.
By duplicating, I'm saying that you're giving variants of the same function their own entries. Imagine what would happen if you applied this to the settings menu. You'd have a list as long as your screen, but it's faster to find a sock in a sock drawer than a sock in a pile with everything else even though you had to open a drawer.
A submenu is just a little bit more annoying each time you use it. The horizontal mouse movement must be relatively precise, otherwise you leave the submenu and it disappears. It's like walking a tightrope.
By that rationale, you've made selecting controllers very difficult under your scheme, because by using a sentence long entry, you've greatly elongated the distance at which a person has to stay on that rope. Mine are so short that this isn't a problem.
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

May i suggest an extra top level menu entry.

system;game;settings;misc

And for the submenus:

"Game"
-Cheats
--On/off (dynamic)
--Load
--Cheat-menu
-Patches
--On/off (dynamic)
--Load

Cheats would allow loading of cheat.file and the regular cheat menu
Patchs would allow loading of patches.file, there would be an option to load an infinite amount of patches

Maybe Reset would be more at home there too.
Last edited by tetsuo55 on Fri Sep 19, 2008 5:13 pm, edited 1 time in total.
byuu

Post by byuu »

Hmmm ... if we're trying to make the descriptions match real hardware, rather than an emulator, and if we're trying to eliminate any delays in functioning ... how about something like this?

Image

NTSC filter would be mandatory, eliminating that menu. Same for video output size. You can't resize a real TV, right?

I used an older style TV because it has all the knobs still. You click and swirl your mouse (anti-)clockwise to adjust volume, TV power, brightness and gamma.

You can either click and drag the power and reset buttons, or you can click on them. Eject works by clicking on it as well.

Now, again, this is just a mockup. Ideally, you'll have a window on the left with all of your cartridges, and another on the right with your controllers. You power on by dragging a cart on top of the SNES cart area, and powering it on. You can click and drag connectors to the SNES, and the connected controllers should be visible on the display.

We could make it use a plugin-based system, so you can use a bigger, more modern Sony Trinitron; or an even older CRT.

Ultimately, the long-term goal would be to take advantage of that new nVision tech for stereoscopic imagery. Make a 3D room where you control an avatar that can interact directly with the virtual TV and virtual SNES. Resizing the video output would be as simple as walking a bit back from the virtual TV.

Yes, I'm just being silly. Not complaining or anything, I very much appreciate that people care enough to nitpick the UI.
gllt
NO VOWELS >:[
Posts: 753
Joined: Sun Aug 31, 2008 12:59 pm
Location: ALABAMA
Contact:

Post by gllt »

It needs a vcr.
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

byuu wrote:Hmmm ... if we're trying to make the descriptions match real hardware, rather than an emulator, and if we're trying to eliminate any delays in functioning ... how about something like this?

Image

NTSC filter would be mandatory, eliminating that menu. Same for video output size. You can't resize a real TV, right?

I used an older style TV because it has all the knobs still. You click and swirl your mouse (anti-)clockwise to adjust volume, TV power, brightness and gamma.

You can either click and drag the power and reset buttons, or you can click on them. Eject works by clicking on it as well.

Now, again, this is just a mockup. Ideally, you'll have a window on the left with all of your cartridges, and another on the right with your controllers. You power on by dragging a cart on top of the SNES cart area, and powering it on. You can click and drag connectors to the SNES, and the connected controllers should be visible on the display.

We could make it use a plugin-based system, so you can use a bigger, more modern Sony Trinitron; or an even older CRT.

Ultimately, the long-term goal would be to take advantage of that new nVision tech for stereoscopic imagery. Make a 3D room where you control an avatar that can interact directly with the virtual TV and virtual SNES. Resizing the video output would be as simple as walking a bit back from the virtual TV.

Yes, I'm just being silly. Not complaining or anything, I very much appreciate that people care enough to nitpick the UI.
Thats awesome.

i would really use that interface :P

It does give me an idea (that would increase the size of the exe immensly) But instead of a black screen you could show an image like your mock-up with the current settings.
The image would change based on controllers, cheats enabled or not(presense of an action replay in the slot), multitab and so forth.

It wouldn't be totally useless, you notice the the wrong controller being connected right from the start and can fix this before loading the game(saves a trip to the menu just for checking controller settings)
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

I think the sad part is I actually remember some people requesting stuff like that, a 3d representation of a room with an snes where you would interact with it and stuff. They just couldn't be at peace with themselves unless the whole bloody experience was recreated down to virtually hooking up wires.

I'm simply bugged by the fact that emulators have all these different menus and we've long struggled to come up with a menu that both makes sense and is easy to use. I knew there had to be an easier way than splitting up load, unload, and power options completely as in stuff like Nintendulator. The answer was to ignore physical actions, and to word it in a way that stated the presence or absence of something in the slot when it's powered on. That implies all the actions needed to get it there.

By the way, one thing I forgot to mention if I haven't already solidified my case for the sub-menu, there are actually two more unemulated cartridges types that could get added in the future.
henke37
Lurker
Posts: 152
Joined: Tue Apr 10, 2007 4:30 pm
Location: Sweden
Contact:

Post by henke37 »

Here is a suggestion: add a setting to hide the advanced cart loading options. Random users are not confused with options they wont use and the people who know what they are doing can easily turn it on.
byuu

Post by byuu »

Well, I have the ability to detect what kind of cart it is. We could limit it to just "Load Cartridge ...", and depending upon what you pick, different things happen.

Normal carts just play, BS-X carts pop up a window to insert the slotted cart, BS-X flash carts pop up a window for the BIOS, and ST carts default to slot A, and pop up with a window for slot B + BIOS. Ideally, I'd leave the BS-X + ST loading screens as they are now, just auto-assign the cart name to the appropriate areas.

Actually, I would need algorithms to detect BS-X and ST. But BS-X Slotted would be easy enough. I imagine Nach could help there.
By the way, one thing I forgot to mention if I haven't already solidified my case for the sub-menu, there are actually two more unemulated cartridges types that could get added in the future.
There are? Which two? PAR/GG + cartridge?
Gil_Hamilton
Buzzkill Gil
Posts: 4294
Joined: Wed Jan 12, 2005 7:14 pm

Post by Gil_Hamilton »

byuu wrote:Hmmm ... if we're trying to make the descriptions match real hardware, rather than an emulator, and if we're trying to eliminate any delays in functioning ... how about something like this?

Image

NTSC filter would be mandatory, eliminating that menu. Same for video output size. You can't resize a real TV, right?

I used an older style TV because it has all the knobs still. You click and swirl your mouse (anti-)clockwise to adjust volume, TV power, brightness and gamma.

You can either click and drag the power and reset buttons, or you can click on them. Eject works by clicking on it as well.

Now, again, this is just a mockup. Ideally, you'll have a window on the left with all of your cartridges, and another on the right with your controllers. You power on by dragging a cart on top of the SNES cart area, and powering it on. You can click and drag connectors to the SNES, and the connected controllers should be visible on the display.

We could make it use a plugin-based system, so you can use a bigger, more modern Sony Trinitron; or an even older CRT.

Ultimately, the long-term goal would be to take advantage of that new nVision tech for stereoscopic imagery. Make a 3D room where you control an avatar that can interact directly with the virtual TV and virtual SNES. Resizing the video output would be as simple as walking a bit back from the virtual TV.

Yes, I'm just being silly. Not complaining or anything, I very much appreciate that people care enough to nitpick the UI.
But.... how do you get behind the TV to adjust the v-hold?
byuu

Post by byuu »

But.... how do you get behind the TV to adjust the v-hold?
That only works on the Linux port at the moment. You use Compiz and rotate the cube ... you can access them on the back of the window from there.
gllt
NO VOWELS >:[
Posts: 753
Joined: Sun Aug 31, 2008 12:59 pm
Location: ALABAMA
Contact:

Post by gllt »

byuu wrote:
But.... how do you get behind the TV to adjust the v-hold?
That only works on the Linux port at the moment. You use Compiz and rotate the cube ... you can access them on the back of the window from there.
Why not lead each side of the tv as a different window and use the group and tabs plugin to tab the back of the tv to the front.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

byuu wrote:Well, I have the ability to detect what kind of cart it is. We could limit it to just "Load Cartridge ...", and depending upon what you pick, different things happen.
Well, I was trying to unhide the power functions and create a standard model usable for systems with a BIOS. There may yet be a way to do as you suggest. What if Power On is simply bsnes starting up, similar to how PSXEmulator operates? I realize that in real life, anti-damage procedure was to power on after loading something, and power off before unloading it. But what if we treat the load/unload commands like you're doing them to a powered system? Then you remove "Exit" and put a "Power > On / Off" above "Reset," and On / Off operates as a shared checkmark in order to show that power is On. Off exits the emulator. That would be an accurate representation of the two buttons.

I dunno, I still like my original one better. The system's add-ons are numerous and confusing, so I like the cart types listed for newbs, and the standard pre-load procedure. And semantically, "Load Cartridge" is not a "System" function. "Power On With Cartridge" is. Then I would change "Settings" to "Program", switch Program with System, and move "Exit" over to Program. Oh, it would be wonderful, byuu, can't you see it? :)
There are? Which two? PAR/GG + cartridge?
No, those are unlicensed. Super GameBoy 1/2, possibly NP flash carts could go in there.
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

Sidestepping the current GUI discussion, byuu, what is your priority for fixing the problems on the errata page? Also, I don't see the joypad polling thing on there, is this intentional?
adventure_of_link
Locksmith of Hyrule
Posts: 3634
Joined: Sun Aug 08, 2004 7:49 am
Location: 255.255.255.255
Contact:

Post by adventure_of_link »

byuu wrote:
But.... how do you get behind the TV to adjust the v-hold?
That only works on the Linux port at the moment. You use Compiz and rotate the cube ... you can access them on the back of the window from there.
While we're at it, where's the channel 3 at the top right corner of the window before you load the ROM, the static, and all that stuff :P
<Nach> so why don't the two of you get your own room and leave us alone with this stupidity of yours?
NSRT here.
Locked