summaryrefslogtreecommitdiff
path: root/apps/plugins (follow)
Commit message (Collapse)AuthorAge
* tmp on quakequake5Franklin Wei2019-07-29
| | | | Change-Id: Id8bc9e5e47cad5c620f5273fc39348eb19e8e5d8
* sdl: enable on simulator (NOPUSH)Franklin Wei2019-07-28
| | | | | | For debugging only. Change-Id: Ie4780ada6224ef14ba7c46e38245378780210d4e
* lua: wrap thread_set_priority with #ifdef HAVE_PRIORITY_SCHEDULINGFranklin Wei2019-07-28
| | | | | | Should fix a compile-time error on simulator. Change-Id: I5962479579350ebffe6dcce4f65a629b108ff936
* sdl: gut OS/2, win32 code from SDL.cFranklin Wei2019-07-28
| | | | | | This should help with compiling win32 simulators. Change-Id: Icfbf78f7d0a8b0ddebffa8daac3adf55ac21f139
* quake: add README with some notesFranklin Wei2019-07-28
| | | | Change-Id: I702e81f8715b505d4ed6d0eca861e3ddb680038d
* sdl: gut non-Rockbox platform detection codeFranklin Wei2019-07-28
| | | | | | | This should prevent false positives when simulators for other systems (e.g. win32). Change-Id: Ib14a277fbfeb1b0ae141ebc4591d80a2cc0f526d
* Lua Add Emergency Garbage CollectorWilliam Wilgus2019-07-28
| | | | | | | | | | | | | Derivative of work by RobertGabrielJakabosky http://lua-users.org/wiki/EmergencyGarbageCollector I've only implemented the not enough memory part and expanded this idea to adding a mechanism to signal the OOM condition of the plugin buffer which allows us to only grab the playback buffer after garbage collection fails (SO THE MUSIC KEEPS PLAYING AS LONG AS POSSIBLE) Change-Id: I684fb98b540ffc01f7ba324ab5b761ceb59b9f9b
* lua remove unneeded plugin functionsWilliam Wilgus2019-07-28
| | | | Change-Id: I04bc38d03b7f0ca65a815685eb6ab0f5ff825c45
* robotfindskitten: clear message line before cinema sceneFranklin Wei2019-07-28
| | | | | | | Just writes a bunch of spaces to clear the space before playing our animation. Change-Id: I9422190b691039252de70a5c7eec6286c686f031
* quake: cache files in memory to eliminate skipsFranklin Wei2019-07-27
| | | | | | | This caches large files (arbitrarily defined as >1MB) in memory, which reduces the delay when a new model or sound is needed. Change-Id: I0f96449555a32f05d771fe900c10eaf21ecbb4f6
* sdl: fix video regression introduced by 5d05b9dFranklin Wei2019-07-25
| | | | | | | | The quake commit tried to optimize lcd updates but inadvertently broke wolf3d (which always uses a 320x200 screen size). This fixes that and also lets direct mode truly exit early to hopefully save some cycles. Change-Id: I41d96cd584257fe25e791c7f615812849f348e4f
* lua add sound_current, consolidate sound_ functionsWilliam Wilgus2019-07-25
| | | | | | | | | | | | | | | | | add defines for sound functions SOUND_VOLUME, SOUND_BALANCE, SOUND_CHANNELS, SOUND_STEREO_WIDTH ... defines depend on target require "sound_defines" to add them to rb.sound_settings[] consolidates: sound_set, sound_current, sound_default, sound_min, sound_max, sound_unit, sound_pitch, sound_val2phys to a single function rb.sound("name", setting, [value]) require "sound.lua" for old functionality Change-Id: Ice695218aa433f4fcbb48fbd6b8a9bf29c994110
* quake: fix errorneous endian-correcting readsFranklin Wei2019-07-24
| | | | | | | | ef9ee89 introduced Read{Big,Little}{Short,Long,Float} functions to safely read a value in memory. These incorrectly take char*, which causes them to output erroneous 0xff bytes when given bytes with bit 7 set. Change-Id: I9531172301aecfdacae405d2f782f662608ce6df
* quake: fix unaligned accesses in model.cFranklin Wei2019-07-21
| | | | | | Allows playing registered episodes. Change-Id: I20e1ca2000776a19767a9c3caef790d4f62ca188
* quake: pack structs which could potentially be unalignedFranklin Wei2019-07-21
| | | | | | | | The d*_t structs are from "d"isk, which means they could be unaligned. Packing them saves me from having to rewrite every single access to them. Change-Id: I6d5a9525fff368bf29bdb85cf1672fce02ce3396
* quake: enable building Quake2Franklin Wei2019-07-21
| | | | Change-Id: I67f8f7c6e7e337806751057d1c9ebdae16c54119
* Add speech feedback to imageviewer pluginSolomon Peachy2019-07-20
| | | | | | Patch by Igor Poretsky Change-Id: Ifcca7342d07f0d7fb90d282468f7e6576c13d36b
* FS#7705: Voice enable battery bench pluginSolomon Peachy2019-07-20
| | | | | | | Original patch by Daniel Dalton Updated by Igor Poretsky Change-Id: I40d3bb89dbaf3582e1d7af8e8964205507cd2a8d
* FS#7912: Voice enable the chessbox pluginSolomon Peachy2019-07-20
| | | | | | | Original patch by Mario Lang Heavily updated by Igor Poretsky Change-Id: Iaa0c32a79a464860ff294096825ae788f35cf312
* build: Fix puzzles build due to missing dependencySolomon Peachy2019-07-20
| | | | | | | | | As rbcompat.h is -include'd on the command line, the mkdep script doesn't pick it up. Explicitly add the dependency to lang_enum.h to the makefile. Also add lang_enum.h to the 'make clean' target! Change-Id: I33c8ed0cd5c1d44dce02ac9285469c0e4feac00e
* FS#7704 - Talk support for pluginsSolomon Peachy2019-07-20
| | | | | | | | | | | | | | | | | | | | Original patch by Mario Lang Heavily updated by Igor Poretsky Further updated by myself This patch breaks binary API compatibility by placing the new functions where they make the most logical sense. IMO this is the better approach to take given the scope of the changes needed for talk support. Since binary API is changing, the patch also moves some other functions around to more logical locations. As well as voice support in plugins, this patch voice-enables several simple plugins. There will be follow-up patches for many plugins that build on this one. Change-Id: I18070c06e77e8a3c016c2eb6b6c5dbe6633b9b54
* Silence warning in stdio_compat.hFranklin Wei2019-07-19
| | | | Change-Id: I5aecaf6fcf42fbaf2deb933e590dcda6d01ac212
* Quake!Franklin Wei2019-07-19
| | | | | | | | | | | | | | | | | | 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
* lua events from rockboxWilliam Wilgus2019-07-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This library allows events to be subscribed / recieved within a lua script most events in rb are synchronous so flags are set and later checked by a secondary thread to make them (semi?) asynchronous. There are a few caveats to be aware of: FIRST, The main lua state is halted till the lua callback(s) are finished Yielding will not return control to your script from within a callback Also, subsequent callbacks may be delayed by the code in your lua callback SECOND, You must store the value returned from the event_register function you might get away with it for a bit but gc will destroy your callback eventually if you do not store the event THIRD, You only get one cb per event type ["action", "button", "custom", "playback", "timer"] (Re-registration of an event overwrites the previous one) Usage: possible events =["action", "button", "custom", "playback", "timer"] local evX = rockev.register("event", cb_function, [timeout / flags]) cb_function([id] [, data]) ... end rockev.suspend(["event"/nil][true/false]) passing nil affects all events stops event from executing, any but the last event before re-enabling will be lost, passing false, unregistering or re-registering an event will clear the suspend rockev.trigger("event", [true/false], [id]) sets an event to triggered, NOTE!, CUSTOM_EVENT must be unset manually id is only passed to callback by custom and playback events rockev.unregister(evX) Use unregister(evX) to remove an event Unregistering is not necessary before script end, it will be cleaned up on script exit Change-Id: Iea12a5cc0c0295b955dcc1cdf2eec835ca7e354d
* lua disable bytecode dump & undump functionsWilliam Wilgus2019-07-18
| | | | | | | | Adds a flag to remove the ability to dump and load lua bytecode saves 6+kb Change-Id: I080323df7f03f752e0a10928e22a7ce3190a9633
* Fix Red lua move constants out of binary imageWilliam Wilgus2019-07-18
| | | | | | didn't consider sims might have reserved enums Change-Id: Ic404972f0836bc81ba149f4ecdd3ec61bd8bd4b3
* lua move constants out of binary imageWilliam Wilgus2019-07-18
| | | | | | | | | | | | Rockbox constants are auto generated by a perl script like the majority of the plugin functions. Constants are contained in rb_defines.lua, if the file exists it is auto loaded by the lua state for backwards compatibility Frees ~1k Change-Id: I237700576c748f468249e501c839d89effca3f39
* lua alphabetically sort perl generated rocklib_aux functionsWilliam Wilgus2019-07-17
| | | | Change-Id: I6566c19a0fee630a5e250c1244159d5b488b57ff
* lua close state on os.exitWilliam Wilgus2019-07-13
| | | | Change-Id: I376fad0f92f1155698740e1b8599a3385998575c
* wolf3d: allow entering in-game jukebox by holding fire buttonFranklin Wei2019-07-12
| | | | Change-Id: I8936178191e682b70c64ef6ae04d6636e5cf3521
* lua reduce heap allocated buffer sizes, organize luaconf.hWilliam Wilgus2019-07-11
| | | | Change-Id: Ib9e568ea73a01474facd57cc155e62fa3dc093f7
* lua late bound cfunction tablesWilliam Wilgus2019-07-11
| | | | | | | | | | | | | | | | | | | | | | | | We have quite a bit of ram tied up in lua with our c libraries I was searching for a way to free up some of this when I came across read only tables in e-lua but that involved a lot of patching through the source Instead I came up with this.. it frees about 15k ram without much slowdown in code execution since after a function gets called it is automatically added to the table If you have a performance issue you can call the bind method to bind a specific function or the whole table in one shot for instance rb table rb("lcd_clear") -- binds/returns function rb.lcd_clear() rb(nil) -- binds every function in rb table + removes latebind metatable .. -- added pairs and ipairs code from lua 5.2 -- cleaned up code + made more seamless existing fields are now saved rather than overwritten when table is bound Change-Id: I1c20e76b736c032dedc727d2e58928641e40191d
* lua inbinary stringsWilliam Wilgus2019-07-11
| | | | | | | | | | | | | | Allows saving of ram by reusing strings already stored in the binary and storing a pointer instead of malloc and copy to get them inside the lua state Saves about 1.5K overall Derivative of work by bogdanm RAM optimizations: pseudo RO strings, functions in Flash https://github.com/elua/elua/commit/d54659b5723bcd2b1e3900362398c72c18a9aa0b Change-Id: I21d6dcfa32523877efd9f70fb0f88f2a02872649
* wolf3d: increase default viewport sizeFranklin Wei2019-07-10
| | | | | | Makes things a little bigger by default (but not maximized). Change-Id: I9e4ae725e22458f1e5140a560ff242159ef582d7
* wolf3d: write configs to /.rockbox/wolf3d instead of /.wolf4sdlFranklin Wei2019-07-10
| | | | | | Let's keep things neat. Change-Id: I995b2c4949d3adbbd7ea4ef361f0712aa222612e
* lua add track length & elapsed to rb.audio()William Wilgus2019-07-10
| | | | | | | track elapsed is needed to use fast-forward and rewind effectively track length might as well be added too.. Change-Id: I906c92eb5260164c6177d8c0a8ff879b1fad7898
* wolf3d: fix FM OPL alignment bug in a cleaner wayFranklin Wei2019-07-09
| | | | | | | | wl_def.h has a #pragma pack(1), which causes issues when we take the address of an unaligned struct field. This fixes the issue by disabling packing in fmopl_gpl.c. Change-Id: I526880fa73226e8028855896f7efc3a66571b3ec
* sdl: fix buildFranklin Wei2019-07-09
| | | | | | -T flag is program-specific. Change-Id: I730a9c19be43e79c7ff4e6d4fb5b8f498f08515e
* wolf3d: add missing SOURCES.wolfFranklin Wei2019-07-09
| | | | | | I'm dumb... Change-Id: I5e8ebcf3d7e739c1cd50509b15fe585819ba7fb9
* Wolfenstein 3-D!Franklin Wei2019-07-09
| | | | | | | | | | | | | | | | | | | 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
* sdl: silence audio driver debug outputFranklin Wei2019-07-09
| | | | Change-Id: I7aae3419f56f9cf952d9383f2a6cf9e9950e9a6d
* sdl: a couple minor fixesFranklin Wei2019-07-09
| | | | | | | Prevents system SDL from interfering with thread driver selection. Also adds test code for alignment faults. Change-Id: I8bc181922c4a9e764429897dbbaa1ffaabd01126
* lua remove error messages for pre-compiled chunksWilliam Wilgus2019-07-09
| | | | | | | | We don't have the functionality in the viewer to run pre-compiled chunks plus if anyone ever wants to add it its easy enough to remove the define frees 3K Change-Id: I8d2086e04b51e3ce147ab8741a7d354cb9bf1ade
* Boomshine Fix rb.touchscreen_set_mode()William Wilgus2019-06-17
| | | | Change-Id: I5bc835f1e006ed923cf0b7a3fcf91d4e357913ed
* sdl: add pointer to wiki for docsFranklin Wei2019-06-16
| | | | Change-Id: I6e87658351f32d3c40d9ca2b635ae2f654fdd3aa
* sdl: prevent simulator build from using pthreadsFranklin Wei2019-06-16
| | | | | | | | The simulator build will pull in the host SDL headers, which we can't filter out easily. A simple workaround is to simply remove the pthread include from our SDL. Change-Id: I09de0f2e85b891aa88958e21426ab450af516e76
* Fix IRAM overflow introduced in 7a8c9daf7efMarcin Bukat2019-05-31
| | | | | | | | | There is no easy way to determine iram available for test_mem plugin and PLUGIN_BUFFER_SIZE is definitely wrong. Restore previous IRAM buffer sizing Change-Id: Ia563efd46497438c111efc8d7d2bf65904ca9847
* Work around DX90 compile errorFranklin Wei2019-05-15
| | | | Change-Id: I80751a41d0711c52558ba198c22d1f012998302c
* puzzles: refactor rockbox frontendFranklin Wei2019-05-15
| | | | | | Cleaned up a bit of copy-pasted code and added some useful comments. Change-Id: I9a6f37acbeeda58b3ea8c65ee96230372400f323
* puzzles: resync with upstreamFranklin Wei2019-05-15
| | | | | | | | | This brings the puzzles source to upstream commit e2135d5. (I've made my own changes on top of that.) This brings in a couple bugfixes and a new solver for Dominosa. Change-Id: I11d46b43171787832330a5e2e0d2f353f36f727d