summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-07-27quake: cache files in memory to eliminate skipsFranklin Wei
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
2019-07-27Multiboot update manual entryWilliam Wilgus
Change-Id: I99abe45adaade350222fa1f0aaf864a06d6dfcdf
2019-07-27Fix non aligned crashes with tlsfWilliam Wilgus
When the starting address of the plugin buffer is not aligned to 8 bytes crashes occur in tlsf (on ARM atleast) Change-Id: I655500c25e1c8f84b4a2418e9ec5c5948e4bea82
2019-07-26Add Vagrant configuration for creating a development VMVencislav Atanasov
Vagrant is an application that automates creation and provisioning of a virtual machine for development. The config here creates an Ubuntu 16.04 LTS machine, updates it, downloads and installs the toolchains for sh, m68k and arm, mingw-w64, SDL (for Windows simulators) and other packages needed for building Rockbox. It works fine for building a Windows simulator and compiling iPod classic binaries. It should be possible to make the other build types, too. MIPS toolchain fails to build, ARM-APP is not tested because the files download very slow on my connection. Please test if it works for you, and let me know. Quick start: download and install Vagrant and VirtualBox for your operating system, make sure VT-x / AMD-V is enabled in your BIOS/EFI setup, open a shell in rockbox/tools and input the command "vagrant up" Change-Id: Ief5476ab066663a4db7e85404b25d2d781d90532
2019-07-26Add Andy Potter to CREDITSFranklin Wei
Again, this is inferred from their Gerrit username. I've also emailed them to confirm the name. Change-Id: I2aced94a5a0a8847c86da0e425db4130b4dccb69
2019-07-26Fix issue with building the UI Simulator for WindowsLiveboxAndy
Addition of rtc support for AGPtEK ROCKER broke building the UI Simulator for Windows. This patch removes the rtc support if building UI Simulator for Windows.
2019-07-25Add Yangyong Wu to CREDITSFranklin Wei
This name is inferred from the contributor's Github account email (interpreted using the standard given-family name Chinese convention). Change-Id: I2285a62c3332d562f44c5087b296e4ea2d61200e
2019-07-25fixed alac_set_info() issues.aozima
2019-07-25sdl: fix video regression introduced by 5d05b9dFranklin Wei
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
2019-07-25lua add sound_current, consolidate sound_ functionsWilliam Wilgus
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
2019-07-25Fix Red -- sound_current #_2William Wilgus
Change-Id: Iae31a5fd414708b4a222ba0b05b5828a8e0d19af
2019-07-25Fix Red -- sound_currentWilliam Wilgus
Remove dependency on settings.g for bootloader ifdef out AUDIOHW_HAVE_EQ Settings these should be indexing the global_settings.hw_eq_bands[AUDIOHW_EQ_BAND_NUM] struct Change-Id: I1d1a8556ef88ce43397b600261696dacdf372034
2019-07-25Add sound_current to plugin apiWilliam Wilgus
Adds: sound_current(int setting) returns the current sound setting from global_settings complements sound_max, sound_min and sound_default Change-Id: I35bd893753c958f808492906fe533edc51d5d57c
2019-07-24quake: fix errorneous endian-correcting readsFranklin Wei
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
2019-07-24FS#12887: Fix playlist order after moving a track before currentSolomon Peachy
Original patch by Juan Gonzalez Updated by Igor Poretsky Change-Id: I913d96df906e56fb4063485a6725cd13e395f165
2019-07-21quake: fix unaligned accesses in model.cFranklin Wei
Allows playing registered episodes. Change-Id: I20e1ca2000776a19767a9c3caef790d4f62ca188
2019-07-21quake: pack structs which could potentially be unalignedFranklin Wei
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
2019-07-21quake: enable building Quake2Franklin Wei
Change-Id: I67f8f7c6e7e337806751057d1c9ebdae16c54119
2019-07-20Add speech feedback to imageviewer pluginSolomon Peachy
Patch by Igor Poretsky Change-Id: Ifcca7342d07f0d7fb90d282468f7e6576c13d36b
2019-07-20Move get_codepage_name() back out of #ifdef HAVE_LCD_BITMAPFrank Gevaerts
55eb1c54 accidentally put it there. Change-Id: I25d1984f7d4a1e6d65d23aafab5eefea4f92322e
2019-07-20Don't have the inclusion of lang_enum.h depend on PLUGINFrank Gevaerts
This #ifdef apparcntly confuses dependency generation, and since lang_enum.h just declares an enum, including it unconditionally is harmless. Change-Id: I8feaff7657080962f1ae6305492075c8a5bca673
2019-07-20FS#7705: Voice enable battery bench pluginSolomon Peachy
Original patch by Daniel Dalton Updated by Igor Poretsky Change-Id: I40d3bb89dbaf3582e1d7af8e8964205507cd2a8d
2019-07-20FS#7912: Voice enable the chessbox pluginSolomon Peachy
Original patch by Mario Lang Heavily updated by Igor Poretsky Change-Id: Iaa0c32a79a464860ff294096825ae788f35cf312
2019-07-20Move date/time strings out of RTC contextFranklin Wei
Should fix plugin build. Change-Id: I332235a4e7d08a80abd91fa0705e950c7dfec449
2019-07-20Fix build on non-RTC targets.Solomon Peachy
talk_time and talk_date are now exposed to plugins, so the strings they reference need to be moved from rtc-only to global. Change-Id: I88166dc21455d595878d3d1ec557289cd3a5ff6b
2019-07-20Increase set_time_screen() buffer size for hosted to keep the compiler happy.Frank Gevaerts
The format strings in the snprintf can in theory need 60 characters This will not happen in practice (because seconds are 0..60 and not full-range integers etc.), but -D_FORTIFY_SOURCE will still warn about it, so we use 60 characters for HOSTED to make the compiler happy. Native builds still use 20, which is enough in practice. Change-Id: I22a2bab8134442e531a10bf883f3a369ade0fdc3
2019-07-20build: Fix puzzles build due to missing dependencySolomon Peachy
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
2019-07-20Fix Red - Talk support for pluginsWilliam Wilgus
generate lang_enum prior to apps Change-Id: Ib484138e2b01267db856415db0364d8c93237073
2019-07-20Plugin APIWilliam Wilgus
Reorganize Plugin functions in prep for API bump Stub in sound_current add sleep_timer Change-Id: I74b3a433c86bd6cec43a7c45ae0d2db95c97bb60
2019-07-20FS#7704 - Talk support for pluginsSolomon Peachy
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
2019-07-19Silence warning in stdio_compat.hFranklin Wei
Change-Id: I5aecaf6fcf42fbaf2deb933e590dcda6d01ac212
2019-07-19Limit float formatting to only targets building QuakeFranklin Wei
The Quake plugin is the only code that actually relies on float formatting. Because Quake only runs on targets with huge memory anyway, limiting their formatting to just those targets will minimize the increased memory use in the core. Change-Id: Icdbe26ec6ede564861cc01ac4add76a12b00ecd5
2019-07-19Quake!Franklin Wei
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-19Add proper float formatting to vuprintfMichael Sevakis
Wanted to see how gnarly it is to do. Big number handling could be done with better algorithms since it can get a bit slow with large integers or tiny fractions with many lead zeros when only a few digits are needed. Anyway, it supports %e, %E, %f, %F, %g and %G. No %a or long double support seems warranted at the moment. Assumes IEEE 754 double format but it's laid out to be able to replace a function to handle others if needed. Tested in a driver program that has a duplicate vuprintf and the content was pasted in once it looked sound enough to put up a patch. Change-Id: I6dae8624d3208e644c88e36e6a17d8fc9144f988
2019-07-19lua events from rockboxWilliam Wilgus
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
2019-07-19Put -lfirmware in CORE_LIBS, to fix -thumb buildsFrank Gevaerts
For unknown reasons, -thumb builds need -lfirmware after -lrbcodec (but still before -lunwarminder)i. Other builds are still happy if we do that. Including it via CORE_LIBS instead of explicitly achieves that. Change-Id: Id69e4a0c042f90f71cfd9a72202ce4d8ef6a4181
2019-07-18lua disable bytecode dump & undump functionsWilliam Wilgus
Adds a flag to remove the ability to dump and load lua bytecode saves 6+kb Change-Id: I080323df7f03f752e0a10928e22a7ce3190a9633
2019-07-18Fix Red lua move constants out of binary imageWilliam Wilgus
didn't consider sims might have reserved enums Change-Id: Ic404972f0836bc81ba149f4ecdd3ec61bd8bd4b3
2019-07-18lua move constants out of binary imageWilliam Wilgus
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
2019-07-17lua alphabetically sort perl generated rocklib_aux functionsWilliam Wilgus
Change-Id: I6566c19a0fee630a5e250c1244159d5b488b57ff
2019-07-15sdl: credit the authorsFranklin Wei
Long overdue, but better late than never. Change-Id: I3403641b68ba6ef0d6e748b482431f05921b81f9
2019-07-15Updated Serbian translationeevan78
Change-Id: I93477548ddd92a5390ac2a828b4262e3bb516f4b
2019-07-13lua close state on os.exitWilliam Wilgus
Change-Id: I376fad0f92f1155698740e1b8599a3385998575c
2019-07-12wolf3d: allow entering in-game jukebox by holding fire buttonFranklin Wei
Change-Id: I8936178191e682b70c64ef6ae04d6636e5cf3521
2019-07-11lua reduce heap allocated buffer sizes, organize luaconf.hWilliam Wilgus
Change-Id: Ib9e568ea73a01474facd57cc155e62fa3dc093f7
2019-07-11lua late bound cfunction tablesWilliam Wilgus
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
2019-07-11lua inbinary stringsWilliam Wilgus
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
2019-07-10wolf3d: increase default viewport sizeFranklin Wei
Makes things a little bigger by default (but not maximized). Change-Id: I9e4ae725e22458f1e5140a560ff242159ef582d7
2019-07-10wolf3d: write configs to /.rockbox/wolf3d instead of /.wolf4sdlFranklin Wei
Let's keep things neat. Change-Id: I995b2c4949d3adbbd7ea4ef361f0712aa222612e
2019-07-10tagtree.c->loadroot() guard against overflowWilliam Wilgus
forum user chris_s noted an possible unhandled cache overflow Change-Id: Ia79399d6581ef6b635578896519fda8126c731d7