Skip to content

Commit 5ee4bd0

Browse files
authored
Mapper 42 IRQ fixed (#422)
1 parent 5ae7233 commit 5ee4bd0

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

rtl/mappers/misc.sv

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -872,22 +872,17 @@ end else if (ce) begin
872872
endcase
873873
endcase
874874
if (irq_enable)
875-
if (mapper == 40)
876-
irq_counter <= irq_counter + 13'd1;
877-
else // Mapper 42 (broken)
878-
irq_counter <= irq_counter + 15'd1;
875+
case(mapper)
876+
40: irq_counter <= irq_counter + 13'd1;
877+
42: irq_counter <= irq_counter + 15'd1;
878+
endcase
879879
else begin
880-
irq <= 1'b0; // ACK
881880
irq_counter <= 0;
882881
end
883-
if (mapper == 40)
884-
if (irq_counter == 13'h1000)
885-
irq <= 1'b1;
886-
else if (irq_counter == 13'h0000)
887-
irq <= 1'b0; // IRQ will self-acknowledge after 4096 M2 cycles
888-
else // Mapper 42 (broken)
889-
if (irq_counter == 15'h6000)
890-
irq <= 1'b1;
882+
case(mapper) //IRQ will self-acknowledge when counter overflows
883+
40: irq <= irq_counter[12];
884+
42: irq <= &irq_counter[14:13];
885+
endcase
891886
end
892887

893888
always @* begin
@@ -3310,4 +3305,4 @@ assign vram_ce = chr_ain[13];
33103305
assign prg_allow = prg_ain[15] && !prg_write;
33113306
assign prg_aout = {3'b000, outer_prg_bank, prgsel, prg_ain[12:0]};
33123307

3313-
endmodule
3308+
endmodule

0 commit comments

Comments
 (0)