bsnes v0.039 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:I love this graphic and want to have it in the official binary, but it looks really odd when it's only there for one controller type ... should we keep it anyway? If so, I'll embed it with rcc.
Yeah, take it out. Even though I spent like a month on it :) What bothers me isn't necessarily that the other controllers don't have an equivalent (and can't, due to the sheer size of the scope). It's that some users are going to look at it and be like "wtf, that's not what an snes controller looks like." If Nintendo had used a global design and name for the system, I'd probably leave it in.
- frameskipping:
Probably the biggest one, I didn't want to re-add this as the new PPU will make it pointless anyway. If we do add this back for the fast PPU, I'll probably keep the option hidden from the UI side.
Yay, bye bye frameskip.
Jipcy
Veteran
Posts: 768
Joined: Thu Feb 03, 2005 8:18 pm
Contact:

Post by Jipcy »

byuu wrote:- controller graphic:
I love this graphic and want to have it in the official binary, but it looks really odd when it's only there for one controller type ... should we keep it anyway? If so, I'll embed it with rcc.
Please leave it in. I think it's critical for every emulator to show users what the most common/default controller looked like, so they can try to match the button assignments with their own controller.

Every time (not often) I configure a Playstation emulator, I have to look up a picture of a controller, because I don't know which buttons had which shapes, and which order the four shoulder buttons are.
[url=http://zsnes-docs.sf.net]Official ZSNES Docs[/url] | [url=http://zsnes-docs.sf.net/nsrt]NSRT Guide[/url] | [url=http://endoftransmission.net/phpBB3/viewtopic.php?t=394]Using a Wiimote w/ emulators[/url]
belegdol
Hazed
Posts: 68
Joined: Tue Dec 07, 2004 10:24 am

Post by belegdol »

byuu, could you consider shipping a desktop file with bsnes? If installed to DATADIR/applications, users will have a nice menu entry for bsnes:
http://belegdol.fedorapeople.org/bsnes.desktop
Also, I updated diminish' (Polish) translation to 0.039:
http://belegdol.fedorapeople.org/locale.cfg
henke37
Lurker
Posts: 152
Joined: Tue Apr 10, 2007 4:30 pm
Location: Sweden
Contact:

Post by henke37 »

I am sure that we can make up some images for the other controllers, we don't have to keep the same scale on all of them, do we?
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 »

Jipcy wrote:
byuu wrote:- controller graphic:
I love this graphic and want to have it in the official binary, but it looks really odd when it's only there for one controller type ... should we keep it anyway? If so, I'll embed it with rcc.
Please leave it in. I think it's critical for every emulator to show users what the most common/default controller looked like, so they can try to match the button assignments with their own controller.

Every time (not often) I configure a Playstation emulator, I have to look up a picture of a controller, because I don't know which buttons had which shapes, and which order the four shoulder buttons are.
General agreeance with this statement. Also, say you had someone who has never played SNES before (real or otherwise) and they wanted to see the controller layout..
<Nach> so why don't the two of you get your own room and leave us alone with this stupidity of yours?
NSRT here.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

If you can't remember the abxy order, it doesn't take that long to do a google image for "snes controller."
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

FitzRoy wrote:If you can't remember the abxy order, it doesn't take that long to do a google image for "snes controller."
True, but doesn't that contradict your own comment about the patience of users reading the documentation somewhat? If users can't be expected to focus for more than 30 seconds looking at that, won't they be even more annoyed at having to look up a (good) picture of a SNES controller?
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

Verdauga Greeneyes wrote:
FitzRoy wrote:If you can't remember the abxy order, it doesn't take that long to do a google image for "snes controller."
True, but doesn't that contradict your own comment about the patience of users reading the documentation somewhat? If users can't be expected to focus for more than 30 seconds looking at that, won't they be even more annoyed at having to look up a (good) picture of a SNES controller?
It's different, because in this case, they know a correct button order exists, and the internet gives them the capacity to find it. For things like hotkeys and other behaviors, they don't know any of that exists. Thus it's essential that they see the readme and read it, which they will abort doing if its chockfull of obviousness.
henke37
Lurker
Posts: 152
Joined: Tue Apr 10, 2007 4:30 pm
Location: Sweden
Contact:

Post by henke37 »

Your obviousness is another person's unknowns.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

henke37 wrote:Your obviousness is another person's unknowns.
Example?
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

FitzRoy wrote:It's different, because in this case, they know a correct button order exists, and the internet gives them the capacity to find it. For things like hotkeys and other behaviors, they don't know any of that exists. Thus it's essential that they see the readme and read it, which they will abort doing if its chockfull of obviousness.
I suppose you have a point. I'd still prefer a.. well, an integrated solution.
gllt
NO VOWELS >:[
Posts: 753
Joined: Sun Aug 31, 2008 12:59 pm
Location: ALABAMA
Contact:

Post by gllt »

FitzRoy wrote:
henke37 wrote:Your obviousness is another person's unknowns.
Example?
how do I ran in metroid
grinvader
ZSNES Shake Shake Prinny
Posts: 5632
Joined: Wed Jul 28, 2004 4:15 pm
Location: PAL50, dood !

Post by grinvader »

gllt wrote:
FitzRoy wrote:
henke37 wrote:Your obviousness is another person's unknowns.
Example?
how do I ran in metroid
Pretty solid example.

Another would be "how do i started a game of FF6"
皆黙って俺について来い!!

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
Panzer88
Inmate
Posts: 1485
Joined: Thu Jan 11, 2007 4:28 am
Location: Salem, Oregon
Contact:

Post by Panzer88 »

I'd keep the controller in, it's how it looked in the majority of the world (everywhere but the U.S.A.)
[quote="byuu"]Seriously, what kind of asshole makes an old-school 2D emulator that requires a Core 2 to get full speed? [i]>:([/i] [/quote]
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

Panzer88 wrote:I'd keep the controller in, it's how it looked in the majority of the world (everywhere but the U.S.A.)
And even if you didn't know that, can the differently coloured buttons really be confusing/upsetting?
creaothceann
Seen it all
Posts: 2302
Joined: Mon Jan 03, 2005 5:04 pm
Location: Germany
Contact:

Post by creaothceann »

bsnes could detect the computer's time zone, and switch to purple if necessary. :wink:
vSNES | Delphi 10 BPLs
bsnes launcher with recent files list
henke37
Lurker
Posts: 152
Joined: Tue Apr 10, 2007 4:30 pm
Location: Sweden
Contact:

Post by henke37 »

That's silly, it should obviously go for the current locale instead.
byuu

Post by byuu »

New WIP. Sorry about the delay in adding your .desktop file, belegdol. I appreciate you sending it to me.

- worked around a cursor bug in Qt/Xlib: if you started the app and your mouse cursor was on top of where the window appeared, it gave you the "resize window" grip cursor, and it would stay like that. The resize function now ensures you always get the normal cursor.
- worked around a bug in Qt/QGtkStyle: if you pass a default path of "", it throws all kinds of errors at you on the terminal window, I implemented a current working directory system for both folder path selection and file selection (when no default game path is selected.) It starts in your program startup directory (via getcwd()), and will update whenever you choose a valid file or folder without canceling the window.
- icon is now stored in $(prefix)/share/pixmaps instead of $(prefix)/share/icons
- added belegdol's bsnes.desktop. If I can figure out how to get the one from Derrick, his has stuff that makes it auto-suggest bsnes for .SFC files and such. I'll probably add his extensions to it later. This file installs to $(prefix)/share/applications, and bsnes shows up under 'games' now.
- updated src/cart a bit, merged some 5x ~800 byte files to a general cart_loader.cpp file, renamed the functions to be clearer:
cartridge.load_cart_bsc() -> cartridge.load_bsx_slotted();
cartridge.unload_cart_st() -> cartridge.unload_sufami_turbo();

- resized HTML viewer, was too small before, but I think it's too wide now, meh.
- readme was renamed to documentation. I don't care that it's not verbose enough to warrant the name right now. I intend to expand upon it in the future and have it be the general sort of "help" functionality, hence the name change.
- both the documentation and license are now stored inside src/data as HTML files. These are embedded with Qt's resource compiler into the final binary. Easier to edit, and the HTML files can stand on their own.
- I've partially revamped the documentation. It's somewhat of a compromise between my ideas and FitzRoy's. I may expand on it a bit, but I like how it is now, so don't expect many more changes there please.
- Revamped the license stuff a good deal, removed a lot of cruft. Grant of Rights section remains the same, so no legal changes.
bsnes could detect the computer's time zone, and switch to purple if necessary.
The US SNES is an eyesore. Both the console and especially the controller. Fuck it, if they want to see that they can look it up on Google Images :P
FirebrandX
Trooper
Posts: 376
Joined: Tue Apr 19, 2005 11:08 pm
Location: DFW area, TX USA
Contact:

Post by FirebrandX »

The Ascii pad owns all, though. Quite simply the best 3rd party controller ever made, and the only US SNES controller with the proper colors!
NES NTSC palette file:

http://www.firebrandx.com/downloads/fbx2pal.zip
Chester
New Member
Posts: 3
Joined: Tue Feb 17, 2009 3:46 pm
Location: Italy

Post by Chester »

All new features, such as a debugger, will be focused solely on the Qt port.
Hi byuu. So is a debugger on the way?
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

byuu wrote:I've partially revamped the documentation. It's somewhat of a compromise between my ideas and FitzRoy's. I may expand on it a bit, but I like how it is now, so don't expect many more changes there please.
Not in the changelog:

- Fullscreen changed back to showing the menu by default in order to avoid people using the menu to go into fullscreen and not knowing how to get out because they don't know the hotkey.

Somehow I expect this reversion over a real solution. So if I'm Ned Nooberson, now I go into fullscreen and I think to myself "how do I hide the menu?" Maybe I'm clever enough to try the escape key, maybe not. Maybe I'm clever enough to try the F11 key after Alt+Enter, likely I'm not. Say I do figure out the key to hide the menu, that doesn't guarantee I've figured out the existance of a fullscreen hotkey. So instead of just toggling out, I'm always doing it the long way: hitting Esc and then using the menu to get out. I assume there is no better way, why would I?

So I ask again, why isn't it better to FORCE users to know and use the hotkeys by (a) removing the fullscreen option from the menu (b) documenting their existence and (c) slapping the documentation in their face on first run?

Okay, so knowing which filetypes bsnes supports and generates isn't vitally important to operating the emulator. Eventually, people come to realize that SRM = the save file and bsnes generates it, SMC, FIG, and SWC are not like BSX and ST despite having different acronyms from the system, they are equivalent to an SFC file. Eventually they realize that RTC = ? but bsnes generates it so it must be important or something. Somehow this stuff seemed important to expound upon, but maybe I'm underestimating the public's vast knowledge of our messy little world.

Lastly, unemulated hardware is a known limitation, so it doesn't make sense that it's not in that section. Renaming "Known Limitations" to "Missing Features" would be better. I still hold, though, that your unsupported hardware section can be construed as withholding information. Most BSX games flat out don't work, DSP3 sure as heck isn't playable. Would that list be empty if you supported 1% of every chip? What difference does it really make to real people wanting to play the games whether it breaks with partial or no support? If you want to go down this path, it makes no sense to be anything but painstakingly thorough. Either that, or rename it as "Popular Unsupported Hardware" and try to gauge which games are worth mentioning, which infusing your own subjectivity in my opinion.
byuu

Post by byuu »

Chester wrote:Hi byuu. So is a debugger on the way?
Hi Chester, thanks for stopping by! :D
I will have to bug you sometime about the feature set you'd be looking for.

Biggest limitation is no savestates for the debugger, but yes, I'd like to re-add something similar to v013's debugger.
So instead of just toggling out, I'm always doing it the long way: hitting Esc and then using the menu to get out. I assume there is no better way, why would I?
And I spent so much time on that layout idea, trying to cover the most common usage scenarios, too :(

For power users / emu loader tools, I allow loading via command-line / file association to hide the menubar automatically.

For general users, when you enter fullscreen with a cart loaded, the menubar disappears. With no cart, you will have to show the menubar anyway in order to load a cart to play, then hide it again. So it should be shown. It even lets you know there's no cart loaded at the bottom right.

If one insists on loading games in fullscreen mode manually, then one extra key hit after is surely not a big deal.

For idiots, the menubar will stay visible if they go straight into fullscreen mode, allowing them to get out of it.

There is no fool-proof method here that won't hurt one of the three user categories in some way (power/general/idiot)*.

*1 - make 'start in fullscreen' an advanced checkbox, do not save the mode setting on exit, auto-hide the menu when no cart is specified+auto-hide the menu after a cart load from fullscreen.
*1a - maybe add a checkbox to 'hide menu / status bars after cart load'

*2 - keep what I have now, remove fullscreen menu item to enter fullscreen, under the theory that if they get into fullscreen, they can hopefully figure out how to get out. Downside is new people may think the app lacks any kind of fullscreen mode whatsoever. No, nobody stupid is going to read a popup short of making them type the readme text verbatim into a box below to start the app for the first time.

*3 - just don't ever allow starting in fullscreen mode. General user and idiots alike can, in the worst case, hit the power button on their PC and bsnes will be back to safe-old windowed mode on the next run.
(a) removing the fullscreen option from the menu (b) documenting their existence and (c) slapping the documentation in their face on first run?
a) I don't see why we can't have a menu entry as well as a hotkey. We don't remove 'Load Cartridge' because you can do that with a key binding. '[ ] Fullscreen' makes sense under "Video Mode".

b) Should we document the ten other GUI hotkeys? That's what the GUI hotkey window is for. Yeah, there's a problem with people finding that. I don't have a good answer for that ... if we list the GUI keys first, people won't find the joypads. If we list the joypads, people won't find the GUI keys.

Maybe we should pop up an IQ test on first run instead of the documentation that you know idiots won't read if it's over two lines long (assuming they can read) :P
Okay, so knowing which filetypes bsnes supports and generates isn't vitally important to operating the emulator.
The load window tells you the supported types just fine.

But yes, you make a good point about the extensions I suppose. Good enough for me.
I still hold, though, that your unsupported hardware section can be construed as withholding information.
Easy enough,

<h2>Partially supported hardware</h2>
<p>The following hardware support is still considered experimental and has serious known problems. Compatibility and/or playability is not guaranteed.</p>
<b>DSP-3:</b> Coprocessor used by some crappy robot board game
<b>BS-X:</b> Satellite receiver system that streams live audio; flashes physical cartridges with content; and allows users to download games, sound novels, magazines and other such content
Lastly, unemulated hardware is a known limitation
I kind of take issue with that, but we're just splitting hairs here. You can put anything inside an SNES cart. I'm writing a Super NES emulator, not a game cartridge emulator (even if the latter is the end goal.) The cart special chips I add are icing on the cake, and aren't even focused on strict accuracy (due to time constraints, I'd like them all to be timing/bit perfect of course.)
Either that, or rename it as "Popular Unsupported Hardware" and try to gauge which games are worth mentioning
That's what I was going with. I want to list that I don't support SuperFX, SA-1, etc. I know someone who's never heard of the SNES won't know what the hell they are, but I think most people using bsnes would.

I list a few games because that really is obscure info, and they're also extremely ridiculously popular. I really don't know what people see in Super Mario RPG (I know, blasphemy), but one in three posts I see people mentioning something other than a new bsnes release mention that they can't get that game running. At least we can say "you should read the documentation" when they mention it.

Again, the new popup that says an unsupported chip was detected will probably help a lot, too. We'll have to see.
Jonas Quinn
ZSNES Developer
ZSNES Developer
Posts: 115
Joined: Thu Jul 29, 2004 9:51 pm
Location: Germany

Post by Jonas Quinn »

I found a little bug in bsnes with the non-square sprite sizes and vflip.
If you place the sprite at y=$FF the second block shows incorrect tiles.

I modified byuu's test_oam ROM to place the sprites at y=$FF to test this.
byuu

Post by byuu »

Jonas Quinn wrote:I found a little bug in bsnes with the non-square sprite sizes and vflip.
If you place the sprite at y=$FF the second block shows incorrect tiles.

I modified byuu's test_oam ROM to place the sprites at y=$FF to test this.
Nice find, thanks. Could you post the test ROM for me, please?

Suppose I can modify my own, too ... don't have the source for that with me here.
Jonas Quinn
ZSNES Developer
ZSNES Developer
Posts: 115
Joined: Thu Jul 29, 2004 9:51 pm
Location: Germany

Post by Jonas Quinn »

byuu wrote:
Jonas Quinn wrote:I found a little bug in bsnes with the non-square sprite sizes and vflip.
If you place the sprite at y=$FF the second block shows incorrect tiles.

I modified byuu's test_oam ROM to place the sprites at y=$FF to test this.
Nice find, thanks. Could you post the test ROM for me, please?

Suppose I can modify my own, too ... don't have the source for that with me here.
Here it is:
http://rapidshare.com/files/199376465/test_oam.zip.html
Locked