DiY Pinball

Philippe Coval <> #MiniDebConfOnline


$ whois Phil Coval

  • Software Engineer from Rennes, France
  • OpenSource Contributor, Mozilla Rep (IoT)
  • Involved in OS projects supported by industry:
    • Tizen (Intel), Yocto, IoTivity (Samsung OSG)
  • Contact:
    • Currently available for cooperation
    • Link me from Fediverse or @RzrFreeFr
      • Presentations, Videos, Social
  • Interests: FLOSS Community, IoT, 3D/XR…

Emilia Pinball's Life

  • 2000: Henrik Enqvist wrote game:
  • 2003: I contributed patches (ports, 3ds) table
    • then owned maintenance of project
  • 2002: Landed in Debian main (thx)
  • 2019: Orphaned (don't panic: I'll adopt it)
  • 2020: new tables in debian/testing

Community contribs


๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ


Legacy to Modern ?

  • Desktop OpenGL app on current SW stacks ?
    • Mesa3D, X11 => Wayland, KMS…
    • API: OpenGL 1.x, GL4ES => GLES, Vulkan ?
  • Need BSP, Port: Yocto/OpenEmbedded
  • Benchmarked SBCs (STM32MP1, db410c, Pi)
    • ARM GPUs with FLOSS (Etnaviv, freedreno)
    • using custom profiler "trako"
  • Need a "stable" reference system: Debian

OE/Yocto Demo (WIP)

๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ

Pinball + Cabinet = Pincab

Low cost DiY

  • Bill of Material: ~ BTC 0 (Reuse, Salvage)
    • Digital signage: Philips BDH4251V_00 (XGA)
    • 2 trestles: ~40kg leveled to ~95cm
    • A 2004 PC (x86 Pentium 4 duo 32bits)
    • Buttons (Keyboard or mice + strip)
  • Validated gear using FuturePinball 2010
  • I <3 Freedom : Libre Emilia (Native Linux app)

Pincab on Emilia

  • Support "portrait" display
  • New camera "full" static view
  • Scripts to boot to random table
    • X11, Wayland, systemd
    • Read Only FS
  • New inputs (& outputs ?)
  • Button controls using mouse events:
    • Flippers: Right|Left, Plunger: Middle
    • Nudges: (R|L)&M , (R&L)&M

Demo Pincab

๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ

Sensor input

Demo: Nudge sensor

๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ

Road map

Task State
Emilia "pincab profile" scripts Implemented
Release "final" SDL-1 version WIP
Port to OpenEmbedded/Bitbake Implemented
Release new SDL-2 version Implemented
Publish debian, OE (meta-games) Planned
Deploy to Single boards WIP

Help or Ideas welcome

  • Pick patches from other forks
  • GLES, Vulkan, VR Rendering
  • Publish to other distros (appimage, snap)
  • Modernize asset format (JSON, GLTF?)
  • Interpret behavior scripts (Lua, JS?)
  • Parse other engines' tables
  • Revive pinedit (Qt4) ?
  • Mentor me to join Debian developers

Try code

Create or improve?

๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ

Resources and more:


Video Playback

๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ


  • <2020-12-03 Thu> : #LEE

๐Ÿ“บ ๐Ÿ“บ



๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ ๐Ÿ“บ

Created by Philippe Coval