annotate java/src/com/aurellem/gb/Gb.java @ 56:ba4fdfb722ed

emabled loading and saving CPU state from clojure.
author Robert McIntyre <rlm@mit.edu>
date Wed, 07 Mar 2012 14:18:44 -0600
parents 719d910c90f8
children 431ee7ee12de
rev   line source
rlm@43 1 package com.aurellem.gb;
rlm@43 2
rlm@43 3 import java.nio.ByteBuffer;
rlm@56 4 import java.nio.ByteOrder;
rlm@43 5
rlm@43 6 public class Gb {
rlm@43 7
rlm@43 8
rlm@43 9 public Gb(){}
rlm@43 10
rlm@43 11
rlm@43 12 /**
rlm@43 13 * Hello World! This is just to test the native interface.
rlm@43 14 */
rlm@48 15 public static native void sayHello();
rlm@43 16
rlm@43 17 /**
rlm@43 18 * Run the emulator on a given rom
rlm@43 19 * @param rom - the name of the rom.
rlm@43 20 */
rlm@48 21 public static native void startEmulator(String rom);
rlm@48 22
rlm@48 23
rlm@48 24 public static void loadVBA(){
rlm@48 25 System.loadLibrary("vba");
rlm@48 26 }
rlm@43 27
rlm@53 28 public static native void step();
rlm@53 29
rlm@55 30 public static native void step(int keymask);
rlm@55 31
rlm@53 32 public static native void shutdown();
rlm@50 33
rlm@56 34 public static native void saveState(ByteBuffer buffer, int size);
rlm@56 35
rlm@56 36 public static native void loadState(ByteBuffer buffer, int size);
rlm@56 37
rlm@56 38 public static final int SAVE_SIZE = 9000;
rlm@56 39
rlm@56 40 public static ByteBuffer saveState(){
rlm@56 41 ByteBuffer buf =
rlm@56 42 ByteBuffer.allocateDirect(SAVE_SIZE)
rlm@56 43 .order(ByteOrder.nativeOrder());
rlm@56 44 buf.clear();
rlm@56 45 saveState(buf, SAVE_SIZE);
rlm@56 46 buf.flip();
rlm@56 47 return buf;
rlm@56 48 }
rlm@56 49
rlm@56 50 public static void loadState(ByteBuffer saveState){
rlm@56 51 loadState(saveState, SAVE_SIZE);
rlm@56 52 }
rlm@56 53
rlm@43 54 }