1
0
mirror of https://github.com/Gehstock/Mist_FPGA.git synced 2026-01-17 00:22:41 +00:00

Correct Video

This commit is contained in:
Gehstock 2019-11-18 21:23:37 +01:00
parent 6e7248ea5e
commit 15e719d2e0
22 changed files with 41 additions and 50 deletions

View File

@ -53,7 +53,7 @@ localparam CONF_STR = {
"O5,Blend,Off,On;",
"O6,Service,Off,On;",
"T0,Reset;",
"V,v1.0.",`BUILD_DATE
"V,v1.1.",`BUILD_DATE
};
assign LED = ~ioctl_downl;
@ -79,7 +79,7 @@ wire ypbpr;
wire [15:0] audio_l, audio_r;
wire hs, vs;
wire blankn;
wire [3:0] g, r, b;
wire [2:0] g, r, b;
wire [14:0] rom_addr;
wire [15:0] rom_do;
wire rom_rd;
@ -203,7 +203,7 @@ satans_hollow satans_hollow(
.snd_rom_rd ( snd_rd )
);
mist_video #(.COLOR_DEPTH(4), .SD_HCNT_WIDTH(10)) mist_video(
mist_video #(.COLOR_DEPTH(3), .SD_HCNT_WIDTH(10)) mist_video(
.clk_sys ( clk_sys ),
.SPI_SCK ( SPI_SCK ),
.SPI_SS3 ( SPI_SS3 ),

View File

@ -240,12 +240,10 @@ architecture struct of satans_hollow is
signal bg_code : std_logic_vector(7 downto 0);
signal bg_code_r : std_logic_vector(7 downto 0);
signal bg_attr : std_logic_vector(7 downto 0);
--signal bg_attr_r : std_logic_vector(7 downto 0);
signal bg_code_line : std_logic_vector(12 downto 0);
signal bg_graphx1_do : std_logic_vector( 7 downto 0);
signal bg_graphx2_do : std_logic_vector( 7 downto 0);
--signal bg_vid : std_logic_vector( 3 downto 0);
signal bg_palette_addr : std_logic_vector( 5 downto 0);
signal sp_ram_cache_addr : std_logic_vector(8 downto 0);
@ -380,14 +378,14 @@ end process;
input_0 <= not service & "11" & not fire1 & not start2 & not start1 & not coin2 & not coin1;
input_1 <= "1111" & not down1 & not up1 & not right1 & not left1;
input_2 <= "111" & not fire2 & not down2 & not up2 & not right2 & not left2;
input_3 <= coin_meters & cocktail & "111111";
input_3 <= coin_meters & cocktail & "111111";--"111111" & cocktail & coin_meters;
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"C" else -- 0000-BFFF
cpu_di <= cpu_rom_do when cpu_mreq_n = '0' and cpu_addr(15 downto 12) < X"8" else -- 0000-7FFF
wram_do when cpu_mreq_n = '0' and (cpu_addr and X"E000") = x"C000" else -- C000-C7FF + mirroring 1800
sp_ram_cache_do when cpu_mreq_n = '0' and (cpu_addr and x"E800") = x"E000" else -- sprite ram E000-E1FF + mirroring 1600
bg_ram_do_r when cpu_mreq_n = '0' and (cpu_addr and x"E800") = x"E800" else -- video ram E800-EFFF + mirroring 1000
@ -399,6 +397,7 @@ cpu_di <= cpu_rom_do when cpu_mreq_n = '0' and cpu_addr(15 downto 12) < X"C"
ctc_counter_0_do when cpu_ioreq_n = '0' and cpu_addr(7 downto 0) = X"F0" else
X"FF";
------------------------------------------------------------------------
-- Misc registers : ctc write enable / interrupt acknowledge
------------------------------------------------------------------------

View File

@ -80,7 +80,7 @@ wire ypbpr;
wire [15:0] audio_l, audio_r;
wire hs, vs;
wire blankn;
wire [3:0] g, r, b;
wire [2:0] g, r, b;
wire [15:0] rom_addr;
wire [15:0] rom_do;
wire rom_rd;
@ -203,7 +203,7 @@ satans_hollow satans_hollow(
.snd_rom_rd ( snd_rd )
);
mist_video #(.COLOR_DEPTH(4), .SD_HCNT_WIDTH(10)) mist_video(
mist_video #(.COLOR_DEPTH(3), .SD_HCNT_WIDTH(10)) mist_video(
.clk_sys ( clk_sys ),
.SPI_SCK ( SPI_SCK ),
.SPI_SS3 ( SPI_SS3 ),

View File

@ -81,7 +81,7 @@ wire ypbpr;
wire [15:0] audio_l, audio_r;
wire hs, vs;
wire blankn;
wire [3:0] g, r, b;
wire [2:0] g, r, b;
wire [15:0] rom_addr;
wire [15:0] rom_do;
wire rom_rd;
@ -210,7 +210,7 @@ satans_hollow satans_hollow(
.snd_rom_rd ( snd_rd )
);
mist_video #(.COLOR_DEPTH(4), .SD_HCNT_WIDTH(10)) mist_video(
mist_video #(.COLOR_DEPTH(3), .SD_HCNT_WIDTH(10)) mist_video(
.clk_sys ( clk_sys ),
.SPI_SCK ( SPI_SCK ),
.SPI_SS3 ( SPI_SS3 ),

View File

@ -176,8 +176,6 @@ port(
cocktail : in std_logic;
cont : in std_logic;
service : in std_logic;
dbg_cpu_addr : out std_logic_vector(15 downto 0);
cpu_rom_addr : out std_logic_vector(15 downto 0);
cpu_rom_do : in std_logic_vector(7 downto 0);
cpu_rom_rd : out std_logic;

View File

@ -80,7 +80,7 @@ wire ypbpr;
wire [15:0] audio_l, audio_r;
wire hs, vs;
wire blankn;
wire [3:0] g, r, b;
wire [2:0] g, r, b;
wire [14:0] rom_addr;
wire [15:0] rom_do;
wire rom_rd;
@ -203,7 +203,7 @@ satans_hollow satans_hollow(
.snd_rom_rd ( snd_rd )
);
mist_video #(.COLOR_DEPTH(4), .SD_HCNT_WIDTH(10)) mist_video(
mist_video #(.COLOR_DEPTH(3), .SD_HCNT_WIDTH(10)) mist_video(
.clk_sys ( clk_sys ),
.SPI_SCK ( SPI_SCK ),
.SPI_SS3 ( SPI_SS3 ),

View File

@ -161,8 +161,6 @@ port(
bomb2 : in std_logic;
service : in std_logic;
dbg_cpu_addr : out std_logic_vector(15 downto 0);
cpu_rom_addr : out std_logic_vector(15 downto 0);
cpu_rom_do : in std_logic_vector(7 downto 0);
cpu_rom_rd : out std_logic;

View File

@ -55,8 +55,6 @@ set_global_assignment -name VHDL_FILE rtl/rom/wacko_sp_bits_4.vhd
set_global_assignment -name VHDL_FILE rtl/rom/wacko_sp_bits_3.vhd
set_global_assignment -name VHDL_FILE rtl/rom/wacko_sp_bits_2.vhd
set_global_assignment -name VHDL_FILE rtl/rom/wacko_sp_bits_1.vhd
set_global_assignment -name VHDL_FILE rtl/rom/wacko_sound_cpu.vhd
set_global_assignment -name VHDL_FILE rtl/rom/wacko_cpu.vhd
set_global_assignment -name VHDL_FILE rtl/rom/wacko_bg_bits_2.vhd
set_global_assignment -name VHDL_FILE rtl/rom/wacko_bg_bits_1.vhd
set_global_assignment -name VHDL_FILE rtl/rom/midssio_82s123.vhd
@ -69,7 +67,6 @@ set_global_assignment -name VHDL_FILE rtl/T80/T80.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/mist/mist.qip
set_global_assignment -name QIP_FILE ../../../../common/mist/mist.qip
# Pin & Location Assignments
# ==========================

View File

@ -0,0 +1,2 @@
{ "" "" "" "*" { } { } 0 14026 "" 0 0 "Quartus II" 0 -1 0 ""}
{ "" "" "" "*" { } { } 0 332060 "" 0 0 "Quartus II" 0 -1 0 ""}

View File

@ -53,7 +53,7 @@ localparam CONF_STR = {
"O5,Blend,Off,On;",
"O6,Service,Off,On;",
"T0,Reset;",
"V,v1.0.",`BUILD_DATE
"V,v1.1.",`BUILD_DATE
};
assign LED = ~ioctl_downl;
@ -72,14 +72,14 @@ pll_mist pll(
wire [31:0] status;
wire [1:0] buttons;
wire [1:0] switches;
wire [7:0] joystick_0;
wire [7:0] joystick_1;
wire [15:0] joystick_analog_0;
wire [15:0] joystick_analog_1;
wire scandoublerD;
wire ypbpr;
wire [15:0] audio_l, audio_r;
wire hs, vs;
wire blankn;
wire [3:0] g, r, b;
wire [2:0] g, r, b;
wire [14:0] rom_addr;
wire [15:0] rom_do;
wire rom_rd;
@ -91,8 +91,7 @@ wire [7:0] ioctl_index;
wire ioctl_wr;
wire [24:0] ioctl_addr;
wire [7:0] ioctl_dout;
wire [15:0] joystick_analog_0;
wire [15:0] joystick_analog_1;
data_io data_io(
.clk_sys ( clk_sys ),
@ -187,10 +186,10 @@ satans_hollow satans_hollow(
.start2(btn_two_players),
.start1(btn_one_player),
//Controls
.trackX1(),
.trackY1(),
.trackX2(),
.trackY2(),
.trackX1(joystick_analog_0[7:0] | joystick_analog_1[7:0]),
.trackY1(joystick_analog_0[15:8] | joystick_analog_1[15:8]),
.trackX2(joystick_analog_1[7:0] | joystick_analog_1[7:0]),
.trackY2(joystick_analog_1[15:8] | joystick_analog_1[15:8]),
//ZAP
.up2(btn_w),
.down2(btn_s),
@ -201,7 +200,7 @@ satans_hollow satans_hollow(
.left1(btn_a),
.right1(btn_d),
.cocktail(0),
.coin_meters(),
.coin_meters(1),
.service(status[6]),
.cpu_rom_addr ( rom_addr ),
.cpu_rom_do ( rom_addr[0] ? rom_do[15:8] : rom_do[7:0] ),
@ -211,7 +210,7 @@ satans_hollow satans_hollow(
.snd_rom_rd ( snd_rd )
);
mist_video #(.COLOR_DEPTH(4), .SD_HCNT_WIDTH(10)) mist_video(
mist_video #(.COLOR_DEPTH(3 ), .SD_HCNT_WIDTH(10)) mist_video(
.clk_sys ( clk_sys ),
.SPI_SCK ( SPI_SCK ),
.SPI_SS3 ( SPI_SS3 ),
@ -249,8 +248,6 @@ user_io(
.key_strobe (key_strobe ),
.key_pressed (key_pressed ),
.key_code (key_code ),
.joystick_0 (joystick_0 ),
.joystick_1 (joystick_1 ),
.joystick_analog_0(joystick_analog_0),
.joystick_analog_1(joystick_analog_1),
.status (status )
@ -274,25 +271,25 @@ dac_r(
.dac_o(AUDIO_R)
);
wire [7:0] m_up1 = btn_up | joystick_analog_0[3];
wire [7:0] m_down1 = btn_down | joystick_analog_0[2];
wire [7:0] m_left1 = btn_left | joystick_analog_0[1];
wire [7:0] m_right1 = btn_right | joystick_analog_0[0];
//wire [7:0] m_up1 = btn_up | joystick_analog_0[3];
//wire [7:0] m_down1 = btn_down | joystick_analog_0[2];
//wire [7:0] m_left1 = btn_left | joystick_analog_0[1];
//wire [7:0] m_right1 = btn_right | joystick_analog_0[0];
wire [7:0] m_up2 = btn_up | joystick_analog_1[3];
wire [7:0] m_down2 = btn_down | joystick_analog_1[2];
wire [7:0] m_left2 = btn_left | joystick_analog_1[1];
wire [7:0] m_right2 = btn_right | joystick_analog_1[0];
//wire [7:0] m_up2 = btn_up | joystick_analog_1[3];
//wire [7:0] m_down2 = btn_down | joystick_analog_1[2];
//wire [7:0] m_left2 = btn_left | joystick_analog_1[1];
//wire [7:0] m_right2 = btn_right | joystick_analog_1[0];
//wire m_fire = btn_fire1 | joystick_0[4] | joystick_1[4];
//wire m_bomb = btn_fire2 | joystick_0[5] | joystick_1[5];
reg btn_one_player = 0;
reg btn_two_players = 0;
reg btn_left = 0;
reg btn_right = 0;
reg btn_down = 0;
reg btn_up = 0;
//reg btn_left = 0;
//reg btn_right = 0;
//reg btn_down = 0;
//reg btn_up = 0;
reg btn_w = 0;
reg btn_a = 0;
reg btn_s = 0;
@ -308,10 +305,10 @@ wire key_strobe;
always @(posedge clk_sys) begin
if(key_strobe) begin
case(key_code)
'h75: btn_up <= key_pressed; // up
'h72: btn_down <= key_pressed; // down
'h6B: btn_left <= key_pressed; // left
'h74: btn_right <= key_pressed; // right
// 'h75: btn_up <= key_pressed; // up
// 'h72: btn_down <= key_pressed; // down
// 'h6B: btn_left <= key_pressed; // left
// 'h74: btn_right <= key_pressed; // right
'h1D: btn_w <= key_pressed; // shot up
'h1C: btn_a <= key_pressed; // shot left