When I saw the https://github.com/atbrask/RealSIDShield project I thought that the whole idea of using py65 to emulate the 6502 was pretty neat, and very accessible for me since I’m a Python guy. Then I stumbled across Acid64, which also emulates the 6502 in software and has a couple of other neat features. So, the plan is to support both. I’m not sure which one I’ll implement first, but it should be relatively easy to get both working… and since Acid64 is Windows only, when I’m on Mac or Linux I can use a python script to stream music.
I use py65, an implementation of the 6502 MPU in Python, in order to “play” the SID file. Since a SID file is basically a 6502 program, we can feed the binary data to the MPU and then let it run until each frame has been written to memory. Then in Python we read the 6502’s memory in order to see what the register values that should be written to the SID are. The SID chip is mapped from $D400-D41C of the C64’s memory, so we can read the register values that we need from there.
Featured Adafruit Products!
Adafruit HUZZAH ESP8266 Breakout: Add Internet to your next project with an adorable, bite-sized WiFi microcontroller, at a price you like! The ESP8266 processor from Espressif is an 80 MHz microcontroller with a full WiFi front-end (both as client and access point) and TCP/IP stack with DNS support as well. Read more.