rlm@49: #include "com_aurellem_gb_Gb.h" rlm@49: #include "../sdl/Drive.h" rlm@56: #include "../gb/GB.h" rlm@49: rlm@49: #include rlm@49: rlm@49: #define UNUSED(x) (void)(x) rlm@49: rlm@49: rlm@49: /* rlm@49: * Class: com_aurellem_gb_Gb rlm@49: * Method: sayHello rlm@49: * Signature: ()V rlm@49: */ rlm@49: JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_sayHello rlm@49: (JNIEnv *env, jclass clazz){ rlm@49: UNUSED(env);UNUSED(clazz); rlm@49: printf("Hello from GB\n"); rlm@49: } rlm@49: rlm@49: /* rlm@49: * Class: com_aurellem_gb_Gb rlm@49: * Method: startEmulator rlm@49: * Signature: (Ljava/lang/String;)V rlm@49: */ rlm@49: JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_startEmulator rlm@49: (JNIEnv *env, jclass clazz, jstring str){ rlm@49: UNUSED(env);UNUSED(clazz);UNUSED(str); rlm@49: rlm@49: const char *_romName = env->GetStringUTFChars(str, 0); rlm@49: size_t len = strlen(_romName); rlm@49: rlm@49: char romName[len + 1]; rlm@49: rlm@49: strcpy(romName, _romName); rlm@49: rlm@49: char* arguments[] = {"vba-rlm", romName}; rlm@49: runVBA(2, arguments); rlm@49: } rlm@49: rlm@55: rlm@55: rlm@55: rlm@53: /* rlm@53: * Class: com_aurellem_gb_Gb rlm@53: * Method: step rlm@53: * Signature: ()V rlm@53: */ rlm@55: JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_step__ rlm@53: (JNIEnv *env, jclass clazz){ rlm@53: step(); rlm@53: } rlm@53: rlm@53: /* rlm@53: * Class: com_aurellem_gb_Gb rlm@55: * Method: step rlm@55: * Signature: (I)V rlm@55: */ rlm@55: JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_step__I rlm@55: (JNIEnv *env, jclass clazz, jint keymask){ rlm@55: step(keymask); rlm@55: } rlm@55: rlm@55: rlm@55: rlm@55: rlm@55: rlm@55: /* rlm@55: * Class: com_aurellem_gb_Gb rlm@53: * Method: shutdown rlm@53: * Signature: ()V rlm@53: */ rlm@53: JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_shutdown rlm@53: (JNIEnv *env, jclass clazz){ rlm@53: shutdown(); rlm@56: rlm@53: } rlm@53: rlm@56: /* rlm@56: * Class: com_aurellem_gb_Gb rlm@56: * Method: saveState rlm@56: * Signature: (Ljava/nio/ByteBuffer;)V rlm@56: */ rlm@56: JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_saveState rlm@56: (JNIEnv *env, jclass clazz, jobject buffer, jint size){ rlm@56: char* buffer_address = rlm@56: ((char*) env->GetDirectBufferAddress(buffer)); rlm@56: gbWriteMemSaveState(buffer_address, size); rlm@56: } rlm@53: rlm@56: /* rlm@56: * Class: com_aurellem_gb_Gb rlm@56: * Method: loadState rlm@56: * Signature: (Ljava/nio/ByteBuffer;)V rlm@56: */ rlm@56: JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_loadState rlm@56: (JNIEnv *env, jclass clazz, jobject buffer, jint size){ rlm@56: char* buffer_address = rlm@56: ((char*) env->GetDirectBufferAddress(buffer)); rlm@56: gbReadMemSaveState(buffer_address, size); rlm@56: } rlm@55: rlm@55: rlm@59: /* rlm@59: * Class: com_aurellem_gb_Gb rlm@59: * Method: getROMSize rlm@59: * Signature: ()I rlm@59: */ rlm@59: JNIEXPORT jint JNICALL Java_com_aurellem_gb_Gb_getROMSize rlm@59: (JNIEnv *env, jclass clazz){ rlm@59: return getRomSize(); rlm@59: } rlm@55: rlm@59: /* rlm@59: * Class: com_aurellem_gb_Gb rlm@59: * Method: getRAMSize rlm@59: * Signature: ()I rlm@59: */ rlm@59: JNIEXPORT jint JNICALL Java_com_aurellem_gb_Gb_getRAMSize rlm@59: (JNIEnv *env, jclass clazz){ rlm@59: return getRamSize(); rlm@59: } rlm@56: rlm@60: /* rlm@60: * Class: com_aurellem_gb_Gb rlm@60: * Method: getRAM rlm@60: * Signature: ([I)V rlm@60: */ rlm@60: JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_getRAM rlm@60: (JNIEnv *env, jclass clazz, jintArray arr){ rlm@60: jint *ram_store = env->GetIntArrayElements(arr, 0); rlm@60: storeRam(ram_store); rlm@60: env->ReleaseIntArrayElements(arr, ram_store, 0); rlm@60: } rlm@56: rlm@59: rlm@61: /* rlm@61: * Class: com_aurellem_gb_Gb rlm@61: * Method: getROM rlm@61: * Signature: ([I)V rlm@61: */ rlm@61: JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_getROM rlm@61: (JNIEnv *env, jclass clazz, jintArray arr){ rlm@61: jint *ram_store = env->GetIntArrayElements(arr, 0); rlm@61: storeRom(ram_store); rlm@61: env->ReleaseIntArrayElements(arr, ram_store, 0); rlm@61: } rlm@59: rlm@61: rlm@61: /* rlm@61: * Class: com_aurellem_gb_Gb rlm@61: * Method: getWRAM rlm@61: * Signature: ([I)V rlm@61: */ rlm@61: JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_getWRAM rlm@61: (JNIEnv *env, jclass clazz, jintArray arr){ rlm@61: jint *ram_store = env->GetIntArrayElements(arr, 0); rlm@61: storeWRam(ram_store); rlm@61: env->ReleaseIntArrayElements(arr, ram_store, 0); rlm@61: } rlm@61: rlm@61: rlm@61: /* rlm@61: * Class: com_aurellem_gb_Gb rlm@61: * Method: getVRAM rlm@61: * Signature: ([I)V rlm@61: */ rlm@61: JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_getVRAM rlm@61: (JNIEnv *env, jclass clazz, jintArray arr){ rlm@61: jint *ram_store = env->GetIntArrayElements(arr, 0); rlm@61: storeVRam(ram_store); rlm@61: env->ReleaseIntArrayElements(arr, ram_store, 0); rlm@61: } rlm@61: rlm@61: rlm@61: