diff --git a/Arcade_MiST/IremM62 Hardware/rtl/iremm62_video_controller.vhd b/Arcade_MiST/IremM62 Hardware/rtl/iremm62_video_controller.vhd index 4e39b3a7..07c87cba 100644 --- a/Arcade_MiST/IremM62 Hardware/rtl/iremm62_video_controller.vhd +++ b/Arcade_MiST/IremM62 Hardware/rtl/iremm62_video_controller.vhd @@ -122,8 +122,7 @@ begin video_o.hsync <= hsync; video_o.vsync <= vsync; - hblank <= hblank2 when hwsel = HW_BATTROAD or hwsel = HW_SPELUNKR or hwsel = HW_SPELUNK2 or hwsel = HW_KIDNIKI or hwsel = HW_HORIZON or hwsel = HW_YOUJYUDN - else hblank1; + hblank <= hblank2 when hwsel = HW_KIDNIKI else hblank1; video_o.hblank <= hblank; video_o.vblank <= vblank; video_ctl_o.stb <= '1'; diff --git a/Arcade_MiST/IremM62 Hardware/rtl/spritectl.vhd b/Arcade_MiST/IremM62 Hardware/rtl/spritectl.vhd index fd04f715..91a63729 100644 --- a/Arcade_MiST/IremM62 Hardware/rtl/spritectl.vhd +++ b/Arcade_MiST/IremM62 Hardware/rtl/spritectl.vhd @@ -147,7 +147,8 @@ begin end if; if video_ctl.stb = '1' then - x := unsigned(reg_i.x) + 256 - 64 + PACE_VIDEO_PIPELINE_DELAY - 2; + x := unsigned(reg_i.x) + 256 - 64 + PACE_VIDEO_PIPELINE_DELAY; + if hwsel /= HW_KIDNIKI then x:=x-8; end if; if hires = '0' then x := x - 64; end if; if x = unsigned(video_ctl.x) then diff --git a/Arcade_MiST/IremM62 Hardware/rtl/tilemapctl.vhd b/Arcade_MiST/IremM62 Hardware/rtl/tilemapctl.vhd index ddc2535b..19191fc3 100644 --- a/Arcade_MiST/IremM62 Hardware/rtl/tilemapctl.vhd +++ b/Arcade_MiST/IremM62 Hardware/rtl/tilemapctl.vhd @@ -61,9 +61,9 @@ begin ctl_o.tile_a(ctl_o.tile_a'left downto 15) <= (others => '0'); -- tilemap scroll - x <= std_logic_vector(unsigned(video_ctl.x) - 256 + 128) when unsigned(y) < 6*8 and HWSEL = HW_KUNGFUM else - std_logic_vector(unsigned(video_ctl.x) - 256 + unsigned(hscroll(8 downto 0)) + 64) when hires = '1' else - std_logic_vector(unsigned(video_ctl.x) - 256 + unsigned(hscroll(8 downto 0)) + 128); + x <= std_logic_vector(unsigned(video_ctl.x) - 256 + 128 + 8) when unsigned(y) < 6*8 and HWSEL = HW_KUNGFUM else + std_logic_vector(unsigned(video_ctl.x) - 256 + unsigned(hscroll(8 downto 0)) + 64 + 8) when hires = '1' else + std_logic_vector(unsigned(video_ctl.x) - 256 + unsigned(hscroll(8 downto 0)) + 128 + 8); y <= std_logic_vector(unsigned(video_ctl.y) - 256 + unsigned(vscroll(8 downto 0)) + 128) when hwsel = HW_SPELUNKR or hwsel = HW_SPELUNK2 else std_logic_vector(unsigned(video_ctl.y) - 256 + unsigned(vscroll(8 downto 0))); @@ -221,8 +221,8 @@ begin ctl_o.tile_a(ctl_o.tile_a'left downto 15) <= (others => '0'); -- tilemap scroll - x <= std_logic_vector(unsigned(video_ctl.x) - 256 + 64) when hires = '1' else - std_logic_vector(unsigned(video_ctl.x) - 256); + x <= std_logic_vector(unsigned(video_ctl.x) - 256 + 64 + 8) when hires = '1' else + std_logic_vector(unsigned(video_ctl.x) - 256 + 8); y <= std_logic_vector(unsigned(video_ctl.y) - 256 + 128) when hwsel = HW_SPELUNKR or hwsel = HW_SPELUNK2 else std_logic_vector(unsigned(video_ctl.y) - 256);