1. near.sh
  2. posts
  3. 20210205194032

2021-02-05 19:40:32
Emulators Past

I received my first real computer in 1997.

Almost immediately, a friend introduced me to emulators (Snes97 and ESNES) and fan translations (RPGe.) I've always been regretful that I missed the true origins of both scenes by maybe a year, but there's not a lot I could do about that. But I knew pretty much immediately that I wanted to be a part of both of these scenes. But at the time, I didn't know how to program at all. Not only was I year late to the start, I also was at a disadvantage in not having the skills to participate yet.

Still, I got to work right away, and while I've talked at length about the early days with Bahamut Lagoon, that's not all of my early past. The actual first game I worked on was Dragon Quest I & II, where I was manually searching and replacing text from the English NES games by hand with a hex editor. Needless to say, that didn't end well. Though I did go on to teach the person (ChrisRPG) who ended up finishing that fan translation, and I ended up contributing code to said project.

But what's more interesting is that bsnes was also not my first emulator, it was merely my first successful one. I took to programming really fast, and the first emulation project I tried to work on was with ATani. We were trying to make the first Sega CD emulator, all the way back in 1998. Although we weren't successful then, ATani went on to produce a working Sega Genesis emulator, and I later produced a working Sega CD emulator of my own.

I also worked on an unnamed Nintendo 64 emulator, which never got past a CPU core, around 1999 or so. There was also an unnamed Sega Genesis emulator that I got to run a couple demos around the same time before the sheer complexity of the 68000 CPU overwhelmed me back then.

But most interestingly, I had written an SNES CPU emulator for the purposes of fan translation work. My idea was that rather than trying to reverse engineer and write our own C ports that might be buggy, we could instead use a CPU emulator to decompress graphics and scripts from the original Japanese games using their original decompression routines. The idea worked fairly well and I used it to help out several fan translation projects (including my own) back in the day.

Using that core and expanding upon it around 2000 or so, I created my first SNES emulator, which I called StarSNES. It too ran many demos, but no commercial games. Still, this was the closest I had gotten to creating my first working emulator.

Aside from that, I also contributed a bit of code to ZSNES back around 2000 as well. 2001-2003 was spent working on Der Langrisser, and my time was limited on account of needing to work two full-time jobs to make ends meet back then. And so it wasn't until 2004 that I really had the time and knowledge to become successful in emulator development.

To wrap this up ... it's interesting looking back and seeing the overall trend: I never give up on anything I start. Every fan translation I wanted to work on was either completed by me or by someone I've helped do so. Every emulator I've wanted to write I've ended up creating in the end. Japanese was similar: I had wanted to learn that language since I was 14. It took actually moving to Japan and being immersed in the language for several years for it to finally click, but like everything else I eventually got there.

I think this might be part of the reason I'm so hesitant to start entirely new projects ^-^; but now that I've finished everything I've ever wanted to, I've started doing just that and taking up new endeavors. I hope to one day show you all some of the new things I've been working on. It turns out you can teach an old cat new tricks ~ CCBot/2.0 (https://commoncrawl.org/faq/)