diff --git a/t80/T80_MCode.vhd b/t80/T80_MCode.vhd index df09581..60bfa01 100644 --- a/t80/T80_MCode.vhd +++ b/t80/T80_MCode.vhd @@ -942,9 +942,19 @@ begin end if; when "00001011"|"00011011"|"00101011"|"00111011" => -- DEC ss - TStates <= "110"; - IncDec_16(3 downto 2) <= "11"; - IncDec_16(1 downto 0) <= DPair; + if Mode = 3 then + MCycles <= "010"; + case to_integer(unsigned(MCycle)) is + when 2 => + IncDec_16(3 downto 2) <= "11"; + IncDec_16(1 downto 0) <= DPair; + when others => + end case; + else + TStates <= "110"; + IncDec_16(3 downto 2) <= "11"; + IncDec_16(1 downto 0) <= DPair; + end if; -- ROTATE AND SHIFT GROUP when "00000111" diff --git a/video.v b/video.v index 063b7af..76e2ff5 100644 --- a/video.v +++ b/video.v @@ -90,11 +90,11 @@ sprites sprites ( .pixel_cmap ( sprite_pixel_cmap ), .pixel_prio ( sprite_pixel_prio ), - .index ( sprite_index ), - .addr ( sprite_addr ), - .dvalid ( sprite_dvalid), - .data ( vram_data ), - .data1 ( vram1_data ), + .index ( sprite_index ), + .addr ( sprite_addr ), + .dvalid ( sprite_dvalid ), + .data ( vram_data ), + .data1 ( isGBC?vram1_data:vram_data ), //gbc .pixel_cmap_gbc ( sprite_pixel_cmap_gbc ),