# HG changeset patch # User Robert McIntyre # Date 1331104673 21600 # Node ID 139178c4d8435c2ef879f75db389ff137efbb5c6 # Parent 75349da4c3440881314091b84094cae0a4168225 clojure can now drive vba diff -r 75349da4c344 -r 139178c4d843 src/clojure/Makefile.am --- a/src/clojure/Makefile.am Wed Mar 07 00:36:53 2012 -0600 +++ b/src/clojure/Makefile.am Wed Mar 07 01:17:53 2012 -0600 @@ -1,7 +1,7 @@ lib_LTLIBRARIES = libvba.la libvba_la_SOURCES = \ - clojure.c + clojure.cpp libvba_la_LIBADD = \ ../common/libgbcom.la \ diff -r 75349da4c344 -r 139178c4d843 src/clojure/clojure.c --- a/src/clojure/clojure.c Wed Mar 07 00:36:53 2012 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -#include "com_aurellem_gb_Gb.h" - -#define UNUSED(x) (void)(x) - - -/* - * Class: com_aurellem_gb_Gb - * Method: sayHello - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_sayHello -(JNIEnv *env, jclass clazz){ - UNUSED(env);UNUSED(clazz); - printf("Hello from GB\n"); -} - -/* - * Class: com_aurellem_gb_Gb - * Method: startEmulator - * Signature: (Ljava/lang/String;)V - */ -JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_startEmulator -(JNIEnv *env, jclass clazz, jstring str){ - UNUSED(env);UNUSED(clazz);UNUSED(str); -} - diff -r 75349da4c344 -r 139178c4d843 src/clojure/clojure.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/clojure/clojure.cpp Wed Mar 07 01:17:53 2012 -0600 @@ -0,0 +1,39 @@ +#include "com_aurellem_gb_Gb.h" +#include "../sdl/Drive.h" + +#include + +#define UNUSED(x) (void)(x) + + +/* + * Class: com_aurellem_gb_Gb + * Method: sayHello + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_sayHello +(JNIEnv *env, jclass clazz){ + UNUSED(env);UNUSED(clazz); + printf("Hello from GB\n"); +} + +/* + * Class: com_aurellem_gb_Gb + * Method: startEmulator + * Signature: (Ljava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_startEmulator +(JNIEnv *env, jclass clazz, jstring str){ + UNUSED(env);UNUSED(clazz);UNUSED(str); + + const char *_romName = env->GetStringUTFChars(str, 0); + size_t len = strlen(_romName); + + char romName[len + 1]; + + strcpy(romName, _romName); + + char* arguments[] = {"vba-rlm", romName}; + runVBA(2, arguments); +} + diff -r 75349da4c344 -r 139178c4d843 src/sdl/Drive.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/sdl/Drive.h Wed Mar 07 01:17:53 2012 -0600 @@ -0,0 +1,2 @@ +int runVBA(int, char**); + diff -r 75349da4c344 -r 139178c4d843 src/sdl/SDL.cpp --- a/src/sdl/SDL.cpp Wed Mar 07 00:36:53 2012 -0600 +++ b/src/sdl/SDL.cpp Wed Mar 07 01:17:53 2012 -0600 @@ -44,7 +44,7 @@ #include "common/inputGlobal.h" #include "../common/vbalua.h" #include "SoundSDL.h" - +#include "Drive.h" #define GBC_CAPABLE ((gbRom[0x143] & 0x80) != 0) #define SGB_CAPABLE (gbRom[0x146] == 0x03) @@ -2705,6 +2705,12 @@ return 0; } +// RLM +int runVBA(int argc, char **argv){ + return main(argc, argv); +} + + void systemMessage(int num, const char *msg, ...) { char buffer[2048];