blob: 7d86693f0e0140379042ecfcb719a1431abe4e30 [file] [log] [blame]
Björn Stenberg554b95a2002-03-27 09:25:09 +00001#define _LOGO_ <img src="rockbox400.png" width=400 height=123>
2#define _PAGE_ Open Source Jukebox Firmware
3#include "head.t"
4
5<p><small><a href="notes.html">research notes</a> &middot;
6<a href="docs/">data sheets</a> &middot;
7<a href="schematics/">schematics</a> &middot;
8<a href="mods/">hardware mods</a> &middot;
9<a href="http://bjorn.haxx.se/rockbox/mail.cgi">mail list archive</a> &middot;
Björn Stenberg3c0b90c2002-03-28 09:55:46 +000010<a href="tools.html">tools</a> &middot;
11<a href="internals/">archos internals</a> &middot;
Björn Stenberg554b95a2002-03-27 09:25:09 +000012<a href="http://sourceforge.net/projects/rockbox/">sourceforge project</a>
13</small>
14
15<h2>Purpose</h2>
16
17<p>The purpose of this project is to write an Open Source replacement
18firmware for the Archos Jukebox <i>6000</i>, <i>Studio</i> and <i>Recorder</i> MP3 players.
19
20<p>The main emphasis and first target is the Jukebox 6000.
21
22#if 0
23<h2>Warning</h2>
24<p>All firmware mods on this page are still <i><b>highly experimental</b></i>.
25Try them on your own risk. If you are not 100% sure of what you are doing, keep cool.
26#endif
27
28<h2>Activity</h2>
29
30#include "activity.html"
31
32<h2>News</h2>
33
34<p><i>2002-03-25</i>: New section for
35<a href="mods/">hardware modifications</a>.
36First out is the long awaited
37<a href="mods/serialport.html">serial port mod</a>.
38
39<p><i>2002-03-25</i>: New instructions for
40<a href="cross-gcc.html">how to build an SH-1 cross-compiler</a>.
41
42<p><i>2002-03-14</i>: New linux patch and instructions for
43<a href="lock.html">unlocking the archos harddisk</a> if you have the "Part. Error" problem.
44
45<p><i>2002-03-08</i>: Uploaded a simple example, showing
46<a href="example/">how to build a program for the Archos</a>.
47
48<p><i>2002-03-05</i>: The
49<a href="lock.html">harddisk password lock problem is solved</a>!
50Development can now resume at full speed!
51
52<p><i>2002-01-29</i>: If you have feature requests or suggestions,
53please submit them to our
54<a href="http://sourceforge.net/projects/rockbox/">Sourceforge page</a>.
55
56<p><i>2002-01-19</i>: Cool logo submitted by Thomas Saeys.
57
58<p><i>2002-01-16</i>: The project now has a proper name: Rockbox.
59Logos are welcome! :-)
60<br>Also, Felix Arends wrote a quick <a href="sh-win/">tutorial</a>
61for how to get sh-gcc running under windows.
62
63<p><i>2002-01-09</i>: Nicolas Sauzede
64<a href="mail/rockbox-archive-2002-01/0096.shtml">found out</a>
65how to
66<a href="mail/rockbox-archive-2002-01/0099.shtml">display icons and custom characters</a> on the Jukebox LCD.
67
68<p><i>2002-01-08</i>: The two LCD charsets have been
69<a href="notes.html#charsets">mapped and drawn</a>.
70
71<p><i>2002-01-07</i>:
72<a href="mail/rockbox-archive-2002-01/0026.shtml">Jukebox LCD code</a>.
73I have written a small test program that scrolls some text on the display.
74You need
75<a href="mail/rockbox-archive-2002-01/att-0026/01-archos.mod.gz">this file</a>
76for units with ROM earlier than 4.50 and
77<a href="mail/rockbox-archive-2002-01/att-0050/02-archos.mod.gz">this file</a>
78for all others. (The files are gzipped, you need to unzip them before they will work.)
79
80<p><i>2001-12-29</i>: Recorder LCD code. Gary Czvitkovicz knew the Recorder LCD controller since before and wrote some
81<a href="mail/rockbox-archive-2001-12/att-0145/01-ajbr_lcd.zip">code</a>
82that writes text on the Recorder screen.
83
84<p><i>2001-12-13</i>: First program
85<a href="mail/rockbox-archive-2001-12/0070.shtml">released</a>!
86A 550 bytes long
87<a href="mail/rockbox-archive-2001-12/att-0070/01-archos.mod">archos.mod</a>
88that performs the amazing magic of flashing the red LED. :-)
89
90<p><i>2001-12-11</i>: Checksum algorithm solved, thanks to Andy Choi. A new "scramble" utility is available.
91
92<p><i>2001-12-09</i>: Working my way through the setup code. The <a href="notes.html">notes</a> are being updated continously.
93
94<p><i>2001-12-08</i>: Analyzed the exception vector table. See <a href="notes.html">the notes</a>. Also, a <a href="mail.cgi">mailing list archive</a> is up.
95
96<p><i>2001-12-07</i>:
97 I just wrote this web page to announce descramble.c.
98I've disassembled one firmware version and looked a bit on the code, but no real analysis yet.
99Summary: Lots of dreams, very little reality. :-)
100
101<p>I've set up a mailing list: rockbox@cool.haxx.se.
102To subscribe, send a message to <a href="mailto:majordomo@cool.haxx.se">majordomo@cool.haxx.se</a> with the words "subscribe rockbox" in the body.
103
104
105<h2>About the hardware</h2>
106
107<p>I wrote a <a href="/isd200/archos.html">"dissection" page</a> some months ago,
108showing the inside of the Archos and listing the main components.
109I have also collected a couple of <a href="docs/">data sheets</a>.
110
111<h2>About the software</h2>
112
113<p>The player has one version of the firmware burnt into flash ROM.
114The first thing this version does after boot is to look for a file called
115"archos.mod" in the root directory of the harddisk.
116If it exists, it is loaded into RAM and started.
117This is how firmware upgrades are loaded.
118
119<h3>File format</h3>
120<p>The archos.mod file is scrambled, but luckily not using encryption.
121
122<p>Each data byte is inverted and ROLed 1 bit.
123The data is then spread over four memory segments. The two least significant bits of the address is used as segment number and the rest as offset in the segment. So, basically:
124
125<ul>
126<li>segment number = address % 4
127<li>segment offset = address / 4
128<li>segment length = imgsize / 4
129</ul>
130
131<p>A 6-byte header is added to the beginning of the scrambled image:
132<ul>
133<li>32 bit length (big-endian)
134<li>16 bit checksum
135</ul>
136
Björn Stenberg554b95a2002-03-27 09:25:09 +0000137<h2>Dreams</h2>
138<p>Ok, forget about reality, what could we do with this?
139
140<ul>
141<li>All those simple mp3-play features we sometimes miss:
142 <ul>
143 <li>No pause between songs
144 <li>Mid-song resume
145 <li>Mid-playlist resume
146 <li>No-scan playlists
147 <li>Unlimited playlist size
148 <li>Autobuild playlists (such as "all songs in this directory tree")
149 <li>Auto-continue play in the next directory
150 <li>Current folder and all sub-folder random play
151 <li>Full disk random play
152 <li>REAL random (if press back it goes to the previous song that was played)
153 <li>Multi song queue (folder queue)
154</ul>
155<li>Faster scroll speed
156<li>Archos Recorder support. Most of the hardware is the same, but the display and some other things differ.
157<li>All kinds of cool features done from the wire remote control, including controlling your Archos from your car radio (req hw mod)
158<li>Ogg Vorbis support [unverified: the MAS is somewhat programmable, but enough?]
159<li>Support for megabass switch (req hw mod) [unverified: I just saw the DAC docs shows how to do it switchable. we need a free port pin to be able to switch]
160<li>Player control via USB [unverified]
161<li>Memory expansion? [doubtful: the current DRAM chip only has 10 address lines. we'd have to pull off one heck of a hw mod to expand that]
162</ul>
163
164#include "foot.t"