C64 Sid emulation


Stainy

Advanced Member
Joined
Feb 28, 2005
Messages
1,155
Age
53
Location
Born UK Living USA
Couldn`t see anything on the board..


Is there any C64 Sid tune players for the Pandora?


Not got mine yet! but I wanted to know if there was anything out there?
 
yep interested in this too. Alternatively, do any of the existing music players have a sid plugin?


I mostly converted my favourite c64 tunes into mp3 format - so not such a big issue for me
 
yep interested in this too. Alternatively, do any of the existing music players have a sid plugin?


I mostly converted my favourite c64 tunes into mp3 format - so not such a big issue for me
Yes, but it would be nice to store an 8k file of the same tune as apposed to a 3mb file dont you reckon?
 
Don't quote me on this, but I *think* that Audacious may support SID tunes...
 
^ Ah, that's a shame. :(


I haven't tried it, but I wonder if Oldplay, via GINGE, would work? Has anyone else given it a go?
 
^ Ah, that's a shame. :(


I haven't tried it, but I wonder if Oldplay, via GINGE, would work? Has anyone else given it a go?

Would anyone be willing to try some sids in Deadbeef? see if they play ok, also, if it plays subtunes ok?


Thanks in advance! :)
 
I tried to port it, but I got stuck.



Code:
[silent@TERMINAL-BMRF-9 libsidplay]$ make

Making all in unix

make[1]: Entering directory `/home/silent/pandora-dev/sdk_utils/libsidplay/unix'

make  all-am

make[2]: Entering directory `/home/silent/pandora-dev/sdk_utils/libsidplay/unix'

make[2]: Leaving directory `/home/silent/pandora-dev/sdk_utils/libsidplay/unix'

make[1]: Leaving directory `/home/silent/pandora-dev/sdk_utils/libsidplay/unix'

Making all in include

make[1]: Entering directory `/home/silent/pandora-dev/sdk_utils/libsidplay/include'

Making all in sidplay

make[2]: Entering directory `/home/silent/pandora-dev/sdk_utils/libsidplay/include/sidplay'

make[2]: Nothing to be done for `all'.

make[2]: Leaving directory `/home/silent/pandora-dev/sdk_utils/libsidplay/include/sidplay'

make[2]: Entering directory `/home/silent/pandora-dev/sdk_utils/libsidplay/include'

make[2]: Nothing to be done for `all-am'.

make[2]: Leaving directory `/home/silent/pandora-dev/sdk_utils/libsidplay/include'

make[1]: Leaving directory `/home/silent/pandora-dev/sdk_utils/libsidplay/include'

Making all in src

make[1]: Entering directory `/home/silent/pandora-dev/sdk_utils/libsidplay/src'

Making all in c64

make[2]: Entering directory `/home/silent/pandora-dev/sdk_utils/libsidplay/src/c64'

make[2]: Nothing to be done for `all'.

make[2]: Leaving directory `/home/silent/pandora-dev/sdk_utils/libsidplay/src/c64'

Making all in mos6510

make[2]: Entering directory `/home/silent/pandora-dev/sdk_utils/libsidplay/src/mos6510'

if /bin/sh ../../libtool --mode=compile /home/silent/pandora-dev/arm-2010.09/bin/arm-none-linux-gnueabi-g++ -DHAVE_CONFIG_H	-DPANDORA -Os -pipe -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize -ffast-math -fsingle-precision-constant  -I/home/silent/pandora-dev/arm-2010.09/usr/include -DHAVE_UNIX -I../../include -I../../include/sidplay -MT mos6510.lo -MD -MP -MF ".deps/mos6510.Tpo" -c -o mos6510.lo mos6510.cpp; \

then mv -f ".deps/mos6510.Tpo" ".deps/mos6510.Plo"; else rm -f ".deps/mos6510.Tpo"; exit 1; fi

mkdir .libs

/home/silent/pandora-dev/arm-2010.09/bin/arm-none-linux-gnueabi-g++ -DHAVE_CONFIG_H -DPANDORA -Os -pipe -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize -ffast-math -fsingle-precision-constant -I/home/silent/pandora-dev/arm-2010.09/usr/include -DHAVE_UNIX -I../../include -I../../include/sidplay -MT mos6510.lo -MD -MP -MF .deps/mos6510.Tpo -c mos6510.cpp  -fPIC -DPIC -o .libs/mos6510.o

In file included from cycle_based/sid6510c.h:87:0,

             	from mos6510.h:69,

             	from mos6510.cpp:70:

cycle_based/mos6510c.h:115:1: error: expected class-name before '{' token

cycle_based/mos6510c.h:120:5: error: 'event_clock_t' does not name a type

cycle_based/mos6510c.h:121:5: error: 'event_clock_t' does not name a type

cycle_based/mos6510c.h:125:5: error: 'EventContext' does not name a type

cycle_based/mos6510c.h:126:5: error: 'event_phase_t' does not name a type

cycle_based/mos6510c.h:127:5: error: 'event_phase_t' does not name a type

cycle_based/mos6510c.h:180:9: error: 'event_clock_t' does not name a type

cycle_based/mos6510c.h:181:9: error: 'event_clock_t' does not name a type

cycle_based/mos6510c.h:324:27: error: expected ')' before '*' token

cycle_based/mos6510c.h: In member function 'void MOS6510::clock()':

cycle_based/mos6510c.h:353:9: error: 'm_stealingClk' was not declared in this scope

cycle_based/mos6510c.h:353:25: error: 'eventContext' was not declared in this scope

cycle_based/mos6510c.h:353:47: error: 'm_phase' was not declared in this scope

cycle_based/mos6510c.h:356:5: error: 'eventContext' was not declared in this scope

cycle_based/mos6510c.h: In member function 'void MOS6510::event()':

cycle_based/mos6510c.h:361:5: error: 'eventContext' was not declared in this scope

cycle_based/mos6510c.h:361:37: error: 'm_phase' was not declared in this scope

In file included from mos6510.cpp:74:0:

cycle_based/mos6510c.i: In member function 'void MOS6510::aecSignal(bool)':

cycle_based/mos6510c.i:241:31: error: 'eventContext' was not declared in this scope

cycle_based/mos6510c.i:241:53: error: 'm_extPhase' was not declared in this scope

cycle_based/mos6510c.i:248:44: error: 'm_stealingClk' was not declared in this scope

cycle_based/mos6510c.i:249:24: error: 'struct MOS6510::<anonymous>' has no member named 'nmiClk'

cycle_based/mos6510c.i:250:24: error: 'struct MOS6510::<anonymous>' has no member named 'irqClk'

cycle_based/mos6510c.i:253:28: error: 'struct MOS6510::<anonymous>' has no member named 'nmiClk'

cycle_based/mos6510c.i:254:28: error: 'struct MOS6510::<anonymous>' has no member named 'nmiClk'

cycle_based/mos6510c.i:255:28: error: 'struct MOS6510::<anonymous>' has no member named 'irqClk'

cycle_based/mos6510c.i:256:28: error: 'struct MOS6510::<anonymous>' has no member named 'irqClk'

cycle_based/mos6510c.i:260:62: error: 'm_phase' was not declared in this scope

cycle_based/mos6510c.i: In member function 'virtual void MOS6510::triggerNMI()':

cycle_based/mos6510c.i:344:16: error: 'struct MOS6510::<anonymous>' has no member named 'nmiClk'

cycle_based/mos6510c.i:344:27: error: 'eventContext' was not declared in this scope

cycle_based/mos6510c.i:344:49: error: 'm_extPhase' was not declared in this scope

cycle_based/mos6510c.i: In member function 'virtual void MOS6510::triggerIRQ()':

cycle_based/mos6510c.i:353:20: error: 'struct MOS6510::<anonymous>' has no member named 'irqClk'

cycle_based/mos6510c.i:353:29: error: 'eventContext' was not declared in this scope

cycle_based/mos6510c.i:353:51: error: 'm_extPhase' was not declared in this scope

cycle_based/mos6510c.i: In member function 'bool MOS6510::interruptPending()':

cycle_based/mos6510c.i:398:32: error: 'eventContext' was not declared in this scope

cycle_based/mos6510c.i:398:65: error: 'struct MOS6510::<anonymous>' has no member named 'nmiClk'

cycle_based/mos6510c.i:398:73: error: 'm_extPhase' was not declared in this scope

cycle_based/mos6510c.i:413:32: error: 'eventContext' was not declared in this scope

cycle_based/mos6510c.i:413:65: error: 'struct MOS6510::<anonymous>' has no member named 'irqClk'

cycle_based/mos6510c.i:413:73: error: 'm_extPhase' was not declared in this scope

cycle_based/mos6510c.i: In member function 'void MOS6510::brk_instr()':

cycle_based/mos6510c.i:800:32: error: 'eventContext' was not declared in this scope

cycle_based/mos6510c.i:800:65: error: 'struct MOS6510::<anonymous>' has no member named 'nmiClk'

cycle_based/mos6510c.i:800:73: error: 'm_extPhase' was not declared in this scope

cycle_based/mos6510c.i: In member function 'void MOS6510::branch2_instr()':

cycle_based/mos6510c.i:1167:16: error: 'struct MOS6510::<anonymous>' has no member named 'irqClk'

cycle_based/mos6510c.i:1168:16: error: 'struct MOS6510::<anonymous>' has no member named 'nmiClk'

cycle_based/mos6510c.i: At global scope:

cycle_based/mos6510c.i:1630:1: error: prototype for 'MOS6510::MOS6510(EventContext*)' does not match any in class 'MOS6510'

cycle_based/mos6510c.h:115:1: error: candidates are: MOS6510::MOS6510(const MOS6510&)

cycle_based/mos6510c.h:115:1: error:             	MOS6510::MOS6510()

cycle_based/mos6510c.i: In member function 'void MOS6510::Initialise()':

cycle_based/mos6510c.i:2468:5: error: 'eventContext' was not declared in this scope

cycle_based/mos6510c.i:2468:37: error: 'm_phase' was not declared in this scope

In file included from mos6510.cpp:78:0:

cycle_based/sid6510c.i: In constructor 'SID6510::SID6510(EventContext*)':

cycle_based/sid6510c.i:152:19: error: no matching function for call to 'MOS6510::MOS6510(EventContext*&)'

cycle_based/mos6510c.h:115:1: note: candidates are: MOS6510::MOS6510()

cycle_based/mos6510c.h:115:1: note:             	MOS6510::MOS6510(const MOS6510&)

cycle_based/sid6510c.i: In member function 'void SID6510::sleep()':

cycle_based/sid6510c.i:249:18: error: 'm_stealingClk' was not declared in this scope

cycle_based/sid6510c.i:249:34: error: 'eventContext' was not declared in this scope

cycle_based/sid6510c.i:249:56: error: 'm_phase' was not declared in this scope

cycle_based/sid6510c.i: In member function 'void SID6510::sid_delay()':

cycle_based/sid6510c.i:383:29: error: 'eventContext' was not declared in this scope

cycle_based/sid6510c.i:383:51: error: 'm_stealingClk' was not declared in this scope

cycle_based/sid6510c.i:383:66: error: 'm_phase' was not declared in this scope

cycle_based/sid6510c.i: In member function 'virtual void SID6510::triggerRST()':

cycle_based/sid6510c.i:423:9: error: 'eventContext' was not declared in this scope

cycle_based/sid6510c.i:423:62: error: 'm_phase' was not declared in this scope

cycle_based/sid6510c.i: In member function 'virtual void SID6510::triggerNMI()':

cycle_based/sid6510c.i:435:13: error: 'eventContext' was not declared in this scope

cycle_based/sid6510c.i:435:66: error: 'm_phase' was not declared in this scope

cycle_based/sid6510c.i: In member function 'virtual void SID6510::triggerIRQ()':

cycle_based/sid6510c.i:460:17: error: 'eventContext' was not declared in this scope

cycle_based/sid6510c.i:460:70: error: 'm_phase' was not declared in this scope

mos6510.cpp: In member function 'virtual void MOS6510::DumpState()':

mos6510.cpp:90:13: error: 'm_dbgClk' was not declared in this scope

make[2]: *** [mos6510.lo] Error 1

make[2]: Leaving directory `/home/silent/pandora-dev/sdk_utils/libsidplay/src/mos6510'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/home/silent/pandora-dev/sdk_utils/libsidplay/src'

make: *** [all-recursive] Error 1
 
Well... sids work ok in Deadbeef.. with some weird bahviour!


firstly it loads all the tunes in ( if you point it to a folder ) including subtunes.. be good if you could specify with or without subtunes..


If I load it up again.. it still has all the tunes in the main window ( ie if it`s created a playlist ) but you press play.. and nothing happens. you can see at the top of the window it scanning all the tunes again. Everytime you press play this happens.
 
Hm, now this cheated me a little. =) First I thought "Still no one managed to compile sidplay2?", then i tried it myself after struggling for some time and was happy to manage it and then I find out that Silent-Hunter managed to compile it the very same day he wrote the above message of getting stuck. :p


See: http://boards.openpa...lay-210-or-211/


So sidplay2 does work, but needs packaging. For now here's my version of how i got it to run:


First of all i remembered that libsidplay is even in the angstrom-repo, but when i tried to installed it I noticed that also quite a lot of gcc-stuff was about to be installed. So i canceled installation. I'm not sure if this would be a problem, but I didn't want to risk anything.


Next I downloaded the sourcecode of libsidplay and tried to compile that without success. I struggled around a bit, got a break and then had the (good) idea of checking the gentoo-ebuild of libsidplay (my mainpc uses GentooLinux). I noticed that a couple of patches are being applied, so I used the same patches for the sourcecode on my Pandora. Now compilation with the "C/C++ development tools"-pnd worked find. I installed the libraries.


After that sidplay2 itself had to be compiled. Due to my little knowledge it took me a long time on finding out how to properly configure it. Some paths had to be changed:



Code:
./configure --with-sidplay2=/usr/local --with-sidutils=/usr/local --with-sidbuilders=/usr/local/lib/sidplay/builders


Once i got that, configuration successfully ended and i tried "make", which again didn't work till the end. So i looked for patched in the corresponding gentoo-ebuild as well and applied these. After that "make" worked fine.


Quick try: Running "sidplay2" in a terminal didn't work due to some missing library. But running "LD_LIBRARY_PATH=/usr/local/lib sidplay2" worked. So the installation should be done a little more nicely once again, but in general it works. Also sidplay2 can paired with "cplay" (a python-player) to get a ncurses-front-end. I did this via a script on my Gentoo-system.


Before all this I also tried to compile and run sidplayfp, which offers a more advanced sid-sound-experience (although some sid-files sound worse). Compiling sidplayfp worked fine as far as i can tell from a quick try, but running it didn't work for some reason. It simply got stuck. But it takes much more cpu-usage than sidplay2 anyway and thus might not run nicely on the Pandora anyway.


So much for a little update of mine on the situation.
 
Last edited by a moderator:
Before all this I also tried to compile and run sidplayfp, which offers a more advanced sid-sound-experience (although some sid-files sound worse). Compiling sidplayfp worked fine as far as i can tell from a quick try, but running it didn't work for some reason. It simply got stuck. But it takes much more cpu-usage than sidplay2 anyway and thus might not run nicely on the Pandora anyway.


So much for a little update of mine on the situation.

I included sidplayfp in cli love package, but it seems that it is so CPU hungry that it is too much for 500Mhz OP Standard Clocking.. Seems that SidPlayFB was "optimized" for above 1Ghz machines..
 
Before all this I also tried to compile and run sidplayfp, which offers a more advanced sid-sound-experience (although some sid-files sound worse). Compiling sidplayfp worked fine as far as i can tell from a quick try, but running it didn't work for some reason. It simply got stuck. But it takes much more cpu-usage than sidplay2 anyway and thus might not run nicely on the Pandora anyway. So much for a little update of mine on the situation.
I included sidplayfp in cli love package, but it seems that it is so CPU hungry that it is too much for 500Mhz OP Standard Clocking.. Seems that SidPlayFB was "optimized" for above 1Ghz machines..

So CB :) would you be able to add sidplay2 ? instead of sidplayfb ? :)
 
Back
Top