X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=mappers%2F25.c;h=e099cc97bbef4b6b6d2ca8906dc245336962db51;hp=f8c1d73a0b9c2a987f000e10c9ded57312ffddf7;hb=386f5371eb984fb9c2860c83e740890a75cd45c1;hpb=eec2623f6183dd0f9494b99065a16bf90f2a1ccf diff --git a/mappers/25.c b/mappers/25.c index f8c1d73..e099cc9 100644 --- a/mappers/25.c +++ b/mappers/25.c @@ -15,7 +15,8 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * (VRCII mapper) */ #include "mapinc.h" @@ -25,9 +26,21 @@ #define K4sel mapbyte1[0] static int acount=0; +static int weirdo=0; static DECLFW(Mapper25_write) { - A=(A&0xF003)|((A&0xC)>>2); + if(A==0xC007) + { + weirdo=8; // Ganbare Goemon Gaiden does strange things!!! at the end credits + // quick dirty hack, seems there is no other games with such PCB, so + // we never know if it will not work for something else lol + VROM_BANK1(0x0000,0xFC); + VROM_BANK1(0x0400,0xFD); + VROM_BANK1(0x0800,0xFF); + VROM_BANK1(0x0c00,0xCF); + } + + A=(A&0xF003)|((A&0xC)>>2); if((A&0xF000)==0xA000) ROM_BANK8(0xA000,V); @@ -37,7 +50,10 @@ static DECLFW(Mapper25_write) K4buf[x]&=(0xF0)>>((A&2)<<1); K4buf[x]|=(V&0xF)<<((A&2)<<1); - VROM_BANK1(x<<10,K4buf[x]); + if(weirdo) + weirdo--; + else + VROM_BANK1(x<<10,K4buf[x]); } else if((A&0xF000)==0x8000) { @@ -72,7 +88,7 @@ static DECLFW(Mapper25_write) } } -static void FP_FASTAPASS(1) KonamiIRQHook(int a) +static void KonamiIRQHook(int a) { // #define LCYCS ((227*2)) #define LCYCS 341