Q1. What is a FAQ?
A1. A rare small animal of the species 'Textius Electronicus'. It is known for
    its helpful attitude and vicious misspellings.

Q2. Okay, fine, what is _this_ FAQ?
A2. This FAQ is for questions (that we have answers too) that have been asked
    repeatedly either in emails or on IRC.

Q3. What is Rockbox?  What is it's purpose?
A3. The purpose of this project is to write an Open Source replacement 
    firmware for the Archos Jukebox 6000, Studio 20 and Recorder MP3 players.

Q4. I want to write code for my Archos, how do I proceed?
A4. First make sure to read the file CONTRIBUTING in the docs directory
    on Sourceforge.  See http://rockbox.haxx.se/docs/contributing.html
    if you do not want to have to wade through the CVS directories.

Q5: What is CVS?
A5: Concurrent Versions System (http://www.cvshome.org).  We have a small
    help page about how to use this to get, update and commit files on the web
    at http://rockbox.haxx.se/cvs.html

Q6. What exactly is the CONTRIBUTING file? 
A6. Just like the name implies, it lists conventions that the project follows, 
    and in turn asks you to follow, for the formating of source code in
    general.

Q7. Okay, so I read CONTRIBUTING and although I don't agree with all your 
    conventions, I am going to be sensible and follow them anyway.  Now what?
A7. Start by reading up on the information about the jukeboxes on our web page.
    Then go into CVS and look at the code we've written. Then take what you
    need and start writing.

Q8. Okay, so how do I submit a patch?
A8. Run: "diff -ub oldfile newfile > patchfile" against the file(s) you have 
    changed.  Then mail the output to the rockbox mailing list and 
    we will take it under consideration. Please remember that all 
    submissions are not automatically accepted. This is nothing personal.

    Preferrably, run the diff against the current cvs code:
        cvs diff -ub > patchfile

Q9. I want to join the development team, but don't have a SourceForge account,
    what should I do?
A9. You don't need a SourceForge account to help developing Rockbox. Just
    submit patches to the mailing list as per the instructions above.

    If your patches are consistently well-written and thus accepted, you may
    ultimately be offered CVS commit access. If that should happen, you will
    need to get a Sourceforge account:
    http://sourceforge.net/account/register.php

Q10. Do you have a mailing list?
A10. Sure do!  As a matter of fact, we have several of them for specific 
     things.  Please check out: http://rockbox.haxx.se/mail/

Q11. Great you have a mailing list!  Is there anyway for me to catch up on
     past posts?
A11. Check out the archives at: http://rockbox.haxx.se/mail/

Q12. How can I meet the developers working on the project?
A12. One way is by visiting us on IRC.  Head on over to the server
     irc.openprojects.net, and then join "#rockbox".  There is usually at 
     least one person there.  If you don't see any activity, feel free to post 
     questions anyway, serveral of us log the channel and will get you answers
     when we unidle.

Q13: Wow, you guys talk on IRC alot?  I wish I had been around for those 
     conversations to see what happened.
A13: We are glad you mentioned that!  http://rockbox.haxx.se/irc happens
     to have a list of various logs we have recorded of events in the channel.
     Feel free to read up, and ask questions on what you find.

Q14. What is this "SourceForge" you keep mentioning?
A14. http://www.sourceforge.net

Q15. Can the changes or the software that Rockbox suggests or offers 
     possibly damage my Archos Player?
A15. All firmware mods that are presented are still highly experimental. 
     Try them at your own risk. We offer no guarantee that this software, or 
     the hardware modifications we show, will not damage your player or void 
     your warranty.  That said, we have not been able to damage any of our 
     units by modifying only the firmware. You can accidentally password 
     protect your harddisk, but there are ways around that. (See below.)

Q16. I want to see what the inside of my player looks like, but I would really
     like to avoid voiding my warranty.  Is there anything you can suggest?
A16. We have a collection of photos of both the player and recorder. Look at
     http://rockbox.haxx.se/internals/

Q17. What exactly are you trying to achieve with this line of development?
     (A.K.A. whats your purpose for being here?)
A17. Firstly, we wouldn't start something like this if we didn't simply enjoy
     it profusely. This is great fun!
     Secondly, we feel the firmware is lacking some features and contain a
     number of annoying bugs that we want to fix.
     Some ideas would include (in no particular order):
              - No pause between songs 
              - Mid-song resume 
              - Mid-playlist resume 
              - No-scan playlists 
              - Unlimited playlist size 
              - Autobuild playlists (ie: "all songs in this directory tree") 
              - Auto-continue play in the next directory 
              - Current folder and all sub-folder random play 
              - Full disk random play 
              - REAL random
              - Multi song queue
       	      - Faster scroll speed 
              - More cool features with the wire remote control (including 
                controlling your Archos from your car radio (req hw mod))
              - Support playing of other files types (ie: Ogg Vorbis support)
              - Support for megabass switch (req hw mod) 
              - Player control via USB
              - Memory expansion?
     Note: Just because something is on this list, does not mean that it is
     technically feasible. (But hey we can dream)  And something not
     being on the list does not mean it isn't a neat idea.  Bring it to 
     the list.

Q18. You mention supporting Ogg Vorbis and other file types on your list of
     ideas. What is the status on that?
A18. Pessimist's Answer: At the current time we belive this is not very likely 
     The Micronas chip (MAS3507) decoder in the archos does not natively 
     support decoding and there is very little program space in the player to 
     implement it ourselves.  The alternative would be to write a software 
     decoder as part of the RockBox firmware.  However, as much as we love 
     our players, the computing power of the Archos (SH1 microcontroller) is 
     not fully sufficent for this need.

     Optimist's Answer: We can play any format if only we can write code for 
     the DSP to decode it.  The MAS 3507 (and 3587) are generic DSPs that 
     simply have MP3 codecs in ROM. We can download new codecs in them and 
     we will be the first to celebrate if we can get OGG or FLAC or anything 
     into these DSPs. Unfortunately, we have no docs or tools for writing new 
     MAS DSP code and Intermetall is very secretive about it.  If anyone can 
     help, please get in touch!

     The recent release of Tremor (integer Ogg decoder) indicates it uses
     around 100 KB for lookup tables. That's not unreasonable for a decoder,
     but we only have 4 KB for both code *and* data. So the grim reality is
     that Ogg will never be supported by the Archos Players and Recorders.

Q19. What about supporting playing of WMA files?
A19. Dear Mr. Gates, you have two options.  Re-read question #18, or go buy 
     your own project.

Q20: But you don't understand, I'm not talking about decoding here, 
     since the data we want may already be in the decoded format (PCM). 
A20: Okay, last time.  No.  We have no problems whatsoever reading different 
     file formats, call it PCM, WAV, GRI, PQR or whatever.  The problem is 
     that the CODEC only accepts MP3 data and nothing else. We could write a 
     new CODEC if we knew how to do it, but there is no documentation on the 
     DSP. Please note that we have no access to the DAC, so we can't send the 
     data directly to the DAC.

Q21. What is the most recent version of Rockbox?
A21. We recently released version 1.3, so head on over to 
     http://rockbox.haxx.se/download/ and pull it down.
     Make sure to read the release notes.
     (http://rockbox.haxx.se/download/rockbox-1.3-notes.txt).  

Q22. What do you plan to add to coming versions?
A22. We have a rough idea of which features we plan/expect/hope to be included
     in which versions.  Once again, remember that none of this is written in 
     stone (noticing a pattern yet?) 

     Version 1.4
          Autobuild playlists, Recording, Loadable fonts, Customizable WPS

     Version 1.5
          File/directory management

Q23. I tried one of your firmware files and now I can't access my harddisk!
     When I turn on my jukebox, it says:
                     Part. Error
                     Pls Chck HD
A23. Your harddisk has been password protected. We're not 100% sure why it
     happens, but you can unlock it yourself. Look at:
     http://rockbox.haxx.se/lock.html

Q24: This FAQ doesn't answer the question I have.  What should I do?
A24: You have a couple options here.  You could forget the question, find an
     easier question, or accept '42' as the answer no matter what.  We don't 
     really recommend any of these (though I do opt for '42' often myself).
     What we do recommend is stopping by IRC, reading 
     http://rockbox.haxx.se to see if the question was answered else 
     where and just not included here, or ultimatly dropping an email to the 
     mailing list (rockbox@cool.haxx.se) or the FAQ maintainer listed on the 
     project homepage.

Q25: Are there other ways to contact the developers?
A25: Yes.

Q26: Are you going to tell us what they are?
A26: No.  Post to the mailing list and we will get back to you.

Q27: But I _really_ want to talk with you in person.
A27: I'm sorry.  My girlfriend/boyfriend/pet says I'm not allowed to, and the
     doctors here won't let me have pens or pencils.  They say its some rule
     about us not having sharp objects.  I'm sorry.  Now please stop calling me
     here.

Q28: Will you ever port Quake II to the Archos?
A28: If you ask that again, I'm sending your address and phone number to the 
     guy that mailed us with question #25.

Q29: Umm, was that sarcasm?
A29: That's it, I'm mailing him now.

Q30: Is this legal? I mean, I'd just hate to see something like that 
     challenged under the DMCA in all its ridiculousness. Any thoughts or 
     ideas?
A30: We believe we are in the green on this.  We are not violating anyone's
     copyright and we are not circumventing any copy protection scheme.
     This has been a big point for the project since its inception.  Some 
     people wanted us to distribute patched versions of the original firmware,
     but seeing as that _would_ have violated Archos' copyright, we didn't 
     follow that course of action.

Q31: On the website [and various information postings] you state 
        "Every tiny bit was reverse engineered, disassembled and then 
         re-written from scratch".  
     If it was rewritten from scratch then why was it first reverse-engineered
     and disassembled? Instead this sounds more like someone disassembled it
     then used the understanding that they gained to create a new version,
     which is not quite the same as "from scratch". 
A31: Don't confuse the terms.  Reverse engineering means examining a product 
     to find out how it works.  Disassembling the firmware is merely one tool 
     used in that examination.  Oscilloscopes and logic analyzers are other 
     tools we have used.  We have written every single byte of the Rockbox 
     firmware. But we could not have written the software without first 
     researching how the hardware was put together, i.e. reverse engineer it.
     All of this is completely legal.  If you define "from scratch" as writing
     software without first researching the surrounding interfaces, then no 
     software has ever been written from scratch.

Q32: Wait a minute here.  When you released version 1.0 you did not have a 
     single one of the ideas you have mentioned on your website actually 
     implimented!  Calling this version 1.0 is really misleading.  Whats the 
     story?!
A32: In simple terms, the first release was called 1.0 because it had a basic 
     working feature set that worked and had no known bugs. That is what 1.0 
     meant.  It is true that Rockbox 1.0 lacked most of the feature set that 
     every sane user wanted.  However, we never said it was more 
     feature-complete or better in any way then the original firmware that 
     early in the project.  The first release was done as a proof of concept 
     that our ideas are moving in the right direction.  We also hoped that it 
     would help bring the project some attention, and some additional 
     developers.  Adding the missing features was just a matter of time.  In 
     more recent releases we have completed many of our desired goals, and 
     several new ones that were implimented to fullfill user requests.

Q33: I've heard talk of a 'Rolo'.  What is that? (Or 'All you ever wanted
     to know about Rockbox boot loaders')
A33: Rolo is our bootloader.  Currently it is only available in CVS and daily
     builds, but will be standard in release 1.4.  It works by basically 
     having a file with the same extension of the firmware (.ajz on Recorder, 
     .mod on Player) 'run' from within Rockbox.  Just scroll to the firmware
     you wish to switch to and press play.  

     *Poof* You will reboot to that firmware.  (Note that in order to return
     to Rockbox you may need to reboot manually if the new firmware you loaded
     does not have a bootloader itself.)

Q34: I was thinking about making the USB a bit more usable.  What are the
     chances of using the USB port to [play games / share files / list
     the device as something other then a hard drive / sell my soul to you
     for a nickel].  What do you think?
A34: You really don't want to know what I think, it involves road flares, 
     microwave ovens and shaved cats.  Enough said.  But regarding the USB 
     portion of your question, this is not feasible.  First, any ideas 
     regarding special communications over the USB port will not work because
     we have no control over the USB port itself.  We are capable of 
     dectecting if it is in use (so we know which mode to switch to) but that 
     is it.  Second, if you would like to have your Archos as a harddrive for
     another device, know that this will not work either.  The Archos unit is 
     a slave.  Most other USB devices are slaves as well.  So without some
     master involved there can be no communication.  Sorry.  Now about your
     soul.  Would you settle for 3 cents and a small wad of belly button lint?

Q35: When I use RockBox my jukebox's red "error" light turns on a lot, but this
     doesn't happen on the factory firmware.  Why?
A35: Rockbox uses the red LED as harddisk activity light, not as an error 
     light. Relax and enjoy the music.

Q36: How do I use the loadable fonts?
A36: Loadable fonts are a work in progress.  We do not have full documentation
     for it.  The best we can do now is tell you that you need a valid .bdf
     font, and to use the tool "bdf2ajf" from CVS to conver to the .ajf format.
     The final .ajf font must be stored in the archos root as 'system.ajf'
     We do expect more documentation on this process shortly.

Q37: I have a question about the batteries...
A37: STOP!  We have put together a completely different FAQ for battery 
     related questions.  
     Check out: http://rockbox.haxx.se/docs/battery-faq.html

Q38: What is the WPS?
A38: That is the 'While Playing Screen'.  Basically this is what is shown on
     your player's display while we are playing your song.

Q39: What good is the WPS?  How usable/flexible is it?
A39: It is very good if you want information about the current item playing ;)
     Currently the WPS on the Player is very flexible.  By using the file  
     'wps.config' you can manage exactly how/what you want data displayed on 
     your Archos Player.  Currently this feature has not yet been added to the
     Recorder version of Rockbox.  Please see 
     http://rockbox.haxx.se/docs/custom_wps_format.html for more information.

Q40: Can the Player LCD font be modified?
A40: The simple answer is no.  This is because the Player font is character
     cell based (as opposed to the Recorder's bitmap based display).  This
     means that we are able to choose what characters to display, but not how
     to display them.  We do have the ability to change/create up to 4 chars 
     on one model and 8 on another, however we are currently using several of 
     these 'letters' to store icons for the player.

Q41: Why don't you have any games available for the Players?
A41: The display on the Players is character cell and not bitmap based.  
     This means we can only control what characters get displayed, not
     what pixels are shown.  This makes the prospect of game play very 
     slim (at least for anything involving graphics).

Q42: When recording is finally implimented in Rockbox, will it be possible to
     use custom codecs (like LAME) or is there a built in codec in the Archos?
A42: The MP3 encoder is in the MAS3587F chip, and nothing we can change.

Q43: What are the max/min bitrates for recording on the Recorder's encoder?
A43: The builtin encoder is variable bit rate only with a max of 192kbit/s,
     and a min of 32kbit/s.

Q44: I have a question about the id3v1 and id3v2 tags...
A44: Stop!  Here is all the information about that (if you still have
     questions when done, ask then.)

     - Rockbox supports both id3v1 and id3v2

     - The id3v2 support is limited to the first 300 bytes of the file.  Some
     ripper programs tend to add very big tags first and then the important
     ones Rockbox wants to read end up beyond the first 300 bytes and then
     they remain unknown.

     - If you believe that the tags you don't see *are* within 300 bytes, then
     please make the mp3 file available for one of the developers to try out.

     - The 300-byte limit is subject to be removed in a future version

Q45: Would it be possible to record from line in on the player?
A45: No.

Q46: Where exactly did the name 'Rockbox' come from?
A46: Well you can follow the full line of emails at 
     http://rockbox.haxx.se/mail/archive/rockbox-archive-2002-01/0062.shtml
     However, the brief rundown is that it was recommended first by 
     Tome Cvitan, and put to a vote (which it lost). 

     Funny thing about democracys.  This isn't one ;)  Our beloved project
     leader vetoed the winning name and chose Rockbox instead.
     http://rockbox.haxx.se/mail/archive/rockbox-archive-2002-01/0134.shtml
     
     There you have it.  Recommeded by users, decision by dictator.

Q47: Why is there a limit of 400 files in a directory?
A47: We have answered this question numerous times.  It is mentioned in the
     release notes, and in the mailing list archives 
     (http://rockbox.haxx.se/mail/archive/rockbox-archive-2002-08/0448.shtml).
     But, hey, we wouldn't want people to have to work to get an answer.  
     (If you are reading this, feel proud, for you are the exception).

     We settled on 400 files in a directory because file listings take up
     memory on the unit, and we felt that 400 is significantly large enough 
     for a majority of the populace.  We prefer the option of limiting 
     file limits in order to provide a greater amount of memory for buffering 
     of files being played.

Q48: Okay, I understand your 400 file limit.  But why hardcode?  Why not 
     have this be dynamically allocated?
A48: Because it's useless.  Dynamic memory is only ever useful if you have 
     memory consumers (tasks) that run at different points in time, and thus 
     can reuse the same memory for different purposes. 

     We don't have that.  We must be able to show a big dir, index a big 
     playlist and play a big mp3 file, all at the same time. They cannot use 
     the same memory, and thus dynamic memory buys us nothing but extra 
     complexity.  If we used dynamic memory for this, we would get all kinds 
     of odd bugs. Playlists that only got half-loaded if placed in certain 
     directories. Parts of the disk you couldn't go to if playing a certain 
     playlist etc. 

     We have a number of tasks that consume memory. They can all run at the 
     same time, using all of their alotted memory. Therefore it is much better
     to allocate that memory to them beforehand and not pretend that anyone 
     else is able to use it. This is standard practice in memory-limited 
     systems. 

Q49: Why is there a 10,000 song limit on playlists?
A49: This is another hardcoded limit.  We feel that as bigger disks arrive 
     that this limit will increase.  Because of the way that playlists are
     stored, it tends to be a bit more maleable then the directory file limit.
     For further detail, look at questions 47 and 48 and replace any instances
     of '200' with '10,000'.

Q50: You don't understand! I _really_ need to have more then 400 files
     in a directory!
A50: The use of really big directories was a workaround for the poor playlist
     capabilities of the original Archos firmware. With Rockbox, you no longer
     need this workaround. Organise your files in directories, then build
     playlists for all collections you want to shuffle-play.

Q51: How can I make playlists on my PC?
A51: There are many programs that can create .m3u playlists. WinAmp is one.
     Another simple method, that requires no extra software, is to use dir:

       dir /b /s X:\ > X:\allfiles.m3u
       dir /b /s X:\Pop > X:\pop.m3u

     ...where X: is your archos drive.

     Linux users can use the 'find' command:

       cd /mnt/archos
       find . -name "*.mp3" > all.m3u

     Remember that playlists are simple text files. You can edit them with any
     normal text editor.

Q52: How can I find out about all the neat features that Rockbox has?
A52: This information is in our manual (It sometimes gets a bit out of
     date, so please bear with us.)  The information you are most likely 
     looking for is a bit down the tree, so the heres the url:
     http://rockbox.haxx.se/manual/rec-general.html
