2.0.3

- B2SBackglassServerEXE For activated background pictures, it is possible to enter a path with placeholders for "keys" in the table name.
  The keys are extracted using regular expressions e.g. From a table name "Blood Machines (VPW 2022) V1.21" it extracts as "{name} ({manufactor} {year}) {extra}" to {name}="Blood Machines" {manufactor}="VPW" {year}="2022" {extra}="V1.21". Additionally two hardcoded placeholders are used: {tablename}="Blood Machines (VPW 2022) V1.21" and {gamename}="the rom name"
  So if the background picture path is entered like "c:\vPinball\B2SServer\backgrounds\Grill{manufactor}.png" in the res file, it will be replaced with "c:\vPinball\B2SServer\backgrounds\GrillVPW.png"
  If no keys can be extracted from the table name, all combinations {name}, {year}... are replaced with an empty string and would become "c:\vPinball\B2SServer\backgrounds\Grill.png" in the example.
- Bugfix: right click creation of res files didn't support names with "&" in the name

2.0.2

- When the B2SBackglassServerEXE is started from explorer by doubleclicking a directb2s file, the save settings button is deactivated.

2.0.1

- The B2SWindowPunch feature can be controlled through a registry setting "Software\B2S\B2SWindowPunchActive" = "1"/"0"
- All registry settings are available under Settings->More...
- B2SBackglassServerRegisterApp can be run from CMD and have a parameter /Silent added, to hide ALL window prompts.
- The "BackglassMonitorType" can be controlled through b2s_screenresidentifier. (##, =## or @##)
- "Empty" Plugins folders added to the distribution zip

2.0.0

- Added full wiki documentation to the new version.
- B2SBackglassServer will try to find B2STableSettings.xml in current directory and then installation directory. (= if different from tables directory)
  This extended search is activated in the registry using HKEY_CURRENT_USER\Software\B2S\B2STableSettingsExtendedPath set to String "1"
- B2SBackglassServer: Show table name and cGameName, version and x64 or x86 bitness in settings window.
- B2SBackglassServerRegisterApp: Add file associations to res, directb2s files and file->New to start the B2S_ScreenResIdentifier.
- B2S_ScreenResIdentifier can be started from the B2S settings window, and the the settings window is hidden while editing the ScreenRes file.
- The B2S_ScreenResIdentifier can now save the filename it received when starting, or save the global name. (If started with a tablename.res file)
- The default for "Exact .directb2s match only" is now set to true, if not already set.
- B2SBackglassServer.dll: Add support for B2SInit.cmd to be called after Backglass is started.  It always receives the table name + rom name as 2 parameters.
   The included B2SInit.cmd calls B2SWindowPunch below.
- When running on 64 bit, Plugins64 will be used as plugins folder.
- Add B2SWindowPunch: General window punch routine to cut holes into B2S Backglass Form and make DMD and PuP Windows shine through. Thanks NailBuster!

1.4.1

- B2SBackglassServerEXE.exe can now be started from command line and in explorer to "debug" directb2s files.
- Add installation folder to the search path of ScreenRes.txt file. Current search "path":
1. tablename.res
2. Screenres.txt ( or whatever you set in the registry) in the table folder
3. tablename\Screenres.txt ( or whatever you set in the registry)
4. Screenres.txt ( or whatever you set in the registry) in the B2SServer folder.
- Add additional setting FormNoFocus complementing FormToFront. When set also FormToFront will stay in front and will ignore mouse key presses.
- B2SBackglassServerRegisterApp: Added registration of a .vpx file context menu copying template res files next to the table. Incl. small cmd to copy the file.
- B2S_ScreenResIdentifier: Better automated setup proposals
- Sort screens left to right for screen assignment

1.4.0

- Add additional setting FormToBack complementing FormToFront. Now three states available:
   1. "Standard" setting (both FormToBack and FormToFront turned off) is now as it was in 1.3.0.6. -> formDMD isn't controlled by the FormToFront/Back setting
   2. FormToFront sets the flag Form.TopMost = True -> cannot get any other window on top
   3. FormToBack, forces the forms to the back and ignores any try to get them come forward -> Windows stay in back. The B2S Server is not available in the taskbar anymore.
- Merge some more settings from the dll version.
- Make sure LED "D" (Digit) updates from VPinMame is forwarded to all plugins. thanks to rdowens11vx!
- Make the B2SBackglassServerEXE Large Address Aware by changing the build flags for x86 builds (x86 to AnyCPU). No need to patch 4GB anymore!
- B2S_ScreenResIdentifier: turn on/off saving of comment lines in the ScreenRes files. Any manual entered comments will still be overwritten!
- B2S_ScreenResIdentifier: Correctly extract resolution of 4K Screens.
- Updates of the documentation on the Github page

1.3.1.1

- Its now possible to use a different filename than ScreenRes.txt via the registry-key "Software\B2S\B2SScreenResFileNameOverride"
- Also skip lines starting with "#" when reading the ScreenRes.txt or TableName.res files in the dll version
- The DMD form has to be in front of the grill when it is a part of the Backglass, for mixed 2 and 3 screen backglasses
- The same changes from above in the two Servers are now amended to B2S_Screenresidentifier as well
- B2S_Screenresidentifier can be started with the ScreenRes file filename as first command line parameter, this can also be used in Windows by "throwing"/dragNdropping a ScreenRes file on the B2S_Screenresidentifier.exe in the Explorer
- The B2S Server uses the Backglass Screen value on the fifth line from top (excluding comments). There are 3 different ways possible to describe which screen the backglass sits on:
   1. "2" means the screen with the device name = \\.\DISPLAY2. This is the default old way.
   2. "@1920" means the screen sitting on the x position 1920 measured from Point(0,0) on the playfield, in this example the screen right next to the HD playfield screen.
   3. "=2" means the screen sitting on index number 2 walking left to right. 
- Redo Westworld bugfix from 2017. Allow additional "empty" picture while importing reels. Export the "empty" reel into the XML file
- Comment out the hardcoded sound loading. The last version committed from Herweh contained half finished code with hard coded sound files which make the exe fail on start. This is now on comment


1.3.1.0

- The FormToFront setting now also works correctly when having the StartBackground setting turned on

- The background and backglass are in sync independent of how FormToFront is set (background should not hide backglass)

- Lines starting with "#" is ignored when reading the ScreenRes.txt or TableName.res files. Now possible to do like this: (template file is updated accordingly)

   # Playfield Screen resolution width/height
   800
   600
   # Backglass Screen resolution width/height
   800
   600
   ...
 
- StartBackground can now also be set globally in the B2STableSettings.xml (but there is no GUI available). When set globally, the GUI will only save StartBackground on table level when they differ.
 
  <B2STableSettings>
     ...
     <StartBackground>1</StartBackground>
     <afm_113>
        <StartBackground>0</StartBackground>
        ...
     </afm_113>
  </B2STableSettings>
 
- Let the 3rd Screen (formDMD) also be controlled by the FormToFront setting


1.3.0.6

- Add ROMName call, and adapt ChangedLEDs API change


1.3.0.4

- Change default to not show startup errors.

- Merge David Pavia's change to optionally set backglass to not on-top and make "fuzzy match" a setting (default: current behavior) to match functionality in David Pavia's PUP version.

- Fix bug with more than 400 lights causing an index out of range exception reported by Wildman.

- Sync up some of the differences in the EXE/non EXE versions of the settings class.


1.3.0.3

- Bug fix: Alternate tablename.res (replacing screenres.txt) failed for Server running as EXE

- Bug fix/feature: support alternative ways to find direct2BS based on gamename

- Feature: proportional aspect ratio for backglass as option per table

- add some more missing VPinMAME interface properties (NVRAM & SoundMode and more for the exe version)

- Allow backglass display to be specified as the X coordinate instead of display ID#, to resolve issues on systems that don't keep a consistent display order.

- CPUAffinity setting
