Hackster is hosting Hackster Holidays, Ep. 6: Livestream & Giveaway Drawing. Watch previous episodes or stream live on Monday!Stream Hackster Holidays, Ep. 6 on Monday!

The Nintendo Entertainment System Gets Commodore 64 Compatibility in the NES 64 Port Project

Inspired by an earlier effort to port the Commodore 64 ROMs to the Atari family, this project brings them to the eight-bit NES.

Gareth Halfacree
3 years ago β€’ Retro Tech

Pseudonymous retrocomputing enthusiast "MrCalcwatch" has blended two vintage gaming fandoms by porting ROMs from the Commodore 64 to the Nintendo Entertainment System (NES) β€” creating a "(mostly) working" hybrid.

"A few years ago, I got the crazy idea to try porting the Commodore 64 KERNAL and BASIC ROMs to the NES, since their CPUs are mostly the same," MrCalcwatch explains. "But I gave up when things got complicated with the PPU [Picture Processing Unit]. Then a couple weeks ago, I saw that someone ported it to the Atari 1200XL, so I decided I'd give it another shot. This time, I was able to make a (mostly) working system."

This is no Commodore 64, but the NES 64 β€” a port of the C64 KERNAL and BASIC ROM to the NES. (πŸ“Ή: MrCalcwatch)

MrCalcwatch's burst of inspiration came courtesy of earlier work to port the Commodore 64's KERNAL β€” a historical misspelling of "kernel" that stuck β€” and BASIC ROM to rival Atari's contemporaneous hardware. Nick Bensema's efforts at porting the pair to the Atari 800XL were successful β€” and now so is MrCalcwatch's NES port.

"I can't test it on hardware," MrCalcwatch admits, "but it seems fine in emulation. The KERNAL and BASIC ROM are 8kB each, so I put them in the last two banks ($C000-$FFFF), and filled the other banks with PRG RAM ($6000-$BFFF). The first byte of OS RAM is reserved, and the rest is available to BASIC. Hence the '24,575 bytes free' in the splash screen."

The port is compatible with BASIC and machine-code Commodore 64 software. (πŸ“Ή: MrCalcwatch)

To prove the port, MrCalcwatch has released several videos: The first shows the system booting up and running BASIC; the second runs a simple maze generator in BASIC; the third calls a machine-language subroutine; and the final demonstration writes to the NES' audio processor to play a simple musical scale.

More details on the project are available on the nesdev.com forum.

Main article image courtesyof Evan Amos.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles