···5858#include "pcm_mixer.h"
5959#endif
60606161+#ifdef SIMULATOR
6262+#include <strings.h>
6363+#endif
6464+6165/* TODO: The audio thread really is doing multitasking of acting like a
6266 consumer and producer of tracks. It may be advantageous to better
6367 logically separate the two functions. I won't go that far just yet. */
···12691273 }
12701274 id3->skip_resume_adjustments = skip_resume_adjustments;
12711275 }
12721272-12761276+12731277 id3_write(PLAYING_ID3, id3);
1274127812751279 if (!resume_info && id3)
···27612765 skip_pending = TRACK_SKIP_AUTO;
2762276627632767 int id3_hid = 0;
27642764- if (audio_can_change_track(&trackstat, &id3_hid))
27682768+ if (audio_can_change_track(&trackstat, &id3_hid))
27652769 {
27662770 audio_begin_track_change(
27672771 single_mode_do_pause(id3_hid)
···32433247 bool finish_load = cur_info.audio_hid < 0;
32443248 if (finish_load)
32453249 {
32463246- // track is not yet loaded so simply update resume details for upcoming finish_load_track and quit
32503250+ // track is not yet loaded so simply update resume details for upcoming finish_load_track and quit
32473251 playing_id3_sync(&cur_info, &(struct audio_resume_info){ time, 0 }, true);
32483252 return;
32493253 }
+3-1
firmware/asm/thread.h
···4646 * give a decent amount of space and hope for the best...
4747 * FIXME: this isn't a great solution. */
4848 #undef MINSIGSTKSZ
4949- #define MINSIGSTKSZ 16384
4949+ #endif
5050+ #ifndef MINSIGSTKSZ
5151+ #define MINSIGSTKSZ 16384
5052 #endif
5153 /* MINSIGSTKSZ for the OS to deliver the signal + 0x3000 for us */
5254 #define DEFAULT_STACK_SIZE (MINSIGSTKSZ+0x3000) /* Bytes */
···268268\end{description}
269269}
270270271271+\subsection{Storage/Capacity Limits}
272272+273273+\opt{disk_storage}{
274274+Rockbox supports very large drive capacities when used with GPT partitioning on devices that utilize ATA storage, but due to the limitations of the FAT32 filesystem, individual paritions cannot exceed 2TiB. Additionally, there may be underlying platform limitations that make it difficult, if not impossible, utilize a drive larger than some arbitrary size or boot from a drive using GPT partitioning.
275275+276276+\opt{ipod6g}{
277277+For example, the stock Apple firmware on earlier 6th generation iPod Classic models\footnote{MB029, MB145, MB147, MB150} is limited to drives no larger than 128GiB, and booting into the Apple firmware firmware with larger drive sizes will result in massive data corruption. Later 6th generation iPod Classic models\footnote{MB562, MB565, MC293, MC297} (sometimes referred to as ``7th gen'') do not have this issue. Rockbox itself will function correctly on all 6th/7th generation iPod Classi models.
278278+}
279279+280280+\note{In practice, no Rockbox-capable device can currently handle total drive capacities exceeding 2TiB.}
281281+}
282282+283283+\opt{sd_storage}{
284284+ Rockbox does not currently support SDUC cards, ie those with capacities
285285+ exceeding 2TiB. However, this is purely a software limitation with
286286+ Rockbox's SD card drivers, and will be addressed in a future release.
287287+288288+ \note{SD cards exceeding 32GiB are pre-formated using the exFAT filesystem with GPT paritioning.
289289+ Before they can be used with Rockbox, they must be reformatted with FAT32.}
290290+}
291291+292292+\opt{disk_storage,sd_storage}{
293293+\note{The disk format utility included with all versions Microsoft Windows released to date will refuse to create/format FAT32 partitons exceeding 32GiB, so users of larger storage devices will need an alternative tool. Options include GParted Live\footnote{\url{https://gparted.org/}}\opt{ipod}{ or performing a restore using iTunes on Windows}. \opt{sd_storage}{Addtionally, devices that support removable storage typically have a built-in format tool that can be used.}}
294294+}
295295+296296+\opt{disk_storage}{
297297+\subsection{Flash/SSD mods}
298298+ It is common to replace the device's original mechanical hard drive with
299299+ some sort of solid-state storage. Older versions of Rockbox (3.15 or prior) do \emph{not} work properly with many
300300+ of these so-called ``flash mods'', the most common symptom being data corruption on write-heavy operations. All
301301+ known data integrity issues have been resolved, but each type of adapter still has its own quirks:
302302+\begin{description}
303303+\item[Compact Flash.] True Compact Flash cards \emph{natively} implement the ATA command set, including
304304+ advanced power management and the \emph{removeable} attribute. They are performant, reliable, and physically
305305+ robust, but tend to be expensive and not available in larger sizes.
306306+\item[SATA.] These are fast, reliable, and available in high capacities, but are typically optimized for high performance
307307+ at the expense of power consumption.. However, as they implement the full ATA command set, we are able
308308+ to aggressively power them down when not being actively used.
309309+\item[Single Secure Digital (SD).] While these adapters come in different form factors from multiple vendors,
310310+ they are all based on the same basic design. The ATA command set is incompletely emulated, notably lacking
311311+ support for the \emph{mandatory} ATA power management commands that Rockbox uses to flush caches and safely
312312+ transition the device in and out of low power states. Additionally, SD cards vary widely in quality
313313+ and power consumption with the resultant effects on data longevity and battery life. Finally, these SD adapters do not support 2TiB or larger SDUC cards.
314314+\item[Dual/Quad SD.] These are similar to the above, only allowing use of mulitiple SD cards to
315315+ increase the overall storage capacity. While typically described as JBOD\footnote{Just a Bunch Of Disks}, this is not accurate as each card is not individually accessable. Instead, the adapter claims to be to be a single logical drive of the combined capacity of the individual cards in a RAID0-like manner. Consquently, if any one card fails, all data on all other cards is most likely permenantly lost. Given the quality and power management concerns mentioned earlier, this means use of multiple SD cards in one of these adapters is the least reliable/robust and the most power hungry of the various SSD mods. Finally, in another violation of the ATA specification, these ATA-SD adapters fail to properly support LBA48 addressing, meaning that no matter which combination of cards is used, they simply will not work if their combined capacity exceeds 2TiB.
316316+\end{description}
317317+318318+\note{All of these flash/SSD mods take up less physical space in the device enclosure than the original hard drive, so care must be taken to ensure they are securely mounted and resistant to the vibration and impacts that typically occur in portable devices. Ribbon cables are particularly vulnerable.}
319319+320320+It is also worth noting that you will not likely see improved data transfer rates when using solid-state storage; the underlying \dap{} hardware is simply too slow to materially benefit. However, the improved access times should help the \dap{} to feel much more responsive.
321321+}
322322+271323\section{Installing Rockbox}\label{sec:installing_rockbox}\index{Installation}
272324There are two ways to install Rockbox: automated and manual. The automated
273325way is the preferred method of installing Rockbox for the majority of