mapper fixes for ncpu, debug is broken atm
[fceu.git] / mappers / 182.c
1 #include "mapinc.h"
2
3 DECLFW(Mapper182_write)
4 {
5   switch(A&0xf003)
6   {
7    case 0xe003:IRQCount=V;IRQa=1;break;
8    case 0x8001:MIRROR_SET(V&1);break;
9    case 0xA000:mapbyte1[0]=V;break;
10    case 0xC000:
11                switch(mapbyte1[0]&7)
12                {
13                 case 0:VROM_BANK2(0x0000,V>>1);break;
14                 case 1:VROM_BANK1(0x1400,V);break;
15                 case 2:VROM_BANK2(0x0800,V>>1);break;
16                 case 3:VROM_BANK1(0x1c00,V);break;
17                 case 4:ROM_BANK8(0x8000,V);
18                        X6502_Rebase();break;
19                 case 5:ROM_BANK8(0xA000,V);
20                        X6502_Rebase();break;
21                 case 6:VROM_BANK1(0x1000,V);break;
22                 case 7:VROM_BANK1(0x1800,V);break;
23                }
24                break;
25
26
27   }
28 }
29
30 void blop(void)
31 {
32  if(IRQa)
33   {
34    if(IRQCount)
35    {
36     IRQCount--;
37     if(!IRQCount)
38     {
39      IRQa=0;
40      TriggerIRQ();
41     }
42    }
43   }
44 }
45 void Mapper182_init(void)
46 {
47  SetWriteHandler(0x8000,0xFFFF,Mapper182_write);
48  GameHBIRQHook=blop;
49 }
50