I think I found a small but important bug in HxCFloppyEmulator when converting Northstar NSI files to HFEv3 that lowers the reliability: the index is misaligned. Equivalently, there isn't enough sector preamble. I thought I would share in case it helps HxC.
When outputing HFEv3 from a (double density) NSI, HxCFloppyEmulator puts 12.5 data bytes (25 hfe bytes) between the index and start of the sector header. That's 400 µs of preamble. The Northstar Advantage Technical Manual says to use 33 data bytes when writing, which is 1ms (p 3-36, 3-37). The Northstar MDS-A-D Double Density manual says to have 32 bytes preamble (p 33). Most importantly, the Advantage manual says to wait 500 µs after the sector pulse when reading, plus 150 µs to sync the PLL.
I don't have a Northstar system, but I shared my findings and made a hacked nsi2hfe.py script. There have been two confirmations on Northstar Advantages using FlashFloppy that it is unreliable/broken with the HxCFloppyEmulator output but working with the nsi2hfe.py output. No confirmations with HxC yet.
NSI to HFE output; 8F is too close to the sector header:
Code: Select all
00000e20: 2222 2222 2222 2222 2222 2222 2222 2222 """"""""""""""""
00000e30: 2222 2222 2222 2222 2222 2222 2255 5555 """""""""""""UUU # End of 153 bytes postamble 0x22
00000e40: 5555 5555 5555 5555 5555 5555 5555 5555 UUUUUUUUUUUUUUUU
00000e50: 5555 5555 5555 5555 5555 5555 5555 5555 UUUUUUUUUUUUUUUU
00000e60: 5555 5555 5555 5555 5555 8f55 5555 5555 UUUUUUUUUU.UUUUU # 0x8f index op
00000e70: 5555 5555 5555 5555 5555 5555 5555 5555 UUUUUUUUUUUUUUUU
00000e80: 5555 5555 aaa2 5495 4aa5 8888 aaa8 4aa5 UUUU..T.J.....J. # Sector header