dev builds
themes manual
device status forums
mailing lists
IRC bugs
dev guide

Search | Go
Wiki > Main > ChangeLog25

Changelog for Rockbox 2.5

This is the (hopefully) full list of changes to Rockbox since Rockbox 2.4 was released in December 2004. As you can see, quite a lot has happened since then, so upgrading is strongly encouraged.



Unfortunately, due to the added features, RomBox grew too big to be in flash together with a compressed original Archos backup image. For safety, we don't want to give up the dual firmware approach, one permanent, one to mess with. For this reason, a minimal firmware called BootBox has been made,which replaces the Archos firmware and is much smaller in size. This means that running Rockbox from ROM is again possible.

Stereo Width

All devices can now control the stereo width in from 0% to 255% in 1% steps, replacing the old "Stereo narrow" and "Stereo wide" settings (which equalled 50% and 300% stereo width, respectively).

Using USB Power

As a special bonus for owners of units that can be charged (Recorder FM/v2) or powered (Ondios) from USB, you can now use USB power while still using Rockbox. When you plug in USB, hold the MODE button on Ondio, or F1 on Recorder FM/v2 and a tiny USB plug icon will appear in a statusbar. You can now use Rockbox while your jukebox is charged resp. powered by USB!

Shuffle Repeat

A new repeat mode called "Shuffle" has been added. Behind this somewhat cryptical name, hides a feature that shuffles the current playlist before repeating it. This way not two listens will be alike. Additionally, you can also insert songs shuffled. If this is done, the song(s) are randomly inserted between the current position and the end of the playlist.

Support for Right-to-left Languages

On jukeboxes with bitmap displays (everything but Player/Studio, sorry) support for right-to-left languages like Hebrew and Arabic has now been added. Find it under the "General Settings > Display > BiDi Hebrew/Arabic" menu.

A-B Repeat For Archos Studio / Recorder

A-B Repeat will repeatedly play a segment of a song between two arbitrary points (known as marker A and marker B) that are defined by the listener. It's especially great for musicians who need to listen to a musical passage repeatedly in order to learn it.

Improved Problem Handling

If Rockbox panics, the harddisk is now shut down, to avoid wearing the batteries down more than necessary for no reason. It's now also possible to reboot Rockbox just by pressing ON, if this has happened. If a normal shutdown fails, and the jukebox can't power down, the player will shut down automatically after trying for 8 seconds.


Added ID3 database support. If you build a database with the provided tools, you can now browse your music by artist, album or song regardless of how your files are located on the player. Just go to "General Settings > File View > Show Files" and set it to "ID3 database". The file browser will now show 4 virtual folders: Artists, Albums, Songs and Search. Additionally, the database contains information of how many times the song has been played, and the ability to rate each song if "General Settings > Gather Runtime Data" is set to yes. This information can be used in search expressions (see Databox in the plugin section) and displayed on WPS.

When scrolling through a file or menu list, the cursor will always leave a third of the screen above or below it visible unless at the very top or bottom of the list. This way you can keep track of what's coming up next. Scrolling in the file-browser will no longer wrap around if you're holding down the button to get to the bottom or top of the list. This makes it easier to reach the end or beginning, and you can still wrap around - just release the key and press it again and you'll be taken to the other end of the list. The file browser will now only go back to the root dir after USB mode if the current directory no longer exists.

WPS and tag database context menus have been added. Unfortunately, the tag database context menus only work on single songs, not on the virtual dirs. Hold Play to pop up the menu. An error message is displayed if there is no playlist in memory.

The resume setting has been renamed to 'Resume on Startup'. Pressing the resume button from the WPS now resumes without prompting, regardless of the resume on startup setting. For this reason, the "Ask" setting has been removed, as you can now always resume by pressing a single button.

"Manage Settings" has been moved into the main menu. Directories are no longer shown in the "Browse .cfg files", "Browse .wps files", "Browse Fonts", "Languages" and "Browse firmwares" allowing to quicker pick files. In these modes, you can now use the menu button to leave the browser.

The ID3 info viewer has been changed to show multiple lines on the screen on units with a bitmap display. For all units, the text used is now exactly the same as the WPS screen uses.

A new feature to move to the next folder once the current one completes when playing directories has been added. This way the playlist will be refilled with the next folder in the filetree once the current playlist ends. This option can be found in "General Settings > Playback > Move to Next Folder".

The peakmeter has been reworked. The performance setting is removed, and now always runs in what was previously known as high performance mode, slightly changed. The refresh rate is always 20 Hz now. The high performance peakmeter is back at the recording screen, and a performance issue while saving data do disk has been eliminated by not running the peakmeter as fast while saving data.


New fonts:

  • snap - a small tech-like font by artwiz, extended to include all iso8859-15 characters.
  • namil-8 - slightly condensed version of rockfont-8.
  • nedore-8 and -9 - slightly condensed versions of atadore.
  • nimbus-12 and -14 - slightly condensed version of chicago12 resp. xtal-14, fix pitch digits.
  • Hebrew-8x13B.bdf - A bold Hebrew (ISO8859-8) font that is larger than the ones currently available.

The Hebrew fonts have been updated to again display correctly.


Visually impaired users will be glad to hear that a feature has been added that makes Rockbox emit a beep when starting/resuming recording. This beep is not very loud due to hardware limitations, but it's certainly better than nothing. A new option has been added to always show the recording screen on startup.

A major new feature in Rockbox 2.5 is volume triggered recording. This feature lets you set limits for when to record, based on the volume of what's being recorded. This is nice if you're recording a lot of silence, but are only interested in keeping small bits of sound that interrupts the silence. This feature has a lot of settings, and allows for many different ways of recording according to sound level.

Jens Arnold has put a lot of work into lowering the risk of corrupted recordings. This have been happening for many different reasons, some caused by bugs in Rockbox and some caused by the Archos hardware. All in all, Rockbox 2.5 is a lot better than 2.4 if you've been getting corrupted recordings. Interference from the radio on Archos FM Recorder and some Archos Ondio FM jukeboxes is now avoided.

The recording will now no longer split every 24 hours if timesplit is off, but only split when the filesize approaches the 2GB limit.

FM Radio

When entering the preset list, the cursor is now put on the current preset. When exiting, the current preset is now stored immediately. The frequency dial now wraps around so that you can go from 108.0 to 87.5 and back.


The Recorder V1 has a software-controlled battery charger. This means that Rockbox must control how the batteries are charged. The way this was handled in Rockbox 2.4 resulted in undercharged batteries. The "Deep Discharge" and "Trickle Charge Off" options also conspired to cause the batteries to be less than fully charged. The result was repeated complaints on the mail list of shorter than expected run times and unexpectedly dead batteries.

Because of this, a new charging algorithm has been put in place, which eliminates the need for the "Deep Discharge" and "Trickle Charge" settings. This means that battery life should be increased with Rockbox 2.5 and you should no longer experience batteries that are suddenly dead when you thought you had plenty of playtime left.

WPS Changes

The maximum size of a WPS is now 1600 bytes. Quite a lot of new tags have been added:

Alignment tags:
  • %al: Align left
  • %ac: Align center
  • %ar: Align right

You can use more of these on one line, but must list them in the order "%al, %ac, %ar".

Repeat mode: %mm: Repeat mode, 0-4, in the order: Off, All, One, Shuffle, A-B (Archos only so far)

Playback mode: %mp : Play status, 0-4, in the order: Stop, Play, Pause, Fast forward, Rewind

Image support:
  • %x|n|filename|x|y|: Display an image at position x,y
  • %xl|n|filename|x|y|: Load an image to be shown at position x,y
  • %xdn: Display an image loaded with %xl.

This way, images can be used within conditionals. For all these, n is a letter in a-z or A-Z.

For example: %x|a|test.bmp|10|23| the example will show /.rockbox/test.bmp as image 'a'' on position 10,23. %xl|a|test.bmp|10|23| will load the file, and %xda will then show it.

Runtime Database Tags:
  • %rp: Song playcount
  • %rr: Song rating (0-10)

  • %fc: codec type - not particularly useful on Archos models though.
  • %bp: Will display 'p' if an external power adaptor is plugged.

The WPS condtional can now have several alternatives for the tags that can have a range of values, like the repeat mode and play status. Example: "%?mp<Stop|Play|Pause|Ffwd|Rew>". This works for the %mp, %mm, %rr, %fc, %bl, %pv tags. See CustomWPS for more details on this new feature.


  • Updated

Battery test:
  • Fixed button handling.
  • Corrected playback buffer time calculation.
  • Display info about dummy file creation for Ondio.

  • Smooter scrolling.

  • Major rework.
  • Speed is now correct.
  • Supports SCHIP emulation.

  • Now working on player!
  • Proper aspect handling for screens with non-square pixels (all Archos screens).
  • New mode: Hidden line - doesn't display hidden lines.
  • Ability to pause the animation.
  • Button assignments were changed slightly, see the documentation.

  • Aspect handling fixed.
  • Heavily improved precision, zoom works much better now.
  • Only recalculates the new area when scrolling which is much faster.

  • Number of columns and rows can now be changed in menu.

  • Now working on player!

  • Now handles RomBox in an improved format.

  • Now working on player!
  • Snow flakes now look more like snow flakes on bitmap displays.

  • Proportional font support and a new mode: reflow. This rearranges the text to make it more readable in certain situations.
  • Autobookmark support. Remembers the position and settings for each text file on exit.
  • Now associated with .nfo files as well.

  • Properly adapt the menu for the chosen font
  • Fix some cursor bugs
  • Should be more random now

New plugins:
  • Alpine car CD changer emulator, although very few people may use it.
  • Credits, the credits scroller is now a plugin, but is still available through the menu. This helps save precious space in flash.
  • Databox, the frontend plugin for the searchengine, creates searchengine files (rsp).
  • Dict, dictionary plugin
  • Logo, screensaver type (available on Player too!)
  • Stats, displays the numer of files and folders on the harddisk.

New viewer plugins:
  • Searchengine, searches the ID3-db, opens .rsp files created by databox
  • Rockboy, gameboy emulator based on gnuboy. Runs on the recorder, but very slow. Primarily intended for the iriver and similar ports.


(ALERT! Leave only the English versions if/when using this somewhere where ascii is expected)

New translation:
  • Suomi (Finnish)

Updates to the following languages:
  • čeština (Czech)
  • Dansk (Danish)
  • Deutsch (German)
  • Español (Spanish)
  • Français (French)
  • Galego (Galician)
  • Ελληνικά (Greek)
  • עברית (Hebrew)
  • íslenska (Icelandic)
  • Italiano (Italian)
  • Nederlands (Dutch)
  • Norsk (Norwegian)
  • русский язык (Russian)
  • Svenska (Swedish)

Device Specific Changes

Archos Ondio

Many of the changes on Ondio are related to disc or MMC handling. Rockbox can now mount multiple partitions into one file system. This way, you can now see the internal memory and external MMC as one filesystem. You can now swap your MMC without having to shut down your player - Just plug the card, and you'll find it in the filesystem under /. Rip it out and it's gone - works like magic! Additionally, you can now use MMCs with blocksizes other than 512 bytes, which is necessary to support newer cards larger than 1 GB. The disk handler is also more robust now, and avoids crashing if it attempts to read past the end of the card, which could happen with some superfloppy MMCs. Speed improvements have been made, so now your Rockbox player is even faster when reading from MMC. The disk information screen will also show information for both the internal memory and the MMC. A disk icon has been added to the status bar to signal disk activity.

The battery scale has been adjusted to be more accurate, and you can now also select your battery type to take into account the differences in batteries. Low battery level handling has been fixed to take the battery type into account. The threshold was also too low.

The recording screen now uses up/down to select the setting, and left/right to adjust it, like the recorders. Start/pause recording is short MODE. The radio screen now requires a MODE doubleclick to start recording. This should prevent unwanted recordings. The S/PDIF option for recording source has been removed, as the Ondio doesn't have S/PDIF input.

Archos Player

Rockbox for the Archos Player series now has a more user friendly virtual keyboard with voice support added like on the Recorder. The volume, balance, treble and bass handling has been improved such that the volume scale is now linear. Also, a cool new credits scroller has been added.

Archos Recorder

A proper alarm clock for the V2/FM (and v1 with mod) has been added. The virtual keyboard has been cleaned up. The seperator line no longer wraps at the right border, and if using the Voice UI, the string is now also spelled when characters are deleted.

UI Simulator

Win32 Simulator

The simulator now displays a background-image of the device it's simulating with the keymapping printed on the buttons. Resizing has been improved and screen-updates have been optimised.

X11 Cygwin/Linux Simulor

The X11 simulator has massively improved button handling. Repeated button presses should work now - this should fix e.g. calling the Ondio menu. Button handling is now done in a different thread, to fix slow performance during high-workload plugins (such as codec tests on iriver) and furthermore the button queue handling is using the same code as Rockbox. The simulator now requires X11R6 because of these changes - this should not pose a problem unless you happen to be living in the 80s. Another cool feature is that the X11 simulator now has sound output support. It's almost like the real thing.

For Developers

A new function for debugging has been introduced: logf(), which adds a message to an internal buffer. This buffer can be viewed, and dumped to a file through the "Info > Debug" menu on builds with logf support enabled. This is particularly useful on the as of yet unreleased iriver h1x0 port, where it displays the messages on the LCD remote.

The graphics API has been updated and extended. It hasn't changed that much on the outside, but it's far better organised now, and far more consistant. It also uses a draw-mode now, instead of several different functions for the same type of drawing. It has also been optimised, and includes optimised functions for vertical and horizontal lines.

A new poweroff handling has been made, using the SYS_POWEROFF event. This allows plugins to save their settings before powering off.

The MAS and RTC debug menu options have been removed from Archos devices.

A few fixes have been made to enable better building on Mac OS X.


In order of date of fix (oldest first):

Plugins: Correct button name for MODE key in help texts, conforming to the manual & wiki documentation (Ondio plugins). Alternate image is selected with MINUS, not MENU (rockbox_flash for player). Shortened some help lines that didn't fit on the display with the default font (solitaire). Fixed a number of typos.

Radio screen: status bar wasn't updated when prerecording buffer was filled and no button pressed.

Ondio: recording file number generator didn't release the directory handle, causing a panic after several calls.

Ordinary ending of playback didn't close the file (File handle leak, cleared resume position was not saved).

Leaving all menus when loading a new language is no longer necessary.

Fixed another cause of 'stuck in subdir' bug.

Ondio: Only reset battery level if battery type really changed.

Simulators: handle plugins asking for the mp3 buffer the same way as on the target (no separate buffer).

Turn off the RTC alarm if it's gone off. Best not to have alarm events unless the user has specifically asked for them.

For shortname creation, replace most illegal characters by underscores instead of removing them, thereby lowering the chance to create a blank (illegal) name. Spaces and control chars are still removed.

Shortnames must be uppercase...

Proper disk statistics for the win32 simulator.

Stop running recording when leaving the radio screen with the radio running (FM recorder: ON, Ondio: long OFF)

Remove double entries in the "open with" menu. Memory management is also improved, no redundant saving of plugins and extensions. Entries without extension and/or icon in viewers.config is also supported.

  1. Estimated runtime was wrong for approx. 1 minute after boot or battery type/ capacity change because the recalculation was (only) done in the power thread's main loop.
  2. Restored Ondio NiMH discharge table.

Code cleanup: Moved adjustment for 8MB mod to runcurrent() where it belongs and made it more precise (only adjust the normal current).


  1. add_dir_entry() always appended new entries, although the code intended to reuse deleted entries. New code reuses deleted entries whenever possible.
  2. If the code could not extend the dir to append new entries (FAT16 root dir or disk full), it failed because of (1).
  3. Even if reuse had worked, it would never have reused entry 0.
  4. Shortname char 0xE5->0x05 replacement to avoid treatment as free entry was done for all chars although it should only be done for the first. The 0x05->0xE5 replacement on read was missing altogether.
  5. Obey directory size limit (65536 entries == 2 MB).


  1. The (undocumented) flags used by WinNT derivates to store the case of a shortname's name and extension part are now supported for reading.
  2. smaller code size.

Only mangle the current playlist when the shuffle setting is changed (from menu) when the music is playing. This behaviour was already present in the recorder's F2 quickscreen, and doing otherwise isn't intuitive.

The recording screen must not touch the LED if the LED is only simulated to avoid confusion (Ondio FM).

Correctly compose path to for dirs located in the root. Fixes non-working in a secondary volume root ().

ata_device is a char in ata.c

debug_fm_detection was defined twice. Removed it, since it only had a meaning for the Samsung tuner chip and is thus no longer needed.

Red-LED death problem partially fixed.

Video: Fix for bug #904026: Reset pitch to ensure synchronous playback.

Splitedit: Make sure pitch is reset at exit.

  1. Wait for the MAS to run out of buffered data on fade out. Fixes bug #778930/#1189756.
  2. Fade in/out from/to zero.
  3. Always fade in 30 steps, independent of the global volume.

File rename wrongly accepted an empty target filename, corrupting the file system

(all) Don't try to build the directory list when showdir() returns -1. (hotswap) Handle the 'dir no longer valid' situation in all cases, not only when the file system change happens while browsing. Force this detection when returning from wps.

Added the 'only return to root if current dir no longer exists' functionality to the plugin handling.

  1. Early USB detection on boot, before trying to mount the partitions. Cleaner & quicker; removes the need for the extra USB check at the top of ask_resume() which caused a deadlock in screenshot mode (see patch #1110332). On Ondio, this allows to leave an MMC in the slot when booting with USB connected for instant access.
  2. Ondio: Track MMC status, only ask to remove the card if required. Probe MMC status if unknown.

Cleaned up button handling: Properly ignore button releases and repeats instead of excessive queue clearing. Fixes bug #1070590. Slightly more consistent button assigment in the bookmark selector.


  1. create_xing_header() now returns 0 in case of an invalid header template, i.e. when mp3headerinfo() returns false. It used to return a random number, causing all sorts of problems. This was the cause for the end of a recording (still in the buffer) occasionally overwriting the beginning.
  2. Some code cleanup.

The peakmeter drew too much cpu power when recording, occasionally causing the recording buffer to wrap before the first save finished (when fsinfo didn't contain a next-free-cluster hint so that an exhaustive search was necessary).

Recording screen rework:
  1. Fixed irregular LED blinking on pause/ armed trigger. All redraw & LED intervals are now generated by the peakmeter_draw_get_button() delay alone, avoiding interference of different frequencies.
  2. This also fixes irregular update intervals of the whole recording screen.
  3. Code cleanup, smaller binary size.
  4. Fixed gain limits (symmetric analog gain increase used mic gain limit, and so did the right analog gain decrease).

Major recording rework:
  1. Slight optimisation of the recording transfer.
  2. Rework of the recording event loop:
    1. When starting a recording, wait a bit longer before grabbing a header, increasing the chance that we get a valid one.
    2. Bugfix: Always flush the whole buffer when it gets above the watermark.
    3. Save in chunks for lower latency (1MB on 8MB-modded boxes, and 256KB on Ondio).
    4. Hierarchical scheme of reasons to save data: stop_recording beats new_file, and new_file beats buffer_full.
    5. Saving is done in one location. Decreased code size.

ID3 parser bug fix by Ray Lambert, removes garbage at the end of some strings.

Trailing spaces are removed from ID3v2 as well as v1 tags for display in the WPS.

Cosmetic fixes for the rockbox_default font

The charging screen froze when OFF was pressed. The intention was to powerdown, but this cannot work on archos, so the charging screen no longer reacts to OFF.

Fixed scroll step settings >127 pixels not working.

All repeat modes now work correctly if there is only one track in the playlist.

Fixed comma display of xtal-14 and the new nimbus-14.

Fixed track changing in repeat one mode and playlists with only one track.

convbdf: fixed a problem with 16 pixel wide characters.

Fixed the problem with WPS where a scrolling subline could keep scrolling with old information when displaying an alternate non-scrolling subline.

Cosmetic fixes for bitmap displays in the debug menu.

Properly skip the ID3v2 extended header for both 2.3 and 2.4.

Fixed a problem where framelen was set to 0 or -1 in ID3 reading if there were less than 2 bytes left in the buffer.

Trying to enter STANDBY mode when entering USB mode seems to cause more trouble than it is worth.

Fixed a problem where convbdf didn't correctly handle fonts where the glyphs where out of order.

Corrected potential overflow problem in virtual keyboard code.

FM radio: fix by Antonius Hellman, no more crash when loading preset files with more than 32 entries.

Fixed a bug where the status bar could get redrawn far too often.

Fixed a bug where ID3v2 frames with size 0 could cause rockbox to miss tags.

Removed NULL pointer accesses when changing tracks.

Even more NULL pointer accesses removed from the playback code.

Adjusted the file size calculation when prerecording

Fixed associate problem with file extensions (.info files matched .nfo extension)

Archos Recording: Always prepend ID3V2 and Xing header to a recording file, even with prerecording and file splitting. Adjusted Xing header creation to create smaller headers. Fixed missing break; in the mpeg thread.

For targets without an RTC, use the rockbox build date as the start date in the FAT driver. No more 2003-08-01 files.

The status bas wasn't correctly redrawn in the FM radio screen.

It is no longer possible to create filenames ending in a period, which is not allowed according to FAT specifications.

Added support for missing ID3v1 genres defined by Winamp.

Exact song length calculation for CBR mpeg audio files (without Info header).

Reworked handling of MPEG audio frame & file info:
  • Fixed frame size calculation for layer 1 (all versions) and layer 2 (V2/V2.5).
  • Exact frame time (expressed as a fraction) for way more precise playtime calculation at 44100/22050/11025Hz sample frequency.
  • Exact playtime<->position conversion for CBR also used for resume position.
  • More compact code, long policy.

Fixed a bug that meant that ID3 tag priority setting wasn't applied on startup.

Archos recording/playback:
  1. Xing header creation:
    • Now estimates the framecount from the recording time if the MAS frame counter saturates, so it always writes a valid Xing header.
    • Reverted my brainless short-xing-header change. This was only valid for layer 3.
  2. Xing/VBRI header evaluation: Fixed possible overflow in bitrate calculation.
  3. MPEG thread: Avoid double chunk size limiting for the rare case of 8 MB modded Ondios.

I Attachment Action Size Date Who Comment
ChangeLog-25.txttxt ChangeLog-25.txt manage 31.6 K 20 Sep 2005 - 13:07 JonasHaeggqvist Example Changelog synced with r1.2
r6 - 13 Sep 2023 - 13:58:14 - SolomonPeachy

Copyright © by the contributing authors.