[sweetlilmre] is just beginning his adventures in retrocomputing, and after realizing there were places besides eBay to buy old computers, quickly snagged a few of the Amigas he lusted after in his youth. One of the machines that didn’t make it into his collection until recently was a Commodore 64 with Datasette and 1541 drive. With no tapes and a 1541 disk drive that required significant restoration, he looked at other devices to load programs onto his C64.
These devices, clever cartridge implementations of SD cards and Flash memory, cost more than anyone should spend on a C64. Realizing there’s still a cassette port on the C64, [sweetlilmre] created Tapuino, the $20 Commodore tape emulator
The hardware used to load games through the Datasette connector included an Arduino Nano, a microSD breakout board, a 16×2 LCD, some resistors, buttons, and a little bit of wire. The firmware part of the build – available here on the Git – reads the .TAP files off the SD card and loads them into the C64.
[sweetlilmre] posted a very complete build post of the entire device constructed on a piece of protoboard, Pop that thing in a 3D printed case, and he can have the entire C64 library in his pocket.
Nice work. I am surprised this tactic hasn’t been featured before.
OT I realize a Color Computer and a C64 aren’t one in the same, however, I recall some programs that ran from cassette using the actual audio playback capability of the cassette as part of the program. Was that not done on the C64?
It was certainly done on the Atari 8-bit machines. There was a states and capitals edu-game I used to play that had narration on the audio track of the tape. Might still have the tape, in fact :)
The Atari cassette deck had a stereo head, one channel was for the digital and the other was sent up a wire on the 13 pin SIO cable and mixed with the computer audio to the TV. It also had programmable motor control. There was a cassette bundled with many Atari’s that had an introduction to BASIC programming that, once the main program loaded, synced audio narration to on screen animations using pulses on the digital track, the overall effect was quite impressive at the time (from 1979)…
https://www.youtube.com/watch?v=jy40ztVXahc
Jump to about 8 minutes to skip all the loading and see something sync’d up.
It was a very underused feature; at the time I especially could not understood why games didn’t have music playing while loading up the game code (10 to 20 minutes!) but then I’d never have thought of the cost of licensing it back then!
The C64 interface has the motor control, but no audio input, only digital read, write and sense signals.
it has been, you can also load tapes using ordinary mp3 player
nobody uses it because its SLOW
why bother when you can emulate floppy instead and enjoy ‘normal’ transfer speeds?
Yeah, there’s such a thing as “too much retro”.
Or there should be.
On here, there are also too many mentions of 3D printed cases. This project could just as easily be popped into an emptied pack of cigarettes.
Using the foil liner as shielding!
Hmm i wonder if with a little modification this could be used for the ZX Spectrum…
If you own any kind of android device, there is the software solution: “tapDancer” (search for it on google play store).
Well, i think that would be even more awesome than an arduino :D And about the same total price if you get an old phone…
Great work!!! I was thinking of doing the same thing with my TI Launchpad but had too many other diversions. One thing to do with the tape port is write a custom loader and compress the bitstream so that games load faster than 5 minutes. :-) Since you can work with the datasette port in the digital domain with hi-fidelity you can go much faster once analog is taken out of the mix. Egan Ford did this with Apple single-load games: http://asciiexpress.net/gameserver/
I think he have done a great job, but I do wonder why he did not choose to emulate a disc drive instead. He could might even make it work with some sort of turbo loader, and even include a menu in the turbo loader and then drop the LCD.
Or if he had chosen and LCD without I2C he could have saved ~$3, there are plenty of pins left on the arduino.
And when do people learn about the internal pull-up resistors ? Almost every project I see includes external pull-up/pull-down resistors, witch is not really necessary.
I disagree about the using the internal pull-ups. They are weak and the signal isn’t as clean as with external. Here is a good post about the details
http://www.dsscircuits.com/index.php/articles/47-effects-of-varying-i2c-pull-up-resistors
Just saw this as I didn’t get any notification from Hackaday that this was up?
Anyway, disc drive emulation is an order of magnitude more complex as a real 6502 needs to be emulated in order to load most fastloaders (games would actually upload code to the drive and then use a custom serial protocol to negotiate data transfer).
Certainly nothing that could be accomplished with an Arduino Nano :)
Where is the complete LIBRARY? A building without books isn’t much of a library.