--sprite pattern is read from vram.\r
if (reg_s_oam_cur_state = REG_SET1) then\r
if (reg_nes_x mod 8 = 6) then\r
- reg_spr_ptn_l((reg_nes_x - 256) / 8) <= pi_v_data;\r
+ if (reg_spr_attr((reg_nes_x - 256) / 8)(SPRHFL) = '1') then\r
+ --normal\r
+ reg_spr_ptn_l((reg_nes_x - 256) / 8) <=\r
+ reg_v_data(0) & reg_v_data(1) & reg_v_data(2) & reg_v_data(3) &\r
+ reg_v_data(4) & reg_v_data(5) & reg_v_data(6) & reg_v_data(7);\r
+ else\r
+ --flip horizontally\r
+ reg_spr_ptn_l((reg_nes_x - 256) / 8) <= reg_v_data;\r
+ end if;\r
elsif (reg_nes_x mod 8 = 0) then\r
- reg_spr_ptn_h((reg_nes_x - 256) / 8 - 1) <= pi_v_data;\r
+ if (reg_spr_attr((reg_nes_x - 256) / 8 - 1)(SPRHFL) = '1') then\r
+ --normal\r
+ reg_spr_ptn_h((reg_nes_x - 256) / 8 - 1) <=\r
+ reg_v_data(0) & reg_v_data(1) & reg_v_data(2) & reg_v_data(3) &\r
+ reg_v_data(4) & reg_v_data(5) & reg_v_data(6) & reg_v_data(7);\r
+ else\r
+ --flip horizontally\r
+ reg_spr_ptn_h((reg_nes_x - 256) / 8 - 1) <= reg_v_data;\r
+ end if;\r
end if;\r
end if;\r
\r