Hacker News new | past | comments | ask | show | jobs | submit login
NESticle, a classic NES emulator for DOS, is 20 years old today (twitter.com/dosnostalgic)
120 points by ericzawo on April 4, 2017 | hide | past | favorite | 39 comments



For context: prior to Nesticle you needed a very beefy machine (for the time) to emulate NES games at a half-decent frame rate. All of the existing emulators were basically unplayable on my Pentium60.

Nesticle came out of nowhere and was a huge improvement. Totally playable. I think it was the first jitting nes emulator.


I very much doubt that Nesticle used dynarec. With games of the era requiring precise timings, a JIT would have been more trouble than it's worth. I can't find any source for Nesticle having a JIT compiler either. It was however very inaccurate, which may have contributed to it running faster than most of the emulators of the time.

Dynarec has mostly been used from the N64/PS1/Dreamcast generation and onwards.


It was in fact so inaccurate that many ROMs had to be modified to run under Nesticle. There's actually a tag in the goodtools filenames that indicates a ROM has been modified to run under specific emulators (I think it's [f], but I don't remember 100%, and I'm not going to look this kind of stuff up at work).

Later emulators that made use of game-specific hacks (e.g. ZSNES) would store the hacks in the emulator instead of the ROM, patching the hacks into memory at load time, so people could use the same accurate ROM dumps in both accurate and inaccurate emulators.


Vague memory hanging out with these folks while they were working on this that a lot of speedup was due to well placed inline assembly


Mhm. That's been the general solution to make emulators of the time fast. ZSNES was mostly assembly too.


>I think it was the first jitting nes emulator.

I'm certain it did not use JIT or any kind of recompilation, I believe it's speed came from not being very accurate and also written in hand optimised assembly.


IIRC it wasn't the first fast NES emulator (there was Paul Robson's NESA), but I think it was the first one to be fast and have decent compatibility/mapper support. Having a halfway decent GUI and being freeware didn't hurt its adoption either (iNES DOS/Windows was shareware at the time).


IIRC NESTicle was written by one guy over a weekend or something crazy like that. It was fast because he understood PC architecture and build the whole thing by hand to be fast. It didn't use fancy tricks so much as it avoided things that were unnecessarily slow on PC hardware of the time.


Heh. Yeah the crap one had to go through just to get emulated games running on old hardware...

Somehow Chrono Trigger was playable on a 486, but only if you disabled transparency (which made a couple of levels really tough to navigate) and had sound disabled. This was with ZSNES on Win95 I think?


I remember that in Chrono Trigger there is a part in the future where you need to input a specific button sequence, and in one of the early version of ZNES it wasn't working, it was maddening at the time :).


It wasn't ZSNES, it was your keyboard not accepting input from three keys at once !!! I know because I remember this exact thing.


It was actually neither ZSNES or my keyboard, but SNES9X :)

from:

https://github.com/snes9xgit/snes9x/blob/master/docs/changes...

0.72 released

...

- This time really fixed Allegro library keyboard handling (DOS port); it was missing key some presses/releases (was stopping Chrono Trigger Left + Right + A button combo from working).


ZSNES certainly had the L+R+A problem, too. [1] I assume the default key mapping hit a failure case with some common limited-rollover keyboard design, but I've never bothered researching it. It's possible it was caused by Allegro, as well.

[1]: http://zsnes-docs.sourceforge.net/html/faq.htm#universal_inp...


I remember playing Chrono Trigger on an early SNES emulator that didn't support alpha layers (possibly ESNES), and when you got to the future, you had to know to disable layer 3 so that the fog wouldn't just completely block out the world map.


The transparency problem was common enough with ZSNES to make it into the FAQ: https://github.com/bazzinotti/mac-zsnes-1.36/blob/master/dos...


Yup!


Evem today some emulators have trouble with this :)


iNES is the NES emulator I remember from my childhood, for Mac in particular (although it also ran on Windows, DOS, and every UNIX platform). With a core written in PPC assembly, it was able to run at full speed on any PPC Mac (60 MHz being the slowest). This was around 1998 though.

https://web-beta.archive.org/web/19981205215037/http://www.e...


Ahh, Bloodlust Software. Noggin Knockers 2 and Timeslaughter. The pic in the tweet is of "Buddy" from those games. The character was hidden and was accessed by pressing the down arrow repeatedly on the character select screen until his "down syndrome" caused him to be selected. I'm sure the games suck but I LOVED them when I was 10.


> and was accessed by pressing the down arrow repeatedly on the character select screen until his "down syndrome" caused him to be selected

Haha. There was so much crazy humor very widespread everywhere before "PC landed" (as a wave) over the last ~decade (by which I mean the herd moved from "let's make the odd joke of any one group at times but not seriously harm anyone in reality" to "anything could be offensive to someone so let's not come up with much to cultivate uber-tolerance for the sake of it"). Even freaking Donald Duck euro-comics from the 70s til mid-90s are quite awash reading them as an adult today (with a broader horizon of reference points).


With emulation, comes emulation scene drama: http://patpend.net/articles/zd/article2.html


It's just absolutely fantastic how much the world has changed since this article was written. Let's see...

In one paragraph, we have:

> Damaged Cybernetics was a general grey-area information group. Their main goal, so they said, was to free as much information as possible, for, as the saying goes, information wants to be free. They had sections on their website dedicated to such things as Audio Piracy information (the ripping of CD-DA Audio Tracks and compression to the MPEG-2 Layer 3 audio format),

followed in the next paragraph by:

> What exactly is grey area information, you may ask? It is information that many people would rather not touch with a ten foot pole. It lies somewhere between the realm of legal and illegal.

It's genuinely hard to imagine a world where ripping your own CDs to MP3 was considered "grey area information" that you wouldn't want to "touch with a ten foot pole". The '90s was a very different place.

And then there's this:

> How did he steal the source code? Sardu was running Windows 95 at the time. He made the mistake of leaving drive sharing on (which should not have been on by default, but for some reason, it was on). MindRape was then able to mount Sardu's hard drive (since drive sharing was enabled) with Samba. Pretty clever, right? Regardless, he did this and not only was he able to retrieve the NESticle source code, he was able to look through all of his drives. His Zip drive. His hard drive. His CD-ROM drive. Whatever he wanted. Such an invasion of privacy is ridiculous, but this is what transpired.

Mounting somebody's hard drive through Samba over the open Internet! Of course, this was back in the days of dialup, when everyone's desktop computer had a public IP address. You'd dial in to your ISP, and the IP would be directly assigned to your PC. And, of course, IRC networks back then had no concept of shrouds, so you could just find somebody on IRC, get their IP, and start hitting their open ports! A lot of people will vehemently say that a NAT router isn't a proper substitute for a real firewall... but in this case, it would have prevented this attack. Even the most dirt simple of NAT routers would prevent some rando from over the Internet mounting your HDD via Samba. At the very least they'd have to spear-phish you into running a trojan now. But, of course, home NAT routers weren't a thing until people started using cable and DSL and having multiple computers sharing the same Internet connection. Back in the days of dialup, if you had multiple machines, you paid out the nose for multiple phone lines and then you paid your ISP an extra $5-10/month to allow you to have multiple simultaneous connections on the same account (or you had multiple ISPs; hey, they were only $20 a month and there were dozens to choose from in every major metro area).

The mention of the Zip drive dates it, too. Man, remember when every major PC manufacturer was putting internal Zip drives in their computers? That was a looooooooooooong time ago...


> It's genuinely hard to imagine a world where ripping your own CDs to MP3 was considered "grey area information" that you wouldn't want to "touch with a ten foot pole". The '90s was a very different place.

Yes, but you could also argue it was a much freer place, as in wild west free. On the one hand there was a lot of legal scare, surrounding MP3, patents, DMCA, export controls, etc., and a few people actually got into trouble. On the other hand, you could run a illegal Warez or music download site for years with impunity. Everything was in flow. We as a society haven't determined what goes and what doesn't yet. Good times :-).


> On the one hand there was a lot of legal scare, surrounding MP3, patents, DMCA, export controls

As with any "scares", it took place largely in the media (even there not that much, maybe the odd op-ed and tech/talkshow) while in on-the-ground reality nobody cared and everyone either directly got eagerly and excitedly "into it" or asked their "tech-savvy neighborhood youth" to hook them up with warez or music or in any event back up /digitize their existing collections. (Apart from your typical cautious disposable-income-middle-classer who actually enjoyed regularly investing some of their funds into their ever-growing legal collection of CDs/DVDs/etc) The "scares" initiative really only began in earnest as movies became a feasible target and the music industry must have been much more focused on not sharing the music industry's fate (ie "almost die, then be 'rescued' on breadcrumb terms by Apple")


This was an era where everything really technical was being done via IRC, FTP, and Usenet. WinAmp had yet to be released—let alone Napster.

Nesticle was important because it turned something that was once very hard into something quite easy, which is why it moved emulation away from a purely gray area. The same thing happened even more dramatically with MP3s just a couple of years later.

Soon enough, the gray couldn't stay gray anymore, because too many people were doing it.


> MindRape

Sigh. Donnie succumbed to cancer last May. He was one of my favorite co-workers, a fantastic friend, and a world-class hacker.


It was really heartbreaking to hear about his passing. My condolences to you and your co-workers.


Holy hell. I got my start in software hacking on NES ROMs many years ago. NESticle definitely played a part in me being who I am today. It's strange to see things getting old, but I guess so am I.


Good ole' Nesticle. I remember I was so pumped because I could play the Japanese Final Fantasy's that never got released here. Then I was part of the Destiny of An Emperor 2 translation beta into English, that was fun.

I was in... 6th grade I think when I found out about Nesticle, it changed my life.


Ah, the memories. I especially remember the "Pentium Bug" menu option that I clicked out of curiosity. Nothing happened. Literary :-)

https://en.wikipedia.org/wiki/Pentium_F00F_bug


Slightly off topic but does anyone happen to know the state of NESBox? Their repo hasn't had any real updates since June of 2015 - https://github.com/nesbox/emulator


NESticle got me into modification and reverse-engineering. Specifically, it allowed the user to not only view the graphics ROM data all at once, but also modify the tiles and see the effect in real-time!


I can still picture that icon in my head 20 years later...


What was the first console/arcade emulator?


In terms of arcade, I think the first usable arcade emulator (as opposed to things that could just boot up and get to the attraction screen) was "Dave Spicer's Arcade emulator" circa 1995 for DOS. It only supported a tiny handful of games (Pac-Man, Galaxian, and an obscure game called Amidar)


Neil Bradley did a vector arcade one as well around that time: http://www.emuviews.com/cgi-local/show.cgi?SERIAL=99

For consoles the earliest ones might have been Virtual Gameboy? Or one of the Atari 2600 ones? I'm sure they came along in early 1996.


Emulators for 8 bit computers like the ZX Spectrum and CPC were around for a while, but I remember people saying that emulating games consoles would be impossible, then suddenly they started making leaps and bounds.


Yeah, I remember that ZX Spectrum emulators seemed to be early (before C64 and Apple ][ emulators). Being an American, I never used a Spectrum back in the day, but I used the early Spectrum emulators to play 8-bit games as many of them were the same games as I remember playing on the Apple ][.


Not sure which came first, but I remember trying out a SNES emulator, VSWC (Virtual Super Wild Card) on my 486 before Nesticle. It was discontinued in April 1997 https://web-beta.archive.org/web/19990223191448/http://inter...




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: