diff --git a/Arcade_MiST/IremM62 Hardware/meta/Lot Lot.mra b/Arcade_MiST/IremM62 Hardware/meta/Lot Lot.mra new file mode 100644 index 00000000..04ba8456 --- /dev/null +++ b/Arcade_MiST/IremM62 Hardware/meta/Lot Lot.mra @@ -0,0 +1,131 @@ + + Lot Lot + 0216 + lotlot + Irem + iremm62 + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Arcade_MiST/IremM62 Hardware/rtl/platform.vhd b/Arcade_MiST/IremM62 Hardware/rtl/platform.vhd index 6419b504..d5a059f6 100644 --- a/Arcade_MiST/IremM62 Hardware/rtl/platform.vhd +++ b/Arcade_MiST/IremM62 Hardware/rtl/platform.vhd @@ -214,11 +214,13 @@ begin STD_MATCH(cpu_a, X"D"&"-----------1") else '0'; - -- Text RAM $C800-$CFFF, ($D000-$DFFF - KIDNIKI) + -- Text RAM $C800-$CFFF - BATTROAD, $D000-$DFFF - KIDNIKI, $A000-$AFFF - LOTLOT textram_cs <= '1' when hwsel = HW_BATTROAD and cpu_a(15 downto 11) = x"C"&'1' else '1' when hwsel = HW_KIDNIKI and cpu_a(15 downto 12) = x"D" else + '1' when hwsel = HW_LOTLOT and + cpu_a(15 downto 12) = x"A" else '0'; -- RAM $E000-$EFFF @@ -456,6 +458,10 @@ begin m62_vscroll2 <= (others => '0'); m62_topbottom_mask <= '0'; elsif rising_edge(clk_sys) then + if hwsel = HW_LOTLOT then + m62_hscroll <= std_logic_vector(to_signed(-64, m62_hscroll'length)); + m62_vscroll <= std_logic_vector(to_unsigned(32, m62_vscroll'length)); + end if; if cpu_clk_en = '1' and cpu_mem_wr = '1' then case cpu_a is when X"A000" => diff --git a/Arcade_MiST/IremM62 Hardware/rtl/platform_variant_pkg.vhd b/Arcade_MiST/IremM62 Hardware/rtl/platform_variant_pkg.vhd index 4b71257f..6c684d9a 100644 --- a/Arcade_MiST/IremM62 Hardware/rtl/platform_variant_pkg.vhd +++ b/Arcade_MiST/IremM62 Hardware/rtl/platform_variant_pkg.vhd @@ -17,6 +17,7 @@ package platform_variant_pkg is constant HW_HORIZON : integer := 5; constant HW_BATTROAD : integer := 6; constant HW_KIDNIKI : integer := 7; + constant HW_LOTLOT : integer := 8; type rom_a is array (natural range <>) of string; diff --git a/Arcade_MiST/IremM62 Hardware/rtl/target_top.vhd b/Arcade_MiST/IremM62 Hardware/rtl/target_top.vhd index 839da6fa..1bb65124 100644 --- a/Arcade_MiST/IremM62 Hardware/rtl/target_top.vhd +++ b/Arcade_MiST/IremM62 Hardware/rtl/target_top.vhd @@ -75,7 +75,7 @@ architecture SYN of target_top is begin - hires <= '1' when hwsel = HW_LDRUN or hwsel = HW_LDRUN2 or hwsel = HW_LDRUN3 or hwsel = HW_LDRUN4 or hwsel = HW_KIDNIKI else '0'; + hires <= '1' when hwsel = HW_LDRUN or hwsel = HW_LDRUN2 or hwsel = HW_LDRUN3 or hwsel = HW_LDRUN4 or hwsel = HW_KIDNIKI or hwsel= HW_LOTLOT else '0'; process(clock_sys) begin if rising_edge(clock_sys) then diff --git a/Arcade_MiST/IremM62 Hardware/rtl/tilemapctl.vhd b/Arcade_MiST/IremM62 Hardware/rtl/tilemapctl.vhd index bfdc2262..eb6d0b27 100644 --- a/Arcade_MiST/IremM62 Hardware/rtl/tilemapctl.vhd +++ b/Arcade_MiST/IremM62 Hardware/rtl/tilemapctl.vhd @@ -112,7 +112,7 @@ begin if x(2 downto 0) = "100" then attr_d_r := ctl_i.attr_d(7 downto 0); if hwsel = HW_KUNGFUM or - --hwsel = LOTLOT or + hwsel = HW_LOTLOT or hwsel = HW_LDRUN or hwsel = HW_LDRUN2 or hwsel = HW_BATTROAD