Skip to content

Libvpxhost - #6

Merged
mkalkbrenner merged 7 commits into
mainfrom
libvpxhost
Oct 21, 2026
Merged

mkalkbrenner merged 7 commits into
mainfrom
libvpxhost

Conversation

@mkalkbrenner

Copy link
Copy Markdown
Member

No description provided.

Brings in the schema drift exemption for boards[].virtual, which no
published game export uses yet. The "Schema drift across the stack" job
has failed on it since the pin moved to 98583c99; nothing in the library
itself changes.
Says where to report a vulnerability privately and what is in scope,
so reporters do not have to open a public issue.
vpinball: upstream master, which now carries the Serum plugin change
(frame copies instead of libserum's buffers, identify poll interval as
a setting) as cf4fe0b7, so the pin no longer needs a fork-only commit.

pinmame: nvram_saves with upstream master merged in. The two have to
move together: upstream's PinMAME plugin now calls PinmameSetGameDef,
which the previous pin predates, and the plugin does not compile
against it.
The plugin bus moves to github.com/PPUC/libvpxhost, shared with the
ColorizingDMD editor, pinned as LIBVPXHOST_SHA and built as a subproject
against the same plugin SDK. The plugin folder lookup stays here
(src/PluginDir).

With it, overrides of folder and file settings reach the plugins. They
were ignored before, so PinMAMEPath, SerumPath, VniPath, PUPFolder and
AltSound's Folder fell back to the plugins' defaults. The script and
logging APIs handed to plugins now carry version 1.
The lamp test walks lamp numbers, which on an LED string is an order
nobody can follow along: lamp 11 may be the tenth pixel, lamp 12 the
ninth. When a string misbehaves -- dark after one pixel, a pixel that
never changes -- the question is which position it is, and that needs
a walk that goes LED 0, 1, 2 down the string.

--led-string-test (BenchTest.LedStringTest, and "LED string test" in
the tools menu) does that for every string on a present board. A board
lights LEDs by number, never by position, so each step drives the
lamp, flasher or GI string the LED is assigned to and names the other
LEDs that light with it. An unassigned position still takes its turn
and stays dark, so the operator's count does not drift. Flashers are
pulsed, and high power stays off: the board lights its LEDs without
it, and a real flasher sharing the number is better left dark.

Before walking, it lists assignments beyond a string's `amount`, which
the board never drives. The Dirty Harry export has six of them.

libppuc keeps neither the string length nor an LED's position, so
ledStripes is read here, as emGame already is. The ordering lives in
LedStringWalk, free of yaml-cpp, and is covered by ppuc_tests.
PinMAME numbers the GI strings from 0; the game config, libppuc and the
board firmware number them from 1, and libppuc's SetGIState() drops
anything outside 1..5. The value was passed straight through, so GI 1
was dropped, every other string lit its neighbour, and on WPC the fifth
string was never driven at all. In attract mode, where all strings are
on, only the fifth one looked broken.

The plugins still receive PinMAME's own numbering, which is what VPX
media packs are written against. The debug line now prints the number
the config uses.
Boards light LEDs only by the lamp, flasher or GI number assigned to
them, so a flasher on three LEDs lit all three and a GI string lit
entirely for each of its LEDs.

For its own session the test now hands libppuc a temporary copy of
io-boards.yaml in which every LED of every tested string is a lamp of
its own, numbered clear of the lamp matrix and lamp-type PWM outputs,
with flashers, GI, segments and effects removed. Each LED lights in its
configured colour, unassigned ones in white. Board configuration lives
in RAM, so the next normal start restores the real one.

The tools-menu entry is removed: the boards cannot be reconfigured
while a game runs, so it could only offer the grouped behaviour.
@mkalkbrenner
mkalkbrenner merged commit 8f7550c into main Oct 21, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant