spins

package module
v0.0.0-...-71fbeb2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 22, 2020 License: MIT Imports: 0 Imported by: 0

README

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

Documentation

Index

Constants

View Source
const (
	Version = "alpha-v1"
	Date    = "Nov 27 2020"
)

Variables

This section is empty.

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis
cmd
game
mm3
mach
jd
Package proc is the go interface to the Pinball Remote Operations Controller (P-ROC) C library.
Package proc is the go interface to the Pinball Remote Operations Controller (P-ROC) C library.
wpc
Package wpc provides P-ROC device number mappings for the Williams Pinball Controller.
Package wpc provides P-ROC device number mappings for the Williams Pinball Controller.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL