mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-08 12:45:26 -05:00
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
110 lines
3.7 KiB
Text
110 lines
3.7 KiB
Text
Introduction
|
|
============
|
|
|
|
This is the readme for the Rockbox port of Simon Tatham's Portable
|
|
Puzzle Collection.
|
|
|
|
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 them into his repo. We are now able to run with
|
|
a fully unmodified puzzles 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/plugins/puzzles/ 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
|
|
========
|
|
|
|
- Nothing!
|
|
|
|
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".
|
|
|
|
August 2024: Resync to Simon's 262f709 (unmodified). Uses new scanline
|
|
polygon filling algorithm. Updates drawing API.
|