Mesen X is a cross-platform (Windows & Linux) NES/Famicom emulator built in C++ and C#. This fork is meant to gather development efforts from different forks. Not under active development but pull requests are welcome. https://github.com/NovaSquirrel/Mesen-X
Find a file
2018-03-27 19:46:15 -04:00
Core HD Packs: Added support for <= & >= operators in memoryCheck conditions 2018-03-25 17:39:17 -04:00
Dependencies Build: Statically link the C++ runtime for all build configs 2017-05-15 20:33:38 -04:00
DependencyPacker Libretro support (Windows) 2018-01-04 19:03:47 -05:00
Docs Docs: Updated HD Pack documentation 2018-03-25 17:39:41 -04:00
GUI.NET Debugger: Added options to select what data is imported from dbg/mlb files 2018-03-27 19:46:15 -04:00
InteropDLL Fixed GCC builds 2018-03-24 10:21:11 -04:00
Libretro Libretro: Fixed build error 2018-03-22 17:52:22 -04:00
Linux Debugger: Fixed pause icon showing up due to APU viewer (among other things) 2018-03-10 14:31:05 -05:00
Lua Linux: Minor makefile changes 2018-03-24 12:14:39 -04:00
PGOHelper PGO: Turn on debugger when running PGO builds (~60% increase in performance when debugger opened) 2018-03-03 10:42:45 -05:00
SevenZip Libretro support (Windows) 2018-01-04 19:03:47 -05:00
TestHelper Libretro support (Windows) 2018-01-04 19:03:47 -05:00
UpdateHelper Libretro support (Windows) 2018-01-04 19:03:47 -05:00
Utilities GCC: Fixed warnings 2018-03-24 11:22:43 -04:00
Windows Debugger: Fixed pause icon showing up due to APU viewer (among other things) 2018-03-10 14:31:05 -05:00
.editorconfig UI: Added more auto-pause settings for more flexibility 2018-03-21 21:14:51 -04:00
.gitattributes Initial commit 2014-06-10 16:58:37 -04:00
.gitignore Docs: Added source for the online documentation site 2018-03-04 20:31:33 -05:00
build.sh Libretro support (Linux) 2018-01-04 23:09:07 -05:00
makefile Linux: Minor makefile changes 2018-03-24 12:14:39 -04:00
Mesen.sln Libretro: Removed Lua dependency 2018-01-05 15:37:49 -05:00
README.md Fixed typos in readme 2018-01-05 09:54:58 -05:00

Mesen is a cross-platform NES/Famicom emulator for Windows & Linux built in C++ and C#.

If you want to support this project, please consider making a donation:
Donate to this project using Paypal

Website (https://www.mesen.ca)
Documentation (https://www.mesen.ca/docs)

Releases

Windows

The latest version is available on the website. Older releases are available from the releases tab on GitHub.

Ubuntu

The official releases (same downloads as the Windows builds above) also contain the Linux version of Mesen, built under Ubuntu 16 - you should be able to use that in most cases if you are using Ubuntu.

The Linux version is a standard .NET executable file and requires Mono to run - you may need to configure your environment to allow it to automatically run .exe files through Mono, or manually run Mesen by using mono (e.g: "mono Mesen.exe").

The following packages need to be installed to run Mesen:

  • mono-complete
  • libsdl2-2.0
  • gnome-themes-standard

Arch Linux

Packages are available here: https://aur.archlinux.org/packages/mesen

Roadmap

Things that may or may not be added in the future, in no particular order:

-Support for more UNIF boards and more NES/Famicom input devices
-Debugger improvements (APU state display, etc.)
-Shaders
-TAS editor

Compiling

Windows

Standalone

  1. Open the solution in VS2017
  2. Compile as Release/x64 or Release/x86
  3. Run

Libretro

  1. Open the solution in VS2017
  2. Compile as Libretro/x64 or Libretro/x86
  3. Use the "mesen_libretro.dll" file in bin/(x64 or x86)/Libretro/mesen_libretro.dll

Linux

Standalone

To compile Mesen under Linux you will need a recent version of clang/gcc. This is because Mesen requires a C++14 compiler, along with support for the filesystem API (C++17). Additionally, Mesen has the following dependencies:

  • Mono 4.2.1+ (package: mono-devel)
  • SDL2 (package: libsdl2-dev)

The makefile contains some more information at the top. Running "make" will build the x64 version by default, and then "make run" should start the emulator.
LTO is supported under clang, which gives a large performance boost (25-30%+), so turning it on is highly recommended (see makefile for details).

Libretro

To compile the libretro core you will need a recent version of clang/gcc. This is because Mesen requires a C++14 compiler, along with support for the filesystem API (C++17).

Running "make libretro" will build the core and put it in "bin/mesen_libretro.(x64 or x86).so".
LTO is supported under clang, which gives a large performance boost (25-30%+), so turning it on is highly recommended (see makefile for details).

LICENSE

Mesen is available under the GPL V3 license. Full text here: http://www.gnu.org/licenses/gpl-3.0.en.html

Copyright (C) 2014-2018 M. Bibaud

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.