Perception of poor Super NES emulation?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic

by on (#21742)
In this post, blargg wrote:
I'm not sure why some people still think SNES sound emulation is lacking (perhaps they're using old emulators).

Because they still use old emulators that run full speed on their handheld hardware or older PC hardware. Because they still use old emulators that may have better emulation of the Super NES PPU or the coprocessors. Because they still use old emulators that are free software, including the right to make a special-purpose fork.

by on (#21746)
What's up with the sudden rant? Someone shouldn't judge the state of emulation by trying an old emulator or one on a resource-limited platform. Also, I figured SNESx was free, portable software and used an up-to-date SPC-700 emulator.

Quote:
Because they still use old emulators that are free software, including the right to make a special-purpose fork.

If this is a reference to bsnes' non-free license, I don't think it could be ported to a handheld platform anytime soon regardless... :)

by on (#21748)
blargg wrote:
What's up with the sudden rant? Someone shouldn't judge the state of emulation by trying an old emulator or one on a resource-limited platform.

But if one cares less about the state of emulation than the state of emulationonoldPCs[1], the state of emulationonresourcelimitedplatforms, or the state of emulationinfreesoftware, what should one do? Buy every family member a tablet PC so that the states of emulationonoldPCs and emulationonresourcelimitedplatforms become irrelevant? Buy out all the developers and make a given emulator into free software, like what happened with the Blender 3D modeling program?

Quote:
Also, I figured SNESx was free, portable software and used an up-to-date SPC-700 emulator.

The latest version is also not available to users of Microsoft Windows operating systems:
In news, snes9x.com site maintainer wrote:
Tons and tons of internal core changes were made to make Snes9x way better than before, and work on more platforms than before.
Unforunetly since the Windows port is radically different than every other port of Snes9x, and no one cared to maintain the Windows port, this release will not have a Windows port. However interested parties who have the neccesary skills can make a Windows port of the source. However if you do, please send the changes back.

In SNES9x WIP page, Ipher wrote:
NOTICE: There were a ton of internal core changes to make SNES9x work MUCH better and on many more platforms than before. Unfortunately the Windows port is so radically differant from the rest of the ports, there is no Windows version for 1.50, as it was not maintained. Feel free to make your own Windows port from the source, but if you do PLEASE send the changes back to the SNES9x team.

Most people aren't willing to reboot to Knoppix just to play a pirated Super NES game, so they download any old thing off Zophar's Graveyard, use it, and complain. Or is recent ZSNES any good?

Quote:
Quote:
Because they still use old emulators that are free software, including the right to make a special-purpose fork.

If this is a reference to bsnes' non-free license, I don't think it could be ported to a handheld platform anytime soon regardless... :)

It's also a reference to Snes9x's "non-commercial" license that excludes the right to distribute copies of Snes9x for a fee:
In Snes9x source code, Snes9x authors wrote:
Snes9x is freeware for PERSONAL USE only. Commercial users should
seek permission of the copyright holders first. Commercial use includes,
but is not limited to, charging money for Snes9x or software derived from
Snes9x, including Snes9x or derivatives in commercial game bundles, and/or
using Snes9x as a promotion for your commercial product.

This restriction makes Snes9x not free software either.

[1] Collapsed into one word to emphasize that this is a distinct topic.

by on (#21758)
Quote:
Because they still use old emulators that are free software, including the right to make a special-purpose fork.


Quote:
If this is a reference to bsnes' non-free license, I don't think it could be ported to a handheld platform anytime soon regardless...


I don't think truly accurate emulation would run on a handheld no matter how much it was optimized. Though if anyone could do it, it would be you, blargg :)

Quote:
This restriction makes Snes9x not free software either.


Ok, I'm sorry in advance for ranting but I take great offense to you or anyone else calling my software non-free. This isn't even your first time spouting this nonsense.

Maybe in your mind bsnes and SNES9x aren't free software, thankfully you aren't the grand arbiter of what is and is not considered free (but feel free to keep spreading these blatant lies around about my software). And yet you probably endorse the GNU license and condemn the four-clause BSD license as non-free. Everyone and their grandmother has to fork projects. I can't think of a single product on Linux that doesn't have at least two identical-in-ideals and purpose programs. The number is usually much higher than that. Sure, alternatives are nice and all; and I have no problem with someone making their own project when they want to take something in their own direction (in other words, really truly make it different from existing alternatives). I can however tell you that end users do not like multiple alternatives. Businesses do not like multiple alternatives. Nobody wants to support 13 incomplete mail clients. They want to support one good, fully functional one.

Of course, sometimes developers simply don't agree (why I didn't simply join the ZSNES team, for example) and alternative projects cannot be avoided. And the way I feel about it is that if you want to make your own version of an emulator: do it yourself. Nothing's stopping you. I spent two years making mine. And I didn't even need to steal someone else's emulator to build off of. The hell if I'm going to grant you permission to steal it, slap on a nice small patch or two and call it your own. The hell if I want my userbase split in half by your two-hour patchjob when you could just as easily send it to me to apply to the main source tree (note: I have accepted 98% of patches sent to me for bsnes thus far; I mainly only reject GPL-submitted code), so we can work together to build the most accurate emulator around. The hell if I want my project stolen from me ala Xfree86->Xorg because some bigname OSS developer decides to get offended over something insignificant and stupid (though I agree Xfree86 development was painfully slow, the licensing change was the worst possible reason to fork the project).

And if you want to talk about non-free software: the GPL is far less free than my license. I allow any developer to look at, benefit from, and take parts of my emulator to improve theirs, and that work is public domain for them to use. No restrictions other than not taking the entire thing (or a large majority of it -- no, I haven't laid out what constitutes "a large portion", instead I prefer people simply ask me if they can use something on a case-by-case basis). How about the GPL? If any piece of viral GPL code gets into your project, now your entire project is either also GPL, or it's now violating the GPL. Even little tiny four-line code snippets like Scale2X apply this license (of course, being an open source library, the four-line algorithm becomes a 300kb source package). And give the copyright of the project to the Free Software Foundation? No thank you, Stallman.

You want a free software license? Look at my libco project. It is 100% public domain. In fact, everything I've ever released has been public domain, except bsnes. Why? Because I spent years of my life on it. Because I want to work with others in a collaborative environment. I don't want someone to fork my development. I want to ensure bsnes stays true to its' goals. I don't want someone releasing a version with hacks for the remaining three games with bugs. End users may not care about accuracy, but there's ZSNES for that already. Leave my work alone. I've given every single emulation finding I've found away to other developers 100% free of charge, and yet you continue to go around acting as if my software is some evil piece of worthless, draconian-licensed crap. Though I guess I can't keep you from spreading such idiocy, but hopefully at least others will see through it.

Lastly, I fully intend to release all of my own personal work on bsnes to the public domain (not to GPL) when I discontinue working on it myself, hence why I've clearly documented all included non-PD source code inside bsnes and make it as easy as removing one define to take out. But no sooner will I release it to PD. And if it's really such a big deal to you, just steal my work anyway. I don't want you to, but realistically: I can't stop you. All of my code is publically available.

Sorry if I've offended you, but I would ask that you please reconsider what you believe to be free, and stop going by some textbook definition or through what Richard Stallman tells you. There is nothing non-free about bsnes; the only thing I ask is basic, human common courtesy. You want something in bsnes? Ask me for it, and I'll almost certainly give it to you. And it will be truly free, with no 20-page litigious legal document attached. But I guess if you consider sending a friendly request to the author before blatantly stealing their work to be so horrible and wrong that it makes bsnes non-free: then I guess, in your mind, yes, it is non-free software.

And lastly, my apologies again to any offense you may take. I tried not to word this post too harshly, and I do appreciate your help and efforts in the community. I just can't help but feel very strongly toward defending what I've spent literally tens of thousands of hours working on.

by on (#21759)
The free that tepples is talking about is freedom for the software itself (and any descendants). BSD-style licenses are about developer freedom, while the code itself (and its descendants) is at their mercy. It would do well for free software proponents to be clear about what kind of free they're referring, since free software has even a third meaning in addition to the above: executables offered for free (without source code).

Also, please reconsider using the term "steal" for copyright infringement, since this "theft" doesn't deprive the original owner of use of the code. Actually, I think the theft you were really referring to was of bsnes' identity, rather than its code (as in the using some of your utility routines in a non-emulator program).

by on (#21760)
Thank you for clarifying. Definitely the best analogy I've heard to date. Still, claiming my emulator is proprietary and non-free without specifying in detail what one means is quite insulting to me, given the amount of time I've invested in it. In fact, one should avoid "non-free" and "proprietary" all together in my opinion, unless of course talking about commercial software. And to consider not using a program because you can't fork it seems even more absurd to me, especially since 95+% of the digital logic used in computers, both in circuits and in programs for them, even while running Linux, is quite proprietary and closed source.

My understanding of the BSD license was that once you had it, you were guaranteed that code to remain in that license format. So all you have to do is follow the two to four clauses in it. It's not as if one can retroactively revoke a BSD license. Now, future releases, could obviously change.

Quote:
Also, please reconsider using the term "steal" for copyright infringement, since this "theft" doesn't deprive the original owner of use of the code. Actually, I think the theft you were really referring to was of bsnes' identity, rather than its code (as in the using some of your utility routines in a non-emulator program).


Sorry, I agree completely with that. Should've known better, given all of the **AA lawsuits and discussions abound. I'll try and be more careful in the future.

The "theft" I was referring to was taking a program, renaming it and releasing it as though someone else owned it. Of course there'd be some references in source and/or on the website somewhere about the original program authors, but that's hardly genuine. How many people know Bero developed the base for FCE Ultra (that aren't also emulation authors)? That's pretty much the rights you give others with the GPL, and I don't care for that. I'm not as much concerned with the fame as I am with the basic respect to ask permission first, and with keeping a unified codebase (if someone improves something, I'd like to add it to my tree, too; without having to go out of my own way to get said changes).

Ah, and one last note: as an example, Richard Bannister asked to be able to build and release his own modified version of bsnes for Macs and I had no problem with that, I didn't even require source code to be released. That, to me, demonstrates I grant more freedom than a GPL license to other developers. Though I kind of put a quick stop to his port thanks to libco's non-portability :/
Anyone is also free to make their own private builds as well. I'd almost certainly allow someone to redistribute their modified builds for any non-win32 ports of bsnes if asked. kode54 always ignores my license and posts his own builds anyway, too, so :P

by on (#21762)
Quote:
And to consider not using a program because you can't fork it seems even more absurd to me, especially since 95+% of the digital logic used in computers, both in circuits and in programs for them, even while running Linux, is quite proprietary and closed source.

The problem when starting with a non-GPL program is that down the line you may find yourself and others dependent on it, with no way to fix bugs or improve the program and then share these changes in public (unless the author decides to let you). Any restrictions a developer exerts over the source code results in less options for users, and the GPL goes further by allowing authors to ensure that no future developer will be able to exert such restrictions (at least legally). Obviously one can come up with situations where developer A puts code under the GPL and developer B refuses to touch GPL code, thus resulting in the use of the GPL reducing options for users to use developer B's services.

On the other hand, PCs are general-purpose machines. Once Treacherous Computing prevents running unsigned code at native speed, then that objection will be more relevant.

Quote:
My understanding of the BSD license was that once you had it, you were guaranteed that code to remain in that license format. So all you have to do is follow the two to four clauses in it. It's not as if one can retroactively revoke a BSD license.

One can still take BSD code, modify it and release executables but keep the source private, so that the original author was indirectly supporting closed-source software. The BSD license certainly doesn't prevent the code from being put under a different license, like the GPL or even for-pay licensing.

Quote:
The "theft" I was referring to was taking a program, renaming it and releasing it as though someone else owned it.

Hence my calling this "identity theft" (since the term is so trendy these days). The identity of the original program is being compromised: the features of the program no longer uniquely identify it. This could also occur if someone copied he functional aspects of your program but not the source code itself, though I don't know how unique bsnes' UI is.

Quote:
I'm not as much concerned with the fame as I am with the basic respect to ask permission first, and with keeping a unified codebase

This is a fundamental issue, for sure. The GPL is appropriate when the author wants to give permission up-front, without consideration of who it is, merely that they make their additions available under the GPL. As you mention, the GPL route gives an author less influence on how others develop improvements, but it still requires that any publicly shared improvements include source code.

Quote:
That, to me, demonstrates I grant more freedom than a GPL license to other developers.

Yes! The GPL isn't about giving individual developers freedom at the expense of others (both users and other developers). It does give greater overall freedom. In your example, Richard Bannister has more freedom (he doesn't have to release his source), but users and other developers wanting the source have less freedom. BSD/public domain is the best way to give each individual developer maximum freedom (BSD mainly covers your legal ass), without any regard to the lower overall freedom that results when some developers use that freedom to restrict others. It comes down to a question of whether you want to hand-pick those you consider good stewards, or give everyone the unconditional opportunity.

Thanks for the discussion so far.

by on (#21767)
byuu wrote:
Ok, I'm sorry in advance for ranting but I take great offense to you or anyone else calling my software non-free. This isn't even your first time spouting this nonsense.

Maybe in your mind bsnes and SNES9x aren't free software, thankfully you aren't the grand arbiter of what is and is not considered free

Would you care to compare with the definitions published by Free Software Foundation, Software in the Public Interest (Debian company), and Open Source Initiative. See "License of Qmail" in this list. Sometimes, products under licenses with a few extra restrictions, such as Pine, Qmail, and bsnes, are called "semi-free", and sometimes semi-free is free enough.

Quote:
And yet you probably endorse the GNU license and condemn the four-clause BSD license as non-free.

Software under a four-clause BSD license is free software; it just can't be combined with software under the GPL into one process.

Quote:
Sure, alternatives are nice and all; and I have no problem with someone making their own project when they want to take something in their own direction (in other words, really truly make it different from existing alternatives). I can however tell you that end users do not like multiple alternatives. Businesses do not like multiple alternatives. Nobody wants to support 13 incomplete mail clients. They want to support one good, fully functional one.

Which is why businesses trust Apache brand software. The Apache software preserves right to publish an experimental fork, but forks cannot use the Apache mark in their names, and they must include a list of attributions in a NOTICE file in the distribution.

Quote:
And the way I feel about it is that if you want to make your own version of an emulator: do it yourself. Nothing's stopping you. I spent two years making mine. And I didn't even need to steal someone else's emulator to build off of. The hell if I'm going to grant you permission to steal it, slap on a nice small patch or two and call it your own. The hell if I want my userbase split in half by your two-hour patchjob when you could just as easily send it to me to apply to the main source tree

How do you plan to handle use case where a patch is controversial, and the developer wants it to get wider test coverage than the developer alone can perform before it is submitted?

Quote:
No restrictions other than not taking the entire thing (or a large majority of it -- no, I haven't laid out what constitutes "a large portion", instead I prefer people simply ask me if they can use something on a case-by-case basis).

Do you accept patches from people who speak three languages, none of which is good English?

Quote:
Leave my work alone. I've given every single emulation finding I've found away to other developers 100% free of charge, and yet you continue to go around acting as if my software is some evil piece of worthless, draconian-licensed crap.

Your product's license has a purpose. The Qmail license has a similar purpose. It just doesn't happen to be the same purpose as those of the GNU, OSI Certified, or Debian projects.

Quote:
Sorry if I've offended you, but I would ask that you please reconsider what you believe to be free, and stop going by some textbook definition or through what Richard Stallman tells you.

Even if I block Mr. Stallman and listen to Eric S. Raymond, he's saying the same thing.

Quote:
There is nothing non-free about bsnes; the only thing I ask is basic, human common courtesy. You want something in bsnes? Ask me for it

Not everybody who uses a computer is fluent in English. If you get a message requesting permission to distribute copies of a modified experimental version of your emulator for testing, but this message is in a foreign language with an obviously machine translated English translation below, what are you going to do with it? Delete it as spam?

Quote:
The "theft" I was referring to was taking a program, renaming it and releasing it as though someone else owned it. Of course there'd be some references in source and/or on the website somewhere about the original program authors, but that's hardly genuine.

The GPL allows an author to require a copyright notice on the program's title screen. This notice can be unobtrusive as the content of the emulator window when no ROM is loaded.
FSF wrote:
If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)

The "NOTICE" system in the Apache License works similarly.

by on (#21770)
Quote:
On the other hand, PCs are general-purpose machines. Once Treacherous Computing prevents running unsigned code at native speed, then that objection will be more relevant.


Ah yes, I'm sure big businesses can't wait for that. Talk about the perfect solution for FOSS software. "Our application runs ten times faster than our competitors' `free' alternatives. You pay for the added performance."
Ah, but it's only to prevent media piracy, right ... sadly, I don't see your average PC user caring about this in the least. They seem more than happy to let their PCs be turned into glorified television sets.

Quote:
One can still take BSD code, modify it and release executables but keep the source private, so that the original author was indirectly supporting closed-source software. The BSD license certainly doesn't prevent the code from being put under a different license, like the GPL or even for-pay licensing.


So basically, BSD or PD says, "I am giving away full freedom for this software package that I have put together. I leave the onus of responsibility on future users of this package", whereas the GPL says, "I am forever taking away control that future developers might have over both this and any work that uses this work".

I see developer freedom as being just as important as user freedom, in this case. Especially when you consider the unbelievably vast majority of end users are not programmers. Such a funny concept, the GPL: "taking away freedom now, to probably grant more freedom later! But it's the only free option! Everything else isn't free." -- `free' by itself is simply far too non-descriptive.

If I'm not mistaken: if it weren't for the BSD-licensed TCP/IP stack, we could very well have two incompatible standards for said traffic, due to Microsoft implementing their own version. And you see how well that worked out for Java. Would be interesting to see if Microsoft would've simply used Java's base if it were BSD-licensed, or if they truly were simply out to destroy Java's reputation as cross-platform by intentionally making it incompatible.
I kind of have that problem with our IPS successor's file format, UPS. On one hand, I want to deny others the rights to modify the spec to preserve compatibility. On the other, I want to give developers freedom to do what they want with the code. Perhaps an Apache-style license would work, eg "Do what you want, but you cannot use the .ups file extension or magic signature".

Quote:
This could also occur if someone copied he functional aspects of your program but not the source code itself, though I don't know how unique bsnes' UI is.


This actually wouldn't bother me as much, as one would have to make the UI themselves; and the program would have to stand on its' own merits of emulation quality.

Quote:
Yes! The GPL isn't about giving individual developers freedom at the expense of others (both users and other developers). It does give greater overall freedom.


Instead of giving freedom to one group of people (the developers most likely to take advantage of the open source status of a program), it gives it to another (the users who mostly don't care if something is even open source or not). Though I guess you can play that down to how many "generations" a project lives on for, as the second set of developers might have some of the rights restricted further if they use the second-generation software instead of the first. I'd personally prefer to leave that up to the second pseudo-author to decide if they want to be altruistic or not. Sometimes people want to be but simply can't. What if they need your module in a project that has a tiny bit of proprietary code in it? By allowing it to remain closed source in that case, you allow your own work to be more generally useful to likeminded individuals (developers, such as yourself). From my understanding of the GPL, I wouldn't be able to use Scale2X in bsnes as it stands without having to relicense my entire project as GPL. Hence I just rewrote the four-line algorithm myself.

So then, how would one feel about dictating that only a certain module has to remain free, ala LGPL? Is that open enough, or are there people who have to take things to such extremes that they consider this too non-free for them as well?

Quote:
Thanks for the discussion so far.


Thank you, I really appreciate the more rational and down to earth analogies. I've read the GPL license and still didn't really understand what it was aiming to do. You've helped clarify that for me.

by on (#21771)
Quote:
See "License of Qmail" in this list. Sometimes, products under licenses with a few extra restrictions, such as Pine, Qmail, and bsnes, are called "semi-free", and sometimes semi-free is free enough.


Again, I choose to form my opinions based on my own rationale, and not from listening to the most vocal mouthpieces such as RMS and Chris Allegretta. The latter article looks like an interesting read though, I'll check it out.
RMS may not consider my project `free', but then I don't consider his / their GPL license to be `free', either. Freedom works both ways, and either way, certain freedoms are lost. You can't have it all. Hence, `free' is a terrible term to use, in and of itself. If you were to say "bsnes grants developer freedom" instead of "bsnes is non-free and proprietary", that would be far more polite and convey the same meaning in your mind; as well as be more clear to those who don't understand the intricacies of each licensing scheme. As I'm sure you're aware, there's a lot of opinions floating around about what `free' means, and each person interprets that meaning differently, apparently.

Quote:
Which is why businesses trust Apache brand software. The Apache software preserves right to publish an experimental fork, but forks cannot use the Apache mark in their names, and they must include a list of attributions in a NOTICE file in the distribution.


I do like that idea. I'll consider that for my future licenses when I'm worried about name-brand dillution. As it stands, if someone wanted to challenge Apache, they'd have to make their program stand on its' own merits, rather than the name.

Quote:
How do you plan to handle use case where a patch is controversial, and the developer wants it to get wider test coverage than the developer alone can perform before it is submitted?


I can and have allowed the developer to distribute their builds for the purposes of testing, though if someone can offer such a larger testing base than me, I'd appreciate it if they helped me with testing my own WIP versions :)

Quote:
Do you accept patches from people who speak three languages, none of which is good English?


I'll try my best. If the language barrier is so severe that I can't understand what their patch is supposed to do from the code and from our communication, I guess it would be virtually impossible to accept it.

Quote:
Your product's license has a purpose. The Qmail license has a similar purpose. It just doesn't happen to be the same purpose as those of the GNU, OSI Certified, or Debian projects.


Mine, as well as GNU's, both have purposes. And neither is more or less free than the other as they both make tradeoffs. You happen to care more about user freedom, whereas I care more about developer freedom.
As great as user freedom is, not one user has stepped up to help port bsnes to Mac OS X. A developer has, though. Probably because users generally aren't programmers.

Quote:
Even if I block Mr. Stallman and listen to Eric S. Raymond, he's saying the same thing.


ESR is more down to earth and realizes that in order to get people to listen to you, you have to have an audience first. And to get that audience, you have to make certain sacrifices. Namely, he supports binary drivers; in hopes that when and if Linux becomes the dominant OS, then and only then can Linux successfully use its ideals to push change in the industry. At least, this is my impression based off of reading his "Linux on the Desktop" articles discussing media playback support and such.

Quote:
If you get a message requesting permission to distribute copies of a modified experimental version of your emulator for testing, but this message is in a foreign language with an obviously machine translated English translation below, what are you going to do with it? Delete it as spam?


Same answer as above. I'd try my best, but if I was simply incapable of avoiding the language barrier, I wouldn't be able to do anything. Given I've spoken to GIGO/SNESGT on numerous occasions despite my Japanese being unbelievably poor, gives me the impression I won't have much of a problem. Japanese and Korean are probably the two hardest languages used by over 10,000 people to machine translate to English, anyway.

---

EDIT: ok, read that Chris Allegretta article.

"Why do I feel this is licenses is as bad as Microsoft's licenses? I don't, I think it's worse."

This statement reeks of zealotry. Yes, this person is actually arguing that no source code is better than source code as a reference with some restrictions. And yet people still listen to him ... absolutely amazing.

So would you too be happier if I stopped releasing my source code all together? I ask since you linked to that article. Not releasing my source would clearly negatively impact everyone and provide no positive benefits whatsoever.

I'm glad I read the article and comments, though. I'll have to add a clause to my license to explicitly condemn willful circumvention of my licensing restrictions via releasing source + patches, and applying the patches on a user's machine locally. Though that should already fairly obviously violate the spirit and intention of such a license anyway, so why not just steal the project instead if you're going to use unethical and morally bankrupt workarounds like that in the first place?

by on (#21776)
byuu wrote:
why not just steal the project instead if you're going to use unethical and morally bankrupt workarounds like that in the first place?

Because unethical and morally bankrupt workarounds like that are the backbone of the law :P

by on (#21777)
byuu wrote:
So basically, BSD or PD says, "I am giving away full freedom for this software package that I have put together. I leave the onus of responsibility on future users of this package", whereas the GPL says, "I am forever taking away control that future developers might have over both this and any work that uses this work".

Forever my @$$. Section 10 of the GNU GPL explicitly leaves works open to the possibility of dual-licensing; the "How to Apply" section even requests that authors add contact information in order to negotiate a dual license.

Quote:
I see developer freedom as being just as important as user freedom, in this case. Especially when you consider the unbelievably vast majority of end users are not programmers. Such a funny concept, the GPL: "taking away freedom now, to probably grant more freedom later! But it's the only free option! Everything else isn't free." -- `free' by itself is simply far too non-descriptive.

Permissive licenses, such as the zlib license, the BSD licenses, and the X11 license, are still free software licenses.

Quote:
Would be interesting to see if Microsoft would've simply used Java's base if it were BSD-licensed, or if they truly were simply out to destroy Java's reputation as cross-platform by intentionally making it incompatible.

Any virtual machine that fails Sun's test suite cannot be labeled as "Java" without risking a trademark infringement lawsuit from Sun. You too can claim common law service mark rights for the name "bsnes".

Quote:
I kind of have that problem with our IPS successor's file format, UPS.

United Parcel Service would also have a problem with it.

Quote:
This actually wouldn't bother me as much, as one would have to make the UI themselves; and the program would have to stand on its' own merits of emulation quality.

In fact, I have envisioned a scheme where an emulator back-end would be a separate dynamically linked module that takes a ROM and a sequence of control inputs and produces a sequence of video frames and audio samples.

Quote:
Instead of giving freedom to one group of people (the developers most likely to take advantage of the open source status of a program), it gives it to another (the users who mostly don't care if something is even open source or not).

Users who intend to use the software in the course of running their business certainly care whether a program is open source because it means they're not restricted to a single source of customization services.


Quote:
I'd personally prefer to leave that up to the second pseudo-author to decide if they want to be altruistic or not.

So you're a fan of permissive licensing.

Quote:
What if they need your module in a project that has a tiny bit of proprietary code in it? By allowing it to remain closed source in that case, you allow your own work to be more generally useful to likeminded individuals (developers, such as yourself). From my understanding of the GPL, I wouldn't be able to use Scale2X in bsnes as it stands without having to relicense my entire project as GPL.

Unless you negotiate a dual license with the author, you can't use the implementation of Scale2x in your project, but you can use another piece of code that performs the same function. The release of your own source code is the payment for the right to use a given brand of implementation.

Quote:
Hence I just rewrote the four-line algorithm myself.

Good job.

Quote:
So then, how would one feel about dictating that only a certain module has to remain free, ala LGPL? Is that open enough, or are there people who have to take things to such extremes that they consider this too non-free for them as well?

Under some circumstances, LGPL is fine. Mozilla Firefox is LGPL (along with MPL), and so is OpenOffice.org.

Quote:
If you were to say "bsnes grants developer freedom" instead of "bsnes is non-free and proprietary", that would be far more polite and convey the same meaning in your mind

I'll say "bsnes grants developer freedom, albeit with limitations that may cause trouble in some cases".

Quote:
Namely, [ESR] supports binary drivers; in hopes that when and if Linux becomes the dominant OS, then and only then can Linux successfully use its ideals to push change in the industry. At least, this is my impression based off of reading his "Linux on the Desktop" articles discussing media playback support and such.

And it looks like Linspire's cnr.com is just what ESR asked for.

Quote:
So would you too be happier if I stopped releasing my source code all together?

No. Some freedom is better than no freedom. I was just pointing out that you aren't the only one who holds alternative views of freedom.

Another thing that just came to mind: You claim that when you finish bsnes you will relinquish all rights under copyright. Have you specified this in writing anywhere, such as in your last will just in case you pass away before bsnes is where you want it?

by on (#21778)
Just to say, SNEX9x 1.43 sound emulation is innacurate (however better that the ZSNES sound emulation, even late versions). I didn't even known they were a SNES9x 1.5 out, but since it's not for Windows, I cannot test it.

by on (#21784)
byuu wrote:
So basically, BSD or PD says, "I am giving away full freedom for this software package that I have put together. I leave the onus of responsibility on future users of this package", whereas the GPL says, "I am forever taking away control that future developers might have over both this and any work that uses this work".

Yes, where "taking away control of future developers" means preventing them from keeping the source code secret. This restriction is at the core of the FSF's philosophy.

Quote:
I see developer freedom as being just as important as user freedom, in this case. Especially when you consider the unbelievably vast majority of end users are not programmers.

Any user of GPL software can find a programmer for hire or possibly a volunteer to fix a problem or improve it, and these improvements will be guaranteed to be available to everyone.

Quote:
Such a funny concept, the GPL: "taking away freedom now, to probably grant more freedom later! But it's the only free option! Everything else isn't free." -- `free' by itself is simply far too non-descriptive.

Here's another funny concept: restricting the absolute freedom of each member of a society so that all members have common rights. There really are tradeoffs with freedom when a system consists of more than one person; give person A complete freedom, and person B will have less freedom. Again, the GPL is primarily about end-user freedom, so in that regard the license really is among the most free (for users).

Quote:
If I'm not mistaken: if it weren't for the BSD-licensed TCP/IP stack, we could very well have two incompatible standards for said traffic, due to Microsoft implementing their own version. And you see how well that worked out for Java.

This is more an argument against Microsoft's tactics than for BSD software and its effect on monopoly-seeking software companies.

Quote:
RMS may not consider my project `free', but then I don't consider his / their GPL license to be `free', either. Freedom works both ways, and either way, certain freedoms are lost. You can't have it all.

Exactly. There is an inherent tradeoff, and GPL takes one approach, BSD another. I don't see any objective reasons for or against either, just a choice based on which freedoms are valued more: developer, user, or primarily the author himself. I can't really criticize an author's values, but I and others can reasonably point out the factual results of that, for example reduced (or increased) freedom of users. For me most things come down to the facts of the situation and people's values/opinions/preferences. The former should be freely statable, and the latter respected (as long as they don't inflict things on others, like a preference for hurting people).

Quote:
Hence, `free' is a terrible term to use, in and of itself. If you were to say "bsnes grants developer freedom" instead of "bsnes is non-free and proprietary", that would be far more polite and convey the same meaning in your mind; as well as be more clear to those who don't understand the intricacies of each licensing scheme.

Yes, a lot more of this would be welcome in some places. I look down on advocates for a particular freedom tradeoff who warp terms in order to push their position.

by on (#21785)
Quote:
Forever my @$$. Section 10 of the GNU GPL explicitly leaves works open to the possibility of dual-licensing; the "How to Apply" section even requests that authors add contact information in order to negotiate a dual license.


Ok, so either a) the original author has to grant you this dual-license (which is apparently a cardinal sin to free software to have to ask permission for something), or b) one can just dual-license to whatever they want and the GPL fails in its' goal to ensure the license rules apply forever. And if the GPL still applies under a dual-license, then the secondary license doesn't really mean much, since it cannot grant new developer freedoms (eg the right to release without source, include proprietary code, etc). Either the second license allows new freedoms and can circumvent the GPL, or it exists only to add additional restrictions.

Quote:
Permissive licenses, such as the zlib license, the BSD licenses, and the X11 license, are still free software licenses.


And again, all of my software, excluding bsnes, is public domain, which is in my opinion the closest you can get to free software.
That you can't respect my wishes for something I spent two years working on and want to call it by obnoxious terms such as `non-free' and `proprietary' and pass that around as fact, when in reality these are just made up definitions and opinions of the words by a collective mouthpiece, is quite distressing.

Quote:
Any virtual machine that fails Sun's test suite cannot be labeled as "Java" without risking a trademark infringement lawsuit from Sun. You too can claim common law service mark rights for the name "bsnes".


So what exactly happened with Microsoft and Java, again? Was that how Sun finally got them to stop distributing Java? Too bad it didn't work before Microsoft successfully dilluted their brand name :/

Quote:
In fact, I have envisioned a scheme where an emulator back-end would be a separate dynamically linked module that takes a ROM and a sequence of control inputs and produces a sequence of video frames and audio samples.


As do I. In fact, I envision an entire new operating system based around innovation, rather than stringent security. You know, for people who want to innovate rather than protect corporate assets.
The idea would be an OS where every process has complete transparent control of other processes. If you need to manually grant this permission for some level of security, fine.
Now, say someone writes a text editor. You don't like the way it handles \r\n, but don't want to modify the existing project's sources, or they may not be available for some reason (maybe they were lost). No problem, write a program that launches the original program, and then hooks into it's window handler, and overrides keyboard presses sent to the textbox widget, and override what happens when the enter key is pressed.
Even on Windows, you can't touch any process handles that don't belong to yours, you can only send them messages and hope the developers listen to them. In my ideal OS, you could build one application out of many smaller applications, adding in your own glue code. No need to edit sources, you have full access to any resources from another application. In fact, you could even link against a running process and call its' functions yourself for the purposes of inter-procses communication.
The ultimate goal would be a system where you only have to write the same thing one time, period. And this goes way beyond shared libraries. You should be able to build on top of smaller building blocks all the way up to combining hundreds of full fledged applications into one unified project. It's easier in theory than in practice to do, but I believe it is quite possible.
It's basically your idea of source code "freedom", but applied to the entire OS, running applications included.

Quote:
Users who intend to use the software in the course of running their business certainly care whether a program is open source because it means they're not restricted to a single source of customization services.


Corporate users who have a business need to play my SNES emulator are free to modify the source code as necessary. Just not to release those changes publically without asking me first.

Quote:
So you're a fan of permissive licensing.


Yes, and GPL is not. I cannot take a GPL app, change it, and release it as public domain. Not dual-licensed, as purely public domain.
My opinion is that libraries and code you would like others to use should be public domain. Your own personal hobby project that you devote years of your life to, I can understand the authors wanting more control over that process. Nobody wants to compete against their own forked project and watch their userbase split in half; or in the case of Xfree86, completely vanish.

Quote:
Unless you negotiate a dual license with the author, you can't use the implementation of Scale2x in your project ...


What?! I have to ask someone? That's preposterous! I should be able to relicense it without asking anyone! What if I don't speak that developer's language? What if he objects to my reasons for wanting to relicense it? What if he dies / disappears? The GPL is clearly a non-free and proprietary license in this case.

Again, this is why these absolute terms presented as fact are terrible. They only serve to condemn others with differing viewpoints. Not wrong viewpoints, merely differing. It's zealotry to use the terms presented here.

Quote:
Under some circumstances, LGPL is fine. Mozilla Firefox is LGPL (along with MPL), and so is OpenOffice.org.


Alright, I'm a fan of LGPL code, myself. Distributing only the code you used and changes to it is hardly unreasonable; neither for the developer nor the end user.

Quote:
I'll say "bsnes grants developer freedom, albeit with limitations that may cause trouble in some cases".


I could add plenty of "albeit" clauses to GPL software, too. Or I could just be respectful to the author and say it grants user freedoms.

Quote:
And it looks like Linspire's cnr.com is just what ESR asked for.


I'll have to look into that further, thanks.

Quote:
No. Some freedom is better than no freedom. I was just pointing out that you aren't the only one who holds alternative views of freedom.


Then apparently you and Chris Allegretta disagree. I've never said my views on freedom weren't an opinion. In fact, I'm not the one goind around posting that other peoples' programs are proprietary and advocating the gnu.org viewpoint that said programs should not be used.

Quote:
You claim that when you finish bsnes you will relinquish all rights under copyright. Have you specified this in writing anywhere, such as in your last will just in case you pass away before bsnes is where you want it?


To be quite frank: if I die, what happens to bsnes is the last of my concerns :P
It's also kind of hard to prove that I've died. I could just have lost internet connectivity for a while. I'll unfortunately have to take my chances that bsnes will be discontinued before I die, and hope that you'd care more about my life than about what happens to my source code when I die :P

by on (#21787)
Quote:
Any user of GPL software can find a programmer for hire or possibly a volunteer to fix a problem or improve it, and these improvements will be guaranteed to be available to everyone.


Well, then you have cases where the projects move too far apart and can no longer be merged. Take Apple's Safari browser for instance. They changed things so radically that Konqueror was no longer able to use said patches. Whereas Apple gained monetarilly as a whole from the work of the Konqueror authors. Though they're cool with that, so whatever.
Whereas by requesting the changes be sent to me, one by one, I can try and keep up with it and prevent the need to fork projects in the first place. I see some benefits in alternative software (and disadvantages to having too many alternatives, it requires a delicate balance between monoculture and having nobody who can help / support your use of an application), but not in forked software. If one stops going by what gnu.org tells you to think, one would see that it's clearly not at all unreasonable to simply submit a patch to an author for direct inclusion into the main source tree.

Quote:
This is more an argument against Microsoft's tactics than for BSD software and its effect on monopoly-seeking software companies.


I think it argues both points. Had Microsoft developed their own internet protocol, BSD and Linux would be forced to emulate it. And we really don't know how ubiquitous it would have become. Maybe it would've killed Microsoft as a company completely, maybe it would've become like NTFS, completely undocumented, with lots of businesses relying on it via MS API abstractions, and only very preliminary, hackish support in Linux / BSD. It's hard to speculate that which didn't happen, but personally I'm quite happy with the end result: you can access all internet services regardless of the OS you use. Now if only the same could be said about those IE-specific webpages ...

Quote:
Yes, a lot more of this would be welcome in some places. I look down on advocates for a particular freedom tradeoff who warp terms in order to push their position.


Agreed.
And to link to this again: http://www.gnu.org/philosophy/license-l ... areLicense

This page sounds exactly like what tepples is describing, and what you said is exactly what they are doing. They are trying to change the meaning of terms and define software that doesn't narrowly fit into their opinions on what free is into those offensive terms. And tepples, along with others, seem to be eating it right up.

Bottom line: "There's no such thing as free software."
The term is contradictory. Everything is a compromise.

by on (#21789)
byuu wrote:
Quote:
Forever my @$$. Section 10 of the GNU GPL explicitly leaves works open to the possibility of dual-licensing; the "How to Apply" section even requests that authors add contact information in order to negotiate a dual license.

Ok, so either a) the original author has to grant you this dual-license (which is apparently a cardinal sin to free software to have to ask permission for something)

Not exactly a cardinal sin. But there are only a few free software distributions with clout comparable to the largest companies. For instance, if you don't like Debian's rules, don't expect to get your work into Debian. If you don't like TheOpenCD's rules, don't expect to get your work into TheOpenCD. If you don't care about not getting into a distribution, your license is fine by some developers.

Quote:
Either the second license allows new freedoms and can circumvent the GPL, or it exists only to add additional restrictions.

It can circumvent the GPL only because the author is being compensated in a different way. "Either you distribute the software under the GPL, or you have to pay me."

Quote:
Quote:
Any virtual machine that fails Sun's test suite cannot be labeled as "Java" without risking a trademark infringement lawsuit from Sun. You too can claim common law service mark rights for the name "bsnes".

So what exactly happened with Microsoft and Java, again? Was that how Sun finally got them to stop distributing Java?

Yes.

Quote:
Too bad it didn't work before Microsoft successfully dilluted their brand name :/

Perhaps "Java applet" was diluted for a time, but server-side Java technology is still strong, and if you ask for "Java 6", you will get Sun's product.

Quote:
Even on Windows, you can't touch any process handles that don't belong to yours, you can only send them messages and hope the developers listen to them. In my ideal OS, you could build one application out of many smaller applications, adding in your own glue code.

Like or unlike the UNIX philosophy?

Quote:
No need to edit sources, you have full access to any resources from another application. In fact, you could even link against a running process and call its' functions yourself for the purposes of inter-procses communication.

Sounds like Smalltalk or something. But a problem with your proposed approach is that it increases coupling, especially when changes to the structure of a program from version to version affect another program's expectation of behavior. Witness a ROM hack's requirement for the (PRG 0) or (PRG 1) version of a ROM.

Quote:
Quote:
I'll say "bsnes grants developer freedom, albeit with limitations that may cause trouble in some cases".

I could add plenty of "albeit" clauses to GPL software, too. Or I could just be respectful to the author and say it grants user freedoms.

Granted.

Quote:
In fact, I'm not the one goind around posting that other peoples' programs are proprietary and advocating the gnu.org viewpoint that said programs should not be used.

OK, I'm granting that you have chosen a license, and other projects have chosen their own licenses. For the majority of users, who just download and run Windows binaries, this is fine.


With that covered, do you have any plans to develop an emulator that runs on more modest hardware?

by on (#21794)
Quote:
If you don't care about not getting into a distribution, your license is fine by some developers.


Nah, I'm not too worried about that. Would be kind of cool, but I'll live.

Quote:
It can circumvent the GPL only because the author is being compensated in a different way. "Either you distribute the software under the GPL, or you have to pay me."


So the author can basically release free-as-in-user software, and give away that software however they want, for money. And then that company is free to do whatever with it and eventually possibly "lock customers in", and that's ok with the RMS camp? But wanting someone to ask you for the code to get it free of charge is "selfish and greedy"? Odd ... I can see the differences, but the former definitely seems more "greedy" to me personally (though I don't consider doing whatever you want with your software at all greedy to begin with). Well, at least the author retains the right to remove the license later on. I was under the impression using it placed that code under GPL / FSF copyright control, so thusly any future work you did on said project would be a derivation of a GPLed product, and hence the GPL would still apply. I'm guessing this "optionally remove the GPL" clause explicitly states it's only for the original author to use and no one else, cause that would be a pretty blatant oversight for circumvention.

Quote:
Like or unlike the UNIX philosophy?


I was really more referring to Win32 and X-Windows GUIs. You can't manipulate a window handle in either if your process doesn't own it. X-Windows goes even farther in that you can't capture keyboard input from other windows by just capturing the global keyboard input. Protecting against keyloggers, but also limiting potential innovative features. There probably is some way to do the keyboard thing, but with Windows it's just GetAsyncKeyState(key). Easy enough that anyone can use it.

Quote:
With that covered, do you have any plans to develop an emulator that runs on more modest hardware?


I don't understand the need for such a program. ZSNES already exists. I believe that even if I did everything in my power to optimize bsnes, I couldn't get it more than 50% faster than it already is. And as a result, my codebase would be far less readable and self-documenting than it currently is. Not to mention, it would be quite difficult to perform these optimizations.

To really optimize things more than 50%, one would have to abandon my emulation approaches and use different techniques such as the "buffered port R/W caches" technique or something. Basically, an entire emulator rewrite would most likely be needed, and no, I really am not up to that task. At least not for SNES emulation :(

I know it's hard to believe, but for how much bsnes does, and the way it does it, it really isn't all that terribly slow. The CPU<>SMP crosstalk is a good ~15-30 times more precise than SNES9x, and from a technical standpoint, as close as you can possibly get through software. About the only thing I really haven't written efficiently is the IRQ/NMI edge detection because it's so ridiculously intricate and sensitive. To date, I haven't been able to optimize it without breaking the edge cases.