       _             __
  ____(_)__ _______ / /____ ____
 / __/ (_-</ __(_-</ __/ -_) __/
/_/ /_/___/\__/___/\__/\__/_/   
                              v1.16

About
=====

Riscster is a RISC OS compatible client for Napster, the online mp3 music
community. The Napster community allows users to share mp3's directly, with
the Napster server providing search and chat facilities. 

It was based on gnap, a GPLed Linux client, although there isn't much gnap
code left since gnap 'disagreed' with the co-operative multitasking of 
RISC OS. It was started and mostly done over the Easter holidays before
A-Levels, and probably shouldn't have been.

Riscster is available from <http://riscster.iconbar.com>.

Support
=======

Riscster currently supports a subset of the Napster protocol which provides
the basic functionality of logging in and downloading from other users.

Bugs
====

Yes.  Riscster is an unfinished piece of software!

If you discover any then please either

 - Download the source and fix what you can 
 - Tell me about them

Various people have been very kind in giving up time to beta test this
software, but unfortunately it is unlikely that every possible situation has
been tested, with the Internet being the unpredictable and complex monster
that it is.

Requirements
============

RISC OS 3.1 or better. RISC OS 4 is recommended for use of long file names,
but raFS is just as effective.

You will require a StrongARM CPU for playing MP3 files in real time.

An Acorn compatible TCP/IP stack:

 - Acorn's Internet module
 - FreeNet by Tom Hughes
 
 Almost all commercial Internet products (DialUp, Voyager, the ANT Suite)
 qualify barring Termite. If you're still using Termite Internet, consider 
 replacing it!
 
Basic Instructions
==================

Install by dragging both !Riscster and !MP3's to a convenient place. 

!MP3's must be seen and in a read/write partition. 

I'd recommend putting it somewhere where long filenames are supported,
like an E+ formatted partition, or an raFS disc.

Double click !Riscster and click menu over the iconbar icon. Select console
to bring up the console if you wish to see exactly what Riscster is doing,
then select Connect and fill in the relevant details to create a new account.

Click 'Connect' and then wait until the message of the day appears in the
console and the search and disconnect options are ungreyed on the menu. 

If the server is busy the login process may take a while. If everything seems
to lock up then you can try disconnecting and reconnecting.

To search for an MP3, enter the relevant details into the search window, and
click the 'Search' button. Set the maximum results to about 10, which should
be plenty.

Choose an MP3 from the list which appears below and click Menu over the most
suitable, then click download in this window.

Hopefully after a short while, the progress bar should begin to climb. 
You can download up to 20 files concurrently. 

You can also download from users who are behind firewalls, something which
most of the UNIX clients can't do and the Mac client didn't do until
recently... see, who said RISC OS software is behind? ;-)

A StrongHelp manual is now available from the website which supersedes these instructions.

Playing
=======

To take full advantage of the MP3 format, you need to be able to
play in real time so as to keep your files compressed.

If you don't have an ARM7M (not fitted to any RISC OS machine at present) or
a StrongARM, then you will need to convert the MP3 files you download to PCM format to play them with something like PlaySound.

'dmpa' allows both real-time decoding for StrongARM users and decoding to
file. 'AudioMPEG', written by Peter Teichmann, is of better quality than dmpa
and does not run in a TaskWindow, making it the better choice if you have a
StrongARM CPU.

Undoubtedly the best choice is AMPlayer, by Thomas Olsson, for StrongARM or
ARM7M-based computers.

It may also be possible to use a fast (100MHz+) PC card plus Acorn's SB16
drivers for Windows to play your MP3 files in real time.  MPXPLAY, a DOS
based player can be made to work, although the quality isn't really bearable.
MPXPLAY on a 5x86 100 card can decompress an MP3 to disc significantly faster
than dmpa on an ARM710 however.

Something similar to FPEPC or RC5 for the PC card could also be developed,
to decode the MPEG frames to PCM using the PC card's processor running a
small microkernel (is there such thing as a big one?  Ah yes... Windows NT), 
and play those through the sound system, but those people
that have fast PC cards often have StrongARM processors too.

Compiling
=========

At the time of writing I use: 

Archimedes GNU make 1.02 
GCC 2.96 (prerelease 2) 
!Clib 1.03 
!Netlib 
!OSLib 6.2

Porting
=======

proto.c should be fairly portable, if you replace the socket SWI calls with
the relevant calls for your operating system. 

Lots of Napster client sources are available under the GPL, but Riscster may
have a few advantages for people porting to non UNIX platforms.  That said... if
you want to make your own Napster client, there are better starting points than
Riscster ;-).

Current TODO list
=================

Support 206 errors.
Support whois (603).
Resumable downloads.
Implement file sharing.
Better error handling.
Resolve server rather than assuming IP.
Better documentation.
Fall over nicely when no TCP/IP stack is running.

Not supported (yet)
=============

Sharing (i.e. uploading).  You can only download ATM.

Credits
=======

Coding, templates, general:
Rob Dimond (Drobe Software)

Fixes, features, updates to this file (for version 1.16):
James MacDonald

Testing:
Chris Egan 

Thanks:
Friendly people on <comp.sys.acorn.programmer>, notably Mr. David Ruck.

The numerous unofficial documenters of the Napster protocol: 
DrScholl 
Ben Byer
JT
Evan Martin
Colten Edwards

Ryan Dahl (author of gnap).
Colin Plumb (author of MD5 code used).
Josh Guilfoyle (author of gnapster). 
Nick Burrett (porter of GCC to RISC OS).

People who have sent me bug reports and fixes:
Chris Egan
Michael Barnes
PaulBell
Chris Morison
David Bryan

Thanks are also due to people who link to the Riscster website.

And many others...

Disclaimer
==========
Napster Inc's official message is, at the time of release:

PLEASE NOTE: Napster, Inc. makes no representations or warranties regarding
MP3 files possessed by Napster users. Thousands of MP3 files have been
authorised for distribution over the Internet by copyright owners; however,
Napster users should understand that MP3 files may have been created without
copyright owner authorisation. Neither the MP3 file format not the Napster
software indicates whether a particular MP3 file has been authorised for
copying or distribution. Copying or distributing unauthorised MP3 files may
violate United States and/or foreign copyright laws. Compliance with
copyright law remains your responsibility.

I similarly disclaim responsibility for whatever use this software is put to.

It is YOUR responsibility to ensure that you have a legal right to anything
that you download through Riscster.  
 
Licence
=======

Napster client for RISC OS Copyright (C) 2000 Robert Dimond

Portions are based on gnap by Ryan Dahl and public domain MD5 code is
included written by Colin Plumb.

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.

You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place - Suite 330, Boston, MA 02111-1307, USA

Robert Dimond, ISE Course, Imperial College, Department of Electrical &
Electronic Engineering, Exhibition Road, London. SW7 2BT.

robert.dimond@ic.ac.uk
<http://www.doc.ic.ac.uk/~rgd00e>


