view java/src/com/aurellem/gb/Gb.java @ 63:c44cf1f5954c

java/c++ framework more or less complete
author Robert McIntyre <rlm@mit.edu>
date Wed, 07 Mar 2012 20:37:46 -0600
parents 4699c7bab77d
children d7c38ce83421
line wrap: on
line source
1 package com.aurellem.gb;
3 import java.nio.ByteBuffer;
4 import java.nio.IntBuffer;
5 import java.nio.ByteOrder;
7 public class Gb {
10 public Gb(){}
13 /**
14 * Hello World! This is just to test the native interface.
15 */
16 public static native void sayHello();
18 /**
19 * Run the emulator on a given rom
20 * @param rom - the name of the rom.
21 */
22 public static native void startEmulator(String rom);
25 public static void loadVBA(){
26 System.loadLibrary("vba");
27 }
29 public static native void step();
31 public static native void step(int keymask);
33 public static native void shutdown();
35 public static native void saveState(ByteBuffer buffer, int size);
37 public static native void loadState(ByteBuffer buffer, int size);
39 public static final int SAVE_SIZE = 90000;
41 public static ByteBuffer saveState(){
42 ByteBuffer buf =
43 ByteBuffer.allocateDirect(SAVE_SIZE)
44 .order(ByteOrder.nativeOrder());
45 buf.clear();
46 saveState(buf, SAVE_SIZE);
47 buf.flip();
48 return buf;
49 }
51 public static void loadState(ByteBuffer saveState){
52 loadState(saveState, SAVE_SIZE);
53 }
55 public static native int getROMSize();
56 public static native int getRAMSize();
59 public static final int WRAM_SIZE = 0x8000;
61 public static final int VRAM_SIZE = 0x4000;
63 public static final int NUM_REGISTERS = 27;
65 public static native void getRAM(int[] store);
67 public static native void getROM(int[] store);
69 public static native void getWRAM(int[] store);
71 public static native void getVRAM(int[] store);
73 public static native void getRegisters(int[] store);
74 }