jvm/sega/dreamcast/gdrom/GdromIF.java

20 lines
584 B
Java

package sega.dreamcast.gdrom;
import sega.dreamcast.gdrom.G1IF;
import java.misc.Memory;
public class GdromIF {
// transfer_length is in bytes
public static void startG1DMA(int start_address, int transfer_length) {
int gdstar = start_address & ~(0b111 << 29);
Memory.putU4(G1IF.GDAPRO, 0x8843407F);
Memory.putU4(G1IF.G1GDRC, 0x00001001);
Memory.putU4(G1IF.GDSTAR, gdstar);
Memory.putU4(G1IF.GDLEN, transfer_length);
Memory.putU4(G1IF.GDDIR, 1);
Memory.putU4(G1IF.GDEN, 1);
Memory.putU4(G1IF.GDST, 1);
}
}