Getting some of Leslie's thoughts.
Monday, November 18, 2013
Cobra Command For Collins : The exciting conclusion
A few talented and determined individuals labored for 6 months to create a replica arcade game for Leslie M. Collins, who is disadvantaged in life. After knowing Leslie for 10+ years, and knowing that his dream was to own a Cobra Command arcade game, and concluding that he had done everything possible within his own means to make this dream come true, we stepped in and made up the difference.
We raised money, built (from scratch) the cabinet, painted it, got replica art work, wired in the electronics, and wrote the emulation software to play two classic laserdisc games: Cobra Command and Cliff Hanger.
Upon placing the video game at the Pinball Hall of Fame in Las Vegas, we lured Leslie to the location on pretense of just hanging out with one friend to enjoy an afternoon of pinball games. We allowed Leslie to randomly discover this game on his own.
This video shows this moment (captured from 3 angles) and his reaction.
Upon discovering the game, he was very excited. We let him soak it in for a few seconds before revealing ourselves from our hiding place.
Technical notes: This game runs on Daphne ported to the Raspberry Pi by myself (heavily optimized). Cliff Hanger runs a 100% speed, Cobra Commands runs at near 100% (you can't really notice any problems).
Here are some other random video clips for those who want more of the experience.
We raised money, built (from scratch) the cabinet, painted it, got replica art work, wired in the electronics, and wrote the emulation software to play two classic laserdisc games: Cobra Command and Cliff Hanger.
Upon placing the video game at the Pinball Hall of Fame in Las Vegas, we lured Leslie to the location on pretense of just hanging out with one friend to enjoy an afternoon of pinball games. We allowed Leslie to randomly discover this game on his own.
This video shows this moment (captured from 3 angles) and his reaction.
Upon discovering the game, he was very excited. We let him soak it in for a few seconds before revealing ourselves from our hiding place.
Technical notes: This game runs on Daphne ported to the Raspberry Pi by myself (heavily optimized). Cliff Hanger runs a 100% speed, Cobra Commands runs at near 100% (you can't really notice any problems).
Here are some other random video clips for those who want more of the experience.
Saturday, November 2, 2013
Should emulators be commercial (part 2)
I just read a fascinating article (see http://technologizer.com/2012/01/23/why-history-needs-software-piracy/ ) about why software piracy tends to unwittingly preserve digital history much more than copyright holders do.
The part that jumps out at me is that DRM (aka copy protection) seems to actively interfere with preserving software because it is designed to prevent the software from stolen (which has the side effect of the software becoming un-preservable down the road).
In my previous blog post, I mused about making parts of Daphne closed-source and partially commercial in the future because I feel like I need to be able to justify the time I spend on less interesting improvements to Daphne (ie a polished Raspberry Pi port). It almost feels like I am somewhat forced to add some kind of DRM scheme as part of this experiment. This puts me in a big quandary.
The crappy part about DRM is what the above article states to eloquently:
"That is why DRM feels fundamentally wrong from a humanistic standpoint: it conspires, in conjunction with time, to deprive humanity of its rightfully earned cultural artifacts."
The irony is not lost on me. What business does an emulator have being closed-source (with DRM) when the whole mission of the emulator is to presumably preserve memories from becoming lost forever? Could the hypocrisy be any more blatant?
I don't have all the answers right now. But I've thought of one possible solution to this problem.
The solution is to do what John Carmack (of id Software) tends to do with his games. He sells them commercially, lets them make their money, then he open sources them after they've lost commercial viability. In this way, he is both getting paid for his work AND he is preserving his work for posterity. In other words, the idea is to have a temporary DRM system that expires after a relatively short period of time. I like this idea and I think it could work for what I am trying to do.
In case you are wondering what I think I am trying to do (and this seems to change regularly as I try to figure it out myself):
This seems like a good idea now, I may think it's nuts when I come back tomorrow and re-read this.
And the good news is that I won't be acting on this any time soon (maybe years) because I am still working on DEXTER. So this plan still can do through many revisions. If anyone has any good ideas, I'm pretty open at this point.
The part that jumps out at me is that DRM (aka copy protection) seems to actively interfere with preserving software because it is designed to prevent the software from stolen (which has the side effect of the software becoming un-preservable down the road).
In my previous blog post, I mused about making parts of Daphne closed-source and partially commercial in the future because I feel like I need to be able to justify the time I spend on less interesting improvements to Daphne (ie a polished Raspberry Pi port). It almost feels like I am somewhat forced to add some kind of DRM scheme as part of this experiment. This puts me in a big quandary.
The crappy part about DRM is what the above article states to eloquently:
"That is why DRM feels fundamentally wrong from a humanistic standpoint: it conspires, in conjunction with time, to deprive humanity of its rightfully earned cultural artifacts."
The irony is not lost on me. What business does an emulator have being closed-source (with DRM) when the whole mission of the emulator is to presumably preserve memories from becoming lost forever? Could the hypocrisy be any more blatant?
I don't have all the answers right now. But I've thought of one possible solution to this problem.
The solution is to do what John Carmack (of id Software) tends to do with his games. He sells them commercially, lets them make their money, then he open sources them after they've lost commercial viability. In this way, he is both getting paid for his work AND he is preserving his work for posterity. In other words, the idea is to have a temporary DRM system that expires after a relatively short period of time. I like this idea and I think it could work for what I am trying to do.
In case you are wondering what I think I am trying to do (and this seems to change regularly as I try to figure it out myself):
- I want my work to be preserved forever which means I am highly motivated to have all source code completely open.
- I want to be able to justify the time I spend on my less-interesting work which means I probably need to start getting paid for it, which probably means some temporary DRM system. Hopefully the knowledge that it would only be temporary will help people tolerate it a lot better.
This seems like a good idea now, I may think it's nuts when I come back tomorrow and re-read this.
And the good news is that I won't be acting on this any time soon (maybe years) because I am still working on DEXTER. So this plan still can do through many revisions. If anyone has any good ideas, I'm pretty open at this point.
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.
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
Rasberry Pi OpenMAX+GLES2 tutorial now available
I've put together a new tutorial showing how to decode JPEGs and render them with GLES2 on the Rasberry Pi.
Check it out here: http://www.raspberrypi.org/phpBB3/viewtopic.php?uid=31303&f=33&t=57721&start=0
Check it out here: http://www.raspberrypi.org/phpBB3/viewtopic.php?uid=31303&f=33&t=57721&start=0
Monday, August 5, 2013
Looks like Time Traveler is wookin'
Looks like Time Traveler's time reversal cube feature is working so I am marking that game as "Works" on my Dexter status page and upgrading the LDP-1450 implementation status back to 100% under the assumption that every command every laserdisc game will need is implemented and working.
I am going to take a little break working on Dexter to work on Cobra Command for Daphne on the Raspberry Pi (for the Cobra For Collins project) and after that I'll probably get back to work on PR-8210 support for VBI injection.
I am going to take a little break working on Dexter to work on Cobra Command for Daphne on the Raspberry Pi (for the Cobra For Collins project) and after that I'll probably get back to work on PR-8210 support for VBI injection.
Thursday, August 1, 2013
Multi-speed and reverse playback is now complete
I've finished adding multispeed and reverse playback functionality to Dexter. I will test it on Time Traveler soon. If there are errors, they should be small, as my unit tests are all passing.
Subscribe to:
Posts (Atom)