Hello, I'm byuu


byuu

I am the author of the bsnes and higan emulators. These are solo projects that comprise over half a million lines of code.

bsnes started in 2004 as a Super Nintendo emulator with the goal of being as perfect as humanly possible, and over time grew to emulate many more systems. The name no longer fitting, it was renamed to higan in 2013.

higan currently emulates the NES, Famicom Disk System, SNES, Super Game Boy, Game Boy + Color, Game Boy Advance + Player, SG-1000, SC-3000, Master System, Game Gear, Genesis, Sega CD, Turbografx-16, Supergrafx, MSX, MSX2, ColecoVision, Neo Geo Pocket + Color, and the WonderSwan + Color. PC Engine CD support is currently underway.

The goal of higan is different from other emulators: rather than focusing on playing games, it is meant to document the functionality and edge cases of the original hardware, with code that is as clean and easy-to-read as possible. I believe I've pioneered several methods for this, including the use of cooperative threading and variadic bit-length integers. Or at least certainly, I hadn't seen these techniques used before me.

Many long-time supporters were unhappy with the increasing complexity and system requirements of higan, and as I felt my SNES emulation was finally virtually completed, bsnes was revived in early 2018 as a hard-fork of higan, with the goal of focusing on performance, features, and ease of use.
Currently, bsnes can run at over 500fps on modest CPUs. It can also run on cellphones courtesy of the RetroArch target. bsnes has many unique features, and recently received press coverage for a new HD mode 7 feature that can upscale the scaling and rotation effects seen in games such as Super Mario Kart, F-Zero, and Pilotwings to 4K resolution.

Both higan and bsnes boast having 100% known compatibility with every SNES game ever released. That is not to say it's perfect: new bugs are found periodically, and all are fixed within 1-2 days. Multiple people have played through the entire 3000+ game library, and so presently it is very mature. higan's emulation of other systems isn't quite as solid yet, but continues to improve every day.

In 2010, I led an SNES decapping project to extract the firmware from special SNES game cartridges like Super Mario Kart and Pilotwings, and emulate them. This project was a success, and in the most surreal turn of events in my life, it would turn out that the late professor Stephen Hawking's voice machine was failing, and his team sought to replace it with an emulator. Having the only emulator for one of these coprocessors, I ended up contributing code from higan to successfully emulate this device. Some of his final words were with the aid of an SNES emulator. A good story on this is available here.

Recently, I also paid $1,000 USD to have the Bandai WonderSwan boot ROMs dumped, to improve its emulation. I am happy to say, this project was also successful.

I have also started an SNES preservation project in 2011, with the goal of improving SNES emulation further by scanning, verifying, and documenting every SNES game released in every region of the world. To date, I have completed the entire USA collection and half of the European collection. I've also purchased the complete Japanese collection, and once finished, I will be donating it to the Game Preservation Society of Japan non-profit organization. In total, I've used my own money, to the tune of $30,000 USD, to purchase over 2,200 SNES games to date; and I've invested more than 2,000 hours of time into this project.

My origins online are from 1998, where I became interested in reverse engineering Japanese games to program Japanese to English fan translations. I've been the lead programmer in the completed translations for Dragon Quest V and Der Langrisser, and I've contributed to the completed translations of Mother 3, Dragon Quest III, Shin Megami Tensei II & If, and many other games. Seeing inadequacies in the emulators of time, a necessary evil due to the lower-powered PCs of the time, led me to me becoming an emulator developer myself to help improve things.

Everything I do is free and open source software. I do accept donations, but they are not needed. I have never run ads on my website, never shipped adware, and I have never charged money for personal use.

You may freely browse the source code to bsnes and higan on my GitHub page, and use it in your own projects under the GPLv3 license.

My real underlying passion is preservation: much of the early history of cinema has been lost to time, and I did not want to see this happen to video games, which I view as a form of art. We don't live long in this world, but our work can and should. It is to honor the work of these developers, to expose their works to a larger audience, and to preserve their achievements for future generations, that has driven me for the past 21 years.

I am now 36, and time is not kind to any of us. I fear I've passed my half-life, and so now my goal is to try and encourage others to get involved in video game preservation and emulation.
To this aim, I have started a new website, byuu.net, where I aim to explain the details often misunderstood or taken for granted in emulation, and to cover problem areas that still need work. I'm also trying to catalogue and index datasheets, technical documents, and more. I want the site to be a go-to source for emulator developers, both novice and seasoned.

Even if you're not a developer, there's plenty to do and get involved with to help. Other prominent emulator developers have expressed interest in the site, and hopefully over time it will continue to grow.

Lastly, I have a YouTube channel where I occasionally post videos about emulation and game preservation topics, if anyone were interested.

Thank you for reading!

Comments

  1. Hey there, love your work and just wanted to say thanks for all the contributions you have made . bsnes is remarkable and since discovering it have become fascinated with accurate emulation myself

    ReplyDelete

Post a Comment

Popular posts from this blog

Summers and Bug-Catching

bsnes Frame Advance Input Latency