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; |
c0bf6f9f |
17 | case 4:ROM_BANK8(0x8000,V); |
18 | X6502_Rebase();break; |
19 | case 5:ROM_BANK8(0xA000,V); |
20 | X6502_Rebase();break; |
c62d2810 |
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 | |