2. articles
  3. a-new-dream

A New Dream

A New Dream2020-01-26 12:58:00

Since 2004, I have strived to bring emulation accuracy to the forefront; starting with bsnes.

Yet as a naive young adult, I underestimated the challenges involved. The true extent of the system requirements necessary, the time this effort would take, and the way every newly emulated detail added to the complexity of the software.

Over time and with some degree of measurable success, my ambitions grew, and I began emulating an increasing number of systems. Eventually, it was just nonsensical to keep the same emulator name, and the project was renamed to higan, to reflect its new reality as a multi-system emulation project.

Work continued as usual, with higan's difficulty curve steadily climbing. I realized that the path was unsustainable: this entire time, I was battling between two opposing forces that I couldn't combine. Like oil and water, the realization of the most comprehensive emulation along with an easy-to-use user interface wasn't possible to combine.

higan continued to grow in complexity until, sometime after the release of higan v106, a crossroads was reached. I knew that if I truly wanted higan to be laser-focused on being the most complete emulator, with absolutely no compromises, and to grow to support even more complex systems than ever, such as the MSX, that a new user-interface would be necessary.

I knew this change would not be easy. And so in anticipation of this, I started by pre-emptively reviving the bsnes project as a standalone SNES emulator, going back to the roots that helped me establish accuracy as something worth striving for.

With the project a success, I found myself freed of constraints, and in a truly liberating sense and after more than two years of non-stop development, I was able to completely re-envision higan's user interface. Now, with a completely new design, I am able to truly emulate any level of technical complexity that my heart desires, with no compromises. I do this by directly expressing the underlying tree-structure of the entire emulator directly to the user.

You can read more about the motivation and rationale of this tree-based design in my article on emulator hierarchy, here.

As expected, higan v107 has become something that only a small number of people who share my vision can appreciate. In other words, it's definitely not for everyone: it's for me, first and foremost. As I have said for years, it is my personal project.

I knew this, of course. I've been heading in this direction since the release of bsnes v074. This was its logical conclusion. I don't have any regrets here.

But what I did not expect at all, was the revived bsnes becoming something of a breakout hit! What I thought would be a small side project quickly became the predominant focus. Today, bsnes enjoys more downloads, more testing, and far more community interaction and developer support than higan could ever dream of having.

This has been transformational, and not just for bsnes: the insight from all of this additional testing has exposed several shortcomings in bsnes, which has led the SNES emulation it shares with higan to improve dramatically.

Dozens of bugs were quashed. Many new features were added. Incredible things such as HD Mode 7 graphics, dynamic rate control, run-ahead, overclocking, and even experimental widescreen support is now on the horizon.

But enough with the recap ... getting to the point: I care about all of the systems higan supports just as much as the SNES. But I can't create and maintain several dozens of emulators at the same time, I'm only one person after all.

As much as I want higan to be my legacy to historians, I've gained a newfound humble appreciation for the importance of easy-to-use, feature-filled emulation in winning over the hearts and minds of people.

And I want to bring that support and community into the fold with all of my emulation cores. I want to enjoy enhancements such as run-ahead and dynamic rate control in all of my emulator cores.

Now certainly, I am most well known for my SNES emulation, and some of my other emulation cores are not quite there yet ... but some of them are! I offer some things in Neo Geo Pocket, WonderSwan, Game Boy Advance, PC Engine, and other emulation cores that simply haven't ever been done before.

And my dream, my hope ... is that similar to bsnes, I can bring this kind of renewed excitement to all of my emulation cores by presenting them in a new user interface.

Where higan is focused on accuracy, comprehensiveness, and self-documenting code ...

Where bsnes is focused on performance, features, and ease-of-use ...

I wish to create a new emulator that marries the best of both worlds: a new emulator that will focus on accuracy, features, and ease-of-use. The perfect compromise between the two extremes offered by higan and bsnes. (Neither of which will be going away, I should add.)

Computers have grown so much more powerful since 2004, and I can optimize the core emulation code inside of higan in the same way I have with bsnes.

Just as bsnes leveraged higan's SNES emulation, my new emulator can leverage all of the dozens of emulation cores inside of higan simultaneously.

Instead of having dozens of emulators, I can derive a new method of creating user interfaces for each core that seeks to only expose the important pieces on the surface level, providing users with an easy-to-use, familiar interface. With no need to create system profiles, game libraries, or anything of the sort.

higan is what I want the historians and future emulator developers to remember me by, but this new emulator is what I want players to remember me by.

And most of all, I want to see all of my emulators grow and thrive. I want this new emulator to breathe life into all of my emulation cores the way bsnes did my SNES core.

As such, there's only one name for this new emulator: the one that I already have. The one that I have had from the very beginning. The one that represents the growth that arises from the mistakes we all make, to strive to always better ourselves.


Coming in 2020.

Permalink1 Comment


Simone2020-01-28 17:37:09I played my old games on bsnes for a long time and I really thank you for that (I'm a patron).
I think the RetroArch project is interesting, it let me play my games on Android too, and I like the way it integrates the work of many different projects. I hope your future work on the cores will be usable by RetroArch too.

Thank you again!


Comments are manually moderated. HTML and Markdown are not parsed.

Captcha: Flipper and Ecco are examples of what type of aquatic mammal?