/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
- * Copyright (C) 2002 Ben Parnell
+ * Copyright (C) 2002 Xodnizel
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
if(IRQa)
{
IRQCount-=a;
- if(IRQCount<=0-4)
+ if(IRQCount<-4)
{
- TriggerIRQ();
+ X6502_IRQBegin(FCEU_IQEXT);
IRQa=0;
IRQCount=0xFFFF;
}
}
}
-DECLFW(Mapper65_write)
+static DECLFW(Mapper65_write)
{
-switch(A)
-{
-case 0x8000:ROM_BANK8(0x8000,V);
- X6502_Rebase();break;
-case 0x9000:MIRROR_SET2((V>>6)&1);break;
-case 0x9003:IRQa=V&0x80;break;
-case 0x9004:IRQCount=IRQLatch;break;
-case 0x9005: IRQLatch&=0x00FF;
- IRQLatch|=V<<8;
- break;
-case 0x9006: IRQLatch&=0xFF00;IRQLatch|=V;
- break;
-case 0xB000:VROM_BANK1(0x0000,V);break;
-case 0xB001:VROM_BANK1(0x0400,V);break;
-case 0xB002:VROM_BANK1(0x0800,V);break;
-case 0xB003:VROM_BANK1(0x0C00,V);break;
-case 0xB004:VROM_BANK1(0x1000,V);break;
-case 0xB005:VROM_BANK1(0x1400,V);break;
-case 0xB006:VROM_BANK1(0x1800,V);break;
-case 0xB007:VROM_BANK1(0x1C00,V);break;
-case 0xa000:ROM_BANK8(0xA000,V);
- X6502_Rebase();break;
-case 0xC000:ROM_BANK8(0xC000,V);
- X6502_Rebase();break;
+ //if(A>=0x9000 && A<=0x9006)
+ // printf("$%04x:$%02x, %d\n",A,V,scanline);
+ switch(A)
+ {
+ //default: printf("$%04x:$%02x\n",A,V);
+ // break;
+ case 0x8000:ROM_BANK8(0x8000,V);break;
+ // case 0x9000:printf("$%04x:$%02x\n",A,V);MIRROR_SET2((V>>6)&1);break;
+ case 0x9001:MIRROR_SET(V>>7);break;
+ case 0x9003:IRQa=V&0x80;X6502_IRQEnd(FCEU_IQEXT);break;
+ case 0x9004:IRQCount=IRQLatch;break;
+ case 0x9005: IRQLatch&=0x00FF;
+ IRQLatch|=V<<8;
+ break;
+ case 0x9006: IRQLatch&=0xFF00;IRQLatch|=V;
+ break;
+ case 0xB000:VROM_BANK1(0x0000,V);break;
+ case 0xB001:VROM_BANK1(0x0400,V);break;
+ case 0xB002:VROM_BANK1(0x0800,V);break;
+ case 0xB003:VROM_BANK1(0x0C00,V);break;
+ case 0xB004:VROM_BANK1(0x1000,V);break;
+ case 0xB005:VROM_BANK1(0x1400,V);break;
+ case 0xB006:VROM_BANK1(0x1800,V);break;
+ case 0xB007:VROM_BANK1(0x1C00,V);break;
+ case 0xa000:ROM_BANK8(0xA000,V);break;
+ case 0xC000:ROM_BANK8(0xC000,V);break;
}
+ //MIRROR_SET2(1);
}
void Mapper65_init(void)