bsnes v0.041 released

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

bsnes v0.041 released

Post by byuu »

byuu.org wrote:bsnes v0.041 released, byuu.org active

I apologize for posting a new version so quickly. This is mostly a maintenance release: joypad analog axes can once again be mapped to the mouse / super scope axis controls, the input capture window has been rewritten to be much more compact, and I've omitted all unneeded features of Qt 4.5 to reduce the final binary size as much as possible (from ~3.33MB to ~2.3MB.) The source archive is also ~20% smaller.

Barring any unforseen problems, this will likely be the last official release for a while.

Also, I finally have dedicated hosting for byuu.org. I ask that you please update any bookmarks to point here, rather than to byuu.cinnamonpirate.com from this point on, as we'd like to free up the cinnamonpirate sub-domain slot.
Probably the fastest full version number bump ever, but I didn't want another 'a' release.
grinvader
ZSNES Shake Shake Prinny
Posts: 5632
Joined: Wed Jul 28, 2004 4:15 pm
Location: PAL50, dood !

Post by grinvader »

You apologise way too often for your own good.

Even for your own bad.
皆黙って俺について来い!!

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
85cocoa
Hazed
Posts: 55
Joined: Sat Jul 22, 2006 8:43 pm
Location: USA

Post by 85cocoa »

This issue which I reported against bsnes 0.040 still exists (emphasis added):[quote="In "bsnes v0.040 released," 85cocoa"]a possible bug in the user interface: The checkbox for the NTSC filter's merge-fields setting doesn't seem to work (i.e. the fields are never merged regardless of the checkbox setting).[/quote]You probably missed this because it was in the middle of a digression about antivirus software and UPX.

EDIT: Linked to the exact post
Last edited by 85cocoa on Sat Mar 14, 2009 8:38 pm, edited 1 time in total.
[url=http://en.wikipedia.org/wiki/Pocky]Pocky[/url] & [url=http://en.wikipedia.org/wiki/Rocky]Rocky[/url]? [url=http://en.wikipedia.org/wiki/Pocky_%26_Rocky]Pocky & Rocky[/url]? [url=http://en.wikipedia.org/wiki/Sonic_the_Hedgehog_%28series%29#Animals.2FMobians]Pocky & Rocky[/url]?
FirebrandX
Trooper
Posts: 376
Joined: Tue Apr 19, 2005 11:08 pm
Location: DFW area, TX USA
Contact:

Post by FirebrandX »

Hey byuu,

I just though of an idea to keep the cord intact without cutting it off on a pic border. Instead I could have it loop around behind the controller from the top. I'll post an alt version here with that idea and see what you think of it.
NES NTSC palette file:

http://www.firebrandx.com/downloads/fbx2pal.zip
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

I recommend sticking to the controller thread for art suggestions this time. Responses to your ideas sort of took over the last one.
Baron_Samedi wrote:hmmmm may be u should release bsnes unpacked too
That wouldn't make sense either, compression of some kind definitely saves bandwidth. I just think self-extracting code is stupid, especially that which is executable-specific, just to squeeze a few more drops out of the towel. It unnecessarily adds to the alphabet soup of compression formats and gives antivirus programs fits. It is not their fault that there are a bajillion trojans that reside and do things in similar fashion.
FirebrandX
Trooper
Posts: 376
Joined: Tue Apr 19, 2005 11:08 pm
Location: DFW area, TX USA
Contact:

Post by FirebrandX »

FitzRoy wrote:I recommend sticking to the controller thread for art suggestions this time. Responses to your ideas sort of took over the last one.
ok, sounds like you're pissed at me, but that's cool.
NES NTSC palette file:

http://www.firebrandx.com/downloads/fbx2pal.zip
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

Not really, I can always build my own version. If you don't want criticism, just say so.
h4tred

Post by h4tred »

I just think self-extracting code is stupid, especially that which is executable-specific, just to squeeze a few more drops out of the towel. It unnecessarily adds to the alphabet soup of compression formats and gives antivirus programs fits. It is not their fault that there are a bajillion trojans that reside and do things in similar fashion.
*facepalm*

* How is PE compression adding to a alphabet soup of compression formats. Sure, you are mangling the PE header of the executable, but so what, it saves space. And there is barely any performance difference. And size does matter.
* AVs need to improve thier static unpackers. UPX is dead easy to unpack (ESP register trick anyone?), so I don't understand why AVs have such bullshit detection. Of course they will say they are 'viruses"' when the file header is fucked up due to how some compressors mangle the import tables/IAT, the PE header, sections and other things.
* And it is thier fault. Just labeling files as trojans JUST because they use a packer is retarded. Either unpack the file into RAM (after detecting if it is packed, and YES there is ways to see if a file is packed) THEN scan or not at all.

Sorry for going overboard byuu, it just annoys me when people say such things without knowledge of reversing.
byuu wrote:Thanks, but the problem isn't on my end, it's with worthless Windows anti-virus software. By working around it, I encourage said behavior to continue. But by refusing to, it'll help put pressure on these companies to write proper software instead of selling snake oil.
My point exactly: We do not have to work around AV developer's refusal to do a decent job.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

h4tred wrote:And size does matter.
To an extent, then the costs incurred by going further begin to outweigh the benefits.

Here's a fun analogy. 100 years ago, when a dollar unit was 30x more valuable relative to a loaf of bread, picking a sticky penny up off the street was worth the effort and risk expended to retrieve it. Today, you wouldn't bother. Nominally, it's the same amount. But nominal gains don't matter, it's the relative gain that has to be weighed.
h4tred wrote:My point exactly: We do not have to work around AV developer's refusal to do a decent job.
They shouldn't have to bother minding it, the obstacle shouldn't exist because you shouldn't be putting it there.

$perGB in bandwidth and hard drive space drops year after year, whatever nominal amount was lost by not using things like UPX and JMA at the time they were created has since been returned many times over by technological progress. The costs now outweigh the relative gains and they should both be deprecated, either in favor of general compression standards or nothing at all.

It's a little bit trickier with things like MP3, but eventually space will be so abundant that having better sounding songs will outweigh the desire to hold more.
ecst
Rookie
Posts: 13
Joined: Fri Nov 14, 2008 1:01 am

Post by ecst »

I usually try to keep out of off-topic discussions, but I feel obliged to mention two things:

* UPX does not add to the "alphabet soup of compression formats" because it is self-extracting. The decompressor comes with the executable, no additional user software required.

* The very concept of antivirus software is fundamentally flawed. There can provably be no algorithm to determine whether a given piece of software has some formally stated property like termination or malicious behaviour.
Thristian
Hazed
Posts: 76
Joined: Tue Feb 07, 2006 11:02 am

Post by Thristian »

ecst wrote:* The very concept of antivirus software is fundamentally flawed. There can provably be no algorithm to determine whether a given piece of software has some formally stated property like termination or malicious behaviour.
*facepalm*

It should be pretty obvious that statement is like saying "the very concept of locks is fundamentally flawed, because there is no material so strong that it cannot be broken with sufficient force". Let's move on.
Baron_Samedi wrote:my avira av said that may be a trojan is in bsnes 0.040
it is highly probable that its a false warning because of to high heuristic
byuu wrote:The executable is clean, but your virus scanner is worthless garbage; that still doesn't realize we live in a post-signature world. AVs need to rely on heuristics (what the program actually tries to do / access), not marking any binary with 'UPX' in it as a virus.
It sounds to me like the worthy Baron managed to get into his anti-virus software's preferences dialog and crank the 'paranoia' dial up to 11. Since "hiding malicious code" is one of the many, many possible uses of executable compression, the now-highly-paranoid virus-scanner marked it as a potential threat.

I think the lesson here is not "executable compression is Bad and Wrong", nor is it "Anti-virus software is Bad and Wrong", but rather "excessive paranoia makes you waste time worrying and arguing when you could otherwise be having fun".
franpa
Gecko snack
Posts: 2374
Joined: Sun Aug 21, 2005 11:06 am
Location: Australia, QLD
Contact:

Post by franpa »

byuu wrote:Thanks, but the problem isn't on my end, it's with worthless Windows anti-virus software. By working around it, I encourage said behavior to continue. But by refusing to, it'll help put pressure on these companies to write proper software instead of selling snake oil.
Well it puts pressure on them to add a signature exception...
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 »

ecst wrote:UPX does not add to the "alphabet soup of compression formats" because it is self-extracting.
Why would its self-extracting nature absolve it? Do developers not expend time learning about it and using it? Do users and those trying to help them not expend time troubleshooting false positives begotten by it? Do we not expend time arguing about its merits even though it is a practical redundancy now?

http://en.wikipedia.org/wiki/Alphabet_soup

UPX is very much is a part of the alphabet soup of active compression formats.
byuu

Post by byuu »

You apologise way too often for your own good. Even for your own bad.
I know, and it makes people assume less sincerity when it's something really important (even though that's definitely not the case.)
a possible bug in the user interface: The checkbox for the NTSC filter's merge-fields setting doesn't seem to work (i.e. the fields are never merged regardless of the checkbox setting).
Oh well. At least it defaults to the much more useful non-merged mode. We'll have to get it in v042.
* AVs need to improve thier static unpackers. UPX is dead easy to unpack
The tool itself is under the GPL. Include the executable and shell it with upx -d before scanning. Perhaps do this only when you get a 'potential positive' on a virus.

They make the tool that scans for viruses, so it is their responsibility to be as thorough as possible.

I don't refuse to fix Mecarobot Golf or Megalomania for relying on obscure HDMA timing conditions, saying the game should be more like other games. I fix my emulator (while simultaneously bitching about how poorly programmed the game is.)
To an extent, then the costs incurred by going further begin to outweigh the benefits.
Option 1) distribute raw EXE. 6.3MB per download.
Option 2) distribute 7-zip file. 2.35MB per download, ~90% of users need to get a new utility to extract it.
Option 3) distribute ZIP file. 3.1MB per download, everyone post-Win9x can extract it, but they have to take an extra step after downloading.
Option 4) UPX. 2.3MB per download, end-users don't need any additional software anywhere. Just run the program directly.
$perGB in bandwidth and hard drive space drops year after year
95% of hosts lie their asses off about "unlimited" bandwidth and such. They just cancel your account for TOS / AUP violations if you actually end up using it. Remind you of US cable / DSL companies much? They want to sell the "unlimited" plans to old ladies hosting cat picture websites.

20GB of bandwidth a month from a real host costs roughly $150 a year. That equates to:
3,100 downloads / raw EXE
6,450 downloads / ZIP
8,700 downloads / UPX EXE
Each new releases causes a massive spike in downloads.

If you want to pay me $100-200 a year for my hosting bill, then I can provide a ZIP version. $300 and I'll post it as a raw EXE. Otherwise, I'd rather conserve the bandwidth.
It should be pretty obvious that statement is like saying "the very concept of locks is fundamentally flawed, because there is no material so strong that it cannot be broken with sufficient force". Let's move on.
I took it as more 'anti-virus software is the wrong approach.'

This notion that apps should have 100% access to your entire hard disk, and able to install ring-0 drivers when run, is ridiculous. OpenBSD doesn't even take security seriously enough.

No application should have access even to a user's home directory unless the user explicitly grants it. Apps should default to being self-contained file systems ala OS X .dmg files. The user should be able to grant read and/or write access to recursive paths at their preference via the OS. It can do this with ring-0 popup warnings whenever the app tries to do something restricted for the first time, and ONLY one time.

Now what can malware do if you run it? It can't read or write any personal documents in your home folder. It can't communicate online. It can't install key logging drivers or query the real-time state of your keyboard when it does not have focus.
Why would its self-extracting nature absolve it? Do developers not expend time learning about it and using it? Do users and those trying to help them not expend time troubleshooting false positives begotten by it?
Developers: upx --best file.exe
99% of users: run like a normal EXE
1% of power users with broken AVs: upx -d file.exe once; run like a normal EXE

I thought I was clear that I'm keeping the current model, so I'm not sure what the problem is with arguing its merits. You guys are free to debate anything you want ad infinitum, that's not limited to UPX.
gllt
NO VOWELS >:[
Posts: 753
Joined: Sun Aug 31, 2008 12:59 pm
Location: ALABAMA
Contact:

Post by gllt »

"Option 2) distribute 7-zip file. 2.35MB per download, ~90% of users need to get a new utility to extract it. "

after the comma that point is still moot if you use self-extracting archives but I imagine that after the fact of packing it as such that UPX does a better job at that point anyhow.

:P
byuu

Post by byuu »

gllt wrote:if you use self-extracting archives but I imagine that after the fact of packing it as such that UPX does a better job at that point anyhow.
But what if virus scanners detect it as a threat? :P
gllt
NO VOWELS >:[
Posts: 753
Joined: Sun Aug 31, 2008 12:59 pm
Location: ALABAMA
Contact:

Post by gllt »

byuu wrote:
gllt wrote:if you use self-extracting archives but I imagine that after the fact of packing it as such that UPX does a better job at that point anyhow.
But what if virus scanners detect it as a threat? :P
Get the Absinthe. :P
byuu

Post by byuu »

What I would like to see is one-time UPX.
You max compress it and send it out, and on the first run it decompresses and writes the file back as the uncompressed version. No need to pick a new folder / filename to extract to. No additional dialog box on first run.

Even better if it can write out additional files, so you can 'embed' DLLs with your app distribution.
Lazarus
Rookie
Posts: 13
Joined: Tue Aug 29, 2006 2:51 am

Post by Lazarus »

I hadn't tried bsnes since v0.034 because http://repository.cinnamonpirate.com doesn't get updated and I was too lazy to build from source... until now!

In case anyone out there is wondering how to build bsnes from source in Debian unstable: I found out through trial and error that I needed to install (build dependencies) the following .deb packages: pkg-config libxv-dev libsdl1.2-dev libqt4-dev qt4-designer libao-dev libasound2-dev libopenal-dev libpulse-dev.

The main difference for me between v0.034 and v0.041 is that it was a little too heavy then (choppy audio) and now it runs smoothly - on a crappy Intel Celery even! Well done, byuu.

And now, a 'question': keyboard shortcuts? I don't know if they exist (except for Esc), but I can't find any information on them in the menus, the help file or the .cfg file. In fullscreen mode, I'd like to be able to minimize (or unmaximize) bsnes without having to disable fullscreen first - but either way it would be nice if I could assign keyboard shortcuts for these actions.
byuu

Post by byuu »

I've updated my default site layout. I avoided using any CSS3 properties, so it should look the same everywhere now. Well, except with IE7 and below. Old theme is still available under Misc -> Site Themes if you prefer it.
I hadn't tried bsnes since v0.034 because http://repository.cinnamonpirate.com doesn't get updated and I was too lazy to build from source... until now!
Sorry. Derrick's main PC is a Loongson MIPS-clone, so the i386 port is no longer being updated :(
The main difference for me between v0.034 and v0.041 is that it was a little too heavy then (choppy audio) and now it runs smoothly - on a crappy Intel Celery even!
Wow cool, must be a newer Celery.
Be sure to profile it too for an extra ~15% speed boost :D
And now, a 'question': keyboard shortcuts? I don't know if they exist (except for Esc), but I can't find any information on them in the menus, the help file or the .cfg file.
The keyboard shortcuts that exist are under Settings -> Configuration -> Input -> User interface (it's the third option after the two controller ports.)

There's no key binding to minimize / maximize windows, for that I'd recommend relying on your desktop environment. Win7 has Win+Up / Win+Down, and GNOME + Xfce at least have window manager shortcut keys that are user-assignable.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

byuu wrote:I don't refuse to fix Mecarobot Golf or Megalomania for relying on obscure HDMA timing conditions, saying the game should be more like other games. I fix my emulator (while simultaneously bitching about how poorly programmed the game is.)
So you're comparing your decision to bad code in Mecarobot Golf?
Option 3) distribute ZIP file. 3.1MB per download, everyone post-Win9x can extract it, but they have to take an extra step after downloading.
Seems about right. Instead of performing two clicks, you'd rather it be extracted on run over and over?
If you want to pay me $100-200 a year for my hosting bill, then I can provide a ZIP version. $300 and I'll post it as a raw EXE. Otherwise, I'd rather conserve the bandwidth.
What was the vital flaw in my e-rice recommendation? Take a look at the static options.
Last edited by FitzRoy on Sun Mar 15, 2009 5:51 pm, edited 2 times in total.
byuu

Post by byuu »

FitzRoy wrote:So you're comparing your decision to bad code in Mecarobot Golf?
At least I didn't use a car analogy.
Seems about right. Instead of performing two clicks, you'd rather it be extracted on run over and over?
Yes. The latter is transparent to the user, the former is not.
Not sure what to tell you, I absolutely love the uTorrent model. It's too bad Qt is so large, because otherwise bsnes would be just as small an executable as well.
What was the vital flaw in my e-rice recommendation?
I don't trust them to not pull the plug when / if I get a massive bandwidth spike.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

byuu wrote:The latter is transparent to the user, the former is not.
You've calculated how many runs it would take for the delay caused by decompression to exceed 1 second and it never does?
I don't trust them to not pull the plug when / if I get a massive bandwidth spike.
If you can't do it with one location, use several. By the way, did you just offer to accept donations? We could come up with 5 years of Static B on this forum alone.
tetsuo55
Regular
Posts: 307
Joined: Sat Mar 04, 2006 3:17 pm

Post by tetsuo55 »

UPX error's are very common.

Just upload the false positive to the virusscanner creator.
when in doubt you can always upload to http://www.VirusTotal.com
FirebrandX
Trooper
Posts: 376
Joined: Tue Apr 19, 2005 11:08 pm
Location: DFW area, TX USA
Contact:

Post by FirebrandX »

Byuu, I remember you were always against it, but is there a chance you might reconsider putting in a history feature? Just the top 5 most recently played would be really nice. I'm playing CT again and it's kind of a pain to have to navigate to the rom every time I run bsnes.
NES NTSC palette file:

http://www.firebrandx.com/downloads/fbx2pal.zip
Locked