Skip to content
PORTSNATIVE.
HomeCatalog
Web GamesEmulatorsToolsNews
PORTSNATIVE.

A catalog for discovering ports and related projects. We link to official sources and do not host original game files.

ExploreCatalogMy list
InformationAbout usSuggest a portSupportDonationsLegal notice
© 2026 PortsNative
Back to catalog
Mesen2
PORTSNATIVE

Mesen2

EMULATORACTION / ADVENTUREWINDOWSLINUXMACOSSTABLE

Mesen2

Emulador de Multi-system · Nintendo/retro

OriginMulti-system · Nintendo/retro

TechnologyCross-platform native emulator (JIT / dynamic)

Available forWindows, Linux, macOS

View official project

About the project

Emulador multi-sistema para Windows, Linux y macOS con núcleos para NES, SNES, Game Boy/Color, GBA, PC Engine, Genesis, WonderSwan y soporte adicional mediante cores.

Official project information

Author's original READMEOpen on GitHub ↗

Mesen

Mesen is a multi-system emulator for Windows, Linux and macOS.

✨ Highlights

🎮 Multi-System Support

SystemCore Type
NES/FamicomNative
SNES/Super FamicomNative
Game Boy / ColorNative
Game Boy AdvanceNative
PC Engine/TurboGrafx-16Native
Sega Master System / Game GearNative
Sega Mega Drive / GenesisNative
WonderSwanNative
Nintendo DSLibretro Core

🦅 Native Sega Mega Drive / Genesis Core

A from-scratch native Mesen2 core with mono thread for the Sega Mega Drive / Genesis — written in the same style as the existing NES/SMS/PCE cores, sharing Mesen2's infrastructure for save states, rewind, debugger, cheats, movies and the video recorder. The algorithmic reference is the ares MD core, but the implementation stands alone (no nall/libco/sljit dependency) — every subsystem is a Mesen2-native ISerializable class.

Subsystems (Core/Genesis/, ~14.5k LOC)

ModuleRole
GenesisConsoleIConsole implementation; owns all subsystems, drives RunFrame, region detection, cart load
GenesisM68KMotorola 68000 interpreter (full EA + instruction table, interrupts, disassembler)
GenesisZ80Z80 APU interpreter (the SMS-style CPU reused for Mega Drive audio)
GenesisVdpYamaha YM7101 VDP — H32/H40, V28/V30, interlace, sprite DMA, planes A/B + window, shadow/highlight
GenesisYm2612Yamaha YM2612 / OPN2 6-channel FM synth with SSG-EG and DAC
GenesisPsgSN76489 PSG (3 tone + 1 noise channel)
GenesisMemoryManagerM68K + Z80 buses, I/O space, VDP/PSG/YM2612 routing, Z80 bus arbitration
GenesisEepromM24C I2C EEPROM (X24C01 → M24C512) for battery saves on Acclaim-mapper carts
GenesisControlManager + Input/3-button & 6-button pads, TH/TL select protocol, U+D / L+R conflict resolution
Debugger/M68K assembler, disassembler, trace logger, event viewer, VDP tools

Cartridge & Save Support

  • SMD format auto-detection and 16 KB block deinterleaving (512-byte header)
  • Parallel SRAM with odd-byte (/LDS-selected) and word-wide modes, range validation against the header's RA field
  • M24C I2C EEPROM state machine ported from ares/component/eeprom/m24c/, with bit-bang wiring for Acclaim-mapper carts
  • SSF2 bank switching for >4 MB ROMs (e.g. Super Street Fighter II) — 8 × 512 KB swappable banks
  • Region auto-detection from the ROM header string at $1F0 (J/U/E), with NtscJapan for J and JE (Japanese-origin titles that lock out export hardware), and filename-tag fallback for headerless pirate/hack ROMs
  • Battery save/load via Mesen2's BatteryManager, with change detection so saves are only written when SRAM/EEPROM actually changed

Region & Timing

  • ConsoleRegion::Ntsc, Pal, and NtscJapan are all distinguished — the version register at $A10001 reports the correct PAL flag (bit 6) and domestic/export flag (bit 7), so region-locked titles boot on the right "hardware"
  • 262 scanlines / ~59.92 fps (NTSC) or 313 scanlines / ~49.70 fps (PAL); PAL-strict demos (e.g. Titan Overdrive 2) and Japan-only region-locked titles (e.g. Bare Knuckle 2) run correctly

Integration with Mesen2

Every Genesis subsystem inherits ISerializable and uses the SV() serializer macro, so out of the box you get:

  • 💾 Save states & rewind
  • 🎬 Movie recording / playback
  • 🕹️ Debugger (M68K + Z80 disassembly, register viewer, event viewer, VRAM/CRAM/VSRAM memory viewers)
  • 🎨 Cheat codes
  • 🎥 Built-in video recorder (UTVideo / FFVHUFF / H.264 / VP8)

Genesis Gallery

Genesis / Mega Drive game gallery — 3×3 grid

<details> <summary><b>Individual captures</b></summary>
Bare Knuckle 2 (CN)Comix Zone (J)Gunstar Heroes (J)
Bare Knuckle 2 (CN)Comix Zone (J)Gunstar Heroes (J)
Contra: Hard Corps (J)The Super Shinobi II (J)Batman & Robin (US)
Contra: Hard Corps (J)The Super Shinobi II (J)Batman & Robin (US)
Rock n' Roll Racing (E)Beyond Zero Tolerance (US)Astebros (Aftermarket)
Rock n' Roll Racing (E)Beyond Zero Tolerance (US)Astebros (Aftermarket)
</details>

🖥️ Cross-Platform Audio/Video with SDL

Mesen uses SDL2 for cross-platform audio and video output, ensuring consistent performance and compatibility across Windows, Linux, and macOS.

🎬 Modern Video Recording

Built-in video recorder with multiple codec support:

CodecTypeQualityUse Case
UTVideoLosslessPerfectHigh-quality archival
FFVHUFFLosslessPerfectWide compatibility
H.264LossyExcellentSmall file size
VP8LossyGoodWeb-friendly output

🎨 Modern Shader Support (Coming Soon)

Integration with librashader for advanced CRT, LCD, and custom shader presets - bringing retro gaming visuals to life with authentic display effects.


Releases

The latest stable version is available from the releases on GitHub.

Development Builds

Mesen

<ins>Native builds</ins> (recommended)

These builds don't require .NET to be installed.

  • Windows 10 / 11
  • Linux x64 (requires SDL2)
  • macOS - Intel (requires SDL2)
  • macOS - Apple Silicon (requires SDL2)

<ins>.NET builds</ins>

These builds require .NET 8 to be installed (except the Windows 7 build which requires .NET 6).
For Linux and macOS, SDL2 must also be installed.

  • Windows 7 / 8 (.NET 6)
  • Linux x64 - AppImage
  • Linux ARM64
  • Linux ARM64 - AppImage

<ins>Notes</ins>

Other builds are also available in the Actions tab.

SteamOS: See SteamOS.md

Compiling

See COMPILING.md

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-2025 Sour

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

View official project
CALIFICACIÓN
—
Loading votes…
Advertisement

PROJECT FILE

Project type
EMULATOR
Genre
Action / Adventure
Status
Stable
Original platform
Multi-system · Nintendo/retro
Technology
Cross-platform native emulator (JIT / dynamic)
Version
—
Updated
Oct 4, 2026

Target platforms 3

Windows
Linux
macOS
Download / Official Web
Advertisement