diff --git a/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/Release/sprint2.rbf b/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/Release/sprint2.rbf index 957209d1..24cc83f5 100644 Binary files a/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/Release/sprint2.rbf and b/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/Release/sprint2.rbf differ diff --git a/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/gearshift.sv b/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/gearshift.sv deleted file mode 100644 index da7ec335..00000000 --- a/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/gearshift.sv +++ /dev/null @@ -1,94 +0,0 @@ -//============================================================================ -// gearshift -// -// Turn gearup and geardown buttons into state that can flip the correct switches -// for sprint -// -// -// Copyright (c) 2019 Alan Steremberg - alanswx -// -// -//============================================================================ - -module gearshift -( - input CLK, - - input gearup, - input geardown, - - output gear1, - output gear2, - output gear3 -); - -reg [2:0] gear=3'b0; - -always @(posedge CLK) begin - reg old_gear_up; - reg old_gear_down; - - if (gearup==1) - begin - if (old_gear_up==0) - begin - old_gear_up=1; - if (gear<4) - begin - gear=gear+1; - end - end - end - else - begin - old_gear_up=0; - end - if (geardown==1) - begin - if (old_gear_down==0) - begin - old_gear_down=1; - if (gear>0) - begin - gear=gear-1; - end - end - end - else - begin - old_gear_up=0; - end - - - casex(gear) - 3'b000: - begin - gear1=0; - gear2=1; - gear3=1; - end - 3'b001: - begin - gear1=1; - gear2=0; - gear3=1; - - end - 3'b010: - begin - gear1=1; - gear2=1; - gear3=0; - end - 3'b011: - begin - gear1=1; - gear2=1; - gear3=1; - end - endcase - -end - - -endmodule \ No newline at end of file diff --git a/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/gearshift.vhd b/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/gearshift.vhd new file mode 100644 index 00000000..9cbf72f3 --- /dev/null +++ b/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/gearshift.vhd @@ -0,0 +1,89 @@ +-- Gear Shift +-- (c) 2019 alanswx + + +library IEEE; +use IEEE.STD_LOGIC_1164.all; +use IEEE.STD_LOGIC_ARITH.all; +use IEEE.STD_LOGIC_UNSIGNED.all; + +entity gearshift is +port( + Clk : in std_logic; + reset : in std_logic; + gearup : in std_logic; + geardown : in std_logic; + gearout : out std_logic_vector(2 downto 0); + gear1 : out std_logic; + gear2 : out std_logic; + gear3 : out std_logic + + ); +end gearshift; + +architecture rtl of gearshift is + +signal gear : std_logic_vector(2 downto 0):= (others =>'0'); +signal old_gear_up : std_logic:='0'; +signal old_gear_down : std_logic:='0'; + + +begin + +gearout<=gear; + +process (clk, gear) +begin + + if rising_edge(clk) then + + + if (reset='1') then + gear<="000"; + elsif (gearup='1') then + if (old_gear_up='0') then + old_gear_up<='1'; + if (gear < 3) then + gear<= gear +1; + end if; + end if; + elsif (geardown='1') then + if (old_gear_down='0') then + old_gear_down<='1'; + if (gear>0) then + gear<=gear-1; + end if; + end if; + else + old_gear_up<='0'; + old_gear_down<='0'; + end if; + + end if; + + case gear is + when "000" => gear1 <= '0' ; + when "001" => gear1 <= '1' ; + when "010" => gear1 <= '1' ; + when "011" => gear1 <= '1' ; + when others => gear1 <= '1' ; + end case; + case gear is + when "000" => gear2 <= '1' ; + when "001" => gear2 <= '0' ; + when "010" => gear2 <= '1' ; + when "011" => gear2 <= '1' ; + when others => gear2 <= '1' ; + end case; + case gear is + when "000" => gear3 <= '1' ; + when "001" => gear3 <= '1' ; + when "010" => gear3 <= '0' ; + when "011" => gear3 <= '1' ; + when others => gear3 <= '1' ; + end case; + +end process; + + +end rtl; \ No newline at end of file diff --git a/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/joy2quad.sv b/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/joy2quad.sv index dae1fa5f..d2eaeabb 100644 --- a/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/joy2quad.sv +++ b/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/joy2quad.sv @@ -19,10 +19,10 @@ module joy2quad input CLK, input [31:0] clkdiv, - input right, - input left, - - output reg [1:0] steer + input c_right, + input c_left, + output reg steerA, + output reg steerB ); @@ -40,12 +40,12 @@ always @(posedge CLK) begin casex(state) 4'b0000: begin - steer=2'b00; - if (left==1) + {steerB,steerA} =2'b00; + if (c_left==1) begin state=4'b0001; end - if (right==1) + if (c_right==1) begin state=4'b0101; end @@ -53,42 +53,42 @@ always @(posedge CLK) begin end 4'b0001: begin - steer=2'b00; + {steerB,steerA}=2'b00; state=4'b0010; end 4'b0010: begin - steer=2'b01; + {steerB,steerA}=2'b01; state=3'b0011; end 4'b0011: begin - steer=2'b11; + {steerB,steerA}=2'b11; state=4'b0100; end 4'b0100: begin - steer=2'b10; + {steerB,steerA}=2'b10; state=4'b000; end 4'b0101: begin - steer=2'b00; + {steerB,steerA}=2'b00; state=4'b0110; end 4'b0110: begin - steer=2'b10; + {steerB,steerA}=2'b10; state=4'b0111; end 4'b0111: begin - steer=2'b11; + {steerB,steerA}=2'b11; state=4'b1000; end 4'b1000: begin - steer=2'b01; + {steerB,steerA}=2'b01; state=4'b0000; end @@ -97,4 +97,4 @@ always @(posedge CLK) begin end end -endmodule \ No newline at end of file +endmodule \ No newline at end of file diff --git a/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/osd.sv b/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/osd.sv index c62c10af..b9181763 100644 --- a/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/osd.sv +++ b/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/osd.sv @@ -11,13 +11,15 @@ module osd ( input SPI_SS3, input SPI_DI, + input [1:0] rotate, //[0] - rotate [1] - left or right + // VGA signals coming from core input [5:0] R_in, input [5:0] G_in, input [5:0] B_in, input HSync, input VSync, - + // VGA signals going to video connector output [5:0] R_out, output [5:0] G_out, @@ -59,7 +61,7 @@ always@(posedge SPI_SCK, posedge SPI_SS3) begin if(cnt == 7) begin cmd <= {sbuf[6:0], SPI_DI}; - + // lower three command bits are line address bcnt <= {sbuf[1:0], SPI_DI, 8'h00}; @@ -91,7 +93,7 @@ reg [9:0] vs_low, vs_high; wire vs_pol = vs_high < vs_low; wire [9:0] dsp_height = vs_pol ? vs_low : vs_high; -wire doublescan = (dsp_height>350); +wire doublescan = (dsp_height>350); reg ce_pix; always @(negedge clk_sys) begin @@ -124,13 +126,13 @@ always @(posedge clk_sys) begin hsD2 <= hsD; // falling edge of HSync - if(!hsD && hsD2) begin + if(!hsD && hsD2) begin h_cnt <= 0; hs_high <= h_cnt; end // rising edge of HSync - else if(hsD && !hsD2) begin + else if(hsD && !hsD2) begin h_cnt <= 0; hs_low <= h_cnt; v_cnt <= v_cnt + 1'd1; @@ -142,13 +144,13 @@ always @(posedge clk_sys) begin vsD2 <= vsD; // falling edge of VSync - if(!vsD && vsD2) begin + if(!vsD && vsD2) begin v_cnt <= 0; vs_high <= v_cnt; end // rising edge of VSync - else if(vsD && !vsD2) begin + else if(vsD && !vsD2) begin v_cnt <= 0; vs_low <= v_cnt; end @@ -160,17 +162,30 @@ wire [9:0] h_osd_start = ((dsp_width - OSD_WIDTH)>> 1) + OSD_X_OFFSET; wire [9:0] h_osd_end = h_osd_start + OSD_WIDTH; wire [9:0] v_osd_start = ((dsp_height- (OSD_HEIGHT<> 1) + OSD_Y_OFFSET; wire [9:0] v_osd_end = v_osd_start + (OSD_HEIGHT<= h_osd_start) && (h_cnt < h_osd_end) && (VSync != vs_pol) && (v_cnt >= v_osd_start) && (v_cnt < v_osd_end); -reg [7:0] osd_byte; -always @(posedge clk_sys) if(ce_pix) osd_byte <= osd_buffer[{doublescan ? osd_vcnt[7:5] : osd_vcnt[6:4], osd_hcnt[7:0]}]; +reg [10:0] osd_buffer_addr; +wire [7:0] osd_byte = osd_buffer[osd_buffer_addr]; +reg osd_pixel; -wire osd_pixel = osd_byte[doublescan ? osd_vcnt[4:2] : osd_vcnt[3:1]]; +always @(posedge clk_sys) begin + if(ce_pix) begin + osd_buffer_addr <= rotate[0] ? {rotate[1] ? osd_hcnt_next2[7:5] : ~osd_hcnt_next2[7:5], + rotate[1] ? (doublescan ? ~osd_vcnt[7:0] : ~{osd_vcnt[6:0], 1'b0}) : + (doublescan ? osd_vcnt[7:0] : {osd_vcnt[6:0], 1'b0})} : + {doublescan ? osd_vcnt[7:5] : osd_vcnt[6:4], osd_hcnt_next2[7:0]}; + + osd_pixel <= rotate[0] ? osd_byte[rotate[1] ? osd_hcnt_next[4:2] : ~osd_hcnt_next[4:2]] : + osd_byte[doublescan ? osd_vcnt[4:2] : osd_vcnt[3:1]]; + end +end assign R_out = !osd_de ? R_in : {osd_pixel, osd_pixel, OSD_COLOR[2], R_in[5:3]}; assign G_out = !osd_de ? G_in : {osd_pixel, osd_pixel, OSD_COLOR[1], G_in[5:3]}; diff --git a/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/playfield.vhd b/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/playfield.vhd index 7cd68716..19755a78 100644 --- a/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/playfield.vhd +++ b/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/playfield.vhd @@ -21,7 +21,9 @@ use IEEE.STD_LOGIC_UNSIGNED.all; entity playfield is port( clk6 : in std_logic; - display : in std_logic_vector(7 downto 0); + Gear_Shift_1 : in std_logic_vector(2 downto 0); + Gear_Shift_2 : in std_logic_vector(2 downto 0); + Display : in std_logic_vector(7 downto 0); HCount : in std_logic_vector(8 downto 0); VCount : in std_logic_vector(7 downto 0); H256_s : out std_logic; @@ -65,7 +67,7 @@ signal P2_13 : std_logic; signal P3_6 : std_logic; signal A6_6 : std_logic; signal A6_3 : std_logic; - +signal Display_7 : std_logic; begin -- Video synchronization signals @@ -89,8 +91,36 @@ P2_13 <= (HSync nor VSync); P3_6 <= (HBlank or VBlank); - -char_addr <= display(5 downto 0) & V4 & V2 & V1; +process(Hcount,Vcount,V4,V2,V1,Gear_Shift_1,Gear_Shift_2,Display) +begin + -- this is the right side of the screen for the gear shift + if (HCount(7 downto 3) = "11111" and Vcount(7 downto 3)="11011") then + Display_7 <= '0'; -- 1 is white, 0 is black + case Gear_Shift_2 is + when "000" => char_addr <= "110001" & V4 & V2 & V1; + when "001" => char_addr <= "110010" & V4 & V2 & V1; + when "010" => char_addr <= "110011" & V4 & V2 & V1; + when "011" => char_addr <= "110100" & V4 & V2 & V1; + when others => char_addr <= "001110" & V4 & V2 & V1; + end case; + -- this is the left side of the screen for the gear shift + elsif (HCount(7 downto 3) = "00000" and Vcount(7 downto 3)="11011") then + Display_7 <= '1'; -- 1 is white, 0 is black + case Gear_Shift_1 is + when "000" => char_addr <= "110001" & V4 & V2 & V1; + when "001" => char_addr <= "110010" & V4 & V2 & V1; + when "010" => char_addr <= "110011" & V4 & V2 & V1; + when "011" => char_addr <= "110100" & V4 & V2 & V1; + when others => char_addr <= "001110" & V4 & V2 & V1; + end case; + -- debug all chars + -- char_addr <= num & V4 & V2 & V1; + else + -- default behaviour + char_addr <= Display(5 downto 0) & V4 & V2 & V1; + Display_7 <= Display(7); + end if; +end process; -- Background character ROMs R4: entity work.sprom @@ -103,13 +133,6 @@ port map( Address => char_addr, q => char_data(3 downto 0) ); - ---R4: entity work.Char_MSB ---port map( --- clock => clk6, --- Address => char_addr, --- q => char_data(3 downto 0) --- ); P4: entity work.sprom generic map( @@ -122,15 +145,6 @@ port map( q => char_data(7 downto 4) ); ---P4: entity work.Char_LSB ---port map( --- clock => clk6, --- Address => char_addr, --- q => char_data(7 downto 4) --- ); - - - -- 74LS166 video shift register R3: process(clk6, P3_3, VBlank_n_s, char_data, shift_data) begin diff --git a/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/sprint2.vhd b/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/sprint2.vhd index 61097f7b..589f0f7b 100644 --- a/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/sprint2.vhd +++ b/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/sprint2.vhd @@ -46,17 +46,15 @@ port( Trak_Sel_I : in std_logic; -- Track select button Gas1_I : in std_logic; -- Gas pedals Gas2_I : in std_logic; - Gear1_1_I : in std_logic; -- Gear shifters, 4th gear = no other gear selected - Gear1_2_I : in std_logic; - Gear2_1_I : in std_logic; - Gear2_2_I : in std_logic; - Gear3_1_I : in std_logic; - Gear3_2_I : in std_logic; + c_gearup : in std_logic; + c_geardown : in std_logic; + c_left : in std_logic; + c_right : in std_logic; + c_gearup2 : in std_logic; + c_geardown2 : in std_logic; + c_left2 : in std_logic; + c_right2 : in std_logic; Test_I : in std_logic; -- Self-test switch - Steer_1A_I : in std_logic; -- Steering wheel inputs, these are quadrature encoders - Steer_1B_I : in std_logic; - Steer_2A_I : in std_logic; - Steer_2B_I : in std_logic; Lamp1_O : out std_logic; -- Player 1 and 2 start button LEDs Lamp2_O : out std_logic ); @@ -155,7 +153,30 @@ signal SW1 : std_logic_vector(7 downto 0); signal Inputs : std_logic_vector(1 downto 0); signal Collisions1 : std_logic_vector(1 downto 0); signal Collisions2 : std_logic_vector(1 downto 0); +signal Gearnum : std_logic_vector(2 downto 0); +signal Gear1 : std_logic; +signal Gear2 : std_logic; +signal Gear3 : std_logic; +signal SteerA : std_logic; +signal SteerB : std_logic; +signal Gearnum2 : std_logic_vector(2 downto 0); +signal Gear21 : std_logic; +signal Gear22 : std_logic; +signal Gear23 : std_logic; +signal Steer2A : std_logic; +signal Steer2B : std_logic; +COMPONENT joy2quad + PORT + ( + CLK : IN STD_LOGIC; + clkdiv : IN STD_LOGIC_VECTOR(31 DOWNTO 0); + c_right : IN STD_LOGIC; + c_left : IN STD_LOGIC; + SteerA : OUT STD_LOGIC; + SteerB : OUT STD_LOGIC + ); +END COMPONENT; begin -- Configuration DIP switches, these can be brought out to external switches if desired @@ -188,7 +209,9 @@ port map( Background: entity work.playfield port map( clk6 => clk_6, - display => display, + Gear_Shift_1 => Gearnum, + Gear_Shift_2 => Gearnum2, + Display => display, HCount => HCount, VCount => VCount, HBlank => HBlank, @@ -283,24 +306,72 @@ port map( Trak_Sel => not Trak_Sel_I, Gas1 => not Gas1_I, Gas2 => not Gas2_I, - Gear1_1 => not Gear1_1_I, - Gear1_2 => not Gear1_2_I, - Gear2_1 => not Gear2_1_I, - Gear2_2 => not Gear2_2_I, - Gear3_1 => not Gear3_1_I, - Gear3_2 => not Gear3_2_I, + Gear1_1 => not Gear1, + Gear1_2 => not Gear21, + Gear2_1 => not Gear2, + Gear2_2 => not Gear22, + Gear3_1 => not Gear3, + Gear3_2 => not Gear23, Self_Test => not Test_I, - Steering1A_n => Steer_1A_I, - Steering1B_n => Steer_1B_I, - Steering2A_n => Steer_2A_I, - Steering2B_n => Steer_2B_I, + Steering1A_n => SteerA, + Steering1B_n => SteerB, + Steering2A_n => Steer2A, + Steering2B_n => Steer2B, SteerRst1_n => SteerRst1_n, SteerRst2_n => SteerRst2_n, Adr => Adr, Inputs => Inputs ); + +RotaryEncoder: joy2quad +port map( + CLK => clk_6, + clkdiv => x"000057E4", + c_right => c_right, + c_left => c_left, + SteerA=> SteerA, + SteerB=> SteerB + ); + +Gears: entity work.gearshift +port map( + CLK => clk_6, + reset => not Reset_n, + gearout => Gearnum, + gearup => c_gearup, + geardown => c_geardown, + gear1 => Gear1, + gear2 => Gear2, + gear3 => Gear3 + ); + + +RotaryEncoder2: joy2quad +port map( + CLK => clk_6, + clkdiv => x"000057E4", + c_right => c_right2, + c_left => c_left2, + SteerA=> Steer2A, + SteerB=> Steer2B + ); + + +Gears2: entity work.gearshift +port map( + CLK => clk_6, + reset => not Reset_n, + gearout => Gearnum2, + gearup => c_gearup2, + geardown => c_geardown2, + gear1 => Gear21, + gear2 => Gear22, + gear3 => Gear23 + ); + + Sound: entity work.audio port map( Clk_6 => Clk_6, diff --git a/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/sprint2_mist.sv b/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/sprint2_mist.sv index 50c9848b..254ad2fe 100644 --- a/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/sprint2_mist.sv +++ b/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/rtl/sprint2_mist.sv @@ -64,24 +64,22 @@ sprint2 sprint2( .RGB(RGB), .Audio1_O(audio1), .Audio2_O(audio2), - .Coin1_I(m_coin), + .Coin1_I(~btn_coin), .Coin2_I(1'b1), - .Start1_I(m_start1), - .Start2_I(m_start2), + .Start1_I(~btn_one_player), + .Start2_I(~btn_two_players), .Trak_Sel_I(~status[2]), - .Gas1_I(m_fire1), - .Gas2_I(m_fire2), - .Gear1_1_I(~gear11), - .Gear1_2_I(~gear21), - .Gear2_1_I(~gear12), - .Gear2_2_I(~gear22), - .Gear3_1_I(~gear13), - .Gear3_2_I(~gear23), + .Gas1_I(~gas), + .Gas2_I(~gas2), + .c_gearup(gearup), + .c_geardown(geardown), + .c_left(left), + .c_right(right), + .c_gearup2(gearup2), + .c_geardown2(geardown2), + .c_left2(left2), + .c_right2(right2), .Test_I(~status[1]), - .Steer_1A_I(steer1[1]), - .Steer_1B_I(steer1[0]), - .Steer_2A_I(steer2[1]), - .Steer_2B_I(steer2[0]), .Lamp1_O(), .Lamp2_O() ); @@ -150,7 +148,17 @@ reg btn_fire2 = 0; reg btn_fire3 = 0; reg btn_coin = 0; wire pressed = ps2_key[9]; -wire [7:0] code = ps2_key[7:0]; +wire [7:0] code = ps2_key[7:0]; +wire gearup = btn_fire3 | joystick_0[5]; +wire geardown = btn_fire2 | joystick_0[6]; +wire right = btn_left | joystick_0[1]; +wire left = btn_right | joystick_0[0]; +wire gearup2 = joystick_1[5]; +wire geardown2 = joystick_1[6]; +wire right2 = joystick_1[1]; +wire left2 = joystick_1[0]; +wire gas = btn_fire1 | joystick_0[4]; +wire gas2 = joystick_1[4]; always @(posedge clk_24) begin reg old_state; @@ -171,56 +179,4 @@ always @(posedge clk_24) begin end end -wire m_left1 = (btn_left | joystick_1[1]); -wire m_right1 = (btn_right | joystick_1[0]); -wire m_left2 = (joystick_0[1]); -wire m_right2 = (joystick_0[0]); -wire m_fire1 = ~(btn_fire1 | joystick_1[4]); -wire m_fire2 = ~(joystick_0[4]); -wire m_start1 = ~(btn_one_player); -wire m_start2 = ~(btn_two_players); -wire m_coin = ~(btn_coin); -wire m_gearup1 = (btn_fire2 | joystick_1[5]); -wire m_geardown1 = (btn_fire3 | joystick_1[6]); -wire m_gearup2 = (joystick_0[5]); -wire m_geardown2 = (joystick_0[6]); - -wire [1:0] steer1; -joy2quad steerp1( - .CLK(clk_24), - .clkdiv('d22500), - .right(m_right1), - .left(m_left1), - .steer(steer1) - ); - -wire [1:0] steer2; -joy2quad steerp2( - .CLK(clk_24), - .clkdiv('d22500), - .right(m_right2), - .left(m_left2), - .steer(steer2) - ); - -wire gear11,gear12,gear13; -gearshift gearshiftp1( - .CLK(clk_12), - .gearup(m_gearup1), - .geardown(m_geardown1), - .gear1(gear11), - .gear2(gear12), - .gear3(gear13) - ); - -wire gear21,gear22,gear23; -gearshift gearshiftp2( - .CLK(clk_12), - .gearup(m_gearup2), - .geardown(m_geardown2), - .gear1(gear21), - .gear2(gear22), - .gear3(gear23) - ); - endmodule \ No newline at end of file diff --git a/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/sprint2.qsf b/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/sprint2.qsf index 83cf0528..b0bc25f9 100644 --- a/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/sprint2.qsf +++ b/Arcade_MiST/Atari BW Raster Hardware/Sprint2_MiST/sprint2.qsf @@ -18,7 +18,7 @@ # # Quartus II 64-Bit # Version 13.1.4 Build 182 03/12/2014 SJ Web Edition -# Date created = 16:19:23 March 07, 2019 +# Date created = 11:06:18 April 28, 2019 # # -------------------------------------------------------------------------- # # @@ -45,21 +45,21 @@ set_global_assignment -name LAST_QUARTUS_VERSION 13.1 set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files set_global_assignment -name SYSTEMVERILOG_FILE rtl/sprint2_mist.sv set_global_assignment -name VHDL_FILE rtl/sprint2.vhd -set_global_assignment -name VHDL_FILE rtl/T65/T65_Pack.vhd -set_global_assignment -name VHDL_FILE rtl/T65/T65_MCode.vhd -set_global_assignment -name VHDL_FILE rtl/T65/T65_ALU.vhd -set_global_assignment -name VHDL_FILE rtl/T65/T65.vhd -set_global_assignment -name VHDL_FILE rtl/sync.vhd -set_global_assignment -name SYSTEMVERILOG_FILE rtl/joy2quad.sv -set_global_assignment -name SYSTEMVERILOG_FILE rtl/gearshift.sv set_global_assignment -name VHDL_FILE rtl/playfield.vhd set_global_assignment -name VHDL_FILE rtl/motion.vhd +set_global_assignment -name VHDL_FILE rtl/sync.vhd set_global_assignment -name VHDL_FILE rtl/collision.vhd set_global_assignment -name VHDL_FILE rtl/cpu_mem.vhd set_global_assignment -name VHDL_FILE rtl/Inputs.vhd set_global_assignment -name VHDL_FILE rtl/sprint2_sound.vhd set_global_assignment -name VHDL_FILE rtl/screech.vhd set_global_assignment -name VHDL_FILE rtl/EngineSound.vhd +set_global_assignment -name VHDL_FILE rtl/gearshift.vhd +set_global_assignment -name SYSTEMVERILOG_FILE rtl/joy2quad.sv +set_global_assignment -name VHDL_FILE rtl/T65/T65_Pack.vhd +set_global_assignment -name VHDL_FILE rtl/T65/T65_MCode.vhd +set_global_assignment -name VHDL_FILE rtl/T65/T65_ALU.vhd +set_global_assignment -name VHDL_FILE rtl/T65/T65.vhd set_global_assignment -name SYSTEMVERILOG_FILE rtl/dac.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/video_mixer.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/scandoubler.sv @@ -116,6 +116,11 @@ set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS OFF set_global_assignment -name DEVICE_FILTER_PIN_COUNT 144 set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 8 set_global_assignment -name TOP_LEVEL_ENTITY sprint2_mist +set_global_assignment -name DEVICE_FILTER_PACKAGE TQFP +set_global_assignment -name VHDL_INPUT_VERSION VHDL_2008 +set_global_assignment -name VHDL_SHOW_LMF_MAPPING_MESSAGES OFF +set_global_assignment -name VERILOG_INPUT_VERSION SYSTEMVERILOG_2005 +set_global_assignment -name VERILOG_SHOW_LMF_MAPPING_MESSAGES OFF # Fitter Assignments # ================== diff --git a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/Release/sprint1.rbf b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/Release/sprint1.rbf index f58c7952..51312c81 100644 Binary files a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/Release/sprint1.rbf and b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/Release/sprint1.rbf differ diff --git a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/gearshift.sv b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/gearshift.sv deleted file mode 100644 index b40a7195..00000000 --- a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/gearshift.sv +++ /dev/null @@ -1,97 +0,0 @@ -//============================================================================ -// gearshift -// -// Turn gearup and geardown buttons into state that can flip the correct switches -// for sprint -// -// -// Copyright (c) 2019 Alan Steremberg - alanswx -// -// -//============================================================================ - -module gearshift -( - input CLK, - - input gearup, - input geardown, - output [1:0]gear_num, - output gear1, - output gear2, - output gear3 -); - -reg [2:0] gear=3'b0; - -always @(posedge CLK) begin - reg old_gear_up; - reg old_gear_down; - - if (gearup==1) - begin - if (old_gear_up==0) - begin - old_gear_up=1; - if (gear<4) - begin - gear=gear+1; - end - end - end - else - begin - old_gear_up=0; - end - if (geardown==1) - begin - if (old_gear_down==0) - begin - old_gear_down=1; - if (gear>0) - begin - gear=gear-1; - end - end - end - else - begin - old_gear_up=0; - end - - - casex(gear) - 3'b000: - begin - gear1=0; - gear2=1; - gear3=1; - gear_num=2'b01; - end - 3'b001: - begin - gear1=1; - gear2=0; - gear3=1; - gear_num=2'b10; - end - 3'b010: - begin - gear1=1; - gear2=1; - gear3=0; - gear_num=2'b11; - end - 3'b011: - begin - gear1=1; - gear2=1; - gear3=1; - gear_num=2'b00; - end - endcase - -end - - -endmodule \ No newline at end of file diff --git a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/gearshift.vhd b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/gearshift.vhd new file mode 100644 index 00000000..9cbf72f3 --- /dev/null +++ b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/gearshift.vhd @@ -0,0 +1,89 @@ +-- Gear Shift +-- (c) 2019 alanswx + + +library IEEE; +use IEEE.STD_LOGIC_1164.all; +use IEEE.STD_LOGIC_ARITH.all; +use IEEE.STD_LOGIC_UNSIGNED.all; + +entity gearshift is +port( + Clk : in std_logic; + reset : in std_logic; + gearup : in std_logic; + geardown : in std_logic; + gearout : out std_logic_vector(2 downto 0); + gear1 : out std_logic; + gear2 : out std_logic; + gear3 : out std_logic + + ); +end gearshift; + +architecture rtl of gearshift is + +signal gear : std_logic_vector(2 downto 0):= (others =>'0'); +signal old_gear_up : std_logic:='0'; +signal old_gear_down : std_logic:='0'; + + +begin + +gearout<=gear; + +process (clk, gear) +begin + + if rising_edge(clk) then + + + if (reset='1') then + gear<="000"; + elsif (gearup='1') then + if (old_gear_up='0') then + old_gear_up<='1'; + if (gear < 3) then + gear<= gear +1; + end if; + end if; + elsif (geardown='1') then + if (old_gear_down='0') then + old_gear_down<='1'; + if (gear>0) then + gear<=gear-1; + end if; + end if; + else + old_gear_up<='0'; + old_gear_down<='0'; + end if; + + end if; + + case gear is + when "000" => gear1 <= '0' ; + when "001" => gear1 <= '1' ; + when "010" => gear1 <= '1' ; + when "011" => gear1 <= '1' ; + when others => gear1 <= '1' ; + end case; + case gear is + when "000" => gear2 <= '1' ; + when "001" => gear2 <= '0' ; + when "010" => gear2 <= '1' ; + when "011" => gear2 <= '1' ; + when others => gear2 <= '1' ; + end case; + case gear is + when "000" => gear3 <= '1' ; + when "001" => gear3 <= '1' ; + when "010" => gear3 <= '0' ; + when "011" => gear3 <= '1' ; + when others => gear3 <= '1' ; + end case; + +end process; + + +end rtl; \ No newline at end of file diff --git a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/joy2quad.sv b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/joy2quad.sv index dae1fa5f..d2eaeabb 100644 --- a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/joy2quad.sv +++ b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/joy2quad.sv @@ -19,10 +19,10 @@ module joy2quad input CLK, input [31:0] clkdiv, - input right, - input left, - - output reg [1:0] steer + input c_right, + input c_left, + output reg steerA, + output reg steerB ); @@ -40,12 +40,12 @@ always @(posedge CLK) begin casex(state) 4'b0000: begin - steer=2'b00; - if (left==1) + {steerB,steerA} =2'b00; + if (c_left==1) begin state=4'b0001; end - if (right==1) + if (c_right==1) begin state=4'b0101; end @@ -53,42 +53,42 @@ always @(posedge CLK) begin end 4'b0001: begin - steer=2'b00; + {steerB,steerA}=2'b00; state=4'b0010; end 4'b0010: begin - steer=2'b01; + {steerB,steerA}=2'b01; state=3'b0011; end 4'b0011: begin - steer=2'b11; + {steerB,steerA}=2'b11; state=4'b0100; end 4'b0100: begin - steer=2'b10; + {steerB,steerA}=2'b10; state=4'b000; end 4'b0101: begin - steer=2'b00; + {steerB,steerA}=2'b00; state=4'b0110; end 4'b0110: begin - steer=2'b10; + {steerB,steerA}=2'b10; state=4'b0111; end 4'b0111: begin - steer=2'b11; + {steerB,steerA}=2'b11; state=4'b1000; end 4'b1000: begin - steer=2'b01; + {steerB,steerA}=2'b01; state=4'b0000; end @@ -97,4 +97,4 @@ always @(posedge CLK) begin end end -endmodule \ No newline at end of file +endmodule \ No newline at end of file diff --git a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/osd.sv b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/osd.sv index c62c10af..b9181763 100644 --- a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/osd.sv +++ b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/osd.sv @@ -11,13 +11,15 @@ module osd ( input SPI_SS3, input SPI_DI, + input [1:0] rotate, //[0] - rotate [1] - left or right + // VGA signals coming from core input [5:0] R_in, input [5:0] G_in, input [5:0] B_in, input HSync, input VSync, - + // VGA signals going to video connector output [5:0] R_out, output [5:0] G_out, @@ -59,7 +61,7 @@ always@(posedge SPI_SCK, posedge SPI_SS3) begin if(cnt == 7) begin cmd <= {sbuf[6:0], SPI_DI}; - + // lower three command bits are line address bcnt <= {sbuf[1:0], SPI_DI, 8'h00}; @@ -91,7 +93,7 @@ reg [9:0] vs_low, vs_high; wire vs_pol = vs_high < vs_low; wire [9:0] dsp_height = vs_pol ? vs_low : vs_high; -wire doublescan = (dsp_height>350); +wire doublescan = (dsp_height>350); reg ce_pix; always @(negedge clk_sys) begin @@ -124,13 +126,13 @@ always @(posedge clk_sys) begin hsD2 <= hsD; // falling edge of HSync - if(!hsD && hsD2) begin + if(!hsD && hsD2) begin h_cnt <= 0; hs_high <= h_cnt; end // rising edge of HSync - else if(hsD && !hsD2) begin + else if(hsD && !hsD2) begin h_cnt <= 0; hs_low <= h_cnt; v_cnt <= v_cnt + 1'd1; @@ -142,13 +144,13 @@ always @(posedge clk_sys) begin vsD2 <= vsD; // falling edge of VSync - if(!vsD && vsD2) begin + if(!vsD && vsD2) begin v_cnt <= 0; vs_high <= v_cnt; end // rising edge of VSync - else if(vsD && !vsD2) begin + else if(vsD && !vsD2) begin v_cnt <= 0; vs_low <= v_cnt; end @@ -160,17 +162,30 @@ wire [9:0] h_osd_start = ((dsp_width - OSD_WIDTH)>> 1) + OSD_X_OFFSET; wire [9:0] h_osd_end = h_osd_start + OSD_WIDTH; wire [9:0] v_osd_start = ((dsp_height- (OSD_HEIGHT<> 1) + OSD_Y_OFFSET; wire [9:0] v_osd_end = v_osd_start + (OSD_HEIGHT<= h_osd_start) && (h_cnt < h_osd_end) && (VSync != vs_pol) && (v_cnt >= v_osd_start) && (v_cnt < v_osd_end); -reg [7:0] osd_byte; -always @(posedge clk_sys) if(ce_pix) osd_byte <= osd_buffer[{doublescan ? osd_vcnt[7:5] : osd_vcnt[6:4], osd_hcnt[7:0]}]; +reg [10:0] osd_buffer_addr; +wire [7:0] osd_byte = osd_buffer[osd_buffer_addr]; +reg osd_pixel; -wire osd_pixel = osd_byte[doublescan ? osd_vcnt[4:2] : osd_vcnt[3:1]]; +always @(posedge clk_sys) begin + if(ce_pix) begin + osd_buffer_addr <= rotate[0] ? {rotate[1] ? osd_hcnt_next2[7:5] : ~osd_hcnt_next2[7:5], + rotate[1] ? (doublescan ? ~osd_vcnt[7:0] : ~{osd_vcnt[6:0], 1'b0}) : + (doublescan ? osd_vcnt[7:0] : {osd_vcnt[6:0], 1'b0})} : + {doublescan ? osd_vcnt[7:5] : osd_vcnt[6:4], osd_hcnt_next2[7:0]}; + + osd_pixel <= rotate[0] ? osd_byte[rotate[1] ? osd_hcnt_next[4:2] : ~osd_hcnt_next[4:2]] : + osd_byte[doublescan ? osd_vcnt[4:2] : osd_vcnt[3:1]]; + end +end assign R_out = !osd_de ? R_in : {osd_pixel, osd_pixel, OSD_COLOR[2], R_in[5:3]}; assign G_out = !osd_de ? G_in : {osd_pixel, osd_pixel, OSD_COLOR[1], G_in[5:3]}; diff --git a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/playfield.vhd b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/playfield.vhd index b621fc6b..29da07cf 100644 --- a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/playfield.vhd +++ b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/playfield.vhd @@ -21,6 +21,7 @@ use IEEE.STD_LOGIC_UNSIGNED.all; entity playfield is port( Clk6 : in std_logic; + Gear_Shift_1 : in std_logic_vector(2 downto 0); Display : in std_logic_vector(7 downto 0); HCount : in std_logic_vector(8 downto 0); VCount : in std_logic_vector(7 downto 0); @@ -65,7 +66,7 @@ signal P2_13 : std_logic; signal P3_6 : std_logic; signal A6_6 : std_logic; signal A6_3 : std_logic; - +signal Display_7 : std_logic; begin -- Video synchronization signals @@ -88,9 +89,26 @@ P2_13 <= (HSync nor VSync); P3_6 <= (HBlank or VBlank); - - -char_addr <= display(5 downto 0) & V4 & V2 & V1; +process(Hcount,Vcount, V4, V2, V1, Display, Gear_Shift_1) +begin + -- this is the left side of the screen for the gear shift + if (HCount(7 downto 3) = "00000" and Vcount(7 downto 3)="11011") then + Display_7 <= '1'; -- 1 is white, 0 is black + case Gear_Shift_1 is + when "000" => char_addr <= "110001" & V4 & V2 & V1; + when "001" => char_addr <= "110010" & V4 & V2 & V1; + when "010" => char_addr <= "110011" & V4 & V2 & V1; + when "011" => char_addr <= "110100" & V4 & V2 & V1; + when others => char_addr <= "001110" & V4 & V2 & V1; + end case; + -- debug all chars + -- char_addr <= num & V4 & V2 & V1; + else + -- default behaviour + char_addr <= display(5 downto 0) & V4 & V2 & V1; + Display_7 <= display(7); + end if; +end process; -- Background character ROMs R4: entity work.sprom @@ -137,7 +155,7 @@ R2: process(clk6, R7_12, display, H256, P2_13, P3_6) begin if rising_edge(clk6) then if R7_12 = '0' then - R2_reg <= (H256 & display(7) & P3_6 & P2_13); + R2_reg <= (H256 & Display_7 & P3_6 & P2_13); end if; end if; end process; diff --git a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/sprint1.vhd b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/sprint1.vhd index 7644984e..ffa746b2 100644 --- a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/sprint1.vhd +++ b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/sprint1.vhd @@ -42,12 +42,11 @@ port( Coin2_I : in std_logic; Start_I : in std_logic; -- Start button Gas_I : in std_logic; -- Gas pedal - Gear1_I : in std_logic; -- Gear shifter, 4th gear = no other gear selected - Gear2_I : in std_logic; - Gear3_I : in std_logic; + c_gearup : in std_logic; + c_geardown : in std_logic; + c_left : in std_logic; + c_right : in std_logic; Test_I : in std_logic; -- Self-test switch - SteerA_I : in std_logic; -- Steering wheel inputs, these are quadrature encoders - SteerB_I : in std_logic; StartLamp_O : out std_logic -- Start button lamp ); end sprint1; @@ -144,6 +143,24 @@ signal SW1 : std_logic_vector(7 downto 0); signal Inputs : std_logic_vector(1 downto 0); signal Collisions1 : std_logic_vector(1 downto 0); signal Collisions2 : std_logic_vector(1 downto 0); +signal Gearnum : std_logic_vector(2 downto 0); +signal Gear1 : std_logic; +signal Gear2 : std_logic; +signal Gear3 : std_logic; +signal SteerA : std_logic; +signal SteerB : std_logic; + +COMPONENT joy2quad + PORT + ( + CLK : IN STD_LOGIC; + clkdiv : IN STD_LOGIC_VECTOR(31 DOWNTO 0); + c_right : IN STD_LOGIC; + c_left : IN STD_LOGIC; + SteerA : OUT STD_LOGIC; + SteerB : OUT STD_LOGIC + ); +END COMPONENT; begin -- Configuration DIP switches, these can be brought out to external switches if desired @@ -176,6 +193,7 @@ port map( Background: entity work.playfield port map( clk6 => clk_6, + Gear_Shift_1 => Gearnum, display => display, HCount => HCount, VCount => VCount, @@ -263,18 +281,42 @@ port map( Coin2_n => Coin2_I, Start => not Start_I, -- Active high in real hardware, inverting these makes more sense with the FPGA Gas => not Gas_I, - Gear1 => not Gear1_I, - Gear2 => not Gear2_I, - Gear3 => not Gear3_I, + Gear1 => not Gear1, + Gear2 => not Gear2, + Gear3 => not Gear3, Self_Test => not Test_I, - Steering1A_n => SteerA_I, - Steering1B_n => SteerB_I, + Steering1A_n => SteerA, + Steering1B_n => SteerB, SteerRst1_n => SteerRst1_n, Adr => Adr, Inputs => Inputs - ); - + ); + +RotaryEncoder: joy2quad +port map( + CLK => clk_6, + clkdiv => x"000057E4", + c_right => c_right, + c_left => c_left, + SteerA=> SteerA, + SteerB=> SteerB + ); + + +Gears: entity work.gearshift +port map( + CLK => clk_6, + reset => not Reset_n, + gearout => Gearnum, + gearup => c_gearup, + geardown => c_geardown, + gear1 => Gear1, + gear2 => Gear2, + gear3 => Gear3 + ); + + Sound: entity work.audio port map( Clk_6 => Clk_6, diff --git a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/sprint1_mist.sv b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/sprint1_mist.sv index 10af74f6..ae215cf0 100644 --- a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/sprint1_mist.sv +++ b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/sprint1_mist.sv @@ -23,7 +23,7 @@ localparam CONF_STR = { "O1,Test Mode,Off,On;", "O34,Scanlines,Off,25%,50%,75%;", "T6,Reset;", - "V,v1.10.",`BUILD_DATE + "V,v1.20.",`BUILD_DATE }; assign LED = 1; @@ -65,12 +65,11 @@ sprint1 sprint1( .Coin2_I(1'b1), .Start_I(~btn_one_player), .Gas_I(~(btn_fire1 | joystick_0[4] | joystick_1[4])), - .Gear1_I(gear1), - .Gear2_I(gear2), - .Gear3_I(gear3), + .c_gearup(gearup), + .c_geardown(geardown), + .c_left(left), + .c_right(right), .Test_I(~status[1]), - .SteerA_I(steer[1]), - .SteerB_I(steer[0]), .StartLamp_O() ); @@ -137,7 +136,11 @@ reg btn_fire2 = 0; reg btn_fire3 = 0; reg btn_coin = 0; wire pressed = ps2_key[9]; -wire [7:0] code = ps2_key[7:0]; +wire [7:0] code = ps2_key[7:0]; +wire gearup = btn_fire3 | joystick_0[5] | joystick_1[5]; +wire geardown = btn_fire2 | joystick_0[6] | joystick_1[6]; +wire right = btn_left | joystick_0[1] | joystick_1[1]; +wire left = btn_right | joystick_0[0] | joystick_1[0]; always @(posedge clk_24) begin reg old_state; @@ -158,24 +161,4 @@ always @(posedge clk_24) begin end end -wire [1:0] steer; -joy2quad steer1( - .CLK(clk_24), - .clkdiv('d22500), - .right(btn_right | joystick_0[0] | joystick_1[0]), - .left(btn_left | joystick_0[1] | joystick_1[1]), - .steer(steer) - ); - -wire gear1,gear2,gear3; -gearshift gearshift1( - .CLK(clk_12), - .gearup(btn_fire3 | joystick_0[5] | joystick_1[5]), - .geardown(btn_fire2 | joystick_0[6] | joystick_1[6]), - .gear1(gear1), - .gear2(gear2), - .gear3(gear3) - ); - - endmodule diff --git a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/sprint1_sound.vhd b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/sprint1_sound.vhd index 268fe1fd..5e07dc73 100644 --- a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/sprint1_sound.vhd +++ b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/sprint1_sound.vhd @@ -139,7 +139,7 @@ begin end process; -Crash_sound: process(crash_n, display, noise) +Crash_sound: process(crash_n, display, noise, crash) begin if crash_n = '0' then crash <= display(3 downto 0); diff --git a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/video_mixer.sv b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/video_mixer.sv index bb46caaf..126ca276 100644 --- a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/video_mixer.sv +++ b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/rtl/video_mixer.sv @@ -60,7 +60,7 @@ module video_mixer // 0 = 16-240 range. 1 = 0-255 range. (only for YPbPr color space) input ypbpr_full, - + input [1:0] rotate, //[0] - rotate [1] - left or right // color input [DWIDTH:0] R, input [DWIDTH:0] G, @@ -182,6 +182,7 @@ osd #(OSD_X_OFFSET, OSD_Y_OFFSET, OSD_COLOR) osd .B_in(b_out), .HSync(hs), .VSync(vs), + .rotate(rotate), .R_out(red), .G_out(green), diff --git a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/sprint1.qpf b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/sprint1.qpf index 07be4a15..76062652 100644 --- a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/sprint1.qpf +++ b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/sprint1.qpf @@ -28,4 +28,3 @@ DATE = "19:51:47 November 12, 2017" # Revisions PROJECT_REVISION = "sprint1" -PROJECT_REVISION = "sprint2" diff --git a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/sprint1.qsf b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/sprint1.qsf index 60a22fb6..8d23045f 100644 --- a/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/sprint1.qsf +++ b/Arcade_MiST/Atari BW Raster Hardware/SprintOne_MiST/sprint1.qsf @@ -18,7 +18,7 @@ # # Quartus II 64-Bit # Version 13.1.4 Build 182 03/12/2014 SJ Web Edition -# Date created = 16:39:28 March 07, 2019 +# Date created = 10:21:26 April 28, 2019 # # -------------------------------------------------------------------------- # # @@ -45,18 +45,22 @@ set_global_assignment -name LAST_QUARTUS_VERSION 13.1 set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files set_global_assignment -name SYSTEMVERILOG_FILE rtl/sprint1_mist.sv set_global_assignment -name VHDL_FILE rtl/sprint1.vhd -set_global_assignment -name VERILOG_FILE rtl/pll.v set_global_assignment -name VHDL_FILE rtl/sprint1_sound.vhd set_global_assignment -name VHDL_FILE rtl/sync.vhd set_global_assignment -name VHDL_FILE rtl/collision.vhd -set_global_assignment -name VHDL_FILE rtl/screech.vhd set_global_assignment -name VHDL_FILE rtl/cpu_mem.vhd set_global_assignment -name VHDL_FILE rtl/playfield.vhd set_global_assignment -name VHDL_FILE rtl/EngineSound.vhd set_global_assignment -name VHDL_FILE rtl/Inputs.vhd set_global_assignment -name VHDL_FILE rtl/motion.vhd -set_global_assignment -name SYSTEMVERILOG_FILE rtl/gearshift.sv +set_global_assignment -name VHDL_FILE rtl/screech.vhd +set_global_assignment -name VHDL_FILE rtl/T65/T65_Pack.vhd +set_global_assignment -name VHDL_FILE rtl/T65/T65_MCode.vhd +set_global_assignment -name VHDL_FILE rtl/T65/T65_ALU.vhd +set_global_assignment -name VHDL_FILE rtl/T65/T65.vhd +set_global_assignment -name VHDL_FILE rtl/gearshift.vhd set_global_assignment -name SYSTEMVERILOG_FILE rtl/joy2quad.sv +set_global_assignment -name VERILOG_FILE rtl/pll.v set_global_assignment -name SYSTEMVERILOG_FILE rtl/video_mixer.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/scandoubler.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/osd.sv @@ -65,11 +69,6 @@ set_global_assignment -name SYSTEMVERILOG_FILE rtl/mist_io.sv set_global_assignment -name SYSTEMVERILOG_FILE rtl/hq2x.sv set_global_assignment -name VHDL_FILE rtl/dpram.vhd set_global_assignment -name SYSTEMVERILOG_FILE rtl/dac.sv -set_global_assignment -name SYSTEMVERILOG_FILE rtl/build_id.sv -set_global_assignment -name VHDL_FILE rtl/T65/T65_Pack.vhd -set_global_assignment -name VHDL_FILE rtl/T65/T65_MCode.vhd -set_global_assignment -name VHDL_FILE rtl/T65/T65_ALU.vhd -set_global_assignment -name VHDL_FILE rtl/T65/T65.vhd # Pin & Location Assignments # ========================== @@ -120,6 +119,7 @@ set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS OFF set_global_assignment -name DEVICE_FILTER_PIN_COUNT 144 set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 8 set_global_assignment -name TOP_LEVEL_ENTITY sprint1_mist +set_global_assignment -name DEVICE_FILTER_PACKAGE TQFP # Fitter Assignments # ================== @@ -167,10 +167,10 @@ set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" - set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top - set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top # end DESIGN_PARTITION(Top) # ------------------------- # end ENTITY(sprint1_mist) -# ------------------------ \ No newline at end of file +# ------------------------ +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/build_id.sv b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/build_id.sv index 9b119796..d1fe1923 100644 --- a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/build_id.sv +++ b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/build_id.sv @@ -1,2 +1,2 @@ -`define BUILD_DATE "190321" -`define BUILD_TIME "004002" +`define BUILD_DATE "190421" +`define BUILD_TIME "114651" diff --git a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/006400.m2 b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/006400.m2 deleted file mode 100644 index f4fe05f4..00000000 Binary files a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/006400.m2 and /dev/null differ diff --git a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/006400_m2.hex b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/006400_m2.hex new file mode 100644 index 00000000..9dbfacea --- /dev/null +++ b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/006400_m2.hex @@ -0,0 +1,17 @@ +:1000000000000000000000000000000000000000F0 +:1000100000000000000000000000000000000000E0 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000878 +:100080000A0A0A0A0A0E0000000000000000000030 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000808080808080808080808080808080A8E +:1000F0000A0A0B0B0B0A0A0A0A0A0A0A0A0A0A0A5D +:00000001FF diff --git a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/006401.e2 b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/006401.e2 deleted file mode 100644 index ec508e96..00000000 --- a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/006401.e2 +++ /dev/null @@ -1 +0,0 @@ -AAÁÁ!!ááááààèèääììââêêææîî \ No newline at end of file diff --git a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/006401_e2.hex b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/006401_e2.hex new file mode 100644 index 00000000..975d72ea --- /dev/null +++ b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/006401_e2.hex @@ -0,0 +1,3 @@ +:100000001111010141418181C1C12121E1E1E1E100 +:10001000E0E0E8E8E4E4ECECE2E2EAEAE6E6EEEE70 +:00000001FF diff --git a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033280.p4 b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033280.p4 deleted file mode 100644 index f8972298..00000000 Binary files a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033280.p4 and /dev/null differ diff --git a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033280_p4.hex b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033280_p4.hex new file mode 100644 index 00000000..743eadb7 --- /dev/null +++ b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033280_p4.hex @@ -0,0 +1,33 @@ +:1000000000000000000000000F0F0202020F0F00AE +:100010000F0F0909090F060003070C08080C04005C +:100020000F0F08080C0703000F0F09090908080043 +:100030000F0F01010101000003070C08090F0F0059 +:100040000F0F0101010F0F0008080F0F0808000033 +:10005000040C0808080F07000F0F03070E0C080018 +:100060000F0F0808080808000F0F0103010F0F0009 +:100070000F0F0103070F0F00070F0808080F0700F5 +:100080000F0F020202030100070F080A0E070B0000 +:100090000F0F02060F0D0900040D0909090F0600D4 +:1000A00000000F0F00000000070F0808080F0700EE +:1000B0000103070E070301000F0F0703070F0F00CF +:1000C0000C0E0703070E0C0000010F0F01000000CB +:1000D0000C0E0F0B090808000000000000000000D3 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000300000000000000EC +:1001100003030000000000000303030000000000D0 +:1001200003030303000000000303030303000000B4 +:100130000303030303030000030303030303030098 +:100140000303030303030303000303030303030382 +:10015000000003030303030300000003030303037E +:10016000000000000303030300000000000303037A +:100170000000000000000303000000000000000376 +:1001800003070C080807030008080F0F0808000001 +:100190000C0E0F0B0B090800040C0909090F0600CF +:1001A000030302020F0F0200040C0808080F0700E7 +:1001B000070F0909090F060000000E0F01000000DB +:1001C0000609090B0B0E0600000909090D070300BB +:1001D000000000000000000003000F0F0F0F0F0FC2 +:1001E00003030F0F0F0F0F0F00000F0F0F0F0F0F55 +:1001F00000000F0F0F0F0F0F0F0F0F0F0F0F0F0F2D +:00000001FF diff --git a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033281.r4 b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033281.r4 deleted file mode 100644 index a2cf3499..00000000 Binary files a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033281.r4 and /dev/null differ diff --git a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033281_r4.hex b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033281_r4.hex new file mode 100644 index 00000000..000d461b --- /dev/null +++ b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033281_r4.hex @@ -0,0 +1,33 @@ +:100000000000000000000000080C0602060C0800BA +:100010000E0E0202020E0C00080C0602020604007C +:100020000E0E0202060C08000E0E02020202000072 +:100030000E0E020202020200080C06020202020078 +:100040000E0E0000000E0E0002020E0E0202000054 +:1000500000000000000E0E000E0E00080C0602004C +:100060000E0E0000000000000E0E0C080C0E0E001C +:100070000E0E0C08000E0E000C0E0202020E0C00FA +:100080000E0E0202020E0C000C0E0202020E0C00FA +:100090000E0E0202020E0C000C0E020206040000FC +:1000A00002020E0E020200000E0E0000000E0E00F4 +:1000B0000E0E0000000E0E000E0E0008000E0E00C8 +:1000C000060E0C080C0E06000E0E00000E0E0000B0 +:1000D0000202020A0E0E06000000000000000000EE +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000F00000000000000E0 +:100110000F0F0000000000000F0F0F000000000094 +:100120000F0F0F0F000000000F0F0F0F0F00000048 +:100130000F0F0F0F0F0F00000F0F0F0F0F0F0F00FC +:100140000F0F0F0F0F0F0F0F000F0F0F0F0F0F0FCE +:1001500000000F0F0F0F0F0F0000000F0F0F0F0FFA +:10016000000000000F0F0F0F00000000000F0F0F26 +:100170000000000000000F0F000000000000000F52 +:10018000080C0202060C080000040E0E000000001D +:10019000040602020A0E0C000002020A0E06020009 +:1001A00000080C060E0E00000E0E0A0A0A0A0000D5 +:1001B000080C060202020000060602020A0E0600F1 +:1001C0000C0E0A02020C00000C0E0202020E0C00C1 +:1001D00000000000000000000F000F0F0F0F0F0FB6 +:1001E0000F0F0F0F0F0F0F0F00000F0F0F0F0F0F3D +:1001F00000000C0C0C0C0C0C0C0C0C0C0C0C0C0C57 +:00000001FF diff --git a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033282.k6 b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033282.k6 deleted file mode 100644 index f53f888d..00000000 Binary files a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033282.k6 and /dev/null differ diff --git a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033282_k6.hex b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033282_k6.hex new file mode 100644 index 00000000..0e7a352d --- /dev/null +++ b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033282_k6.hex @@ -0,0 +1,3 @@ +:10000000E0E0E00000000000000000000000000050 +:1000100000000000000000000000000000000000E0 +:00000001FF diff --git a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033453.c1 b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033453.c1 deleted file mode 100644 index 15ababe8..00000000 Binary files a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033453.c1 and /dev/null differ diff --git a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033453_c1.hex b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033453_c1.hex new file mode 100644 index 00000000..dfc82906 --- /dev/null +++ b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033453_c1.hex @@ -0,0 +1,129 @@ +:10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +:10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:10003000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:10004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:10008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:10009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +:1000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:1000B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +:1000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +:1000D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +:1000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +:1000F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +:10010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +:10011000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +:10012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +:10013000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +:10014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +:10015000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +:10016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +:10017000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +:10018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +:10019000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +:1001A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +:1001B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +:1001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +:1001D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +:1001E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +:1001F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +:10020000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +:10021000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +:10022000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:10023000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:10024000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +:10025000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:10026000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +:10027000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:10028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +:10029000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:1002A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +:1002B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:1002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +:1002D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:1002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +:1002F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:10030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +:10031000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:10032000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +:10033000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:10034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +:10035000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:10036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +:10037000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:10038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +:10039000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +:1003B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +:1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +:1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:100400004C8D3CA201A406A503F01BB525D92700FD +:100410009011992700D007B520D922009005B5206A +:10042000992200CA10E5204F348D300C8D400CE627 +:1004300004A9398539A9398538A206A903853E2042 +:10044000B035202F36A503D004A50ED0D920C9364B +:1004500020082F202432205231A505D0E8A503F032 +:10046000C5A9088511850020C9362C2E083006A59F +:1004700000293FD0F2A9008511E60220F234A5023E +:10048000C50390ADA9008502A9042C32081002A969 +:1004900002C504B09A4C032C206933A538291F38B3 +:1004A000E90F1002A9004A8538A5060A0A0A05388C +:1004B000A8A92D8539A93B8538B1381024B52A1053 +:1004C00003200B3AC940AD5B339003AD5C33853AF2 +:1004D000B52AC980A53A9003200B3A952AA9099517 +:1004E0002BA503F053B138297F8538186509C92039 +:1004F0009002A9208509F8A53818A40588F0076599 +:100500003888F0026538A4027920009920009027ED +:10051000A900792500992500C50AD01BA5021869F4 +:1005200001A80A0A2517D00F9805178517A9108565 +:10053000078508E60EE60ED8C60D600101030385A7 +:10054000858787000001038587000000000103857F +:10055000870000A900853EA21EA9398539A93985E1 +:100560003820B035A9568538A9398539A91FAA85FB +:100570003E4CB035A503F00AA502D06CA504C90114 +:10058000D066A500290FD060AD28082AAD2F082914 +:10059000802A2AC9039002A902C506F0098506A986 +:1005A0000085404C8231AD3208850AAD330829C040 +:1005B000260A260A05062A2A2AAABDE92D850AF056 +:1005C00027A944204937A50A4A4A4A4AF00320AAE3 +:1005D0003EA000913AA50A20AA3EA020913AA9B0D7 +:1005E000A040913AA060913A6000020406091216F8 +:1005F0002000020406081012150002030407091166 +:1006000014A537C902B005A2024C973660A512C9DD +:10061000249004C964900BA51B4A9006E605182A8D +:10062000851BA514C9249004C964900BA51D4A908C +:1006300006E605182A851D60A506C901F0C3B0CDE0 +:10064000A503D004A50BD025A000A52BC9089008B0 +:10065000A91CC53790028537A537C9079067C930EF +:10066000B00DC914900529014C6D2E2903D056A94F +:10067000048539853BA906853CA2248638863AE65E +:100680003AA539C9079006A538C960B036B13A9184 +:1006900038E638E63AA53A291FC91F90F0A50C297B +:1006A00004D0049138F00EA5382920D004A9BFD079 +:1006B00002A9BE9138A53818653CAA90BEE639E675 +:1006C0003BD0B8E60C60A50FD00B2C31087006307B +:1006D00004A904850EA5002907F008C904D0038DDC +:1006E000700C60A50FF0FB2C310850083008E60EA6 +:1006F000E60E1000E60EE60EC60F8D710CA50EC9B3 +:100700001E90DFA91E850E60A204B51910034CE3EC +:100710002FB518C9E8B010C91AB01DB52AC9409044 +:1007200017C9C0B013D00AB52AC9409004C9C090F7 +:100730000720013A952AE608B510D023B52A301FC4 +:10074000200B3A952AA9238536B5192901F002E62E +:1007500005B51929809519A503F004A9088516B5D2 +:1007600010C9F09015B5192901D002C605A98095C8 +:1007700019A506C902D00320382EB5192902D05C6C +:10078000206933A000B138C9BEF00FC9BFD04DA554 +:100790003838E9208538B002C639B5192901D03971 +:1007A000A506F008B51909029519D012A536300E24 +:1007B000A538291F38E53620AD39C904901EA53863 +:1007C000291F8536A503D004A50BD00DA000A900D4 +:1007D0009138A020913820982C20EB2F863F20764E +:1007E00032A63FCACA30034C0A2F60A506C901F0E1 +:1007F0000EB010A536C91ED006B52AC980B0034C6C +:00000001FF diff --git a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033454.d1 b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033454.d1 deleted file mode 100644 index 00f04eb8..00000000 Binary files a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033454.d1 and /dev/null differ diff --git a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033454_d1.hex b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033454_d1.hex new file mode 100644 index 00000000..ae94647e --- /dev/null +++ b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033454_d1.hex @@ -0,0 +1,129 @@ +:10000000823060B5192901F0F6B518290FC906909C +:100010005DC90CB059A000B5102907C904B52AB0B4 +:1000200005200B3AA00248B518290FC909900968A4 +:1000300020013A48980960A8206933A53838E92199 +:100040008538B002C639B138291FD04E683043C94F +:1000500040902F843A9829600901A8B138291FF0EF +:1000600031A53A29020920A8B138291FD02DA506AB +:10007000C902D00EB5102907C904900EB52AC9804F +:10008000B007B52A200B3A952A60B52AC98090F9A5 +:10009000B0F0B52A20013A952A6068B52A1869801F +:1000A000952A60A503D01BA5002940F016A50EC90E +:1000B00004B010AD310829C0F0090A2A2A094020ED +:1000C000493760A9C1204937A606B5271522F0187F +:1000D000A940204937A53A8538A53B8539A9B0857F +:1000E0003AA606E8E820F23560A204A505F062B55C +:1000F00019305AB52B8538B52A48863E20143A491E +:10010000FF18690120B539A63EA53A18753095301B +:10011000A53B7510C9F09006B42A3002A9009510CD +:10012000B52B853868863E20113A49FF18690120B1 +:10013000B539A63EA53A1875319531A53B7518C954 +:10014000E89002A9E8C919B002A9199518CACA10FD +:100150009E60A503F00EA5004A90094A9007A511DC +:100160002903851160A900A609F004C6090904A69F +:1001700008F004C6080902A607F004C607090185AD +:1001800011608D800CA9808519851B851DA90085AE +:100190001120532DA602F640A506F00BC901F0214F +:1001A000C902F0244C8D3CA968850DA9398539A96F +:1001B000738538A21EA91B853E20B035A2164CAC13 +:1001C00035A968850D4CA235A960850D20A235A9F9 +:1001D00001851B851DA9398539A9908538A218A9E3 +:1001E00017853E20B035A9D7852CA929852EA95879 +:1001F000851AA9A0851CA93C85128514A904852D02 +:10020000852F60B13A9138A900913AA020B13A9176 +:1002100038A900913AA000E638E63AA53A291FC964 +:100220001FD0E060A50DD042A506F03EC902D0283F +:10023000A505C901D034A202B5191006A204B5194A +:1002400030168519A9809519B5108510B51885182F +:10025000B52B852BB52A852AA204B5193008B52AF5 +:100260003004B5103005CACA10F060A602B540C906 +:1002700003B0F74C9431A503D020A50129E0D01597 +:10028000B510C9E09013B52A100F200B3A952AA596 +:1002900037C9309042A900850560B51930FBA50625 +:1002A000C901D00AB510C9B59004C9BF900AB510EC +:1002B000C9DD90E5C9E7B0E1A51E186904D518901D +:1002C000D8A51649FF186901853E18651ED518B0D6 +:1002D000C8B52AC98090C2E637D004A9808537E620 +:1002E00007A5374A4AC9049002A903A8B52BC90833 +:1002F000B005B96533952BA503D004A900F014A56A +:100300003E386A186901651E38F518853CA901B0A8 +:1003100002A900853EB52BC9089004A902D01DA5ED +:100320003729FCC90C9004A900F011853DA53C209B +:10033000AD39C903A900B002A902053D053EA8B91F +:100340005933952AB5192901F002E605B519298016 +:100350009519A98085364C382E1C642858285830A9 +:10036000501070107005060607B5101869084A4A43 +:100370004A491F8538A9048539A900853AB5181856 +:10038000690F090749FF0A263A0A263A186538858F +:1003900038A53A6539853960A902853A8538A904B6 +:1003A000853B8539A9BD8D62078D6707A21AA0001C +:1003B000A506C901D002A005843CA53A186920858C +:1003C0003A9002E63BA900A8913AA43C913ACAD0DF +:1003D000E9A516F079A51E49FF4A4A4AAACACAA544 +:1003E0003818692085389002E639CAD0F2A51E294E +:1003F0000749FF853B1869B0A0009138A43C9138AB +:10040000A53818692085389002E639A51618653B8D +:10041000F03CC909901A38E908853BA9A89138A091 +:10042000009138A5381869208538A53B9002E63937 +:100430001869A0AAA538C960900BA539C907D005CD +:100440008A18691AAA8AA0009138A43C913860A938 +:1004500080851985478548A9008540854185168591 +:10046000038505850285048501A50ED014A50BF032 +:1004700004C60BD00BC6061004A90285064C8231B7 +:1004800060A90E8516A5170A0A851720C93620749B +:100490002DA5002910D0088D300C8D400CF010A532 +:1004A0000EC902900A8D310CC90490038D410C2CA9 +:1004B00080083022A50EC90490D138E904850EA920 +:1004C000028503A902850BA9008520852185258544 +:1004D0002685404C823170B3A50EC90290ADC60E80 +:1004E000C60EA9018503A5172908F0D7A904851709 +:1004F000D0D1A503C902B00160A900850DA60CA545 +:10050000468646850CA61BA547851B8647A61DA5C6 +:1005100048851D864820E631A000843BA949853ADC +:10052000A9278538A9048539A207A900853CB13AD5 +:10053000853DB138C9BED00338B00118663CE638F5 +:10054000CA10EFA53C913AA207C638263DB00AA9C9 +:10055000009138A0209138D00CE60DA9BE9138A9A1 +:10056000BFA0209138A000CA10DFE63AA53818696C +:100570000885389002E639291FC91FD0ABA5381865 +:10058000692885389002E639A539C907909AA538B7 +:10059000C9609094A504C901D007C502D0034C825C +:1005A0003160A9398539A9738538A21AA913853E06 +:1005B000A904853B8A853A48A96020493768AACAB8 +:1005C0003004E43EB0EA60A0B0C502D00EAAA50394 +:1005D000F008A5002910D002A0008A843AAAD00A07 +:1005E000A9608538A9048539D008A9068539A9A04C +:1005F0008538A900A0209138A0009138B525F016C3 +:1006000029F0F0084A4A4A4A053A9138B525290F97 +:10061000053AA0209138B52029F04A4A4A4A053ABD +:10062000A0409138B520290F053AA060913860A507 +:1006300003F022A90E8516A9C120493720C936200A +:10064000742D2C2E08300EA50029108D110CF0EC05 +:100650008D100CD0E7A90085378D110CA9C4204955 +:1006600037A900A8913AA020913AA040913AA06001 +:10067000913AA500098029E1850020C936A50FD04F +:1006800004A500D0F5A504C901D004A900850CA2D9 +:1006900000860786088609E60520E239C920B002EF +:1006A000A920C9E09002A9E0951820E2392938C9AB +:1006B00020F0F71869A0952AA9809510A90295192C +:1006C000A904952BA980853660AD000CC9D8B0F976 +:1006D000AD000CC9D890F9E600D002E6018D800C7F +:1006E000A516186915853EA51FC53EB004A63E9007 +:1006F0001CC9E89004A2E7D014AA38E51EA820ADD2 +:1007000039C902900AD006CA981002E8E8861E206D +:10071000E930209833A503F006A504290F09B08D10 +:10072000A005A90020C735A901A603F004C503F060 +:100730000320C73520E23920C62E20A3308D510C6E +:10074000ADC00830034CB13C60A200A000863C86DE +:100750003D182A263C2A263D4AAA2940D026BDD14A +:1007600037853ABDD237853B8A0A0A8538AD3008CD +:1007700029C04A4A4A4A4A0538AABDA9378538BD20 +:10078000AA378539B138F020A63CF004A900F0065C +:10079000A63DF0020980A200813AA53A1869208599 +:1007A0003A9002E63BC810DC60DB37E837F93709DE +:1007B000381338243839384D386138723887389BC7 +:1007C00038AD38BE38D338E738FA380939183929FE +:1007D00039A104A104A104A1048404204849474884 +:1007E0002053434F52452000424553544520505515 +:1007F0004E4B545A41484C20004D45494C4C4555B0 +:00000001FF diff --git a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033455.e1 b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033455.e1 deleted file mode 100644 index d0db7431..00000000 Binary files a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033455.e1 and /dev/null differ diff --git a/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033455_e1.hex b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033455_e1.hex new file mode 100644 index 00000000..09d17ca8 --- /dev/null +++ b/Arcade_MiST/Atari BW Raster Hardware/SuperBreakout_MiST/rtl/roms/033455_e1.hex @@ -0,0 +1,129 @@ +:10000000522053434F5245200020205245434F5227 +:100010004420003120434F494E203220504C41595A +:100020004552530031204D55454E5A4520322053FC +:100030005049454C4552202000203120504945432D +:10004000452032204A4F5545555253200031204615 +:10005000494348412032204A554741444F52455375 +:10006000003120434F494E20203120504C4159450A +:10007000520031204D55454E5A45202031205350D5 +:1000800049454C45522000203120504945434520E8 +:100090002031204A4F5545555220003120464943D2 +:1000A00048412031204A554741444F5200322043B5 +:1000B0004F494E53203120504C4159455200322077 +:1000C0004D55454E5A454E203120535049454C45DB +:1000D0005220002032205049454345532031204AC8 +:1000E0004F55455552200032204649434841532040 +:1000F00031204A554741444F520020202020424F92 +:100100004E555320464F52200020465245494553F4 +:1001100020535049454C20005041525449452047F6 +:100120005241545549544520005041525449444F7E +:100130002047524154495320003D202020202020B8 +:1001400020202020202020202020202020202020AF +:10015000202020203D003E7F7F7F7F7F7F7F7F7F2D +:100160007F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F9F +:100170007F3F003D3E3F3E3F3E3F3E3F3E3F3E3F96 +:100180003E3F3E3F3E3F3E3F3E3F3E3F3E3F3D00C7 +:100190003D3E3F3E3F3E3F202020203E3F3E3F3EF3 +:1001A0003F202020203E3F3E3F3E3F3D001005497E +:1001B000FF18690160853CA900853D853A853BA50E +:1001C0003C1004A9FF853D4638B003D00E6018A549 +:1001D0003A653C853AA53B653D853B063C263D4C52 +:1001E000C739061326151002E613A5132902F006D7 +:1001F000A51349018513A5150513D002E613A51310 +:100200006038E940200B3A1869406049FF186901DD +:100210006038E9404A4AAABD1B3A60000D192531F1 +:100220003C47515B636A71767A7E7F7F7F7E7A7608 +:10023000716A635B51473C3125190D00F3E7DBCF51 +:10024000C4B9AFA59D968F8A868281818182868A74 +:100250008F969DA5AFB9C4CFDBE7F3000000000087 +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:10040000488D000E58AD000C2920F00268408A4843 +:10041000D8BABD0501C92C9045C944B041AD4008CA +:10042000A2012A26432A2642B542D00CB544F01830 +:10043000D644D014E60FD01029FCC9F8D00AB54430 +:10044000F002E60FA9209544CA10DDADC00829408E +:10045000D008854285438544854568AA68404C8D0F +:100460003C48D8AD000C49FF38E948B006A90085E2 +:100470001FF0121006A9FF851FD00A851FAD0010BE +:1004800049FF2A261F8D500C8D600C6840D8A27F32 +:100490009AA9008D500C8D600C8D700CAA9500E807 +:1004A000D0FBA9FF851B851DADC0081004584C0367 +:1004B0002C78A2008E500C8E600C8A1869049D0066 +:1004C000041869019D00051869019D00061869015D +:1004D0009D00078D800CE8D0E18A1869045D000456 +:1004E000D0338A1869055D0005D02A8A1869065D2F +:1004F0000006D0218A1869075D0007D0188D800C8E +:10050000E8D0D68A9D00049D00059D00069D000749 +:10051000E8D0F1F032386AF023A2089002A20186F6 +:1005200011A200A000E8D0FD8D800CC8D0F7861184 +:10053000E8D0FD8D800CC8D0F718F0DA8D800C2C37 +:10054000C00810F84C8D3CA90085118D310C8D41EF +:100550000C8D100CA9E4853AA904853BA92C853F94 +:10056000A200A9048538A900853EA8A955513EC816 +:10057000D0FB8D800CE63FC638D0F2DDA43EF03CC7 +:100580005DA43E853C4A4A4A4A20AA3EC63A913A70 +:10059000A53C20AA3EA020913AA000E63AA9928D5F +:1005A0006404A98F8D8404A98D8DA4048A09B09157 +:1005B0003AA53A186960853A9002E63BE8E005D032 +:1005C000A1A53BC904D006A53AC9E4F010A98291BF +:1005D0003AA020A981913AA040A984913AA9008526 +:1005E0003CADC0088538AD2E088539AD8008853A08 +:1005F000AD28082AAD2F086A29C0853BAD40088583 +:100600003DAD000CC9FAB0F9AD000CC9FA90F9E69D +:10061000008D800C8D510CA51F20AA3E8DC005A514 +:100620001F4A4A4A4A20AA3E8DA005A611A53CD0E1 +:1006300011A500291FD0128A0A290FD002A901AAE8 +:10064000D007A5002901D051AAADC00845382940DE +:10065000F002A281AD2E0845392980F002A282ADB8 +:100660008008453A29C0F002A284AD28082AAD2F9F +:10067000086A29C0C53B853BF00D0A2A2AAAA910A1 +:100680004ACA10FC0980AAAD4008453D29C0F002C5 +:10069000A28886118A1002853C2CC00830034C01C8 +:1006A0003E4C8D3C92D8D234AA16290F09B0C9BA53 +:1006B000900338E9396000000000000000000000ED +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000613C8D3C003C57 +:00000001FF diff --git a/Arcade_MiST/Phoenix Hardware/Capitol.jpg b/Arcade_MiST/Phoenix Hardware/Capitol.jpg index 3943cc0b..fe3ea8d9 100644 Binary files a/Arcade_MiST/Phoenix Hardware/Capitol.jpg and b/Arcade_MiST/Phoenix Hardware/Capitol.jpg differ