<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://test.pinballmakers.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Rule_Flow</id>
	<title>Rule Flow - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://test.pinballmakers.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Rule_Flow"/>
	<link rel="alternate" type="text/html" href="https://test.pinballmakers.com/wiki/index.php?title=Rule_Flow&amp;action=history"/>
	<updated>2026-05-28T05:10:58Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://test.pinballmakers.com/wiki/index.php?title=Rule_Flow&amp;diff=823&amp;oldid=prev</id>
		<title>Jwilson: Created page with &quot;Regardless of the language, framework or code used for a game, there is a basic flow to how most pinball control software works.  The following is a flow layout in plain langu...&quot;</title>
		<link rel="alternate" type="text/html" href="https://test.pinballmakers.com/wiki/index.php?title=Rule_Flow&amp;diff=823&amp;oldid=prev"/>
		<updated>2015-01-25T17:52:25Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Regardless of the language, framework or code used for a game, there is a basic flow to how most pinball control software works.  The following is a flow layout in plain langu...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Regardless of the language, framework or code used for a game, there is a basic flow to how most pinball control software works.  The following is a flow layout in plain language that can be used as a guideline when creating code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Power On Mode&lt;br /&gt;
=============&lt;br /&gt;
---&amp;gt; Hardware initialization&lt;br /&gt;
---&amp;gt; Initiate software driven self tests&lt;br /&gt;
---&amp;gt; Load/set software defaults&lt;br /&gt;
---&amp;gt; Load user configuration changes (ie: credits left, freeplay etc)&lt;br /&gt;
---&amp;gt; Go into attract mode&lt;br /&gt;
&lt;br /&gt;
Attract Mode&lt;br /&gt;
============&lt;br /&gt;
---&amp;gt; Light show&lt;br /&gt;
---&amp;gt; Play sound/music&lt;br /&gt;
---&amp;gt; Is coin door open?&lt;br /&gt;
	---&amp;gt; Yes&lt;br /&gt;
		---&amp;gt; Start Diagnostic Mode&lt;br /&gt;
&lt;br /&gt;
---&amp;gt; Coin switch hit?&lt;br /&gt;
	---&amp;gt; Yes&lt;br /&gt;
		---&amp;gt; Increment credit count&lt;br /&gt;
		---&amp;gt; Update credit display&lt;br /&gt;
		---&amp;gt; Play credit sound&lt;br /&gt;
		---&amp;gt; Return to Attract Mode&lt;br /&gt;
&lt;br /&gt;
---&amp;gt; Start pressed?&lt;br /&gt;
	---&amp;gt; Yes&lt;br /&gt;
		---&amp;gt; Game in Freeplay mode?&lt;br /&gt;
			---&amp;gt; Yes&lt;br /&gt;
				---&amp;gt; Increment Player count &lt;br /&gt;
				---&amp;gt; Start Main Game Mode&lt;br /&gt;
			---&amp;gt; No&lt;br /&gt;
				---&amp;gt; Credit count &amp;gt; 0?&lt;br /&gt;
					---&amp;gt; Yes&lt;br /&gt;
						---&amp;gt; Decrement Coin count&lt;br /&gt;
						---&amp;gt; Update credit display&lt;br /&gt;
						---&amp;gt; Increment Player count &lt;br /&gt;
						---&amp;gt; Start Main Game Mode&lt;br /&gt;
					---&amp;gt; No&lt;br /&gt;
						---&amp;gt; Show &amp;quot;More Credits&amp;quot; display&lt;br /&gt;
						---&amp;gt; Return to Attract Mode&lt;br /&gt;
						&lt;br /&gt;
---&amp;gt; Flipper buttons pressed?&lt;br /&gt;
	---&amp;gt; Display scores for previous four players&lt;br /&gt;
	&lt;br /&gt;
Diagnostic Mode&lt;br /&gt;
===============&lt;br /&gt;
---&amp;gt; Display Diagnostic Options&lt;br /&gt;
	---&amp;gt; Option selected?&lt;br /&gt;
		---&amp;gt; Yes&lt;br /&gt;
			---&amp;gt; Start Item Mode&lt;br /&gt;
	---&amp;gt; Next pressed?&lt;br /&gt;
		---&amp;gt; Yes&lt;br /&gt;
			---&amp;gt; Advance one option&lt;br /&gt;
	---&amp;gt; Previous pressed?&lt;br /&gt;
		---&amp;gt; Yes&lt;br /&gt;
			---&amp;gt; Back up one option&lt;br /&gt;
	---&amp;gt; Exit pressed?&lt;br /&gt;
		---&amp;gt; Return to previous Mode&lt;br /&gt;
&lt;br /&gt;
Game Mode&lt;br /&gt;
=========&lt;br /&gt;
---&amp;gt; Is coin door open?&lt;br /&gt;
	---&amp;gt; Yes&lt;br /&gt;
		---&amp;gt; Start Diagnostic Mode&lt;br /&gt;
		&lt;br /&gt;
---&amp;gt; Current score - Ball start score &amp;lt; 1000?&lt;br /&gt;
	---&amp;gt; Yes&lt;br /&gt;
		---&amp;gt; Disable Ball Save Timer&lt;br /&gt;
&lt;br /&gt;
---&amp;gt; All balls in ball trough?&lt;br /&gt;
	---&amp;gt; Yes&lt;br /&gt;
		---&amp;gt; All player Total Balls Played &amp;lt; 3?&lt;br /&gt;
			---&amp;gt; Yes&lt;br /&gt;
				---&amp;gt; Ball in play?&lt;br /&gt;
					---&amp;gt; Yes&lt;br /&gt;
						---&amp;gt; Ball Save Timer &amp;lt; 10 seconds?&lt;br /&gt;
							---&amp;gt; Yes&lt;br /&gt;
								---&amp;gt; Ball Saved count &amp;lt; 1&lt;br /&gt;
									---&amp;gt; Yes&lt;br /&gt;
										---&amp;gt; Put ball onto Shooter Lane&lt;br /&gt;
										---&amp;gt; Increment Ball Saved count&lt;br /&gt;
										---&amp;gt; Return to Game Mode&lt;br /&gt;
									---&amp;gt; No&lt;br /&gt;
										---&amp;gt; End turn&lt;br /&gt;
										---&amp;gt; Bonus count&lt;br /&gt;
										---&amp;gt; Display score&lt;br /&gt;
										---&amp;gt; Shift to Next player&lt;br /&gt;
										---&amp;gt; Return to Game Mode&lt;br /&gt;
							---&amp;gt; No&lt;br /&gt;
								---&amp;gt; End turn&lt;br /&gt;
								---&amp;gt; Bonus count&lt;br /&gt;
								---&amp;gt; Display score&lt;br /&gt;
								---&amp;gt; Shift to Next player&lt;br /&gt;
								---&amp;gt; Return to Game Mode&lt;br /&gt;
					---&amp;gt; No&lt;br /&gt;
						---&amp;gt; Put ball onto Shooter Lane&lt;br /&gt;
						---&amp;gt; Reset Ball Saved count to 0&lt;br /&gt;
						---&amp;gt; Save Ball Start score&lt;br /&gt;
			---&amp;gt; No&lt;br /&gt;
				---&amp;gt; Play &amp;quot;Game Over&amp;quot; sound&lt;br /&gt;
				---&amp;gt; Return to Attract Mode&lt;br /&gt;
&lt;br /&gt;
		---&amp;gt; Start button pressed?&lt;br /&gt;
			---&amp;gt; Yes&lt;br /&gt;
				---&amp;gt; Player 1 on ball 1?&lt;br /&gt;
					---&amp;gt; Yes&lt;br /&gt;
						---&amp;gt; Player count less than 4?&lt;br /&gt;
							---&amp;gt; Yes&lt;br /&gt;
								---&amp;gt; Freeplay?&lt;br /&gt;
									---&amp;gt; Yes&lt;br /&gt;
										---&amp;gt; Increment player count&lt;br /&gt;
										---&amp;gt; Zero new player score&lt;br /&gt;
									---&amp;gt; No&lt;br /&gt;
										---&amp;gt; Credit count &amp;gt; 0?&lt;br /&gt;
											---&amp;gt; Yes&lt;br /&gt;
												---&amp;gt; Decrement Coin count&lt;br /&gt;
												---&amp;gt; Update credit display&lt;br /&gt;
												---&amp;gt; Increment Player count &lt;br /&gt;
												---&amp;gt; Zero new player score&lt;br /&gt;
											---&amp;gt; No&lt;br /&gt;
												---&amp;gt; Show &amp;quot;More Credits&amp;quot; display&lt;br /&gt;
&lt;br /&gt;
	---&amp;gt; Coin switch hit?&lt;br /&gt;
		---&amp;gt; Yes&lt;br /&gt;
			---&amp;gt; Increment credit count&lt;br /&gt;
			---&amp;gt; Play credit sound&lt;br /&gt;
&lt;br /&gt;
	---&amp;gt; Shooter Lane switch active?&lt;br /&gt;
		---&amp;gt; Yes&lt;br /&gt;
			---&amp;gt; Autolauncher disabled&lt;br /&gt;
				---&amp;gt; Yes&lt;br /&gt;
					---&amp;gt; Set Shooter Lane sound flag to true&lt;br /&gt;
		---&amp;gt; No&lt;br /&gt;
			---&amp;gt; Shooter Lane sound flag = true&lt;br /&gt;
				---&amp;gt; Yes&lt;br /&gt;
					---&amp;gt; Play &amp;quot;Ball Launch&amp;quot; sound&lt;br /&gt;
					---&amp;gt; Display Shooter Lane animation&lt;br /&gt;
					---&amp;gt; Clear Shooter Lane flag&lt;br /&gt;
					---&amp;gt; Start Ball Save Timer&lt;br /&gt;
&lt;br /&gt;
	---&amp;gt; Both Flipper buttons pressed continuously for 15 seconds?&lt;br /&gt;
		---&amp;gt; Display status&lt;br /&gt;
		&lt;br /&gt;
	---&amp;gt; Displaying status screen?&lt;br /&gt;
		---&amp;gt; Yes&lt;br /&gt;
			---&amp;gt; Any Flipper held?&lt;br /&gt;
				---&amp;gt; Yes&lt;br /&gt;
					---&amp;gt; Other Flipper pressed?&lt;br /&gt;
						---&amp;gt; Yes&lt;br /&gt;
							---&amp;gt; Cycle Status screen&lt;br /&gt;
				---&amp;gt; No&lt;br /&gt;
					---&amp;gt; Return to Game Mode&lt;br /&gt;
&lt;br /&gt;
	---&amp;gt; Left Flipper button pressed&lt;br /&gt;
		---&amp;gt; Yes&lt;br /&gt;
			---&amp;gt; Fire Left Flipper Coil&lt;br /&gt;
			---&amp;gt; Cycle Inlane / Outlane lamps left&lt;br /&gt;
&lt;br /&gt;
	---&amp;gt; Right Flipper button pressed&lt;br /&gt;
		---&amp;gt; Yes&lt;br /&gt;
			---&amp;gt; Fire Right Flipper Coil&lt;br /&gt;
			---&amp;gt; Cycle Inlane / Outlane lamps right&lt;br /&gt;
&lt;br /&gt;
	---&amp;gt; Left Slingshot hit?&lt;br /&gt;
		---&amp;gt; Yes&lt;br /&gt;
			---&amp;gt; Fire Left Slingshot Coil&lt;br /&gt;
			---&amp;gt; Increment score by Left Slingshot value&lt;br /&gt;
				&lt;br /&gt;
	---&amp;gt; Right Slingshot hit?&lt;br /&gt;
		---&amp;gt; Yes&lt;br /&gt;
			---&amp;gt; Fire Right Slingshot Coil&lt;br /&gt;
			---&amp;gt; Increment score by Reft Slingshot value&lt;br /&gt;
&lt;br /&gt;
	---&amp;gt; Left Outlane switch hit?&lt;br /&gt;
		---&amp;gt; Yes&lt;br /&gt;
			---&amp;gt; Light Left Outlane lamp&lt;br /&gt;
				---&amp;gt; Increment score by Left Outlane value&lt;br /&gt;
				---&amp;gt; All 4 lane lamps lit?&lt;br /&gt;
					---&amp;gt; Yes&lt;br /&gt;
						---&amp;gt; Increment score by 1000&lt;br /&gt;
						---&amp;gt; Clear all lane lamps&lt;br /&gt;
			---&amp;gt; Special when Lit lamp?&lt;br /&gt;
				---&amp;gt; Yes&lt;br /&gt;
					---&amp;gt; Increment credit count&lt;br /&gt;
					---&amp;gt; Play &amp;quot;Special&amp;quot; sound&lt;br /&gt;
&lt;br /&gt;
	---&amp;gt; Right Outlane switch hit?&lt;br /&gt;
		---&amp;gt; Yes&lt;br /&gt;
			---&amp;gt; Light Right Outlane lamp&lt;br /&gt;
			---&amp;gt; Increment score by Right Outlane value&lt;br /&gt;
			---&amp;gt; All 4 lane lamps lit?&lt;br /&gt;
				---&amp;gt; Yes&lt;br /&gt;
					---&amp;gt; Increment score by 1000&lt;br /&gt;
					---&amp;gt; Clear all lane lamps&lt;br /&gt;
			---&amp;gt; Special when Lit lamp?&lt;br /&gt;
				---&amp;gt; Yes&lt;br /&gt;
					---&amp;gt; Increment credit count&lt;br /&gt;
					---&amp;gt; Play &amp;quot;Special&amp;quot; sound&lt;br /&gt;
&lt;br /&gt;
	---&amp;gt; Left Inlane switch hit?&lt;br /&gt;
		---&amp;gt; Yes&lt;br /&gt;
			---&amp;gt; Light Left Inlane lamp&lt;br /&gt;
			---&amp;gt; Increment score by 10&lt;br /&gt;
			---&amp;gt; All 4 lane lamps lit?&lt;br /&gt;
				---&amp;gt; Yes&lt;br /&gt;
					---&amp;gt; Increment score by 1000&lt;br /&gt;
					---&amp;gt; Clear all lane lamps&lt;br /&gt;
&lt;br /&gt;
	---&amp;gt; Right Inlane switch hit?&lt;br /&gt;
		---&amp;gt; Yes&lt;br /&gt;
			---&amp;gt; Light Right Inlane lamp&lt;br /&gt;
			---&amp;gt; Increment score by 10&lt;br /&gt;
			---&amp;gt; All 4 lane lamps lit?&lt;br /&gt;
				---&amp;gt; Yes&lt;br /&gt;
					---&amp;gt; Increment score by 1000&lt;br /&gt;
					---&amp;gt; Clear all lane lamps&lt;br /&gt;
&lt;br /&gt;
	---&amp;gt; Pop Bumper hit?&lt;br /&gt;
		---&amp;gt; Yes&lt;br /&gt;
			---&amp;gt; Now - Pop Bumper hit time &amp;gt; 200ms&lt;br /&gt;
				---&amp;gt; Yes&lt;br /&gt;
					---&amp;gt; Trigger Pop Bumper Coil&lt;br /&gt;
					---&amp;gt; Save Pop Bumper hit time&lt;br /&gt;
					---&amp;gt; Increment score by 10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jwilson</name></author>
	</entry>
</feed>