Wednesday, October 30, 2013

Should emulators be commercial?

There is some recent controversy in the MAME world about changing the MAME license to be commercial friendly (that's a gross simplification).

I've felt for a few years now that the only reasonable path forward for me with DAPHNE is to make it "more" commercial (not completely commercial).  Here is why:

People regularly (to this day) come to me and ask:
- Will you make an Android port of Daphne?
- Will you make a Raspberry Pi port of Daphne?
- Will you modify Daphne somehow to meet [insert need here] ?

Also, last time I went to CAX, there was at least one Daphne cabinet on the show room floor.  I expect to see more Daphne cabinets on the show floor at future CAX events as more original hardware continues to fail.  Who knows how many MAME cabinets were at CAX this year masquerading as original hardware?

The point is that demand for emulation of legacy hardware is only going to increase in the future, not decrease, because original hardware will continue to fail.

How is this demand going to be satisfied?

The current tradition is that a handful of really smart experienced people donate their expertise to writing the emulator, thus meeting only their specific needs.  The emulator is released open source with the expectation that no one is going to profit from the developer's work.  The emulator probably won't be very user friendly or meet everyone's needs because it was only designed to meet the developer's needs.

When users start to complain that the emulator doesn't meet their needs, the emulation author (rightly) is offended because he/she used his unique talents and skills to deliver something that is incredible and he/she gave it away for free, so how dare the user community be ungrateful at this gift?  The user community then shuts up and lives with a sub-optimal experience (and yes, I'd put Daphne in this category).

Is this how we're going to keep going into the future?

To me, the solution to this non-ideal solution is for emulators to become more commercial.

In my case, I don't care about an Android port.  But it _would_ be an interesting project _if_ a lot of people (who were willing to pay) were very interested in it.  Because then I would be working for appreciation (proven in the form of money) which is a good motivator for me.  As it stands, with Daphne v1.0 I wasn't working for appreciation at all, I was working on something that I personally wanted.  In other words, if I am going to be working on something I don't necessarily want, I need more than just the occasional "thank you".

Re: the Raspberry Pi port, I actually would love to release a Raspberry Pi port.  But the way people approach me about it rubs me the wrong way.  They kind of expect that I will do a bunch of work for them to deliver this port and then give it away for free.  Is this a sustainable arrangement between developer and consumer? Not for me.  That's why you don't be seeing a public Raspberry Pi port any time soon (news flash, I have a private port already finished but if I can't find a better way to release it to the public than the status quo, I won't be releasing it at all).

Re: modifying Daphne to meet some need that some user or group has.  See my point about the Android port.


The ideal scenario for Daphne for me going forward:
- I continue to keep anything related to emulation open source and free (ie BSD or LGPL styled) so that these games remain preserved, so that others can benefit freely from my research in this area, and so that the emulation developers can collaborate and optimize our shared code into one massive standard of high-performing, well-engineered code.  There is no reason for us to all be re-inventing the wheel.
- Anything related to an improved user experience that isn't emulation related and has nothing to do with preserving arcade games becomes commercial (and possibly closed source).  This would include DaphneLoader which automatically downloads laserdisc video and arcade ROMs thus vastly improving the user experience (this is already closed source).

Phrased differently would be:
- All preservation-related code (CPU's, sound cores, etc) would be LGPL'd, living in a DLL.  The idea is that having all emulation authors collaborating in one code base to make the emulation code ideal is worth the cost of people profiting off of it.
- The rest of the emulator could be any variant of commercial or open source to match the goals of the author.

This would enable users to have higher quality emulators that are specific targeted at meeting _their_ needs instead of meeting the emulation authors' needs.


I know some emulation developers are going to be offended when they read this.  And all I can say is we're going to have to agree to disagree.

I am hoping that there will be some developers out there that see my vision and realize that we need to find a way to keep writing free emulation code and sharing it between us while still being able to sustain a long-term pace that produces results desirable by the community.

Tuesday, October 8, 2013