For the Famicom Programmable Series games, Excitebike, Mach Rider and Wrecking Crew, Nintendo had a save/load function for custom built tracks or levels. The game used the Famicom Cassette Recorder to save and load levels/tracks. Now, as Nintendo used the same ROMs for NES versions of these games, I wonder if the save/load functions of these games could work in a front loading NES with a cassette player wired to the NES Expansion Port.
First, lets examine how the Famicom Cassette Recorder works without the Famicom Keyboard. When the game wishes to save custom tracks/leveks, it sends the data encoded into sound pulses to the audio output pin on the Famicom Expansion Port. The user must have the tape deck recording for anything to happen. When it comes time to load a game, the tape plays back the signal and sends it to $4016 D0. The game is waiting for a serial binary signal on that bit and reassembles it appropriately. The Famicom's Microphone on controller #2 behaves similarly. Naturally, I would expect that the audio signal itself is essentially a square wave. (Perhaps there is an ADC in the cassette recorder.)
Now, is there any other reason a non-Nintendo cassette recorder wouldn't work? Perhaps a modification would be needed.
Great Hierophant wrote:
For the Famicom Programmable Series games, Excitebike, Mach Rider and Wrecking Crew, Nintendo had a save/load function for custom built tracks or levels. The game used the Famicom Cassette Recorder to save and load levels/tracks. Now, as Nintendo used the same ROMs for NES versions of these games, I wonder if the save/load functions of these games could work in a front loading NES with a cassette player wired to the NES Expansion Port.
First, lets examine how the Famicom Cassette Recorder works without the Famicom Keyboard. When the game wishes to save custom tracks/leveks, it sends the data encoded into sound pulses to the audio output pin on the Famicom Expansion Port. The user must have the tape deck recording for anything to happen. When it comes time to load a game, the tape plays back the signal and sends it to $4016 D0. The game is waiting for a serial binary signal on that bit and reassembles it appropriately. The Famicom's Microphone on controller #2 behaves similarly. Naturally, I would expect that the audio signal itself is essentially a square wave. (Perhaps there is an ADC in the cassette recorder.)
Now, is there any other reason a non-Nintendo cassette recorder wouldn't work? Perhaps a modification would be needed.
The Atari 2600 had a similar device called the SuperCharger. I remember people making a compilation of games on CD of the games which were originally sold on tapes. Hence apparently it is just analog audio, so as long as the recorder is good enough, you could probably use whatever one you wanted.
Very true, the Supercharger could use any decent cassette player. However, between the 2600 and the cassette recorder there was the Supercharger hardware. That hardware had four major components, the ROM, the RAM, the mapping circuitry and an Analog to Digital Converter. The Cuttle Cart (1) operates similarly but in a far more advanced way.
Now, a NES already has the ROM, the RAM and the mapping circuitry on the cartridge, if any. But what about recording onto and reading back from cassette tapes? The NES does have 4x4-bit and 1x7-bit DACs for its sound channels. But a normal cassette recorder does not have an ADC, perhaps the Famicom's Cassette Recorder does. Otherwise, how can it reliably receive the data, which it expects to be digitized?
What are the voltages for a headphone level signal, and what are the voltages expected by the Famicom expansion port? Perhaps all we need is to run a comparator on the difference between the signal and a low-pass filter of the signal in order to get a 1-bit demodulation of the data on the cassette.
I have been planning to build something like this for quite awhile, i replaced my exp. connector from my deck with a sawed-off ISA connector to make more convinient to use.
Has anyone RE'd the load/save function? i belive it should have somekind of start/stop signatures or similar to indentify what exactly NES is trying to do with it.
I think this tapedrive simulator could be done by using UART, LPT or USB, without using any additional circuitry.
oops! the message above was mine, i forgot to logon!