Jump to content

Recommended Posts

Posted (edited)

Bigger changes are coming for the B2S.Server:
 

  1. support for a new type of EM table with advanced mechanics like Nags (Williams 1960)
  2. redesigning the EXE and DLL versions so that hopefully the EXE will no longer be needed. This should not be visible to an end user, but will make future development easier

 

Testing the new builds is essential to help development to not break old backglasses. 

 

In the beginning of the B2S.Server, there were only the DLL. (this was long before me joining this hobby, so I can only guess, if I should correct anything please ping me) The source code was stored at SourceForge

After a while someone found out that the DLL wasn't the best way to have for VPX, making the tables stutter. Therefore the B2S.Server was split out into the DLL & EXE, where it was a possibility to switch DLL or EXE per table.

 

The communication was made through the registry (!). This might not be the best RPC technique there is, but this was how it was made.

Even when you have the EXE activated, the DLL will take the COM calls and pass them through the Registry and then the EXE reads the commands out and displays the changes.  

 

When new COM methods are added, they have to be added to the DLL + serialization on the registry + similar code in the EXE version.

 

Over the years, there has been smaller additions to the B2S.Server, @toxie made changes on request from users sending updates. There has been updates from @DJRobX @Westworld among others.

The updates mostly was made for the EXE version, which meant that DLL & EXE were shifting away from each other slowly.

 

Sometime in the beginning of 2022 I asked Toxie about how to do changes in B2S.Server and after his explainations I started to send in some patches. Later that year @jsm174 and I moved the old sourceforge repository to Github

Slowly I then started to merge the DLL and EXE, so that they both have the same features. This is now finally finished with 2.5.0... both DLL & EXE is built using the same source code, only a handful #If #else precompiler statements left...

 

Thanks to @stevejones72 trigger, we now started to investigate why the DLL has the performance issue with VPX in the first place. @jsm174 meant it shouldn't be any problem since he runs B2S inproc in the standalone VPX version.

 

 

To be continued...

Edited by jarr3
Posted

testing 301 today. I replaced all <StartAsEXE>1</StartAsEXE> in b2stablesettings.xml to <StartAsEXE>0</StartAsEXE>. This forces the dll to be used instead of the exe.

 

Discovery

If all is as normal, ie, directb2s named same as table and tablename.res same name as the table all will work as normal. I'm testing desktop mode windowed fullscreen.

 

Faults

If you have a tablename.res but no matching directb2s the dll will place a black square in place of a b2s glass. If you use a b2s with fulldmd the fulldmd will pop behind the screen but leave the black b2s image.

 

If you have all working as normal and use mouse to right click on the b2s to bring up settings, even if no changes made, it will break communication between the table and b2s and the b2s will pop behind the screen.

 

For now then if case 1 is all normal it will work as expected. If interrupted in any way it is unstable. Pup packs, so far, seem to be unaffected.

 

 

Posted

Spongebob Squarepants. 

b2s will not come forward but fulldmd does. Alt tab to bring glass forward but no communication with vpx.

Posted

Ren and Stimpy was playing along as normal and then a .net box popped up. I copied the contents here;

 

This table is a reskin of Dr Dude. It uses a puppack but scoring is system 11 alphanumeric. On this table I use the b2s with full dmd. The full dmd is a frame for teh score display but the backglass is located off screen in favor of the pup screen

 

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.InvalidOperationException: Object is currently in use elsewhere.
   at System.Drawing.Drawing2D.GraphicsPath.Transform(Matrix matrix)
   at B2S.SegmentNumber.get_Bounds()
   at B2S.Dream7Display.OnPaint(PaintEventArgs e)
   at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)
   at System.Windows.Forms.Control.WmPaint(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9256.0 built by: NET481REL1LAST_B
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
B2SBackglassServer
    Assembly Version: 2.5.0.301
    Win32 Version: 2.5.0.301
    CodeBase: file:///E:/B2S/B2SBackglassServer.DLL
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9251.0 built by: NET481REL1LAST_C
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9251.0 built by: NET481REL1LAST_C
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9032.0 built by: NET481REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Microsoft.VisualBasic
    Assembly Version: 10.0.0.0
    Win32 Version: 14.8.9032.0 built by: NET481REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9241.0 built by: NET481REL1LAST_C
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9032.0 built by: NET481REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9032.0 built by: NET481REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Web
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9232.0 built by: NET481REL1LAST_C
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_64/System.Web/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Web.dll
----------------------------------------
B2SServerPluginInterface
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.301
    CodeBase: file:///E:/B2S/B2SServerPluginInterface.DLL
----------------------------------------
System.ComponentModel.Composition
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9032.0
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.ComponentModel.Composition/v4.0_4.0.0.0__b77a5c561934e089/System.ComponentModel.Composition.dll
----------------------------------------
B2SServerSamplePluginVBNet
    Assembly Version: 0.5.8351.33321
    Win32 Version: 0.5.8351.33321
    CodeBase: file:///E:/B2S/PLUGINS64/PINUPPLAYERB2SDRIVER/PINUPPLAYERB2SDRIVER.DLL
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
 

Posted (edited)

Tested some tables with 303.
Got problems with tom and jerry but not with wizard of oz (combination of b2s and pupplayer.) tom and jerry freezes and stutters..
The b2sDMD of Timelord 3 is shown with dll, but the backglass jumps behind my Desktop playfield. Same as with spronge bob - like @Cliffy wrote.
most b2s-tables work without problems, I configured a background on 2 Screens - worked.
can someone else please check tom and jerry and timelord 3.. Maybe its my config.. I did not check all my tables ..

Edited by Tikimaster
Posted

Tom and Jerry do not work correctly in dll mode for me either. The b2s pops behind but the fulldmd stays on top. If the b2s is alt-tabbed to top the communication between vpinmame, vpx and b2s server is lost. Clicking the table hides teh b2s and the table runs as expected - just no b2s backglass.

Posted

wizard of oz running b2s server 303 b2s goes to back, fulldmd stays on top. pup overlays load but pup videos REQUIRE a b2s to sit on on. Pup pack will not close on table exit. Only on VPX exit.

 

woz-303-no-b2s-pupnoclose.jpg

Posted

Here is another clue for you, Richard and Steve. If No Focus is UNchecked then you will not get true windowed full screen. Windows taskbar will always show at the bottom. If No Focus IS checked then I get windowed full screen. 

 

Of course right clicking on the b2s to make any changes to settings immediately forces the b2s to the back and you have to start again. 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
  • Create New...