Keep track of the type of skin file being parsed,
in case a tag needs this info.
E.g. %Lt should be ignored in any skin other than
SBS files.
Change-Id: Ib7e52c3e6810196cb566adb65619a1b847cf20ef
This means it will end up in nightlies, get voice builds, etc.
Next up is to add it to the themesite..
Change-Id: I78dc77addebceb49773adaa3b70e9a457585fe62
HibyOS-based target: keymaps, LED, powermgmt, bootloader and sim support,
plus cabbiev2 for the new 360x640x16 screen. Opus 5 helped w/ debugging
and the initial scaffolding.
Updated name to FB_STRIDE_MISMATCH, added simulator bmp and specs.
Change-Id: If797ac6581cf75d9d1fcf36e615ee03cf6f905d6
- makes SOURCE_DATE_EPOCH affect BUILDDATE and version string
- makes wpsbuild.pl output deterministic
- omits unnecessary extended metadata from zip files
- runs strip-nondeterminism on zip files if REPRODUCIBLE_ZIP is set
Change-Id: I1617e3f5233b2bc356fcfa6457be1a7785c303f9
This covers the rockbox binary (or bootloader), which increases the zip
file by 60-80k depending on the target.
It currently *excludes* codecs and plugins, which can add over 1MB to
the zip file. We can revisit this when/if we move to distributing 7zip
files instead.
Change-Id: Iec72dd3aa634ceca716975c13b7fa8707a485d30
The existing code treated any ready-read notification from cscript as
proof that synthesis had completed. The SAPI script can emit other
output, so the Utility could check for the wave file before the explicit
SYNC reply and report that the output file did not exist.
The script also used global "On Error Resume Next" without reporting
errors from SpFileStream.Open(), SpVoice.Speak(), or
SpFileStream.Close(). Several waits had no timeout, allowing the GUI
thread to remain blocked indefinitely.
The changes:
* reports SAPI COM errors to Rockbox Utility;
* verifies that SAPI actually created the requested wave file;
* waits for the explicit SYNC reply instead of any process output;
* applies finite timeouts to vendor queries, synthesis, and shutdown;
* terminates a stuck private cscript process safely;
* restarts cscript and retries the current string up to three times when a
third-party SAPI engine stops responding during a long generation run.
Change-Id: I2cf2aefb704353c648bef0c4312f35282ac4e25d
It is always enabled, except in the following situations:
* bootloaders
* warble or checkwps applications
* devices with less than 4MB of RAM
* imx233-based devices
imx233 is a special case; that will be backed out we figure out why
it fails to boot if the binary size exceeds 1MB.
Change-Id: If4a89e389f562bb5791a565fba99c830213473d3
The simulator on macOS has been broken since macOS 26.4
was introduced. On macOS 26.4, 26.5, and the 27 beta,
thread setup fails in make_context (firmware/asm/thread-
unix.c), because sigaltstack returns an "Operation not
permitted" error. Fall back to SDL threads until this
can be fixed.
Also update GCC to keep it in sync with the latest
Homebrew formula
(https://formulae.brew.sh/formula/gcc).
Change-Id: Ib08ac81ede00c577f28a85c7886f716e7504bbe9
When a font doesn't have a glpyh for a given codepoint, the convertor
points it at the "default glyph". The plan is to replace this pointer
with a canary value so that rockbox genuinely knows this glpyh
does not exist, allowing a fallback path to be implemented.
(The plan is for the fallback path to attempt to compose a glpyh from
its decomposed codepoints, but this would make it be possible to
implement a true fallback/subsitute font mechanism)
Change-Id: If6fea29f5393a6d4b9d5747c911a36fdc8dda5ae
Formerly fixed at the first glpyh in the converted font; now it can be
explicitly set. This mirrors the functionality available from using the
DEFAULT_CHAR property of BDF fonts
Change-Id: Ibd754faff3fd4d393c4781e8faa685612e3301f0
add a plugin_ram_end symbol to plugin.lds and rewrite ovl_offset.pl
to read plugin_ram_end and plugin_load_end_addr from the elf via nm.
this removes all dependence on the linker map file format, which
differs between gnu ld and lld.
Change-Id: I66e623d9a2b44eb84ae7035155c84d8afe46df23
which is required for u"" unicode string literals used in the USB stack.
gcc allows this even in gnu99, but clang does not.
Change-Id: I1700fe503f20f31ba4704f8bef1ccca45f822620
-fstack-protector only needs a small amount of runtime
support to work on native builds. It increases code size
by ~1.5% on ARM/MIPS; -fstack-protector-strong adds 3-4%.
This is disabled by default and must be enabled by passing
'--with-stack-protector' to configure.
Change-Id: If952e711d3673c9b469895f08c7bff70b3d95df6
- Allow overriding of the smdhtool and 3dsxtool programs
- Introduce dependencies in ctru.make for 3dsx and cia packages
- Build these packages when the binary is built
- Copy instead of moving the cia package when building a zip
- Properly clean all build artifacts when make clean is used
Change-Id: I2069bcc44d6ab6031ef61ed9980f92ff9a913bc9
- Move all devkitpro includes before the Rockbox ones so that the macros which are both conflicting and unused can be undef'd
- Remove unused result variables
- Exclude an unused function from being compiled for this target
- Fix hex number formatting
- Fix the return value of dummy functions
- Fix macro redefinition in the plugins keypad config
- Remove duplicate button mapping
- Turn off -Wchar-subscripts as it's already handled in Rockbox's ctype.h
Change-Id: I3f5a3d492c585f233277a380feaea5fe877a044f
If the list of plugins given to configure did not include
a subdir-based plugin, then all subdir-based plugins would
be built (since SELECTED_PLUGINS_SUBDIRS is empty then).
To prevent this issue use an explicit value ('DEFAULT') to
signal that we want to build the standard set of plugins.
Change-Id: I42d9dc8d754ed9ac1cd4b5c62c0a106ca3dfcd91
The preprocess2file helper is mainly used to preprocess
linker scripts, but piping the preprocessor output to
'grep' masks the exit code of gcc, so if it fails (eg.
due to an #error directive) then it does not cause the
build to fail like it should.
In this particular case the grep commands don't seem to
be doing anything, since the "-P" option suppresses line
markers, which "grep -v ^$(_hash)" is probably meant to
filter out. The intent behind "grep -v ^$$" is unclear
since the preprocessor doesn't seem to output any line
beginning with '$', but in any event it seems unnecessary.
Change-Id: Ie23f5de1fe1bfb5890c7b2f3c7fa05401931d89f
Use ":" as the separator. Useful for plugin development and debugging.
Example:
../tools/configure --target=hibyr1 --type=ADS --plugins="properties.c:imageviewer"
This creates a debug simulator build for Hiby R1 with the properties.c file and the imageviewer directory plugins enabled.
Change-Id: If974cfb0c54bd2c1a53ae11cc3f942c698ef2fe4
They haven't seen development activity for the better part
of two decades and apparently were never able to even boot
to Rockbox, although the Rockbox bootloader could load the
original firmware.
Change-Id: I5cfa5909c21feaf2825aa685a05e78044b893a13
Looks like I forgot to test the hosted builds and for some
reason thought that make would expand objcopy recursively...
Change-Id: I61264eadcb1235660566f6a9f19f8718ebe14583
Both targets were part of the (presumably dead) Lyre project
and no longer build. The Mini2440 was much more complete than
the Lyre and doesn't seem terribly difficult to fix up to the
point where it at least builds, if someone still cares -- but
given it is a dev board in a box, it's unlikely it ever saw
much use.
Change-Id: I09745379d28db69ea9aaf77f0a62b049884260e1
This reverts commit 91ec6f1e1e.
Reason for revert: Massive sea of red, looks like hosted + sim builds.
Change-Id: I98a3954d68ad2cc521e13c3683bf4a6f45f88b36
From what I can see the Creative Zen Vision ports, which
were the only ones to set USE_ELF prior to the Echo R1 port,
do not work except for a bootloader and never even got to
the point of booting Rockbox. This explains why they build
codecs and plugins as ELF binaries, yet there is no code to
load ELF format codecs or plugins.
Anyhow, add a new setting, PLUGIN_USE_ELF, which controls
whether plugins & codecs are left as ELF or converted to
flat binaries. This makes it possible for the Echo R1 to
use the flat binary .rock format, and makes it possible to
have ELF plugins/codecs on targets with non-ELF main binaries.
Seeing as nothing needs ELF plugins/codecs right now, the
new default is to generate them as flat binaries unless
the target requests otherwise.
Change-Id: I9ffae669978de5cc7ad214cd50d97ad6e8938394
It doesn't seem to have been functional ever and currently
doesn't build; eg. the last commit to the LCD driver added
a syntax error, and there's some duplicate functions between
mmu-armv6.S and system-pp502x.c. Doesn't seem worth the
effort to fix.
Change-Id: I82b5bec3ed9686f28aedbe283818af792b96daf4