snes9xgit / snes9x

Snes9x - Portable Super Nintendo Entertainment System (TM) emulator
http://www.snes9x.com
Other
2.65k stars 457 forks source link

Commits But No Releases? #99

Closed ghost closed 5 years ago

ghost commented 8 years ago

Hi,

I see there have been commits done this year, but when I look at the releases, no version updates in 4 years.

Are there going to be any other new stable releases coming?

thank you

akien-mga commented 8 years ago

As a packager of snex9x for Mageia, I'd be interested to see a new release too :)

OV2 commented 8 years ago

The main issue is that our OSX developer has been absent for a while now, and there has also been no real emulation work done in a while. So we'd have to release without that platform.

akien-mga commented 8 years ago

For an open source projects it's fine IMO if you can provide binaries for all platforms at once. The new release doesn't have to be a huge thing, it can be just a source tarball + binaries for the platforms you can handle (win32 and linux64 would be fine I guess), and let Linux packagers do their work to update their snes9x packages.

And if some regressions are found, you shouldn't hesitate to do a point release shortly after the new one - release early, release often! goes the saying :)

ghost commented 8 years ago

@OV2 is there going to be any new development then going to pick up? Since you mention there's been no real emulation work done in a while?

jcdenton2k commented 8 years ago

Going to update this as it is still an issue. Last 'test build' was here: http://www.s9x-w32.de/dl/testbuilds/

Back on Oct 11 of 2015 and only as a 32-bit version. Would love to see something set up similar to the Orphis Buildbot (or asking Orphis themselves to do it) since they already do it for PPSSPP and PCSX2.

Orphis BuildBot page: http://buildbot.orphis.net/

So can we get the SNES9X devs (those that remain at least) to grant permission for Orphis to do some buildbot builds? Also might help to add on new contributors as needed so they can push new commits and get SNES9X out of the dead-project syndrome it seems to be in.

While there are emulators like bsnes that have perfect accuracy, they are still far too demanding for many average computers so SNES9X is still worthwhile to continue developing. And maybe a name change? Since we aren't in 9X anymore? :)

ghost commented 8 years ago

I'm starting to think working on a core for libretro is the way to go?

Hmm

OV2 commented 8 years ago

There are already multiple snes9x cores available for libretro, even this repository contains one.

The windows testbuilds are put up by me every time something relevant is committed, which has not been the case since oct 11. That build also contains both 32 and 64bit.

akien-mga commented 8 years ago

Back to the topic of rolling out a new release, I still think it might make sense to label some recent state as "stable" release with a tag, since the current latest releases dates back to 2011. Even if the OSX packager is not around, it's perfectly fine to distribute Windows and Linux binaries for a 1.54 version, and only 1.53 binaries for OSX - that might even motivate new OSX contributors to help make binaries.

A new release means many new eyes looking as snes9x and seeing that the project is still alive; even if the changelog contains mostly some bug fixes here and there or buildsystem improvements, it's definitely worth it.

Now, I'm not really familiar with the current developments of snes9x so I can't tell if the current master branch would be release ready or in the middle of a big refactoring, so of course it's your call :)

Release early, release often is always the way to go for a community-driven project.

ghost commented 8 years ago

@ov2 ok thanks

jcdenton2k commented 8 years ago

@OV2:

I've gotten in touch with Orphis and they're willing to host automated builds for SNES9X both Windows and Linux releases on 32-bit and 64-bit.

They need a project maintainer to contact them, their e-mail is on the website here: http://buildbot.orphis.net/

They already do builds for PCSX2 and PPSSPP so their bot does a pretty awesome job of it. It would also make it significantly easier for our Windows users to download SNES9X from a safe and reliable location.

We could also put an official notice on the build page that SNES9X has NO official Android or iOS builds and that any such builds on mobile platforms are unauthorized license-violations and should be reported to Google/Apple respectively.

Awareness is a useful thing and would reduce the team's load on answering tech support questions from clueless people who didn't know about it.

If I'm granted maintainer status here, I could start improving/updating the lack of (any) documentation on this GitHub starting with a ReadMe and perhaps even fleshing out the wiki. I could also coordinate with Orphis far easier to handle new builds and work with other forks to 'upstream' their fixes and improvements to the main version here.

jcdenton2k commented 8 years ago

For everyone else, here's something to enjoy while we wait on updates! :8ball: https://www.youtube.com/watch?v=1SQTgG1y9lE

jcdenton2k commented 8 years ago

Ok so after digging through the commits I've figured out what @OV2 was talking about. All commits since the October 11 2015 test build have been to the unix and x11 files and don't benefit the Windows build at all.

That's good to know, but it wouldn't hurt to release a new 'stable' version rather than trying to get people to find the link to the test builds. Those builds aren't exactly super easy to find but I did link it in a previous post here so perhaps that might help.

In the meantime, it may be more useful to have an updated new 'stable' version and just compile an updated binary for linux & windows both 32-bit and 64-bit.

For the future it may be useful to backport some changes/updates from the retrolib SNES9X-Next version if possible.

jcdenton2k commented 8 years ago

@OV2 I'd like to know if someone on the team can give the green light to Orvis to have their buildbot auto-create updated builds from this github for snes9x for Win32/64 and Linux32/64.

Having a nice centralized 'official' download location outside of the SNES9X forums and random 3rd-party mirrors would instill more confidence in people who want to use this emulator over other inferior ones.

bearoso commented 8 years ago

I don't see any reason to need to ask for permission to do automated builds. It's fine by me.

OV2 commented 8 years ago

I also don't have any problem with automated builds. I'll still upload my testbuilds when there are significant changes, but that does not prohibit any automated build.

jcdenton2k commented 8 years ago

@bearoso @OV2 I've forwarded your comments and a link to this post to Orphis; thank you both for responding :)

Orphis commented 8 years ago

I'll try to setup some CI builds later then. I usually ask for permission to make sure that you know about it. Some people have a habit of building lots of emulators to make money out of it and I don't want to be seen as one of them! Any information about the packaging of the software? What do you prefer?

jcdenton2k commented 8 years ago

@Orphis

I guess I'll poke my head back in here. I'm perfectly ok with just a straight-up automated build from the github for Windows x86 and x64 as well as Linux x86 and x64. I figure anyone who wants customization tailored to their computer can compile it from source themselves.

Taking a very quick glance through the CPU Architecture coding, I didn't notice any way to optimize specifically for any CPUs so a 'generic' compile should work just fine.

jcdenton2k commented 8 years ago

Since Orphis will be doing automated builds based on Github releases, can we close this issue now?

akien-mga commented 8 years ago

As a Linux packager, I would still like to have a tagged upstream release to package.

jcdenton2k commented 8 years ago

@akien-mga

Feel free to get in touch with Orphis and help them with getting the automated linux builds (x86 and x64) ready to go. Build documentation is a bit sparse so it couldn't hurt :)

akien-mga commented 8 years ago

Feel free to get in touch with Orphis and help them with getting the automated linux builds (x86 and x64) ready to go. Build documentation is a bit sparse so it couldn't hurt :)

Well as of 1.53 the build process on Linux was not too difficult: http://svnweb.mageia.org/packages/cauldron/snes9x/current/SPECS/snes9x.spec?view=markup Just replace %configure2_5x by ./configure --prefix=/usr/local, %make_build by make -jX and %make_install by make install DESTDIR=/where/you/want/it/for/packaging.

Now, those are just the steps to build on Linux and install the contents somewhere on the builder's system. Creating portable binaries is more involved work than that, but apart from giving some tips if needed, I don't particularly plan to get much involved; I'm quite busy with the other open source projects I work on, and I'm sadly not too fond of snes9x's freeware license (though I understand that it's likely impossible to get rid of it now) so wouldn't want to spend too much time on it.

jcdenton2k commented 8 years ago

You mean this license?

Permission to use, copy, modify and/or distribute Snes9x in both binary and source form, for non-commercial purposes, is hereby granted without fee, providing that this license information and copyright notice appear with all copies and any derived work.

This software is provided 'as-is', without any express or implied warranty. In no event shall the authors be held liable for any damages arising from the use of this software or it's derivatives.

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.

So I don't see how that license is terrible. As long as you aren't charging money or including it in paid game bundles then it is good to go. You DO realize that GPL'd code is frequently violated without anyone giving a damn (and even non-GPL'd code) so open-source in general is in danger without some legal 'teeth' to prevent obvious assholes like Hyperkin to use code without source code releases as mandated in their RetroN5. People don't even know the RetroN5 is just a portable emulator box that functions as a very pricey cart-dumper and then runs the ROM that is dumped.

That said, that could be part of the reason nobody really wants to touch this with a 20 foot pole lately.

I feel RetroArch is on the right track with many things but they still run into issues when they create custom core fixes but don't send those changes to upstream.

akien-mga commented 8 years ago

Well I don't want to start a discussion about licensing here, it would be quite off topic, and I'm pretty sure there are tons of interesting discussions about this in other places already. But yeah, the "for PERSONAL USE only" clause, just like the NC clause of Creative Commons licenses, makes the Snes9x license effectively a "nonfree" license (i.e. not FSF-free, not OSD-free, not DFSG-free, not Fedora packaging guidelines-free, and hence not free for my distro Mageia either) as far as distributors go.

The license itself is not a problem for users and developers of snes9x, as the "open source BSD/MIT-like as long as it's for personal use" license covers the use case of 99.99% of the snes9x target users. Still, from the standpoint of a Linux distribution trying to promote in priority fully free projects, and wanting to keep the possibility for being distributed on paid support (DVDs, magazines, etc.), such a license has to be categorized as nonfree and the packaged binaries distributed as such. But yeah, in the open source community, a custom license will always be a hindrance. Now, I'm pretty aware that it's probably impossible to change the license of snes9x even if there was a will to do so; and I'm not asking for it either, just saying that I'm not interested enough to start contributing a lot ;)

jcdenton2k commented 8 years ago

Been a bit busy. Haven't seen much activity here so I'll throw something out.

1 - Digital Distribution is the new thing. Paid support is typically done with corporate clients rather than individual users. Aka who the hell uses DVDs and Magazines anymore? ;)

2 - If certain distros only strictly absolutely want to adhere to certain principles then they are welcome to do so. However they should realize that they won't get everyone else to fall in line with them right away (or at all). When it comes to gaming DRM look at Steam vs GoG and although both offer similar services and sales and pricing, GoG has the DRM-free motto yet it still doesn't get anywhere near the exposure/attention that Steam does. It is good to want certain things but there is always a trade-off when you do so.

qwertymodo commented 7 years ago

Any update on a release? I have gotten a lot of people asking me about MSU-1 builds, and I'm fine hosting the test builds that I have, but those builds had some things disabled because I wasn't able to acquire the dependencies, like FMOD, and it would just be nice to actually have a release instead of pointing people to my own personal server like that.

jcdenton2k commented 7 years ago

There hasn't been any updates on this in a while. I believe Orphis received the necessary permissions but I don't see SNES9X available for download from their buildbot server.

http://buildbot.orphis.net/

So things were stalled somewhere and something happened or didn't happen privately that nobody wants to discuss. Oh well :(

OV2 commented 7 years ago

I've made a new testbuild a few days ago with the msu1 and bsx changes.

Orphis commented 7 years ago

Sorry, I'm super busy with real life and have been traveling a lot! I need to find a bit of time to do it soon.

Orphis commented 7 years ago

So, I've spent a little bit of time trying to build it and the process is quite bad.

I suggest you start by modernizing your codebase and structure:

qwertymodo commented 7 years ago

I agree, that in particular could use some refactoring. We could move 3rd party libraries into a 3rdparty directory inside the project tree. And when possible (e.g. zlib), we could even use git submodules so the library could just be checked out with a recursive clone.

Only if you can do so without losing functionality, i.e. replace them (GLSL). There are compile-time switches for a reason, if you can't build against those dependencies, then just disable them.

This one, I agree with, if the Unicode build works, why bother maintaining both?

Again, this would remove functionality without any gain. It's not any extra work to support WinXP, no need to drop it.

Orphis commented 7 years ago

The default project on Windows defines FMODEX as available, this should be removed. What does FMOD(EX) add that regular APIs don't support already?

How many WinXP users do you have? How many will require a new version and won't be satisfied with the current version? By raising the minimum version, you can be sure some APIs are available and thus remove old backends like DirectDraw since you know Direct3D will be available, or even DirectAudio / XAudio2 since you could use WASAPI instead.

OV2 commented 7 years ago
jcdenton2k commented 7 years ago

I'm starting to see why certain things are the way they are and why so few contributors want to help this particular emulator. Yikes :(

That said, perhaps @Orphis might want to consider poking the RetroArch people to port their forked SNES9X build to an actual exe build since it includes the SuperFX speed hack. I'm not 100% on how they maintain their cores but it may be easier to build against than trying to do it directly here.

bearoso commented 5 years ago

Released a bunch of times.