11# Flash Rules And Effects
22
3- This document describes the behavior added by the PPUC layer on top of the original ` Flash ` ROM when the game is run through PinMAME.
3+ This document describes the behavior added by the PPUC layer on top of the original ROM when the game is run through PinMAME.
44
55The original ROM still owns the game rules, scoring, lamp logic, solenoid timing, switch matrix behavior, ball flow, and attract/game modes.
66PPUC adds extra outputs and trigger-driven presentation around that baseline.
77
88## What PPUC Adds
99
10- PPUC currently adds four kinds of enhancements for ` Flash ` :
10+ PPUC currently adds four kinds of enhancements:
1111
12121 . Extra addressable LEDs that do not exist in the original machine.
13132 . A shaker motor effect layer.
@@ -17,19 +17,20 @@ PPUC currently adds four kinds of enhancements for `Flash`:
1717PPUC does not replace the ROM logic here.
1818It observes ROM-driven switch, lamp, and coil activity and uses that activity to drive modern extras.
1919
20- ## Cabinet LED String
20+ ## Flash Example
21+ ### Cabinet LED String
2122
2223The Flash game config defines an addressable LED string named ` Cabinet ` on IO board ` 1 ` , port ` 29 ` .
2324
2425Source:
2526[ Flash_877888bc-06a9-428a-91ab-6d821e104107.yml] ( ../ppuc_games/flash/Flash_877888bc-06a9-428a-91ab-6d821e104107.yml )
2627
27- ### Physical Layout
28+ #### Physical Layout
2829
2930- LEDs ` 0-7 ` are assigned individually.
3031- LEDs ` 8-93 ` are grouped into segment ` 1 ` .
3132
32- ### LEDs 0-7
33+ #### LEDs 0-7
3334
3435These are configured as GI-linked cabinet/button/status lights:
3536
@@ -44,7 +45,7 @@ These are configured as GI-linked cabinet/button/status lights:
4445
4546All of these map to GI string ` 1 ` , so they follow ROM-driven GI state rather than acting as independent PinMAME lamps.
4647
47- ### LEDs 8-93
48+ #### LEDs 8-93
4849
4950This range is configured as ` segment 1 ` .
5051The intent of this segment is effect playback, not direct PinMAME lamp ownership.
@@ -63,7 +64,7 @@ Current configured effect:
6364Under the new model, this segment should be defined in YAML only as an effect target.
6465The logic deciding when it starts should live only in the rule file.
6566
66- ## Shaker Motor
67+ ### Shaker Motor
6768
6869The Flash game config also defines a shaker on IO board ` 1 ` , port ` 19 ` .
6970
@@ -78,7 +79,7 @@ PPUC adds it as a modern feedback device.
7879
7980### Configured Shaker Effects
8081
81- Two PWM effects are currently defined in the Flash YAML.
82+ Two PWM effects should be defined in the Flash YAML.
8283
8384#### Jet Bumper Shaker
8485
@@ -127,7 +128,7 @@ F cabinet-flash-attract 1 : lamp_rising(5) && attract
127128
128129Here:
129130
130- - ` F ` is the target channel for the effect event that will be emitted
131+ - ` F ` is the target channel for the effect event that will be emitted. It means effect.
131132- ` cabinet-flash-attract ` is the effect trigger ID or name
132133- ` lamp_rising(5) && attract ` is the condition
133134
@@ -262,11 +263,14 @@ So the intended setup is now:
262263- ` flash.rules` defines all boolean logic and trigger conditions
263264- YAML effect `trigger:` blocks are no longer needed for named effects
264265
265- # # TODO
266+ # # Config Tool Status
266267
267- - ` ../config-tool` still generates effect `trigger:` blocks in YAML.
268- - Update `../config-tool` so generated LED and PWM effect entries only emit static effect definitions.
269- - After that change, all trigger logic should live exclusively in the rule file.
268+ ` ../config-tool` now needs one explicit machine effect name per LED or PWM effect.
269+
270+ - That field is exported as YAML `name:`.
271+ - The old effect-level `trigger:` field has been removed from LED and PWM effect content types.
272+ - Generated YAML now emits only static effect definitions plus the machine effect name.
273+ - All trigger logic now belongs exclusively in the `*.rules` file.
270274
271275# # Effect Names
272276
0 commit comments