Skip to content

VisualPinball/VisualPinball.Engine.PinMAME

Repository files navigation

Visual Pinball Engine - PinMAME Gamelogic Engine

UPM Package

Enables PinMAME to drive VPE

Structure

This project contains two root folders:

  • VisualPinball.Engine.PinMAME wraps the pinmame-dotnet library and extends it with some meta data. It's also the project that provides the Unity plugins.
  • VisualPinball.Engine.PinMAME.Unity is the Unity UPM package that plugs into VPE and implements the gamelogic engine.

Unity Package

The goal of this repo is to use it within Unity. In order to do that, open the Package Manager in Unity, and add org.visualpinball.engine.pinmame under Add package from git URL.

The Unity package is build and published to our registry on every merge to master.

Development Setup

In order to import the package locally instead from our registry, clone and compile it. This will copy the necessary binaries into the Unity folder. Only then, import the project into Unity.

Since the Unity folder contains .meta files of the binaries, but not the actual binaries, .meta files of uncompiled platforms are cleaned up by Unity. In order to not accidentally commit those files, we recommend to ignore them:

git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/linux-x64/PinMame.dll.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/linux-x64/VisualPinball.Engine.PinMAME.dll.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/linux-x64/libpinmame.so.3.5.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/android-arm64-v8a/PinMame.dll.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/android-arm64-v8a/VisualPinball.Engine.PinMAME.dll.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/android-arm64-v8a/libpinmame.3.5.so.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/osx/PinMame.dll.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/osx/VisualPinball.Engine.PinMAME.dll.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/osx/libpinmame.3.5.dylib.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/ios-arm64/PinMame.dll.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/ios-arm64/VisualPinball.Engine.PinMAME.dll.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/ios-arm64/libpinmame.3.5.a.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/ios-arm64/libz.a.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/win-x86/PinMame.dll.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/win-x86/VisualPinball.Engine.PinMAME.dll.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/win-x86/libpinmame-3.5.dll.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/win-x64/PinMame.dll.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/win-x64/VisualPinball.Engine.PinMAME.dll.meta
git update-index --assume-unchanged VisualPinball.Engine.PinMAME.Unity/Plugins/win-x64/libpinmame-3.5.dll.meta

License

This plugin is licensed under the MIT license. However since we link against PinMAME, the MAME/BSD-3-Clause must be honored as well.