Commit graph

329 commits

Author SHA1 Message Date
Sebastian Leonhardt
5c701b0280 Add support for Windows shortcuts (*.lnk files)
Supports only relative links across the same volume.

Change-Id: I4f61bb9d5f2385d5b15d2b9d9a3f814a7ac85b54
2019-08-11 22:26:49 +02:00
William Wilgus
90118f14cf lua add demo scripts, atexit handler, gui_scrollbar_draw
Change-Id: Ie8794e8a487f73952dae43e036787b6972fdbbee
2019-07-29 02:51:29 -05:00
Franklin Wei
5d05b9d3e9 Quake!
This ports id Software's Quake to run on the SDL plugin runtime. The
source code originated from id under the GPLv2 license. I used
https://github.com/ahefner/sdlquake as the base of my port.

Performance is, unsurprisingly, not on par with what you're probably
used to on PC. I average about 10FPS on ipod6g, but it's still
playable.

Sound works well enough, but in-game music is not supported. I've
written ARM assembly routines for the inner sound loop. Make sure you
turn the "brightness" all the way down, or colors will look funky.

To run, extract Quake's data files to /.rockbox/quake. Have fun!

Change-Id: I4285036e967d7f0722802d43cf2096c808ca5799
2019-07-19 22:37:40 -04:00
Franklin Wei
3f59fc8b77 Wolfenstein 3-D!
This is a port of Wolf4SDL, which is derived from the original id
software source release. The port runs on top of the SDL plugin
runtime and is loaded as an overlay.

Licensing of the game code is not an issue, as discussed below
(essentially, the Debian project treats Wolf4SDL as GPLv2, with an
email from John Carmack backing it up):

  http://forums.rockbox.org/index.php?topic=52872

Included is a copy of MAME's Yamaha OPL sound chip emulator
(fmopl_gpl.c).  This file was not part of the original Wolf4SDL source
(which includes a non-GPL'd version), but was rather rebased from from
a later MAME source which had been relicensed to GPLv2.

Change-Id: I64c2ba035e0be7e2f49252f40640641416613439
2019-07-09 11:20:55 -04:00
Franklin Wei
54d8e67530 duke3d: restrict targets to ARM only
Change-Id: I484d6de2d5d4a495ed54e8ee2a80459785b5f5e8
2017-12-24 18:01:28 -05:00
Franklin Wei
8d3e3056f7 fix red once more
Change-Id: I6290cc6cca468c197656236d3dd31c3f72c53842
2017-12-24 17:43:30 -05:00
Franklin Wei
a855d62025 Port of Duke Nukem 3D
This ports Fabien Sanglard's Chocolate Duke to run on a version of SDL
for Rockbox.

Change-Id: I8f2c4c78af19de10c1633ed7bb7a997b43256dd9
2017-12-23 21:01:26 -05:00
Franklin Wei
3a39f24b8c puzzles: remove unused overlay loader
Just cluttering the plugins directory as there is no COMBINED support
anymore.

Change-Id: I05591d457055e67cd1a01e007bec7ce77dcecb4a
2017-09-01 20:33:20 -04:00
Sebastian Leonhardt
28ae700444 FS#11922: Lua game - Pixel Painter
* Changed keymaps to PLA and added to SOURCES and CATEGORIES file
* improved keymaps: implement wrap-around and key repeat
* change keymap according to screen orientation
* fix font size calculation
* use blocking button query in main loop
* replace tabs with spaces
* added manual entry
* added original author to CREDITS

Change-Id: Id67ae99cbb7a737c7f4608e278b77a389ac2ffa6
2017-08-23 00:25:11 +02:00
Franklin Wei
9ecabc0a75 fix build for mono targets
Change-Id: I704231b10987ae2adddedebb975538f222843bce
2017-03-15 15:19:00 -04:00
Franklin Wei
1bab5562c2 Speed-reading plugin
Partially based on `spread0r', an open-source ebook reader: https://github.com/xypiie/spread0r

Similar to Spritz(TM): http://spritzinc.com

Change-Id: I6aa54addd1910a83a266aea561406b6268449b67
2017-03-15 15:02:53 -04:00
Franklin Wei
2bc5173d45 puzzles: fix overlay loader (monolithic builds only)
Change-Id: I7f27e96036b5d22e946cc72146cd0f5a791deaf7
2017-01-16 20:53:13 +01:00
Franklin Wei
1a6a8b52f7 Port of Simon Tatham's Puzzle Collection
Original revision: 5123b1bf68777ffa86e651f178046b26a87cf2d9

MIT Licensed. Some games still crash and others are unplayable due to
issues with controls. Still need a "real" polygon filling algorithm.

Currently builds one plugin per puzzle (about 40 in total, around 100K
each on ARM), but can easily be made to build a single monolithic
overlay (800K or so on ARM).

The following games are at least partially broken for various reasons,
and have been disabled on this commit:

Cube:     failed assertion with "Icosahedron" setting
Keen:     input issues
Mines:    weird stuff happens on target
Palisade: input issues
Solo:     input issues, occasional crash on target
Towers:   input issues
Undead:   input issues
Unequal:  input and drawing issues (concave polys)
Untangle: input issues

Features left to do:
 - In-game help system
 - Figure out the weird bugs

Change-Id: I7c69b6860ab115f973c8d76799502e9bb3d52368
2016-12-18 18:13:22 +01:00
Franklin Wei
30d7ead6af One-Time Password client (HOTP and TOTP)
* Implements RFC 4226 (HOTP) and RFC 6238 (TOTP)

* Adds sha1.c to apps/plugins/lib (orignally tools/hmac-sha1.c)

* See manual entry for more information

Change-Id: Ia4a4031b29f97361b541e71438aa7f3ea82212f2
2016-06-05 14:25:09 -04:00
Thomas Orgis
8aa72f07f4 Enhancement of the metronome plugin:
- square sine tick and tock sounds (more annoying, more useful;-)
- optical indication of tics on display
- unification of mode of operation for SWCODEC and HWCODEC (tested on simulator)
  Both playback and display drawing happen in main loop, always.
- operating in two modes now:
-- 1. classic dumb metronome
--- active when openened as application without file to open
--- the usual functionality with tapping and bpm change
--- controls indicated on display
-- 2. track mode with programmable series of parts
--- active when started as viewer for a .tempo file
--- differing meters (4/4, 3/4, 6/8, etc.)
--- patterns (tick/tock/silence on each beat)
--- smooth tempo changes in those tracks

This version had lots of testing regarding metronome accuracy,
resulting in the realization that PLL A and PLL B differ
on the Clip+, causing drift. There is still drift when the timer
intervall is too small, so I settled on 2 ms as compromise.

This is the final version, after adding documentation and extensive
help from Sebastian Leonhardt testing it on slower hardware (YH820),
where it works up to 650 actual bpm with display indication.

Latest change: Documentation nitpicks.

Change-Id: I764c8252526db188352385c5462f9453d882beb9
2015-02-03 22:41:40 +01:00
Franklin Wei
515a3c50fc Add ptable to SOURCES
Change-Id: Ie31306210e3cfe78288269574e78976b682eab31
Reviewed-on: http://gerrit.rockbox.org/981
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-25 00:44:40 +02:00
Michael Giacomelli
448a289da5 Disable periodic table plugin until all the compilation issues are sorted out.
Change-Id: Idb93aa9b5ad57ae1d5671ba5f17d0af0f2d201c7
2014-09-15 02:24:09 +02:00
Franklin Wei
2a35c4cad8 FS#9583 - periodic table
- original rockbox port: Yifu Huang
- original work: Jonathan Bettencourt

- modifications made:
  - PLA-fied
  - Add element 117 (ununseptium)
  - Implemented up/down
  - Fixed actinide/lanthanide navigation so that they are between scandium and titanium
  - Added manual entry
  - Fixed FG/BG colors

Change-Id: Ibabfb0d28f794689ffcd8b9c360fb969d118de08
Reviewed-on: http://gerrit.rockbox.org/950
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-09-15 00:47:11 +02:00
Franklin Wei
9fed5fd9e9 Added Clip/+ to 2048 targets
Change-Id: I9fb5a50f214e9dd87d1f1f62f4324876bdd94fe8
Reviewed-on: http://gerrit.rockbox.org/918
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-08-19 23:04:35 +02:00
Franklin Wei
b61553c2b1 Added 2048 game
Change-Id: I4012dca4f93ca0db386a454635534f648ba906e9
Reviewed-on: http://gerrit.rockbox.org/888
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
Tested: Michael Giacomelli <giac2000@hotmail.com>
2014-08-12 00:01:24 +02:00
Thomas Martitz
a1842c04f9 lcd-24bit: Introduce a 24-bit mid-level LCD driver
With LCD driver all calculation will be performed on RGB888 and the hardware/OS
can display from our 24bit framebuffer.

It is not yet as performance optimized as the existing drivers but should be
good enough.The vast number of small changes is due to the fact that
fb_data can be a struct type now, while most of the code expected a scalar type.

lcd-as-memframe ASM code does not work with 24bit currently so the with 24bit
it enforces the generic C code.

All plugins are ported over. Except for rockpaint. It uses so much memory that
it wouldnt fit into the 512k plugin buffer anymore (patches welcome).

Change-Id: Ibb1964545028ce0d8ff9833ccc3ab66be3ee0754
2014-06-21 00:15:53 +02:00
Jonathan Gordon
6dbfd44b6e main_menu_config: New plugin to configur the main menu order
Plugins/Applications/main_menu_config allows you to edit the
main menu order without having to manually edit config.cfg.

Press the standard OK button to access the internal menu
which allows you to move items up/down in the order and toggle
their visibility. Exit via this menu to have the order saved.

(Suggestions welcome to improve this UI)

Change-Id: I59715ef1ca265aeb6f9666ef27026bc1093f2579
2014-02-13 22:11:23 +11:00
Michael Sevakis
74f90bdb18 Oops, two test plugins were left in apps/plugins/SOURCES.
Change-Id: I1df74c535a8c054223e8687e7c28bc6a130070d0
2013-07-05 22:32:56 -04:00
Michael Sevakis
d37bf24d90 Enable setting of global output samplerate on certain targets.
Replaces the NATIVE_FREQUENCY constant with a configurable frequency.

The user may select 48000Hz if the hardware supports it. The default is
still 44100Hz and the minimum is 44100Hz. The setting is located in the
playback settings, under "Frequency".

"Frequency" was duplicated in english.lang for now to avoid having to
fix every .lang file for the moment and throwing everything out of sync
because of the new play_frequency feature in features.txt. The next
cleanup should combine it with the one included for recording and
generalize the ID label.

If the hardware doesn't support 48000Hz, no setting will be available.

On particular hardware where very high rates are practical and desireable,
the upper bound can be extended by patching.

The PCM mixer can be configured to play at the full hardware frequency
range. The DSP core can configure to the hardware minimum up to the
maximum playback setting (some buffers must be reserved according to
the maximum rate).

If only 44100Hz is supported or possible on a given target for playback,
using the DSP and mixer at other samperates is possible if the hardware
offers them.

Change-Id: I6023cf0c0baa8bc6292b6919b4dd3618a6a25622
Reviewed-on: http://gerrit.rockbox.org/479
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
2013-07-06 04:22:04 +02:00
Michael Sevakis
737e92f4f5 Oops forgot to remove test_codec from plugin SOURCES.
Change-Id: I2730db9430ff688f74a86e6ea8818d0c306aa511
2012-04-29 04:13:10 -04:00
Michael Sevakis
c9bcbe202d Fundamentally rewrite much of the audio DSP.
Creates a standard buffer passing, local data passing and messaging
system for processing stages. Stages can be moved to their own source
files to reduce clutter and ease assimilation of new ones. dsp.c
becomes dsp_core.c which supports an engine and framework for effects.

Formats and change notifications are passed along with the buffer so
that they arrive at the correct time at each stage in the chain
regardless of the internal delays of a particular one.

Removes restrictions on the number of samples that can be processed at
a time and it pays attention to destination buffer size restrictions
without having to limit input count, which also allows pcmbuf to
remain fuller and safely set its own buffer limits as it sees fit.
There is no longer a need to query input/output counts given a certain
number of input samples; just give it the sizes of the source and
destination buffers.

Works in harmony with stages that are not deterministic in terms of
sample input/output ratio (like both resamplers but most notably
the timestretch). As a result it fixes quirks with timestretch hanging
up with certain settings and it now operates properly throughout its
full settings range.
Change-Id: Ib206ec78f6f6c79259c5af9009fe021d68be9734
Reviewed-on: http://gerrit.rockbox.org/200
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
2012-04-29 10:00:56 +02:00
Andrew Ryabinin
397863ab3d hm60x: Add support for plugins.
Change-Id: I4cad0881c8249f163680a280f70d1a0b36248da8
2012-04-19 17:31:13 +04:00
Thomas Martitz
c1bd9b0361 Rework powermgmt to enable code re-use on appliation and sims.
* Introduce CONFIG_BATTERY_MEASURE define, to allow targets (application)
to break powermgmt.c's assumption about the ability to read battery voltage.
There's now additionally percentage (android) and remaining time measure
(maemo). No measure at all also works (sdl app). If voltage can't be measured,
then battery_level() is king and it'll be used for power_history and runtime
estimation.

* Implement target's API in the simulator, i.e. _battery_voltage(), so it
doesn't need to implement it's own powermgmt.c and other stubs. Now
the sim behaves much more like a native target, although it still
changes the simulated battery voltage quickly,

* Other changes include include renaming battery_adc_voltage() to
_battery_voltage(), for consistency with the new target functions and
making some of the apps code aware that voltage and runtime estimation
is not always available.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31548 a1c6a512-1295-4272-9138-f99709370657
2012-01-03 23:44:38 +00:00
Thomas Martitz
bba84a9ce2 Enable (and fix) battery_bench on hosted targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31471 a1c6a512-1295-4272-9138-f99709370657
2011-12-31 13:35:19 +00:00
Rafaël Carré
a2c2589247 don't install boomshine.lua if lua.rock isn't built
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29895 a1c6a512-1295-4272-9138-f99709370657
2011-05-17 22:29:36 +00:00
Bertrik Sikken
81d67d0dda Revert accidental commit of apps/plugins/SOURCES
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29661 a1c6a512-1295-4272-9138-f99709370657
2011-03-29 20:44:09 +00:00
Bertrik Sikken
8351a1aa9d AMSv2 sd: do not try to switch sd cards into high-speed mode.
High-speed mode is only half implemented (sd controller still uses normal speed) and causes card detection problems.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29660 a1c6a512-1295-4272-9138-f99709370657
2011-03-29 20:37:40 +00:00
Andree Buschmann
bb5a1dc6cb Revert unwanted submit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29350 a1c6a512-1295-4272-9138-f99709370657
2011-02-20 16:14:41 +00:00
Andree Buschmann
a7e25a01ba FS#11920: Do not overwrite already existing metadata and take into account string termination. This can save several bytes of the metadata buffer when tags have multiple entries (e.g. multiple gerne tags)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29349 a1c6a512-1295-4272-9138-f99709370657
2011-02-20 16:12:05 +00:00
Andree Buschmann
e3abdb1a52 Undo unwanted commit r29310.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29311 a1c6a512-1295-4272-9138-f99709370657
2011-02-15 20:10:50 +00:00
Andree Buschmann
237ca504e1 All AAC-HE files will double the frame sample count, not only AAC-HE files with SBR upsampling. This change fixes issues with some m4a files reported in the forums.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29310 a1c6a512-1295-4272-9138-f99709370657
2011-02-15 20:00:28 +00:00
Marcin Bukat
6e3da841be Rework ppmviewer to fit our shiny new imageviewer framework. FS#11818 by me.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29012 a1c6a512-1295-4272-9138-f99709370657
2011-01-09 13:22:54 +00:00
Marianne Arnold
dbd2e6b625 Enable building of metronome for hwcodec targets and swcodec sims which was accidentally disabled in r26114. Add a short comment.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28457 a1c6a512-1295-4272-9138-f99709370657
2010-11-02 21:30:19 +00:00
Frank Gevaerts
ad6c8c1a72 New plugin: Resistor code calculator
Flyspray: FS#11585
Author: Calvin Walden


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28191 a1c6a512-1295-4272-9138-f99709370657
2010-10-02 14:11:40 +00:00
Rafaël Carré
7014faee69 Remove build conditions inside .c plugin files
Rather use the Makefile to specify which files must be built
Fix color builds with test plugins enabled (test_scanrate gave an empty
.o file)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27886 a1c6a512-1295-4272-9138-f99709370657
2010-08-25 19:00:58 +00:00
Nils Wallménius
68090f31a2 Enable shopper plugin for charcell too and fix the :$ tag in shopper.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27843 a1c6a512-1295-4272-9138-f99709370657
2010-08-18 09:23:06 +00:00
Nils Wallménius
4461b0498d FS10820 - Shopper, a shopping list plugin by Daniel Rigby.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27842 a1c6a512-1295-4272-9138-f99709370657
2010-08-18 09:10:37 +00:00
Thomas Martitz
35e8b1429a Rockbox as an application: Replace many occurences of #ifdef SIMULATOR with #if (CONFIG_PLATFORM & PLATFORM_HOSTED) (or equivalently).
The simulator defines PLATFORM_HOSTED, as RaaA will do (RaaA will not define SIMULATOR).
The new define is to (de-)select code to compile on hosted platforms generally.

Should be no functional change to targets or the simulator.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27019 a1c6a512-1295-4272-9138-f99709370657
2010-06-21 16:53:00 +00:00
Rafaël Carré
567ef674f0 Build plugin overlays when buffer size is <= 128kB
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26748 a1c6a512-1295-4272-9138-f99709370657
2010-06-10 19:30:54 +00:00
Yoshihisa Uchida
642e8ec40e remove old text viewer plugin (viewer.rock).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26576 a1c6a512-1295-4272-9138-f99709370657
2010-06-05 12:09:10 +00:00
Teruaki Kawashima
c5b8394ea3 new plugin: FS#10559 - lrcplayer: a plugin to view .lrc file.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26574 a1c6a512-1295-4272-9138-f99709370657
2010-06-05 11:54:40 +00:00
Rafaël Carré
e04a71f382 Only build firmware_flash plugin on archos
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26424 a1c6a512-1295-4272-9138-f99709370657
2010-05-31 00:02:20 +00:00
Jens Arnold
dba636a0fa Test plugins: * test_sampr.c is swcodec only * Several plugins are bitmap only.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26271 a1c6a512-1295-4272-9138-f99709370657
2010-05-24 23:13:17 +00:00
Rafaël Carré
681cedb4d8 Build overlay plugins for all targets with PLUGIN_BUFFER <= 0x10000 bytes
Bring Clipv1 & m200v4 plugin buffer down to this limit
zxbox, chessbox and rockboy build on the clip
rockboy doesn't build on m200v4 due to not enough buttons to make a keymap
Some gameboy roms won't run on Clipv1: tetris does but not pokemon for example

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26144 a1c6a512-1295-4272-9138-f99709370657
2010-05-18 14:14:53 +00:00
Rafaël Carré
a01422c54b plugins: changes for targets with small plugin buffer (Clipv1)
- only enable overlays for targets with very small plugin buffer (<=
  0x10000 bytes, i.e. archos)
- change the condition for rockboy to reflect exactly why it can be
  built or not
- Some plugins need a large plugin buffer, only enable them if the
  buffer is big enough (sizes measured on Clipv1)
- disable MIDI if we have 2MB (or less), we won't be able to load the
  instruments in the audio buffer
- remove unusable lua overlay loader
- sokoban code is bigger on clipv1 than on SH, assume it code is 20kB on
  anything but SH so it builds with buffer smaller than 192kB
- reduce the Clipv1 plugin buffer size from 288kB to 96kb, disabling
  zxbox, chessbox, and fft

zxbox and chessbox have overlays which run on archos, we just need to
enable them on other targets. We'll also be able to run rockboy.

fft won't run as it needs a large plugin buffer for greylib

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26141 a1c6a512-1295-4272-9138-f99709370657
2010-05-18 12:46:53 +00:00