This article needs some TLC. Read at your own risk.

Video Game Music Player

Video game music player is a utility from MAME used to natively playback video game music from their sources. Notably, it is not playing from a recording of the audio but actually emulating the chips used to play the music itself. Certain sound systems can be very CPU intensive, such as the Q-sound audio board.

This system scrapes metadata for the “vgmplay” group(s) and loads the vgmplay set from the currently selected theme, if available.

  • Accepted ROM formats: .vgm, .vgz, .zip, .7z
  • Folder: /userdata/roms/vgmplay
MD5 checksum Share file path Description
108b113a596e800a02fece73f784eeb0 bios/qsound.zip
96c11a92992bdff7f7e9d98a52621e1f bios/ym2413.zip
8740932cda05e518a9955f1d08d6786f bios/ym2608.zip

Place your Video Game Music Player ROMs in /userdata/roms/vgmplay. With that said, MAME's file manager can be used to play ROMs from anywhere in the drive.

RetroArch (formerly SSNES), is a ubiquitous frontend that can run multiple “cores”, which are essentially the emulators themselves. The most common cores use the libretro API, so that's why cores run in RetroArch in Batocera are referred to as “libretro: (core name)”. RetroArch aims to unify the feature set of all libretro cores and offer a universal, familiar interface independent of platform.

RetroArch configuration

RetroArch offers a Quick Menu accessed by pressing [HOTKEY] + South button (B SNES) which can be used to alter various things like RetroArch and core options, and controller mapping. Most RetroArch related settings can be altered from Batocera's EmulationStation.

Standardized features available to all libretro cores: vgmplay.videomode, vgmplay.videomode, vgmplay.ratio, vgmplay.shaderset, vgmplay.smooth, vgmplay.integerscale, vgmplay.bezel, vgmplay.bezel_stretch, vgmplay.hud, vgmplay.bezel.tattoo, vgmplay.bezel.tattoo_corner, vgmplay.bezel.tattoo_file, vgmplay.bezel.resize_tattoo, vgmplay.ai_service_enabled, vgmplay.ai_target_lang, vgmplay.ai_service_url, vgmplay.ai_service_pause, vgmplay.runahead, vgmplay.secondinstance, vgmplay.video_frame_delay_auto, vgmplay.vrr_runloop_enable, vgmplay.video_threaded

ES setting name batocera.conf_key Description ⇒ ES option key_value
Settings that apply to all cores of this emulator
GRAPHICS API vgmplay.gfxbackend Choose which graphics API library to use. Vulkan may not work for every core.
⇒ OpenGL gl, GLCore glcore, Vulkan vulkan.
AUDIO LATENCY vgmplay.audio_latency In milliseconds. Can reduce crackling/cutting out.
⇒ 256 256, 192 192, 128 128, 64 64, 32 32, 16 16, 8 8.
ALLOW ROTATION vgmplay.video_allow_rotate Allow cores to set rotation.
⇒ On true, Off false.
CONTROLLER TO LIGHTGUN vgmplay.lightgun_map Map controller inputs to lightgun inputs
⇒ On true, Off false.

libretro: mamevirtual

libretro: mamevirtual configuration

Standardized features for this core: vgmplay.autosave, vgmplay.netplay

ES setting name batocera.conf_key Description ⇒ ES option key_value
Settings that apply to all systems this core supports
OVERCLOCK (UNSTABLE) global.mame_cpu_overclock Enhancement. Reduces system slowdown. Causes issues in some games.
⇒ default default, 30 30, 35 35, 40 40, 45 45, 50 50, 55 55, 60 60, 65 65, 70 70, 75 75, 80 80, 85 85, 90 90, 95 95, 100 100, 105 105, 110 110, 115 115, 120 120, 125 125, 130 130, 135 135, 140 140, 145 145, 150 150.
RENDERING RESOLUTION global.mame_altres Enhancement. Increase the rendering resolution. Makes 3D objects clearer.
⇒ 640×480 640×480, 800×600 800×600, 960×720 960×720, 1024×768 1024×768, 1280×720 1280×720, 1600×800 1600×800, 1920×1080 1920×1080, 2560×1440 2560×1440, 3840×2160 3840×2160.
SHARE MAME ARTWORK global.sharemameart Use the same art paths as standalone MAME - not recommended if using decorations or shaders.
⇒ On (Default) 1, Off 0.
CROP ARTWORK global.artworkcrop Crop MAME artwork to maximize the game screen and only fill unused space.
⇒ On 1, Off (Default) 0.
CUSTOM MAME CONFIG global.customcfg Set system-wide controls via MAME menu
⇒ On 1, Off 0.
ALT DPAD MODE global.altdpad If the D-Pad is oriented incorrectly for your controller.
⇒ Off (Default) 0, DS3 Orientation 1, X360 Orientation 2.
Settings specific to vgmplay
SOFTWARE LIST vgmplay.softList Use MAME software lists to identify ROM
⇒ Don't Use (Default) none, Video Game Music Files vgmplay.
CUSTOM GAME CONFIG vgmplay.pergamecfg Enable per-game custom configuration via MAME menu.
⇒ On 1, Off 0.

MAME, the Multiple Arcade Machine Emulator, is a multi-purpose emulation framework which facilitates the emulation of vintage hardware and software. Originally targeting vintage arcade machines, MAME has since absorbed the sister-project MESS (Multi Emulator Super System) to support a wide variety of vintage computers, video game consoles and calculators as well. MAME doesn't use an individual “core” for each system like RetroArch does, instead the ROM itself usually contains the necessary information to accurately emulate it, thus making it specific to the version of MAME it was made for. Overall it's a very complicated subject, we have a guide specific to arcade just for it.

MAME configuration

MAME offers a Menu in-game ([HOTKEY] + South button (B SNES) or [Tab] on the keyboard). This can be used to manually adjust inputs or game settings. If you're having issues with a specific game, check the MAMEdev FAQ for that game here. For MESS systems specifically, you might find more information on MESS's wiki. All options can also be edited by opening the mame.ini file.

Standardized features available to all versions of this emulator: vgmplay.videomode, vgmplay.padtokeyboard, vgmplay.videomode, vgmplay.bezel, vgmplay.bezel_stretch, vgmplay.hud, vgmplay.bezel.tattoo, vgmplay.bezel.tattoo_corner, vgmplay.bezel.tattoo_file, vgmplay.bezel.resize_tattoo

ES setting name batocera.conf_key Description ⇒ ES option key_value
Settings that apply to all versions of this emulator
VIDEO MODE vgmplay.video BGFX for post-processing, accel/opengl for raw image.
⇒ BGFX bgfx, Accel accel, OpenGL opengl.
BGFX GRAPHICS API vgmplay.bgfxbackend Depends on video mode being set to BGFX. Vulkan is better, when supported.
⇒ MAME Detect automatic, OpenGL opengl, OpenGL ES gles, Vulkan vulkan.
BGFX VIDEO FILTER vgmplay.bgfxshaders Apply a post-processing effect.
⇒ Off None, Bilinear default, CRT Geom crt-geom, CRT Geom Deluxe crt-geom-deluxe, CRT Geom Deluxe (RGB) crt-geom-deluxe-rgb, CRT Geom Deluxe (Composite) crt-geom-deluxe-composite, Super Eagle eagle, HLSL hlsl, HQ2X hq2x, HQ3X hq3x, HQ4X hq4x.
CRT SWITCHRES vgmplay.switchres Allows the use of switchres profiles if present.
⇒ Off 0, On 1.
VERTICAL ROTATION (TATE) vgmplay.rotation Rotates screen by 90 degrees. Intended for rotating displays.
⇒ Off None, Rotate 90 autoror, Rotate 270 autorol.
ARTWORK CROP vgmplay.artworkcrop Crop artwork to only unused space, keeping the game as large as possible.
⇒ Off (Default) 0, On 1.
ALT DPAD MODE vgmplay.altdpad If the D-Pad is oriented incorrectly for your controller.
⇒ Off (Default) 0, DS3 Orientation 1, X360 Orientation 2.
CUSTOM MAME CONFIG vgmplay.customcfg Set system-wide controls via MAME menu
⇒ On 1, Off 0.
DATA PLUGIN vgmplay.dataplugin Make game history, setup instructions, and special moves viewable in the menu
⇒ Enabled 1, Disabled (Default) 0.
Settings specific to vgmplay
SOFTWARE LIST vgmplay.softList Use MAME software lists to identify ROM
⇒ Don't Use (Default) none, Video Game Music Files vgmplay.
CUSTOM GAME CONFIG vgmplay.pergamecfg Enable per-game custom configuration via MAME menu.
⇒ On 1, Off 0.

Use the File Manager in the MAME menu to change tracks.

Here are the default Video Game Music Player's controls shown on a Batocera RetroPad:

For further troubleshooting, refer to the generic support pages.

  • systems/vgmplay.txt
  • Last modified: 23 months ago
  • by atari