GabeKnuth / BnD

4 stars 0 forks source link

Ball Search runs in attract #57

Open GabeKnuth opened 7 years ago

GabeKnuth commented 7 years ago

Ball search has been starting in attract, even though all balls are collected. I'm not entirely sure that's supposed to happen. The real question is WHY does that happen? All the balls are in the trough/drain, and if I restart MPF, it doesn't do ball search again. That would indicate that it's not a physical switch problem.

ball search started in attract - MPF.log.zip

jabdoa2 commented 7 years ago

I will have a look later. It should only start on missing balls or when balls are on the playfield.

jabdoa2 commented 7 years ago

The game "found" a new ball during play and, therefore, the playfield had too many balls after the game:

2017-03-31 18:09:04,938 : BallController : Found a new ball which was captured from playfield. Known balls: 5
2017-03-31 18:09:06,461 : EventManager : Event: ======'playfield_ball_count_change'====== Args={'balls': -1, 'change': -1}
2017-03-31 18:09:06,475 : EventManager : Event: ======'playfield_ball_count_change'====== Args={'balls': 0, 'change': 1}
2017-03-31 18:09:08,351 : EventManager : Event: ======'playfield_ball_count_change'====== Args={'balls': 1, 'change': 1}
2017-03-31 18:09:10,427 : EventManager : Event: ======'playfield_ball_count_change'====== Args={'balls': 2, 'change': 1}
2017-03-31 18:09:14,443 : EventManager : Event: ======'playfield_ball_count_change'====== Args={'balls': 1, 'change': -1}
2017-03-31 18:09:29,423 : BallSearch.playfield : Starting ball search
2017-03-31 18:09:29,423 : EventManager : Event: ======'ball_search_started'====== Args={}
jabdoa2 commented 7 years ago

From the switches this also looks correct. Dunno what happened:

2017-03-31 18:08:12,581 : EventManager : Event: ======'s_drain_active'====== Args={} 2017-03-31 18:08:13,081 : ball_device.bd_drain : BCH: Found 1 new balls 2017-03-31 18:08:14,068 : EventManager : Event: ======'s_plungerlane_active'====== Args={} 2017-03-31 18:08:14,611 : EventManager : Event: ======'s_trough_enter_inactive'====== Args={} 2017-03-31 18:08:15,066 : ball_device.bd_plunger : BCH: Found 1 new balls 2017-03-31 18:08:15,156 : EventManager : Event: ======'s_plungerlane_inactive'====== Args={} 2017-03-31 18:08:15,220 : EventManager : Event: ======'s_drain_inactive'====== Args={} 2017-03-31 18:08:15,348 : EventManager : Event: ======'s_trough_enter_active'====== Args={} 2017-03-31 18:08:15,849 : ball_device.bd_trough : BCH: Found 1 new balls 2017-03-31 18:08:24,643 : EventManager : Event: ======'s_drain_active'====== Args={} 2017-03-31 18:08:25,144 : ball_device.bd_drain : BCH: Found 1 new balls 2017-03-31 18:08:29,843 : EventManager : Event: ======'s_plungerlane_active'====== Args={} 2017-03-31 18:08:30,243 : EventManager : Event: ======'s_trough_enter_inactive'====== Args={} 2017-03-31 18:08:30,833 : ball_device.bd_plunger : BCH: Found 1 new balls 2017-03-31 18:08:30,978 : EventManager : Event: ======'s_drain_inactive'====== Args={} 2017-03-31 18:08:31,122 : EventManager : Event: ======'s_trough_enter_active'====== Args={} 2017-03-31 18:08:31,613 : ball_device.bd_trough : BCH: Found 1 new balls 2017-03-31 18:09:03,935 : EventManager : Event: ======'s_topkicker_active'====== Args={} 2017-03-31 18:09:04,927 : ball_device.bd_top_kicker : BCH: Found 1 new balls 2017-03-31 18:09:04,938 : BallController : Found a new ball which was captured from playfield. Known balls: 5 2017-03-31 18:09:05,039 : EventManager : Event: ======'s_topkicker_inactive'====== Args={} 2017-03-31 18:09:05,263 : EventManager : Event: ======'s_plungerlane_inactive'====== Args={} 2017-03-31 18:09:05,971 : EventManager : Event: ======'s_toprightvuk_active'====== Args={} 2017-03-31 18:09:06,456 : ball_device.bd_top_right_vuk : BCH: Found 1 new balls 2017-03-31 18:09:08,334 : EventManager : Event: ======'s_toprightvuk_inactive'====== Args={} 2017-03-31 18:09:13,950 : EventManager : Event: ======'s_drain_active'====== Args={} 2017-03-31 18:09:14,440 : ball_device.bd_drain : BCH: Found 1 new balls 2017-03-31 18:09:29,423 : BallSearch.playfield : Starting ball search 2017-03-31 18:09:29,423 : EventManager : Event: ======'ball_search_started'====== Args={}

GabeKnuth commented 7 years ago

I know this happens at strange times, but since it's mostly other people playing I don't know all the details. I will try to pay attention and capture a log so I can describe the actual ball situation.

GabeKnuth commented 7 years ago

Here's a couple more logs of ball searches running at weird times. ball search started, maybe due to plunger lane switch? 2.zip

ball search with two balls in drain.zip

I think the ball search with two balls in drain problem can be solved by adding the drain to ball search. I'll have to look up how to do that, though.

GabeKnuth commented 7 years ago

Here's another log that shows the game getting super confused during a multiball. This was during the Quarters Multiball mode towards the end of the log file. This happened every time this mode ran. It seems like balls draining weren't recognized.

Archive 24.zip

I believe this is what's happening:

I show different numbers of quarters on the dmd that correspond to the number of balls in play (via the balls_in_play{balls==xxx} conditional event). The game launched four balls as it should have, but after draining several balls it still thought four were out there (because four quarters were on the dmd).

One was in the trough, which the game isn't really aware of since there's no switch. Two more were in the drain, only one of which was known, and another was on the playfield. The game wasn't even trying to move the balls over from the drain to the trough. I had to manually move them, at which point more balls fired out onto the playfield automatically. The mode should have stopped adding new balls by the time I got around to this, but it kept draining and launching new balls.

I blame the Gottlieb trough for this and probably all the other stupid ball problems we're having. I wonder if It wouldn't make sense to stop trying to fit this into our existing devices and instead create a new device type called gottlieb_trough or something? Maybe then we can tweak this?

I may take a look at the system 11 trough I have at home and see if that can't be fit into BnD instead. It would be nice to have direct feedback on ball positions...and maybe it would solve our problems.

jabdoa2 commented 7 years ago

I will review those logs today or tomorrow

jabdoa2 commented 7 years ago

I think I found one problem at least. This is what happened:

The problem is that we only count one of the balls as drained so one ball too much is in play. The solution is easy. Just add the drain tag to the trough as well. This will work because MPF will just see those balls as unexpected balls in the trough. This happens six times in this log.

The fix should remove all symptoms of this issue at least. There are certainly some issues with returning balls in the drain. Dunno how many of those physical issues and how many were counted incorrectly. This happens four times. But those somehow correlate to the unexpected balls in the trough so i guess most were actually failed ejects which resulted in multiple balls ejected to the trough on retry.

jabdoa2 commented 7 years ago

@GabeKnuth this should be fixed. Did you have a chance to check it?