summaryrefslogtreecommitdiff
path: root/apps/plugins/xworld/engine.c
diff options
context:
space:
mode:
authorFranklin Wei <frankhwei536@gmail.com>2016-11-03 22:27:01 -0400
committerGerrit Rockbox <gerrit@rockbox.org>2016-11-19 19:17:14 +0100
commit05733649bce2623acfad7b163501c6fdefea985a (patch)
tree8db235af25ae7e72f9793879bd1119db90990cf4 /apps/plugins/xworld/engine.c
parentdeaeb73912c1bb9fd4d3498e59d1789761f3e322 (diff)
downloadrockbox-05733649bce2623acfad7b163501c6fdefea985a.tar.gz
rockbox-05733649bce2623acfad7b163501c6fdefea985a.zip
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
Diffstat (limited to 'apps/plugins/xworld/engine.c')
-rw-r--r--apps/plugins/xworld/engine.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/apps/plugins/xworld/engine.c b/apps/plugins/xworld/engine.c
index 0d1c1bfa61..3a4ddfbf4e 100644
--- a/apps/plugins/xworld/engine.c
+++ b/apps/plugins/xworld/engine.c
@@ -61,6 +61,9 @@ void engine_run(struct Engine* e) {
61 engine_processInput(e); 61 engine_processInput(e);
62 62
63 vm_hostFrame(&e->vm); 63 vm_hostFrame(&e->vm);
64
65 /* only yield() in the whole game :P */
66 rb->yield();
64 } 67 }
65 68
66} 69}
@@ -259,11 +262,11 @@ void engine_init(struct Engine* e) {
259 player_init(&e->player); 262 player_init(&e->player);
260 263
261 /* Init virtual machine, legacy way */ 264 /* Init virtual machine, legacy way */
262 /* vm_initForPart(&e->vm, GAME_PART_FIRST); // This game part is the protection screen */ 265 vm_initForPart(&e->vm, GAME_PART_FIRST); // This game part is the protection screen */
263 266
264 /* Try to cheat here. You can jump anywhere but the VM crashes afterward. */ 267 /* Try to cheat here. You can jump anywhere but the VM crashes afterward. */
265 /* Starting somewhere is probably not enough, the variables and calls return are probably missing. */ 268 /* Starting somewhere is probably not enough, the variables and calls return are probably missing. */
266 /* vm_initForPart(&e->vm, GAME_PART2); Skip protection screen and go directly to intro */ 269 /* vm_initForPart(&e->vm, GAME_PART2); Skip protection screen and go directly to intro */
267 /* vm_initForPart(&e->vm, GAME_PART3); CRASH */ 270 /* vm_initForPart(&e->vm, GAME_PART3); CRASH */
268 /* vm_initForPart(&e->vm, GAME_PART4); Start directly in jail but then crash */ 271 /* vm_initForPart(&e->vm, GAME_PART4); Start directly in jail but then crash */
269 /* vm->initForPart(&e->vm, GAME_PART5); CRASH */ 272 /* vm->initForPart(&e->vm, GAME_PART5); CRASH */