ASAPCabinetFE
 
Loading...
Searching...
No Matches
ASAPCabinetFE

GitHub stars GitHub forks C++ Standard CMake 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 VPinballX front-end for your Linux virtual pinball cabinet.

Crafted for pinball lovers, by a pinball lover.

<video src="https://github.com/user-attachments/assets/019e4170-94f2-464c-9209-4754ba87a029" width="400" >

"As Simple As Possible".

TL:DR

Get up and running in minutes—whether you’re a player or a code tinkerer.

sudo apt-get install git findutils -y -qq
git clone --depth 1 https://github.com/surtarso/ASAPCabinetFE.git ASAPCabinetFE-src
cd ASAPCabinetFE-src
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

‍[!NOTE] :godmode: Grab precompiled builds from Releases or Actions page for the fastest start, or dive into the code for full customization.

Features

ASAPCabinetFE transforms your virtual pinball cabinet into an immersive experience. It might be the frontend you’ve been waiting for, and here is why:

  • 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.
  • Use VPin to retrieve table file metadata.
  • Match metadata with VPSDb API.
  • Browse VPSDb to find and download new tables.
  • Create custom table overrides for media or metadata.
  • Automatically apply or update table patches from vpx-standalone-scripts.
  • Download media from the Vpin Media Database.
  • 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 and fully customizable.
  • No need to download artpacks, generate your own. (See tools)
  • Fully compatible with VPX Standalone v10.8.0 and v10.8.1
  • Just what it takes to make your cabinet look good!

**_ASAPCab_ isn’t just a frontend**—it’s your gateway to a complete virtual pinball experience for Linux. Join us and make it yours!

How it works

  • Scans recursively for .vpx files.
  • Optionally scan file metadata or use your existing vpxtool_index.json.
  • Creates up to four windows for playfield, backglass, topper and DMD.
  • Loads default or custom media for each table.
  • Launches tables with desired VPX executable.

Check the User's Manual for more details.

Compiling and Running

👫 Make sure you have git and xargs available

sudo apt-get update
sudo apt-get install git findutils -y

💏 Clone the Repository

git clone --depth 1 https://github.com/surtarso/ASAPCabinetFE.git ASAPCabinetFE-src
cd ASAPCabinetFE-src

👪 Install Dependencies (Debian based)

cat apt-packages.txt | xargs sudo apt-get install -y
🐞 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
🕹️ 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

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

Default Keymap

Customize these keybinds to fit your cabinet’s controls—because every setup is unique.

Action Key Description
Scroll Table (One) Left/Right Shift Move to the previous/next table.
Scroll Table (Tens) Left/Right Ctrl Move 10 tables backward/forward.
Scroll by Letter z and / Scroll tables alphabetically (prev/next).
Scroll Random r Move to a random table.
Launch Table Enter Launch the selected table with VPinballX
Launch SShot mode s Launch the table in screenshot mode.
Config Panel c Toggle config panel.
Save window pos. left doubleclick Saves current window positions in config.
Metadata Editor m Toggle Metadata Editor in current table.
VPSdb Catalog n Toggle VPSdb catalog for browsing tables.
Quit q Exit the application.

Generator Tools

‍[!IMPORTANT] Make sure your paths are properly configured before generating media.

1. Use the screenshot tool to take planned screenshots

Start the table in "Screenshot Mode" (default: s) and follow the on-screen instructions.

2. Use the generator to record your screen and create media (PNGs or MP4s) for the frontend, saved to paths specified in settings.json.

./generate_media.sh --help

3. Use the missing media tool to find those sneaky tables without art.

./missing_media.sh --help

>[!WARNING] >Use –vpx-version depending on your setup, ex: ./generate_media.sh --vpx-version 10.8.1 -d -f

Planned Features:

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

  • Multi-launchers.
  • In-game video recording.
  • Attract Mode.
  • Integration of VPXGUITools for table management.

Contribute

Contributions are very welcome! Check the [TODO](TODO) list, open issues or pull requests to help improve this app—every bit helps. 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, also check out VPXGUITools to help ease the process of settings tables up.

Join the Discussions page for questions and ideas!