From fe21bd922a236b67abb8d9262b3ad660907fb705 Mon Sep 17 00:00:00 2001 From: Gyorgy Szombathelyi Date: Sun, 22 Dec 2019 16:58:30 +0100 Subject: [PATCH] Crater Raider: works --- .../CraterRaider_MiST/CraterRaider.qsf | 36 +- .../CraterRaider_MiST/Snapshot/CRATER.ROM | Bin 188416 -> 225280 bytes .../rtl/CraterRaider_MiST.sv | 53 +- .../CraterRaider_MiST/rtl/crater_raider.vhd | 171 +-- .../CraterRaider_MiST/rtl/ctc_controler.vhd | 2 +- .../CraterRaider_MiST/rtl/ctc_counter.vhd | 5 +- .../CraterRaider_MiST/rtl/dpram.vhd | 81 ++ .../CraterRaider_MiST/rtl/rom/crater (1).zip | Bin 68549 -> 0 bytes .../rtl/rom/crater_bg_bits_1.vhd | 1046 ----------------- .../rtl/rom/crater_bg_bits_2.vhd | 1046 ----------------- .../rtl/rom/crater_ch_bits.vhd | 278 ----- .../rtl/rom/make_crater_raider_proms.bat | 25 - .../rtl/rom/make_vhdl_prom.exe | Bin 100636 -> 0 bytes .../CraterRaider_MiST/rtl/spinner.vhd | 46 + 14 files changed, 287 insertions(+), 2502 deletions(-) create mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/dpram.vhd delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/rom/crater (1).zip delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/rom/crater_bg_bits_1.vhd delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/rom/crater_bg_bits_2.vhd delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/rom/crater_ch_bits.vhd delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/rom/make_crater_raider_proms.bat delete mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/rom/make_vhdl_prom.exe create mode 100644 Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/spinner.vhd diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/CraterRaider.qsf b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/CraterRaider.qsf index cc0b5791..97a2b114 100644 --- a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/CraterRaider.qsf +++ b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/CraterRaider.qsf @@ -41,7 +41,7 @@ # ======================== set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files set_global_assignment -name NUM_PARALLEL_PROCESSORS ALL -set_global_assignment -name LAST_QUARTUS_VERSION 13.1 +set_global_assignment -name LAST_QUARTUS_VERSION "13.1 SP4.26" set_global_assignment -name PRE_FLOW_SCRIPT_FILE "quartus_sh:rtl/build_id.tcl" # Pin & Location Assignments @@ -180,7 +180,7 @@ set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" - # end ENTITY(Kickman_MiST) # ------------------------ set_global_assignment -name ENABLE_SIGNALTAP OFF -set_global_assignment -name USE_SIGNALTAP_FILE output_files/reset.stp +set_global_assignment -name USE_SIGNALTAP_FILE output_files/crt.stp set_global_assignment -name CYCLONEII_OPTIMIZATION_TECHNIQUE SPEED set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS ON set_global_assignment -name OPTIMIZE_HOLD_TIMING "ALL PATHS" @@ -189,22 +189,6 @@ set_global_assignment -name FITTER_EFFORT "STANDARD FIT" set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS ON set_global_assignment -name SMART_RECOMPILE ON set_global_assignment -name ALLOW_SYNCH_CTRL_USAGE ON -set_global_assignment -name SYSTEMVERILOG_FILE rtl/CraterRaider_MiST.sv -set_global_assignment -name VHDL_FILE rtl/crater_raider.vhd -set_global_assignment -name VHDL_FILE rtl/ctc_counter.vhd -set_global_assignment -name VHDL_FILE rtl/ctc_controler.vhd -set_global_assignment -name VHDL_FILE rtl/spy_hunter_sound_board.vhd -set_global_assignment -name VHDL_FILE rtl/YM2149_linmix_sep.vhd -set_global_assignment -name VHDL_FILE rtl/gen_ram.vhd -set_global_assignment -name VHDL_FILE rtl/cmos_ram.vhd -set_global_assignment -name VHDL_FILE rtl/rom/crater_ch_bits.vhd -set_global_assignment -name VHDL_FILE rtl/rom/crater_bg_bits_2.vhd -set_global_assignment -name VHDL_FILE rtl/rom/crater_bg_bits_1.vhd -set_global_assignment -name VHDL_FILE rtl/rom/midssio_82s123.vhd -set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv -set_global_assignment -name VHDL_FILE rtl/pll_mist.vhd -set_global_assignment -name QIP_FILE ../../../common/CPU/T80/T80.qip -set_global_assignment -name QIP_FILE ../../../common/mist/mist.qip 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 @@ -239,4 +223,20 @@ set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_VS set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to AUDIO_L set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to AUDIO_R set_instance_assignment -name CURRENT_STRENGTH_NEW 4MA -to SPI_DO +set_global_assignment -name SYSTEMVERILOG_FILE rtl/CraterRaider_MiST.sv +set_global_assignment -name VHDL_FILE rtl/spinner.vhd +set_global_assignment -name VHDL_FILE rtl/crater_raider.vhd +set_global_assignment -name VHDL_FILE rtl/ctc_counter.vhd +set_global_assignment -name VHDL_FILE rtl/ctc_controler.vhd +set_global_assignment -name VHDL_FILE rtl/spy_hunter_sound_board.vhd +set_global_assignment -name VHDL_FILE rtl/YM2149_linmix_sep.vhd +set_global_assignment -name VHDL_FILE rtl/gen_ram.vhd +set_global_assignment -name VHDL_FILE rtl/cmos_ram.vhd +set_global_assignment -name VHDL_FILE rtl/rom/midssio_82s123.vhd +set_global_assignment -name VHDL_FILE rtl/dpram.vhd +set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv +set_global_assignment -name VHDL_FILE rtl/pll_mist.vhd +set_global_assignment -name QIP_FILE ../../../common/CPU/T80/T80.qip +set_global_assignment -name QIP_FILE ../../../common/mist/mist.qip +set_global_assignment -name SIGNALTAP_FILE output_files/crt.stp set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/Snapshot/CRATER.ROM b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/Snapshot/CRATER.ROM index f4012b49600d92163ce4236304440f2afc1b236a..e2a08e6a764d410c45b2c6f0c61e102842ed8822 100644 GIT binary patch delta 32214 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 IFQzO156DL*6aWAK delta 12 TcmZp8z}s+uyP<_~3DW}rBVz?b diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/CraterRaider_MiST.sv b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/CraterRaider_MiST.sv index a5e09eb8..32de92dd 100644 --- a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/CraterRaider_MiST.sv +++ b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/CraterRaider_MiST.sv @@ -48,12 +48,11 @@ module CraterRaider_MiST( `include "rtl/build_id.v" localparam CONF_STR = { - "CRATER;ROM;", + "CRATER;;", "O2,Rotate Controls,Off,On;", "O34,Scanlines,Off,25%,50%,75%;", "O5,Blend,Off,On;", "O6,Service,Off,On;", - "O7,Swap Joystick,Off,On;", "T0,Reset;", "V,v1.1.",`BUILD_DATE }; @@ -75,8 +74,8 @@ pll_mist pll( wire [31:0] status; wire [1:0] buttons; wire [1:0] switches; -wire [7:0] joy_0; -wire [7:0] joy_1; +wire [7:0] joystick_0; +wire [7:0] joystick_1; wire scandoublerD; wire ypbpr; wire [15:0] audio_l, audio_r; @@ -107,7 +106,8 @@ data_io data_io( .ioctl_dout ( ioctl_dout ) ); -wire [24:0] sp_ioctl_addr = ioctl_addr - 17'h10000; +wire [24:0] sp_ioctl_addr = ioctl_addr - 17'he000; // sound cpu prg offset +wire [24:0] dl_addr = ioctl_addr - 18'h2e000; // background + char grfx offset reg port1_req, port2_req; sdram sdram( @@ -132,7 +132,7 @@ sdram sdram( // port2 for sprite graphics .port2_req ( port2_req ), .port2_ack ( ), - .port2_a ( {sp_ioctl_addr[14:0], sp_ioctl_addr[16]} ), // merge sprite roms to 32-bit wide words + .port2_a ( {sp_ioctl_addr[18:17], sp_ioctl_addr[14:0], sp_ioctl_addr[16]} ), // merge sprite roms to 32-bit wide words .port2_ds ( {sp_ioctl_addr[15], ~sp_ioctl_addr[15]} ), .port2_we ( ioctl_downl ), .port2_d ( {ioctl_dout, ioctl_dout} ), @@ -172,6 +172,19 @@ always @(posedge clk_sys) begin end +// spinner +wire [7:0] spin_angle; + +spinner spinner ( + .clock_40(clk_sys), + .reset(reset), + .btn_acc(), + .btn_left(m_left), + .btn_right(m_right), + .ctc_zc_to_2(vs), + .spin_angle(spin_angle) +); + Crater_Raider Crater_Raider( .clock_40(clk_sys), .reset(reset), @@ -192,6 +205,7 @@ Crater_Raider Crater_Raider( .start2(btn_two_players), .up(m_up), .down(m_down), + .dial(spin_angle), .fire1(m_fire1), .fire2(m_fire2), .fire3(m_fire3),//not working @@ -201,7 +215,10 @@ Crater_Raider Crater_Raider( .snd_rom_addr ( snd_addr ), .snd_rom_do ( snd_addr[0] ? snd_do[15:8] : snd_do[7:0] ), .sp_addr ( sp_addr ), - .sp_graphx32_do ( sp_do ) + .sp_graphx32_do ( sp_do ), + .dl_addr ( dl_addr ), + .dl_wr ( ioctl_wr ), + .dl_data ( ioctl_dout ) ); wire vs_out; @@ -249,8 +266,8 @@ user_io( .key_strobe (key_strobe ), .key_pressed (key_pressed ), .key_code (key_code ), - .joystick_0 (joy_0 ), - .joystick_1 (joy_1 ), + .joystick_0 (joystick_0 ), + .joystick_1 (joystick_1 ), .status (status ) ); @@ -272,17 +289,13 @@ dac_r( .dac_o(AUDIO_R) ); -wire [7:0] joystick_0 = status[7] ? joy_1 : joy_0; -wire [7:0] joystick_1 = status[7] ? joy_0 : joy_1; - -// Rotated Normal -wire m_up = ~status[2] ? btn_left | joystick_0[1] | joystick_1[1] : btn_up | joystick_0[3] | joystick_1[3]; -wire m_down = ~status[2] ? btn_right | joystick_0[0] | joystick_1[0] : btn_down | joystick_0[2] | joystick_1[2]; -wire m_left = ~status[2] ? btn_down | joystick_0[2] | joystick_1[2] : btn_left | joystick_0[1] | joystick_1[1]; -wire m_right = ~status[2] ? btn_up | joystick_0[3] | joystick_1[3] : btn_right | joystick_0[0] | joystick_1[0]; -wire m_fire1 = btn_fire1 | joystick_0[4] | joystick_1[4]; -wire m_fire2 = btn_fire2 | joystick_0[5] | joystick_1[5]; -wire m_fire3 = btn_fire3 | joystick_0[6] | joystick_1[6]; +wire m_up = btn_up | joystick_0[3] | joystick_1[3]; +wire m_down = btn_down | joystick_0[2] | joystick_1[2]; +wire m_left = btn_left | joystick_0[1] | joystick_1[1]; +wire m_right = btn_right | joystick_0[0] | joystick_1[0]; +wire m_fire1 = btn_fire1 | joystick_0[4] | joystick_1[4]; +wire m_fire2 = btn_fire2 | joystick_0[5] | joystick_1[5]; +wire m_fire3 = btn_fire3 | joystick_0[6] | joystick_1[6]; reg btn_one_player = 0; reg btn_two_players = 0; diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/crater_raider.vhd b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/crater_raider.vhd index e88dd412..39e7c24a 100644 --- a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/crater_raider.vhd +++ b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/crater_raider.vhd @@ -157,19 +157,25 @@ port( start1 : in std_logic; start2 : in std_logic; - up : in std_logic; + up : in std_logic; down : in std_logic; + dial : in std_logic_vector(7 downto 0); fire1 : in std_logic; fire2 : in std_logic; fire3 : in std_logic; service : in std_logic; - cpu_rom_addr : out std_logic_vector(14 downto 0); + cpu_rom_addr : out std_logic_vector(15 downto 0); cpu_rom_do : in std_logic_vector(7 downto 0); snd_rom_addr : out std_logic_vector(13 downto 0); snd_rom_do : in std_logic_vector(7 downto 0); sp_addr : out std_logic_vector(14 downto 0); sp_graphx32_do : in std_logic_vector(31 downto 0); + + dl_addr : in std_logic_vector(15 downto 0); + dl_data : in std_logic_vector( 7 downto 0); + dl_wr : in std_logic; + dbg_cpu_addr : out std_logic_vector(15 downto 0) ); end crater_raider; @@ -319,7 +325,7 @@ architecture struct of crater_raider is signal sp_buffer_sel : std_logic; signal sp_vid : std_logic_vector(3 downto 0); --- signal sp_col : std_logic_vector(3 downto 0); + signal sp_col : std_logic_vector(3 downto 0); -- signal sp_palette_addr : std_logic_vector(5 downto 0); signal palette_addr : std_logic_vector(5 downto 0); @@ -336,14 +342,16 @@ architecture struct of crater_raider is signal input_4 : std_logic_vector(7 downto 0); signal output_4 : std_logic_vector(7 downto 0); + signal dl_bg_graphics_1_we : std_logic; + signal dl_bg_graphics_2_we : std_logic; + signal dl_cg_graphics_we : std_logic; + begin clock_vid <= clock_40; clock_vidn <= not clock_40; reset_n <= not reset; - - -- make enables clock from clock_vid process (clock_vid, reset) begin @@ -400,7 +408,7 @@ begin if hcnt = 512+90+9+11 then video_hs <= '1'; end if; -- sync pulse 96/25*20 = 77 -- back porch 48/25*20 = 38 video_blankn <= '0'; - if hcnt >= 2+16+16 and hcnt < 514+16-1 and + if hcnt >= 2+16+16 and hcnt < 514-1 and vcnt >= 2 and vcnt < 481 then video_blankn <= '1';end if; else -- interlaced mode @@ -421,7 +429,7 @@ begin end if; video_blankn <= '0'; - if hcnt >= 2+16+16 and hcnt < 514+16-1 and + if hcnt >= 2+16+16 and hcnt < 514-1 and vcnt >= 1 and vcnt < 241 then video_blankn <= '1';end if; if hs_cnt = 0 then hsync0 <= '0'; @@ -483,7 +491,7 @@ end process; -- "11" for test & tilt & unused input_0 <= not service & "11" & not fire1 & not start2 & not start1 & not coin2 & not coin1; -input_1 <= "11111111";--dail +input_1 <= dial; input_2 <= '1' & not fire2 & '1' & not fire3 & not down & not up & "11"; input_3 <= x"FF"; input_4 <= x"FF"; @@ -498,7 +506,7 @@ input_4 <= x"FF"; ------------------------------------------ -- cpu data input with address decoding -- ------------------------------------------ -cpu_di <= cpu_rom_do when cpu_mreq_n = '0' and cpu_addr(15 downto 12) < X"E" else -- 0000-DFFF 56Ko +cpu_di <= cpu_rom_do when cpu_mreq_n = '0' and cpu_addr(15 downto 12) < X"A" else -- 0000-9FFF 48Ko bg_ram_do_r when cpu_mreq_n = '0' and (cpu_addr and x"F800") = x"E000" else -- video ram E000-E7FF 2Ko ch_ram_do_r when cpu_mreq_n = '0' and (cpu_addr and x"FC00") = x"E800" else -- char ram E800-EBFF 1Ko + mirroring 0400 wram_do when cpu_mreq_n = '0' and (cpu_addr and X"F800") = x"F000" else -- work ram F000-F7FF 2Ko @@ -554,8 +562,8 @@ end process; ---------- sprite machine ---------- ---- 91433 Video Gen III Board ---- ------------------------------------ -hflip <= not(hcnt); -- apply mirror horizontal flip ---hflip <= hcnt; -- do not apply mirror horizontal flip +--hflip <= not(hcnt); -- apply mirror horizontal flip +hflip <= hcnt; -- do not apply mirror horizontal flip vflip <= vcnt(8 downto 0) & not top_frame when tv15Khz_mode = '1' else vcnt; -- do not apply mirror flip @@ -599,7 +607,7 @@ begin sp_byte_cnt <= (others => '0'); when "000001" => sp_attr <= sp_ram_do; -when "000010" => + when "000010" => sp_code <= sp_ram_do; sp_addr <= sp_ram_do(7 downto 0) & (sp_line xor sp_vflip) & (sp_byte_cnt xor sp_hflip); -- graphics rom addr when "000011" => @@ -608,7 +616,7 @@ when "000010" => sp_graphx32_do_r <= sp_graphx32_do; -- latch incoming sprite data sp_addr <= sp_code(7 downto 0) & (sp_line xor sp_vflip) & (sp_byte_cnt+1 xor sp_hflip); -- advance graphics rom addr sp_on_line <= '1'; - when "010010"|"011010"|"100010" => -- 18,26,34 + when "010010"|"011010"|"100010" => -- 18,26,34 sp_graphx32_do_r <= sp_graphx32_do; -- latch incoming sprite data sp_addr <= sp_code(7 downto 0) & (sp_line xor sp_vflip) & (sp_byte_cnt+2 xor sp_hflip); -- advance graphics rom addr sp_byte_cnt <= sp_byte_cnt + 1; @@ -660,32 +668,33 @@ sp_graphx_b_ok <= '1' when sp_graphx_b /= x"0" else '0'; sp_buffer_ram1a_di <= sp_attr(3 downto 0) & sp_graphx_a when sp_buffer_sel = '1' else x"00"; sp_buffer_ram1b_di <= sp_attr(3 downto 0) & sp_graphx_b when sp_buffer_sel = '1' else x"00"; -sp_buffer_ram1_addr <= sp_hcnt(8 downto 1) when sp_buffer_sel = '1' else hflip(8 downto 1) - x"04"; +sp_buffer_ram1_addr <= not sp_hcnt(8 downto 1) when sp_buffer_sel = '1' else hflip(8 downto 1) - x"C"; sp_buffer_ram1a_we <= not sp_hcnt(0) and sp_on_line and sp_graphx_a_ok when sp_buffer_sel = '1' else hcnt(0); sp_buffer_ram1b_we <= not sp_hcnt(0) and sp_on_line and sp_graphx_b_ok when sp_buffer_sel = '1' else hcnt(0); sp_buffer_ram2a_di <= sp_attr(3 downto 0) & sp_graphx_a when sp_buffer_sel = '0' else x"00"; sp_buffer_ram2b_di <= sp_attr(3 downto 0) & sp_graphx_b when sp_buffer_sel = '0' else x"00"; -sp_buffer_ram2_addr <= sp_hcnt(8 downto 1) when sp_buffer_sel = '0' else hflip(8 downto 1) - x"04"; +sp_buffer_ram2_addr <= not sp_hcnt(8 downto 1) when sp_buffer_sel = '0' else hflip(8 downto 1) - x"C"; sp_buffer_ram2a_we <= not sp_hcnt(0) and sp_on_line and sp_graphx_a_ok when sp_buffer_sel = '0' else hcnt(0); sp_buffer_ram2b_we <= not sp_hcnt(0) and sp_on_line and sp_graphx_b_ok when sp_buffer_sel = '0' else hcnt(0); -sp_vid <= sp_buffer_ram1_do_r(11 downto 8) when (sp_buffer_sel = '0') and (hflip(0) = '1') else - sp_buffer_ram1_do_r( 3 downto 0) when (sp_buffer_sel = '0') and (hflip(0) = '0') else - sp_buffer_ram2_do_r(11 downto 8) when (sp_buffer_sel = '1') and (hflip(0) = '1') else +sp_vid <= sp_buffer_ram1_do_r(11 downto 8) when (sp_buffer_sel = '0') and (hflip(0) = '0') else + sp_buffer_ram1_do_r( 3 downto 0) when (sp_buffer_sel = '0') and (hflip(0) = '1') else + sp_buffer_ram2_do_r(11 downto 8) when (sp_buffer_sel = '1') and (hflip(0) = '0') else sp_buffer_ram2_do_r( 3 downto 0);-- when (sp_buffer_sel = '1') and (hflip(0) = '0'); ---sp_col <= sp_buffer_ram1_do_r(15 downto 12) when (sp_buffer_sel = '0') and (hflip(0) = '1') else --- sp_buffer_ram1_do_r( 7 downto 4) when (sp_buffer_sel = '0') and (hflip(0) = '0') else --- sp_buffer_ram2_do_r(15 downto 12) when (sp_buffer_sel = '1') and (hflip(0) = '1') else --- sp_buffer_ram2_do_r( 7 downto 4);-- when (sp_buffer_sel = '1') and (hflip(0) = '0'); +sp_col <= sp_buffer_ram1_do_r(15 downto 12) when (sp_buffer_sel = '0') and (hflip(0) = '0') else + sp_buffer_ram1_do_r( 7 downto 4) when (sp_buffer_sel = '0') and (hflip(0) = '1') else + sp_buffer_ram2_do_r(15 downto 12) when (sp_buffer_sel = '1') and (hflip(0) = '0') else + sp_buffer_ram2_do_r( 7 downto 4);-- when (sp_buffer_sel = '1') and (hflip(0) = '0'); + ---------------------------- ------- char machine ------- ---- 91442 MCR III Board ---- +--- 91721 MCR III Board ---- ---------------------------- -ch_ram_addr <= cpu_addr(4 downto 0) & cpu_addr(9 downto 5) when hcnt(0) = '0' else vflip(8 downto 4) & hflip(8 downto 4); +ch_ram_addr <= cpu_addr(4 downto 0) & cpu_addr(9 downto 5) when hcnt(0) = '0' else vflip(8 downto 4) & not hflip(8 downto 4); -ch_code_line <= ch_code & vflip(3 downto 1) & hflip(3); +ch_code_line <= ch_code & vflip(3 downto 1) & not hflip(3); process (clock_vid) begin @@ -699,10 +708,11 @@ begin end if; case hflip(2 downto 1) is - when "00" => ch_color <= ch_graphx_do(7 downto 6); - when "01" => ch_color <= ch_graphx_do(5 downto 4); - when "10" => ch_color <= ch_graphx_do(3 downto 2); - when others => ch_color <= ch_graphx_do(1 downto 0); + when "11" => ch_color <= ch_graphx_do(7 downto 6); + when "10" => ch_color <= ch_graphx_do(5 downto 4); + when "01" => ch_color <= ch_graphx_do(3 downto 2); + when "00" => ch_color <= ch_graphx_do(1 downto 0); + when others => null; end case; end if; @@ -713,12 +723,12 @@ end process; ---------------------------- ---- background machine ---- ---- 91442 MCR III Board ---- +--- 91721 MCR III Board ---- ---------------------------- bg_ram_addr <= cpu_addr(10) & cpu_addr(3 downto 0) & cpu_addr(9 downto 4) when hcnt(0) = '0' else - vshift(9 downto 5) & hshift(11 downto 6); + vshift(9 downto 5) & not hshift(11 downto 6); -bg_code_line <= bg_code(7) & bg_code(5 downto 0) & (vshift(4 downto 1) xor (bg_code(6) & bg_code(6) & bg_code(6) & bg_code(6))) & hshift(5 downto 3); +bg_code_line <= bg_code(7) & bg_code(5 downto 0) & (vshift(4 downto 1) xor (bg_code(6) & bg_code(6) & bg_code(6) & bg_code(6))) & not hshift(5 downto 3); process (clock_vid) begin @@ -733,17 +743,17 @@ begin if pix_ena = '1' then - if hcnt = "1001001001" then -- tune background h pos w.r.t char (use odd value to keep hshift(0) = hcnt(0)) - hshift <= hoffset & '0'; + if hcnt = 603 then + hshift <= not (hoffset+288) & '0'; -- tune background h pos w.r.t char else hshift <= hshift + 1 ; end if; if (vflip(9 downto 1) = "100000111" and tv15Khz_mode = '1') or (vflip(9 downto 0) = "1000001100" and tv15Khz_mode = '0') then -- tune background v pos w.r.t char - vshift <= voffset & '0'; + vshift <= voffset & '0'; else - if hcnt = "1001001001" then + if hcnt = 603 then if tv15Khz_mode = '0' then vshift <= vshift + 1; end if; if tv15Khz_mode = '1' then vshift <= vshift + 2; end if; end if; @@ -753,10 +763,11 @@ begin if hshift(5 downto 0) = "111111" then bg_code <= bg_ram_do; end if; case hshift(2 downto 1) is - when "00" => bg_color <= bg_graphx2_do(7 downto 6) & bg_graphx1_do(7 downto 6); - when "01" => bg_color <= bg_graphx2_do(5 downto 4) & bg_graphx1_do(5 downto 4); - when "10" => bg_color <= bg_graphx2_do(3 downto 2) & bg_graphx1_do(3 downto 2); - when others => bg_color <= bg_graphx2_do(1 downto 0) & bg_graphx1_do(1 downto 0); + when "11" => bg_color <= bg_graphx2_do(7 downto 6) & bg_graphx1_do(7 downto 6); + when "10" => bg_color <= bg_graphx2_do(5 downto 4) & bg_graphx1_do(5 downto 4); + when "01" => bg_color <= bg_graphx2_do(3 downto 2) & bg_graphx1_do(3 downto 2); + when "00" => bg_color <= bg_graphx2_do(1 downto 0) & bg_graphx1_do(1 downto 0); + when others => null; end case; end if; @@ -769,8 +780,8 @@ end process; -- mux char/sprite video -- --------------------------- palette_addr <= cpu_addr(6 downto 1) when palette_we = '1' else - "01" & bg_color when sp_vid(2 downto 0) = "000" else - "00" & sp_vid; + "11" & bg_color when sp_vid(2 downto 0) = "000" else + not sp_col(1 downto 0) & sp_vid; process (clock_vid) begin @@ -921,7 +932,7 @@ port map( -- data => cpu_rom_do --); -cpu_rom_addr <= cpu_addr(14 downto 0); +cpu_rom_addr <= cpu_addr(15 downto 0); -- working RAM F000-F7FF 2Ko wram : entity work.cmos_ram @@ -955,7 +966,7 @@ port map( d => cpu_do, q => bg_ram_do ); - + -- sprite RAM (no cpu access) sprite_ram : entity work.gen_ram generic map( dWidth => 8, aWidth => 9) @@ -1023,27 +1034,66 @@ port map( ); -- char graphics ROM 10G -ch_graphics : entity work.crater_ch_bits +ch_graphics : entity work.dpram +generic map( + aWidth => 12, + dWidth => 8 +) port map( - clk => clock_vidn, - addr => ch_code_line, - data => ch_graphx_do + clk_a => clock_vidn, + addr_a => ch_code_line, + q_a => ch_graphx_do, + clk_b => clock_vid, + addr_b => dl_addr(11 downto 0), + we_b => dl_cg_graphics_we, + d_b => dl_data ); +dl_cg_graphics_we <= '1' when dl_wr = '1' and dl_addr(15 downto 12) = "1000" else '0'; -- background graphics ROM 3A/4A -bg_graphics_1 : entity work.crater_bg_bits_1 +bg_graphics_1 : entity work.dpram +generic map( + aWidth => 14, + dWidth => 8 +) port map( - clk => clock_vidn, - addr => bg_code_line, - data => bg_graphx1_do + clk_a => clock_vidn, + addr_a => bg_code_line, + q_a => bg_graphx1_do, + clk_b => clock_vid, + addr_b => dl_addr(13 downto 0), + we_b => dl_bg_graphics_1_we, + d_b => dl_data ); +dl_bg_graphics_1_we <= '1' when dl_wr = '1' and dl_addr(15 downto 14) = "00" else '0'; -- background graphics ROM 5A/6A -bg_graphics_2 : entity work.crater_bg_bits_2 +bg_graphics_2 : entity work.dpram +generic map( + aWidth => 14, + dWidth => 8 +) +port map( + clk_a => clock_vidn, + addr_a => bg_code_line, + q_a => bg_graphx2_do, + clk_b => clock_vid, + addr_b => dl_addr(13 downto 0), + we_b => dl_bg_graphics_2_we, + d_b => dl_data +); +dl_bg_graphics_2_we <= '1' when dl_wr = '1' and dl_addr(15 downto 14) = "01" else '0'; + + +-- background & sprite palette +palette : entity work.gen_ram +generic map( dWidth => 9, aWidth => 6) port map( clk => clock_vidn, - addr => bg_code_line, - data => bg_graphx2_do + we => palette_we, + addr => palette_addr, + d => cpu_addr(0) & cpu_do, + q => palette_do ); -- Spy hunter sound board @@ -1075,15 +1125,4 @@ port map( dbg_cpu_addr => open --dbg_cpu_addr ); --- background & sprite palette -palette : entity work.gen_ram -generic map( dWidth => 9, aWidth => 6) -port map( - clk => clock_vidn, - we => palette_we, - addr => palette_addr, - d => cpu_addr(0) & cpu_do, - q => palette_do -); - end struct; \ No newline at end of file diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/ctc_controler.vhd b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/ctc_controler.vhd index 1ff9961d..dce16149 100644 --- a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/ctc_controler.vhd +++ b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/ctc_controler.vhd @@ -60,7 +60,7 @@ begin int_reg_1 <= '0'; int_reg_2 <= '0'; int_reg_3 <= '0'; - load_data_r <= load_data; + load_data_r <= '0'; int_vector <= (others => '0'); else if rising_edge(clock) then diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/ctc_counter.vhd b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/ctc_counter.vhd index 25f9a797..c6eb69e6 100644 --- a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/ctc_counter.vhd +++ b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/ctc_counter.vhd @@ -70,7 +70,7 @@ begin restart_on_next_trigger <= '0'; count_in <= (others=> '0'); zc_to_in <= '0'; - clk_trg_r <= clk_trg; + clk_trg_r <= '0'; else if rising_edge(clock) then if clock_ena = '1' then @@ -132,7 +132,8 @@ begin if ((control_word(6) = '1' and trigger = '1' ) or (control_word(6) = '0' and count_ena = '1') ) and time_constant_loaded = '1' then if prescale_in = 0 then - prescale_in <= '0'&prescale_max(7 downto 1); -- test divide by 2 ! + prescale_in <= prescale_max; +-- prescale_in <= '0'&prescale_max(7 downto 1); -- test divide by 2 ! if count_in = 0 then zc_to_in <= '1'; count_in <= count_max; diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/dpram.vhd b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/dpram.vhd new file mode 100644 index 00000000..284194c5 --- /dev/null +++ b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/dpram.vhd @@ -0,0 +1,81 @@ +-- ----------------------------------------------------------------------- +-- +-- Syntiac's generic VHDL support files. +-- +-- ----------------------------------------------------------------------- +-- Copyright 2005-2008 by Peter Wendrich (pwsoft@syntiac.com) +-- http://www.syntiac.com/fpga64.html +-- +-- Modified April 2016 by Dar (darfpga@aol.fr) +-- http://darfpga.blogspot.fr +-- Remove address register when writing +-- +-- ----------------------------------------------------------------------- +-- +-- dpram.vhd +-- +-- ----------------------------------------------------------------------- +-- +-- generic ram. +-- +-- ----------------------------------------------------------------------- + +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.numeric_std.ALL; + +-- ----------------------------------------------------------------------- + +entity dpram is + generic ( + dWidth : integer := 8; + aWidth : integer := 10 + ); + port ( + clk_a : in std_logic; + we_a : in std_logic := '0'; + addr_a : in std_logic_vector((aWidth-1) downto 0); + d_a : in std_logic_vector((dWidth-1) downto 0) := (others => '0'); + q_a : out std_logic_vector((dWidth-1) downto 0); + + clk_b : in std_logic; + we_b : in std_logic := '0'; + addr_b : in std_logic_vector((aWidth-1) downto 0); + d_b : in std_logic_vector((dWidth-1) downto 0) := (others => '0'); + q_b : out std_logic_vector((dWidth-1) downto 0) + ); +end entity; + +-- ----------------------------------------------------------------------- + +architecture rtl of dpram is + subtype addressRange is integer range 0 to ((2**aWidth)-1); + type ramDef is array(addressRange) of std_logic_vector((dWidth-1) downto 0); + signal ram: ramDef; + signal addr_a_reg: std_logic_vector((aWidth-1) downto 0); + signal addr_b_reg: std_logic_vector((aWidth-1) downto 0); +begin + +-- ----------------------------------------------------------------------- + process(clk_a) + begin + if rising_edge(clk_a) then + if we_a = '1' then + ram(to_integer(unsigned(addr_a))) <= d_a; + end if; + q_a <= ram(to_integer(unsigned(addr_a))); + end if; + end process; + + process(clk_b) + begin + if rising_edge(clk_b) then + if we_b = '1' then + ram(to_integer(unsigned(addr_b))) <= d_b; + end if; + q_b <= ram(to_integer(unsigned(addr_b))); + end if; + end process; + +end architecture; + diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/rom/crater (1).zip b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/rom/crater (1).zip deleted file mode 100644 index c0672bac2638569f0490967611021a65ebe6a485..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68549 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 z 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 diff --git a/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/spinner.vhd b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/spinner.vhd new file mode 100644 index 00000000..9581366a --- /dev/null +++ b/Arcade_MiST/Midway MCR Scroll/CraterRaider_MiST/rtl/spinner.vhd @@ -0,0 +1,46 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.std_logic_unsigned.all; +use ieee.numeric_std.all; + +entity spinner is +port( + clock_40 : in std_logic; + reset : in std_logic; + btn_left : in std_logic; + btn_right : in std_logic; + btn_acc : in std_logic; -- speed up button + ctc_zc_to_2 : in std_logic; + spin_angle : out std_logic_vector(7 downto 0) +); +end spinner; + +architecture rtl of spinner is + +signal ctc_zc_to_2_r : std_logic; +signal spin_count : std_logic_vector(9 downto 0); + +begin + +spin_angle <= spin_count(9 downto 2); + +process (clock_40, reset) +begin + if reset = '1' then + spin_count <= (others => '0'); + elsif rising_edge(clock_40) then + ctc_zc_to_2_r <= ctc_zc_to_2; + + if ctc_zc_to_2_r ='0' and ctc_zc_to_2 = '1' then + if btn_acc = '0' then -- space -- speed up + if btn_left = '1' then spin_count <= spin_count + 10; end if; -- left + if btn_right = '1' then spin_count <= spin_count - 10; end if; -- right + else + if btn_left = '1' then spin_count <= spin_count + 55; end if; + if btn_right = '1' then spin_count <= spin_count - 55; end if; + end if; + end if; + end if; +end process; + +end rtl; \ No newline at end of file