From bb577294926c4fab539cbf994ea4964c51990d6f Mon Sep 17 00:00:00 2001 From: BayThylacine Date: Mon, 17 Feb 2025 06:45:01 +1100 Subject: [PATCH] Fixed bug with collisions --- src/main.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main.rs b/src/main.rs index 05120fa..5b640aa 100644 --- a/src/main.rs +++ b/src/main.rs @@ -159,6 +159,7 @@ impl Chip8 { } }, 0x03 => { + //info!("{},{},{}",(self.registers[opcodes[1] as usize]),(((opcodes[2]) << 4) + opcodes[3]),(self.registers[opcodes[1] as usize]) == (((opcodes[2]) << 4) + opcodes[3])); if (self.registers[opcodes[1] as usize]) == (((opcodes[2]) << 4) + opcodes[3]) { self.pc += 2; } @@ -209,7 +210,7 @@ impl Chip8 { self.registers[opcodes[1] as usize] = (added_base & 255) as u8; }, 0x05 => { - info!("{},{}", self.registers[opcodes[1] as usize], self.registers[opcodes[2] as usize]); + //info!("{},{}", self.registers[opcodes[1] as usize], self.registers[opcodes[2] as usize]); let no_underflow = (self.registers[opcodes[1] as usize] >= self.registers[opcodes[2] as usize]); self.registers[0x0f] = no_underflow as u8; if no_underflow { @@ -286,6 +287,9 @@ impl Chip8 { let bit = get_bit_u8(spritedata, i); checkdata += (bit as u8) << (7 - i); if (x+i <= 63) && (y+n <= 31) { + if (get_bit(self.display[(y+n) as usize], (x+i)) && bit) { + self.registers[0x0f] = 1; + } self.display[(y + n) as usize] = self.display[(y + n) as usize] ^ ((bit as u64) << (x + i)); } } @@ -297,7 +301,7 @@ impl Chip8 { 0x09 => { match opcodes[3] { 0x0e => { - info!("23: {}", self.registers[opcodes[1] as usize]); + //info!("23: {}", self.registers[opcodes[1] as usize]); if self.registers[opcodes[1] as usize] < 16{ if self.keys[(self.registers[opcodes[1] as usize] & 15) as usize] { self.pc += 2; @@ -312,7 +316,7 @@ impl Chip8 { 0x0a => { match opcodes[3] { 0x01 => { - info!("a1 {}", self.registers[opcodes[1] as usize]); + //info!("a1 {}", self.registers[opcodes[1] as usize]); if self.registers[opcodes[1] as usize] < 16{ if !self.keys[(self.registers[opcodes[1] as usize] & 15) as usize] { self.pc += 2;