Fixed bug with collisions
This commit is contained in:
parent
5fdde760ce
commit
bb57729492
10
src/main.rs
10
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;
|
||||
|
|
Loading…
Reference in New Issue
Block a user