diff --git a/src/android/app/src/main/java/org/libsdl/app/SDLActivity.java b/src/android/app/src/main/java/org/libsdl/app/SDLActivity.java index 20c510a..8a0727a 100644 --- a/src/android/app/src/main/java/org/libsdl/app/SDLActivity.java +++ b/src/android/app/src/main/java/org/libsdl/app/SDLActivity.java @@ -1698,7 +1698,11 @@ class SDLMain implements Runnable { // Runs SDL_main() String library = SDLActivity.mSingleton.getMainSharedObject(); String function = SDLActivity.mSingleton.getMainFunction(); - String[] arguments = SDLActivity.mSingleton.getArguments(); + String[] a = SDLActivity.mSingleton.getArguments(); + String[] args = new String[a.length + 2]; + System.arraycopy(a, 0, args, 0, a.length); + args[a.length + 0] = "-cd"; + args[a.length + 1] = SDLActivity.mSingleton.getCacheDir().getPath(); try { android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_DISPLAY); @@ -1708,7 +1712,7 @@ class SDLMain implements Runnable { Log.v(SDLActivity.TAG, "Running main function " + function + " from library " + library); - SDLActivity.nativeRunMain(library, function, arguments); + SDLActivity.nativeRunMain(library, function, args); Log.v(SDLActivity.TAG, "Finished main function"); diff --git a/src/uxnemu.c b/src/uxnemu.c index 6757a42..b82b32a 100644 --- a/src/uxnemu.c +++ b/src/uxnemu.c @@ -565,6 +565,11 @@ main(int argc, char **argv) set_zoom(atoi(argv[++i])); else return error("Opt", "-s No scale provided."); + } else if(strcmp(argv[i], "-cd") == 0) { + if(i < argc - 1) + chdir(argv[++i]); + else + return error("Opt", "-cd No path provided."); } else if(!loaded++) { if(!start(&u, argv[i])) return error("Boot", "Failed to boot.");