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;
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