A Raspberry Pi SID Player

Of all the vintage chiptune machines out there, the Commodore 64 is the most famous. Even 30 years later, there are still massive gatherings dedicated to eeking out the last cycle of processing power and graphics capability from the CPU and the infamous synth-on-a-chip, the SID. [Bob] wanted to build a SID jukebox. A C64 is capable of the job, but if you want to have every SID composition on an SD card and connect that to a network, a Raspberry Pi is the way to go.

The SID chip, in its 6581 or 8580 versions, is controlled directly by poking registers on the chip through the address and data busses. This means a lot of pins, too many for the original Raspi expansion header. That’s not a problem that can’t be solved with a few shift registers, though. The rest of the circuit is an LM386 audio amplifier, an LCD that displays the current song, and a can crystal oscillator for the SID.

Right now everything is wired up on a breadboard, but making this a Raspberry Pi hat would be a rather simple proposition. It’s only a matter of finding a SID with working filters, and if you can manage that, it’s a pretty easy build to replicate. Video below.

Continue reading “A Raspberry Pi SID Player”

Dual Porting a C64 Flash Cart

The old cartridges for the Commodore 64 use EEPROMs to store their data, and the newer Flash carts use either a Flash chip or an SD card to put a whole bunch of games in a small plastic brick. [Stian] and [Runar] thought that wasn’t good enough – they wanted to program cartridges in real time, the ability to reboot the C64 without ever touching it, and a device for coding and testing. What they came up with is the latest advance in Commodore cartridge technology.

The device presents 8k of memory to the C64, but it doesn’t do this with Flash or an EEPROM. Instead, [Stian] and [Runar] are using a dual-port static RAM, specifically one from the IDT7005 series. This chip has two data busses, two address busses, and /CE, /OE, and R/W lines for either side of the chip, allowing other digital circuits to be connected to one small section of the C64’s memory.

Also in the cart is an ATmega16 running V-USB to handle the PC communications. It takes about 1 to 1.5 seconds to transfer an entire 8k over to the cartridge, but this chip can read and write the RAM along with the C64 simultaneously.

If you want a box that will give you the ability to put ever game in existence on a single cartridge, this isn’t the one. However, if you want to write some C64 games and do some live debugging, this is the one for you. The Eagle files are available, and there’s a video demo below.

Continue reading “Dual Porting a C64 Flash Cart”

A Complete C64 System, Emulated on an STM32

The Commodore 64 is the worlds bestselling computer, and we’re pretty sure most programmers and engineers above a certain age owe at least some of their career to this brown/beige keyboard that’s also a computer. These engineers are all grown up now, and it’s about time for a few remakes. [Jeri Ellisworth] owes her success to her version, there are innumerable pieces of the C64 circuit floating around for various microcontrollers, and now [Mathias] has emulated everything (except the SID, that’s still black magic) in a single ARM microcontroller.

On the project page, [Mathais] goes over the capabilities of his board. It uses the STM32F4, overclocked to 235 MHz. There’s a display controller for a 7″ 800×480 TFT, and 4GB of memory for a library of C64 games. Without the display, the entire project is just a bit bigger than a business card. With the display, it’s effectively a C64 tablet, keyboard not included.

This is a direct emulation of the C64, down to individual opcodes in the 6510 CPU of the original. Everything in the original system is emulated, from the VIC, CIAs and VIAs, serial ports, and even the CPU of the 1541 disk drive. The only thing not emulated is the SID chip. That cherished chip sits on a ZIF socket for the amazement of onlookers.

You can check out some images of the build here, or the video demo below.

Continue reading “A Complete C64 System, Emulated on an STM32″

An FPGA Based 6502 Computer

A diagram of the CHOCHI Board

It’s no secret that people love the 6502 processor. This historic processor powered some of our favorite devices, including the Apple II, the Commodore 64, and the NES. If you want to play with the 6502, but don’t want to bother with obtaining legacy chips, the CHOCHI board is for you.

While many people have built modern homebrew 6502 computers, the CHOCHI will be much easier for those looking to play with the architecture. It’s based on a Xilinx XC3S50 FPGA which comes preconfigured as a 6502 processor.

After powering on the board, you can load a variety of provided binaries onto it. This collection includes a BASIC interpreter and a Forth interpreter. Of course, you’re free to write your own applications in 6502 assembly, or compile C code for the device using the cc65 compiler.

If you get bored with the 6502 core, you can always grab Xilinx’s ISE WebPACK for free and use the board as a generic FPGA development tool. It comes with 128K of SRAM and 31 I/O pins. Not bad for a $30 board.

The Entire Commodore 64 Library In Your Pocket

Monty

[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.

HOPE X: Commodore 64’s Are Back, Baby

hopex_web_topbar_b

Maybe they weren’t really ever gone but even so Commodore enthusiast [ALWYZ] is here at HOPE X spreading re-awareness of the Commodore 64 and that there is still a community of Commodore fans out there who have been up to some pretty cool projects.

One of those projects is a Quantum Link-esque service called Q-Link Reloaded. Quantum Link was an online service available for Commodore 64 and 128 users that offered electronic mail, online chat, file sharing, online news, and instant messaging. It lasted from the mid-80s to the mid-90’s and later evolved into America Online. In 2005, a group of folks reversed-engineered the original server code and the resultant Q-Link Reloaded lets the Commodore folks once again communicate with each other.

Also on display is a Raspberry Pi running a C64 emulator complete with a controller to GPIO adapter. Hackaday has covered this emulator just a few months ago and it is great to see it working in person.

C64 emulator on raspberry pi

 

Make that C64 Keyboard Work as a USB Keyboard

keyboard-to-usb-mapping

Let’s face it, we all have keyboard peculiarities. Don’t try to deny it, everyone who types a lot has an opinion of the keyboard they stroke so frequently. We know [Brian Benchoff] swears by his model M, and we’re guessing he was the one that bumped into [Evan] and convinced him to write about his conversion of a Commodore 64 keyboard for use as a USB device.

This is not [Evan’s] first rodeo. We recently saw him fixing up the worn off letters of his own model M. But this time around there’s some clever microcontroller work at play. Apparently mapping 122 keys using an Atmel AVR 32u4 chip (built in USB connectivity) is quite a task. Luckily someone’s already worked out all kinds of good things and is sharing the love with the Soarer’s Keyboard Controller Firmware. Of course it handles scanning, but also includes debounce, muxing, and the trick to scan more keys than the uC has pins for. We still don’t fully understand that bit of it. But [Evan] did post the config file he’s using so perhaps after we get elbow-deep in the code we’ll have a better understanding.

If you give this a try, we want to hear about it. Anyone have any modern keyboards they’re in love with? Leave a comment below.