After being handed an old package of the SN76489 sound chip, Alex wondered if could be used as a synthesizer. After a bit of research he was inspired to make the Squareinator.
Squareinator drives a SN76489 vintage soundchip as a monophonic
synthesizer, using all three squarewaves plus pseudo-random noise to
deliver a fat synth sound. A multi-mode 12 db/oct VCF adds additional
character and is playable at full oscillation. All synth functions are
exposed as MIDI CCs. The ATMEGA32U4 in the Teensy 2.0 allows us to use
the high-speed timer PLL to provide the 2 mHz clock required by the
SN76489 with no extra parts.
You can find the code for the project as well as a schematic on GitHub.
Lofture says that it was simple to build. It uses a Teensy ++ to sample from an AD8307 logarithmic amplifier from Analog Devices, 200 times per second. A Rotary Encoder with a built in Pushbutton is used to navigate the various displays and to access a settings/configuration menu..
The project web page has a detailed write up and includes the code for the project.
This creative clock has birthdays of friends and family stored in it. The clocks picks up GMT date and time from GPS satellites by using Mikal Hart’s GPS code and prints a birthday greeting at 8 am on the morning of the birthdays. On Andrew’s 100th birthday the clock has an added bonus of printing a map to locate treasure he’s buried somewhere.
Boulder Dash is being played on the emulator in this video.
There are 2 versions of the emulator – one for the ILI9341 display and the other for a VGA display.
C64 emulator for VGA
The list of working games is lengthy, including these favorites:
The project stated a few years ago someone asked Frank if it was possible to emulate the C64’s Sound Interface Device (SID) chip on the Teensy 3.2. He found a good reverse engineered SID (reSID) and ported it to the Teensy 3.2. Unfortunately the current reSID versions require a lot of RAM, so he had to switch to an older version. Then Teensy 3.6 was announced. The 256KB of RAM, more than enough flash memory, SD slot, and 180 MHz speed made Frank think it was possible to emulate a complete Commodore C64.
In order to make the emulation happen, challenges with the display needed to be addressed. With current libraries there was no way to control a display fast enough for the emulation. Frank wrote a new display library for the well-known ILI9341 TFT display using DMA and overclocking the SPI interface to 60 MHz, to achieve full screen DMA-based refresh.
It’s been *a few* years since the Commodore C64 has been around (released in 1982, discontinued in 1994) and Frank had forgotten about it’s technical details. Luckily the documentation is still around and he was able to read up on it. He admits that he underestimated the video chip on the C64 (VIC-II), but that turned out to a good thing. Had he known what he was in for he might not have started the project. In the meantime, he has rewritten the code for the VIC-II a few times.
The C64 emulator currently sports the following list of features