Jump to content



Photo
- - - - -

DOF update 2024-09-01

DOF

  • Please log in to reply
20 replies to this topic

#1 mjr

mjr

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 3,331 posts

  • Flag: United States of America

  • Favorite Pinball: Medieval Madness

Posted 02 September 2024 - 06:19 PM

If you're feeling adventurous, there's a new update to my Grand Unified DOF release, at the usual place:

 

http://mjrnet.org/pi...ll-updates.html

 

I've marked the new 2024-09-01 release as a Beta, since the changes are a little riskier than usual.  If you're not comfortable rolling back to an earlier version in case of trouble, you might want to hold off a little while to see if any serious problems turn up.  If you ARE comfortable giving it a try, though, it would be a big help, so that it gets tested across more configurations than just my machines.

 

The big addition in this release (and the thing that makes it a Beta) is that it now has full support for combined 32/64-bit installation.  I know there are some 64-bit builds out there already, but I haven't released my own "Unified" one up until now because the 64-bit install never worked properly before, and because the 32- and 64-bit versions didn't play nicely together.  I've finally built a proper 64-bit install, and also made some changes to DOF itself that will hopefully make things a lot easier for everyone:

 

- The 32-bit and 64-bit setups are fully automated MSI files, with no need to do any manual fixup afterwards.  There's no need to move files around, rename anything, or change any registry keys.  Just run the two MSI installs and you're set.

 

- You can install both versions in the same folder now

 

- The configuration files are now automatically shared between the 32- and 64-bit versions, as long as you install them in the same folder.  (If you actually WANT to use separate separate config files for 32-bit mode and 64-bit mode, that's easy, too: just install the two versions in different folders.)

 

- You can install any combination of 32- and 64-bit (just 32, just 64, or both), according to which DOF-enabled programs you use.  If you need just one or the other, just run the MSI for the one you use.  If you need both, run both MSI's sequentially.  The order of installation doesn't matter.

 

The trick that lets the two "bitness" versions coexist is that the binaries are now installed in separate x86 and x64 subfolders off  of the main install folder.  All of the configuration and other files use the same structure as before.  The binaries are aware of the new install layout and know to look in the shared parent folder for the configuration data.  (This is the "risky" change I mentioned, in that if anything goes wrong in the config file searching, DOF just won't work.  I'm hoping I got everything right, but I'm hedging by calling it a Beta in case I missing anything important.)

 

This update also includes the latest updates I've received from the Pin One and Dude's Cab Controller developers, plus a fix to a DOF bug for the latest Pinscape KL25Z firmware, so it should be up-to-date with all of the supported hardware.


Edited by mjr, 02 September 2024 - 06:27 PM.


#2 colonelsnow

colonelsnow

    Hobbyist

  • Validating
  • PipPip
  • 19 posts

  • Flag: ---------

  • Favorite Pinball: Kiss

Posted 13 September 2024 - 01:15 AM

I installed dof with your installers and it is now working for me in VPX. Thanks. I have a new problem now though. My dof led was working in pinup popper and that stopped working when I did your installs. Any suggestions of what to try?


Edited by colonelsnow, 13 September 2024 - 01:05 PM.


#3 mjr

mjr

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 3,331 posts

  • Flag: United States of America

  • Favorite Pinball: Medieval Madness

Posted 13 September 2024 - 03:16 AM

I installed dof with your installers and it is now working for me in VPX. Thanks. I have a new problem now though. My dof led was working in pinup popper and that stopped working when I did you installs. Any suggestions of what to try?

 

Your best bet troubleshooting is to look at the logs.  I don't know if pinup keeps a log, but if it does, check that to see if it's reporting any errors with DOF.  DOF keeps its own log, DirectOutput.log, that should show up either in the DOF directory or in the host application directory (pinup in this case) - once you find the file, check the timestamps to make sure it's coming from the most recent run.  If pinup is having trouble loading DOF, there probably won't be a DirectOutput.log file anywhere, because DOF has to start before it can create one, so the absence of that file would suggest a loading problem - but it would still be better to confirm pinup's side of the story from its own log, if possible.



#4 colonelsnow

colonelsnow

    Hobbyist

  • Validating
  • PipPip
  • 19 posts

  • Flag: ---------

  • Favorite Pinball: Kiss

Posted 14 September 2024 - 03:57 PM

I deleted the registry key and re-ran RegisterDirectOutputComObject.exe and it is working in popper now



#5 mjr

mjr

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 3,331 posts

  • Flag: United States of America

  • Favorite Pinball: Medieval Madness

Posted 14 September 2024 - 05:45 PM

I deleted the registry key and re-ran RegisterDirectOutputComObject.exe and it is working in popper now

 

Great, glad you found a fix. It would be nice to know what went wrong on the initial install, but it's hard to reconstruct that after the fact; I guess we'll have to wait and see if it recurs for anyone else, and then see if we can come up with a reproducible test case.



#6 Umpa

Umpa

    Pinball Fan

  • Members
  • PipPipPipPip
  • 740 posts

  • Flag: United States of America

  • Favorite Pinball: AC/DC

Posted 30 September 2024 - 01:13 PM

Haven't tried it yet, but I will and report back. I have the pinone, so I'm glad I should be able to use yours and not the specific pinone DOF. Just want to say thank you for everything you have contributed to this hobby. You are a legend!

Sent from my SM-A536U using Tapatalk

#7 pmanic

pmanic

    Hobbyist

  • Members
  • PipPip
  • 14 posts

  • Flag: United States of America

  • Favorite Pinball: Champions Pub

Posted 04 October 2024 - 02:28 AM

I deleted the registry key and re-ran RegisterDirectOutputComObject.exe and it is working in popper now

 

I'm having the same issue.  New installers work great in VPX but nothing in Pinup popper.  Which registry key(s) did you delete?  Which one did you register 32 or 64?

 

Thanks.



#8 pmanic

pmanic

    Hobbyist

  • Members
  • PipPip
  • 14 posts

  • Flag: United States of America

  • Favorite Pinball: Champions Pub

Posted 04 October 2024 - 02:44 AM

 

I installed dof with your installers and it is now working for me in VPX. Thanks. I have a new problem now though. My dof led was working in pinup popper and that stopped working when I did you installs. Any suggestions of what to try?

 

Your best bet troubleshooting is to look at the logs.  I don't know if pinup keeps a log, but if it does, check that to see if it's reporting any errors with DOF.  DOF keeps its own log, DirectOutput.log, that should show up either in the DOF directory or in the host application directory (pinup in this case) - once you find the file, check the timestamps to make sure it's coming from the most recent run.  If pinup is having trouble loading DOF, there probably won't be a DirectOutput.log file anywhere, because DOF has to start before it can create one, so the absence of that file would suggest a loading problem - but it would still be better to confirm pinup's side of the story from its own log, if possible.

 

 

I'm having the same issue.  I looked for any logs in Pinup but didn't see any.  I checked the DOF log and it didn't have anything in it other that what came with install log.  Not sure what to do next.



#9 mjr

mjr

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 3,331 posts

  • Flag: United States of America

  • Favorite Pinball: Medieval Madness

Posted 04 October 2024 - 04:39 AM

Before you make any registry changes, it would help if you could go into RegEdit and capture the following keys (along with all subkeys and values):

 

HKEY_CLASSES_ROOT\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6}

HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6}



#10 pmanic

pmanic

    Hobbyist

  • Members
  • PipPip
  • 14 posts

  • Flag: United States of America

  • Favorite Pinball: Champions Pub

Posted 04 October 2024 - 05:48 AM

Edited to remove useless text dump.

I couldn't figure out how to upload a screen shot.
Key Name:          HKEY_CLASSES_ROOT\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6}
 

Edited by pmanic, 04 October 2024 - 07:36 PM.


#11 mjr

mjr

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 3,331 posts

  • Flag: United States of America

  • Favorite Pinball: Medieval Madness

Posted 04 October 2024 - 06:47 AM

Thanks, sorry that was so tedious.  I need the values, too, I'm afraid.  I should have pointed out that you can do this more easily from a command prompt by typing

 

reg export HKEY_CLASSES_ROOT\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6} key1.txt

reg export HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6} key2.txt

 

That'll produce the two text files key1.txt and key2.txt that you can just copy and paste here.


If you actually meant that the values for some of the items are empty (particularly in the InProcServer32 CodeBase values), that could be the problem.  Those should have been filled in with the file location of the DOF COM object DLL.  Something must have gone wrong in the install process if those didn't get populated.


Another thing you can try is re-running the installer(s) with logging enabled, from a CMD prompt:

 

DirectOutput-mjr-x64-release-xxxx.msi /L*V setup64.log

 

The setup logs might have more information explaining why the keys aren't getting set, if that's really what's going wrong.



#12 pmanic

pmanic

    Hobbyist

  • Members
  • PipPip
  • 14 posts

  • Flag: United States of America

  • Favorite Pinball: Champions Pub

Posted 04 October 2024 - 07:35 PM

That's much easier that what I was trying.  Thanks for you patience.  Take 2:
 

 [HKEY_CLASSES_ROOT\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6}]

@="DirectOutputCom.ComObject"
 
[HKEY_CLASSES_ROOT\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6}\Implemented Categories]
 
[HKEY_CLASSES_ROOT\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}]
@=""
 
[HKEY_CLASSES_ROOT\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="DirectOutputCom.ComObject"
"Assembly"="DirectOutputComObject, Version=3.2.9036.21660, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
 
[HKEY_CLASSES_ROOT\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6}\InprocServer32\3.2.9036.21660]
"Class"="DirectOutputCom.ComObject"
"Assembly"="DirectOutputComObject, Version=3.2.9036.21660, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
 
[HKEY_CLASSES_ROOT\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6}\ProgID]
@="DirectOutput.ComObject"
 
----------------------------------------------------
 
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6}]
@="DirectOutputCom.ComObject"
 
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6}\Implemented Categories]
 
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}]
@=""
 
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6}\InprocServer32]
@="mscoree.dll"
"Assembly"="DirectOutputComObject, Version=3.2.9036.21660, Culture=neutral, PublicKeyToken=null"
"Class"="DirectOutputCom.ComObject"
"RuntimeVersion"="v4.0.30319"
"ThreadingModel"="Both"
 
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6}\InprocServer32\3.2.9036.21660]
"Class"="DirectOutputCom.ComObject"
"Assembly"="DirectOutputComObject, Version=3.2.9036.21660, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
 
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6}\ProgID]
@="DirectOutput.ComObject"


#13 mjr

mjr

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 3,331 posts

  • Flag: United States of America

  • Favorite Pinball: Medieval Madness

Posted 04 October 2024 - 08:28 PM

Thanks for that.  It sure looks like the file locations aren't getting set for the COM objects, which would explain why DOF isn't getting fired correctly.  I notice that your InProcServer32 keys have build numbers that are higher than the ones for this build.  I'm thinking that you had someone else's DOF build previously installed, and the higher build numbers are making the installer think it shouldn't update the keys.  Maybe try this:

 

- Go into regedit and manually delete the two keys (HKEY_CLASSES_ROOT\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6}  and HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{A23BFDBC-9A8A-46C0-8672-60F23D54FFB6})

 

- Re-run the .msi installers

 

Let me know if that fixes it - if so, I'll have to investigate why the version mismatch is having this effect.  The overall installer is configured to do a full update even if you have a previous version installed, but MSI has a lot of opaque internal processing, so maybe it has some special separate rules that determine whether it overwrites the COM keys.

 

BUT, BEFORE you do that, if you do have a chance to try the install with logging enabled (with the /V*L option I mentioned a couple of notes ago), that might be worthwhile - the log might have some messages explaining its choice not to update the keys.  That would be commands like this from a CMD prompt:

 

DirectOutput-mjr-x64-release-xxxx.msi /L*V setup64.log

 

Post those log files so I can take a look (or send them to me by PM), then you can go and delete the keys in regedit and try running again.


Edited by mjr, 04 October 2024 - 08:34 PM.


#14 pmanic

pmanic

    Hobbyist

  • Members
  • PipPip
  • 14 posts

  • Flag: United States of America

  • Favorite Pinball: Champions Pub

Posted 04 October 2024 - 09:27 PM

That didn't seem to change anything.  I deleted the 2 registry keys.  It went into repair mode.  I tried that but that didn't work so I selected remove for both 32 and 64 and tried again.  It recreated the folder.  I moved my .ini files and tablemappings.xml back in.  VPX DOF works fine but nothing in Pinup. 

 

lt says it successfully installed.

 

MSI © (BC:84) [16:56:36:153]: Windows Installer installed the product. Product Name: DirectOutput64. Product Version: 3.2.9036.21665. Product Language: 1033. Manufacturer: DirectOutput. Installation success or error status: 0.
 
That said the registry keys are exactly the same.  I definitely deleted them.
 
I'll send you the logs but I didn't see anything that jumped out at me.  The only errors I see seem to be related to logging:
 
Action start 16:56:30: PrepareDlg.
MSI © (BC:58) [16:56:30:567]: Note: 1: 2205 2:  3: Error 
MSI © (BC:58) [16:56:30:567]: Note: 1: 2228 2:  3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 2898 
Info 2898.For WixUI_Font_Normal textstyle, the system created a 'Tahoma' font, in 0 character set, of 13 pixels height.
MSI © (BC:58) [16:56:30:567]: Note: 1: 2205 2:  3: Error 
MSI © (BC:58) [16:56:30:567]: Note: 1: 2228 2:  3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 2898 
Info 2898.For WixUI_Font_Bigger textstyle, the system created a 'Tahoma' font, in 0 character set, of 19 pixels height.


#15 mjr

mjr

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 3,331 posts

  • Flag: United States of America

  • Favorite Pinball: Medieval Madness

Posted 04 October 2024 - 09:48 PM

Thanks for trying all of that.  My guess about the existing keys evidently wasn't it.  I got your PM with the log, so I'll take a look at that - hopefully it'll something else to try or look at.  There's got to be some rational explanation!



#16 pmanic

pmanic

    Hobbyist

  • Members
  • PipPip
  • 14 posts

  • Flag: United States of America

  • Favorite Pinball: Champions Pub

Posted 04 October 2024 - 10:09 PM

I got more aggressive in the registry and deleted everything I could find with DirectOutputCom.  I did find some residual keys pointing to a previous DOF folder and deleted those.  I reinstalled and rebooted but unfortunately that didn't seem to make any difference.  VPX works but nothing in Pinup.  

 

Could it be Windows permission issue?

 

Thanks for trying all of that.  My guess about the existing keys evidently wasn't it.  I got your PM with the log, so I'll take a look at that - hopefully it'll something else to try or look at.  There's got to be some rational explanation!



#17 mjr

mjr

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 3,331 posts

  • Flag: United States of America

  • Favorite Pinball: Medieval Madness

Posted 04 October 2024 - 10:17 PM

> Could it be Windows permission issue?

 

It's definitely possible.  Your logs don't seem to show any permissions problems, but maybe something is failing without logging an error.  You could try running the setup with "Run As Administrator" mode to see if that makes any difference.  One of the big benefits of MSI is that you shouldn't have to do that, but maybe there's some security setting on your system that makes it necessary.



#18 pmanic

pmanic

    Hobbyist

  • Members
  • PipPip
  • 14 posts

  • Flag: United States of America

  • Favorite Pinball: Champions Pub

Posted 05 October 2024 - 10:07 PM

Good news.  After a long journey I finally have everything working.  I went through and deleted everything with DirectOutput out of the registry.  Then I went an turned UAC back on.  I had done that based on the https://www.nailbust...egistry&s[]=dof.  I think that is what was causing the issue.  I then reinstalled both .msi.  Thanks for all the help.  

 

My next mystery to solve is how to send an event code in pinup popper that turns on the shaker or the fan.  I thought it would be E112 and E118 but that doesn't seem to do anything.  



#19 mjr

mjr

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 3,331 posts

  • Flag: United States of America

  • Favorite Pinball: Medieval Madness

Posted 06 October 2024 - 02:10 AM

> Then I went an turned UAC back on.  

 

Ah, that explains it!  I should have thought to ask when you were getting the mysterious registry problems.  UAC is basically required these days.  It's so deeply integrated into Windows at this point that turning it off does very strange things to the system.  One of those things is it weirdly changes the way registry keys are interpreted, so when the registry was going all mysteriously wonky, I should have thought of that, but for some reason I never think of it as a troubleshooting step.  I should probably put a check at the beginning of the setup process to make sure UAC isn't turned off, and warn that things probably won't work properly if so.  I'll have to at least add a warning on the download page.  I know that a lot of the tutorials out there STILL say you should turn off UAC and run everything in Administrator mode, so a lot of people take those tutorials at their word, even though it creates so many more problems than it solves these days.

 


I'm really glad you got it all sorted out!


Edited by mjr, 06 October 2024 - 02:17 AM.


#20 pmanic

pmanic

    Hobbyist

  • Members
  • PipPip
  • 14 posts

  • Flag: United States of America

  • Favorite Pinball: Champions Pub

Posted 06 October 2024 - 04:19 AM

One of the reasons I wanted to use DOF with Pinup was to have the Fan turn on when selecting tables like Whirlwind.  Is it possible to have Pinup send an event to turn the Shaker or Fan on/off?  I don't see an event defined in the DOF Configtool for the Fan, Shaker or Gear.  Is it a matter of putting an event code that's not used and then regenerating the .ini file?  I guessing it's more complicated than that.  I looked at  DOF config for tables like Whirlwind that use the fan but they use Solenoid (S###) events vs Effect (E###) events which I believe Pinup requires.  







Also tagged with one or more of these keywords: DOF