fixed the graphical issue

This commit is contained in:
BayThylacine 2025-02-14 19:13:32 +11:00
parent aaccc26abf
commit 96ea02db89

View File

@ -155,10 +155,13 @@ impl Chip8 {
self.registers[0x0f] = 0; self.registers[0x0f] = 0;
for n in 0..opcodes[3] { for n in 0..opcodes[3] {
let spritedata = self.ram[self.index_register as usize + n as usize]; 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); 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)); self.display[(y + n) as usize] = self.display[(y + n) as usize] ^ ((bit as u64) << (x + i));
} }
//info!("{},{}", spritedata, checkdata);
} }
}, },
0x0e => { 0x0e => {
@ -229,9 +232,12 @@ fn main() {
_ => {} _ => {}
}, },
Event::MainEventsCleared => { Event::MainEventsCleared => {
info!(chip8.pc); //info!(chip8.pc);
chip8.update(40); chip8.update(40);
info!(chip8.pc); //info!(chip8.pc);
//for i in chip8.display {
// println!("{:#64b}", i);
//}
window.request_redraw(); window.request_redraw();
} }
Event::RedrawRequested(_) => { Event::RedrawRequested(_) => {
@ -297,8 +303,9 @@ fn get_bit(num: u64, bit: u8) -> bool {
fn get_bit_u8(num: u8, bit: u8) -> bool { fn get_bit_u8(num: u8, bit: u8) -> bool {
if bit <= 8 { if bit <= 8 {
let mask: u8 = 128 >> bit; let mask: u8 = 1 << (7 - bit);
let bitvalue = (num & mask) != 0; let bitvalue = (num & mask) != 0;
//info!("{},{},{},{}", num, bit, mask, bitvalue);
bitvalue bitvalue
} else { } else {
false false