Mesen Core


Been looking forward to a libretro port of Mesen a long time now.

This is great!


The Core is now on the buildbot :smiley:



Yep, the core should now be available on the buildbot for windows 32/64-bit, linux 64-bit and linux arm. OSX should be added in a little while as well (linux arm & osx haven’t been tested at all, though)


Awesome job on getting the controller issue with patched roms taken care of it.


Mesen supports retroachievements right? Just asking cause I know nestopia doesn’t.


I tested some games, and not work for me.


It does not currently support retroachievements.

Sorry for the confusion, I was just saying that with all the features combined of retroarch and Mesen, if it supported them, it would be awesome.

I believe for the core to support retroachievements it needs to implement retro_get_memory_data and retro_get_memory_size, currently it just returns null and zero.


I added support for achievements (at the very least, I tested a couple of games and it seems to work correctly) - so they should be available once the bot makes a new build.


wow thanx :smiley: :ok_hand:


Thanks! It’s amazing that after all these years a newer Nintendo emulator can still add so much to scene.


Yes! Tested and working! You have plans to add retroachievement support to the original (not libretro) version?


You have plans to add bisqwit palette?



Hey guys. I want to test mesen core on RPI3 with Lakka installed, but i have problems:

I’ve downloaded (armhf) to /Cores folder. So, lakka detected it, and can load it (i see “Mesen 0.9.4” OSD message, so core is loaded). But i cannot load content with mesen core, because lakka shows only fceumm and nestopia cores avaliable (mesen coreinfo is missed because lakka is outdated). The coreinfo path is: /tmp/cores. How to access it?


@evgs first try to update the core-info files, the mesen coreinfo might get downloaded, if it doesn’t download this file and put it whereever the core-info files are installed on lakka


Loving this core so far, thank you very much. :slight_smile:

I did notice some strange behavior with Famicom Disk System. The R1 button seems to reset the game (not sure what it’s supposed to do), and the L1 button seems to either eject the disk or switch sides (not sure), but I get ‘disk error’ messages from the FDS hardware (not RetroArch). Changing the setting 'FDS: Automatically insert disks - On" makes the L1 button functional, but there is no On Screen Display of what happened. There are some games that have more than one disk (“Body Conquest I”), and I’m not sure how if there’s a way to change the disk. The way FCEUMM handles it at the moment is to cycle through Disk0 side A, Disk0 side B, Disk1 side A, Disk2 side B, then back to Disk0 side A - and it gives an OSD for where you’re at in the cycle.

If you can get these issues with FDS (and the ability to remap the L1 eject/switch side, and R1 buttons), this will probably be the best choice for everything Nintendo. Very impressed that this core is already this good - and has Retro Achievements working already (!).


@DukeJP Achievements on standalone is probably not something I will do anytime soon - but maybe at some point in the future.

@lfan I’m not quite sure which palette that is, but there is already a large number of them included in the core - I think I might just give the ability to provide a custom palette in a file, rather than include every single palette in existence.

@Typhon I just fixed a couple of bugs related to system actions (switch disk, reset, insert coin, etc) and pushed the changes (the next build the bot makes should have them).

To explain a bit in more details the FDS stuff: -Automatically insert disks: This is an option that makes Mesen automatically detect when a game asks for a disk and automatically inserts that disk without user intervention. In general, it works well with most licensed games (e.g bio miracle, akumajou - if you boot them up with the option enabled, the game will ask for a disk, and it will go into its loading screen right away). Some games do not like this option (which might cause “Disk error” messages to appear), but most work fine with it (afaik). There’s also currently a bug where this option fails to work properly if you’re using a relatively high level of overclocking (it’s on my list of things to get fixed).

-L1: Inserts the next disk - So if you’re on disk 1 side A/B, it will insert disk 2 side A.
-R1: Switches between side A and B.

Note that L1/R1 will NOT do anything while the “Automatically insert disks” option is enabled (unless the auto insert code realizes it is unable to find the proper disk, which can happen for unlicensed games, in which case it will deactivate itself and L1/R1 will work as it usually does - this is the case for the Bodycon 1 game you mentioned.

There is no “Eject Disk” button - Mesen automatically ejects the disk and inserts the one you selected after a sufficiently long period of time to work with all known games (as far as I know) - so I don’t think there is any good reason to expose this functionality in the libretro port.

And while I’m at it, L2/R2 are insert coin 1/2 buttons for VS System games.

And, the ability to remap the buttons in general is on my list of things to do. I’ve said this to some other people but, I am not actually a retroarch user at all, so I didn’t notice this was actually a feature while comparing with other cores. I should be able to get it done relatively soon.

Hope that helps!


Thank you very much for the explanation, I will give it a go with the new understanding.

Would you be willing to implement OSD messages for when a next disk/side change occurs? It’s not a big deal if you’re not interested, but it is nice to have visual confirmation when a hardware setting change occurs. One of my biggest gripes with the Atari 2600 ‘Stella’ core is that it gives no OSD for when you switch the difficultly switches, and for that reason, I still use MAME (even though the core is very good otherwise).

Last feature I can think of - again, this is minor, but do you think you could make options for ‘Enable turbo P1 on/off’ and ‘Enable turbo p2 on/off’? I love turbo and use it all the time, but I have some snobby purist friends. :slight_smile:


Also, do you have a patreon account or something? I’d like to buy you a beer, sir.

Edit: Just found the donate button on your homepage. :slight_smile:


OSD messages are a thing? That’s another thing I wish I had known ahead of time! I’ll look into that - the standalone version has OSD messages (though not for disk switches, I think). I might just add disk switches to the OSD of the standalone version and hook all of the standalone’s messages to show up in retroarch automatically.

I’m not sure what’s best w/ regards to enable/disable turbo - I’m trying to be careful not to make the options menu too large (there’s already a lot in there after a handful of days!). Or is there a way to have nested menus in the core’s options? That would be ideal really…

And thank you very much for the donation!


Likewise, thanks for a very nice emulator. I didn’t even know about these HD graphics packs, that is very cool stuff - it’d be nice if it catches on in a big way, like the msu-1 support for SNES did.

Not sure about the nested menus - that would be nice to have, and would certainly help to clean things up for more than a few cores.

But in regards to a long list of options, please don’t sweat that, at all. :slight_smile: The ‘options’ menu is usually for power users, anyways - the average user doesn’t do much tinkering. I’ve seen options for a few cores that are probably twice as long as that, and I didn’t find it overwhelming. Personally, I like being able to tweak things.

But, I also understand and respect that you don’t want to expose every single feature found in the standalone version.