Commit graph

12 commits

Author SHA1 Message Date
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
c2411f785c sdl: silence audio driver debug output
Change-Id: I7aae3419f56f9cf952d9383f2a6cf9e9950e9a6d
2019-07-09 11:20:55 -04:00
Franklin Wei
71922db6cf sdl: a couple minor fixes
Prevents system SDL from interfering with thread driver selection. Also
adds test code for alignment faults.

Change-Id: I8bc181922c4a9e764429897dbbaa1ffaabd01126
2019-07-09 11:20:55 -04:00
Franklin Wei
b04f267ec3 sdl: prevent simulator build from using pthreads
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
2019-06-16 14:28:56 -04:00
Franklin Wei
6039eb05ba sdl: remove non-rockbox drivers
We never use any of these other drivers, so having them around just takes
up space.

Change-Id: Iced812162df1fef3fd55522b7e700acb6c3bcd41
2018-03-12 20:52:01 -04:00
Franklin Wei
ef373c03b9 sdl: clean up audio driver
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
2018-01-15 19:47:49 -05:00
Franklin Wei
69ff35ac49 sdl: correct misleading comments
Change-Id: Ieb33d3fec1e0d834c5e294b79f280959497acb6a
2018-01-14 19:32:13 -05:00
Michael Sevakis
769d73d734 Use sleep(0) instead of yield() in SDL_WaitAudio
This allows CPU load to drop below 100%, which is good for anything
that scales frequency and voltage based on CPU load. Also conserves
some energy by letting the core go idle if there aren't any available
buffers.

Change-Id: I9385ac9e030f97010b12eb825875a900463ab0ac
2018-01-14 19:32:13 -05:00
Franklin Wei
ccd612345c sdl: fix freeze on startup on PP targets
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
2018-01-11 19:45:31 -05:00
Franklin Wei
896c828152 duke3d: unregister timer on exit
This was leading to a crash upon audio playback after running the game.

Change-Id: I1e9961da443c21e3eff38bcf9877ffa75a922715
2018-01-05 18:05:10 -05:00
Franklin Wei
6416d96fbc fix red
Change-Id: I20f1bd6f0208f6108d68fb59206b09dd9da4f1af
2017-12-23 21:28:20 -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