SID Ripper / Player BBC B, Electron, M128

Got a programming project in mind? Tell everyone about it!
Post Reply
dominicbeesley
Posts: 709
Joined: Tue Apr 30, 2013 11:16 am
Contact:

SID Ripper / Player BBC B, Electron, M128

Post by dominicbeesley » Tue Jan 08, 2019 1:01 pm

Over in the 8-bit hardware forum I got tempted into writing a SID playroutine that would work on an Electron - I've got an AP6 and wanted something to try out!

I've ended up making a generic build system that can be used to create SSDs with a simple menu system for playing tunes.

Here's the (rather zany) build system: https://github.com/dominicbeesley/SIDPlayer

This includes a hacked version of Linus Akesson's sidreloc which is used to relocate the SIDS to page 1A, ripsid which takes the SID binary out of the PSID wrapper and generates some metadata variables and adds in a jump table that replaces ST* SID instructions with a JSR that sets both the original SID register and a copy that is used in the scroller/player screens for the display.

The files are bundled up with a simple metadata file and the assembler player decodes the menu. If the main player routine (which is Mode 7 based) is run on an Electron it chains on to the SIDPELK player which starts in Mode 6 for the menu then does some garish scrolly graphics in mode 5 to keep you amused while the song plays.

Escape to return to the menu, < and > can be used to select sub songs where the are a available a song indicator will show in blue near the bottom of the screen with i.e. "< 2 >" where there are more than 2 tune or just "1" where there is just one!

The Mode 7 player was done a few years ago, the Mode 5 player was thrown together this last week

D

Edit: The pre-built SSDs are available in the zip file here: https://github.com/dominicbeesley/SIDPl ... s/tag/v0.1
Last edited by dominicbeesley on Tue Jan 08, 2019 1:12 pm, edited 1 time in total.

Post Reply