X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=mappers%2F88.c;h=96ef0edfe867475765a58a47f23ecae409664e5b;hp=84c9ded8bd2f2fa4b742e68320ecc4e24da4f812;hb=d97315ac0bca825d2d50a44453bc5652946e2c67;hpb=890e37ba2b8ea1c7593dc05926d7431e3bd00bfb diff --git a/mappers/88.c b/mappers/88.c index 84c9ded..96ef0ed 100644 --- a/mappers/88.c +++ b/mappers/88.c @@ -1,7 +1,7 @@ /* 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 @@ -20,39 +20,43 @@ #include "mapinc.h" +static int mn; static DECLFW(Mapper88_write) { //if(A>=0x8002 || A<0x8000) //if(A==0xc000) // printf("$%04x:$%02x\n",A,V); - switch(A) //&0xc001) + switch(A&0x8001) //&0xc001) { - //case 0xc000: - //MIRROR_SET((V&0x40)>>6); - //onemir((V&0x40)>>6); - //break; - case 0x8000:mapbyte1[0]=V;break; + case 0x8000:mapbyte1[0]=V; + if(mn) + onemir((V>>6)&1); + break; case 0x8001: - switch(mapbyte1[0]&7) - { - case 0:VROM_BANK2(0,V>>1);break; - case 1:VROM_BANK2(0x800,V>>1);break; - case 2:VROM_BANK1(0x1000,V|0x40);break; - case 3:VROM_BANK1(0x1400,V|0x40);break; - case 4:VROM_BANK1(0x1800,V|0x40);break; - case 5:VROM_BANK1(0x1c00,V|0x40);break; - case 6:ROM_BANK8(0x8000,V); - X6502_Rebase();break; - case 7:ROM_BANK8(0xA000,V); - X6502_Rebase();break; - } - break; + switch(mapbyte1[0]&7) + { + case 0:VROM_BANK2(0,V>>1);break; + case 1:VROM_BANK2(0x800,V>>1);break; + case 2:VROM_BANK1(0x1000,V|0x40);break; + case 3:VROM_BANK1(0x1400,V|0x40);break; + case 4:VROM_BANK1(0x1800,V|0x40);break; + case 5:VROM_BANK1(0x1c00,V|0x40);break; + case 6:ROM_BANK8(0x8000,V);break; + case 7:ROM_BANK8(0xA000,V);break; + } + break; } } void Mapper88_init(void) { + mn=0; SetWriteHandler(0x8000,0xffff,Mapper88_write); } +void Mapper154_init(void) +{ + mn=1; + SetWriteHandler(0x8000,0xffff,Mapper88_write); +}