# Rockbox 3DS (ctru) Port — Remaining Work ## Blocked / Won't-do (for now) ### 9. `HAVE_ADJUSTABLE_CPU_FREQ` — commented out **Where**: `ctru.h:20` **Issue**: New 3DS can run at 804 MHz. Could improve codec decoding performance for high-bitrate formats or complex DSP chains. Needs governor-like implementation. **Status**: Blocked — requires a New 3DS; only an original 3DS is on hand. ## Open The port is functional and in daily use on an original 3DS. ### 12. Allow sleep when not playing back **Where**: `system-ctru.c:99` (`aptSetSleepAllowed(false)`) **Issue**: Sleep is currently disabled entirely to keep playback alive when the lid is closed. When audio is not playing, the 3DS should be allowed to sleep to save battery. Needs to toggle `aptSetSleepAllowed` based on playback state (playing vs paused/stopped) and handle resume correctly. **Status**: Open. ### 13. Slow SD card reads interrupt playback **Where**: `firmware/target/hosted/ctru/lib/bfile/bfile.c` (PageReader) **Issue**: On slow SD cards, reading a file can block long enough to interrupt playback mid-song when the next track is fetched. The current PageReader does synchronous reads in the calling thread. Either chunk reads into smaller pieces or move file I/O to a background thread so the audio buffer can be refilled without blocking playback. **Status**: Open. ## Completed - ~~#1. Software tone controls~~ — `HAVE_SW_TONE_CONTROLS` added (`ctru.h`); bass/treble sliders now route through the DSP biquad. - ~~#2. Power-off doesn't actually turn off the 3DS~~ — clean power-off via `exit(0)` implemented. - ~~#4. `paths_init()` dead code~~ — `/3ds/.rockbox` directory tree now auto-created at startup. - ~~#5. `hostfs_flush()` is a no-op~~ — now calls `sync()` to commit SD writes. - ~~#7. `touchscreen_enable_device()` stub~~ — implemented; touch input can be gated. - ~~#8. HOME button support~~ — HOME button suspend enabled via `aptSetHomeAllowed`. - ~~#10. Top screen display modes~~ — top screen now managed beyond a plain debug console. - ~~#11. Power-then-HOME bug~~ — suspend/resume state machine fixed.