||75d2e1f: puzzles: add missing file
||c1dc957: puzzles: clean junk files
These are really not needed.
...and 37 more files.
||e8e85c5: puzzles: resync with upstream; add Loopy and Palisade, mouse mode
This brings a various small changes to the drawing and input code, as well as a brand new "mouse mode", where input goes to a virtual mouse cursor. Only Loopy has this mouse mode enabled by default, while other games have it hidden away under the debug menu. Some changes by me to Palisade were required to make it playable; those are included here as well. Right now, sgt-net is pushing the c200v2's upper limit on size and may have to be dropped in a future commit.
||f4c4221: Convert i.MX31 and AMS target to use RTC interrupt
Instead of checking ticks, set a sticky dirty flag that indicates that the RTC needs to be read. This gives a timely update and more accurate readout without actually reading the RTC until it changes. The implementation should atomically read the flag and clear it. Setting the flag would typically happen in an RTC tick ISR.
||12bc24a: aced667 forgot about those pesky __PCTOOL__ things.
It was so close to aced666.
|18th Sep 04:00
||aced667: Undo hacks to meant to get around string formatting limitations
The new vuprintf makes unnecessary workarounds due to formatting limitations. I checked grep output for whatever appeared to fit but it's possible I missed some instances because they weren't so obvious.
Also, this means sound settings can dynamically work with any number of decimals rather than the current assumption of one or two. Add an ipow() function to help and take advantage of dynamic field width and precision. Consolidate string formatting of sound settings.
|8th Sep 17:28
||5c96889: Implement a much more capable vuprintf()
New support as well as some buggy support fixed.
Still no floating point support if ever that would be desired.
* Flags: '-', '+', ' ', '#', '0'
* Width and precision: 'n', '.n', '*' and '.*'
* Length modifiers: 'hh', 'h', 'j', 'l', 'll', 't', 'z'
* Radix: 'c', 'd', 'i', 'n', 'o', 'p/P', 's', 'u', 'x/X'
(*) Provision exists to switch lesser-used stuff on or off or when certain functionality isn't desired (bootloader?). The compulsory radixes are everything but 'o', 'n', 'p/P' and 'x/X' with length modifiers being optional. The default setup is 'l', 'z', 'c', 'd',
'p/P', 's', 'u', 'x/X'.
* Move fdprintf() to its own file. It was in a strange place.
* Make callers compatible and fix a couple snprintf() bugs while at it.
Could smush it down in size but I'm gonna get over the binsize neurosis and just the let optimizer do its thing.
||52af55e: Action Rewrite - Fix red
|26th Sep 14:32
||b10c0e5: Action.c FIX / Rework / Clean-up Action System
FIX - softlock not allowing power button to shutdown device when active FIX - autolock not working unless Selective backlight enabled
Rework - get_action_worker split into more managable chunks
Rework - moved all static variables to a single struct action_last to be passed through all internal functions
Rework - current action state moved to struct action_current to be initialized at each get_action /get_action_custom call
Rework - action lookup in button maps changed slightly to prefer fully formed actions rather than blindly returning action with BUTTON_NONE as pre_button this should allow actions defined in keymaps positional independence
Rework / Clean-up - moved conditionals on internal functions to inside the functions
-Allows much cleaner code & empty functions should be optimized out by compiler
Rework / Clean-up - softlock and backlight exemptions code
Clean-up - remove a lot of (now) unused defines
Clean-up - organize / move all exported functions to their own section in the file
Comments added to all internal functions to better explain their purpose
|14th Nov 15:47
||ff08c52: nwz: improve keymap
- enable various features in radio screen (like mode switch)
- improve keyboard (short play to select, long play to finish, power to abort)
- enable volume keys in radio screen if available
|13th Nov 23:25
||5da0cbe: nwz: enable plugins on all targets except NWZ-A860
Keymap might be suboptimal.
|13th Nov 23:24
||bd8dd62: nwz: fix tuner on older players (also fixes audio because Sony)
|20th Oct 15:12
||7272f82: Imx233 Disable Autoslow only at maximum cpu frequency
At normal loads:
- disabling auto slow boosts performance at the cost of runtime (~ -5%)
- disabling at max cpu does not noticibly decrease runtime
|12th Nov 13:14
||ec4fa03: hwstub: add code to dump STMP rom
|12th Nov 13:13
||dd6b842: hwstub: expose read/write functions
Previously only atomic read/write 8/16/32 were exposed. But it is useful to be able to read a whole buffer at once, this is more efficient than N times read8.
|12th Nov 13:12
||df0edba: hwstub: fix horrible bug
It's a wonder it worked, basically any big transfer returned garbage
|7th Nov 15:48
||63eae43: rolo.c: Change 'int errno' to 'int err'
It can cause issues if errno.h finds itself included there
|6th Nov 19:06
||826f99e: libpcm: Get unbranded structure tag out of my way.
No functional changes.
|6th Nov 20:53
||1015e1f: fix red
|3rd Nov 19:14
||0fe7b8b: nwzlinux: add support for radio
None of the Sony up to A15 seem to support RDS (they use either Si4702 or Si4708), thus I did not add any code to support RDS.
|5th Nov 17:27
||ee2eb13: mkimxboot: small fixes and display a human readable error
|4th Nov 21:57
||5a3b30d: Add support for ZEN Mozaic firmware Version 1.06.01 to mkzenboot
|4th Nov 18:27
||8a925d2: fuzep: fix rds
|4th Nov 11:09
||d9a55ac: puzzles: fix blitting when zoomed
Both blitter_save() and blitter_load() functioned incorrectly when zoomed in -- blitter_save() would copy from the wrong location, and blitter_load() would ignore the y-coordinate of the destination.
|4th Nov 10:12
||7f1dd6f: puzzles: clarify code and documentation
This adds no functionality, but instead cleans up the source and adds some more substantial documentation.
|3rd Nov 15:56
||9f62373: puzzles: fix title drawing
This fixes two separate bugs: The first was that the drawmode was not reliably set when drawing the title, occasionally leading to a black rectangle where the title should be; the second that the title bar's space wasn't being cleared before drawing, leading to artifacts when the length of the title string changed.
|1st Nov 11:43
||07d3b3c: nwztools/scsitools: print device list when listing series
|1st Nov 11:42
||62f0ba1: nwztools: add NW-A46 to the database
|30th Oct 21:12
||8ef33f4: AMS: Convert ascodec_endofch() to use bit mod function's return value.
It cleans up the code and it was the initial inspiring reason to change them.
||f728559: Make atomic bit modification functions return previous value.
|30th Oct 20:25
||65e7617: puzzles: add an interaction mode to the "Zoom In" feature
This makes it possible to play the game while zoomed in. Read the manual entry if you want to know more.
|29th Oct 16:39
||1f3e70a: puzzles: sync with upstream
This includes the fix for Map's incorrect cursor positioning when zoomed in.
|29th Oct 15:50
||2423d3d: Revert "tlsf: pack info structs"
This reverts commit 8a6d7cefc9bf45b979ff064d87141949e9b81ca4.
Packing the structs was mostly a precautionary measure, tlsf should still work without it.
||e9de9c1: Add boot from other volumes in bootloader on targets with HAVE_MULTIVOLUME
Adds the ability to load firmware from other drives on MULTIVOLUME targets Mihail Zenkov had posted a hard coded patch to allow this on several Sansa players, I made it more universal
Redirect file rockbox_main.<name> should placed in root of drive you would like to be main, if this file empty or there a single slash '/' firmware will be loaded from /.rockbox in root of this drive If instead a /<*DIRECTORY*> is supplied in rockbox_main.<name> then firmware will be loaded from /<dir>/.rockbox/
The directory can have multiple levels however.. leading slash MUST be included trailing slash can be omitted
(eg. /test/.rockbox would be simply '/test' in the redirect file)
Redirect file will not work on internal drive (whatever is default boot drive)
Volume with the highest index containing redirect file will be loaded first.
Firmware file is checked for boot data region, if missing, firmware image will not be loaded.
On failure or if no redirect file is found load will fallback to internal drive
Currently only Sansa Fuze+, Sansa Clip+, Sansa Clip Zip, Sansa Fuzev2, and Sansa Fuzev1 are implemented.
Players (with HAVE_MULTIVOLUME) will need #define HAVE_BOOTDATA and #define BOOT_REDIR "rockbox_main.<name>" added to their config file
boot_data is implemented in crt0.s file (See g#1552) ARM and IMX233 have aleady been implemented
Once these conditions are met <HAVE_MULTIBOOT> will be defined by config.h
Partitions on the drives are able to have a redirect as well.
||efb71ed: Add boot data to MOST AS3525 Devices
Adds boot data to as3525 devices Sansa C200v2 E200v2 Clip Clipv2 Clip+ ClipZip fuze, fuzev2 m200v4
Adds boot_data to features.txt
default arm crt0.s now had boot data if HAVE_BOOTDATA is defined
||41869a6: Add boot data support to rockbox.
Bootdata is a special location in the Firmware marked by a magic header The bootloader is able to copy information to the firmware by locating this struct and passing data to the firmware when it is loaded but before it is actually executed
Data is verified by a crc of the bootdata
|29th Oct 11:46
||60e5cd7: tlsf: remove memset() call in add_new_area()
This call was not needed in the first place, but was causing crashes in sgt-puzzles. Removing it fixes the crashes.
|29th Oct 11:44
||8a6d7ce: tlsf: pack info structs
This should make it build cleanly under -Wcast-align, which should hopefully avoid any alignment issues on ARM.
|29th Oct 11:42
||47ebf62: puzzles: improve zoom rendering
This adds colored font rendering, as well as a workaround for font loading while zoomed. Additionally, the frontend has been modified to match the new upstream API.
|13th Oct 04:28
||b2c4707: imx233: Implement mutex for cpu_boost_lock/unlock
Playing AAC-HE files resulted in a race condition between audio/codec/buffering for set_cpu_frequency
|2nd Oct 15:54
||4284647: SVG image of the Sony NWZ-E580 and other formats for the manual.
|27th Oct 18:17
||9ba899f: puzzles: fix clipping and 24-bit handling
Should fix the build.
|27th Oct 16:55
||8b8e25f: puzzles: add "Zoom In" option to improve usability
This adds a "Zoom In" option to the pause menu of each puzzle, which displays the puzzle at triple size (subject to change). This should help with tiny screens, modulo memory concerns associated with allocating the temporary framebuffer to which drawing operations are redirected. Coincidentally, there's an upstream bug with Map that causes the cursor's positioning to be incorrectly displayed when zoomed.
|26th Oct 14:32
||e4a46c8: Fix a few missed things in 16454efc (and hopefully clear the red).
||1654efc: Unify storage threads into one
* Editing a bunch of drivers' thread routines in order to implement a new feature is tedious.
* No matter the number of storage drivers, they share one thread. No extra threads needed for CONFIG_STORAGE_MULTI.
* Each has an event callback called by the storage thread.
* A default callback is provided to fake sleeping in order to trigger idle callbacks. It could also do other default processing. Changes to it will be part of driver code without editing each one.
* Drivers may sleep and wake as they please as long as they give a low pulse on their storage bit to ask to go into sleep mode. Idle callback is called on its behalf and driver immediately put into sleep mode.
* Drivers may indicate they are to continue receiving events in USB mode, otherwise they receve nothing until disconnect (they do receive SYS_USB_DISCONNECTED no matter what).
* Rework a few things to keep the callback implementation sane and maintainable. ata.c was dreadful with all those bools; make it a state machine and easier to follow. Remove last_user_activity; it has no purpose that isn't served by keeping the disk active through last_disk_activity instead.
* Even-out stack sizes partly because of a lack of a decent place to define them by driver or SoC or whatever; it doesn't seem too critical to do that anyway. Many are simply too large while at least one isn't really adequate. They may be individually overridden if necessary (figure out where). The thread uses the greatest size demanded. Newer file code is much more frugal with stack space. I barely see use crack 50% after idle callbacks
(usually mid-40s). Card insert/eject doesn't demand much.
* No forcing of idle callbacks. If it isn't necessary for one or more non-disk storage types, it really isn't any more necessary for disk storage. Besides, it makes the whole thing easier to implement.