예제 #1
0
static void sync()
{
	mem_setprg16(0x8,latch_reg & 7);
	mem_setprg16(0xC,latch_reg & 7);
	mem_setchr8(0,latch_reg & 7);
	ppu_setmirroring(((latch_reg >> 3) & 1) ^ 1);
}
예제 #2
0
static void sync()
{
	mem_setprg16(0x8,reg[1]);
	mem_setprg16(0xC,0xFF);
	mem_setvram8(0,0);
	ppu_setmirroring((reg[0] & 0x10) ? MIRROR_1H : MIRROR_1L);
}
예제 #3
0
파일: bf909x.c 프로젝트: Aleyr/nesemu2
static void sync()
{
	mem_setprg16(0x8,outerprg | prg);
	mem_setprg16(0xC,outerprg | (0xFF & prgmask));
	mem_setvram8(0,0);
	mem_setmirroring(mirroring);
}
예제 #4
0
파일: jf16.c 프로젝트: Aleyr/nesemu2
static void sync()
{
    mem_setprg16(0x8,latch_data & 7);
    mem_setprg16(0xC,0xFF);
    mem_setchr8(0,(latch_data >> 4) & 0xF);
    mem_setmirroring(((latch_data >> 3) & 1) ? MIRROR_1H : MIRROR_1L);
}
예제 #5
0
static void reset(int hard)
{
	latch_init(sync);
	mem_setwrite(6,latch_write);
	mem_setwrite(7,latch_write);
	mem_setprg16(0x8,0);
	mem_setprg16(0xC,0xFF);
}
예제 #6
0
파일: c_mmc4.c 프로젝트: ericmckean/nesemu
void mmc4_sync()
{
	mem_setsram8(0x6,0);
	mem_setprg16(0x8,PRGBank);
	mem_setprg16(0xC,0xF);
	mem_setchr4(0,LatchA[LatchAState]);
	mem_setchr4(4,LatchB[LatchBState]);
	ppu_setmirroring(Mirroring);
}
예제 #7
0
파일: 31in1.c 프로젝트: Aleyr/nesemu2
static void sync()
{
	if(latch_addr & 0x1E) {
		mem_setprg16(0x8,latch_addr & 0x1F);
		mem_setprg16(0xC,latch_addr & 0x1F);
	}
	else {
		mem_setprg32(8,0);
	}
	mem_setchr8(0,latch_addr & 0x1F);
	mem_setmirroring(((latch_addr >> 5) & 1) ^ 1);
}
예제 #8
0
파일: c_vrc1.c 프로젝트: ericmckean/nesemu
static void sync()
{
	mem_setprg16(0x8,prg[0]);
	mem_setprg16(0xA,prg[1]);
	mem_setprg16(0xC,prg[2]);
	mem_setprg16(0xE,0xF);
	mem_setchr4(0,chr[0]);
	mem_setchr4(4,chr[1]);
	if(mirror)
		ppu_setmirroring(MIRROR_H);
	else
		ppu_setmirroring(MIRROR_V);
}
예제 #9
0
static void sync()
{
	int i;

	mem_setprg16(0x8,prg);
	mem_setprg16(0xC,0xFF);
	for(i=0;i<4;i++)
		mem_setchr2(i * 2,chr[i]);
	switch(mirror & 3) {
		case 0: ppu_setmirroring(MIRROR_V); break;
		case 1: ppu_setmirroring(MIRROR_H); break;
		case 2: ppu_setmirroring(MIRROR_1L); break;
		case 3: ppu_setmirroring(MIRROR_1H); break;
	}
}
예제 #10
0
static void sync()
{
    switch(latch_reg & 0xC0) {
    case 0x00:
        switch(reg & 0xC0) {
        case 0x40:
            chr = reg & 0xF;
            break;
        case 0x80:
            prg = reg & 0xF;
            break;
        }
        break;
    }
    reg = latch_reg;
    mem_setprg16(0x8,0);
    mem_setprg16(0xC,prg);
    mem_setchr8(0,chr);
}
예제 #11
0
static void sync()
{
	int i;

	mem_setchr2(0,chr[0]);
	mem_setchr2(2,chr[1]);
	for(i=4;i<8;i++)
		mem_setchr1(i,chr[i - 2]);
	mem_setprg8(0x8,prg[0]);
	mem_setprg8(0xA,prg[1]);
	mem_setprg16(0xC,0xFF);
}
예제 #12
0
파일: 70in1.c 프로젝트: Aleyr/nesemu2
static void sync()
{
	switch(mode) {
		case 0x00:
		case 0x10:
			mem_setprg16(0x8,bankhi | banklo);
			mem_setprg16(0xC,bankhi | 7);
			break;
		case 0x20:
			mem_setprg32(0x8,(bankhi | banklo) >> 1);
			break;
		case 0x30:
			mem_setprg16(0x8,bankhi | banklo);
			mem_setprg16(0xC,bankhi | banklo);
			break;
	}
	if(revision == BMC_70IN1)
		mem_setchr8(0,chrbank);
	else
		mem_setvram8(0,0);
	mem_setmirroring(mirror);
}
예제 #13
0
파일: 34x3.c 프로젝트: Aleyr/nesemu2
static void sync_34x3()
{
	u8 *reg = namcot108_getregs();

	mem_setchr2(0,(reg[0] & 0x3F) >> 1);
	mem_setchr2(2,(reg[1] & 0x3F) >> 1);
	mem_setchr1(4,reg[2] | 0x40);
	mem_setchr1(5,reg[3] | 0x40);
	mem_setchr1(6,reg[4] | 0x40);
	mem_setchr1(7,reg[5] | 0x40);
	mem_setprg8(0x8,reg[6]);
	mem_setprg8(0xA,reg[7]);
	mem_setprg16(0xC,0xFF);
}
예제 #14
0
static void sync()
{
	int i;

	mem_setprg8(0x8,prg[0]);
	mem_setprg8(0xA,prg[1]);
	mem_setprg16(0xC,0x1F);
	for(i=0;i<8;i++)
		mem_setchr1(i,chr[i] >> map[4]);
	if(mirror & 1)
		ppu_setmirroring(MIRROR_H);
	else
		ppu_setmirroring(MIRROR_V);
}
예제 #15
0
파일: c_mmc5.c 프로젝트: ericmckean/nesemu
static void syncprg()
{
	mem_setprg8(0x6,prg[0] & 0x7F);
	switch(prgsize) {
		case 0:
			mem_setprg32(8,prg[4]);
			break;
		case 1:
			mem_setprg16(0x8,prg[2]);
			mem_setprg16(0xC,prg[2]);
			break;
		case 2:
			mem_setprg16(0x8,prg[2]);
			mem_setprg8(0xC,prg[3]);
			mem_setprg8(0xE,prg[4]);
			break;
		case 3:
			mem_setprg8(0x8,prg[1]);
			mem_setprg8(0xA,prg[2]);
			mem_setprg8(0xC,prg[3]);
			mem_setprg8(0xE,prg[4]);
			break;
	}
}
예제 #16
0
static void sync()
{
	int i;

	mem_setprg16(0x8,prg[0]);
	mem_setprg8(0xC,prg[1]);
	mem_setprg8(0xE,0xFF);
	for(i=0;i<8;i++)
		mem_setchr1(i,chr[i]);
	switch(mirror & 0xC) {
		case 0x0: mem_setmirroring(MIRROR_V); break;
		case 0x4: mem_setmirroring(MIRROR_H); break;
		case 0x8: mem_setmirroring(MIRROR_1L); break;
		case 0xC: mem_setmirroring(MIRROR_1H); break;
	}
}
예제 #17
0
static void sync()
{
	int i;

	if(nes->cart->wram.size)
		mem_setwram4(7,0);
	mem_setprg8(0x8,prg[0]);
	mem_setprg8(0xA,prg[1]);
	mem_setprg16(0xC,0xFF);
	for(i=0;i<8;i++)
		mem_setchr1(i,chr[i] >> map[4]);
	switch(mirror) {
		case 0:	mem_setmirroring(MIRROR_V);	break;
		case 1:	mem_setmirroring(MIRROR_H);	break;
		case 2:	mem_setmirroring(MIRROR_1L);	break;
		case 3:	mem_setmirroring(MIRROR_1H);	break;
	}
}
예제 #18
0
static void init_256(int hard)
{
	mem_setprg16(0x8,0);
	mem_setprg16(0xC,1);
	mem_setchr8(0,0);
}
예제 #19
0
static void init_128(int hard)
{
	mem_setprg16(0x8,0);
	mem_setprg16(0xC,0);
	mem_setchr8(0,0);
}