c62d2810 |
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 | |