Why to use some strange close source tool, when we have Tinfoil with "Best MTP implementation ever"?
I did explain it on the repo, on the mtp documentation. I couldn't make tinfoil run with the mediadevices api, so i kept working on it using DBI.
Some days later i realized there was a driver on tinfoil's repo so i tried with it and got the mediadevices api to recognize it. Then i start adding tinfoil locations to my code and the information functions did run with it, for example the one on info that shows new updates and dlcs will work with tinfoil though tinfoil will make error popups when checking what registries are installed and which are archived\placeholders, which unfortunately stack on top of each other. This is pretty minor and i'm sure i can ask blawar to change it.
Ok so second issue was when installations prompted from the api hanged with tinfoil, seems the request is received but the stream won't advance so i kept working on DBI support.
My original plan was bring support to DBI, tinfoil and nx-mtp, allowing some functions or others to run depending on the one used but that soon was discarded and well, DBI gives access to a titleversions csv and saves too which makes things easier and gave it a couple of functions. Also sends to the pc the version of firmware that's installed on the switch as device version like nx-mtp does, instead tinfoil sends the version of the tinfoil build. Another DBI advantage is that it gives you access to select emmc and sd when installing while tinfoil seems to join both of them on the same storage trough mtp.
About tinfoil, it's solution has it's advantages too since mtp and usb run at the same time. As I stated in the readme i plan to use this to implement a hybrid solution where i use mtp to check on the storage available, xcis and versions of content installed on the device and then normal usb install to make installations.
About DBI being closed source, yep it is though is pretty obvious it's base is Old Tinfoil by Addubz with the fixes blawar made while it's server seems to be a fork of old nut server's code using DBI0 magic for normal usb installation.
About it's mtp implementation is very compliant with the mediadevices api from Microsoft though for some reason they didn't implement changeparent so cut and paste or moved are interpreted as copy in the windows file explorer, while that's actually properly implemented in nx-mtp and tinfoil. Still i don't currently use that and you can get it to work by using changeparent on the api properly.
Anyway that's my reasoning i'm not against tinfoil at all and the intention was and still will be to support both. I won't no longer support nx-mtp since it doesn't really offer advantages. The reason to add a mtp manager for DBI is that it allows to do a lot of things i really tried and wanted to do with NX-MTP before but in a very much friendly and easy way so i rescued my research about mtp support on windows and made this. It's focus was on things i wanted primordially, but as always since it's done and some may find it useful i decided to share it.
Now as I said before current tinfoil's target will be a hybrid solution with a specific tinfoil mode on the NSCB batch. If newer versions of tinfoil work better with the mediadevices api i can also add the tinfoil identifier and locations, to more functions, not only the info one where it's currently added.
The following screenshot is tinfoil's device info on NSCB, it's also supported in the info about installed titles and the update checker too. I may check if i have the same issue with transfer as i have it with installation, but currently i can't give full tinfoil support, for some reason the mediadevices api has a different behavior when compared to the windows file explorer implementation even if theirs core should be she same.