Age | Commit message (Collapse) | Author |
|
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
|
|
Change-Id: I5aecaf6fcf42fbaf2deb933e590dcda6d01ac212
|
|
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
|
|
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
|
|
Adds a flag to remove the ability to dump and load lua bytecode
saves 6+kb
Change-Id: I080323df7f03f752e0a10928e22a7ce3190a9633
|
|
didn't consider sims might have reserved enums
Change-Id: Ic404972f0836bc81ba149f4ecdd3ec61bd8bd4b3
|
|
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
|
|
Change-Id: I6566c19a0fee630a5e250c1244159d5b488b57ff
|
|
Change-Id: I376fad0f92f1155698740e1b8599a3385998575c
|
|
Change-Id: I8936178191e682b70c64ef6ae04d6636e5cf3521
|
|
Change-Id: Ib9e568ea73a01474facd57cc155e62fa3dc093f7
|
|
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
|
|
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
|
|
Makes things a little bigger by default (but not maximized).
Change-Id: I9e4ae725e22458f1e5140a560ff242159ef582d7
|
|
Let's keep things neat.
Change-Id: I995b2c4949d3adbbd7ea4ef361f0712aa222612e
|
|
track elapsed is needed to use fast-forward and rewind effectively
track length might as well be added too..
Change-Id: I906c92eb5260164c6177d8c0a8ff879b1fad7898
|
|
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
|
|
-T flag is program-specific.
Change-Id: I730a9c19be43e79c7ff4e6d4fb5b8f498f08515e
|
|
I'm dumb...
Change-Id: I5e8ebcf3d7e739c1cd50509b15fe585819ba7fb9
|
|
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
|
|
Change-Id: I7aae3419f56f9cf952d9383f2a6cf9e9950e9a6d
|
|
Prevents system SDL from interfering with thread driver selection. Also
adds test code for alignment faults.
Change-Id: I8bc181922c4a9e764429897dbbaa1ffaabd01126
|
|
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
|
|
Change-Id: I5bc835f1e006ed923cf0b7a3fcf91d4e357913ed
|
|
Change-Id: I6e87658351f32d3c40d9ca2b635ae2f654fdd3aa
|
|
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
|
|
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
|
|
Change-Id: I80751a41d0711c52558ba198c22d1f012998302c
|
|
Cleaned up a bit of copy-pasted code and added some useful comments.
Change-Id: I9a6f37acbeeda58b3ea8c65ee96230372400f323
|
|
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
|
|
- fix double down wins/looses too much money
- fix splitting doubles lost/won amount of first split
- fix insurance pays out too litle
- fix splitting allows to overdraw account
- fix insurance allows to overdraw account
Change-Id: Ib58954d6b960fb2a78f5b4d29496974b7c58fb65
|
|
rewrite the logic of boomshine to make it more difficult
especially small screens
rewrite of the game engine to make memory usage more consistent
throught the level and decrease overall memory usage
this also removes most of the stuttering in play
Add test of device speed this should improve very slow devices
but the threshold might still need tweaked
Change-Id: I49f5269c69405f6b6060ab18f52c96e3f69ebb14
|
|
Change-Id: I5d599d4b25207dcf03ed3f4be76d10907d36a99b
|
|
Taken from the xvortex fork (Roman Stolyarov)
Ported, rebased, and cleaned up by myself.
Change-Id: I7b2bca2d29502f2e4544e42f3d122786dd4b7978
|
|
- Synchronized with actual state of Vortex version in general.
- Playback resume has been moved to the Power button.
- Option button acts identically in most contexts: main menu on short
press and quickscreen on long press.
- Defined A-B repeat mode control buttons.
- Level change action in chessbox has been moved to the volume down button.
(Patch by Igor Poretsky)
Change-Id: I48046ff123d2bccdc0d0c4ed8b088e2053aefa5e
|
|
In newer builds line markers prevent lua helper scripts
from grabbing some inputs especially _bool
This patch adds the -P switch
Inhibit generation of linemarkers in the output from the preprocessor.
This might be useful when running the preprocessor on something that
is not C code, and will be sent to a program which might be confused
by the linemarkers.
Change-Id: I66c3b099729f6651300f9fcf4670533a20cc90c1
|
|
Credit to Igor Poretsky
Change-Id: I151d3511b9cee269190d87df7fa7dd355aaafc9b
|
|
This brings the code to upstream commit 3ece3d6 (I've made my own Rockbox-
specific changes on top of that).
Changes include using C99 `bool' throughout, and minor logic fixes for some
puzzles.
Change-Id: Ie823e73ae49a8ee1de411d6d406df2ba835af541
|
|
the gigabeatS has an embedded struct that needs to be parsed
Change-Id: I88c9101afaaa95182f37ade1410cccb4fb768e33
|
|
moved items to rb.system
added read access to audio_current_track and audio_next_track
Change-Id: Ia055b8cb3848e540067818f596ffd1058da057fb
|
|
dsoundfile.c used memcpy for overlapping memory regions switched to memmove
Suppress the 160+ warnings for cast-function-type
This plugin would require major work to fix these warnings
Change-Id: I309d914839c1e70126a05b387863fd21613497a9
|
|
this should fix 'warning: cast between incompatible function types'
Change-Id: I7d192b8953fd14511431cb50254900f566eb0574
|
|
Change-Id: Ibe2bc6602ff27524a3b96d9523780acbfbf03c76
|
|
This is a seemingly random bug that only affects (as far as I can tell)
arm devices it isn't actually random as code changes cause it to
appear/disappear based on alignment
Change-Id: I4cbc4370677959319f8589fe454e854c45623468
|
|
When loading a file, Lua may call the reader function again after it
returned end of input
https://www.lua.org/bugs.html#5.1.5-2
Change-Id: Ic2f4d727705a0b8f48ce792f6a9f7af25a503037
|
|
Modify Rocklua towards upstream 5.1.5
Clean up some of the Rocklua implementation
Change-Id: Iac722e827899cf84f5ca004ef7ae7ddce5f7fbbe
|
|
pixel-painter was depending on the old readline code that
returned nil for empty lines however empty lines should
have returned an empty string
Change-Id: Ic06ce920a7ab38e1fb8f7197d637e74ed9e35653
|
|
added a few more levels and increased difficulty based on level
Rliimage allows us to use circles in boomshine
Optimized some of the code to exceed the speed of the original
Change-Id: I68eb74f8b68fcdc8a9d022cd172374744425f15d
|
|
Readline didn't handle lines longer than LUAL_BUFFERSIZE it now
reads these in chunks.
Change-Id: Iffe12447e5441ff6b479ce3de1d36df64c276183
|
|
rb.strncasecmp
strcasecmp just exclude count -> rb.strncasecmp(s1, s2)
rb.backlight_brightness_set
backlight_set_brightness -- redundant
rb.backlight_brightness_use_setting -> rb.backlight_brightness_set()
rb.buttonlight_brightness_set
buttonlight_set_brightness -- redundant
rb.buttonlight_brightness_use_setting -> rb.buttonlight_brightness_set()
rb.mixer_frequency
rb.mixer_set_frequency -> mixer_frequency(freq)
rb.mixer_get_frequency -> mixer_frequency
rb.backlight_onoff
rb.backlight_on -> rb.backlight_onoff(true)
rb.backlight_off -> rb.backlight_onoff(false)
rb.touchscreen_mode
rb.touchscreen_set_mode -> rb.touchscreen_mode(mode)
rb.touchscreen_get_mode -> rb.touchscreen_mode()
rb.schedule_cpu_boost
rb.trigger_cpu_boost -> rb.schedule_cpu_boost(true)
rb.cancel_cpu_boost -> rb.schedule_cpu_boost(false)
Includes rbcompat.lua for backwards compatibility
if your script is broken by this change you simply add
`require("rbcompat")` to the top for the old functionality
Change-Id: Ibffd79a0d9be6d7d6a65cc4af5c0a1c6a0f3f94d
|