Swedish Coding

The History of ‘TheSE’ – The Super Nes Emulator

November 26th, 2007 by swedishcoding_1ggc23 — EmulationNo Comments

Aaaaah, I finally got this blog to a somewhat working state and before I continue editing style-sheets and html code I felt like adding my first post. So here it is… enjoy.

TheSE is a Super Nes emulator developed by myself and my very good friend Urban Nilsson. It all started a long long time ago in a small town on the Swedish south-west coast. The year was 1997 and at this point in time there weren’t an abundance of Super Nes emulators out there. There were actually only a few. The ones worth remembering were Zsnes, Snes9x and Sneeze.usnes-ff2

Both Urban and myself grew up with the Nintendo consoles and we are both huge fans of the Mario and Zelda games. After some initial coding by Urban I joined the emulation project which at the time was called Usnes. At this point the emulator only had the most basic of features. It emulated all the 65816 processors instructions and some of the most basic interrupts. On top of this we also had some very basic emulation of the graphics chips. Well, needless to say we couldn’t run very many demos or games. We did however get this beautiful screen to the right. What a relief it was once we saw this image… we were on the right track at least.

Once Urban and I joined forces we also decided to change the name of the emulator. We now became Team Rugby (in retrospect that name is pretty lame) and we came up with the new name for the emulator, TheSE.

TheSE is short for “The Super-Nes Emulator”. At this point we were still in school but that didn’t stop us. The first version of TheSE was released 1998 if memory serves me right. We now had a much more complete emulator and ran quite a few demos and games. Below are a few screen shots from emulated games.

these-mariothese-punchoutthese-soulblazerthese-megamanx

We released this version as TheSE v0.14b. It was coded in 99% assembly which was a feat in itself. As it turns out it ended up being the most stable and
feature rich version for years to come.

At this point in time our lives got thrown back into reality and we were faced with studies once again. We no longer had time to work on this project and it was put on ice… and there it stayed for a very long time…

these-oldcar

This is how the emulator felt when we got back to it many years later.

Nowadays there are plenty of good Super Nes emulators out there but we still hold this project very close to heart. Even though Urban is still in Sweden and I am here in Santa Monica, CA we are actually in the process of re-writing the emulator.

It is incredibly easy to introduce bugs into an emulator that you re-write, especially when you convert it from 100% assembly to C/C++. That is why we this time around develop the emulator using test-driven development where all parts of the emulator are unit tested. I believe that an emulator is the perfect project for unit tests. The things that most emulators out there still have a problem with is timing of the various pieces of hardware. We hope to reach near 100% correct emulation of the Super Nes when we are done. When this little beauty is once again ready for prime-time I’ll post it here.

0 responses

You must log in to post a comment.