digitalsoapbox That is pretty much what I am doing. I am saving inputs with setbit() method into inputs variable (just like in multiplayer tutorial 4), but not using the built-in input syncing and prediction, but syncing that variable and moving all players on each screen locally with same functions.
Movement is smooth for everyone. I do occasionally (like on landings etc) sync positions and it is very rare to get any syncing glitches (something I can tweak of by syncing positions more often).
Unfortunately my game has physics on bullets (or darts) and that is something I have to live with. It is still pretty great gameplay for all, but host has clear advantage (since all physics calculations are done on host). Probably will end up adding server there, so all players will be on same level.
I watched Sombrero trailer - looks very cool! Pretty similar game than what I am building (I love that kind of 2D action games - will definitely buy Sombrero). Have to admit that you have much cooler graphics and without bullet physics it is much more suitable for online play! Is the release coming soon?