As a whole, I'm much more happy that I did than if I hadn't.

Over the past 13 years, I've been developing console emulators for 12 systems and counting. If my work were closed source, I would not have received patches and contributions from 30+ people and counting. And I wouldn't have met several amazing people who ended up becoming very good friends for a very long time. One in particular has been amazing in helping me open up and be less guarded all the time.

I was also able to sell one complete commercial license, and received a partial payment for a license from another company that then vanished (I tried to refund the latter, but e-mails to them no longer work.) I've received a very large number of donations over the years. Should be around $5000 in license sales, $7500 in donations, and another $2500 to fundraise hiring a person to decap chips and extract program code from them for improving emulation. I've also had multiple people make very specialized custom hardware that has helped me out more than words can express. I've had people trust me and lend me thousands of dollars worth of rare games for the purpose of verifying information for emulation and then returning them.

But I would be lying if I said it was all good. At the time of writing, I am aware of eighteen forks of my emulator. Two of these projects in particular never talk to me or submit upstream fixes, and instead commit changes to their own repository with extremely derogatory remarks about me and my programming skills. Two of these intentionally undermine and sabotage the entire goal of what I've been working on from day one (namely, adding known-incorrect hacks to speed up emulation. My distaste for hacks was the whole reason I got involved with emulation in the first place.)

Most of the forks of my software are from versions I released either three and a half years ago, or six years ago. A small number of them are quite popular, meaning my work may as well have been discontinued for those users.

One fork collects over $2,000 a month on Patreon off the backs of others' emulator cores including mine -- even ones that are explicitly non-commercial. One developer just wantonly ignored my GPL license and sells my emulator on Steam, doesn't provide any attribution or credit for using my work, and plays games when people try and get the source code to said work (but to be fair, one person did obtain it.) That one was made particularly worse because he wasted a good 20+ hours of my time over the span of six months promising repeatedly to license my emulator, only to back away at the last minute and pull this without even telling me.

I've had people very blatantly read through my source code to improve their emulators and documentation, and not just avoid giving me credit, but outright deny having ever looked at my code. In the most egregious case, someone copied a set of opcode mnemonics from a CPU core. Only ... that CPU core was never publicly documented: I made up every single mnemonic myself, and the only place those mnemonics existed were in my source code.

I've ended up with two people who have harassed and impersonated me online for six and eleven years respectively now, for reasons I really can't comprehend. I've had half the main staff of the most popular emulator out there make a passtime of digging through my 400K-line codebase, looking for individual lines that were poorly written to mock completely out of context in a public chat area -- and they're people I still have to work with often.

But what I always remind myself is, it's easier to dwell on the negatives. It's possible I could have made a lot more money with commercial licensing sales if my work were closed source. But my software is vastly better than it would be without all the help I've received over the years due to being open source. And I benefited a lot from other open source emulators, so it would be pretty selfish to not return the favor to others. There's no sense in me trying to force people to use my version of my software. I'd rather have a smaller number of users who actually fully appreciate what I'm going for. And I have a pretty thick skin at this point for the rest of it.

That said, do put as much thought as you can into this before releasing as open source. Once you do so, you can never go back. Even if you try, your work will be forked at the last open source release. But speaking for myself, if I could go back and do it all again, I would still keep everything open source.