summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Quake: attempt 2duke3dFranklin Wei2018-02-11
| | | | Change-Id: I4285036e967d7f0722802d43cf2096c808ca5799
* Add proper float formatting to vuprintfMichael Sevakis2018-02-08
| | | | | | | | | | | | | | | | | | | | | 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
* duke3d: remove debug codeFranklin Wei2018-02-07
| | | | | | | Increments are cheap, but they aren't free. Hopefully this' will squeeze out some fraction of a FPS. Change-Id: If99408ed0ac4ad5f754778e0f48d467bd93cc2e0
* sdl: remove non-rockbox driversFranklin Wei2018-02-07
| | | | | | | We never use any of these other drivers, so having them around just takes up space. Change-Id: Iced812162df1fef3fd55522b7e700acb6c3bcd41
* sdl: fix freeze on startup on PP targetsFranklin Wei2018-02-04
| | | | | | | | | Using the coprocessor was a good idea in theory, but didn't actually work. This moves all SDL threads to the main core, which isn't ideal, but at least works. Additionally, this also adds some good-practice stuff such as setting the default sample rate on exit. Change-Id: If1636b33d439000ec7c4e50f46e8d002708d3121
* duke3d: clean up whitespace in game.cFranklin Wei2018-01-18
| | | | | | | It was absolutely horrendous before; this should make it easier to work with going forward. No functional changes (hopefully). Change-Id: I2dff2d5b2e88725dc586cd968a29052ee4947bb1
* duke3d: improve greylib supportFranklin Wei2018-01-18
| | | | Change-Id: I44f7fd383bd1aa7c9bfc114977acfc2e0f1dd0c8
* duke3d: misc stuff (DON'T PUSH)Franklin Wei2018-01-05
| | | | | | | | Mostly debugging output to the FPS line. Also changes tools/configure to always cross-compile a 32-bit simulator to support duke's horrendous pointer casting. Please don't push this. Change-Id: I3df6c633b5af017f33055dc4f9257738aaf66cfb
* sdl: support greylib video (untested)Franklin Wei2018-01-05
| | | | | | | | | | This is a very early attempt at getting greylib to work in SDL. The driver gives SDL a virtual 24-bit color framebuffer, which it then averages to grayscale in the update step. This works in the simulator, but has not been tested on real hardware yet. I think only the fastest greylib targets will be able to even run duke. Change-Id: Id9b82fe6273627aae3667d534755804f9112f798
* sdl: clean up audio driverFranklin Wei2018-01-05
| | | | | | | | This prevents a (highly improbable) race condition when exiting, and uses pcm_set_frequency() instead of mixer_set_frequency(), since that seems like the Right Thing to Do (TM). Change-Id: Icb6a4597843215f08b3835490ac63f67c9a04736
* duke3d: bump audio sample rate to 22.1KHzFranklin Wei2018-01-05
| | | | | | Recent optimizations to sound mixing should allow this, up from 16KHz. Change-Id: I0ba5742c934118a3a6505b8dc58578b0cfe8ea77
* Add a test_sdl pluginFranklin Wei2018-01-05
| | | | | | | This plugin plays a rough sine wave and is mostly useful for debugging crashes associated with SDL. Probably not worth merging. Change-Id: I58ea675f6f996c15bff11fd35445456e41f9fd60
* duke3d: further optimize audio mixingFranklin Wei2018-01-05
| | | | | | | | | Rather than holding intermediate results as fixed-point, this converts them directly to normal integers (in the range of the PCM sample) while mixing, instead of waiting till the end to perform a separate shifting step. Also, this precalculates some constants in the reverb code. Change-Id: Ie04e444d145bc28ce67eef9ae0ead6d328acf28a
* Enable semaphore objects unconditionallyFranklin Wei2018-01-05
| | | | | | | | This is a prerequisite for duke3d running on monochrome targets. It should probably be made more fine-grained before it is merged, since I'm pretty sure there were good reasons to limit it as before. Change-Id: Ic4c90bd4e7071f82973bb4704b3d4dfb9ad15311
* duke3d: unregister timer on exitFranklin Wei2018-01-05
| | | | | | This was leading to a crash upon audio playback after running the game. Change-Id: I1e9961da443c21e3eff38bcf9877ffa75a922715
* duke3d: enable for non-ARM targetsFranklin Wei2018-01-05
| | | | Change-Id: Ib7ba606a66b76db14bd2a998eb485ed368db9d6e
* duke3d: rewrite sound mixing to use fixed-pointFranklin Wei2017-12-26
| | | | | | Gives significant performance improvement on ipod6g. Change-Id: I1e8462bec197acb10e770c796240b5001df52440
* duke3d: use hardware FPU if availableFranklin Wei2017-12-26
| | | | Change-Id: Idd9fad7bc0604a553c282a0f8c663ad44030ecac
* Revert "Support floating-point formatting"Franklin Wei2017-12-24
| | | | | | | | This reverts commit 01c6dcf6c7b9bb1ad2fa0450f99bacc5f3d3e04b. The hack isn't used in duke, so having it is redundant. Change-Id: Ieb36d75718e0c2d1305440d08021744625117886
* duke3d: Credit the authorsFranklin Wei2017-12-24
| | | | Change-Id: Id27ea4e124b41e819de9218488564a036a01efe2
* duke3d: restrict manual building to enabled targetsFranklin Wei2017-12-24
| | | | Change-Id: I1a66bf5184c9e1f53212f97b097a542f794f2721
* duke3d: restrict targets to ARM onlyFranklin Wei2017-12-24
| | | | Change-Id: I484d6de2d5d4a495ed54e8ee2a80459785b5f5e8
* fix red once moreFranklin Wei2017-12-24
| | | | Change-Id: I6290cc6cca468c197656236d3dd31c3f72c53842
* attempt to fix sysfont.h errorsFranklin Wei2017-12-24
| | | | Change-Id: Icc67dc777d3a2269ececbf4fbe34d78d7bd34087
* Undef potentially conflicting macros in stdio_compat.hFranklin Wei2017-12-24
| | | | Change-Id: If4af3e3cc16a947127e6253d0b81b684b5abb0c9
* fix redFranklin Wei2017-12-24
| | | | Change-Id: Ib28cfd9037901c7b8bc9b2960ad2c1c9a1e25a69
* fix redFranklin Wei2017-12-23
| | | | Change-Id: I20f1bd6f0208f6108d68fb59206b09dd9da4f1af
* Port of Duke Nukem 3DFranklin Wei2017-12-23
| | | | | | | This ports Fabien Sanglard's Chocolate Duke to run on a version of SDL for Rockbox. Change-Id: I8f2c4c78af19de10c1633ed7bb7a997b43256dd9
* Support floating-point formattingFranklin Wei2017-12-23
| | | | | | | This is just a quick and dirty way to get %f formatting to work for some games. It works. Change-Id: I75585e0c6a0f9d6db41a87b71ca405b067d8b85d
* stdio compat layer for pluginsMarcin Bukat2017-12-23
| | | | | | | | | | | | | This is attempt to simplify porting programs to rockbox (as plugins). Currently this compat layer implements: fopen(), fclose(), fflush(), fread(), fwrite(), fseek(), fseeko(), ftell(), ftello(), fgetc(), ungetc(), fputc(), fgets(), clearerr(), ferror(), feof(), fprintf() In order to use it you need to include in ported sources "lib/stdio_compat.h" Change-Id: I5add615dd19c5af9c767ccbfb1bd5a4e466741cb
* Buffering: Missed converting one case assuming const handle size.Michael Sevakis2017-12-19
| | | | | | Must now be h->size, not sizeof (type). Change-Id: Ia0b1b552a486ddbc28b80542cfa76bed9e7cfdb3
* Fix error with action subsystem and custom context mappingWilliam Wilgus2017-12-18
| | | | | | | I removed the mechanism to fall through to internally mapped contexts after plugin contexts were exhausted Change-Id: Id287248184fd67cb2a2242475296247ac86af807
* Buffering: Get rid of disabled code I have no intention of usingMichael Sevakis2017-12-17
| | | | Change-Id: I0e5a20e042291180391b0b0059e44705c256d3e5
* Remove buffering functions from plugin API.Michael Sevakis2017-12-17
| | | | | | They aren't used by anything. Must bump min API version. Change-Id: I9851ab255fc779fff13cb778517f554e5dd20e28
* Get rid of useless playlist probing and fix up some data types.Michael Sevakis2017-12-17
| | | | | | | | | | | Playback checked the files' presence before attempting to buffer the track. Just get rid of that and save an extra open/close call. It will find out if the path is bad when the metadata fails. Fix some size_t/off_t conflation. No need to update plugin version because no plugin actually uses bufopen(). Change-Id: I3db112449dc0b2eeb91c546f308880ac82494fc7
* Fix last commitFranklin Wei2017-12-16
| | | | Change-Id: Ie3b3fad702e8c03d33b4a264139b6de74736e058
* Change button mappings in plugins/lib/keymaps.hFranklin Wei2017-12-16
| | | | | | Some of the previous mappings didn't make much sense. Change-Id: If373e7d5f28b572523856763c999eb7c5180aced
* Fix big WTF when closing the current track.Michael Sevakis2017-12-15
| | | | | | | | | It must be set to something else valid (unless it's the only one left) when closing it, IN ALL CASES, not just if it's first or last. Don't know what was in my head. Hopefully takes care of a reported issue. Even if it's not causing any issues, it was still incorrect. Change-Id: I594af8b35d774ec222dadce80dfa8b95138f037e
* Get voice event out of playback.cMichael Sevakis2017-12-12
| | | | | | | Purpose: A step in removing all voice references from playback code and prelude to other changes. Change-Id: Ic3ad7f7a33b979693e18a3456ced37eb1d2281a4
* Add a 32 byte read buffer to read_line.Michael Sevakis2017-12-12
| | | | | | | | Do as with fdprintf and avoid filesystem calls for every single byte. If it overreads, just put the excess back with lseek, which does no I/O itself. Change-Id: Ifd5d21b5dca7183346e44d365d3f7d45e8cc6438
* Buffering: Remove statically-sized path buffer from handle structMichael Sevakis2017-12-10
| | | | | | | | Paths are stored after the structure at their actual length plus any aligment padding. In principle, any type of auxilliary data could go there. Change-Id: Ic5487dc4089781b5cc52414d1691ba6d9dc1893c
* buffering.c: Fix oopses with caching handle pointerMichael Sevakis2017-12-09
| | | | | | | | | | | The location of the handle cannot be kept across calls to shrink_handle() since it may move the structure. The error was there in one place at the inception, corrected, then reintroduced. Make shrink_handle() return the new location and use it, which makes the side effects of the function clearer. Change-Id: Icae6a0ad6f7bb0d6645b044cccfa4aef88db42ad
* Remove recursion from shrink_buffer()Michael Sevakis2017-12-09
| | | | | | | | There's no need for it any longer since the list is now doubly- linked. As a bonus, stack limits pose no barrier to the length of the list. Change-Id: I41c567f946b640ef1e3c2d93da2f5aef9a763c66
* Fix yellow on hosted targets from c1a01beMichael Sevakis2017-12-09
| | | | Change-Id: I4c63efc6570368df76b6c4bbfb5b673dd081145b
* Playback: Move internal track list onto bufferMichael Sevakis2017-12-09
| | | | | | | | | | | | | | Does away the statically-allocated track list which frees quite a fair amount of in-RAM size. There's no compile-time hard track limit. Recommended TODO (but not right away): Have data small enough use the handle structure as its buffer data area. Almost the entire handle structure is unused for simple allocations without any associated filesystem path. Change-Id: I74a4561e5a837e049811ac421722ec00dadc0d50
* Get test_codec synced with changes in 6c868ddMichael Sevakis2017-12-08
| | | | Change-Id: I47c5ae09ff620b46e42463654e1a073b59fb2191
* Remove explicit 'enum codec_command_action' in codec APIMichael Sevakis2017-12-07
| | | | | | | | | | | | Just use long so the compiler potentially doesn't complain about use of other values not in the enum. It's also the type used around the system for event ids. Increase min codec API version. No functional changes. Change-Id: If4419b42912f5e4ef673adcdeb69313e503f94cc
* Ensure ci is properly updated if seeking before track load completesMichael Sevakis2017-12-07
| | | | | | | | | | | | | | | | | | | | | | If in the middle of a manual skip, playback would try to seek, and therefore start, the codec before the audio handle was available. This wasn't really a problem since the codec would just bail out and be retried later. But, it is a problem for a change I was working on with seeking where the codec could get caught in a full-speed loop trying to seek itself (stoppable, not lockup). The main side effect of this change that you may notice, if using an HDD with dircache turned on and the disk is not spinning, is that you can keep holding down prev/next if dir skipping and the WPS will start FF/RW mode. By the time the new track shows up, you will have seeked into it some amount. Well, the PBE is getting the info ASAP anyway and as far as it's concerned, the next track is under way. On that end of things, it's correct. Perhaps WPS should lock out its own seek mode at certain times. Change-Id: Ifc7409a886df399cec189d1bae2adba3872e857a
* Playback: C99-ize FOREACH_ALBUMART; make loop counter localMichael Sevakis2017-12-04
| | | | Change-Id: Ie6d571ef217246e22b465ef39097ad9d9d1a6436
* Add a small 32-byte write buffer to fdprintf.Michael Sevakis2017-11-28
| | | | | | | | Avoids a call to write() for every output character. It doesn't need to be very large to have a great effect on speed and realize most of the potential. Change-Id: I11820c1968ed7b20aa00e106a022c1b864b03d21