Skip to content

About

NeoGeo for MiSTer

Resources

Stars

17 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

rmNeoGeo_MiSTer

Fork of MiSTer-devel/NeoGeo_MiSTer for the MiSTer FPGA platform (Terasic DE10-Nano).


The rm version

This section is the same in every rm core: it explains what the line is and what it adds. Skip it if you already know.

rm cores are my own builds, published outside the MiSTer-devel tree. They are not a fork of the emulation: the core is the one from MiSTer-devel, plus what the official tree cannot host, because it requires editing the sys/ framework and MiSTer-devel does not take those changes.

CRT geometry that leaves HDMI alone

CRT Adjust (H-Size, H-Position, V-Shift) and CRT V-Size let you align and size the picture on a 15 kHz tube from the OSD, with the sync left native so the screen never loses lock, and without duplicating or dropping a single line.

The point of the whole thing is where they sit: sys-side, in the analog chain between the scanline stage and the OSD. The scaler taps the video before that point, so HDMI stays bit-identical while you adjust the CRT — you can play on a tube and capture or stream a clean HDMI image at the same time. Putting the same modules inside the core would drag HDMI along with every correction, which defeats the purpose.

V-Size offers two modes: PVM (retimes the lines — perfect on broadcast monitors with a wide lock range) and Cabinet (native timing, photometric — the sync stays rock-steady on arcade chassis with tight AFC). Both are described in detail below.

The module is released standalone and shared by several of my cores: MiSTer-CRT-Adjust.

What this core does not have

Unlike the other rm cores, there is no pause overlay here: this fork adds the CRT geometry and nothing else. Everything else — the emulation, the audio, the savestates — is the MiSTer-devel core, untouched.

Naming

repository / folder rmNeoGeo_MiSTer
Quartus project and RBF rmNeoGeo

The rm RBF has a different file name from the official core, so the two can sit on the same SD card without overwriting each other.

With CRT Adjust set to Off the output is bit-identical to the official core, everywhere.


What's different from the official core

Three new controls in the OSD (Audio & Video page):

Control Range What it does
CRT Adjust Off / On Off = pure passthrough, everywhere bit-identical to the official core
CRT H-Size −16 … +15 stretch / squeeze the picture horizontally
CRT H-Position −48 … +48 px slide the picture left / right
CRT V-Shift −16 … +15 lines move the picture up / down
CRT V-Size −7 … +7 (3 lines/step) stretch / squeeze the picture vertically
CRT V-Size Mode PVM / Cabinet how the vertical size is produced — see below

V-Size: PVM vs Cabinet mode

Vertical size on a CRT can only be changed by paying a price, and the two modes pay it in different currencies — pick the one your monitor prefers:

  • PVM — retimes the line count per frame: every line stays unique (zero artifacts, the vertical twin of H-Size), but the horizontal sync frequency moves ~0.4% per line. Broadcast monitors (PVM/BVM, Barco) with a wide H-lock take it happily; arcade cabinet chassis usually don't.

  • Cabinet — the world premiere: the timing stays 100% native (HSync/VSync untouched to the Hz — losing sync is physically impossible), and the module redraws the picture the way the tube's own V-size pot would: each source line's light is photometrically redistributed (gamma-correct, energy-preserving) onto the fixed scanline grid. On big enlargements the output VSync is micro-delayed so the extra rows escape the retrace and the picture recenters itself. Trade-off: a very slight, uniform vertical softness — no banding, no doubled lines, no shimmer.

  • All adjustments act on the analog output only (VGA / YC / direct video). The HDMI scaler taps the video stream above the module, so HDMI never moves.

  • The CRT never loses sync while adjusting: content is repositioned through a line buffer and every part of the engine restarts on the same line reference — no rolling, no shimmering, no blur (see the module docs for the theory).

  • The RBF is named rmNeoGeo.rbf and coexists with the official core.

Notes / limitations

  • Works on the 15 kHz output (Scandoubler Fx = None). With the scandoubler active, CRT Adjust is bypassed automatically.
  • In PAL video mode use positive V-Shift values only.
  • Use with Vertical Crop disabled.
  • Resource cost: ~1 M10K, ~50 ALM.

Everything else — ROM setup, memory card, CD support, docs below — is the official core, unchanged. Neo Geo core by Furrtek and the MiSTer-devel team; CRT Adjust module by rmonic79 (GPL v3, with help from Andrea Bogazzi).


This is an FPGA implementation of the NEO GEO/MVS system by Furrtek

Features

  • Supports memory card saving
  • MVS, AES, and CD system support
  • Compatible with Darksoft ROM sets using provided XML
  • Compatible with decrypted MAME ROM sets using your own XML
  • Compatible with decrypted .neo ROM sets
  • Compatible with gog.com ROMs using provided XML
  • Support for Universe BIOS

Note: This core does not support encrypted ROMs. Make sure the ROM has no encrypted parts before using. MAME ROM pack includes many encrypted ROMs so it's not recommended for inexperienced users. Using the .neo conversion tool with a MAME ROM set will result in some ROMs still being encrypted. There is an alternate .neo conversion tool for the Darksoft ROM set that will give you a fully decrypted set.

MAME to .neo conversion tool

Darksoft to .neo conversion tool

Installation

Copy the NeoGeo_*.rbf file to the 'Console' or 'Arcade' folder (your choice) on the SD card. ROMs should go in the 'games\NeoGeo' folder. For ease of use, it is strongly suggested that people use the Darksoft ROM pack. These can be either zipped or unzipped with minimal loading speed difference. Several things must be observed:

  • When using an unzipped Darksoft ROM set, each game's ROM files must be in their own folder and the folders containing the ROM sets must be named to match the XML (MAME standard names)
  • ROMs can be placed inside sub-folders for organization
  • Zipped ROMs must not contain folders.

In addition, several bios files must be placed in the 'games\NeoGeo' folder for the core to function properly:

  • 000-lo.lo
  • sfix.sfix
  • sp-s2.sp1 (MVS)
  • neo-epo.sp1 (AES)
  • uni-bios.rom

These bios files must be placed in the 'games\NeoGeo-CD' folder:

  • top-sp1.bin (CD)
  • neocd.bin (CDZ)
  • uni-bioscd.rom (CD and CDZ)

Sometimes these files may be named slightly different depending on where they are obtained, but they must be renamed to match the filenames above to work with MiSTer. You may choose between using the original system BIOS (sp-s2.sp1/neo-epo.sp1) or UniBios (uni-bios.rom). Using UniBios is recommended, and can be obtained here.

Lastly, romsets.xml from the release folder must also be placed in the directory. The provided XML is for Darksoft ROMs only, you must make your own for MAME ROMs. This file describes to the core where the ROM sets are located and how to load them. gog-romsets.xml can be used (renamed to romsets.xml) for games purchased from gog.com (which also include all the needed bios files), see comments in gog-romsets.xml .

Saving and Loading

In AES mode, all saves are to the memory card only. In MVS mode, some games and UniBios save their settings to a special area of battery backed ram built into the system, while game data can still be saved to a memory card.

RAM and Game Sizes

Neo Geo uses very large ROMs. About 84% of the library will fit onto a 32 megabyte SDRAM module. Another 12% will fit onto a 64 megabyte SDRAM module. The remaining 8 games require a 128 megabyte module. For more information about which games can be loaded with which sized RAM, open romsets.xml in your favorite text editor or github. The games are organized by size.

About

NeoGeo for MiSTer

Resources

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages