X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=ines.c;h=2f5fbebce2091ed02b5e5146254ccae9511db220;hp=e804c26398998dabfe069066a488b8cbed2e8451;hb=87e3eef5be4a5de92f97ee211ae4035d8d4b6494;hpb=92764e6252a3691033d6044b466bf716c96b62d5 diff --git a/ines.c b/ines.c index e804c26..2f5fbeb 100644 --- a/ines.c +++ b/ines.c @@ -80,7 +80,7 @@ static DECLFR(TrainerRead) return(trainerpoo[A&0x1FF]); } -static void iNESGI(int h) +static void iNESGI(int h, void *param) { switch(h) { @@ -119,9 +119,19 @@ static void iNESGI(int h) if(VROM) {free(VROM);VROM=0;} if(MapClose) MapClose(); if(trainerpoo) {FCEU_gfree(trainerpoo);trainerpoo=0;} + ResetExState(0,0); } break; - } + case GI_INFOSTRING: + { + int MapperNo; + MapperNo = (head.ROM_type>>4); + MapperNo|=(head.ROM_type2&0xF0); + sprintf(param, "iNES, %s, Mapper: %d%s%s", PAL?"PAL":"NTSC", + MapperNo, (head.ROM_type&2)?", BB":"", (head.ROM_type&4)?", T":""); + } + break; + } } uint32 iNESGameCRC32=0; @@ -747,19 +757,20 @@ static void NONE_init(void) void (*MapInitTab[256])(void)= { - 0,0, -// Mapper2_init,Mapper3_init, + 0,0, //Mapper2_init,Mapper3_init, 0,0, 0,0, - Mapper6_init,Mapper7_init,Mapper8_init,Mapper9_init, - Mapper10_init,Mapper11_init, - 0, -// Mapper13_init, + Mapper6_init, + 0,//Mapper7_init, + Mapper8_init,Mapper9_init, + Mapper10_init, + 0, //Mapper11_init, + 0, //Mapper13_init, 0, 0, Mapper15_init,Mapper16_init,Mapper17_init,Mapper18_init, 0,0, - Mapper21_init,Mapper22_init,Mapper23_init,Mapper24_init, + Mapper21_init,Mapper22_init,Mapper23_init,Mapper24_init, Mapper25_init,Mapper26_init,Mapper27_init, 0,0,0,0, Mapper32_init,Mapper33_init,Mapper34_init, @@ -772,38 +783,52 @@ void (*MapInitTab[256])(void)= 0, Mapper50_init,Mapper51_init, 0,0,0,0,0, - Mapper57_init,Mapper58_init,Mapper59_init,Mapper60_init, + 0,// Mapper57_init, + 0,// Mapper58_init, + Mapper59_init,Mapper60_init, Mapper61_init,Mapper62_init, 0, - Mapper64_init,Mapper65_init,Mapper66_init,Mapper67_init, - Mapper68_init,Mapper69_init,Mapper70_init,Mapper71_init, + Mapper64_init,Mapper65_init, + 0,//Mapper66_init, + Mapper67_init, + Mapper68_init,Mapper69_init, + 0,//Mapper70_init, + Mapper71_init, Mapper72_init,Mapper73_init, 0, - Mapper75_init,Mapper76_init,Mapper77_init,Mapper78_init, + Mapper75_init,Mapper76_init,Mapper77_init, + 0, //Mapper78_init, Mapper79_init,Mapper80_init, 0, Mapper82_init,Mapper83_init, 0, - Mapper85_init,Mapper86_init,Mapper87_init,Mapper88_init, + Mapper85_init,Mapper86_init, + 0, //Mapper87_init, + 0, //Mapper88_init, Mapper89_init, 0, - Mapper91_init,Mapper92_init,Mapper93_init,Mapper94_init, + Mapper91_init,Mapper92_init, + 0, //Mapper93_init, + 0, //Mapper94_init, 0, Mapper96_init,Mapper97_init, 0, Mapper99_init, 0,0,0,0,0,0,0, - Mapper107_init, + 0, //Mapper107_init, 0,0,0,0, 0,Mapper113_init, 0,0,0, - Mapper117_init, + 0, //Mapper117_init, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - Mapper140_init, + 0, //Mapper140_init, 0,0,0, - Mapper144_init, + 0, //Mapper144_init, 0,0,0,0,0,0, - Mapper151_init,Mapper152_init,Mapper153_init,Mapper154_init, + Mapper151_init, + 0, //Mapper152_init, + Mapper153_init, + 0, //Mapper154_init, 0, Mapper156_init,Mapper157_init,Mapper158_init,0, 0,0,0,0,0,0, @@ -811,12 +836,12 @@ void (*MapInitTab[256])(void)= 0,0,0,0,0,0,0,0,0,0,0,0, Mapper180_init, 0,0,0, - Mapper184_init,Mapper185_init, + Mapper184_init, + 0, //Mapper185_init, 0,0,0, - Mapper189_init, - 0, -// Mapper191_init, + 0, //Mapper189_init, 0, + 0, //Mapper191_init, 0, Mapper193_init, 0,0,0,0,0,0, @@ -825,12 +850,14 @@ void (*MapInitTab[256])(void)= 0,0, Mapper207_init, 0,0,0, - Mapper211_init,Mapper212_init,Mapper213_init,Mapper214_init, + 0, //Mapper211_init, + Mapper212_init,Mapper213_init,Mapper214_init, 0,0,0,0,0,0,0,0,0,0, Mapper225_init,Mapper226_init,Mapper227_init,Mapper228_init, Mapper229_init,Mapper230_init,Mapper231_init,Mapper232_init, 0, - Mapper234_init,Mapper235_init, + Mapper234_init, + 0, //Mapper235_init, 0,0,0,0, Mapper240_init,Mapper241_init,Mapper242_init,0, Mapper244_init, @@ -840,6 +867,8 @@ void (*MapInitTab[256])(void)= Mapper255_init }; + + static DECLFW(BWRAM) { WRAM[A-0x6000]=V; @@ -897,6 +926,10 @@ static void iNESPower(void) setprg8r(1,0x6000,0); SetReadHandler(0x6000,0x7FFF,AWRAM); +#ifdef ASM_6502 + // asm code needs pages to be set again.. + Page[12]=Page[13]=Page[14]=Page[15]=WRAM-0x6000; +#endif SetWriteHandler(0x6000,0x7FFF,BWRAM); FCEU_CheatAddRAM(8,0x6000,WRAM); @@ -958,68 +991,101 @@ typedef struct { } BMAPPING; static BMAPPING bmap[] = { + {0, NROM_Init}, {1, Mapper1_Init}, {2, UNROM_Init}, {3, CNROM_Init}, {4, Mapper4_Init}, {5, Mapper5_Init}, + {7, ANROM_Init}, + {11, Mapper11_Init}, {12, Mapper12_Init}, {13, CPROM_Init}, {19, Mapper19_Init}, + {37, Mapper37_Init}, {44, Mapper44_Init}, {45, Mapper45_Init}, {47, Mapper47_Init}, {49, Mapper49_Init}, {52, Mapper52_Init}, + {57, Mapper57_Init}, + {58, Mapper58_Init}, + {66, MHROM_Init}, + {70, Mapper70_Init}, {74, Mapper74_Init}, + {78, Mapper78_Init}, + {87, Mapper87_Init}, + {88, Mapper88_Init}, {90, Mapper90_Init}, + {93, SUNSOFT_UNROM_Init}, + {94, Mapper94_Init}, {95, Mapper95_Init}, {105, Mapper105_Init}, + {107, Mapper107_Init}, {112, Mapper112_Init}, {114, Mapper114_Init}, - {115, Mapper115_Init}, - {116, Mapper116_Init}, - {118, Mapper118_Init}, + {115, Mapper115_Init}, + {116, Mapper116_Init}, + {117, Mapper117_Init}, + {118, Mapper118_Init}, {119, Mapper119_Init}, {133, SA72008_Init}, {137, S8259D_Init}, {138, S8259B_Init}, {139, S8259C_Init}, + {140, Mapper140_Init}, {141, S8259A_Init}, {143, TCA01_Init}, + {144, Mapper144_Init}, {145, SA72007_Init}, {146, SA0161M_Init}, {147, TCU01_Init}, {148, SA0037_Init}, {149, SA0036_Init}, {150, S74LS374N_Init}, - {155, Mapper155_Init}, + {152, Mapper152_Init}, + {154, Mapper154_Init}, + {155, Mapper155_Init}, {160, Mapper90_Init}, {163, Mapper163_Init}, - {164, Mapper164_Init}, + {164, Mapper164_Init}, {165, Mapper165_Init}, + {181, Mapper181_Init}, {182, Mapper182_Init}, {183, Mapper183_Init}, + {185, Mapper185_Init}, {186, Mapper186_Init}, - {187, Mapper187_Init}, - {188, Mapper188_Init}, + {187, Mapper187_Init}, + {188, Mapper188_Init}, + {189, Mapper189_Init}, {191, Mapper191_Init}, + {192, Mapper192_Init}, + {194, Mapper194_Init}, + {198, Mapper198_Init}, + {199, Mapper199_Init}, {205, Mapper205_Init}, {206, DEIROM_Init}, - {208, Mapper208_Init}, + {208, Mapper208_Init}, {209, Mapper209_Init}, - {210, Mapper210_Init}, + {210, Mapper210_Init}, + {211, Mapper211_Init}, {215, Mapper215_Init}, {216, Mapper216_Init}, {217, Mapper217_Init}, + {218, UNLSonic_Init}, + {219, UNLSL1632_Init}, +// {220, Mapper220_Init}, + {222, Mapper222_Init}, + {235, Mapper235_Init}, {243, S74LS374NA_Init}, - {245, Mapper245_Init}, - {249, Mapper249_Init}, - {250, Mapper250_Init}, + {245, Mapper245_Init}, + {249, Mapper249_Init}, + {250, Mapper250_Init}, {254, Mapper254_Init}, { 0, 0} }; + static int NewiNES_Init(int num) { BMAPPING *tmp=bmap; @@ -1053,3 +1119,4 @@ static int NewiNES_Init(int num) } return(0); } +