It's actually pretty easy to port C64 software - both Assembly and BASIC. It uses the exact same BASIC and same processor family as the Commodore 64, NES, Apple II and many others.
Memory map, graphics and sound are the biggest challenges in porting because those are different. But code to translate between these will get better and better. Lots of ports from other systems already.
Somewhere I saw a project where someone made a new motherboard for a 99/4A so it would fit in a mini-itx case and tweaked the ROM so you could add an external PS/2 keyboard. After buying the board, you bought an original 99/4, yanked the chips out and used them to populate the new board.
I don't know if that really counts as "new hardware" but it was an interesting idea and was supposedly very compatible.