OSDN Git Service

sprite hit solved using walk around...
authorastoria-d <astoria-d@mail.goo.ne.jp>
Sat, 8 Oct 2016 07:29:32 +0000 (16:29 +0900)
committerastoria-d <astoria-d@mail.goo.ne.jp>
Sat, 8 Oct 2016 07:29:32 +0000 (16:29 +0900)
de0_cv_nes/de0_cv_nes.vhd
de0_cv_nes/mos6502.vhd
de0_cv_nes/ppu/render.vhd
doc/debug-work.xlsx

index d84e4fb..8ef4177 100644 (file)
@@ -328,7 +328,7 @@ begin
     --cpu ram inst.\r
     cpu_ram_inst : ram generic map\r
         (ram_2k, 8\r
-        , "mem-before-02bd000000000000.bin"\r
+        --, "mem-before-02bb000000000000.bin"\r
         ) port map (\r
             pi_base_clk,\r
             wr_ram_ce_n,\r
index a2e7641..1f29aba 100644 (file)
@@ -246,14 +246,15 @@ signal reg_exc_cnt          : std_logic_vector (63 downto 0);
 --constant INIT_PCL       : std_logic_vector (7 downto 0) := "00000000";\r
 --constant INIT_PCH       : std_logic_vector (7 downto 0) := "00000000";\r
 \r
-constant INIT_ACC       : std_logic_vector (7 downto 0) := conv_std_logic_vector(16#95#, 8);\r
+constant INIT_ACC       : std_logic_vector (7 downto 0) := conv_std_logic_vector(16#91#, 8);\r
 constant INIT_X         : std_logic_vector (7 downto 0) := conv_std_logic_vector(16#0d#, 8);\r
-constant INIT_Y         : std_logic_vector (7 downto 0) := conv_std_logic_vector(16#1d#, 8);\r
+constant INIT_Y         : std_logic_vector (7 downto 0) := conv_std_logic_vector(16#d0#, 8);\r
 constant INIT_SP        : std_logic_vector (7 downto 0) := conv_std_logic_vector(16#fc#, 8);\r
 constant INIT_STATUS    : std_logic_vector (7 downto 0) := conv_std_logic_vector(16#a5#, 8);\r
 constant INIT_PCL       : std_logic_vector (7 downto 0) := conv_std_logic_vector(16#82#, 8);\r
 constant INIT_PCH       : std_logic_vector (7 downto 0) := conv_std_logic_vector(16#80#, 8);\r
-constant INIT_EXC_CNT   : std_logic_vector (63 downto 0) := conv_std_logic_vector(16#02bd#, 16) & conv_std_logic_vector(0, 48);\r
+\r
+constant INIT_EXC_CNT   : std_logic_vector (63 downto 0) := conv_std_logic_vector(16#02bb#, 16) & conv_std_logic_vector(0, 48);\r
 \r
 constant DEBUG_SW       : integer := 0;\r
 \r
index d5b27d3..67d3a94 100644 (file)
@@ -750,7 +750,9 @@ end;
                         reg_plt_addr <=\r
                             "1" & reg_spr_attr(spr_i)(1 downto 0) & reg_spr_ptn_h(spr_i)(0) & reg_spr_ptn_l(spr_i)(0);\r
                         --check sprite hit.\r
-                        if (spr_i = 0 and (reg_sft_ptn_h(0) or reg_sft_ptn_l(0)) = '1' and\r
+                        --TODO: bg sprite intersection is disabled.\r
+                        --don't know why this required...\r
+                        if (spr_i = 0 and --(reg_sft_ptn_h(0) or reg_sft_ptn_l(0)) = '1' and\r
                             reg_spr0_eval = '1') then\r
                             reg_spr0_hit     <= '1';\r
                         end if;\r
index f267f7c..6544302 100644 (file)
Binary files a/doc/debug-work.xlsx and b/doc/debug-work.xlsx differ