-
Notifications
You must be signed in to change notification settings - Fork 22
/
DefaultSettings.txt
2074 lines (1924 loc) · 94 KB
/
DefaultSettings.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# PinballY configuration settings
#
# PinballY modifies this file each time it runs, so don't edit the file
# manually while the program is running. However, you can safely edit the
# file between sessions. The program will preserve comment lines (any line
# starting with "#", like this one) and preserves the overall order of the
# file's contents, so you can apply manual comments and formatting as
# desired to make the file more easily readable.
#
# Note: Variable names are case-sensitive! Upper/lower case must be matched
# exactly in variable names.
# time of last update by the program
UpdateTime = Sat 28 Apr 2018 11:51:48
# First run time. The system automatically sets this to the date and
# time when the program is first run on your machine. This is used as
# the install date for any games that are found already installed from
# your PinballX game database. This is in YYYYMMDDhhmmss format, in
# the GMT time zone (e.g., 20180725162715 for 2018-July-25 at 16:27:15
# GMT).
FirstRunTime =
# Log file features. PinballY writes certain information to a log file
# as it runs ("PinballY.log", in the PinballY install folder). This is
# a simple human-readable text file with information on certain events
# that occur as the program runs, with some internal details of the
# program's operation. The idea is to store away some additional
# information that would be too technical and unfriendly to report in
# the graphical UI, but that are occasionally useful for troubleshooting
# purposes. The main UI intentionally tries to hide a lot of technical
# detail for the sake of a friendly and game-like playing experience,
# but when something goes wrong, it's nice to have a more transparent
# view of the inner workings of the program.
#
# The program normally writes very little information to the log file,
# since we don't want to create additional work for the CPU and waste
# a bunch of disk space on pointless messages when things are working
# properly. The log file is really here for troubleshooting. So we
# provide a number of "feature flags" that let you enable particular
# types of log information:
#
# Log.MediaFiles - media file searching
#
# Log.MediaDrop - media file drag-and-drop installation
#
# Log.SystemSetup - player system setup and table file searches
#
# Log.MediaCapture - media capture
#
# Log.TableLaunch - table launch (running a game)
#
# Log.RealDMD - real DMD (dot matrix display) device operations
#
# Log.DOF - DOF (DirectOutput feedback device control) operations
#
# Log.Javascript - Javascript scripting
#
# Log.HighScoreRetrieval - high score retrieval via PinEMHi
#
# Log.WindowLayoutSetup - initial window layout setup
#
Log.MediaFiles = 0
Log.MediaDrop = 1
Log.SystemSetup = 0
Log.MediaCapture = 1
Log.TableLaunch = 0
Log.RealDMD = 1
Log.DOF = 1
Log.Javascript = 1
Log.HighScoreRetrieval = 1
Log.WindowLayoutSetup = 0
# Vertical Sync Lock. If this is enabled (1), the graphics rendering
# rate is throttled to the monitor's physical refresh rate. If disabled
# (0), the graphics are rendered as quickly as possible, so the limiting
# factor is basically the CPU speed. On machines with fast video cards,
# rendering "as quickly as possible" can use excessive system resources,
# so it can be better to throttle rendering to the actual refresh rate.
# You can display the current frames-per-second rendering rate in each
# window using the right-click context menu.
VSyncLock = 0
# Media folder path. This is the root of the our media folder tree, where
# we look for the various table media files (images, videos, sounds, etc).
# We use the same subfolder structure as HyperPin and PinballX, so you
# simply point this to your existing PinballX or HyperPin Media folder to
# use your existing files, if you installed one of those programs.
#
# If you enter a "relative" path here (that is, a path name that doesn't
# start with a drive letter, X:\...), the path is relative to your PinballY
# installation folder.
#
# If you enter an "absolute" path (starting with a driver letter, X:\...),
# that exact folder is used with no changes.
#
# If the path starts with "[PinballX]" (e.g., [PinballX]\Media), the folder
# is relative to the PinballX program install path. This will only work
# if PinballX is installed.
#
# If you leave this completely blank, the program will ask you to choose
# one of those options at startup.
#
MediaPath =
# Table database path. This is the root of the game list folder tree,
# where we look for the XML files listing games by system. PinballY can
# read the XML format used by PinballX and HyperPin, so if you previously
# used one of those, you can reuse your existing game lists simply by
# pointing this to the old folder path.
#
# If you enter a "relative" path here (that is, a path name that doesn't
# start with a drive letter, X:\...), the path is relative to your PinballY
# installation folder.
#
# If you enter an "absolute" path (starting with a driver letter, X:\...),
# that exact folder is used with no changes.
#
# If the path starts with "[PinballX]" (e.g., [PinballX]\Media), the folder
# is relative to the PinballX program install path. This will only work
# if PinballX is installed.
#
# If you leave this completely blank, the program will ask you to choose
# one of those options at startup.
#
TableDatabasePath =
# Sort the XML database files when saving changes. By default, PinballY
# preserves the original order of the XML files when saving changes. Set
# this option to 1 if you'd prefer to have the XML files sorted
# alphabetically by game title. (Note that the sorting will only occur
# when you make changes that require updating the XML files. This option
# by itself won't make PinballY update the files; you have to make some
# change to the metadata that forces PinballY to save updates to the XML
# files, such as changing the title of a game defined within the file.)
#
SortTableDatabases = 0
# Should PinballY automatically launch at system startup?
#
# "off" means that the program doesn't launch automatically. Use this
# setting if you want to run it manually from the Windows desktop each
# time you want to use it.
#
# "on" means that the program will launch automatically each time you
# log in to Windows. PinballY will arrange for this by updating the
# following registry key:
#
# HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run[PinballY]
#
# "admin" means that the program will launch automatically in Administrator
# mode each time you log in. This creates a Windows Task Scheduler entry
# for you named "PinballY Startup Task". The Task Scheduler entry is used
# instead of the registry key in this case because the registry key doesn't
# allow for Admin mode launches.
#
# IMPORTANT: Unlike most settings, this setting can't be updated by
# editing the Settings.txt file manually. You must use the Options dialog
# to update this setting, because the setting has to be
AutoLaunch = off
# Autolaunch delay time, in seconds. When launch at startup is enabled,
# the launch is delayed after you log on by this amount of time. This
# can be used to avoid conflicts with other programs that are also
# launched when you log on, by sequencing the program launches so that
# they don't all start at the same time. It's usually desirable to
# make sure that PinballY runs last when launching other programs, for
# a couple of reasons. One is that other programs can thrash the disk
# while loading, which can make video playback jumpy; making PinballY
# wait until other programs have finished loading can make the initial
# video playback smoother. Another is that the most recently launched
# program usually has control of keyboard focus, so if another program
# launches after PinballY, it can steal away the keyboard focus, which
# can prevent PinballY from responding to button presses. Delaying
# PinballY's startup until after other programs have finished loading
# can make sure that PinballY has the initial keyboard focus.
AutoLaunch.Delay = 0
# Should we force keyboard focus into the PinballY window at program
# startup? On some systems (particularly Windows 10), Windows doesn't
# give PinballY keyboard focus when launching it at system startup, so
# it won't accept keyboard input until you use the mouse to click in
# the window. We can try to work around that by simulating a mouse
# click in our window automatically. This option enables a simulated
# mouse click at the given delay after the program starts. The delay
# might be necessary to wait for other activity at system startup to
# settle down, since other programs that are starting up at the same
# time might try to "steal" focus away from us the same way we're
# trying to grab it here. The delay is given in seconds.
LaunchFocus.Enabled = 1
LaunchFocus.Delay = 5
# Should we wait for monitors to come online at startup? Most pin cabs
# have multiple monitors, and on many pin cabs, these are regular TVs rather
# than computer monitors. One of the little snags using TVs as monitors is
# that Windows can be slow to recognize them at system startup. In fact,
# this process can be so slow that Windows can finish booting and can start
# launching programs before all of the TVs have been recognized. This can
# cause screen layout problems for a program like PinballY that launches at
# startup, because it might not be possible to restore the saved window
# layout if some of the windows are located on screens that are still
# off-line.
#
# This option offers a way to work around that problem. This lets you
# tell PinballY that it should wait, when first starting up, until Windows
# has recognized all of your monitors. PinballY won't open any of its
# UI windows until the system reports that all of your monitors are
# on-line.
#
# This string should use this format:
#
# <N> monitors, <S> seconds
#
# <N> monitors tells the program that it should wait at startup until
# Windows has recognized at least that many monitors. Specify a maximum
# waiting time with <S> seconds.
#
# The program displays a little dialog box during the wait, with a Cancel
# button that lets you manually cancel the wait if desired. So you can
# set safely set a long wait time if necessary to accommodate monitors
# with unpredictable startup times, in that you can always cancel the
# wait if necessary.
#
WaitForMonitors = 1 monitor, 10 seconds
# Additional wait time after the monitors are online, in seconds.
# Some video cards have a quirk where they appear in Windows as soon
# as an attached TV is powered on, but then disappear again briefly
# while the physical connection (e.g., HDMI) is established. This
# added delay can be used in such cases, to ensure that PinballY
# doesn't try to open any windows during that connection interval.
WaitForMonitors.ExtraDelay = 0
# Force windows into the valid desktop area at startup? If this is
# true, PinballY will check the saved position for each window that's
# initially displayed to make sure that it's within the visible area
# of the desktop. Any window that's entirely off the screen will be
# repositioned so that it's within the visible area of the nearest
# monitor to the saved location.
#
# This is enabled by default to ensure that windows don't fall off
# the edge of the visible area after a change to the desktop layout.
# If you rearrange your desktop layout or change monitor resolutions
# between PinballY sessions, the saved positions from the last session
# might place some windows in parts of the screen that aren't visible
# in the new session. That can be confusing because it'll look like
# the window has disappeared, when it's actually there, just beyond
# the bounds of the visible desktop area.
#
# You might want to disable this option if you change your desktop
# layout dynamically for different applications using an external
# tool. In that case, it can appear to PinballY during program
# startup that the saved window positions are invalid, so if this
# option is enabled, PinballY can think it needs to reposition some
# of your windows into the apparently valid desktop area. Disabling
# this option tells PinballY to restore the old window positions
# unconditionally, preserving your old layout.
#
Startup.ForceWindowsIntoView = 1
# Method for restoring full-screen windows at program startup.
# When PinballY starts up, it restores window positions saved in the
# settings file. For windows that were set to full-screen mode, there
# are two ways to restore the saved position, which can be selected
# via this setting:
#
# "Nearest Monitor": this is the default. This means that PinballY
# saves the PRE-full-screen position of the window - that is, the
# position of the original window just before you switched it into
# full-screen mode. PinballY restores the full-screen window by
# first restoring that PRE-full-screen position, then finding the
# monitor that most completely contains the window (the "nearest"
# monitor), and expanding the window to fill that monitor.
#
# "Pixel Coordinates": In this mode, PinballY simply saves the pixel
# coordinates of the full-screen window itself, and restores those
# exact coordinates when the program starts. It doesn't try to fit
# the position to a monitor.
#
# The "Nearest Monitor" method is more flexible, because it
# automatically adapts to any changes you make to the resolution
# settings or layout of your monitors. When the program starts,
# PinballY looks at the CURRENT monitor layout, and finds a
# suitable monitor to use as the full-screen monitor. However,
# this might not be ideal for you if you routinely make TEMPORARY
# changes to your monitor setup, because it might move your windows
# around in the different resolution modes. One case in particular
# where this can happen is if you use remote desktop access software
# to log into your PC remotely, since remote access software tends
# to virtualize the monitor layout. If you have problems with
# saving and restoring the positions of full-screen windows, try
# the "Pixel Coordinates" method.
Startup.FullScreenRestoreMethod = Nearest Monitor
# Splash screen. If true (1), the program displays a "splash screen"
# briefly at program startup, showing the program name and version.
# Set to false (0) to disable this.
SplashScreen = 1
# Mouse hiding. PinballY hides the mouse pointer at program startup,
# and again whenever you press a command button. Normally, it does
# this using a standard Windows "hide the mouse" command. But for
# reasons not yet understood, this standard command doesn't work on
# some systems. So we offer this alternative for systems where the
# mouse refuses to be hidden: instead of hiding the pointer, we move
# it to a parking position at a corner of the screen where it won't
# be visible, or if that's not possible, where it at least won't be
# in the way. Set Mouse.HideByMoving to 1 if you want to enable this
# alternative way of hiding the mouse, and set Mouse.HideCoords to
# the screen coordinates in pixels where you want the mouse to be
# parked.
#
Mouse.HideByMoving = 0
Mouse.HideCoords = 1920,540
# DOF. PinballY can use DOF to activate effects on your pin cab
# feedback devices, such as firing the flipper solenoids when you
# press the flipper buttons and showing lighting effects when switching
# between games. The program detects and accesses DOF automatically,
# using DOF's registered COM objects, so there's nothing extra that
# you have to install or configure to make DOF work with PinballY.
#
# The specific DOF effects that PinballY triggers are controlled by
# the DOF config files. Most people set these up using the online
# DOF Config Tool, https://configtool.vpuniverse.com/. PinballY
# pretends to be yet another pinball game as far as DOF is concerned,
# so PinballY's effects can be customized just any table's effects
# can be customized. PinballY's pretend table name in the DOF
# config is "PinballY". If you're using the online DOF Config tool,
# you can find the PinballY settings by clicking the Table Configs
# tab in the top nav bar, then selecting "PinballY" from the Table
# Name drop list.
#
# PinballY's DOF events are "virtual" events, with names starting
# with $PBY. For a full list of these events, refer to the Help
# section on DOF Events.
#
# If you'd like to disable PinballY's DOF usage completely, set
# DOF.Enable to 0.
DOF.Enable = 1
# Real DMD setup. This is for real pinball-style Dot Matrix Display
# devices. (It's NOT for normal video monitors used to display simulated
# DMD images; it's only for physical DMD devices, such as the commercial
# PinDMD products or the DIY Pin2Dmd device.
#
# Set RealDMD as follows:
#
# RealDMD = Auto - searches for DmdDevice.dll in your VPinMAME folder,
# then in your PinballY program folder. If the DLL exists, PinballY
# will use the DMD device. If the DLL doesn't exist, no error is shown.
#
# RealDMD = On - same as above, but an error is shown if the DLL
# can't be found. Use this for troubleshooting if you think the DLL
# is installed but nothing is happening on the DMD device.
#
# RealDMD = Off - disables the real DMD, even if the DLL exists.
#
# If you haven't already done so, install Visual Pinball, and check that
# it works properly with your DMD device. PinballY will use your Visual
# Pinball installation to access the DLL that interfaces with the device,
# so no additional configuration should be required for PinballY.
#
# Special case only: If for some reason you DON'T plan to install Visual
# Pinball, but still want to use the DMD with PinballY, you can install
# the appropriate DmdDevice.dll for your device directly in the PinballY
# program folder. You should be able to get the right DLL from your
# device manufacturer or from the Visual Pinball distribution. If you
# get the DLL from the VP files, make sure you select the DLL version
# that matches your physical DMD device.
#
RealDMD = Off
# Real DMD mirroring modes. These are for cabinets where the user views
# the display via a mirror (e.g., "Pinball 2000" style cabinets). If a
# mirror is involved, it's necessary to flip the pixel layout either
# vertically or horizontally to compensate. You can control these via
# menu commands in the main window, so you can experiment with the
# settings interactively if you're not sure how to set these.
RealDMD.MirrorHorz = 0
RealDMD.MirrorVert = 0
# Real DMD grayscale gamma. This sets the gamma correction value used
# for playback of grayscale video. Adjust this if video playback looks
# too bright or dark on your real DMD display.
RealDMD.GrayscaleGamma = 2.8
# External program to run at startup. This is executed when PinballY first
# starts, before PinballY loads the game list or displays any UI windows.
# This uses the same command line syntax that you'd type at a CMD prompt
# or into the Windows system "Run" (Windows+R) dialog.
#
# To run a .CMD or .BAT script, use this syntax:
#
# CMD /c <script file name>
#
# With the exception of Windows system programs like CMD.EXE, you should
# always specify the full path to the program you want to launch. If the
# program name or its path contain spaces, you must enclose the name in
# double-quote marks:
#
# "c:\my path\my program"
#
RunAtStartup =
# External program to run at exit. This is executed just before PinballY
# terminates, after it closes all of its UI windows. This follows the same
# rules as RunAtStartup for specifying the command line.
RunAtExit =
# Popup info box settings. Whenever a game is selected in the "wheel",
# the program normally pops up a little box near the top of the playfield
# window showing basic information on the game. These settings control
# whether the box is shown at all, and if so, which items it displays.
#
# InfoBox.Show -> controls whehtehr or not the box is shown at all
# .Title -> include the game's title in the box
# .GameLogo -> use the game's logo graphics in place of the title, when available
# .Manufacturer -> show the manufacturer name
# .ManufacturerLogo -> use the manufaturer's logo graphics in place of the name, when available
# .System -> show the player system name (Visual Pinball, etc)
# .SystemLogo -> use logo graphics for the system when available
# .Year -> show the original release year of the real pinball machine
# .TableType -> show the table type (Solid State, etc)
# .TableTypeAbbr -> use the abbreviated table type (SS, EM, etc) instead of the full type name
# .Rating -> show the star rating
# .TableFile -> show the table file name (.vpt, .vpx, .fpt, etc)
#
InfoBox.Show = 1
InfoBox.Title = 1
InfoBox.GameLogo = 0
InfoBox.Manufacturer = 1
InfoBox.ManufacturerLogo = 1
InfoBox.Year = 1
InfoBox.System = 1
InfoBox.SystemLogo = 1
InfoBox.TableType = 0
InfoBox.TableTypeAbbr = 0
InfoBox.Rating = 1
InfoBox.TableFile = 0
# Playfield background layout. By default, the playfield background
# image/video is shown at its original aspect ratio. Set this to 1
# to stretch the video to fill the entire window, even if that distorts
# the aspect ratio.
Playfield.Stretch = 0
# Where should instruction card pop-up images be displayed? Enter
# Playfield, Topper, or Backglass to select the desired display window.
# (If the window you designate here isn't visible when you ask to
# display an instruction card, the card will be shown in the playfield
# window instead.)
#
# Note that this only controls the pop-up images that appear when you
# use the "Instructions" command. You can also have a whole dedicated
# window where the instruction card for the current game is always
# shown without having to select a menu command at all. If that
# window isn't already displayed, right-click on the main window and
# select "Show Instruction Card" from the menu.
#
InstructionCardLocation = Backglass
# Are Shockwave Flash (.swf) files allowed for instruction cards? If
# this is enabled, the system will look for .swf files in addition to
# the usual complement of image types (.png, .jpg, .jpeg) when searching
# for instruction card images. If this is disabled, .swf files will be
# ignored.
#
# In order to use .swf files, the Adobe Shockwave Flash Player ActiveX
# control must be installed on your system. (Note that Flash Player
# has separate plug-ins for IE and for other browsers. PinballY can
# only use the ActiveX IE plug-in, so you might have to install that
# separately even if you already have another Flash plug-in for a
# different browser.) If for some reason you don't want to install
# the Flash ActiveX on your system, you can disable this option to
# make PinballY ignore SWF files, to avoid any error messages from
# attempts to load them.
#
# Why is this even an issue, you might ask, when SWF is an obsolete
# format? Even Adobe, its creator, says it's obsolete. The reason
# is purely historical. HyperPin, the first front end for pin cabs,
# used SWF for instruction cards. That led to a large number of
# downloadable Media Packs for HyperPin including instruction cards
# in SWF format. Those old Media Packs are still around and they're
# still the most convenient way to get all of the media "extras" for
# your games. PinballY therefore supports SWF so that you can use
# the many existing Media Packs without having to go through any
# tedious format conversions every time you download one.
#
InstructionCards.EnableFlash = 1
# Should we use the internal SWF (Flash) renderer? If this is set
# to 1 (for "true"), PinballY uses its own internal reader and
# renderer for SWF files. If not, we use the Flash Player DirectX
# control (also known as the Flash plug-in for Internet Explorer).
# This is true by default starting with 1.1 Beta 5, since Adobe
# officially declared Flash Player as obsolete, and pushed out an
# update in January 2021 to disable all existing installations.
#
# PinballY's built-in SWF renderer provides limited support for
# SWF display without the need for any external plug-ins. It only
# supports a very limited subset of Flash Player's capabilities,
# but it's designed to handle the limited needs of the one special
# use case for SWF in PinballY: HyperPin Media Pack instruction
# cards. The instruction cards found in nearly all HyperPin media
# packs are in SWF format because of SWF's vector graphics
# capabilities. At the time most of these files were created,
# there weren't any other vector formats in common use.
#
# If you set this to 0, PinballY will continue to use Adobe Flash
# Player, but it's up to you to keep that working despite Adobe's
# best attempts to disable it by remote control. And of course
# you'll be exposing your system to greater security risks; Flash
# Player has always been a bit of a security nightmare, and it's
# now entirely unsupported.
#
UseInternalSWFRenderer = 1
# Timing for game selection updates in the different windows. This
# controls how new images and videos are loaded into the windows when
# you select a new game in the wheel UI.
#
# By default, PinballY loads new media into one window at a time.
# It updates the playfield window immediately, and then after a
# slight pause updates the backglass window, then the DMD window,
# and so on. The one-at-a-time loading is designed to make the video
# loading process smoother, by only asking the video player system to
# open one file at a time.
#
# Alternatively, you can set this to "simultaneous" mode, which tells
# PinballY to load all of the new images and videos into all of the
# windows at the same time, without any delay between them. You
# might prefer this if your system is fast enough to load and start
# several videos at the same time without any hiccups.
#
# Set this variable to 0 for the default one-at-a-time video loading.
# Set it to 1 for simultaneous loading in all windows.
#
SimultaneousWindowUpdate = 0
# Media crossfade time, in milliseconds. This is the length of the
# crossfade effect in the various windows when switching to a new
# game in the wheel UI.
CrossfadeTime = 120
# Default font family for most UI elements.
DefaultFontFamily = Tahoma
# Fonts for UI elements. Specify as <point size> <weight/style> <family>.
#
# <point size> is a number, with optional "pt" suffix.
#
# <weight/style> can be a standard font weight value from 100 to 900,
# (400 is normal weight in most fonts, 700 is bold), or one of the
# standard weight names: "thin" (100), "extralight" (200), "light"
# (300), "normal" (400), "medium" (500), "semibold" (600), "bold"
# (700), "ultrabold" (800), "black" (900).
#
# You can also add a style to the <weight/style> setting, by adding
# a "/" and the style name, which can be "regular" or "italic".
# For example, "400/italic" or "normal/italic" would select the
# italic style for the font in normal weight.
#
# <family> is a font family name (e.g., Tahoma or Comic Sans MS).
# Specify the full name as it appears in the Windows Fonts control
# panel.
#
# Any of <point size>, <weight>, and <family> can be entered as *
# (an asterisk) to use the system default value for that item.
# The system default for <point size> varies for each item; the
# default for <weight> is always "normal", and the default for
# <family> is always the value of DefaultFontFamily above.
#
# The default entries below use all default values. For your
# reference, the normal system point sizes are listed in the
# comments below.
#
# MenuHeaderFont = menu headers (36pt)
# MenuFont = menu items (42pt)
# PopupFont = base font for popup dialogs and messages (24pt)
# PopupTitleFont = large font for title text in popups (48pt)
# PopupSmallerFont = smaller text font in popups (20pt)
# PopupDetailFont = even smaller detail text font in popups (18pt)
# MediaDetailFont = small font for line items in media file listings (12pt)
# WheelFont = game titles in the wheel when logos aren't available (80pt)
# HighScoreFont = font for the high score list in the info box (24pt)
# InfoBoxTitleFont = large font for title text in info box displays (38pt)
# InfoBoxFont = font for main text in info box displays (28pt)
# InfoBoxDetailFont = small font for fine print in info box displays (16pt)
# StatusFont = status line font (36pt)
# CreditsFont = credits message font (42pt)
# LaunchStatusFont = launch status messages (48pt)
# TTHighScoreFont = font for typewriter-style high scores in DMD window (Courier New, auto sized to fit)
#
MenuFont = * * *
MenuHeaderFont = * * *
PopupFont = * * *
PopupTitleFont = * * *
PopupSmallerFont = * * *
PopupDetailFont = * * *
MediaDetailFont = * * *
WheelFont = * * *
HighScoreFont = * * *
InfoBoxTitleFont = * * *
InfoBoxFont = * * *
InfoBoxDetailFont = * * *
StatusFont = * * *
CreditsFont = * * *
LaunchStatusFont = * * *
TTHighScoreFont = * * *
# Text message colors.
#
# MenuHeaderColor - menu header (explanatory message at the top of a menu)
# MenuTextColor - regular menu items
# MenuBackgroundColor - menu background
# MenuGroupTextColor - menu group section titles
# PopupTextColor - popup message box main text
# PopupBackgroundColor - popup message background
# PopupTitleColor - popup message box titles
# PopupSmallTextColor - popup message box small text
# PopupDetailTextColor - popup message box detail (extra-small) text
# MediaDetailTextColor - media detail text
# WheelTitleColor - game title shown in the wheel when there's no icon
# WheelTitleShadowColor - drop shadow for game titles
# HiScoreTextColor - high score text
# InfoBoxTextColor - game info box main text
# InfoBoxBackgoundColor - game info box background
# InfoBoxTitleColor - game info box titles
# InfoBoxDetailTextColor - game info box small detail text
# StatusLineTextColor - status line text
# StatusLineShadowColor - status line text drop shadow
# CreditsTextColor - coin/credit message text
# LaunchStatusTextColor - launch status message text
# LaunchStatusBackgroundColor - background fill color during launch
# TTHighScoreTextColor - text color for typewriter-style high scores in DMD window
#
MenuHeaderColor = #FFFFFF
MenuTextColor = #FFFFFF
MenuBackgroundColor = #000000
MenuGroupTextColor = #00FFFF
PopupTextColor = #FFFFFF
PopupBackgroundColor = #000000
PopupTitleColor = #FFFFFF
PopupSmallTextColor = #FFFFFF
PopupDetailTextColor = #A0A0A0
MediaDetailTextColor = #FFFFFF
WheelTitleColor = #FFFFFF
WheelTitleShadowColor = #000000
HiScoreTextColor = #FFFFFF
InfoBoxTextColor = #FFFFFF
InfoBoxBackgroundColor = #000000
InfoBoxTitleColor = #FFFFFF
InfoBoxDetailTextColor = #C0C0C0
StatusLineTextColor = #FFFFFF
StatusLineShadowColor = #000000
CreditsTextColor = #FFFFFF
LaunchStatusTextColor = #FFFFFF
LaunchStatusBackgroundColor = #1E1E1E
TTHighScoreTextColor = #000000
# Mute videos. Turns off sound playback on all videos (playfield,
# backglass, DMD). You can change this while the program is running,
# using the "Exit" menu. Note: this doesn't affect Table Audio
# tracks - use TableAudio.Mute to mute those.
Video.Mute = 0
# Mute Table Audio tracks. Turns off sound playback of Table
# Audio tracks.
TableAudio.Mute = 0
# Master volume control for videos. This sets the volume level
# for all video playback, relative to the Windows system volume.
# This is a percentage of the system volume, 0 to 100.
#
# You can also control the volume level for each game's videos
# separately, via Operator Menu > Adjust Audio Volume. The volume
# level for each game is combined with the master volume, so a
# change to the master volume will still affect all games, even
# games with individual level settings.
Video.MasterVolume = 100
# Enable videos. This allows using video media for the playfield,
# backglass, etc when available. If this is set to 0, still images
# will be used instead. You can change this within the program
# using the "Setup" menu.
Video.Enable = 1
# Mute sounds when in attract mode. Turns off sound playback for
# all videos when attract mode is active. You can also change this
# from the "Exit" menu.
AttractMode.Mute = 1
# Mute the sound effects for all button presses. You can also change
# this from the "Exit" menu.
Buttons.Mute = 0
# Mute the sound effects for auto-repeat button presses. This
# prevents the button sound effects from playing repeatedly when
# you're holding down a button.
Buttons.MuteAutoRepeat = 0
# Audio volume level for the button sound effects, relative to the
# Windows system volume setting. This is a percentage value, from
# 0 to 100.
# Buttons.Volume = 100
# Is the Exit menu enabled? If this is true (1), pressing the Exit
# button when no menus or popups are shown brings up the Exit menu,
# which offers commands for exiting PinballY (returning to the Windows
# desktop) and a few other miscellaneous system options. Set this to
# 0 to prevent the Exit menu from being displayed.
#
# Disabling the exit menu is useful if your pin cab is in a public
# setting, since it prevents users from accidentally (or on purpose)
# quitting out of PinballY and accessing the Windows desktop, shutting
# down the system, etc.
ExitMenu.Enabled = 1
# How should the Exit button act in the Exit menu? "Select" means that
# the Exit button can be used to select items in the menu, just like the
# Start button. "Cancel" means that it simply cancels out of the menu,
# the same way it does in other menus. I find it more natural for the
# Exit button to select items in the Exit menu, because you had to press
# the Exit button to bring up this menu in the first place, so that's
# where your finger is poised while operating the menu. As a result, I
# always found PinballX's treatment of it as the Cancel button, even in
# this context, to be irritating and wrong. Granted, it's more
# consistent overall to treat it as the Cancel button, since that's
# how it acts everywhere else, but in my opinion this is one of those
# "foolish consistencies" that makes things worse rather than better.
# And even in terms of consistency, it's arguably more consistent in
# the local context of the Exit menu to treat it as "select". But if
# you disagree and you prefer the old PinballX handling, just change
# this setting to Cancel.
#
# Select -> treat the Exit key as a select button in an Exit menu
# [this is the default]
#
# Cancel -> Exit key simply cancels out of an Exit menu
#
ExitMenu.ExitKeyMode = Select
# Should the Exit menu include an "Operator Menu" command? If this
# is true (1), the Exit menu will include a command that lets you
# access the Operator menu, which provides commands for game setup
# and various PinballY option settings.
#
# If you have a coin door with service buttons, you might want to
# disable this, so that the Operator Menu is only accessible via the
# service buttons. That will prevent guests from accidentally
# accessing the setup options.
ExitMenu.ShowOperatorMenu = 1
#
# Button assignments. Each button assignment uses syntax like
# this:
#
# Button.<Name> = ...
#
# The button names and their meanings are listed below. On the
# right side of the "=", you can assign one or more keyboard keys
# and/or joystick buttons to each function. To map a keyboard
# key, use this syntax:
#
# Button.<Name> = keyboard A
#
# Each key has a name; the alphabetic and number keys simply use
# their normal keyboard symbols, and most of the special function
# keys use the names printed on the key: Escape, Tab, Enter, etc.
# All of the "modified" keys (Shift, Control, Alt, Windows) come
# in left and right versions: LShift, RShift, LControl, etc.
#
# To map a joystick button, use this syntax:
#
# Button.<name> = joystick * 7
#
# That maps button 7 on any joystick. If you have multiple
# joysticks, and you want to tie a button to a particular joystick,
# that gets a bit tricker. Change the * to a "logical joystick"
# unit number, then add a separate entry to the config like this:
#
# JoystickDevice[N] = VID:PID:Product Name
#
# Where N is the logical joystick number you used above (you
# should number these consecutively from 0), VID and PID are the
# USB Vendor ID and Product ID for your joystick, and Product Name
# is the product name string for your joystick. I'd recommend
# just using the * notation and ignoring all of this!
#
# Select = show menu/select current menu item. This is normally
# mapped to the Start button in a cab (usually the "1" key).
Buttons.Select = keyboard 1
# Launch = start current game (bypasses the menu). This is normally
# mapped to the Launch Ball button in a cab ("Return" key).
Buttons.Launch = keyboard Return
# Exit = exit menu, or show Exit menu. This is normally mapped to
# the Exit button in a cab ("Escape" key).
Buttons.Exit = keyboard Escape
# Exit Game = terminate the currently playing game. This is normally
# mapped to the same button as Buttons.Exit, since you usually want
# to use the same physical button for both purposes. You can map this
# to a different key if you prefer, though.
Buttons.ExitGame = keyboard Escape
# Pause Game = pause the current game. This brings the PinballY
# window to the foreground, which has the effect in Visual Pinball
# (and hopefully other systems) of freezing the game. PinballY
# presents a menu with options to resume or terminate the game.
Buttons.PauseGame =
# Next/Previous = game/menu navigation. These are normally mapped to
# the flipper buttons in a cab (Right/Left Shift keys).
Buttons.Next = keyboard RShift
Buttons.Prev = keyboard LShift
# Next Page/Previous Page = next alphabetical letter group in game list.
# These are normally mapped to the MagnaSave buttons in a cab (Right/
# Left Control keys).
Buttons.NextPage = keyboard RControl
Buttons.PrevPage = keyboard LControl
# Service menu buttons. These are used to call up the internal
# setup menu within PinballY, in analogy to the operator menus in
# a modern pinball machine. I recommend using the normal VPinMAME
# mappings for these:
#
# Service1 = Exit/Escape = 7
# Service2 = -/Down = 8
# Service3 = +/Up = 9
# Service4 = Enter/Select = 0
#
# The Service4 "Enter" button brings up the Setup menu, which lets
# you set global program options and set up tables. This menus is
# only accessible from the service buttons for the same reason that
# the operator menus on a real pinball are only accessible from the
# service buttons, namely that it prevents guests from messing
# around with your configuration while still providing easy access
# to the owner, the difference being that the owner has the key to
# the coin door! Once you're in the Setup menu, you can navigate
# it with the flipper buttons just like the other menus, or you can
# continue using the service buttons if you prefer.
#
# The Service1 "Exit" button cancels the current menu, if one is
# open, but it has a special extra function outside of menus: it
# adds a "service credit", meaning that it adds one credit to the
# credit balance. This feature is for the sake of simulation, as
# the real 1990s machines have this same feature.
#
Buttons.Service1 = keyboard 7
Buttons.Service2 = keyboard 8
Buttons.Service3 = keyboard 9
Buttons.Service4 = keyboard 0
# Show the frame counter. There's no typical cab mapping for this;
# the default is F10. You can also access this via the right-click
# menu in the window where you want to show the counter.
Buttons.FrameCounter = keyboard F10
# Toggle full-screen mode. There's no typical cab mapping for this;
# the default is F11. You can also access this via the right-click
# menu in the window that you want to resize (each window can be
# individually set to full screen or windowed mode).
Buttons.FullScreen = keyboard F11
# Rotate the display 90 degrees. There's no typical cab mapping for
# this; the default is the keypad "*" key ("Multiply"). You can also
# access this via the right-click menu in the window you want to
# rotate (each window can be individually rotated).
Buttons.RotateMonitor = keyboard Multiply
# Show game information. This pops up a box with information on the
# game, including historical information and statistics on usage on
# your cab. Some cab builders include dedicated buttons for extra
# "front end" functions like this, but you can also access this
# feature from the main menu, so a dedicated button is optional.
# If you have any otherwise unused buttons (such as an "Extra Ball"
# or "Fire" button), you can map that to this function if you wish.
# The default is the "2" key, which is normally used for the Extra
# Ball button.
Buttons.Information = keyboard 2
# Show the instruction card for the current game. This displays
# an image of the original instruction card from the game's apron.
# Some cab builders include dedicated buttons for extra "front end"
# functions like this, but you can also access this feature from
# the main menu, so a dedicated button is optional. You can map
# any otherwise unused button here if you wish (e.g., an "Extra
# Ball" or "Fire" button).
Buttons.Instructions = keyboard I
# Options settings button. This button brings up the Options
# dialog. There's no standard pin cab button for this command;
# you can assign it to any otherwise unused button if you have
# extra buttons on your cab for miscellaneous special functions.
Buttons.Settings = keyboard O
# Coin door button. Some pin cab builders include a switch that
# senses the position of the coin door like on a real machine, since
# that information is useful to VPinMAME and other simulators.
# PinballY doesn't current use this button for anything, but if you
# do have a coin door switch in your cab, you can provide the key
# mapping here in case it becomes useful in PinballY in the future.
# For VPinMAME compatibility, this is normally assigned to the END
# key.
Buttons.CoinDoor = keyboard END
# Should new joystick button assignments be tied to individual
# devices (1) or assigned generically (0)? "Generic" means that
# joystick button assignments aren't tied to specific devices,
# so pressing the same button on any joystick will trigger the
# command. This doesn't affect any existing key assignments; it
# only determines how new button assignments are handled in the
# Options dialog.
RememberJSButtonSource = 0
# Status line messages. These messages are displayed in continuous
# rotation in the status area at the bottom of the screen. Use "|"
# to separate messages. Use "||" to insert a "|" into a message.
# If you want a blank message, use a single space character as the
# message text for that slot. For example, "first| |last" will show
# "first", then a blank message, then "last", then repeat.
#
# The following substitution variables can be used within a message
# insert special text:
#
# [Game.Title] - title of currently selected game
# [Game.Manuf] - manufacturer of current game
# [Game.Year] - release year of current game
# [Game.System] - system of current game (Visual Pinball, etc)
# [Filter.Title] - current filter name ("All Tables", "70s Tables")
# [Filter.Count] - number of games in the current filter set
# [Credits] - number of "credits" from inserted coins
# [lb] - literal left square bracket ("[")
# [rb] - literal right square bracket ("]")
#
# There's a special form for grammatical agreement in number for
# the Filter.Count and Credits fields. You can create a variable
# singular/plural form like this: {Filter.Count:Table:Tables:Tablez}.
# The word after the first colon is used as the expansion if the
# count is 1, so this gives you the singular form. The word after
# the second colon is selected if the count is greater than one.
# The word after the third colon is used if the count is zero.
# The third "zero" variation is optional; the plural form is used
# if it's not specified. So {Filter.Count:Table:Tables:Tablez}
# expands to "Table" if the filter count is 1, "Tables" if it's
# greater than 1, or "Tablez" if it's 0. In English, you only
# need the first two for grammatical agreement, since zero is
# grammatically plural in English ("0 things").
#
UpperStatus.Messages = Welcome to PinballY!|[Filter.Title] ([Filter.Count] [Filter.Count:Match:Matches])
LowerStatus.Messages = Free Play|Press Start|[Game.Title] ([Game.Manuf], [Game.Year])
# Status line enable/disable. Setting this to 0 disables the
# status line display entirely.
StatusLine.Enable = 1
# Status line update times, in millseconds. These set the time
# intervals for rotating messages in the status lines. Using
# slightly different intervals will make the two messages switch
# out of sync with each other, at apparently random different
# times, which creates a more pleasing effect than having them
# always update together.
UpperStatus.UpdateTime = 2513
LowerStatus.UpdateTime = 2233
# Game Wheel auto-repeat rate. When you press and hold one of
# the wheel navigation buttons (Next, Previous, Next Page,
# Previous Page), the button auto-repeats as long as you hold
# it down, so that you can rapidly step through games on the
# wheel. This controls the rate of the repeats.
#
# By default, if you leave this empty, the wheel button repeat
# rate is simply the same as the Windows keyboard repeat rate.
# You can change this to a different rate here. You can also
# use this to set up a custom speed "ramp" that gradually
# increases or decreases the speed the longer you hold down
# the button.
#