Skip to content

surtarso/ASAPCabinetFE

Repository files navigation

GitHub stars GitHub forks C++ Standard CMake imgui version vpin version SDL 2 Version Latest Compile Latest Release GitHub commits since latest release License Documentation GitHub repo size GitHub Downloads (all assets, all releases)

As Simple As Possible Cabinet Front-End

A multi-monitor Virtual Pinball Suite for Linux.

Yes! You can use on single monitor 🙃

ASAPCabinetFE.mp4

"As Simple As Possible".

Tip

Grab precompiled builds from Releases or Actions page for the fastest start.

Please refer to the User's Manual


TL:DR Debian Debian

Copy/paste like a senior systems administrator who has meticulously tested the Ctrl+C and Ctrl+V functionality for three years before committing it to production.
sudo apt-get install git findutils -y -qq
git clone https://github.com/surtarso/ASAPCabinetFE.git ASAPCabinetFE-src
cd ASAPCabinetFE-src
git lfs install && git lfs pull
cat apt-packages.txt | xargs sudo apt-get install -y
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . -j$(nproc)
cmake --install .
cd ~/ASAPCabinetFE
./ASAPCabinetFE

TL:DR Arch Linux Arch

Copy/paste like an overcaffeinated trench-coat-wearing coder whose keyboard is sticky with energy drink residue and whose one true source is an outdated Wiki page.
sudo pacman -Syu --noconfirm git findutils
git clone https://github.com/surtarso/ASAPCabinetFE.git ASAPCabinetFE-src
cd ASAPCabinetFE-src
git lfs install && git lfs pull
cat pacman-packages.txt | xargs sudo pacman -S --needed --noconfirm
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . -j$(nproc)
cmake --install .
cd ~/ASAPCabinetFE
./ASAPCabinetFE

TL:DR MacOS (experimental)

UNTESTED arm64 build Beer (I do NOT own a Mac and I just made it compile and link without errors, if you are a Mac person and interested in this, feel free to jump in as I have no real way to test this right now)
# Install Homebrew if you don't have it:
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
git clone https://github.com/surtarso/ASAPCabinetFE.git ASAPCabinetFE && cd ASAPCabinetFE
git lfs install
git lfs pull
brew update
cat brew-packages.txt | xargs brew install
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${HOME}/ASAPCabinetFE -DCMAKE_PREFIX_PATH="$(brew --prefix)" -DCMAKE_FIND_ROOT_PATH="$(brew --prefix)" -DCMAKE_OSX_ARCHITECTURES="arm64" ..
cmake --build . -j$(sysctl -n hw.logicalcpu)
cmake --install .

Front-End Features

Topper/DMD without Metadata Topper/DMD with Metadata
  • Full screen multi monitor display of table playfield, backglass, topper and DMD.
  • Tailored to mimic Visual Pinball X cabinet setup for seamless transitions.
  • Use VPinballX.ini for size and position auto-configuration.
  • Sort tables by title, type, manufacturer, year or author.
  • Navigate tables with titles and/or wheels and marquees.
  • Support for ambience, per-table music and launch sounds.
  • Extended settings for many display configuration arrangements.
  • Keybind friendly and joystick support.
  • Extremely lightweight, blazing fast and fully customizable.
  • No need to download artpacks, generate your own.
  • Multiple animations to indicate your missing media or to use as default.
  • Procedural generated DMDs with table title or manufacturer logos based on metadata info. (see Legal)
  • Use you own 128x32 real DMD images (animations not yet implemented)
  • Fully compatible with VPX Standalone v10.8.0 and v10.8.1

Editor Features

The Editor
  • Spreadsheet view of all owned tables.
  • Row recolor on successful and failure launches for easy ID.
  • Easily filter tables by any characteristics.
  • View complete table metadata and art with a single click.
  • Fuzzy search and play hotkey making tests super fast.
  • Open root or specific folders straight from the editor.
  • Lists user owned media (images, videos and sounds).
  • Lists table specific files as INIs, VBSs, B2Ss.
  • Lists table specific extras as altColor, altSound etc.
  • Mark tables you have overrided metadata.
  • Advanced menu for file operations (delete, backup, override metadata).
  • Manage media cache with a single click.
  • Create custom table overrides for display and matching.
  • Advanced menu for VpxTool --flags.
  • Use VPin to retrieve table file metadata.
  • Match metadata with VPSDb API with visual feedback.
  • Browse VPSDb to find and download new tables.
  • Automatically apply or update table patches from vpx-standalone-scripts.
  • Download media from the Vpin Media Database and Launchbox Database.
  • Update check and notifications to keep you up to date.
  • Update online databases on the fly.

Note

Check the User's Manual for more details.

Compiling and Running

Make sure you have `git` and `xargs` available (Debian Debian)
sudo apt-get update
sudo apt-get install git findutils -y
Make sure you have `git` and `xargs` available (Arch Linux Arch)
sudo pacman -Syu git findutils --noconfirm

Clone the Repository

git clone https://github.com/surtarso/ASAPCabinetFE.git ASAPCabinetFE-src
cd ASAPCabinetFE-src
git lfs install
git lfs pull
Install Dependencies (Debian Debian)
cat apt-packages.txt | xargs sudo apt-get install -y
Install Dependencies (Arch Linux Arch)
cat pacman-packages.txt | xargs sudo pacman -S --needed --noconfirm
🐞 Build and Run (Debug)

For debugging, build with the Debug configuration to include symbols and run directly from the build folder.

cmake -DCMAKE_BUILD_TYPE=Debug -B build -S .
cmake --build build -j$(nproc)
cd build
./ASAPCabinetFE
# or ./ASAPCabinetFE-Editor
🕹️ Build and Install (Release)
cmake -DCMAKE_BUILD_TYPE=Release -B build -S .
cmake --build build -j$(nproc)
cmake --install build

Run and configure your paths:

cd ~/ASAPCabinetFE
./ASAPCabinetFE
# or ./ASAPCabinetFE-Editor

Built something cool? Share it with us in the Discussions!

Planned Features:

We’re dreaming big! Help us bring these features to life:

  • DOF support.
  • Real DMD connection.
  • Highscore tracking.
  • Multi-launchers.
  • In-game video recording.
  • Media manipulation.
  • Attract Mode.
  • Custom collections.
  • CLI automation.
  • Tournaments. (maybe)

In Development now:

  • Flatpak packaging.
  • Integration of VPXGUITools for table management. (--editor)

The new editor is almost ready and can be beta tested with the latest release! Use it's own binary ASAPCabinetFE-Editor or start with ASAPCabinetFE --editor (or -e for short) to open it up. Please report any issues or suggestions! (some functionalities are not yet implemented)

ASAPCabinetFE-Editor.mp4

Example showing fuzzy search keyboard grab and table launching.

Contribute

  • Contributions are very welcome! Check the TODO list, open issues or pull requests to help improve this app—every bit helps.
  • Contributions to 128x32 logos are highly appreciated. Open pull requests to the assets/img/dmd_still/ folder.
  • If you're a Dear ImGui wizard, please contribute to UI polishing as I'm a complete loser for it, sorry.
  • We're looking for a MacOS maintainer to add/keep/test the __APPLE__ blocks. (Thanks @herrMirto!)
  • You can find the documentation here or by typing doxygen on the project root, and opening docs/index.html.

Acknowledgments

Footnote

If you need help installing and configuring Visual Pinball X check out my wiki page.

Join the Discussions page for questions and ideas!

Legal

“All trademarks and logos are the property of their respective owners and are used only for identification purposes. This project is not affiliated with or endorsed by any company whose logo appears here. Manufacturer logos appear in low-resolution form strictly for identification of the associated tables.”