MFM encoder... but why?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
MFM encoder... but why?
by on (#188334)
In "My post-Curse to-do list", tepples wrote:
  • MFM encoder

Assuming you mean "MFM" like "floppy disk" ... why?
Re: My post-Curse to do list
by on (#188389)
TapeDump uses Kansas City Standard, a frequency shift keying (FSK) mode. MFM uses far fewer transitions per bit compared to AFSK because MFM makes better use of phase.

300 baud FSK: 12 transitions per bit
1200 baud FSK: 3 transitions per bit
Manchester: 1.5 transitions per bit
MFM: 0.75 transitions per bit

I had planned it as a proof of concept toward a faster TapeDump. Or I could have a game encode information to verify a high score as MFM, record it on anything with a microphone, and decode it on a PC.
Re: My post-Curse to do list
by on (#188393)
I'm pretty certain that approaching TapeDump from the point of view of RF (e.g. PSK) is a more fruitful approach than MFM—after all, we have the DAC.

As far as round-tripping data, no magtape device was ever released for the NES, and relatedly support in emulators is lacking.

I agree that in the specific case of only a 1-bit DAC and a 1-bit ADC and a sufficiently constant feed rate of magnetic medium (i.e. minimal wow or flutter), then MFM or RLL-2,7 is an obvious encoding technique that will support a higher bit density.
Re: MFM encoder... but why?
by on (#188562)
lidnariq wrote:
from the point of view of RF (e.g. PSK)

Consider a QPSK scheme with one bit per half-cycle of a sinusoidal carrier. Bit periods begin at every zero crossing of the carrier, which is phase modulated such that 0 bits are modulated in phase or antiphase with the carrier, and 1 bits are modulated 90 degrees different. A transition from 0 to 1 or vice versa is modulated as a delay of the carrier by 90 degrees, such that the signal's frequency never exceeds that of the carrier.

The DQPSK that I just described is equivalent to MFM, assuming I didn't make a mistake. I can draw graphs if you want.

Quote:
As far as round-tripping data

I wasn't considering that. Mostly I had one-way applications in mind: NES to PC, possibly to Internet.

Quote:
a sufficiently constant feed rate of magnetic medium (i.e. minimal wow or flutter)

Not magnetic, but there's Such as recording your TV with a PC or phone mic, or hooking audio out into a PC's sound card.

If you're suggesting the use of more complex waveforms, such as multiple carriers, that might be harder to modulate in real time on a 1.79 MHz 6502 than, say, 4800 bps MFM.

Note to self: lidnariq is pro-split
Re: MFM encoder... but why?
by on (#188571)
Mostly I'm suggesting that getting closer to a well-bandlimited signal will have superior results due to avoiding having to compensate for the group delays imposed by the various filters on the NES's audio path.

Whether the "best" result looks like MFM but using sinusoids instead of square waves, or something that you can feed to debian:minimodem , or maybe something that you can feed to gnuradio (since it can accept input from a soundcard or audio recording, not just "real" RF sources).

Or maybe it just looks like some multilevel ASK.