github.com/drop-target-pinball/spins

Super Pinball System


Keywords
golang, p-roc, pinball, sdl
License
MIT
Install
go get github.com/drop-target-pinball/spins

Documentation

spins

PkgGoDev

The Super Pinball System.

Yes, that is a generic name, but it makes for a great package name.

An early start on hopefully fun times in the future.

Requirements

SDL is used for sound support and a virtual dot matrix display.

For SDL on Ubuntu:

sudo apt-get install libsdl2{,-image,-mixer,-ttf,-gfx}-dev

For SDL on macOS:

brew install go sdl2{,_image,_mixer,_ttf,_gfx} pkg-config

The default installation of the SDL mixer on macOS does not include MP3 support and needs to be rebuilt from source. Install the development tools:

sudo xcode-select --install

Now install mpg123 and edit the definition for sdl2_mixer

brew install mpg123
brew edit sdl2_mixer

Use the editor to change --disable-music-mp3-mpg123 to --enable-music-mp3-mpg123.

Now, build from source:

brew reinstall --build-from-source sdl2_mixer

Thanks for the comment which lists these steps.

The P-ROC is used to interface with the pinball machine. The software for the P-ROC interface, libpinproc, can be built for Linux using Docker. This library is not necessary unless you are connecting to a real machine.

proc/libpinproc/linux-amd64/build.sh

This creates a libpinproc-linux-amd64.tar.gz file in the dist directory. It is easiest to install the contents into /usr/local using the provided script:

sudo proc/libpinproc/linux-amd64/install.sh

Build

Build and install the software:

go install ./...

Run

Note: Many assets used in this project are copyrighted by other sources and are therefore not included in this repository. The boot screen is probably the only part that will work as-is without the additional content pack. Any assets referenced in the x directory are not included.

go run cmd/spins/spins.go -data game/data -k -vdmd

or...

./run

A virtual DMD should show up with a banner for the "Super Pinball System".

Key bindings:

  • left arrow: left flipper
  • right arrow: right flipper
  • enter: start button

See a bitmap font:

go run cmd/spins-view/spins-view.go data/fonts/bm3n.dmd

Build Tags

To compile with P-ROC support:

go install -tags=proc ./...

About

Porting code from:

https://github.com/town-hall-pinball/project-omega

But making it more direct and less framework-y. And lets be serious. The odds of this running on more than one pinball machine is zero so the code is going to be written that way.

Current idea in progress:

MegaMan 3

License

MIT