I just recently discovered this emulator while browsing through the emugen wiki and it's apparently the most accurate NES emulator at the moment, passing all the TASVideos tests but scanline/scanline. This means it has 99.4%:
http://www.mesen.ca/TestResults.php
It also has a bunch of interesting features, including netplay, an automatic updater, and a bunch of filters for the games. It also has 216 mappers total and the author is adding more. Here's a link to the main website where it can be downloaded:
http://www.mesen.ca/
I'm surprised no ones ever talked about this emulator on here. I couldn't find a thread for it so I figured I'd make one. Does anyone know how accurate Mesen truly is? I should also point out that it currently has no TASing features implemented into it but I wouldn't be surprised if they are put in later. It actually has some TAS features, but they are still at an early stage and very basic (thanks Spikestuff).
Joined: 10/12/2011
Posts: 6442
Location: The land down under.
We (of the irc) actually do know about this emulator already for some time now, infact I posted on the bug reports on this emulator already (when it was on bitbucket not github).
I should point out that this statement is false and indeed actually does have some TAS features, the lowest of low, but it does have the core basics in already.
Disables Comments and Ratings for the YouTube account.Something better for yourself and also others.
Oh ok, my bad. I'll fix the main post.
Just out of curiosity, could Mesen be ported over to BizHawk at some point? I know it would probably be a lot of work but it would be great to test using the advanced TASing capabilities of BizHawk
Joined: 10/12/2011
Posts: 6442
Location: The land down under.
Weegeechan wrote:
Just out of curiosity, could Mesen be ported over to BizHawk at some point? I know it would probably be a lot of work but it would be great to test using the advanced TASing capabilities of BizHawk
No.
Because Alyosha put his time to made Hawk the other Most Accurate TASing emulator for NES and is currently going through each and every detail to make it better (which you do know about).
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account.Something better for yourself and also others.
Just out of curiosity, could Mesen be ported over to BizHawk at some point? I know it would probably be a lot of work but it would be great to test using the advanced TASing capabilities of BizHawk
No.
Because Alyosha put his time to made Hawk the other Most Accurate TASing emulator for NES and is currently going through each and every detail to make it better (which you do know about).
Fair enough. Alyosha's work is amazing and the progress he's made on NESHawk is astounding. His dedication on making NESHawk the best it can be is commendable and I continue to look forward to more from him.
Well, at least there's a thread now for this emulator if people choose to talk about it in the future.
You must to be kidding me. It can do everything: all kind of overclocking, change pallets, more than 8 sprites per scanline. It have insanely good accurate sound, actually the best sound of all nes emulators i know. Even better than Higan. I can finally play FDS Metroid with overclock and without glitched FDS sound!!!
BUT IT CAN NOT RECORD AVI
Why? Why? WHY?
Joined: 4/17/2010
Posts: 11480
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
Higan? Its NES core is shit, why are you even comparing to it?
Mesen's author only added overclocking after seeing my commits to fceux repo. But props for taking it one step further and overclocking the cpu itself too.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 4/17/2010
Posts: 11480
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
Koh1fds wrote:
feos wrote:
Higan? Its NES core is shit, why are you even comparing to it?
But it have one of the best sound
24 APU test ROMs out of 40? LOL.
BTW, if you feel like running the newest version of it against our test ROMs, please do so, maybe it passes more now.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
I don't really care about accuracy tests
http://s000.tinyupload.com/index.php?file_id=05820033205353281268
Here is sound comparison between real console (first part) and NesHawk (second part) in game Jackal. When you hit something with rocket on real console there is like high tone metallic sound. And in NesHawk it's more low tone fainted sound. Same thing with fceux actually. There is some other differences in sound, but it really hard to hear. There is only three emulators known to me that have sound without any complains: puNES, Higan and QuickNES actually. And by comparing those - Higan wins. It have the most clean sound. The best dpcm samples sounding and it not eating any ends of notes. etc.
edit: i will care about accuracy tests only if emulator don't have visible or heareable issues.
edit2: They broke sound in punes so horrible in last releases. I clearly remember it was the first emulator where i hear right Jackal sound.
Very accurate. But just as a point of clarification mesen does not pass nmi_sync/demo_ntsc even though that link says it does. At this point there is enough information available that any current emulator should be able to achieve accuracy comparable to punes or mesen. But there is still room for improvement in multiple areas, and at any rate to get real 100% accurate emulation you would need a new emulator that works off master clock ticks, that way you can get some of the effects that rely on CPU-PPU alignment.
Thanks for making this thread! Always nice to hear what people think of Mesen.
Koh1fds wrote:
BUT IT CAN NOT RECORD AVI
Why? Why? WHY?
Because my free time is (unfortunately) limited, and I only created Mesen about 2 years ago. (Compared to most NES emulators that have been around for a decade). AVI recording is on my list of things to add eventually, but there are a lot of other things on said list, too.
Alyosha wrote:
But just as a point of clarification mesen does not pass nmi_sync/demo_ntsc even though that link says it does.
It looks like you might be right - I probably compared to Nestopia or other emulators and assumed it passed. It looks like the grid on TASVideos used to list other emulators as passing (with the same result as Mesen), but this was changed recently.
I don't actually have a powerpak or anything to use to test on my own NES, so it's hard to judge whether tests pass or not when they're visual tests. :(
Yeah several tests were incorrectly identified as passing / not passing and only recently that list was cleaned up by feos.
For nmi_sync/demo_ntsc only the first pixel of the middle line should be blinking.
Joined: 4/17/2010
Posts: 11480
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
The list requires a sane way to fill it, I was planning to create an xls and paste from there, but I don't have time; my goal was to rerun all the tests on the newest versions of all the emus. It's absurdly hard to always keep track of everything and keep recalculating the percentages.
Sour, hello there! I know that your GUI is in C# and it has netplay. Could you give us some hints on how to port this feature over to bizhawk, which is also C#/.net? Also, does it connect when the user is using a router and needs a specified port, or it just connects no matter what like kaillera?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
@Sour
I tested Mesen last night and I must say it's pretty nifty. I like the features and it got a really nice interface as well. You did a pretty good job. :)
By the way, I tried to record a movie but if you load state, the movie automatically ends. Is there any chance to implement rerecording functions eventually?
Sour, hello there! I know that your GUI is in C# and it has netplay. Could you give us some hints on how to port this feature over to bizhawk, which is also C#/.net? Also, does it connect when the user is using a router and needs a specified port, or it just connects no matter what like kaillera?
Hey :) The netplay itself is all coded in C++, but there's no reason you couldn't implement the same concept in C#. The concept is pretty simple: the server receives the current state of each client's controller, and applies that to the input ports ($4016/4017). The server then sends the result in the form of a "movie" stream (i.e what inputs were pressed at what moment) and the clients play that movie. The server/client never go out of sync, but it's not that great when ping is high (i.e 150+ms) - other than that it works pretty nicely (and it's certainly better than the experience I had with ZSNES 10+ years ago :p). It has a lot of other features (e.g: selecting which controller you're using, server loading games/states, server-controlled cheat codes, etc), but nothing that is all that hard to implement.
I'm not too certain on the specifics of Kaillera, but Mesen doesn't use a central server/hub. It does however uses UPnP to contact the router & add a port forwarding rule when the server is started, which means it should work out of the box with most routers and the typical LAN setup most of us have at home. Technically, you can also get around this by using UDP hole punching, but Mesen currently uses TCP, so I never looked into it much.
Sonia wrote:
I tested Mesen last night and I must say it's pretty nifty. I like the features and it got a really nice interface as well. You did a pretty good job. :)
By the way, I tried to record a movie but if you load state, the movie automatically ends. Is there any chance to implement rerecording functions eventually?
Thanks! :)
Ending the movie when loading a state is by design, at the moment.
I do want to add more TAS/rerecording-oriented features in the future, and reworking the movie format and such is also on my list of things to do. Unfortunately, that list is pretty large at the moment (link), so I can't say when I'll get around to it.
It would be so nice if avi record will work exactly like in chinese Nestopia plus. Like if you apply some x3 or x4 video filter - you get avi with that filter in correct x3 or x4 resolution with all video settings / filter settings you made.
edit: for example - official Nestopia ignores filter settings, but at least made avi with correct resolution and with filter.
Fceux completely ignores filters.
It would be so nice if avi record will work exactly like in chinese Nestopia plus. Like if you apply some x3 or x4 video filter - you get avi with that filter in correct x3 or x4 resolution with all video settings / filter settings you made.
edit: for example - official Nestopia ignores filter settings, but at least made avi with correct resolution and with filter.
Fceux completely ignores filters.
This should be an option somewhere; not just hardcoded to one or the other.
Link to video
New option "Reduce popping sounds on the DMC channel" is awesome.
Also, here is the problem with Mesen. When you play some games with overclock, like Japanese version of Contra, - you get a lot of sound skips, frame drops and sound popping. Without overclock everything is fine. This didn't happens with fceux + overclock. Feels like my core i7 4770k can't handle some games in Mesen even with pretty small overclock by extra scanlines in ppu cycle. And amount of lag didn't depends on the number of extra scanlines. You can put 10 or 800 extra scanlines and get same amount of lag. So it actually feels like something wrond with overclock.
For example
https://www.youtube.com/watch?v=iFGTPo0-7dY
On the tittle screen, on intro cutscene - everything is fine. Only when you get controls you get lag
Also, here is the problem with Mesen. When you play some games with overclock, like Japanese version of Contra, - you get a lot of sound skips, frame drops and sound popping. Without overclock everything is fine.
Thanks for reporting this, it's probably a new bug in 0.6.0 - it existed before but didn't cause any trouble with the old sound implementation. The newer one (which allows for much lower latency) doesn't play nice with it. The bug is the overclocking implementation itself, though. I'll most likely have a fix for this in the next version.
Edit: for the frame drops though, I'm not sure. That could be a completely unrelated problem. Your computer is probably powerful enough for overclocking - most computers still in use today can probably run games at 2-3x the normal speed, at the very least, so performance is rarely an issue unless you go for 10x overclocking!
Edit 2: I've fixed the sound/fps issues - they basically only occurred for some games (Contra being one) that use the DMC channel. Thanks again for taking the time to post about this issue! Let me know if you still get problems after the next Mesen release.
I know you want AVI recording - but adding AVI recording in a cross-platform way, that enables you to record the post-filter/scaling video and doesn't add external dependencies is not simple.
Raw video at 4x standard resolution would be 225mb of disk space per second - which isn't really an option (only SSDs would be able to keep up). So then you'd need on-the-fly compression, which complicates things some more.
Taking a look at FCEUX's code, it seems to end up with over 1500 lines of code devoted to AVI recording, split into completely different code bases for Windows & Linux.
Considering AVI recording can be done with external tools (with the same end result), and the effort needed to get it working, it's not a very high priority at the moment.
Joined: 4/17/2010
Posts: 11480
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
Sour wrote:
Taking a look at FCEUX's code, it seems to end up with over 1500 lines of code devoted to AVI recording, split into completely different code bases for Windows & Linux.
Try lsnes. It has build-in compressors, the most universal seems to be gzip (used in camstudio lossless codec too).
And for Windows-only, there's also this:
http://www.farb-rausch.de/~fg/code/aviwriter/
I tested it by sticking it into nestopia 1.37 and it works fine. Just grab the needed buffer, whichever one the user wishes.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Considering AVI recording can be done with external tools (with the same end result),
It's really hard to get same result or even impossible to do. When you record avi by emulator there is no frame drops caused by 60.1 fps, no frame drops caused by emulator lag, no frame drops caused by screen capture software lag, no sound popping or sound skips by emulator lag. It's easy to get lossless RGB footage - ideal for future upscale, etc. Record avi is one of the most important features actually. Even most basic feature will be ok. Like record only at original x1 resolution (256x224 or 256x240) with only one codec that supports lossless rgb or even uncompressed video will be ok. It's unnecessary to have record avi that works in real time. It will be ok to record movie (input log) first in real time than use it to dump avi.
So basically when you use screen capture software you most certainly loose overclocked smoothness to frame drops / frame duplication, "reduce popping" to emulator lag etc. All good things that give you Mesen will be lost. You can try to use nvenc to reduce cpu usage, but it only supports color spaces with color blending.