Page 1 of 4

Dissapointed with emulators

Posted: Fri Feb 01, 2013 3:18 pm
by WedNESday
I just wanted to come here and say that I am a little dissapointed with what are supposed to be the 2 best NES emulators available.

Upon deciding to replay a lot of old NES games I downloaded both most recent versions of Nintendulator and Nestopia but I had the following problems.

Upon loading a ROM in Nintendulator... 'Why is the screen grey?' 'Why won't my ROM start?' (you have to press F2). Why don't ROMs start straight away?. Nintendulator's fullscreen mode flickers with a whitescreen 2-3 times per second. Both stretched the image to max when window non-fullscreen maximized. Both lowered the screen resolution to something other than my flatscreen monitor's native resolution resulting in that wierd blurring. Nestopia couldn't run Dragon's Lair at all and I wanted to play it after the AVGN episode. (Btw, it just presents with a white screen). Nestopia also had no fullscreen VSYNC.

So I tried bsnes's NES emulator instead and it works almost as well as my own. (Btw, I can't use WedNESday yet as it currently has no sound emulation.) However, even that lacked fullscreen VSYNC.

I've been bending over backwards to make WedNESday as user-friendly as possible so I guess I'm kind of used to that now. I didn't come here to talk about how wonderful my emulator is. I fully respect not only the work that both authors have done for NES emulation and of course the other aspects of the emulators themselves. Its just that I was a little dissapointed with their lack of what I would call user-friendly features.

Btw how 'finished' is bsnes's NES emulation?

Re: Dissapointed with emulators

Posted: Fri Feb 01, 2013 3:51 pm
by Dwedit
Bsnes (now called Higan) is odd. It has a very "interesting" idea of how roms should be formatted, and it copies anything it loads into your Application Data folder, and converts it to a PRG/CHR/text format (seems like Byuu really hates iNES format). For anything not in the split PRG/CHR/text format, you need to "import" it, and it splits the rom into its special format in your Application Data folder, and makes a text file out of the rom header.

But emulation accuracy looks really good, it runs my Chu Chu Rocket game without any glitches.
It does not emulate bus conflicts like FCEUX does.

Range of mappers supported isn't much compared to other emulators, and VRC7 sound is not emulated.

Re: Dissapointed with emulators

Posted: Fri Feb 01, 2013 4:05 pm
by thefox
WedNESday wrote:I just wanted to come here and say that I am a little dissapointed with what are supposed to be the 2 best NES emulators available.
Who said they are the best? I think Nestopia is among the best for gaming, but Nintendulator is so-and-so for gaming. Remember that being accurate doesn't always mean being good in other aspects.
Nestopia couldn't run Dragon's Lair at all and I wanted to play it after the AVGN episode. (Btw, it just presents with a white screen). Nestopia also had no fullscreen VSYNC.
It runs Dragon's Lair fine, you probably have a bad dump or messed up header in your ROM.

Re: Dissapointed with emulators

Posted: Fri Feb 01, 2013 4:24 pm
by WedNESday
thefox wrote:
WedNESday wrote:I just wanted to come here and say that I am a little dissapointed with what are supposed to be the 2 best NES emulators available.
Who said they are the best? I think Nestopia is among the best for gaming, but Nintendulator is so-and-so for gaming. Remember that being accurate doesn't always mean being good in other aspects.
Oh come on. You ask anybody on this forum to name the best NES emulators and we all know which 2 will always come out on top.
Nestopia couldn't run Dragon's Lair at all and I wanted to play it after the AVGN episode. (Btw, it just presents with a white screen). Nestopia also had no fullscreen VSYNC.
It runs Dragon's Lair fine, you probably have a bad dump or messed up header in your ROM.
I'm using the ROM from the GoodNES set.

Re: Dissapointed with emulators

Posted: Fri Feb 01, 2013 6:48 pm
by blargg
I have the same WTF when using almost any non-commercial progam. I start it and try to do some basic things, and they are so backwards to access or do. The author hasn't stepped back and ensured that the basic features work smoothly to a new user. It's a terrible first impression to make.

Re: Dissapointed with emulators

Posted: Fri Feb 01, 2013 7:03 pm
by tokumaru
WedNESday wrote:You ask anybody on this forum to name the best NES emulators and we all know which 2 will always come out on top.
Well, this is a NES development forum after all, so it's no surprise that the answer to this question might favor accuracy over user friendliness. No emulator is perfect though... Nestopia lacks any sort of debugging features and hasn't been updated in ages, Nintendulator handles video output poorly, and FCEUX is pretty inaccurate.

For a long time, Nestopia and Nintendulator have indeed been the most accurate NES emulators, but there are new candidates. Personally, I don't like the new stuff very much. I have no interest in installing all the crap necessary to run BizHawk (I simply HATE installing emulators, they should all be unzip & run) and it kinda bothers me how purist BSNES has become (last time I checked, a bunch of features had been removed, including the NTSC filter, which made no sense to me, and the mess it makes with ROMs is simply ridiculous, so I stopped using it).
I'm using the ROM from the GoodNES set.
I can also guarantee that Dragon's Lair runs fine in Nestopia. Maybe you left some cheat code intended for another game active or something like that. Happened to me once, I thought the emulator was running the game wrong but it was just being stupid and not associating cheats to specific ROMs.

Re: Dissapointed with emulators

Posted: Fri Feb 01, 2013 8:15 pm
by Dwedit
Yeah, there's Bizhawk and PuNES now. Bizhawk used to be unusably slow, but it got fixed.
But there aren't very many fast emulators left. I think LoopyNES, Famtasia, and Nesticle are the fastest emulators, but LoopyNES never got ported to Win32+DirectX/SDL, Famtasia is not very accurate, and Nesticle is well...Nesticle.

Re: Dissapointed with emulators

Posted: Fri Feb 01, 2013 8:23 pm
by 3gengames
I have a very simple MMC1 game that has scanline problems on FCEUX, bad bankswitching or can't run code in RAM in Nintedulator (Haven't figured that out, yet.) and also has a problem in Nestopia but I forget what. Yes, I do agree emualtors still suck at getting seemingly simple stuff like bankswitching down. Otherwise they seem good.

Re: Dissapointed with emulators

Posted: Fri Feb 01, 2013 8:27 pm
by Dwedit
MMC1 has WRAM protection features, so check that you are doing things correctly there.

Re: Dissapointed with emulators

Posted: Fri Feb 01, 2013 8:29 pm
by tokumaru
Oh yeah, I forgot about PuNES. I kinda like it, but just like Nestopia it lacks debug tools.

Re: Dissapointed with emulators

Posted: Fri Feb 01, 2013 8:40 pm
by 3gengames
Dwedit wrote:MMC1 has WRAM protection features, so check that you are doing things correctly there.
Nope, I mean running code in the $0000-$7FF region. It locks because of a bad opcode. But also, forgot to mention that ROM works perfectly on an NES. No problems, clean splits, etc.

Re: Dissapointed with emulators

Posted: Sat Feb 02, 2013 12:57 am
by thefox
Problems with BSNES/Higan:
- Drag&drop of ROMs doesn't work (it used to work in older versions).
- Eats up 100% of a CPU core (maybe vsync polling in the driver, and fixable by some setting, but I couldn't find one).

Re: Dissapointed with emulators

Posted: Sat Feb 02, 2013 1:07 am
by Near
> However, even that lacked fullscreen VSYNC.

It doesn't use exclusive fullscreen mode, at least not yet. But it does sync to Vblank.
Things that break it include Aero/DWM and bad video card drivers (of which there are plenty.)
A lot of drivers report Vblank too late, so by the time you blit the texture, you get a permanent tear near the top.
Firebrand swears that the way I do Vsync is the only way that works for him, so for some it must be a nice idea.

> I've been bending over backwards to make WedNESday as user-friendly as possible so I guess I'm kind of used to that now.

There is no secret to popularity. You just have to be at the right place at the right time.
NESticle was first. Nestopia came right around when NESticle stopped working with Windows XP.
Expect Nestopia to remain #1 until >50% of Windows users are running an OS that no longer supports it.
It does not matter how good your emulator is. It can be better, faster, smaller, lighter, nicer, fancier, support far more games and controllers, netplay, real-time-rewind, and have a billion optional upgrades through internal patches (force-feedback, CD-audio, etc etc), and it won't matter one iota.

This is how the world works. Technical merit means absolutely nothing.

For what it's worth: I have about 5% of SNES emulator users running bsnes, and maybe 1% of NES emulator users running bnes. I'm not even in the same galaxy as Nestopia and Nintendulator. You may as well beat on BioNES instead.

> Btw how 'finished' is bsnes's NES emulation?

It's been developed for about two or three weeks. People who do that whole test ROM suite thing rank it as just barely above FCEUX. I'd personally rank it lower. FCEUX is better with games, arbitrary test ROMs don't mean much to actual gamers.

Once you get past that point, all the information tends to vary slightly (eg people considering the start of the line at a different clock, people using < to >= instead of <= to > for timing ranges, etc) and it's very hard to do things right without testing on hardware. And then you have the 70 bajillion different descriptions of the illegal opcodes and what to call them, test ROMs that don't even run reliably on real hardware, etc.

Combine that with an inability to come up with a nice way to emulate mappers and boards, and I just kind of grew tired of working on it for now. So it's more there as a toy, and as a testbed for replacing iNES with my own ideas. I don't expect anyone to use it, and I don't care, it's just for me to play around with.

We all want people to help us improve our emulation cores, but anyone even remotely capable would rather write their own emulator. I am no exception. What did you really expect to happen? We have 7,943 emulators. Every single one plays the same 50 games that 95% of gamers touch (Mario 1-3, Zelda 1-2, Metroid, Contra 1-2, ...)

If you're in this for the popularity, you will drive yourself crazy and be miserable. I do things my own way now, to hell with how it hurts my download numbers, and I've never been happier. I'm proud of my work, I don't whore it out to popular opinion so that I can get meaningless praise from the masses. Now instead of me being the one upset all the time, tokumaru is the one that's upset. Better him than me.

> and VRC7 sound is not emulated.

Too little gain. Only benefits Lagrange Point and is seriously complicated (to me at least, I've always had a weak spot with sound emulation.)

> and it kinda bothers me how purist BSNES has become (last time I checked, a bunch of features had been removed, including the NTSC filter, which made no sense to me, and the mess it makes with ROMs is simply ridiculous, so I stopped using it).

It's not meant for you.

higan outputs at 30-bit color (and it matters for SNES luma emulation), so I can't use the NTSC filter since I can't figure out how to make it spit out 30-bit color data. And then how do we handle the differences between NES-NTSC and SNES-NTSC in a multi-emulator? What about if someone wants it on GBA mode for some stupid reason? All the other filters (HQ2x, CRT, scanlines, pixellate, Scale2X, etc) have been implemented as pixel shaders, which have zero CPU impact, so I go with those now instead. Aside from that, the only thing I don't have that I used to is a screenshot function.
Note: the filter issue is my own decision, blargg's library is great. Maybe 10 people even use 30-bit display depths. I don't care, I'm just telling you the technical reason, it wasn't removed on a whim.

I really don't care what you think about the split ROM format. You keep doing things as you always have, I'm going to try some new ideas. Maybe they work out, maybe they don't. To each their own. But please don't associate different with ridiculous. Argue on technical merits, I can't have a debate with you on pejoratives.

You can associate iNES files with the emulator and any one that can work, will. The ones that can't (VRCn pin differences), don't. If you can't spare the extra 200MB that comprises the entire NES collection, then don't use the emulator, no loss to me.

Here's some technical differentiation: plain-text board manifests are stored in an extensible and readable/descriptive format, so it can expand to support absolutely anything ever encountered. Now and in the future. Binary blob fixed field header formats cannot claim the same.

Here's what doesn't make any technical difference whatsoever (bike shedding): whether the ROM files are split or merged together, whether they are in a compressed archive of a certain format or not, whether they have specific file names or extensions or prefixes or suffixes to the ROM data, etc. Once the emulator loads it in, it's all the same.

Distracting side tangents: compatibility with other flash carts / emulators. Important, but if backward compatibility were the milestone, we'd all be running MS-DOS still. We could never handle the VRC pin differences between Contra (J) and Ganbare Goemon if we had to stick with iNES 1.0 forever.

Here are some interesting things that reasonable people can disagree upon: the format of the markup to explain boards (binary, plain-text, XML, BML, ...), whether to mark up boards at a high-level (uses VRC2 with the important two pins mapped to X and Y) or low-level (PRG A0-17 connects to 74LS139 pins 11-XX, 74LS pins connect to VRC2 pins YY-ZZ), whether to use an internal or an external database (or both), etc.

> Eats up 100% of a CPU core (maybe vsync polling in the driver, and fixable by some setting, but I couldn't find one).

Absolutely any kind of sleep whatsoever has a high chance of breaking the video/audio sync. They have a bad habit of sleeping for way longer than 1ms at seemingly random instances.

So it was: use 100% of one CPU core with a steady Vsync, or use 30% of one CPU core with shoddy Vsync. I prefer the former. My emulators are absolutely terrible for battery-powered devices, even if they didn't consume 100% CPU resources, they're slow as molasses.

Re: Dissapointed with emulators

Posted: Sat Feb 02, 2013 3:49 am
by Bregalad
I use VirtuaNES for gaming, and Nintendulator, FCEUX and Nestopia for NES development.

Re: Dissapointed with emulators

Posted: Sat Feb 02, 2013 9:33 am
by WedNESday
Byuu I'm not beating on your emulator.

What exactly do you mean by technical merit means nothing?

Edit: I have fullscreen exclusive VSYNC in my emulator with no additional CPU usage.