jsgbc
Version:
jsGBC Core Emulator
39 lines (38 loc) • 1.68 kB
TypeScript
import GameBoy from "../GameBoy";
export declare type ReaderFunction = (address: number) => number;
export declare type WriterFunction = (address: number, value: number) => void;
export default class Memory {
private gameboy;
private data;
readers: ReaderFunction[];
highReaders: ReaderFunction[];
writers: WriterFunction[];
highWriters: WriterFunction[];
constructor(gameboy: GameBoy, data?: Uint8Array);
read(address: number): number;
readHigh(address: number): number;
hasReader(address: number): boolean;
hasHighReader(address: number): boolean;
setReaders(from: number, to: number, reader: ReaderFunction): void;
setReader(address: number, reader: ReaderFunction): void;
setHighReaders(from: number, to: number, reader: ReaderFunction): void;
setHighReader(address: number, reader: ReaderFunction): void;
write(address: number, value: number): void;
writeHigh(address: number, data: number): void;
hasWriter(address: number): boolean;
hasHighWriter(address: number): boolean;
setWriters(from: number, to: number, writer: WriterFunction): void;
setWriter(address: number, writer: WriterFunction): void;
setHighWriter(address: number, writer: WriterFunction): void;
init(): void;
updateIoRegisters(): void;
enableBootRomControl(): void;
disableBootRomControl(): void;
writeIllegal: (address: number, data: number) => void;
readBad: (address: number) => number;
readDirectly: (address: number) => number;
memoryReadJumpCompile(): void;
memoryWriteJumpCompile(): void;
registerIOMemoryWriters(): void;
recompileModelSpecificIOWriteHandling(): void;
}