welcome!

You have reached the homepage of "Tiny'R'Sid".

This Commodore C64 music emulator was started in 2011 and allows to play almost any orginal C64 music file (PSID & RSID). I hope you'll have fun using it!

credits

At the core of the emulation logic there still remain bits of "TinySid" code by T.Hinrichs and R.Sinsch (e.g. parts of wave form generation and the complete filter implementation). Many thanks also go to Wilfred Bos and to Markus Klein for their patient feedback.

technical information

The goal was to design an emulator fast enough to be run within a Web browser on the widest possible range of devices (accepting the trade-off that there may be traditional desktop emulators which produce more perfect SID emulation results).

All of the emulator logic is written in C. This code is then cross-compiled into a JavaScript or Flash library suitable for the Web.

Compared to TinySid this emulator contains substantial enhancements: complete 6510 instruction set and timing support, handling of CIA timers and VIC (partially), interrupt and memory bank handling, etc (i.e. preconditions for RSID handling). Added support for combined waveforms, accurate SID envelope generator, digi samples (in different flavors: d418, 'pulse width modulation', Mahoney's, etc).

Eventhough this emulator is taking shortcuts (as compared to a correct cycle by cycle emulator) the player seems to cope pretty well with most real world PSID and RSID files (see links below). The implementation approach also makes it rather inexpensive in terms of CPU load: CPU load of the Flash version is about 75% less than that of a precise emulator like sidplay26. The Flash version even runs on my old 2011 HTC HD2 smartphone.

Known limitations: Emulator does not include any Commodore ROM code and music programs written in BASIC therefore are not supported. Dual or tripple SID configurations are not supported.

Originally the player was exclusively available as a Flash version (the one used on this page). But meanwhile there is also a JavaScript/HTML5 version.

usage

This site contains quite a bit of SID related functionality, e.g. browsing of HVSC, playlist management, etc. You are invited to either use it directly or to take it as an example for how to integrate the player into you own Flash or HTML projects. There is also a WordPress plugin.

enough talk.. lets hear more of it

Go to top 100 or explore the complete HVSC. PS: The song that you are currently listening to is labeled somewhat incompletely: It is originally from the Amiga demo "Boulder" by Knackosoft/TRISTAR.


Leave your comments

0

People in this conversation

Comments (27)

Load Previous Comments
  • This is a callback function which is used by the player to notify the HTML code about the currently played sub-song. If you are not interrested in the info just provide an empty function, e.g. "function tinysid_selectedsubsong(key, track) {}" - the same applies to "function tinysid_endplay(key) {}". You can also just ignore the warning because it wont make a difference unless you want to implement HTML based player functionality - like I did in the "Explorer" section.

    Comment last edited on about 3 years ago by Super User
  • Guest (jurito)

    In reply to: Tiny'R'Sid Permalink

    well.. thanks a lot, and still, compliments!

  • Hi, been playing with your Javascript/HTML5 SID player. Great emulation, great speed. Is there a button to advance to the next song in the SID? I can advance to different SIDs but I can't see how to play other songs within the same SID file.

  • Unfortunately no. Eventhough my respective JavaScript/HTML5 player library actually provides the necessary functionality, I did not create a full fledged GUI for it yet. The existing page is really just a proof of concept (and as long as the HTML5 WebAudio feature is still experimantal I don't want to spend too much time re-implementing GUI functionality that exists in my Flash version).

  • Hi! Lurve the site, would like to donate, but don't trust "Donate" buttons, and the crazy games you're playing on the contact page have left me unable to decipher your email address! What email shall I use for PayPal?

  • Hi Neil, I'm glad you like my work and thanks for your support. The above "donate" button actually takes you to the standard Paypal page. The authenticity of the respective ***** page can be easily verified. (Unfortunately the email that you supplied does not seem to work and therefore I was not able to reach you..)

  • Guest (gaiga)

    Permalink

    How do you loop a tune in Chron-O-Loo ? is there an option for it

  • My generic WebAudio player allows to pass in a function that is called when a song reaches its end. If you want to play the same song again, then that's what you'd put into that function. See doOnTrackEnd() on my Chron-O-Loo page..

  • Guest (gaiga)

    In reply to: Tiny'R'Sid Permalink

    Thanks but most tunes repeat (loop) at different points other than the START point so doing ontrackend will just replay a tune from the start. I noticed deliplayer has a REPEAT option but uade does not?

  • Guest (Gaiga)

    In reply to: gaiga Permalink

    Never mind it seems it was a problem with the TFMX replayer bin. It had extra code when the replayer detected an "end of tune repeat @ offset.xxx.." (cmp.w #$effe,d0...) I NOP'ed out the extra BSR that isn't in the original code and now it works.