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
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 cooperat…
I wrote an article recently about optimizing input latency in emulators, available here.
This led to a comment about the perceived input latency in Mega Man X using the frame advance functionality in bsnes. In investigating this issue on my Twitch channel yesterday, I discovered there were two separate issues. These issues only affected frame advance, and not latency in standard gameplay, but all the same, I'd like to do a post-mortem on these here today.
Steps to Reproduce
Load Mega Man X and get in-game. Pause the emulator. Now hold down the fire key, and keep tapping frame advance. See how many frames it takes Mega Man to shoot.
This was taking four frames, whereas in Snes9X it was taking two.
Issue 1: pause to frame advance transitioning
The first issue is that when bsnes was paused and the frame advance key was pressed, the emulator transitioned from pause mode to frame advance mode, but did not actually run a frame. So in effect, nothing happened at all. The user would ordin…
If you've ever played through The Legend of Zelda: A Link to the
Past, or Pokemon Red and Blue, you may've come across the eponymous
I recall this didn't make a lot of sense to me, but I mostly just went with it.
experienced a summer in Japan, it has suddenly made sense to me. In
Japan, the telltale sign that summer has officially begun is hearing the
annual cries of cicadas. You can hear the sounds in just about any
anime series as well. It's extremely loud and constant for several weeks
into summer. To Japan, the sound is endearing.
once above ground, have a very short 1-2 week lifespan, and a favorite
passtime here is catching these bugs in nets to place inside jars.
this isn't nearly as much of a thing in in the west. But I suppose
there was no easy way to translate this concept, and so it was just kept
in the games as-is.