Mesen Core


#62

@Typhon I didn’t have a lot of choice since they are different key bindings depending on what controllers you use (though P3/P4 only support standard controllers) And yea, the NES supports a ton of input devices: https://wiki.nesdev.com/w/index.php/Input_devices#Hardware
(Edit: Forgot to say, the fds fast forward issue should be fixed in the next build)

@Tatsuya79 Thanks for pointing that out, I didn’t realize the shaders expected a ~600x240p picture. Is there even any reason reason to keep the doubled output at all? If not, I’ll just have both NTSC filters output in 240p with whatever horizontal resolution they have and let RetroArch take care of the aspect ratio. This would probably allow the core run a bit faster when using those filters, too.


#63

I love this emulator. Thank you for porting it over! Are there any plans to add cheat support?


#64

The NTSC effects/noises have perhaps more details when rendered in 480p if you don’t use any scanlines?
Well, your call to keep an option for 240/480p switching or not! :slight_smile:

Or, was Blargg filter intended to be used at 240p or 480p?


#65

Cheats already seem to be working on my end. Screenshot:


#66

Oh that’s awesome. I tried it earlier and didn’t seem to work. I’ll give it another go later.


#67

The 480p resolution is mostly an artifact of the standalone version, it didn’t even support changing the aspect ratio back when the NTSC filter was first implemented, so doubling the res to 480p was the simplest solution.

I’ll give it some more thought - might rename the “Vertical blending” option to “Vertical resolution” and have 240p / 480p (w/ blending) / 480p (w/o blending) as options.

@Arviel Cheats should work. Game genie and pro action rocky codes are supported along with the xxxx:yy and xxxx?yy:zz notations that Nestopia’s core uses. (i.e: the cheat system should support the exact same things as the nestopia core). It’s not impossible that there are some issues with them, though.


#68

I haven’t looked at bisqwit’s code, but I don’t think NTSC encoding cares about vertical resolution in general, since IRL it’s just operating on a signal stream (that is, lines drawn horizontally). IIRC, the 12 horizontal neighboring pixels are involved but nothing vertical.

EDIT: looks like maister’s NTSC shader always stays at 1x vertical res, as well.


#69

The 480px res is just Mesen’s doing. Bisqwit’s outputs 2048px wide lines (the 2x and 4x resolutions just ignore some of the pixels), and blargg’s is always ~600px wide, but both have only 240 lines.


#70

Just wanted to say THANK YOU! @Sour It’s so great that you didn’t go, “… Well, I released it. That’s good enough”. The amount of changes you have sent to the build-bot in the last few days is something to be proud of.


#71

Ok, so in the end, I got rid of the “NTSC Filter: Vertical blending” option entirely and made all NTSC shaders render 240 lines. The “Vertical blending” option was more or less equivalent to enabling bilinear filtering anyway. This way the NTSC filter should behave exactly the same as in Nestopia’s core (so shaders now work as expected)

This change also makes the Bisqwit 4x & 8x filters substantially faster (8x runs almost twice as fast as before). I imagine blargg’s NTSC filter probably runs a tiny bit faster, too (e.g a few FPS faster at most).

@HellfireEternal You’re welcome! Here’s yet another change for the buildbot!


#72

Fantastic core, i’m pretty much ready to ditch nestopia now.

I did notice this though - The NTSC filter seems to be doing something funky with vertical cropping. Check out the scrolling text segment at the beginning of Castlevania 3. Up the top there appears to be some glitchyness once the text and graphics start moving up the screen.


#73

@Sour

Just to relief some stress here, there are no future plans to shutdown the standalone version right? 0.9.5 will happen eventually?

Thinking of how things went with Nestopia, the standalone version is as good as dead today which is sad since the Libretro core misses a few essential options like playing with DIP Switches (Nintendo World Championship) and the ability to write to dumped .fds disk files directly instead of creating separate files, kinda like how the real FDS handles the disks.

Do you think implementing this to Mesen would be a good idea? Because as it is today there is no easy way transferring saves from FDS games from one emulator to another because:

A. The format of the separate files does not match (Nestopia .ups, puNES .dif and Mesen .ips)

B. The save state format does not match and usually save states from different emulators won’t work which makes replaying Metroid, Kid Icarus, Zelda etc. over and over again a bit tedious especially Zelda 2.

EDIT:

I have also created a feature request on GitHub for puNES regarding the ability to write to .fds disk dumps because instead of saves you can backup the whole game and transfer to other emulators.


#74

@butanebob To the best of my knowledge, this is how the actual game behaves as well during the intro sequence. This is usually not visible on a CRT TV because of overscan.

@SigmaVirus No, the standalone version isn’t going anywhere - I’ve spent far too much time on the debugging tools to throw them out of the window! :slight_smile:
As for transferring FDS saves, you should already be able to do this easily by using any program that can apply IPS patches (e.g LunarIPS). Just select the FDS file, and patch it with the IPS file that Mesen creates, the resulting file should be a regular .fds file with the saved data inside it.


#75

I noticed that too, but there’s an option to crop the overscan 8 or 16 pixels. I went with 16, and it completely fixed that.

I think the other cores do that by default, and that’s why you didn’t see it before.


#76

thats the overscan area which is not normally seen if playing on CRT.


#77

Nice change on the Blargg filter. :slight_smile:

But… the overscan settings only cut the picture at the bottom (vertical overscan setting) and from the right side (horizontal) when the filter is activated.


#78

@Sour

Thanks for the tip, so you can actually use the .ips to patch the .fds disk system dumps.

Cool!

What I also liked with the ability to write directly to the dumps in Nestopia were that it was relatively easy to purify the dumps you made which contained all sorts of save files (most used disks you buy from eBay unfortunately do)

All slots taken in Zelda no Densetsu 1 - The Hyrule Fantasy and The Legend of Zelda 2 - Link no Bouken, well just select Namae Kesu and wipe all slots and your .fds disk dump is as good as new again.

Some games doesn’t write to disk when wiping saves with the Namae Kesu option however.

With Akumajou Dracula, Dracula II - Noroi no Fuuin, Hikari Shinwa - Palutena no Kagami and Metroid for example you have to first wipe all slots, create one, start and save in game.

And then we have the impossible ones like Yume Kōjō - Doki Doki Panic and Super Mario Bros. 2 which can’t be wiped easily…

Anyway, thanks again!


#79

same thing with Nestopia’s UPS patches.


#80

So that’s what all these different files were for, I thought it was just some kind of unique save file for the current emulator or something. Damn, I wish I knew which program to use for puNES .dif files, I got quite a lot complete save files that needs to be saved.


#81

I’ve been playing around with the different options, and I noticed that the entire screen seems to get pushed down when you select a filter, except for the Bisqwit filters (no change in screen position for those filters that I could see). Here’s a couple screenshots, 1st is normal, 2nd is with Composite (Blargg).

The 2nd screenshot has the gray bar at the top of the title screen.