5fe07501107515be4329c0e59f1e6c5e1f644ef6
[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);break;
18                 case 5:ROM_BANK8(0xA000,V);break;
19                 case 6:VROM_BANK1(0x1000,V);break;
20                 case 7:VROM_BANK1(0x1800,V);break;
21                }
22                break;
23
24
25   }
26 }
27
28 void blop(void)
29 {
30  if(IRQa)
31   {
32    if(IRQCount)
33    {
34     IRQCount--;
35     if(!IRQCount)
36     {
37      IRQa=0;
38      TriggerIRQ();
39     }
40    }
41   }
42 }
43 void Mapper182_init(void)
44 {
45  SetWriteHandler(0x8000,0xFFFF,Mapper182_write);
46  GameHBIRQHook=blop;
47 }
48