From 96ea02db8906a20c82a9765e33270f1e12e8ae2b Mon Sep 17 00:00:00 2001 From: BayThylacine Date: Fri, 14 Feb 2025 19:13:32 +1100 Subject: [PATCH] fixed the graphical issue --- src/main.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index 0aaa0d7..4c0b518 100644 --- a/src/main.rs +++ b/src/main.rs @@ -155,10 +155,13 @@ impl Chip8 { self.registers[0x0f] = 0; for n in 0..opcodes[3] { let spritedata = self.ram[self.index_register as usize + n as usize]; - for i in 0..7 { + let mut checkdata: u8 = 0; + for i in 0..8 { let bit = get_bit_u8(spritedata, i); + checkdata += (bit as u8) << (7 - i); self.display[(y + n) as usize] = self.display[(y + n) as usize] ^ ((bit as u64) << (x + i)); } + //info!("{},{}", spritedata, checkdata); } }, 0x0e => { @@ -229,9 +232,12 @@ fn main() { _ => {} }, Event::MainEventsCleared => { - info!(chip8.pc); + //info!(chip8.pc); chip8.update(40); - info!(chip8.pc); + //info!(chip8.pc); + //for i in chip8.display { + // println!("{:#64b}", i); + //} window.request_redraw(); } Event::RedrawRequested(_) => { @@ -297,8 +303,9 @@ fn get_bit(num: u64, bit: u8) -> bool { fn get_bit_u8(num: u8, bit: u8) -> bool { if bit <= 8 { - let mask: u8 = 128 >> bit; + let mask: u8 = 1 << (7 - bit); let bitvalue = (num & mask) != 0; + //info!("{},{},{},{}", num, bit, mask, bitvalue); bitvalue } else { false