No problem. That post took me about 4 hours to write, which included digging up names, links to old things, proofreading, etc.. Now I know how (decent) journalists feel. :-)olddb wrote:Wow. Thank you so much for this :!: :!: :!:
There's a lot to digest here, but here are some of my initial questions, if you don't mind answering:
If you're asking about the general snesdev scene in general: no, not really. There were only 2 "legality" aspects I ever saw come up during the early years, and this is from my limited view (the folks in Europe may have had other concerns, or maybe less so):olddb wrote:1. At the very beginning, where there any concerns about the legality of what you were doing?
1) Getting and owning a SNES copier, since they were grey-market devices and Nintendo began putting pressure on US Customs to confiscate them (which they did start doing). It was more about getting than owning -- nobody was worried (once they had one) that, say, cops would show up at their door. We saw them as VCRs -- yes, you could use them for copying/pirating commercial games (films), but you could also use them for homebrew (home movies),
2) If one was to get a copy of the actual SNES developers manual -- you would technically be holding intellectual property, which if discovered could certainly get you fined and/or jail time. People wanted it (and badly), but nobody had it. Sure, people got it eventually, but in the early days it was considered something akin to the Holy Grail or Ark of the Covenant in Indiana Jones, haha. :-)
If you're asking about doing my SNES docs in particular:
Sort of, but not really. I always had a "gut feeling" that it might tick off Nintendo, and I didn't want to upset a company I had loved as a kid (we're talking Howard Phillips NES era time frame). But at the same time, everyone I spoke to (incl. actual engineers) said as long as the work was being done through RE, it should technically be fine. There is one story though:
After what would be the last release of my SNES docs (v2.30), I did receive contact from Nintendo. I don't remember when exactly, but I do remember I was living in California at the time, so that would've been sometime between 1995 and 1996 (probably very late 1995). I've talked about his before on several rare occasions and the story is pretty short: I received a letter via postal mail from Nintendo and the legal firm they used at the time (I don't remember) which was not a template letter. It basically said something to the effect of "we're aware of your SNES documentation, and if you keep releasing this type of stuff, there could be legal repercussions". What was weird (to me) was that large corps, then just as now, tend to just sue you, not issue you a kind of "knock it off or else" warning in advance. It meant on some level Nintendo was concerned about it, but was probably still seen as reverse-engineering rather than, say, distribution of IP or "company secrets", so a legal case may have been tricky for them -- but at the same time, they knew they could flex their power/size/control to get what they wanted.
If it's not obvious: I complied. I've been through legal battles before and I wouldn't wish them on anyone. I valued my stress, time, and money more than SNES docs. It didn't matter much in the long run anyway, because within next few years the official developers manual started making its rounds to people, people started getting more interested in the Sony PlayStation, and so on.
Not sure I understand the question -- what group? Do you mean the #snes channel on IRC? If so:olddb wrote:2. At the beginning, what was the goal for the group?
The goal was pretty simple: to act as a communications hub for anyone who wanted to participate in SNES homebrew or reverse-engineering. We shared MMIO details, we shared code, we chatted about whatever. Very "IRC" for the time :-)
But unlike today, I think, there was a deeper sense of comradery -- people then spent a lot more time getting to know others in the channel on a 1:1 basis. There were some who were just "names in a channel" and we didn't know much about them (and it seemed by choice that they wanted to remain that way; maybe they had their reasons), but many actually would talk personally and privately over time. I got to know several people pretty well (Donald Moore/MindRape in particular) -- enough that one of the members whose name I forget (I keep thinking Archimede?) I went and stayed with for a couple weeks at his home in Sacramento (he was married and quite a bit older than me).
All of this was very late 80s/early 90s "scene"-ish. People really got to know one another. It's not like how it is today, where despite social media and all these other communication methods at your fingertips, people in communities/scenes/etc. don't seem to get to know one another. Everyone feels temporary. Real friendships were made back then; nowadays it doesn't seem that way. Look up documentaries or write-ups on groups like Fairlight, you'll see the same kind of comradery I speak of.
As for the later 90s during the start of emulation: it was similar, though it was harder to get that true "small scene" feel due to the sheer number of people involved. #emu on IRC was, at its peak, massive -- I believe 60-plus people? It also covered pretty much every emulator and system being worked on, so it was chaos. There were other channels dedicated to specific consoles/systems, but at that point I was only interested in the SNES and NES (and PC Engine a little bit), so I really only hung out in a few channels. People would talk about whatever they wanted, but if tech chat started happening, people calmed down a little bit to kind of watch/see how it transpired. As time went on a lot of the stuff I got asked about (SNES-wise anyway) went into private messaging rather than in the channel.
Plus, for that era, you need to keep something in mind: for that time period, most of us were in our late teens or early 20s, so the mindset and overall feel/attitudes/etc. of everyone was... well... crazy! :-) Lots of adrenaline (and testosterone), lot of drama (esp. in the later years), that kinda thing. I guess the way to phrase it would be "young kids/adults being young kids/adults".
But despite all that, I got to know people from that era personally as well. I made some very good friendships that lasted for many years after the emulation heyday died down. Even those I haven't talked to in years if I reach out to will say "omg it's Y0SHi! hey man!" and things feel like how they used to. It depends on who I talk to of course (I didn't get along with everyone, and I certainly pissed off a lot of people over the years, especially in the later 90s), but of those who I made friendships with, it for the most part lasted, even if we didn't keep in contact.
There was no NES/Famicom scene at all in the early 90s. I went looking at several points during my SNES days and it just didn't exist. I think the reason is that there were no copiers available for the NES/FC. The SNES came out, Chinese companies made copiers, and that opened tons of avenues.olddb wrote:3. At the beginning, what was the process made on other popular retro systems like the NES and/or the 2600?
Did you took inspiration from those scenes?
WRT the NES/Famicom: that's a whole other conversation and subject, and it gets crazy when you find out that while folks in Russia (where I feel the real/true NES/Famicom/Dendy reverse-engineering efforts started) were doing their thing, folks in North America were doing theirs, and folks in Japan were doing theirs -- all without realising the other even existed. (You ask about this later, actually.) I think a better resource for this sort of thing is Nathan Altice's book titled "I Am Error", which does go over early pioneering efforts.
There may have been an Atari 2600 scene during those days, but I'm not sure. I did start with the Atari 2600 (loved it!), but it didn't hold the "technical interest" to me like the SNES and NES did.
I also want to mention something here: the term "2600", for that era (late 80s/early 90s), can actually refer to two different things: the Atari 2600 video game system, as well as 2600 magazine. So when you ask me if the 2600 console scene was an inspiration in the early days, the answer is no -- but the 2600 magazine certainly was! :-)
So if there was any "scene inspiration", it probably would've been from demo scenes, hacking/cracking/warez scenes, the phreaking scene, and similar types of things. It's all very early 90s in every way/shape/form.
It means I'm not an electrical engineer. I have no formal or informal training with hardware -- everything has been self-taught or self-discovered over the years.olddb wrote:4. You say your not hardware guy, yet you were one of the first to produce documentation for the SNES. Can you explain?
To be clear: I can't truly understand a circuit diagram or EE schematic just by looking at one. I can't take a PCB and start following traces to map things out to create a schematic. I can't tell you when you should use a 15k ohm resistor instead of a 330 ohm resistor. I can't use a logical analyser to figure out how some circuit or IC works. And while I understand what a capacitor does/is for and how it works, what resistors are for, etc., I can't tell you "you should use one of those here", or even know *why* you should. Sure, I own a multimetre and know how to use it for the most part (particularly for continuity tests), I can solder and desolder (properly), and I can build some electronic thing (PCB + soldering + etc., or via a breadboard) if you give me a schematic that properly outlines what parts are needed and clearly label everything (and in that sense, "step me through it")... but that just means I know how to use some tools and how to follow some instructions. It doesn't mean I have the knowledge to reverse-engineer something at the hardware level.
The software level is a whole other situation. :-) The only formal "training" I have software-wise was an Applesoft BASIC class in junior high, and taking a Pascal class in my high school. Everything else has been self-taught. I didn't graduate high school, nor did I go to college or university. That's not me bragging either; if anything I feel shame, because had I done that (for example, take an EE course), maybe the hardware level of things would make more sense to me. Not understanding the hardware was actually less of a problem for me with the SNES than it was the NES (this will be the end of me! :-) ).
Thus, my SNES docs were an amalgamation of info from the following 4 sources:
i) The original Corsair and Dax documents I linked earlier. Those were all we had at the time. They acted as a kind of "jumping off" point to get something started on the SNES, but that was it. If you read them, you'll see how barren they are information-wise. Lots to be discovered. But better than going in completely blind.
ii) Pure software-based experimentation -- programs I wrote that let me poke at MMIO registers or ranges, fiddling with bits until I could make some conclusions on what they did (anything that induced visual feedback was a lot easier). In other words: writing 65816 code, assembling it, running it on the SNES (using a copier), seeing what happened, taking notes, repeating the process over and over,
iii) Disassembly and reverse-engineering of commercial games -- this gave you some idea of where to go poking. "Hmm... why is this game writing 1 to $420D? What does $420D do? Why does this game write some data to $4204/4205, then do 16 nops, then read from $4214/4216? What purpose do those nops serve? They look pointless (hint: they're not)". I had literally hundreds of pages of print outs of commercial games all over the place in my bedroom at one point (I think of Capcom's Magic Sword?) trying to figure out the purpose behind some piece of code. Remember: there were no emulators, and nobody had a hardware ICE/debugger, so this was pure software reverse-engineering going on. Lot of time spent in front of print outs, lot of scribbled notes everywhere.
iv) Social interaction and sharing of information with other people doing (ii) and (iii) above. This played a huge role. I was just one kid doing what small piece I could... but other people -- many of which were/are smarter than me -- were doing their fair share too. When we shared our discoveries, I started organising it into a document (which then became separate files within an lzh archive), and thus said SNES docs were born.
The above is unlike my later NES documentation, which was mainly just (iii) and (iv). That's why the thank-you list is so much longer. #nesdev on IRC was critical to making all of that happen.
There were several barriers. This is a sensitive subject for some, but I'm going to speak about it anyway:olddb wrote:5. Besides Nobuaki, you don't mention the Japanese scene. I this because the scene was non-existent, because of cultural or other reasons? Or simply there was a language barrier?
Do you know if Nobuaki's work was a commercial success?
i) Nobody in the US knew stuff like this was going on in Japan. There was not a lot of US <--> Japan "information" flowing of that sort. None of us even knew about Famitsu (the magazine), for example. The only stuff we knew about Japan was from things like US-published magazines: Nintendo Power, GamePro, etc.. Once in a while they'd show something Japanese, but it was very rare, and it was always about a game, not about homebrew obviously.
ii) Even if we did, there would have been a huge language barrier. I knew of virtually no one in the early 90s that knew Japanese (and certainly no one in the snesdev scene). And especially at that time, Japanese did not tend to know English (and due to humility and cultural norms, they would feel embarrassed if they were to speak it badly). What's often not discussed is the fact that there are several "sub-scenes" or groups/things within Japan that actually stay within Japan only -- file sharing services, chat services, etc. that only allow connections from Japanese IP addresses. Yes, really. There is still very much cases of "foreigner disapproval". When I was younger, I thought this bizarre and weird, almost offensive, but as I've gotten older I've started to understand better why it is. Not worth going into here; my point is that the likelihood of information sharing, even if we had known of one another's efforts, would have been virtually nil.
Even during the emulation craze of the late 90s and NES/Famicom stuff this remained true. We didn't get a lot of information from Japanese sources. Hong Kong, Taiwan, China, etc. were different, as several people were working on figuring out mappers, so we'd get some documents written by someone in Asia and have to try and decipher it (bad English, etc.). When romhacking started becoming a thing, that's when several doors started opening that hadn't before. But that leads me to...
iii) Actual communication capability. If you weren't online in the very early 90s, then you probably would take for granted that the Internet has always been as "open and available" as it is today. It wasn't. In the early 90s, the only places that had Internet access were pretty much educational facilities, governments, some commercial companies, and certain non-profits (more rare). People were still using dial-up BBSes, and long distance charges were expensive (don't get me started on international rates!).
When I found out there were several European colleges that had Internet access, I was stunned (amazed/excited). Email was very important, but people often used UUCP for that, i.e. you'd write an Email and the college or company or NPO would only connect to the Internet (to transmit/receive) the Email via UUCP once a day (maybe more) because of cost. Real-time chat across the world was really not a "huge reality" quite yet; talk/ntalk existed, ICB existed, but that was about it until IRC (IRC did revolutionise the world, IMO).
I have very vivid recollections of my first time talking to Europeans via IRC. There was a guy from Germany who was into snesdev; I was fascinated seeing someone join the channel from whatever.de rather than .edu/.com/.net/.org. Around the same time (again, very early 90s), I actually became penpals with a Finnish gal named Maija in Oulu, Finland.
Japan, at least at that point (to me), wasn't anywhere even on the map until the mid-90s. They had their own stuff, I'm sure. I do remember the first time I saw a Japanese IRC channel though -- you could tell because the channel names would usually have tons of $ symbols in them. I can't remember if that was EUC or JIS encoding. Unicode didn't exist back then, so unless you had a PC able to decode the encoding, *and* you knew the language, there was no point in joining the channel.
So in short: you really have to consider the time frame (year) and where technology was when thinking about the question. :-)
As for Mr. ANDOU's success: yes, I would say he was quite successful. His software was extremely well-known throughout Japan during those times, as nobody else had even considered doing such a thing. Before he passed away, he appeared to also be doing contract work -- so most likely (gut feeling here), probably people hired him to add his NES and SNES emulation cores to some commercial products of sorts. So yes, I would certainly say he was successful. The one thing that made it different, though, was that his stuff cost money -- North Americans did not particularly like emulators and the like costing money. People wanted it for free, and piracy was rampant (good? bad? It's in the eye of the beholder...).
No, there wasn't a cartridge, only a ROM. Nobody was really interested in making homebrew carts at that time -- if you'd proposed it, people would have said "Haha, why? We have SNES copiers. A ROM file is just as good, and easier to maintain/transfer around!"olddb wrote:6. When you made Super Kid Icarus game/demo, did you ever made a physical cart? If so, did you ever show to stores / trade show, etc? What were your expectations and goals for this project?
In the early 90s nobody was really doing hardware development (or reverse-engineering at that level). Gau was one exception, but I never knew how deep his skill set went. When I heard about his Romulator project, I then got the impression he was also a hardware guy, which (I felt) was unique for the time period. Most people doing snesdev and RE were software-oriented folks, I think.
Super Kid Icarus was never intended to be a commercial thing -- ever. Gau and I both knew we would've been sued off the face of the planet by Nintendo. It would've contained original assets (graphics, music, etc.) from Kid Icarus, plus had the Kid Icarus name in it. We were taking a chance even having "Kid Icarus" in the title, but I don't think either of us really cared at that point. So no, no trade shows or anything like that.
As for expectations/goals: our goal/hope was to make exactly what I said: basically "port" Kid Icarus to the SNES, but with improved graphics/sound/etc., as well as offer a "classic" mode that used the original graphics/music, so that you could play whichever version you liked. Oh, we did have one goal, IIRC: get rid of the password system and simply have a save game feature via battery-backed SRAM, where things would save at the end of each stage. I always hated the password systems in Metroid, Kid Icarus, etc. -- tedious, error-prone, and annoying. Back then it was done to save money when manufacturing carts (expensive!)... but with SNES copiers, battery-backed SRAM was basically just a .SRM file on a floppy disk.
That's a very good question. To be completely honest, I can't remember which emulator I saw run a commercial SNES game first. I keep thinking SNES96, but I'm not entirely sure. You'd think I would remember something like that, but sadly I don't. I think the reason has to do with the fact that emulation was happening so rapidly, while simultaneously I had my feet in multiple things at once, that it's hard for me to recall exactly what emulator "came first" in some particular accomplishment. I *definitely* remember the first time I saw ZSNES running a commercial game though, and it was quite amazing. I also remember trying out the VSMC demo, which did run SMW, IIRC, but was infamous for having a yellow palette (from that day forward lots of people referred to it as the "piss yellow emulator"). So maybe SNES96, VSMC, or ZSNES -- not sure.olddb wrote:7. What was the first emulator that could boot a commercial game (let's say that could run a complete level of SMW)?
You might try digging up some old interviews with me during the emulation heyday of the late 90s and see if I said anything along those lines.
Super Mario World was indeed one of the main test games people used. It's one of those games that really made the SNES look incredible and has stood the test of time. Nintendo did an amazing job! It's a pretty complex game that uses a lot of SNES features, though. Easier as a test bed was to try some homebrew demos.
I would definitely agree with this assessment.olddb wrote:8. Could it be said that for the second half of the 90's there was a race to make a competent working emulator. This race was won by snes9x and zsnes. After those came out, many dropped out. Would you say this is correct?