I've been making good process on my Demolition Man project, but I've reached a point where I'd like to properly support the 8-Driver Board.
See this thread (http://www.pinballcontrollers.com/forum/index.php?topic=1081.msg9592#msg9592
) for some background, but basically on some WPC games (Demolition Man, Indiana Jones, Road Show, Star Trek: The Next Generation, and Twilight Zone) there's an auxiliary board used to drive an additional 8 outputs.
On Demolition Man, it drives flashers. Without making changes, one of my flashers (I think C44) is always on, and it might have even blown my 20VDC fuse on the power driver board.
I've had to hard-code my builds of pypinproc (in pypinproc.cpp) and PinMAME (in src/p-roc/gameitems.cpp) to set switchConfig.use_column_8 to FALSE. It's normally set to TRUE if the machine type is WPC.
In PinMAME, it might be possible to look at the YAML and set use_column_8 to TRUE only if machineType is WPC and
the YAML doesn't contain coil numbered C37 to C44. From what I'm seeing in pypinproc so far, it might not have enough knowledge of the game to make that decision.
I'm still learning the architecture of the codebase, so I'm at a loss on what the "correct" way to do this should be. Is it possible with existing pypinproc APIs to change the switch configuration to not use column 8? Should we default to not using it unless enabled? Do changes need to extend beyond pypinproc and PinMAME and into libpinproc or pyprocgame?
I'm willing to work on a patch for PinMAME based on my idea of looking for coils C37 through C44 on WPC games to decide how to set use_column_8, if Gerry and others (Snux?) agree that it's a clean solution. I'd rather defer to others for pypinproc changes.