Emulating a Commodore 64 on an STM32F429 Discovery Board

This emulator features a 2.4" LCD display, USB OTG jack, USB keyboard support, and offers full 6502 emulation.

CabeAtwell
over 4 years ago Gaming

There are plenty of Commodore 64 emulators that can run on desktops and laptops, and even some that can take advantage of the Raspberry Pi and even a Teensy 3.6. Another version has recently been spotted on an STM32F429 Discovery board created by Dave Van Wagner (Tech with Dave). Although he admits the emulation is about 15% slower than on an NTSC C64, it cost under $30 to run it on a dev board.

As Van Wagner explains, “This is a port of my portable C64/6502 emulator for the terminal console, which was a port of my Commodore/6502 emulator for Windows Console. But this time, I dropped the console part and went for real video (LCD) and USB keyboard support,” meaning it can take advantage of PETSCII character set used in Commodore Business Machines 8-bit home computers.

The STM32F429 Discovery board emulator features a 2.4-inch (320 x 200) LCD display, USB OTG jack, USB keyboard support with keymapping capability, and provides full 6502 emulation. It can also take advantage of the Commodore character set with text video at $0400 (address 1024), text color at $D800 (address 55296), and keyboard scan by writing to $DC00 (reading from $DC01).

Of course, it has its limitations as well, as it can only reach 85% of the processing speed of the C64, offers no other device support, no SID, no CIA1/CIA2 (except for keyboard data ports, but no data direction registers). The keyboard support may need some tweaking before PETSCII can be fully used. It also doesn’t take advantage of the STM32F429’s capabilities, including the 2Mb of onboard Flash (uses 110KB), 256KB of RAM (uses 83KB), 8MB SDRAM, motion sensor, user-programmed LEDs, or the programmable button. That said, it’s still a great project for those interested in all things Commodore 64!

Latest Articles