rlm@49
|
1 #include "com_aurellem_gb_Gb.h"
|
rlm@49
|
2 #include "../sdl/Drive.h"
|
rlm@56
|
3 #include "../gb/GB.h"
|
rlm@49
|
4
|
rlm@49
|
5 #include <string.h>
|
rlm@49
|
6
|
rlm@49
|
7 #define UNUSED(x) (void)(x)
|
rlm@49
|
8
|
rlm@49
|
9
|
rlm@49
|
10 /*
|
rlm@49
|
11 * Class: com_aurellem_gb_Gb
|
rlm@49
|
12 * Method: sayHello
|
rlm@49
|
13 * Signature: ()V
|
rlm@49
|
14 */
|
rlm@49
|
15 JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_sayHello
|
rlm@49
|
16 (JNIEnv *env, jclass clazz){
|
rlm@49
|
17 UNUSED(env);UNUSED(clazz);
|
rlm@49
|
18 printf("Hello from GB\n");
|
rlm@49
|
19 }
|
rlm@49
|
20
|
rlm@49
|
21 /*
|
rlm@49
|
22 * Class: com_aurellem_gb_Gb
|
rlm@49
|
23 * Method: startEmulator
|
rlm@49
|
24 * Signature: (Ljava/lang/String;)V
|
rlm@49
|
25 */
|
rlm@49
|
26 JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_startEmulator
|
rlm@49
|
27 (JNIEnv *env, jclass clazz, jstring str){
|
rlm@49
|
28 UNUSED(env);UNUSED(clazz);UNUSED(str);
|
rlm@49
|
29
|
rlm@49
|
30 const char *_romName = env->GetStringUTFChars(str, 0);
|
rlm@49
|
31 size_t len = strlen(_romName);
|
rlm@49
|
32
|
rlm@49
|
33 char romName[len + 1];
|
rlm@49
|
34
|
rlm@49
|
35 strcpy(romName, _romName);
|
rlm@49
|
36
|
rlm@49
|
37 char* arguments[] = {"vba-rlm", romName};
|
rlm@49
|
38 runVBA(2, arguments);
|
rlm@49
|
39 }
|
rlm@49
|
40
|
rlm@55
|
41
|
rlm@55
|
42
|
rlm@55
|
43
|
rlm@53
|
44 /*
|
rlm@53
|
45 * Class: com_aurellem_gb_Gb
|
rlm@53
|
46 * Method: step
|
rlm@53
|
47 * Signature: ()V
|
rlm@53
|
48 */
|
rlm@55
|
49 JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_step__
|
rlm@53
|
50 (JNIEnv *env, jclass clazz){
|
rlm@53
|
51 step();
|
rlm@53
|
52 }
|
rlm@53
|
53
|
rlm@53
|
54 /*
|
rlm@53
|
55 * Class: com_aurellem_gb_Gb
|
rlm@55
|
56 * Method: step
|
rlm@55
|
57 * Signature: (I)V
|
rlm@55
|
58 */
|
rlm@55
|
59 JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_step__I
|
rlm@55
|
60 (JNIEnv *env, jclass clazz, jint keymask){
|
rlm@55
|
61 step(keymask);
|
rlm@55
|
62 }
|
rlm@55
|
63
|
rlm@55
|
64
|
rlm@55
|
65
|
rlm@55
|
66
|
rlm@55
|
67
|
rlm@55
|
68 /*
|
rlm@55
|
69 * Class: com_aurellem_gb_Gb
|
rlm@53
|
70 * Method: shutdown
|
rlm@53
|
71 * Signature: ()V
|
rlm@53
|
72 */
|
rlm@53
|
73 JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_shutdown
|
rlm@53
|
74 (JNIEnv *env, jclass clazz){
|
rlm@53
|
75 shutdown();
|
rlm@56
|
76
|
rlm@53
|
77 }
|
rlm@53
|
78
|
rlm@56
|
79 /*
|
rlm@56
|
80 * Class: com_aurellem_gb_Gb
|
rlm@56
|
81 * Method: saveState
|
rlm@56
|
82 * Signature: (Ljava/nio/ByteBuffer;)V
|
rlm@56
|
83 */
|
rlm@56
|
84 JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_saveState
|
rlm@56
|
85 (JNIEnv *env, jclass clazz, jobject buffer, jint size){
|
rlm@56
|
86 char* buffer_address =
|
rlm@56
|
87 ((char*) env->GetDirectBufferAddress(buffer));
|
rlm@56
|
88 gbWriteMemSaveState(buffer_address, size);
|
rlm@56
|
89 }
|
rlm@53
|
90
|
rlm@56
|
91 /*
|
rlm@56
|
92 * Class: com_aurellem_gb_Gb
|
rlm@56
|
93 * Method: loadState
|
rlm@56
|
94 * Signature: (Ljava/nio/ByteBuffer;)V
|
rlm@56
|
95 */
|
rlm@56
|
96 JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_loadState
|
rlm@56
|
97 (JNIEnv *env, jclass clazz, jobject buffer, jint size){
|
rlm@56
|
98 char* buffer_address =
|
rlm@56
|
99 ((char*) env->GetDirectBufferAddress(buffer));
|
rlm@56
|
100 gbReadMemSaveState(buffer_address, size);
|
rlm@56
|
101 }
|
rlm@55
|
102
|
rlm@55
|
103
|
rlm@59
|
104 /*
|
rlm@59
|
105 * Class: com_aurellem_gb_Gb
|
rlm@59
|
106 * Method: getROMSize
|
rlm@59
|
107 * Signature: ()I
|
rlm@59
|
108 */
|
rlm@59
|
109 JNIEXPORT jint JNICALL Java_com_aurellem_gb_Gb_getROMSize
|
rlm@59
|
110 (JNIEnv *env, jclass clazz){
|
rlm@59
|
111 return getRomSize();
|
rlm@59
|
112 }
|
rlm@55
|
113
|
rlm@59
|
114 /*
|
rlm@59
|
115 * Class: com_aurellem_gb_Gb
|
rlm@59
|
116 * Method: getRAMSize
|
rlm@59
|
117 * Signature: ()I
|
rlm@59
|
118 */
|
rlm@59
|
119 JNIEXPORT jint JNICALL Java_com_aurellem_gb_Gb_getRAMSize
|
rlm@59
|
120 (JNIEnv *env, jclass clazz){
|
rlm@59
|
121 return getRamSize();
|
rlm@59
|
122 }
|
rlm@56
|
123
|
rlm@56
|
124
|
rlm@56
|
125
|
rlm@60
|
126 /*
|
rlm@60
|
127 * Class: com_aurellem_gb_Gb
|
rlm@60
|
128 * Method: getRAM
|
rlm@60
|
129 * Signature: ([I)V
|
rlm@60
|
130 */
|
rlm@60
|
131 JNIEXPORT void JNICALL Java_com_aurellem_gb_Gb_getRAM
|
rlm@60
|
132 (JNIEnv *env, jclass clazz, jintArray arr){
|
rlm@60
|
133 jint *ram_store = env->GetIntArrayElements(arr, 0);
|
rlm@60
|
134 storeRam(ram_store);
|
rlm@60
|
135 env->ReleaseIntArrayElements(arr, ram_store, 0);
|
rlm@60
|
136 }
|
rlm@56
|
137
|
rlm@59
|
138
|
rlm@59
|
139
|