This is a script to patch a native bootloader
(bootloader.*) into a stock OF firmware image (update.upt).
Usage: hibyos_nativepatcher.sh <path/to/update.upt>
<path/to/bootloder.*>
Resulting file will be placed next to the original update, and will
be named [$orig_name]_patched_[$rbver].upt
Now with some rudimentary error checking at key points!
Works on macos.
Works on linux, at least debian in docker. Linux
usage requires 7z and genisoimage.
Change-Id: I2878e7ab4652b73f44c6f1efd54047953f636c86
this is a bit cleaner without so much ram (or code) used
Credit to goes to Paul Sauro (OlsroFR) as this was his idea
if available space exists in the pluginbuf it uses fisher yates
shuffle to get good probability
and falls back to random permutation if not
Change-Id: I413078a48314ce4c6f3722c78e0858a407b7b46e
Due to a typo, only the high byte of the embedded load address was
checked to be empty. For a full check, high and low byte must be
evaluated, of course. Also, fixed in cRSID 1.3.
Change-Id: Ib0b701622b006ab4bb1791f07bf17b3b06a70719
bootloader passes the player version to rockbox for LCD init changes
Credit ZappBranigan2972 on forums for original changes
Credit Bilgus for devicedata additions
Change-Id: Ia2ca493edef49b7457e84dc19b05397dc915fa5a
This improvement brings a huge performance improvement to start a random mix of your library. Previously, the only way to do this was to increase the size of a playlist with absurd sizes number. Now it will respect the limitation but will insert random songs from the current view.
Database: Add true random songs in playlist if it is gonna exceed its maximum capacity
More context is available here : https://www.reddit.com/r/rockbox/comments/1ez0mq4/i_developped_true_full_library_shuffle_for/
Also :
- Improved layout in the DB browser
- New default max playlists capacity is now 2000 on old PortalPlayer targets to give a better user experience and not having to wait dozens of seconds while creating a playlist
- "Show insert shuffled" option is now true by default
- Add a new shortcut to play all songs shuffled in the DB browser
- Now the feature is fully optional and enabled only on targets that have more than 2MB of RAM
- Add entries about this feature in the manual to explain it to the users
Change-Id: I1aebaf7ebcff2bf907080f1861027d530619097c
Change-Id: I3354923b148eeef1975171990e814a1a505d1df0
This improvement allows to show all characters even on a tiny screen
like the screen of the iPod Minis
Change-Id: Ibffd4f562d8bf9b3859528bbea59ca4f9190c4fd
lcd_scroll is include in a weird manner and includes need to go in
scroll_engine.c instead and still be blocked from bootloaders
Change-Id: Ic99d123f7d428d511380c7064a9453de56218a17
This option is especially useful for theme creators that want to create themes with lockscreens. When text is scrolling, it is breaking the lockscreen so setting this option to true prevent this. Text will continue to scroll normally in all other contexts.
Change-Id: I194f6837217881d50f567a775b81d0b422caf35c
This is needed to be able to do updates to the OF due to the fact
that the OF reboots when you select "update firmware".
By default, most OF update images do not update the bootloader,
but it is easy to modify them to do so, and they already contain
a uboot.bin binary.
I tested using the Aigo Recovery from our native bootloader and it
sure seems to work fine.
If we patch the OF update images to load our own native bootloader,
this will be doubly necessary for uninstallation.
Change-Id: Id69b0321e293331b3936c3f3e7e012d5f00b479a
On hosts running Python 3.12, building the hosted MIPS toolchain fails
on glib with the error
Traceback (most recent call last):
File "<string>", line 2, in <module>
ModuleNotFoundError: No module named 'imp'
gmake[6]: *** [Makefile:982: install-codegenPYTHON] Error 1
gmake[6]: Leaving directory '/tmp/rbdev-build/build-glib-2.46.2/gio/gdbus-2.0/codegen'
due to 'imp' being removed from Python 3.12 after a long deprecation
period. The module is imported by automake's py-compile script, but
in newer versions of automake this has been updated to use 'importlib'
instead, so running autoreconf fixes this.
We need to patch m4macros/glib-gettext.m4 to avoid an error running
autoreconf (see: https://gitlab.gnome.org/GNOME/glib/-/issues/1159):
ac-wrapper: autoreconf: warning: auto-detected versions not found ( 2.69 2.69); falling back to latest available
autoreconf-2.71: export WARNINGS=
autoreconf-2.71: Entering directory '.'
autoreconf-2.71: configure.ac: not using Gettext
autoreconf-2.71: running: aclocal --force -I m4macros ${ACLOCAL_FLAGS}
am-wrapper: aclocal: warning: auto-detected versions not found (1.15); falling back to latest available
m4macros/glib-gettext.m4:39: error: m4_copy: won't overwrite defined macro: glib_DEFUN
m4macros/glib-gettext.m4:39: the top level
autom4te-2.71: error: /usr/bin/m4 failed with exit status: 1
aclocal-1.16: error: /usr/bin/autom4te-2.71 failed with exit status: 1
autoreconf-2.71: error: aclocal failed with exit status: 1
This problem goes away in glib 2.47.5 when they switched to using
upstream gettext.
Change-Id: I878a9d7086d17c6de43470b6e5f14917f0ae1bb9
This enables two of the "unfinished" puzzles. Slide requires a new "sticky
mouse mode" to enable dragging. The help system is disabled for these
puzzles, since they lack manual chapters.
Group is currently unplayable due to lack of request_keys() support, which
will need to be added upstream. Separate fails to draw anything.
Change-Id: I7bcff3679ac5b10b0f39c5eaa19a36b4b1fe8d53
Set number of FSR edges required for DPLL/ASRC lock
Set DPLL bandwidth larger
Both should help prevent dropouts, especially with
sample rates >=96khz
Credit to ZappBranigan2972 on the forums
Change-Id: I55a90d44ac7fcec5894377e32cdadad66bb05610
This is the first resync with a fully unmodified upstream repo. This
includes a new scanline polygon renderer in the upstream puzzles
distribution. This allows us to get rid of the monstrosity of a
polygon renderer we had been shipping in rockbox.c.
Change-Id: I23628c74bb5ff7a9e7932bf16d68a1c867c49969
This updates the resync.sh script to be more intelligent about which files
it copies from the upstream tree. It now attempts some rudimentary parsing
of the puzzles CMakeLists.txt file to figure out which files are actually
necessary, and copies only those.
This adds a new SOURCES.rockbox source file list for the Rockbox-specific
parts of the port.
Change-Id: I461f87ac712e3b2982dcbb0be9d70d278384a4e7
* Create new 'sector_t' type alias:
* uint64_t for all targets with HAVE_LBA48 or HAVE_SDUC
* unsigned long for the everything else
* Alter all storage APIs to use sector_t instead of 'unsigned long'
* Alter Volume/Partition/storage info structures to use sector_t
* Disk cache converted to sector_t
* ATA Core:
* convert to using sector_t for sector addresses and drive sizes
* Always fill out upper 16 bits of LBA48 addresses
* IDENTIFY INFO is fixed at 512 bytes, not SECTOR_SIZE
* USB mass storage:
* convert to using sector_t for sector addesses and drive sizes
* Implement READ_16/WRITE_16 for LBA48 addresses
* Convert FAT code to use sector_t for all sector references
* output_dyn_value() now accepts int64_t instead of 'int'
* Corrected "rockbox info" to work for (MULTIVOLUME & !MULTIDRIVE)
* Better reporting of disk and (logical+physical) sector sizes in debug info
* Detect SDUC cards and report on storage debug_info screen
To-do: SDUC
* Refactor SD core to remove duplicate code in every driver
* Card probe and init state machine
* Implement core SDUC support
* SD2.0 needs to be 2.0+ (fixed for jz47xx and x1000)
* Host and Card ID (ACMD41)
* 32-bit addressing for all read/write/erase operations (CMD22)
* ADD SDUC to target device drivers, defining HAVE_SDUC as appropriate
Change-Id: Ib0138781a0081664d11511037685503df1b93608
When overwriting an existing directory, the idle
power off timer may fire during the mass-renaming
of individual files.
Change-Id: Iedbc882c2470c32129a162d31dab8e5031a929b9
Use the known difference in path length between src
and dst in order to detect an insufficient
buffer size not just for the source, but also for
the destination path during the pre-scan already.
Change-Id: I9e4caeb9b9d2cb1e9577f418f2b777ab17718acf
Scanning files before a delete or copy operation was
slowed down by splashf() being called too frequently.
- Delay and update splashf every 0.5s (the scan will
often be finished in a split second)
- Only clear screen buffer before scan info is redrawn
- Display name of *top* level item only, to prevent bar
from jumping around due to the string length changing
- Use item size for progress bar, so that the overall
progress isn't interrupted by each file's progress
- Display processed & total file sizes (KiB if total
is < 10MiB, or MiB otherwise)
- Move delete confirmation before scan to provide
instant UI feedback
Change-Id: I882a8db4161a46aca2d398e371ec4ed018fc8501
1) Remaining:
Sometimes, you may only be interested in how
much time is left in a playlist, but don't care
about the progress already made.
The new option will disregard already played tracks,
which can be much faster, depending on your position
in the playlist.
2) Single Mode:
When 'Single Mode' is enabled (and set to something
other than 'Track'), you now have the option to see
the time elapsed and remaining specifically for
that section of the playlist (e.g. the playing album).
Change-Id: I786eaababc537f565ab3fa4de1c46b7d5f3d1101