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 => {
|
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]) {
|
if (self.registers[opcodes[1] as usize]) == (((opcodes[2]) << 4) + opcodes[3]) {
|
||||||
self.pc += 2;
|
self.pc += 2;
|
||||||
}
|
}
|
||||||
|
@ -209,7 +210,7 @@ impl Chip8 {
|
||||||
self.registers[opcodes[1] as usize] = (added_base & 255) as u8;
|
self.registers[opcodes[1] as usize] = (added_base & 255) as u8;
|
||||||
},
|
},
|
||||||
0x05 => {
|
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]);
|
let no_underflow = (self.registers[opcodes[1] as usize] >= self.registers[opcodes[2] as usize]);
|
||||||
self.registers[0x0f] = no_underflow as u8;
|
self.registers[0x0f] = no_underflow as u8;
|
||||||
if no_underflow {
|
if no_underflow {
|
||||||
|
@ -286,6 +287,9 @@ impl Chip8 {
|
||||||
let bit = get_bit_u8(spritedata, i);
|
let bit = get_bit_u8(spritedata, i);
|
||||||
checkdata += (bit as u8) << (7 - i);
|
checkdata += (bit as u8) << (7 - i);
|
||||||
if (x+i <= 63) && (y+n <= 31) {
|
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));
|
self.display[(y + n) as usize] = self.display[(y + n) as usize] ^ ((bit as u64) << (x + i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -297,7 +301,7 @@ impl Chip8 {
|
||||||
0x09 => {
|
0x09 => {
|
||||||
match opcodes[3] {
|
match opcodes[3] {
|
||||||
0x0e => {
|
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.registers[opcodes[1] as usize] < 16{
|
||||||
if self.keys[(self.registers[opcodes[1] as usize] & 15) as usize] {
|
if self.keys[(self.registers[opcodes[1] as usize] & 15) as usize] {
|
||||||
self.pc += 2;
|
self.pc += 2;
|
||||||
|
@ -312,7 +316,7 @@ impl Chip8 {
|
||||||
0x0a => {
|
0x0a => {
|
||||||
match opcodes[3] {
|
match opcodes[3] {
|
||||||
0x01 => {
|
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.registers[opcodes[1] as usize] < 16{
|
||||||
if !self.keys[(self.registers[opcodes[1] as usize] & 15) as usize] {
|
if !self.keys[(self.registers[opcodes[1] as usize] & 15) as usize] {
|
||||||
self.pc += 2;
|
self.pc += 2;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user