Talk:INES Mapper 018
From NESdev Wiki
Jump to navigationJump to search
- My notes bring "Jaleco SS8806" for this mapper. --Zepper 04:41, 27 December 2010 (UTC)
- Counter counts down actually. There is hardware tested verilog code for it:
always @ (negedge m2)
begin
if (mapper18_irq_control[0])
begin
reg carry;
{carry, mapper18_irq_value[3:0]} = {1'b0, mapper18_irq_value[3:0]} - 1'b1;
if (!mapper18_irq_control[3])
{carry, mapper18_irq_value[7:4]} = {1'b0, mapper18_irq_value[7:4]} - carry;
if (!mapper18_irq_control[3] && !mapper18_irq_control[2])
{carry, mapper18_irq_value[11:8]} = {1'b0, mapper18_irq_value[11:8]} - carry;
if (!mapper18_irq_control[3] && !mapper18_irq_control[2] && !mapper18_irq_control[1])
{carry, mapper18_irq_value[15:12]} = {1'b0, mapper18_irq_value[15:12]} - carry;
mapper18_irq_out = mapper18_irq_out | carry;
end
end
Also fceux source code:
static void M18IRQHook(int a) {
if (IRQa && IRQCount) {
IRQCount -= a;
if (IRQCount <= 0) {
X6502_IRQBegin(FCEU_IQEXT);
IRQCount = 0;
IRQa = 0;
}
}
}