The problem is probably that when you read the data into to3d directly
as floats but before byte swapping, the program will still check the values for being legal floating point numbers (not all 32 bit patterns are legal IEEE floating point values). Those that fail are set to 0. Then when you byte swap them in the GUI, they will still be 0 -- they aren't re-read from disk.
The solutions are
(1) since you know you have to byte swap the files, do so with 4swap prior to to3d, or
(2) use the
-nofloatscan option on the to3d command line, or
(3) fix to3d's behavior. However, we are so busy here with other urgent changes now that we won't do
(3) for quite a while.
bob cox