@@ -320,7 +320,7 @@ SNES_BWRAM_SEL <= SNES_BWRAM_ACCESS and not WINDOW;
320
320
SNES_IRAM_SEL <= (SNES_IRAM_ACCESS and SNES_SYSCLK) or (SNES_CCDMA_IRAM_ACCESS and not WINDOW);
321
321
322
322
SA1_ROM_ACCESS <= '1' when (P65_A(22 ) = '0' and P65_A(15 ) = '1' ) or (P65_A(23 downto 22 ) = "11" ) else '0' ;
323
- SA1_BWRAM_ACCESS <= '1' when P65_A(23 downto 20 ) = x"4" or (P65_A(22 ) = '0' and P65_A(15 downto 13 ) = "011" and SBW46 = '0' ) else '0' ;
323
+ SA1_BWRAM_ACCESS <= '1' when P65_A(23 downto 20 ) = x"4" or P65_A( 23 downto 20 ) = x"5" or (P65_A(22 ) = '0' and P65_A(15 downto 13 ) = "011" and SBW46 = '0' ) else '0' ;
324
324
SA1_BBF_ACCESS <= '1' when P65_A(23 downto 20 ) = x"6" or (P65_A(22 ) = '0' and P65_A(15 downto 13 ) = "011" and SBW46 = '1' ) else '0' ;
325
325
SA1_IRAM_ACCESS <= '1' when P65_A(22 ) = '0' and (P65_A(15 downto 11 ) = x"0" & "0" or P65_A(15 downto 11 ) = x"3" & "0" ) else '0' ;
326
326
SA1_MMIO_WRITE_ACCESS <= '1' when P65_A(22 ) = '0' and P65_A(15 downto 8 ) = x"22" else '0' ;
@@ -575,8 +575,8 @@ begin
575
575
end case ;
576
576
end process ;
577
577
578
- SA1_BWRAM_WE <= SBWE(7 ) or CBWE(7 ) when (P65_A (17 downto 8 ) and not BWRAM_WP_MASK) = "0000000000" and P65_A( 23 downto 20 ) = x"4" else '1' ;
579
- SNES_BWRAM_WE <= SBWE(7 ) or CBWE(7 ) when (SNES_A (17 downto 8 ) and not BWRAM_WP_MASK) = "0000000000" and SNES_A( 23 downto 20 ) = x"4" else '1' ;
578
+ SA1_BWRAM_WE <= SBWE(7 ) or CBWE(7 ) when (SA1_BWRAM_MAP_A (17 downto 8 ) and not BWRAM_WP_MASK) = "0000000000" and SA1_BWRAM_ACCESS = '1' else '1' ;
579
+ SNES_BWRAM_WE <= SBWE(7 ) or CBWE(7 ) when (SNES_BWRAM_MAP_A (17 downto 8 ) and not BWRAM_WP_MASK) = "0000000000" and SNES_BWRAM_ACCESS = '1' else '1' ;
580
580
BWRAM_A <= CC1_BWRAM_RD_ADDR when CCDMA_SRC_BWRAM_SEL = '1' else
581
581
SNES_BWRAM_MAP_A when SNES_BWRAM_SEL = '1' else
582
582
SDA(17 downto 0 ) when DMA_SRC_BWRAM_SEL = '1' and DMA_BWRAM_WAIT = '0' else
@@ -1141,6 +1141,9 @@ begin
1141
1141
if SNES_DI(4 ) = '1' then
1142
1142
SA1_NMI_FLAG <= '1' ;
1143
1143
end if ;
1144
+ if SNES_DI(5 ) = '1' then
1145
+ CIWP <= (others => '0' );
1146
+ end if ;
1144
1147
when x"01" => -- SIE
1145
1148
CDMA_IRQ_EN <= SNES_DI(5 );
1146
1149
SNES_IRQ_EN <= SNES_DI(7 );
0 commit comments