Introducing the VeriSNES (FPGA-based SNES)

Discussion of hardware and software development for Super NES and Super Famicom. See the SNESdev wiki for more information.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by tepples »

The Blender 3D modeling program was proprietary until its bankrupt publisher NaN agreed to let the community buy it from them for $100,000. The money was collected over the course of the third quarter of 2002, proving the viability of Internet crowdfunding and paving the way for Kickstarter in 2009.

So how much money would be just compensation for a free software license for this project?
syboxez
Posts: 32
Joined: Tue Mar 01, 2016 8:22 pm

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by syboxez »

tepples wrote:The Blender 3D modeling program was proprietary until its bankrupt publisher NaN agreed to let the community buy it from them for $100,000. The money was collected over the course of the third quarter of 2002, proving the viability of Internet crowdfunding and paving the way for Kickstarter in 2009.

So how much money would be just compensation for a free software license?
I think the question of how much money varies from product to product. It also depends on how much the developer values their work.

Also open source does not necessarilly mean lack of money, especially in the retro gaming community. Just look at the SD2SNES, OSSC, MIST, and the previously mentioned ZX Uno. All of those are open source projects, and none of them see a substantial loss in sales as a result. I think that making the VeriSNES open source would not impact sales of a potentially new board design that includes this core. The MIST specifically benefits greatly from being open source as they can legally distribute GPL2 and GPL3 licensed FPGA cores for many other systems, giving their product much more value for the cost.

Also (to jwdonal specifically), I'm not aware of any legal issues surrounding releasing the verilog for this project, as you used clean room reverse engineering to develop it, and the fact that there are other examples of verilog being released for other reverse engineered consoles (including Nintendo consoles) such as minimig or FPGANES with zero legal repercussions.

Open sourcing the SNES FPGA core would be a great help to the community and would truely let the SNES live on forever.
qfwfq
Posts: 20
Joined: Sun Aug 28, 2016 9:01 pm
Location: Seattle
Contact:

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by qfwfq »

Just chiming in to say that this is wildly exciting and that I'd happily throw some money into a Patreon to help ensure that work continues on it.
Toni
Posts: 2
Joined: Sun Aug 06, 2017 12:55 pm

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by Toni »

I'd support this as well. I'd probably prefer a Kickstarter with a timeline for a useable product, but I am open to Patreon as well.

I will especially support the project in any way if the goal is (also) to release an open source core.
User avatar
jwdonal
Posts: 719
Joined: Sat Jun 27, 2009 11:05 pm
Location: New Mexico, USA
Contact:

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by jwdonal »

tepples wrote:The Blender 3D modeling program was proprietary until its bankrupt publisher NaN agreed to let the community buy it from them for $100,000.
This definitely caught my attention. To be honest, I didn't even know that people did things like this. And interestingly enough, I am not totally opposed to this idea. I just want _something_ for the many kilo-hours that I've spent on this crazy kitchen sink of a console. But realistically I don't think there's enough people that would contribute to achieve the dollar amount I have in my head. Lol. But maybe I'm dead wrong about that...
tepples wrote:So how much money would be just compensation for a free software license for this project?
So I guess this is pretty much the most important question. I've actually put a lot of thought into this and estimated the number of hours that I've spent reverse engineering and writing code for this design over the last 5-6 years. The number I came up with after looking through all my notes and my RCS commits is conservatively around 8,000hrs.

I also ran count lines of code (CLOC) on the Verilog and it came up with 83,152. *Note: These counts don't include all of the C/C++/scripts/etc that was written to actually interface with the design and upload SPCs/ROMs.

I also have to consider the fact that there are numerous other applications for an open source FPGA SNES. Think of all of the practical educational value that something like this has for high school and university students. Or applications for other dev boards or flash carts like the MIST or SD2SNES as syboxez previously stated. Not only that but software emulators could improve their own code based on my hardware logic analyzer findings and they would in turn become more accurate.

The source code for the fully verified 65816 CPU alone is immensely valuable and has many potential applications outside of just SNES. And, yes, obviously an SA-1 could be made (I will be implementing that myself eventually). The 816 is arguably the most valuable core in the entire design. It's basically what discourages most people from even bothering to implement an FPGA SNES. And I totally get that - it is mind numbingly tedious and time consuming to implement all those opcodes with all the different modes of operation and figuring out all of the corner cases with how opcodes and registers interact with each other when dynamically switching between 8/16-bit modes.

So how much is ~8,000hrs, 83k lines of FPGA-vendor-agnostic Verilog code, and the myriad possible applications worth? Well, I don't know exactly, but having worked in industry doing FPGA design for over 15yrs now I do know in general what commercial companies charge for source code for their IP cores and it's not a small figure. In fact, the figure is so far from "not small" that I think it would actually turn the average person/retro-gamer off of contributing anything to the patreon if they saw such a large amount as the goal. Or as I stated previously, maybe I'm wrong about that. I've never done anything like this before, so let me ask you guys...what do YOU think it's worth? This would actually be a useful data point for me so please have at it.

Here is the number one biggest thing to me in relation to open-sourcing the code for an FPGA SNES....I would need to make enough money from releasing it that I won't feel bad about everyone that's going to steal it to make a commercial product or use it as a marketing attractor while giving me absolutely nothing in return. And let's be honest, we all know that it doesn't matter if I assign an open source license type that prohibits commercial use - people are going to do it anyway (chinese clone makers I'm mostly talking to you).

Note that if a source code release did actually happen I would never make any claims that the source code is 100% accurate or any nonsense like that. Personally, I don't believe that 100% accuracy will ever truly be possible until all the chips are decapped. But I would certainly continue to make improvements to the code and fix any bugs that myself or others find during testing or normal use.

--

On a slightly separate note I would definitely need help picking the right open source license for something like this. All the different license options are confusing but I'm sure there's some knowledgable people here that could help me with that.
syboxez wrote:Also (to jwdonal specifically), I'm not aware of any legal issues surrounding releasing the verilog for this project, as you used clean room reverse engineering to develop it, and the fact that there are other examples of verilog being released for other reverse engineered consoles (including Nintendo consoles) such as minimig or FPGANES with zero legal repercussions.
Agreed. I'm not particularly worried about this. Additionally, the patents for the hardware are well more than 20yrs old at this point.

With that said however, I do think I should probably change the name to not include the "SNES" acronym. Which is a little sad because I really liked the name "VeriSNES". :( But I'm not SUPER attached to it (pun intended). If I was not receiving any monies for the project I wouldn't bother changing it. But because I would be collecting funds for it I don't want Nintendo to be able to say that I'm using their console name to make money. Anyone have further thoughts on this? I've thought of a couple other names already and had several others suggest new names as well.
syboxez wrote:Open sourcing the SNES FPGA core would be a great help to the community and would truely let the SNES live on forever.
I agree. It would be pretty awesome. I would also of course continue to work on it even after the source for the core system was released because it's something I love to work on and I still need to implement the various enhancement chips (e.g. SA-1, SuperFX, etc).
Toni wrote:I'd support this as well. I'd probably prefer a Kickstarter with a timeline for a usable product, but I am open to Patreon as well.
Fortunately, the product is already usable as can be seen by the numerous progress update videos on my youtube channel. :) Again, it's _not_perfect_ and I never claimed that it was, but it will be (or as close as possible) eventually. :)

--

Back to the patreon campaign...I'm very open to suggestions/recommendations regarding various tier/reward levels. I really like retrorgb's idea of having early pre-order access for a product. I would like to eventually make a PCB design for it so something like that would work out well for early pre-order access.

And as a reminder (since this is a very long post) I would still like to hear opinions from the community on what you all feel the complete Verilog source code for an SNES system would be worth in USD.

And I'd also like thoughts on the name change.

In any case, that's enough typing for now. I guess I'll get to work on creating an intro video for the patreon page! :)

Cya!
adam_smasher
Posts: 271
Joined: Sun Mar 27, 2011 10:49 am
Location: Victoria, BC

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by adam_smasher »

Back of the envelope calculation: a skilled hardware engineer might make on average 200K USD per year; divide by 52 weeks and 40 hours a week, you get around $100 an hour. So $800000, then maybe round it up to a nice square million.

Now, that number doesn't personally turn me off. But I do also suspect that's on the low side compared to the commercial IP numbers. But then, to be honest - and I mean this with absolutely zero disrespect, I think what you've done is incredible - I'm not sure if a Verilog reimplemention of a nearly 30 year old video game system is as commercially valuable as most of that IP. Chinese (and even American) clone makers would probably rather buy cheap ARM SOAC for pennies and stick a hacked up Snes9X on it than license your core and use comparatively more expensive FPGAs - not to mention Nintendo themselves doing that with their own in-house emulators. They might (?) be lower quality, but SNES hardware reimplementations exist and are already on their way to market as complete products; and I'd wager kevtris at Analogue is hard at work on a Super Analogue NT (if not maybe get in touch with them about licensing, tbh). WDC already licenses 65816 Verilog soft cores and I suspect for a multitude of reasons it'd be hard to compete with them on that front.

So my intuition is that - unless you're willing to quit your day job and start a company of some kind devoted to marketing this core or products using it, selling it to the open-source community might be one of the best ways to get recompenses for it.

Caveats: I'm an outsider to the hardware world, so my speculation might be entirely off-base. And I'm an open-source fan, so I'm predisposed to find reasons for you to open-source it. And I don't know the dollar amount that you have in your head - maybe my estimate of a million is a lot higher than you're thinking! And, on the flip-side, while I'd certainly be happy to throw some money towards a million and I think it's a fair number, I don't know if there's enough people with enough money who feel that way to reach that goal.

Whatever you do though, good luck. I really can't stress enough how cool I think this project is.
User avatar
TmEE
Posts: 960
Joined: Wed Feb 13, 2008 9:10 am
Location: Norway (50 and 60Hz compatible :P)
Contact:

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by TmEE »

I don't have money to spare but if anything I would be more than up for creating couple PCB designs that are drop in replacements for existing hardware variations.

Just wondering, how many LE's (or equivalent) does the design take currently ?
User avatar
jwdonal
Posts: 719
Joined: Sat Jun 27, 2009 11:05 pm
Location: New Mexico, USA
Contact:

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by jwdonal »

adam_smasher wrote:So $800000, then maybe round it up to a nice square million.
Okay, so I wanted to quickly reply and say that, while I appreciate the very generous estimate, this is wayyyyyy too much.
adam_smasher wrote:I'm not sure if a Verilog reimplemention of a nearly 30 year old video game system is as commercially valuable as most of that IP.
This is correct, which is why $1M or even $800k is way beyond what I was thinking. :)

I might as well just go ahead and state the number I had in my head was somewhere around $400k (or maybe a little less) before taxes. If I could get somewhere around there I'd be fine releasing it to the world along with all the C/C++ code used to interface to the board, logic analyzer traces of the system behavior, etc. I also plan on porting it to another popular Xilinx dev board that I have here and also adding HDMI support in the very near future.

Now, are there enough interested people to get to that level of funding...? I have no idea whatsoever.
adam_smasher wrote:WDC 65816 Verilog soft cores and I suspect for a multitude of reasons it'd be hard to compete with them on that front.
Interestingly enough I spoke with Bill Mensch about this several years ago before I started working on the 816. I was very surprised to learn that their Verilog soft core was written by a student intern many years ago and he said the quality was quite poor. It sounded like they couldn't even guarantee me that it was bug free. Lol. So needless to say I doubt that they sell very many of those. XD The original 6502/816 were never written in Verilog, it was all done by hand drawn schematic. I have no doubt that WDC's real money maker's are the original ASIC masks for the 6502 and 65816.
TmEE wrote:Just wondering, how many LE's (or equivalent) does the design take currently ?
It's currently sitting around 26,000 Altera LEs. I'll know the Xilinx "slice" equivalent in the near future once it's ported to this Xilinx board I have sitting here.

Cya!
syboxez
Posts: 32
Joined: Tue Mar 01, 2016 8:22 pm

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by syboxez »

To answer the question about licensing, might I recommend dual licensing GPLv3 with a proprietary license?

Basically what I mean by that is that anyone may use the project however they please so long as they follow the GPLv3 license (must disclose source, cannot distribute with a closed system [Tivoization], must use the same license, must not restrict modifications, DRM must not be implemented in the system, etc.), but if say, a company wants to use the core in their closed project, then they can license the core from you for a fee of your choosing. This is what many projects do, including byuu's higan (https://byuu.org/emulation/higan/licensing).

A quick summary of the GPLv3: https://www.gnu.org/licenses/quick-guide-gplv3.html

Alternatively, if you would prefer an open source license with a non-commercial clause (technically not open source), then might I recommend the license that SNES9x uses (modified permissive BSD style license with non-commercial clause), along with the dual licensing mentioned before? https://github.com/snes9xgit/snes9x/blo ... icense.txt

As for stopping Chinese clones? Sadly, I don't think that's possible, regardless of whether the source is available or not. Just look at the clone EverDrives that are out there (the EverDrive line being completely proprietary).
Toni
Posts: 2
Joined: Sun Aug 06, 2017 12:55 pm

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by Toni »

I don't think that work hours are a good basis for the price; at least not if the goal is to release a console, not the Verilog code. Prices are formed by market demand, and the market demand for an employed engineer is different from the market demand for an FPGA-based SNES. The price for the latter is formed by the demand for the product and the value proposition of the competition (original SNES, emulators, etc.), not by the amount of work that went into engineering the system.

That's why I like the approach Analouge took with the NT Mini. It's not just a FPGA-based system, it's also a product that comes with all the secondary features you would want from a gaming console aimed at enthusiasts: digital and analogue connections, a multitude of video and audio output options (scaling, scanlines, etc.), a nice controller, a quality enclosure, etc. In other words: a system that actually looks like a console worth a premium price, not just a PCB with an FPGA. (It's debatable if Analouge actually deserved that premium image, but apparently it worked.)

I think a price of $500 - $600 would be in the ballpark of what enough people are willing to spend for such a product, especially when the product receives enough media attention; which a proper product is much more likely to receive. Worked for Analouge. I don't see why it wouldn't work here.

I'd be willing to spend that amount on a preorder. :wink:

Or team up with Analouge...
calima
Posts: 1745
Joined: Tue Oct 06, 2015 10:16 am

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by calima »

Since you have access to all the internals, your premium console could even support save states with perfect compatibility, could it not?
User avatar
jwdonal
Posts: 719
Joined: Sat Jun 27, 2009 11:05 pm
Location: New Mexico, USA
Contact:

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by jwdonal »

syboxez wrote:To answer the question about licensing, might I recommend...
Thanks a lot for this info. I'll look more into the links you provided.
syboxez wrote:As for stopping Chinese clones? Sadly, I don't think that's possible
Who said anything about stopping them? They certainly can't be stopped - that's what I'm saying. :)
Toni wrote:Or team up with Analouge...
Teaming up with another vendor to port code to their hardware etc is actually very time consuming. I'm more inclined to just throw the working verified code over the fence if someone wanted to buy it outright or just release the source to the community. I work a full time job plus have my own consulting business so I have very little extra time. Releasing the source would make more sense and be more valuable to the community as a whole.
calima wrote:Since you have access to all the internals, your premium console could even support save states with perfect compatibility, could it not?
Yes, it will have save state support. It's on my (very long) to-do list. I already know how to implement it, but it's competing with at least 10 other things right now. :)
User avatar
sanni
Posts: 44
Joined: Sat Jul 20, 2013 2:21 pm

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by sanni »

Now if you could somehow design a drop-in replacement motherboard for the original SNES case that runs your code and offer it as a reward for a kickstarter at a price roughly around $100, you'd probably have to think about the $2 and $3 million stretch goals.

Because let's be honest a pure source code release is not very interesting to the general public and having a pcb designed is not that much additional work compared to what you have done so far.
adam_smasher
Posts: 271
Joined: Sun Mar 27, 2011 10:49 am
Location: Victoria, BC

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by adam_smasher »

Designing the PCB isn't much work, but sourcing parts and getting it manufactured at scale is.
Near
Founder of higan project
Posts: 1553
Joined: Mon Mar 27, 2006 5:23 pm

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by Near »

syboxez wrote:Basically what I mean by that is that anyone may use the project however they please so long as they follow the GPLv3 license (must disclose source, cannot distribute with a closed system [Tivoization], must use the same license, must not restrict modifications, DRM must not be implemented in the system, etc.), but if say, a company wants to use the core in their closed project, then they can license the core from you for a fee of your choosing. This is what many projects do, including byuu's higan (https://byuu.org/emulation/higan/licensing).
This didn't stop a company from selling my emulator on Steam to emulate an old game they purchased a license to, and announce plans to do so again in the future with more game titles, without following the GPL licensing terms nor paying for a license exemption. He doesn't even give a mention on the Steam store that he's using my software, let alone provide a download link from the source. In fairness, someone found out via strings dump, and after e-mailing a few times, was given the source to the client. And unlike Snes9X, it doesn't generate public outrage when my license is violated.

But ... yeah. Don't trust the GPL to protect you, unless you have that $400,000 to go to court to enforce your copyright.
syboxez wrote:Alternatively, if you would prefer an open source license with a non-commercial clause (technically not open source), then might I recommend the license that SNES9x uses (modified permissive BSD style license with non-commercial clause), along with the dual licensing mentioned before? https://github.com/snes9xgit/snes9x/blo ... icense.txt
Yeah, I can name about a half dozen instances where their license was ignored. Including a major company selling it on a clone system, at least one popular Android emulator stealing their work, and depending on how you look at it ... the project on Patreon bringing in over $1,000 a month for a frontend to many emulators, including non-commercial ones. But then, reasonable people may disagree with me and claim that profiting on donations for repurposing non-commercial software is okay. But I do know that if I were to ever write a non-commercial license again, I'd explicitly carve out that donations weren't allowed either.
jwdonal wrote:I might as well just go ahead and state the number I had in my head was somewhere around $400k (or maybe a little less) before taxes.
Would you be interested in selling the test ROMs you've made separately, which are claimed to fail in higan? I continue to remain very interested in those, and would be happy to try and help provide fair compensation for your work there. A software implementation is never going to compete commercially in the same market segment with a hardware implementation, so hopefully you won't mind disclosing those one day :D

I keep getting reports of SMW Central hackers managing to trigger bugs only on hardware, and test ROMs would be a hundred times easier to work with than trying to reverse engineer whatever's happening in those full-game ROM hacks.
Post Reply