From 8df38e9c11aa74b61bc2224da7f53889c8b6dcca Mon Sep 17 00:00:00 2001 From: Kevin Hamacher Date: Wed, 25 May 2016 22:51:40 +0200 Subject: [PATCH] Initial commit --- Cargo.toml | 6 + doc/GBCPUman.pdf | Bin 0 -> 298668 bytes doc/memory_map | 24 ++++ doc/notes.py | 31 +++++ src/cpu.rs | 295 ++++++++++++++++++++++++++++++++++++++++++++ src/instruction.rs | 71 +++++++++++ src/interconnect.rs | 92 ++++++++++++++ src/main.rs | 32 +++++ 8 files changed, 551 insertions(+) create mode 100644 Cargo.toml create mode 100644 doc/GBCPUman.pdf create mode 100644 doc/memory_map create mode 100644 doc/notes.py create mode 100644 src/cpu.rs create mode 100644 src/instruction.rs create mode 100644 src/interconnect.rs create mode 100644 src/main.rs diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..8e6e8ab --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "gbc" +version = "0.1.0" +authors = ["Kevin Hamacher "] + +[dependencies] diff --git a/doc/GBCPUman.pdf b/doc/GBCPUman.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7cf38e1b25a03f5c7067d149ba91b04b560b2157 GIT binary patch literal 298668 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⁢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 BoqzxU literal 0 HcmV?d00001 diff --git a/doc/memory_map b/doc/memory_map new file mode 100644 index 0000000..21b02d7 --- /dev/null +++ b/doc/memory_map @@ -0,0 +1,24 @@ +0000 7FFF Cartridge +8000 9FFF Video RAM +A000 BFFF External RAM (Cartridge) +C000 DFFF Work RAM +E000 FCFF Copy of the work RAM +FE00 FE9F OAM (Sprite Attribute Table) +FEA0 FEFF Unused +FF00 FF7F Hardware IO +FE80 FFFE High RAM +FFFF FFFF Interrupt switch + +Hardware IO: +F00 Buttons -> 00000000 / state inverted + XX01v^<> + 10SSBA (start select) + +Flags: +ZSHC???? + +Zero +Substraction +Half Carry +Carry + diff --git a/doc/notes.py b/doc/notes.py new file mode 100644 index 0000000..ec28a42 --- /dev/null +++ b/doc/notes.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +""" +Just some doc of GBC opcodes +""" + +OP_CODES = { + '8-bit loads': [0x06, 0x0E, 0x16, 0x1E, 0x26, 0x2E, 0x36], + 'reg-to-reg loads': list(range(0x40, 0x80)), +} + +# for loads: +LD_REGS = ['B', 'C', 'D', 'E', 'H', 'L', '(HL)', 'A'] +def load_source(op): + return LD_REGS[op & 0x7] + +def load_dest(op): + return LD_REGS[(op >> 3) & 0x7] + +def main(): + for cat, ops in OP_CODES.items(): + print("Category: {}".format(cat)) + for op in ops: + print("{} - {} - LD {}, {}".format( + hex(op), + bin(op)[2:].zfill(8), + load_dest(op), + load_source(op) + )) + +if __name__ == '__main__': + main() diff --git a/src/cpu.rs b/src/cpu.rs new file mode 100644 index 0000000..d330e98 --- /dev/null +++ b/src/cpu.rs @@ -0,0 +1,295 @@ +use super::interconnect; + +const REG_B: usize = 0; +const REG_C: usize = 1; +const REG_D: usize = 2; +const REG_E: usize = 3; +const REG_H: usize = 4; +const REG_L: usize = 5; +const REG_A: usize = 6; + +const REG_NAMES: [&'static str; 8] = ["B", "C", "D", "E", "H", "L", "(HL)", "A"]; + +const FLAG_Z: u8 = 1 << 7; +const FLAG_N: u8 = 1 << 6; +const FLAG_H: u8 = 1 << 5; +const FLAG_C: u8 = 1 << 4; + + +pub struct CPU { + // Registers: B, C, D, E, H, L, A + regs: [u8; 7], + flags: u8, + ip: u16, + sp: u16, + + interconnect: interconnect::Interconnect, +} + +fn to_u16(bytes: Box<[u8]>) -> u16 { + (bytes[1] as u16) << 8 | (bytes[0] as u16) +} + +impl CPU { + pub fn new(interconnect: interconnect::Interconnect) -> CPU { + CPU { + flags: 0, + regs: [0, 0, 0, 0, 0, 0, 0], + ip: 0, + sp: 0xFFFE, + interconnect: interconnect + } + } + + fn read_byte(&self, addr: u16) -> u8 { + self.interconnect.read_byte(addr) + } + + fn load_args(&mut self, num_args: u8) -> Box<[u8]> { + let mut args = Vec::new(); + for i in 0..num_args { + args.push(self.read_byte(self.ip + i as u16)); + } + self.ip += num_args as u16; + args.into_boxed_slice() + } + + fn set_8bit_reg(&mut self, reg_id: usize, value: u8) { + // Make sure that we skip the (HL) part. + if reg_id == 7 { + self.regs[REG_A] = value; + } else if reg_id == 6 { + panic!("(HL) not supported yet."); + } else { + self.regs[reg_id] = value; + } + } + + fn get_8bit_reg(&self, reg_id: usize) -> u8 { + // Make sure that we skip the (HL) part. + if reg_id == 7 { + self.regs[REG_A] + } else if reg_id == 6 { + panic!("(HL) not supported yet."); + } else { + self.regs[reg_id] + } + } + + fn run_prefix_instruction(&mut self) { + let instruction = self.read_byte(self.ip); + self.ip += 1; + + match instruction { + 0x10 ... 0x17 => { + let reg_id = (instruction - 0x10) as usize; + let args = self.load_args(1); + let mut val = self.get_8bit_reg(reg_id); + println!("RL {}, {}", REG_NAMES[reg_id], args[0]); + self.set_8bit_reg(reg_id, val.rotate_left(args[0] as u32)); + } + 0x70 ... 0x77 => { + // Test 6th bit + let reg_id = (instruction - 0x70) as usize; + let reg_content = self.get_8bit_reg(reg_id); + println!("BIT 6, {}", REG_NAMES[reg_id]); + if reg_content & (1 << 6) == 0 { + self.flags |= FLAG_Z; + } else { + self.flags &= !FLAG_Z; + } + } + 0x78 ... 0x7F => { + // Test 7th bit + let reg_id = (instruction - 0x78) as usize; + let reg_content = self.get_8bit_reg(reg_id); + println!("BIT 7, {}", REG_NAMES[reg_id]); + if reg_content & (1 << 7) == 0 { + self.flags |= FLAG_Z; + } else { + self.flags &= !FLAG_Z; + } + } + _ => { + println!("Unsupported prefix instruction: {:x}", instruction); + } + } + } + + fn get_pair_value(&self, a: usize, b: usize) -> u16 { + (self.regs[a] as u16) | (self.regs[b] as u16) << 8 + } + + fn set_pair_value(&mut self, a: usize, b: usize, value: u16) { + self.regs[a] = value as u8; + self.regs[b] = (value >> 8) as u8; + } + + pub fn run_instruction(&mut self) { + let instruction = self.read_byte(self.ip); + print!("{:#04x}: {:#04x}: ", &self.ip, &instruction); + self.ip += 1; + + match instruction { + 0x05 => { + println!("DEC B"); + self.regs[REG_B].wrapping_sub(1); + } + 0x06 => { + let args = self.load_args(1); + println!("LD B, {:02x}", args[0]); + self.regs[REG_B] = args[0]; + } + 0x0C => { + println!("INC C"); + self.regs[REG_C] += 1; + } + 0x0E => { + let args = self.load_args(1); + println!("LD C, {:02x}", args[0]); + self.regs[REG_C] = args[0]; + } + 0x11 => { + let args = self.load_args(2); + println!("LD DE, {:02x}{:02x}", args[1], args[0]); + self.regs[REG_D] = args[0]; + self.regs[REG_E] = args[1]; + }, + 0x1A => { + println!("LD A, (DE)"); + self.regs[REG_A] = self.interconnect.read_byte(self.get_pair_value(REG_D, REG_E)); + } + 0x20 => { + let args = self.load_args(1); + println!("JR NZ {:02x}", args[0]); + if self.flags & FLAG_Z == 0 { + let offset = args[0] as i8; + if offset < 0 { + self.ip -= (-offset) as u16 + } else { + self.ip += offset as u16; + } + } + } + 0x21 => { + let args = self.load_args(2); + println!("LD HL, {:02x}{:02x}", args[1], args[0]); + self.regs[REG_H] = args[0]; + self.regs[REG_L] = args[1]; + }, + 0x26 => { + let args = self.load_args(1); + println!("LD H, {:02x}", args[0]); + self.regs[REG_H] = args[0]; + }, + 0x31 => { + let args = self.load_args(2); + self.sp = to_u16(args); + println!("LD SP, {:02x}", self.sp); + }, + 0x32 => { + println!("LD (HL-), A"); + let mut addr: u16 = (self.regs[REG_H] as u16) | ((self.regs[REG_L] as u16) << 8); + self.interconnect.write_byte(addr, self.regs[REG_A]); + + addr -= 1; + self.regs[REG_H] = addr as u8; + self.regs[REG_L] = (addr >> 8) as u8; + }, + 0x3E => { + let args = self.load_args(1); + println!("LD A, {:02x}", args[0]); + self.regs[REG_A] = args[0]; + }, + 0x40 ... 0x47 => { + let reg_id = (instruction - 0x40) as usize; + println!("LD B, {}", REG_NAMES[reg_id]); + self.regs[REG_B] = self.get_8bit_reg(reg_id); + }, + 0x48 ... 0x4F => { + let reg_id = (instruction - 0x48) as usize; + println!("LD C, {}", REG_NAMES[reg_id]); + self.regs[REG_C] = self.get_8bit_reg(reg_id); + }, + 0x50 ... 0x57 => { + let reg_id = (instruction - 0x50) as usize; + println!("LD D, {}", REG_NAMES[reg_id]); + self.regs[REG_D] = self.get_8bit_reg(reg_id); + }, + 0x58 ... 0x5F => { + let reg_id = (instruction - 0x58) as usize; + println!("LD E, {}", REG_NAMES[reg_id]); + self.regs[REG_E] = self.get_8bit_reg(reg_id); + }, + 0x60 ... 0x67 => { + let reg_id = (instruction - 0x60) as usize; + println!("LD H, {}", REG_NAMES[reg_id]); + self.regs[REG_H] = self.get_8bit_reg(reg_id); + }, + 0x68 ... 0x6F => { + let reg_id = (instruction - 0x68) as usize; + println!("LD L, {}", REG_NAMES[reg_id]); + self.regs[REG_L] = self.get_8bit_reg(reg_id); + }, + 0x70 ... 0x75 | 0x77 => { + let reg_id = (instruction - 0x70) as usize; + println!("LD (HL), {}", REG_NAMES[reg_id]); + let reg_value: u8 = self.get_8bit_reg(reg_id); + let addr: u16 = (self.regs[REG_L] as u16) << 8 | (self.regs[REG_H] as u16); + + self.interconnect.write_byte(addr, reg_value); + }, + 0x78 ... 0x7F => { + let reg_id = (instruction - 0x78) as usize; + println!("LD A, {}", REG_NAMES[reg_id]); + self.regs[REG_A] = self.get_8bit_reg(reg_id); + }, + 0xA8 ... 0xAF => { + let reg_id = (instruction - 0xA8) as usize; + println!("XOR {}", REG_NAMES[reg_id]); + self.regs[REG_A] ^= self.get_8bit_reg(reg_id); + }, + 0xC1 => { + println!("POP BC"); + let val: u16 = self.interconnect.read_word(self.sp); + self.sp += 2; + self.set_pair_value(REG_B, REG_C, val); + }, + 0xC5 => { + println!("PUSH BC"); + let val: u16 = self.get_pair_value(REG_B, REG_C); + self.interconnect.write_word(self.sp, val); + self.sp -= 2; + }, + 0xCB => { + // Prefix CB. This is annoying. + self.run_prefix_instruction(); + }, + 0xCD => { + let target = to_u16(self.load_args(2)); + println!("CALL {:04X}", &target); + // Push current IP to the stack + // self.interconnect.write_byte(self.sp, (self.ip & 0xFF) as u8); + // self.interconnect.write_byte(self.sp - 1, (self.ip >> 8) as u8); + self.interconnect.write_word(self.sp - 1, self.ip); + self.sp -= 2; + + self.ip = target; + } + 0xE0 => { + let args = self.load_args(1); + println!("LDH {:02X}, A", args[0]); + self.interconnect.write_byte(0xFF00 + args[0] as u16, self.regs[REG_A]); + } + 0xE2 => { + println!("LD (C), A"); + self.interconnect.write_byte(0xFF00 + self.regs[REG_C] as u16, self.regs[REG_A]) + } + 0xFB => { + // Enable interrupts - TODO + println!("EI"); + } + _ => panic!("Unknown instruction: {:02x}", instruction) + } + } +} diff --git a/src/instruction.rs b/src/instruction.rs new file mode 100644 index 0000000..1fb6d5b --- /dev/null +++ b/src/instruction.rs @@ -0,0 +1,71 @@ +#[derive(Clone, Copy)] +pub struct Instruction(pub u32); + +pub enum Operator { + NOP, + INC, + DEC, + RLCA, + RRCA, + RLA + RRA, + JR_NZ, + JR, + JR_NC, + JR_Z, + CPL, + CCF, + HALT, + LD, + ADD, + ADC, + SUB, + SBC, + AND, + XOR, + OR, + CP, + RET +} + +impl Instruction { + pub fn operand(&self) -> Operator { + match self.0 { + // 0x00 - 0x0F + 0x00: Operator::NOP, + 0x01..0x02: Operator::LD, + 0x03..0x04: Operator::INC, + 0x05: Operator::DEC, + 0x06: Operator::LD, + 0x07: Operator::RLCA, + 0x08: Operator::LD, + 0x09: Operator::ADD, + 0x0A: Operator::LD, + 0x0B: Operator::DEC, + 0x0C: Operator::INC, + 0x0D: Operator::DEC, + 0x0E: Operator::LD, + 0x0F: Operator::RRCA, + // 0x10 - 0x1F + + // 0x20 - 0x2F + + // 0x30 - 0x3F + 0x30: Operator::JR_NC, + 0x31: Operator::LD, + + // Higher instructions seem to be grouped better + 0x40..0x75: Operator::LD, + 0x76: Operator::HALT, + 0x77..0x7F: Operator::LD, + 0x80..0x87: Operator::ADD, + 0x88..0x8F: Operator::ADC, + 0x90..0x97: Operator::SUB, + 0x98..0x9F: Operator::SBC, + 0xA0..0xA7: Operator::AND, + 0xA8..0xAF: Operator::XOR, + 0xB0..0xB7: Operator::OR, + 0xB8..0xBF: Operator::CP, + } + } +} diff --git a/src/interconnect.rs b/src/interconnect.rs new file mode 100644 index 0000000..c54cf3f --- /dev/null +++ b/src/interconnect.rs @@ -0,0 +1,92 @@ +const RAM_SIZE: usize = 0x2000; +const VRAM_SIZE: usize = 0x2000; +const HIRAM_SIZE: usize = (0xFFFE - 0xFE80) + 1; + +pub struct Interconnect { + bios: Box<[u8]>, + rom: Box<[u8]>, + ram: Box<[u8]>, + vram: Box<[u8]>, + hiram: Box<[u8]> +} + +impl Interconnect { + pub fn new(bios: Box<[u8]>, rom: Box<[u8]>) -> Interconnect { + Interconnect { + bios: bios, + rom: rom, + ram: vec![0; RAM_SIZE].into_boxed_slice(), + vram: vec![0; VRAM_SIZE].into_boxed_slice(), + hiram: vec![0; HIRAM_SIZE].into_boxed_slice(), + } + } + + pub fn read_byte(&self, addr: u16) -> u8 { + // TODO: Make this more beautiful. + // TODO: if some flag set, use bios, otherwise only use rom + // For now, just use bios + match addr { + 0x0000 ... 0x7FFF => { + // TODO: Check if bios or cartridge (additional condition: isEnabled) + if addr < 0x100 { + self.bios[addr as usize] + } else { + self.rom[addr as usize] + } + } + 0x8000 ... 0x9FFF => { + self.vram[(addr - 0x8000) as usize] + }, + 0xC000 ... 0xDFFF => { + self.ram[(addr - 0xC000) as usize] + }, + 0xFE80 ... 0xFFFE => { + self.hiram[(addr - 0xFE80) as usize] + } + _ => { + panic!("Read from {:04X} not supported.", addr); + } + } + } + + pub fn write_byte(&mut self, addr: u16, val: u8) { + // TODO: Make this more beautful + // TODO: Write byte + /* + 0000 7FFF Cartridge + 8000 9FFF Video RAM + A000 BFFF External RAM (Cartridge) + C000 DFFF Work RAM + E000 FCFF Copy of the work RAM + FE00 FE9F OAM (Sprite Attribute Table) + FEA0 FEFF Unused + FF00 FF7F Hardware IO + FE80 FFFE High RAM + FFFF FFFF Interrupt switch + */ + + match addr { + 0x8000 ... 0x9FFF => { + self.vram[(addr - 0x8000) as usize] = val; + }, + 0xC000 ... 0xDFFF => { + self.ram[(addr - 0xC000) as usize] = val; + }, + 0xFE80 ... 0xFFFE => { + self.hiram[(addr - 0xFE80) as usize] = val; + } + _ => { + panic!("Write {:02X} to {:04X} not supported.", val, addr); + } + } + } + + pub fn write_word(&mut self, addr: u16, val: u16) { + self.write_byte(addr, val as u8); + self.write_byte(addr + 1, (val >> 8) as u8); + } + + pub fn read_word(&self, addr: u16) -> u16 { + self.read_byte(addr) as u16 | (self.read_byte(addr + 1) as u16) << 8 + } +} diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..a36d051 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,32 @@ +// let's try to write our own, awesome emulator. +// gameboy (color?) + +use std::path::Path; +use std::io::Read; +use std::fs; +use std::env; + +mod cpu; +mod interconnect; + +fn main() { + let bios_path = env::args().nth(1).unwrap(); + let rom_path = env::args().nth(2).unwrap(); + let bios = read_rom(&bios_path); + let rom = read_rom(&rom_path); + + // Now we need to execute commands + let mut interconnect = interconnect::Interconnect::new(bios, rom); + let mut CPU = cpu::CPU::new(interconnect); + + loop { + CPU.run_instruction(); + } +} + +fn read_rom>(rom_path: P) -> Box<[u8]> { + let mut file = fs::File::open(rom_path).unwrap(); + let mut buf = Vec::new(); + file.read_to_end(&mut buf).expect("Reading file failed"); + buf.into_boxed_slice() +}