Skip to content

Repository files navigation

Rockbox on the Sony NWZ-E585

Notes and design docs from installing the Rockbox Sony NW Linux port on a Sony Walkman NWZ-E585, from a macOS / Apple Silicon host — and exploring how far its interface can be customized.

Contents

  • rockbox-install-plan.md — the full install runbook and record. Why a Linux VM is required (macOS has no SCSI backend in librbscsi), staging the build + bootloader, UTM + USB passthrough, building scsitool, and the do_fw_upgrade flash. Status: ✅ installed & verified.
  • device-stack.md — where every piece of code on the device sits: hardware → Sony kernel → bootloader → rockbox.sony.rock plugins. Which of the two filesystems each lives on, and why that decides whether a change is a flash or a file copy.
  • customization.md — theming vs. the four tiers of changing the interface (skin → plugin → core fork → separate process), and what the plugin API does/doesn't let you reuse.
  • hello/ — the smallest proof that our own code runs on the hardware: a ~50-line .rock plugin. ✅ running on the device. See hello/README.md for the full build + deploy runbook.
  • bootloader/ — patch to the dual-boot chooser so the device boots straight into our UI, showing the SELECT PLAYER carousel only if you tap PLAY during a 3-second window. ✅ flashed and working. Includes the tar-vs-ELF packaging trap that costs a flash cycle if you get it wrong.
  • custom-ui-architecture.md — deep dive: running Rockbox as a headless playback daemon driven by a separate UI process. Audio pipeline, the IPC seam, input/button handling, real symbols, and the core patch points.
  • ui/ — skeleton of that custom front-end. One source tree, three builds (macOS + SDL, headless for tests, Linux framebuffer for the device), with the daemon mocked out so the UI is developed locally and ported once. See ui/README.md and ui/PROTOCOL.md.

Tools

  • tools/svg2walkman.py — rasterise an SVG into something the device can blit. Rockbox has no vector support and lcd_bmp has no alpha or scaling, so size, colour and background are decided on the host. Emits <name>.<W>x<H>x16.bmp for the Rockbox build (bootloader or plugin, via bmp2rb), and optionally a C RGB565 header for ui/, which has no image loader of its own. --frames/--sweep produce spinner sequences.

Not in this repo

The 8.6 GB device backup and the Debian installer ISO are gitignored (personal / large). See .gitignore.

About

Custom firmware & UI for the Sony NWZ-E585

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages