HardSID on Linux HOW-TO rev. 0.04. Blahblah!
00. Table of contents (TOC):
  • 01. What is this all about?
  • 02. Wine: a possible solution ;
  • 03. The complete HOW-TO ;
    • 03.1. Download all required software ;
    • 03.2. Installing wine from source ;
    • 03.3. Configure wine ;
    • 03.4. Installing your HardSID-card ;
    • 03.5. Installing Sidplay 1.60 ;
    • 03.6. Make that SID scream! ;
  • 04. Missing things, problems & bugs <- read! ;
  • 05. Zample MP3z (not done yet);
  • 06. Links ;
  • 07. More Linux-stuff for your HardSID ;
  • 08. Credits;
  • 09. Disclaimer.
The HardSID card.
  
[toc]


   01. ~ What is this all about?

This 'HOW-TO' will try to explain how you can use your HardSID card on Linux using Wine. You might wonder: 1) What is a HardSID? and, 2) What is Wine? As i assume you came here only because to get it working, i'll go trough this shortly:

The HardSID is a soundcard designed by Hard Software. The main chip used on this card is the little, old, but fantastic MOS 6581 (aka SID). This chip was used years ago as the main sound-chip in a few homecomputers produced by Commodore Buisness Machines (CBM) like the the C128, and, of course, the Commdore 64 :) Trough the years (from '82 up to today) this chip has gained quite a lot of fans because of it's unique sound. Thanks to Hard Software, the emulation engine coders (Michael Swendt & co), and the efforts from hundreds of people who ripped/transferred the good 'ol C64 music to PC, we now can enjoy all original music again using a real SID! (SID = short for 'Sound Interface Device').

Wine (short for: 'Wine Is Not an Emulator) is a project focused on getting Win32 binaries to work under Linux (and serveral other popular unices). If you want to learn more about Wine, please visit their homepage at http://www.winehq.com.

As said, this document will try to explain how to get your HardSID to work with Linux. At this moment, i will only focus on the Win32 port of 'sidplay', which has HardSID support. If you're an experienced linux user, this HOW-TO probally isnt something for you. It should, however, be useful for linux newbies. Personally, i've doubted for months and months before i bought a HardSID. The main reason was the lack of Linux applications. When Rainer Sinsch released the first (and still only) version of his 'tinysid' player for linux, i decided to buy the card. Unfortunally, the player isn't perfect, and refuses to play quite some SID's :(. I also don't like the UI very much, but i guess that's something personal.

   02. ~ A possible solution.

Being a SID-addict, but a true Linux-fan aswell, i figured i'd need some other solution to enjoy all those great SID tunes om my system using the HardSID. While i really didn't expected it to work, i decided to download the latest version of Wine (Wine Is Not an Emulator). Wine attemps to emulate most Windows API's, and it does that damn well these days! I also grabbed a copy of the latest Sidplayer for Windows, and installed it on my Windows partition. And yes! After some fiddling with the Wine configuration-file, Sidplayer for windows was able to play SID's on Linux using the HardSID :)

SidPlay 1.60 w/ hardsid support on Mandrake 7.0+KDE(left)/Windowmaker(right)+Wine 03302000
(even the funky Directory based UI works great!)


Dont get me wrong. Using sidplay on Linux isn't 'the perfect solution' (yet!) at this moment. It sure works well, but you should be aware that some things simply don't work, or suck like hell. Please check the chapter 'Missing things, problems & bugs' for more information about this. On the other hand, Sidplay has some nice features not available in any native sid-player for linux (hence, that's just one :). It's up to you to decide if that's good enough for you (it is for me).
  [toc]

   03. ~ The complete HOW-TO

Expert Linux-users probally won't face any difficulties when trying to get this neat card to work using Wine, but newbies in Linuxland might have. If you don't know anything about Wine, i suggest you visit the WineHQ at http://www.winehq.org first. Of course, if you feel adventurous, you could just ignore that piece of advise, and get started right away as instructions for a 'quick 'n dirty' Wine-install are included aswell :)

Here's a overview of the step-by-step guide:
  • 1) Check/download all required software ;
  • 2) Compile and install the latest wine sources ;
  • 3) Configure Wine ;
  • 4) Run the HardSID Configuration Wizard ;
  • 5) Installing Sidplay32 v1.60 ;
  • 6) Start Sidplay, and make that SID scream.


  [toc]

   03.1 ~ Step #1 - Download all required software'

Before you can get your hands dirty, you should make sure you have the next software-components handy on your system. I assume you have both Linux and Windows installed and working (including the X Windowing System (aka Xfree86)). All other packages can be downloaded easily as all links are included.


* I know it sucks, but if you want to use Wine, you should have some Win9x installation somewhere on your system. Wine requires that certain native DLL's are available for it's use! You could either have:
a) A Linux/Windows dual-boot sytem
b) have a copy of the \windows directory somewhere on your hard-drive.
If you have a 100% Linux box, and you prefer to use option 'b', i suggest you create a directory called '/wine/windows' and copy all Windows files into that directory. From now on, i assume you've choosen /wine/windows as your base Windows directory (aka c:\windows). If you decided to use some other directory, you must replace every /wine/windows trougout this document with /my/directory.

Note: it's not important from which box the (recursivly) ripped c:\windows directory came from. We only need the required DLL's for Wine to work. You could for example visit a friend, copy his \windows dir to zip, and copy it back to /wine/windows on your Linux box. No problem.
  [toc]

   03.2 ~ Step #2 - Compile and install the latest wine from source

Now that we've downloaded all required software, let's install Wine! Compiling Wine from source actually is quite easy. Let's assume you've downloaded the source-tarball into your homedirectory. It's a nice place, but not the right one, so let's move it to something descent like /usr/local/src by invoking 'mv Wine-20000326.tar.gz /usr/local/src' (as root!). We are now ready to unpack the archive:

   [root@mymachine /root]# cd /usr/local/src [enter]
   [root@mymachine /src ]# tar zxfv Wine-20000326.tar.gz [enter]

A lot (and i mean a LOT) of files will scroll by as the unpack-proces gets towards finishing. Just leave it going untill it stops :) Please note that you need quite a lot of HD space if you want to compile Wine. Make sure you have around 300MB of free diskspace. When it's finished you can run the configure-script, compile and install Wine by issueing the next command:

   [root@mymachine /src ]# ./configure && make && make install [enter]

This is going to take a while! On my machine (AMD K6-300, 128MB RAM, and pretty 'fast' E-IDE disks) it takes up about 1 / 1 1/2 hour to compile. Go figure how long it wil take on your machine :)

Note: If you don't have that much diskspace, go grab some Wine i386 binary-RPM from
http://www.winehq.com. I never used a Wine binary before (i want the best performance possible), but installing should be as easy as invoking: rpm -Uvh Wine-20000328.rpm

anotherNote: Most distributions come with Wine pre-installed. If this is the case with your distribution, i still recommend you'll get the lastest version. New features and fixes are added nearly every day!
  [toc]

   03.3 ~ Step #3 - Configure Wine (*very* BETA :).

Now that we've correctly installed Wine from source, it's time to configure it the right way for for your system. Configuring Wine is as easy as editing a plain textfile called 'wine.conf'. Usually, you can find this file as /etc/wine.conf or /usr/local/etc/wine.conf on your system. You can open it with any texteditor like vi, pico, mcedit, ect.

   [root@mymachine /src ]# pico /usr/local/etc/wine.conf [enter]

Configuring your systems (hard)drives should be pretty self-explanatory, and i don't think i have anything to add to the examples available in wine.conf. However, if you need another example, here it is:

   1) [Drive C]
   2) Path=/mnt/DOS_hda1/
   3) Type=hd
   4) Label=MS-DOS
   5) Filesystem=Win95


1) The drive that we are configuring at this point

2) The path to your the directory which should be treat as c:\ by Wine. In most cases, you will want to enter the path of your mounted FAT16/32 partition on which Windows9x is installed on. If you decided to copy the Windows directory to some path on your ext2 partition, you should enter that one. If you followed the given examples, you'd enter /wine over there.

3) Treat the given path as HD.

4) Whatever you find suitable as label. Enter anything you find appropiate for the job.

5) The filesystem used. Enter 'Win95' even if you have copied your Windows directory to some point on your ext2 filesystem.

Finally, we should enable direct port access. You won't hear any sound if you don't so read on carefully: Scroll down until you see the [ports] section. Over there, leave the examples commented, and enter the following rules just below them:

   [ports]
   read=0x300,0x301
   write=0x300,0x301

That should be it! With this configuration you should be able to run most (known to work) Windows applications with Wine as root. You might wonder why i enabled acess for both 0x300 and 0x301..well..don't ask :) Although my HardSID is at 0x300, it wouldn't work before i enabled access to both ports. Nothing big.

  
[toc]

   03.4 ~ Step #4 - Run the HardSID Configuration Wizard.

Now that we have installed and configured Wine, it's time to configure the HardSID card using the 'HardSID configuration Wizard'. This utility will detect your SID-chip(s), asks which output you'd prefer, and writes all data into the Windows registry (i just assume it does). The utility works great with Wine, so there is no need to boot Windows in order to use it.

Before we can start the configuration-proces, we need to extract the HardSID Configuration wizard into some directory. I suggest you unpack it into something like /wine/Program Files/hardsid/ using the UNIX 'unzip' utility. Having that done, you should be able to find the following files over there:
  • HardSID.dll ; -- The HardSID API ;
  • HardSIDConfig.exe ; -- The HardSID Configuration wizard ;
  • HardSIDMan.doc ; -- Documentation for the Configuration wizard ;
  • HardSIDSoundConfig.exe ; -- Configure multiple HardSID's for stereo sound :)
As every information you will need is in 'HardSIDMan.doc', i'll describe the installation procedure very quickly. You can use the the following command in a xterm to start 'HardSIDConfig.exe'. :

[root@mymachine /src ]# wine -managed /wine/Program Files/HardSIDConfig.exe

Please make sure you have root access. If you don't, use the 'su' utility first to become root. If everything went right, you should see something like:
1   2   3   4

(The Configuration-wizard runs just fine under Wine)
The first window (1) is a welcome message. Just klik 'next' to continue. The second screen (2) does some initalization. When it's finished, hit 'next' again. The third screen (3) will detect your HardSID card(s) and will let you select your prefered output. The last screen (4) shows that you finished the configuration setup, and will write the configuration-data into the Windows registry after you click 'finish' (at least, that's what i think it does). And that's all there is! Piece of spacecake.
  
[toc]

   03.3 ~ Step #5 - Installing Sidplay v1.60

Installing Sidplay for windows is easy too. You should simply extract the 'spw.zip' file into some directorly like '/wine/Program Files/sidplay'. After that, just execute the 'sidplayw.exe' executable using 'wine -managed sidplayw.exe' in the working directory, and it 'll be up and running. By default, SidPlay uses your standard soundcard for playing SID files, and won't use your HardSID card. Take a look at the next screenshot to see how you can change the output from your soundcard to the HardSID device:



To change the output device; simply click 'settings' followed by 'device'. All options should be self-explanatory. Select 'HardSID', then click 'ok'.
Mission completed.
  [toc]

   03.6 ~ Step #3 - Make that SID scream!.

At this moment, your Linux box should be ready to play SID files.

   04. ~ Missing things, problems & bugs

Although Sidplay32 runs very well on Linux, it really isn't prefect. There are some problems you should be aware of. Here's a list of things that are missing/do not work/bug like hell (feel free to send your bug reports):

The list doesn't end here :)
  [toc]

   05. ~ Zample MP3z

I've put some MP3fied versions of some of my favourite SID's online. Of course, all of these were recorded under Linux.
Composer: Songname: Filesize: Duration: MP3: SID:
Metal Triix 3.22MB/3k 1:20/4:12 Triix.mp3 Triix.sid
Zonix Leading 3.22MB/3k 1:20/4:12 Leading.mp3 Leading.sid
Vincent Voois Why_Not_Flip 3.22MB/3k 1:20/4:12 Why_Not_Flip.mp3 Why_Not_Flip.sid
The Syndrom Inspiration 3.22MB/3k 1:20/4:12 Inspiration.mp3 Inspiration.sid
Deek Mon_Mix 3.22MB/3k 1:20/4:12 Mon_Mix.mp3 Mon_Mix.sid
mITCH & dANE Maine 3.22MB/3k 1:20/4:12 Maine.mp3 Maine.sid
Drax Chuch 3.22MB/3k 1:20/4:12 Church.mp3 Church.sid
MP3's with a '*' after the songname are recorded with the 8580. All others where recorder using a 6581.
  
[toc]

   06. ~ Links

Need more applications and C64 tunes? Check the following links:

  [toc]

   07. ~ More Linux-stuff for your HardSID

Fortunally there is some more software available for Linux which makes use of your HardSID.

  • [download]Vice 1.4 HardSID patch
       - This will make VICE 1.4 use your HardSID as sound device!

  • [download]Vice 1.4 HardSID patch #2
       - Optimized version. Should run a bit faster!

  • [download]TinySID 0.2
       - Currently, the only native SIDplayer for Linux.

Both programs where written by Rainser Sinsch. Thanks for your great work!
Quick installation instructions are included.
  [toc]

   08. ~ Credits

  • Hard Software
       - Builders of the HardSID card and the HardSID configuration wizard ;

  • Michael Swendth en Co
       - 6502 (6510) and 6581/8580 emulation code ;

  • WineHQ
       - Marvellous piece of Windows emulation ;

  • Bas Koster
       - Image retouching ;

  • Dennis de Weerd
       - HTML, the HOW-TO, MP3's and screenshots.

  
[toc]

   09. ~ Disclaimer

Whatever you did after this reading HOW-TO, it's really you who did it. I'am not responsible for any harm this HOW-TO may cause to your hard- and software! However, if you use this HOW-TO with care, it's likely nothing strange will happen.
  
[toc]
If you have any comments. corrections, or if your in desperate need for some help on this subject, please mail me at: linux@169.nu. Last thing: Sorry for my crappy English! :)

The HardSID 4 Linux page was created by
Dennis aka ^Mcf^
e-mail:linux@169.nu


2000 Kibosh

Last update: 19-08-2000 1