- Joined
- May 3, 2016
- Messages
- 2,918
- Solutions
- 7
- Reaction score
- 2,332
- Points
- 145
- Favorite Pinball Machine
- Attack From Mars
In my FP installation guide, I identify that any FP script that uses "evaluate" and "eval" coding can cause a low frame rate or stuttering. The reason is that the real-time protection on Microsoft Defender Antivirus considers both "evaluate" and "eval" coding to be a potential security threat (which it would be if you weren't using a trusted source). So, whenever Defender sees either code run, the real-time protection performs a scan that requires huge resources and can cause stuttering when the ball is in play during a game even on a high-end PC. The standard user interface for Defender does not have a way to remove anything from scans for real-time protection. The only option that is there is to remove items from the periodic scans that you perform on your hard drive which doesn't help. I recall that TerryRed has said in the past that he does not have an antivirus on his pinball cabinet PC. That works if your PC is not connected to the internet. It doesn't work for me because I only have one desktop PC that is connected to the internet and so I need an antivirus. Long story short, I have found a way to exclude Future Pinball from real-time protection.
This is an example of what I am talking about from the table "Ace High":
Execute "PinMechSound_Roll" &Where &"_Hit"
ScoreAdd 1, 100000: If Eval("LOL" &CStr(Lane)).State = BulbOff Then Exit Sub
Eval("LOL" &CStr(Lane)).State = BulbOff: Eval("Bumper" &CStr(Lane)).State = BulbOn
Whenever Defender sees one of those commands run, it uses all resources to scan it. Obviously, it will not find a virus but it uses a lot of resources to scan it and can cause stuttering and possibly even a crash. If you follow my guide, you won't have any problem playing this and other tables that use these commands.
Be aware, you may not have any problem at all with some tables that use a few of these commands. It depends on how many resources you have available and whether the commands are used when a ball is in play. I do recall that everyone used to complain about the "Jurassic Park" table that I discussed in my second post on this thread (see below). It didn't make any difference how good a PC you had; everyone had the problem. It is why I changed the code to remove "execute" and "eval" commands in the version of "Jurassic Park" that I published.
Windows 10 and probably 11 (not sure about other versions) have something called "Group Policy Edit". It looks a little bit like the registry editor but the user interface is much more user-friendly. To exclude Future Pinball from real-time protection scans, perform the following:
1) Enter the following on the search tool on Windows Search (the magnifying glass option on your tool bar):
gpedit
2) On the right pane, you will see an option called "Edit Group Policy". Click on it. You will see the "Local Group Policy Editor" window open.
3) Double-click on "Computer Configuration" in the right pane.
4) Double-click on "Administrative Templates" in the right pane.
5) Double-click on "Windows Components" in the right pane.
6) Double-click on "Microsoft Defender Antivirus" in the right pane.
7) Double-click on "Exclusions" in the right pane.
8) Double-click on "Process Exclusions" in the right pane. You will have a window open named "Process Exclusions".
9) Set the option on the "Process Exclusions" window to "Enabled".
10) Under the "Options" section, click on the button "Show....". A window will open called "Show Contents".
11) Enter the path for Future Pinball on its own line under the "Value name" column as shown above. Enter zero (0) in the "Value" column as shown.
12) Click on "OK" on the "Show Contents" window.
13) Click on "OK" on the "Process Exclusions" window.
14) Close the "Local Group Policy Editor" window.
15) You may need to reboot your PC for the changes to take effect.
If you want to remove the exclusion you just entered, you can't delete it on the "Show Contents" window. You have to go back to the "Process Exclusions" window (screenshot above) and set the option to "Not Configured". Then click on OK to delete the exclusion you entered.
I made some screenshots of Steve Paradis's "AstroHits" table that has many occurrences of "evaluate" and "eval" coding in the script. The screenshots were made when the "Display Fame Rate and Statistics (F9)" option was open. Before I changed the coding on the table "Jurassic Park", the earthquake sequence had so much stuttering that the game was unplayable.
The screenshot below was made when this procedure had not been performed. Note that there are several large peaks with numerous smaller ones.
This screenshot was made after this procedure was performed. Note that that there are no peaks. There is a large peak when you start the game but that is normal.
This tutorial was developed from the article "Configure exclusions for files opened by processes" on Microsoft's website.
This is an example of what I am talking about from the table "Ace High":
Execute "PinMechSound_Roll" &Where &"_Hit"
ScoreAdd 1, 100000: If Eval("LOL" &CStr(Lane)).State = BulbOff Then Exit Sub
Eval("LOL" &CStr(Lane)).State = BulbOff: Eval("Bumper" &CStr(Lane)).State = BulbOn
Whenever Defender sees one of those commands run, it uses all resources to scan it. Obviously, it will not find a virus but it uses a lot of resources to scan it and can cause stuttering and possibly even a crash. If you follow my guide, you won't have any problem playing this and other tables that use these commands.
Be aware, you may not have any problem at all with some tables that use a few of these commands. It depends on how many resources you have available and whether the commands are used when a ball is in play. I do recall that everyone used to complain about the "Jurassic Park" table that I discussed in my second post on this thread (see below). It didn't make any difference how good a PC you had; everyone had the problem. It is why I changed the code to remove "execute" and "eval" commands in the version of "Jurassic Park" that I published.
Windows 10 and probably 11 (not sure about other versions) have something called "Group Policy Edit". It looks a little bit like the registry editor but the user interface is much more user-friendly. To exclude Future Pinball from real-time protection scans, perform the following:
1) Enter the following on the search tool on Windows Search (the magnifying glass option on your tool bar):
gpedit
2) On the right pane, you will see an option called "Edit Group Policy". Click on it. You will see the "Local Group Policy Editor" window open.
3) Double-click on "Computer Configuration" in the right pane.
4) Double-click on "Administrative Templates" in the right pane.
5) Double-click on "Windows Components" in the right pane.
6) Double-click on "Microsoft Defender Antivirus" in the right pane.
7) Double-click on "Exclusions" in the right pane.
8) Double-click on "Process Exclusions" in the right pane. You will have a window open named "Process Exclusions".
9) Set the option on the "Process Exclusions" window to "Enabled".
10) Under the "Options" section, click on the button "Show....". A window will open called "Show Contents".
11) Enter the path for Future Pinball on its own line under the "Value name" column as shown above. Enter zero (0) in the "Value" column as shown.
12) Click on "OK" on the "Show Contents" window.
13) Click on "OK" on the "Process Exclusions" window.
14) Close the "Local Group Policy Editor" window.
15) You may need to reboot your PC for the changes to take effect.
If you want to remove the exclusion you just entered, you can't delete it on the "Show Contents" window. You have to go back to the "Process Exclusions" window (screenshot above) and set the option to "Not Configured". Then click on OK to delete the exclusion you entered.
I made some screenshots of Steve Paradis's "AstroHits" table that has many occurrences of "evaluate" and "eval" coding in the script. The screenshots were made when the "Display Fame Rate and Statistics (F9)" option was open. Before I changed the coding on the table "Jurassic Park", the earthquake sequence had so much stuttering that the game was unplayable.
The screenshot below was made when this procedure had not been performed. Note that there are several large peaks with numerous smaller ones.
This screenshot was made after this procedure was performed. Note that that there are no peaks. There is a large peak when you start the game but that is normal.
This tutorial was developed from the article "Configure exclusions for files opened by processes" on Microsoft's website.
Last edited: