Mesen Core

We tried getting it to compile for Android but it wouldn’t work - maybe we can get it working at some point in the future (would be nice since I imagine high-end phones can most likely handle it).

The core now allows you to remap the controls as well as select which controllers are plugged into the console. Port 1 to 4 are the usual 2 ports + 2 extra ports on a 4-player adapter. Port 5 is used by the expansion port, which is used by most of the famicom’s input devices. For each port, you can select “Auto” which will automatically select an input device according to the data in the game database, or force a specific input device. Most of the standalone’s devices are supported (power pad, family trainer, party tap, pachinko controller, exciting boxing doll, snes controller, snes mouse, etc.) but some aren’t (family basic keyboard, barcode readers, etc.). The “Ascii Turbo File” and “Battle Box” are external storage devices used by some games (e.g Armadillo supports the battle box), and not actual input devices.

Once an input device is selected (whether via “Auto” or a manual selection), button names matching the input device will be shown (after you close & reopen the control options) and you can map the keys. It’s not ideal (e.g trying to emulate a 12-button power pad on a gamepad isn’t great), but it works.

Also, I fixed a bug introduced in yesterday’s changes that caused issues when changing aspect ratio, overscan, and some other settings.

(Probably will be a couple of hours before this is available on the buildbot)

7 Likes

Hi, love the improvements, I’m still having one issue, and one new issue:

  1. Auto loading FDS games doesn’t seem to work properly. Tested with Akumajou Dracula - game asks to set Side A (doesn’t do it automatically, have to hit the button), then afterwards, to set Side B (have to this manually also). Not really an issue for me - I have no problem just using the buttons to do it, I just thought I’d bring it to your attention.

  2. The new issue I’m having isn’t so much your fault - I use a front end (RocketLauncher User Interface), and I use bezels for all of my retro systems. The problem is, there’'s some weirdness happening when a game is first loaded - the window seems to reload itself, and this causes issues with my frontend/bezels, due to the way the frontend tries to grab the window, and draw the bezel around it. With the window flashing twice like that, I think it messes things up. I hate to say that that’s a deal killer for me, because I love the core, but I love my bezels too. :slight_smile:

Here’s what ends up happening:

If you could take a look at this (#2 that is, #1 I’m not concerned about), I’ll buy you another beer. :slight_smile:

Edit: Also, #2 just started happening - the version of the core I was using prior didn’t have any issues with my frontend/bezels.

Loving the core but 2 minor issues I’m running into.

  1. Mouse pointer not disappearing. I’m not sure if some games require it but if they don’t it would be nice if it disappeared while playing.

  2. This might be on my end but I’m getting some popping noises during the Mega Man 2 opening and the boss intro screens. They are minor but happen occasionally even after messing with settings. I’m not getting them with Nestopia. Anyone else experiencing any audio issues?

Yes, a custom palette file.

Bisqwit: bisqwit.iki.fi/utils/nespalette.php.

Thanks!

@Typhon Both issues should be fixed on the next build (I just comitted the changes a few minutes ago). The resolution switch should no longer occur when launching a game, but it can still occur if you change the video filter while playing (specifically, if you select bisqwit’s 4x or 8x filter, it will need to reinitialize the video card with a large internal resolution which might cause the same issue you initially had)

I spent a few hours tweaking & retesting the FDS auto insert disk feature, and with the changes I did, I haven’t found any licensed game that doesn’t work correctly with it (not to say that none exist), and overclocking no longer has an impact on the feature, either.

@Fergdog I’m not sure if there’s anything I can do about the mouse? I haven’t been able to get retroarch to hide my mouse cursor at all, no matter which NES core I use. Might be a retroarch-related issue? Unsure.

The MM2 sound seems fine on my end - try running the core in fast forward mode and seeing how fast it can go, if it’s relatively low, that might be why you’re getting sound issues (I think there are a lot of retroarch settings that can affect this, but I don’t actually know what they are)

@lfan You can put a “MesenPalette.pal” file in RetroArch’s “system” folder and it should load that if you select “Custom” in the palette selection - that way you can use any palette you want.

2 Likes

Resolution issues are fixed, and the ‘Auto Insert Disk’ setting is functional.

Only thing I noticed is, the ‘Fast Forward While Loading’ option seems to get toggled on/off along with the ‘Auto Insert Disk’ setting, regardless of what you have the ‘Fast Forward’ option actually set to (tested with Akumajou Dracula).

Everything else is working great though - love the new OSD messages. :slight_smile:

Edit: This is barely an issue, but I just noticed a little bit ago that Players 3 and 4 are not available in the remap menu - but I tested ‘Super Spike V-Ball,’ and player 3 does work. Totally not complaining - multiplayer seems to work, and I like the default controls you’ve laid out (I’ve always had it exactly like that), just bringing it up in case you forgot.

Ok I don’t think I even changed anything but my mouse is properly disappearing in Mesen now.

As for sound, I get 350 fps while fast forwarding. I tested Mega Man 2 in Mesen standalone and it sounds similar. I think Nestopia just handles filtering of high pitched noises differently or something. I’ll mess around with more settings to see if anything changes it. It’s not really bad popping just different from what I’m used to.

Thank you for making a libretro version of your emulator, it looks really awesome ! I’m gonna test it and make it my new default NES emulator if I like it. :slight_smile:

Nestopia does a lot of stuff to the sound, it’s quite far from the original rendering.
Better compare Mesen to Fceumm while “Sound Quality” is on “low” (untouched).
Higher settings are tweaked at different levels like in Nestopia.
Thanks to Retrowertz for those options.

If you want to get obsessive at sound details and “clicks”, try to compare Gun.Smoke intro after a while. :cowboy_hat_face:

sound in fceumm, at least for fds is not accurate ( i think its the square channels that has noticeable problems )… in ines mode, sound is normally acceptable ( depends who you ask and their hearing “accuracy” )

Thanks for the info, I’ll compare all that. Do you personally prefer the untouched audio or the tweaked “high quality” audio?

Well, it can change depending of the game…
But I usually stay on low as I hate hearing clicks.

@Typhon The P3/P4 mappings will only show up when the game that’s loaded uses the 4-player adapter (if you’re using “Auto”). If you manually set them to “Standard controller” and close/reopen the controls settings menu, you should be able to map the buttons normally? About the fast forward thing, I noticed that while changing the code yesterday, too, I’ll change it.

@Fergdog There are a couple of options in the core to improve common sound issues, too (“Reduce popping on triangle” and “Reduce popping on DMC”). Maybe try turning them on or off and seeing if it makes a difference on your end?

I’m not sure if FCEUmm/Nestopia do anything more than these 2 options. Both FCEUX/Nestopia have a number of audio-related inaccuracies, though, which could somewhat explain the difference you are hearing. (Or it could be the effect of the resampling library Mesen uses (blipbuf) vs what is used in those cores)

1 Like

The 3p and 4p works exactly as you described. Interesting solution, btw - why clutter up the menu?

I also noticed p5 is all of the special devices - I don’t even know what half of these are haha.

Great work!

The problem about the Blargg filter is that it doubles the vertical resolution, messing up with scanlines.
It would be nice if there was an option to keep it at 240p.

That’s how it works in Nestopia 600~x240, making me wonder if the vertical resolution change is really needed at all?

@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.

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

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?

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

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