- [FIX] [tia] els bits del playfield no eren correctes
- [DONE] [tia] PF0, PF1, PF2 - [NEW] [tia] RESP0, RESP1, RESM0, RESM1, RESBL
This commit is contained in:
@@ -48,26 +48,39 @@ namespace tia
|
||||
bool joy1_button_pressed = false;
|
||||
|
||||
uint8_t missile0_size = 1;
|
||||
uint8_t missile0_pos = 0;
|
||||
|
||||
uint8_t player0_size = 1;
|
||||
uint8_t player0_num_copies = 1;
|
||||
uint8_t player0_copies_distance = 0;
|
||||
uint32_t player0_color = 0x00000000;
|
||||
bool player0_reflect = false;
|
||||
uint8_t player0_pos = 0;
|
||||
|
||||
uint8_t missile1_size = 1;
|
||||
uint8_t missile1_pos = 0;
|
||||
|
||||
uint8_t player1_size = 1;
|
||||
uint8_t player1_num_copies = 1;
|
||||
uint8_t player1_copies_distance = 0;
|
||||
uint32_t player1_color = 0x00000000;
|
||||
bool player1_reflect = false;
|
||||
uint8_t player1_pos = 0;
|
||||
|
||||
uint32_t playfield_color = 0x00000000;
|
||||
bool playfield_reflected = false;
|
||||
bool playfield_score = false;
|
||||
bool playfield_priority = false;
|
||||
uint32_t playfield_bits = 0x00000000;
|
||||
uint8_t playfield_shifts[2][40] = {
|
||||
// Repeat
|
||||
{16,17,18,19, 15,14,13,12,11,10,9,8, 0,1,2,3,4,5,6,7, 16,17,18,19, 15,14,13,12,11,10,9,8, 0,1,2,3,4,5,6,7},
|
||||
// Reflect
|
||||
{16,17,18,19, 15,14,13,12,11,10,9,8, 0,1,2,3,4,5,6,7, 7,6,5,4,3,2,1,0, 8,9,10,11,12,13,14,15, 19,18,17,16}
|
||||
};
|
||||
|
||||
uint8_t ball_size = 1;
|
||||
uint8_t ball_pos = 0;
|
||||
|
||||
uint32_t background_color = 0x00000000;
|
||||
|
||||
@@ -210,11 +223,24 @@ namespace tia
|
||||
player1_reflect = value & 0x08; break;
|
||||
|
||||
case 0x0D: // PF0
|
||||
playfield_bits = (playfield_bits & 0x0000ffff) | (uint32_t(value)<<16); break;
|
||||
playfield_bits = (playfield_bits & 0x0000ffff) | (uint32_t(value>>4)<<16); break;
|
||||
case 0x0E: // PF1
|
||||
playfield_bits = (playfield_bits & 0x000f00ff) | (uint32_t(value)<<8); break;
|
||||
case 0x0F: // PF2
|
||||
playfield_bits = (playfield_bits & 0x000fff00) | (uint32_t(value)); break;
|
||||
|
||||
case 0x10: // RESP0
|
||||
player0_pos = color_clock < 68 ? 0 : color_clock; break;
|
||||
case 0x11: // RESP1
|
||||
player1_pos = color_clock < 68 ? 0 : color_clock; break;
|
||||
case 0x12: // RESM0
|
||||
missile0_pos = color_clock < 68 ? 0 : color_clock; break;
|
||||
case 0x13: // RESM1
|
||||
missile1_pos = color_clock < 68 ? 0 : color_clock; break;
|
||||
case 0x14: // RESBL
|
||||
ball_pos = color_clock < 68 ? 0 : color_clock; break;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user