forked from len0rd/rockbox
Updates URLs of relevant upstream repos to longer-lived Github URLs instead of my personal site. Change-Id: I08bba5c12193c999f252b4ea70ae40c9d1a3552d
122 lines
4.3 KiB
Text
122 lines
4.3 KiB
Text
Introduction
|
|
============
|
|
|
|
This is the readme for the Rockbox port of Simon Tatham's Portable
|
|
Puzzle Collection.
|
|
|
|
The upstream version used is subject to change, as it should be
|
|
relatively trivial to update it to a newer version. Simply copying the
|
|
upstream repo's contents into src/ and running genhelp.sh ought to do
|
|
it (watch out for API changes, though!).
|
|
|
|
Source structure
|
|
================
|
|
|
|
Most of the upstream files in src/ are essentially untouched, apart
|
|
from some minor adjustments to make them compile and run happily on
|
|
Rockbox. The majority of the rockbox-specific code is found in
|
|
rockbox.c, with some minor stuff in rbwrappers.c and rbmalloc.c.
|
|
|
|
NOTE: the build makefile (puzzles.make) automatically includes
|
|
`rbcompat.h` when compiling! Check there when things break.
|
|
|
|
Help feature
|
|
============
|
|
|
|
The Help feature is implemented by compiling each puzzle against a
|
|
compressed version of each puzzle's section from the upstream
|
|
documentation. These files are stored under help/, and are generated
|
|
by genhelp.sh from the puzzles.but file in the source
|
|
distribution. The compression is LZ4, implemented in lz4tiny.c (for
|
|
decompression on target), and compress.c (for generation). genhelp.sh
|
|
should be run whenever the documentation is changed.
|
|
|
|
Upstreams
|
|
=========
|
|
|
|
As of 2024, Simon's tree is located at:
|
|
|
|
https://git.tartarus.org/?p=simon/puzzles.git
|
|
|
|
For a long time (i.e. 2017-2024), our version of the puzzles tree
|
|
contained several modifications by myself (notably cursor interfaces
|
|
to Untangle and Palisade). These divergent changes complicated
|
|
maintenance of this port, as merge conflicts often arose when upstream
|
|
changes to these games conflicted with our changes. To remedy this, I
|
|
sent most of these patches back upstream in summer 2024, and since
|
|
then, Simon has merged the majority of them into his tree.
|
|
|
|
This leaves us with a very small set of places where our branch of the
|
|
puzzles source diverges from Simon's. That branch lives here:
|
|
|
|
https://github.com/built1n/puzzles/tree/rockbox-devel
|
|
|
|
Notably, there are several hacks which work around Rockbox's lack of a
|
|
proper polygon filling algorithm. Eliminating this deficiency would
|
|
enable us to use a totally unmodified upstream source tree.
|
|
|
|
Maintenance
|
|
===========
|
|
|
|
Simon's upstream tree sees continued development. The port is
|
|
structured so that integrating new upstream versions is
|
|
straightforward: all the upstream sources live in the src/
|
|
subdirectory; all of the Rockbox frontend lives in the root
|
|
apps/pluginspuzzles/ directory.
|
|
|
|
The `resync.sh' shell script automates the resyncing process. It
|
|
copies the upstream sources (point it to a local copy of the
|
|
rockbox-devel branch above) into src/ and performs auto-generation of
|
|
the help content. Note that a modified version of "halibut" (Simon's
|
|
homegrown documentation processor) must be compiled from this source:
|
|
|
|
https://github.com/built1n/halibut
|
|
|
|
The LZ4 library and GCC are necessary as well.
|
|
|
|
Wishlist
|
|
========
|
|
|
|
- Proper polygon filling algorithm. The current algorithm is a hack
|
|
that uses overdrawn triangles. This will enable us to eliminate the
|
|
last of the Rockbox-specific modifications.
|
|
|
|
Kudos to Simon (duh), and Frank, for telling me about it.
|
|
|
|
Franklin Wei (__builtin)
|
|
|
|
Changelog
|
|
=========
|
|
|
|
April 2017: Changes made to move upstream sources to a separate
|
|
subdirectory, where they are completely unmodified from the
|
|
original. Updating the upstream version is now as simple as copying a
|
|
fresh set of sources to src/. Several hacks were used to accomplish
|
|
this: a global include specified on the command line, and a directory
|
|
of dummy header files.
|
|
|
|
August 2017: Every game that can be played with only the cursor keys
|
|
is now functional.
|
|
|
|
October 2017: Added zoom feature.
|
|
|
|
March 2018: Added help styling. Changed from simple_viewer to
|
|
display_text for displaying help text. compress.c now does additional
|
|
processing on the help text, and also requires a slightly modified
|
|
halibut.
|
|
|
|
April 2018: Finished up the rest of the games. All work now! Surely
|
|
there's still bugs to fix, so stay tuned...
|
|
|
|
December 2018: Resync to 3ece3d6. Happy holidays!
|
|
|
|
May 2019: Resync to e2135d5.
|
|
|
|
June 2020: Resync to 9aa7b7c. Fixed really embarrassing bug in loading
|
|
saved games.
|
|
|
|
July 2024: Resync to 1c62dac (branched from Simon's fd304c5).
|
|
Implement user preferences menu. Introduced "Mosaic".
|
|
|
|
August 2024: Resync to ee5e327 (branched from Simon's
|
|
1c1899e). Changes default Map stipple size to "Small".
|