DrawSprite passes test now.
This commit is contained in:
parent
24634637b2
commit
495745c19c
@ -1409,13 +1409,6 @@ mod test {
|
|||||||
let y_offset = 2;
|
let y_offset = 2;
|
||||||
let char_offset = 0x0A;
|
let char_offset = 0x0A;
|
||||||
|
|
||||||
// use the font characters to draw to video memory
|
|
||||||
// assert_eq!(x.memory.peek(0x0), CHIP8FONT_0[0]);
|
|
||||||
// assert_eq!(x.memory.peek(0x1), CHIP8FONT_0[1]);
|
|
||||||
// assert_eq!(x.memory.peek(0x2), CHIP8FONT_0[2]);
|
|
||||||
// assert_eq!(x.memory.peek(0x3), CHIP8FONT_0[3]);
|
|
||||||
// assert_eq!(x.memory.peek(0x4), CHIP8FONT_0[4]);
|
|
||||||
|
|
||||||
// now lets set the X and Y to 1,2
|
// now lets set the X and Y to 1,2
|
||||||
x.registers.poke(x_register, x_offset);
|
x.registers.poke(x_register, x_offset);
|
||||||
x.registers.poke(y_register, y_offset);
|
x.registers.poke(y_register, y_offset);
|
||||||
@ -1433,12 +1426,16 @@ mod test {
|
|||||||
for row_in_sprite in 0..5 {
|
for row_in_sprite in 0..5 {
|
||||||
let row_data = CHIP8FONT_2[row_in_sprite];
|
let row_data = CHIP8FONT_2[row_in_sprite];
|
||||||
for bit_in_byte in 0..8 {
|
for bit_in_byte in 0..8 {
|
||||||
let data_offset = (x_offset + row_in_sprite as u8) * 64 + (bit_in_byte + y_offset);
|
let data_offset = (x_offset
|
||||||
let should_be_set = (row_data.shr(bit_in_byte) & 0x1) == 1;
|
as u16 + row_in_sprite as u16) * 64 + (bit_in_byte + y_offset) as u16;
|
||||||
println!("DATA_OFFSET FOR {}x{} is {} when offsetting by {}x{} and should be {} working with byte {:08b}",
|
let real_bit_in_byte = 7-bit_in_byte;
|
||||||
bit_in_byte, row_in_sprite, data_offset, x_offset, y_offset, should_be_set, row_data);
|
let shifted_one = 0x01 << real_bit_in_byte;
|
||||||
|
let one_shift_set = (shifted_one & row_data )> 0;
|
||||||
|
println!("ROWDATA = \t\t[{row_data:08b}]\tBIT IN BYTE = \t[{bit_in_byte}]\tONE_SHIFT_SET = [{one_shift_set}]\tSHIFTED ONE = [{shifted_one:08b}]");
|
||||||
|
println!("DATA_OFFSET FOR SOURCE DATA {}x{} is {} / offset by {}x{} and should be {} working with byte {:08b}",
|
||||||
|
bit_in_byte, row_in_sprite, data_offset, x_offset, y_offset, one_shift_set, row_data);
|
||||||
// assert_eq!(should_be_set, );
|
// assert_eq!(should_be_set, );
|
||||||
assert_eq!(should_be_set, x.video_memory.peek(data_offset as u16));
|
assert_eq!(one_shift_set, x.video_memory.peek(data_offset as u16));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user