XWorld: some fixes

Fixes sound on most platforms, original root cause was bad menu code
as well as DMA callbacks taking too long. Worked around with smaller
chunk sizes. Permanent fix would include moving mixing out of the
callback. Rewrites input with code from rockboy/doom. Cherry-picks a
change from Gregory Montoir's `rawgl' to patch the code wheel
screen. Finally, adds a motion blur filter on select targets.

Change-Id: I8df549c923c5075800c6625c36c8202e53de1d27
This commit is contained in:
Franklin Wei 2016-11-03 22:27:01 -04:00 committed by Gerrit Rockbox
parent deaeb73912
commit 05733649bc
10 changed files with 347 additions and 141 deletions

View file

@ -23,12 +23,20 @@
#ifndef __XWORLD_SYS_H__
#define __XWORLD_SYS_H__
#include "plugin.h"
#include "intern.h"
#define SYS_NEGATIVE_COLOR
#if (PLUGIN_BUFFER_SIZE >= 0x80000 && defined(HAVE_LCD_COLOR) && LCD_DEPTH < 24)
#define SYS_MOTION_BLUR
/* must be odd */
#define BLUR_FRAMES 3
#else
#error lol
#endif
#define NUM_COLORS 16
#define MAX_MUTEXES 16
#define SETTINGS_FILE "settings.xfg"
#define SETTINGS_FILE "settings.zfg" /* change when backwards-compatibility is broken */
#define CODE_X 80
#define CODE_Y 36
@ -103,6 +111,7 @@ struct System {
bool sound_enabled;
int sound_bufsize;
bool zoom;
bool blur;
} settings;
};