Patent Pending - All Things Video Games.
» Articles «



Go Back
Patent Pending

The Answer of Snes9X


It appears most of the speculation about Snes9X was correct. Jerremy Koot has finally admitted to many of the rumors that have been floating around since it's discontinuation last year. Much has happened since I wrote my last article in April. So lets start from the top.

Release dates were set several times before it was actually released. First it was early May. Apparently the programmers ran into some problems and the date was then set to late May.

ZSNES was actually delayed so that Snes9X could come out with Super FX emulation first. This is what zsKnight said in the Emu 24X zsKnight/_Demo_ interview (98.04.23): "Well, yes. I do want the Snes9X team to release the Super FX emulation first since they've helped me a whole lot by giving me info, help, and also providing their source code to their Super FX engine. However, the Snes9X team told us that they don't mind if we release the Super FX first so time will tell."

Snes9X took so long coming out however, ZSNES ended up being released on May 19th. The Mac version actually came out May 22nd, but didn't not include all the features that it was supposed to. Then Jerremy went on vacation in early June and there was no word for a while.

The SNES Emulation Centre's Gossip section was slightly updated with the following:

I have recently discovered that the old Snes9x have been commenting on recent events. Gary Henderson has stated that he never really stopped working on Snes9x but he just didn't release it. Also he said that because of the Nintendo thing he had to find someone else to release it. Was he talking about the current situation and the new programmers, or about a newer version some time ago. Silhouette possiblly? It makes sense to me. Anyway he has also changed his Nintendo story and is now saying that he was told by someone else that Nintendo where cracking down, and so he stopped before he was forced to. He now thinks he was only told this to halt his work on Snes9x. Strange or what.

Antway I would now say that Nintendo never stopped Snes9x, that Gary only said that to get people off his back. He then released a newer version, and called it Silhouette so no one would know. Now he has decided to come back again, only with this new story of new programmers. My guess is that he will, fairly soon, admit that once again he, Koot, and the rest of the group, are back to normal.

So many people were anticipating it's release or poo-pooing it that for a while, Jerremy was likened to Satan. Don't you think this went a little to far? Just because a person didn't have time to work on a Freeware SNES emulator for the public, he becomes the character of Satan. This, unfortunately is what has become of the emulation community. People expect programmers to cater to their needs so they can play all their warez ROMs on it with no regard to the time and effort that the programmers take.

After all of this mess a final release date was set for June 16th, whether it was ready or not. Snes9X DOS versions 0.96 and 1.0 came out a day early on June 15th. Apparently there was a problem integrating the GUI so 0.96 sported the GUI and less functions and 1.0 didn't have the GUI, but included the latest developments. I bet everybody that said it wouldn't come out felt pretty stupid... Soon after, all the other versions of Snes9X except the Win32 version came out. As expected, many people were disappointed with the performance of the emulator compared to ZSNES and SNEmul since Snes9X was written in C.

The source of Snes9X was scheduled to be released June 25th. For unknown reasons, it didn't. Nobody really seemed to notice, and it finally did come out with version 1.05 on July 11th along with several new ports including a N64 port! Snes9X.COM was also set up.

[-NiRv-] in the meantime, had found a bug in Snes9X that incorrectly calculated frameskip. In his nEMU closing message he wrote a lengthy article on exactly what the problem was and he summed it up in his last three paragraphs:

"...It actually gives the impression that snes9x is faster than it is and THAT'S BAD! The team of snes9x wanted their emulator to be the best, the most wonderful, the fastest, etc. This information hides the fact that NLKE is as fast as snes9x or even more. It hides the fact that many other emus aren't so far of having the same speed of snes9x. It hides the fact that they aren't as good as they shows us, since we now know that they shows us what THEY want us to see/belive. And do not try to make me belive it's a typo or an error, it's not possible to do this kind of error, it's impossible.

Now let's see, if they lied to us about this, why would the team be honest with everything else? This include the huge story about zsnes that would have ripped the Snes9x source code of MrGrim. So actually, MrGrim got bitched by tons of lamers without any reason. They could have simply just made this story up because they didn't want to lose the popularity of snes9x (... I'm actually totaly sure about this ...).

Now, for the pleasure of the team of snes9x I SHUT UP. I will leave you with this, if they lied to us so many time, think about all those facts they said that can be TOTALY UNTRUE. Like these new anonymous programmers, Nintendo who stops the project of snes9x, etc. Ho and if you are someone who do a technical info about snes emus and comparison with snes9x and other emus, don't forget to put the frame skipper at -1 in snes9x to have a frames kipper of 0, you may have some big surprise about the final result.

Shortly after this article was published, somebody, possibly [-NiRv-] himself, judging by the META tag, hacked Snes9X.COM and posted the article there. Jerremy posted the following reply and [-NiRv-] then realized that he might have gone too far with his accusations.

If you ACTUALY read the source code correctly then look at the following code:
msdos.cpp:
void S9xSyncSpeed()
[bla]
if (Settings.SkipFrames == AUTO_FRAMERATE)
{
[bla]
}
else
{
* if( IPPU.FrameSkip++ >= Settings.SkipFrames)
{
[bla]
}
[bla]
}
If you notice the line with the '*' infront of it, YOU DO DON'T YOU ! You'll see that FrameSkip(which is initialy 0 ! ) will be incremented BEFORE the compare, so it'll be 1! BEFORE the compare... Thus if Settings.SkipFrames is set to 1 (which is done when on the command line a 0 is specified) it WILL draw the frame ! Now to your inlogical idea about specifying -1, then Settings.SkipFrames will be 0 and thus 1 will still be LARGER then 0.. Thus the frame is ALSO draw... Now maybe your asking your self, why not -2 or -3.. There also smaller, this is because UNSIGNED variables are used.. so -2 will become -1 which is actualy 65535 !

Shortly after that, Jerremy Koot finally made a public statement on SNES Emulation Centre (which is now located on the new Snes9X.COM. It turns out that [-NiRv-] had been correct on some of his accusations, just not on the basis of his article (Go figure...)

First of all, lets start with the thing that happend first and move from there... The Mr. Grim story... Somebody joined the Snes9X team, after getting the source came to the idea that he didn't have enough time to work on it... After that some other emu (not named) was suddenly leaping in features... Make your own conclusions, we made our own... I have one advice for the people still concerned about this, GET OVER IT... We did, Mr. Grim probably also did... Why not you....

Next, the Nintendo lawsuit, this was true.. We were contacted by a company (probably a Snes9X fan) who was negotiating a deal (no I do not know what kind of deal!) with Nintendo and learned that they were planning to sue emulator authors... So we quited Snes9X... After a long while, we did not hear anything about a lawsuit... In that time I myself did not do anything with Snes9X... Gary and a anonymous programmer did work on it... The anonymous programmer (lestat) had a SuperFX emulator ready to be implemented in Snes9X (and then bugfixed)... And Gary improved sound and added transparency and removed a lot of bugs.... So we released v1.0 with the idea of two anonymous programmers.... So all we did was make Gary a anonymous programmer, because he didn't want all the LAME mail from ALL the LAMERS who want this official comment....

Now the last frameskipping thing... This is a bug left from the old code... The old code didn't count the number of frames skipped (as does the new code) but rather counted the number of frames drawn.... Were not God's who make bugfree code.. If we were, Snes9X wouldn't have taken over 3 years to make... I myself worked on a SNES emulator before '95... We never asked for money, neither will we ever ask for money.... We released the source code to let people help us bugfix Snes9X, add more features, etc... The frameskipping bug, was a bug nothing more nothing less... If you want to use a fast emu, use ZSnes, it even states that in the readme file! (Line 90!) We never prentended to be faster.. We can't be faster then ZSnes because ZSnes is fully programmed in ASM and only parts of Snes9X are programmed in ASM... So this it the whole story.... My advice, get over it all... If you want to do something for Snes9X, download the source code, add your features, bugfix the code... Send it to us and we'll add it to Snes9X... Everybody will benifit from that.. So why not do it...

And that about ends the Snes9X saga. Only one thing has been left unanswered. Where did Silhoutte come from? Here are two more reasons why Silouette is probably a secret release of Snes9X:

  1. "The icons, menus, and interfaces are nearly identical."
  2. "One member of the Snes9X team has said the function calls and other bits of code (that could be determined from a compiled binary) were identical."

Also, about ZSNES and Snes9X combining. Many of you had stated that it was not possible to combine ZSNES and Snes9X. Why the heck not?? Snes9X already, if not currently, had ASM integrated into it. More than likely only the DOS version would be able to include ZSNES source, but so what? At least we could have one very good Snes9X port. By now it may not even be necessary because the authors have been sharing so much information with each other, as it should be. There should be so much competition. If there was more helping, great emulators could be created much faster than they currently are.

Anyway, right now we have a slew of good SNES emulators, who cares what their origins are as long as they run games? That's the mentality of the common emulationist now. If that's what you are thinking, then I suggest you change your views. Before it all goes down the crapper. We should be greatful that we DO have a slew of good emulators, but we should also be greatful to the ones who made it possible. Respect emulator authors if you want to continue getting new releases. That's all.

--=MEGAߥTE,
July 26, 1998

This article was not written to offend any individual or party. If it offends you, I'm sorry but these are my views, and I'm entitled to them.



M
E
G
A
ß
¥
T
E

O
N

T
H
E

A
N
S
W
E
R

O
F

S
N
E
S
9
X


This section maintained by MEGAߥTE.
All content © 1997-99 Patent Pending unless otherwise stated. All rights reserved.
Please see the disclaimer / copyright section for more information.
Last update: Saturday, 09-Mar-2002 06:00:00 UTC
http://patpend.net/articles/snes9xa.shtml