Emilia Pincab
Emilia Pincab
Philippe Coval <purl.org/rzr> #LGM2021
Who is 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: https://purl.org/rzr
- Currently available for cooperation
- Link me from Fediverse or @RzrFreeFr
- Presentations, Videos, Social
- Interests: FLOSS Community, IoT, 3D/XR…
2020's Motivations
- I was looking for a project to:
- get busy during Lockdown s
- build a product/prototype device
- Base for experimenting
- catch up with modern technology
- while keeping connection to "legacy"
- Think about sustainability
- also in software or community domains
Emilia Pinball's Life
- 2000: Henrik Enqvist wrote game:
- 2003: Last release 0.3.1
- with my contribs (ports, 3ds) tables
- 2004: Abandonware
- Community split into forks…
Abandon to adoption
- Revived project with 0.3.20201218:
- Packaged with 2 community tables:
- Upstreamed in Debian, Yocto/OE…
- Presented online DebConf: #MDCO Gaming #2
Create tables
- Pinedit: A 3D editor to create tables (.pbl)
- Try snap package on GNU/Linux
- Help welcome:
- Port from Qt4 to Qt5+
- Inline/Import/Convert objets from CAD
- Rethink asset format .pbl or GLTF ?
- Import/Convert assets from other games?
Create or improve?
📺
📺
📺
📺
Pinball cabinet
- Closed source pinball simulators
- Supported by Windows (DirectX)
- VPX, FuturePinball, PinballFX…
- Supporting rotated display
- from landscape to portrait
- same form factor as physical device
- Is there any FLOSS pincab ?
Pincab on Emilia?
- Support "portrait" display
- New camera "full" static view
- Improve controllers
- Input: Keyboard, Mouse, Joystick
- Events: Flippers (R/L), plunger, nudges (*3)
- Plug and play (conf, scripts)
- More: GPIO, LED etc
Bill of Material
- Monitor: Philips BDH4251V_00 (2007)
- XGA (1024x768 16:9) + HDMI, VGA
- Plasma digital signage (~40 kg)
- 2 trestles: leveled to ~95 cm
- Buttons (USB Keyboard or mice + strip)
- A 2004 PC (x86 Pentium 4 duo 32bits)
- Or Raspberry Pi 3+ new !
Hardware Support
- Most x86* PC (~2004)
- Raspberry Pi Single board computer
- Pi3: ~20fps (professor)
- Pi4: ~60fps to 20fps (gnu)
- More platform (SBC, GPUs)
- Etnaviv, Freedreno, Panfrost…
- SBC: STM32MP1, db410c, XU4…
Graphics stacks
- Update legacy OpenGL app to support SDL2
- SDL2 with more backends:
- Wayland, X11, KMS/DRM, DirectFB
- New GLESv1 backend renderer
- Pure Wayland with desktop OpenGL support
- Try Mesa3D/DRM new GPUs libre drivers
Try it
- Current release (SDL-1.2)
- Debian-11 / Ubuntu-21.04
- Docker, WLS with X11…
- Install snap snapshots for GNU/Linux
- Or rebuild:
- Build and boot OS image:
- Using DebOS, Ubuntu Core, Yocto
Ubuntu Core
- Ubuntu for embedded (IoT)
- Mininal, Secured, with unattended updates
- snap based (use github for CI/CD)
- pinball, pinball-table-{gnu,hurd} snapped
- Use mir graphical server
- BSPs: PC, RPi (armhf, arm64) and more
OE/Yocto
- Layer based Distro
- Select Board Support Package:
- many supported platforms (intel, arm etc)
- Build for reference distro: "poky"
- Add meta-games layer:
- Build also other derived projects: ie:
- Benchmarked SBCs (STM32MP1, db410c)
Sensor input
- "Nudges Controls" are not intuitive
- Rely on motion sensor is more natural
- Used NXP FRDM-K64F board (Thx NuttX/NXP)
- Could be ported to other HW or RTOS:
- Zephyr, RIOT, FreeRTOS, TizenRT…
Demo: Nudge sensor
📺
📺
📺
📺
Summary
- Issues, patches are welcome
- Install snaps for snapshot packages
- Ask or cook OS images for PC, RPi3+…
- Any Graphics/Sound designers here ? ;-)
- Pinedit to edit .pbl assets
- Subscribe for updates (Fediverse):
Thx!
- Pinball contributors
- Camille @ LPO.fr (Pi4)
- LGM Community + ActivDesign
- Breizh Entropy, Debian Gaming
- OSTC-eu, STM, Mozilla Reps…
Emilia Pincab Philippe Coval <purl.org/rzr> #LGM2021
Created by Philippe Coval