Homebrew [Release] Model2 NX 1.0 (experimental) – Sega Model 2 emulator for Nintendo Switch, powered by MAME

toniisound

Well-Known Member
Newcomer
Joined
Apr 22, 2020
Messages
83
Reaction score
52
Trophies
0
Age
34
XP
409
Country
Spain
icon.jpg


Model2 NX 1.0
Sega Model 2 arcade emulator for Nintendo Switch – powered by MAME​

Hi everyone!

After SuperModel NX (Sega Model 3), here is its little brother: Model2 NX, a homebrew port of MAME's Sega Model 2 driver to the Nintendo Switch. It's built from MAME 0.289 (Model 2 driver only) with MAME's SDL front end and a Switch platform layer: controls, file paths, threads, audio and a safe exit.

⚠ This is an experimental release, still in development.
It boots and plays, but it's not full speed yet. Daytona USA runs at about 1/3 speed on stock clocks. Please read the "Known limitations" section before trying it.

What works
  • MAME's Model 2 driver (Model 2 / 2A), ROM sets from MAME 0.289
  • Tested in full: Daytona USA (boots, plays, sound, NVRAM)
  • Joy-Cons (attached) and Pro Controller, Nintendo button layout
  • MAME menu for game selection, input remapping and settings
  • NVRAM and settings are saved when you close the app, including closing from the HOME menu
  • Multi-core: the polygon renderer, geometry parsing and audio run on separate cores
  • Bundled config tuned for the Switch, installed on first launch and never overwritten

Controls
  • − : Insert coin
  • + : Start / select in the Test menu
  • R3 : Test (service) button, opens the operator menu
  • L + R : MAME menu
  • − and + together : Back to the game list
  • Left stick / D-pad and face buttons: game controls (remappable in the MAME menu)

Installation
  1. Copy model2nx.nro to sdmc:/switch/model2nx/
  2. Put your ROM sets (MAME 0.289 zips, don't extract them) in sdmc:/switch/model2nx/roms/
  3. Run it with title override (hold R while opening a game), not from the album applet, so it gets all the memory
On first launch it creates the cfg, nvram, ini, snap, etc. folders and installs mame.ini, ui.ini and ini/source/model2.ini. Edit them there. Delete one to get the defaults back.

Tips
  • Daytona USA stuck on "LINK ID MASTER": press R3 to open the Test menu, go to the game assignments, set the link to SINGLE with +, then exit the menu. The setting is saved to NVRAM when you close the app, so you only need to do it once.
  • Overclocking helps a lot: with sys-clk at 1785 MHz CPU the game runs noticeably faster.
  • Ryujinx is not supported: it doesn't implement an instruction used by GCC 16's exception handling. Use real hardware (Atmosphère).
  • A log is written to sdmc:/switch/model2nx/model2nx.log. Please attach it when you report a problem.

Known limitations
  • The i960 main CPU and the TGP geometry processor run in MAME's interpreters, which is most of the remaining CPU time. Recompilers for them are the next big step.
  • Daytona USA: about 20 emulated fps (~35% speed) on stock clocks
  • Model 2B / 2C games are untested
  • No network link play

Roadmap
  • Recompiler (JIT) support using libnx code memory
  • Recompilers for the TGP and i960
  • GPU polygon rendering, faster UI renderer, custom front end

Download & source
https://github.com/toniisound/model2-nx/releases
Source code (GPL): https://github.com/toniisound/model2-nx

Bug reports, test results with other games and logs are very welcome, here or on GitHub issues.

Credits
  • The MAME team, for the Model 2 driver and everything around it
  • devkitPro / libnx and the SDL2 Switch port
  • Everyone who tested SuperModel NX, where the Switch platform layer comes from

Support
This emulator is completely free and open-source. Optional donations to support development are always welcome:
Ko-fi | PayPal

No ROMs are included or will be provided. Don't ask for them. Model2 NX is not affiliated with Sega, Nintendo or the MAME team.
 
  • Wow
Reactions: purple_bandit

Site & Scene News

New Hot Discussed User Submitted