Skip to content

Commit e57c6d1

Browse files
committed
formatting
1 parent f54abf8 commit e57c6d1

2 files changed

Lines changed: 185 additions & 243 deletions

File tree

RULES_AND_EFFECTS.md

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
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

55
The original ROM still owns the game rules, scoring, lamp logic, solenoid timing, switch matrix behavior, ball flow, and attract/game modes.
66
PPUC 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

1212
1. Extra addressable LEDs that do not exist in the original machine.
1313
2. A shaker motor effect layer.
@@ -17,19 +17,20 @@ PPUC currently adds four kinds of enhancements for `Flash`:
1717
PPUC does not replace the ROM logic here.
1818
It 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

2223
The Flash game config defines an addressable LED string named `Cabinet` on IO board `1`, port `29`.
2324

2425
Source:
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

3435
These 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

4546
All 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

4950
This range is configured as `segment 1`.
5051
The intent of this segment is effect playback, not direct PinMAME lamp ownership.
@@ -63,7 +64,7 @@ Current configured effect:
6364
Under the new model, this segment should be defined in YAML only as an effect target.
6465
The logic deciding when it starts should live only in the rule file.
6566

66-
## Shaker Motor
67+
### Shaker Motor
6768

6869
The 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

128129
Here:
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

Comments
 (0)