The tool is .net based, but it will be distributed with the source code, so it can be ported to linux or mac.
The usb works as a CDC device, so it appears as a standard serial port. Currently you can only transfer from PC to neosd pro, but also reading neogeo memory is planned for future firmwares.
Writting only works on the RAM slot. You load a game to ram from the menu, and while running there is a command that freezes the game (sort of unibios menu pause), once frozen, you can upload data to any of the areas (P,V,S,M,C), and then unfreeze, and the game will continue with the new data. You have the option to reset when unfreezing (changing P data usually will require that) and also to halt the z80 on ram loop (updating the z80 code requires that, otherwise the z80 will run garbage). You can also adjust some internal neosd registers like the P banking mode, S banking, separated or multiplexed V roms, rom sizes...
Another feature, is that the USB port will notify the currently loaded game name, ngh, screenshot id... So you can for example, connect a rpi or similar and dynamically change a marquee on your cab (for MVS mainly).
We are open for suggestions on more uses of the port.