Example #1
0
void gbusters_main_write(unsigned short address, unsigned char data)
{
	switch (address)
	{
		case 0x1f80:
			set_ram_bank(data);
		return;

		case 0x1f84:
			*soundlatch = data;
		return;

		case 0x1f88:
			ZetSetVector(0xff);
			ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);

		return;

		case 0x1f8c:
			// watchdog
		return;

		case 0x1f98:
			K052109RMRDLine = data & 0x01;
		return;
	}

	if ((address & 0xc000) == 0x0000) {
		K052109_051960_w(address & 0x3fff, data);
		return;
	}
}
Example #2
0
// MBC3
static void mbc3_write(u16 address, u8 value) {
	switch (address >> 13) {
		case 0x0:		// 0000-1FFF: RAM enable
			params.ram_enable = (value == 0x0a);
			break;
		case 0x1:		// 2000-3FFF: ROM bank number - 7 bits
			if (value == 0)
				value = 1;
			set_rom_bank(value & 127);
			break;
		case 0x02:		// 4000-5FFF: RAM bank number
			set_ram_bank(value & 3);
			break;
	}
}
Example #3
0
void aliens_main_write(UINT16 address, UINT8 data)
{
	switch (address)
	{
		case 0x5f88:
			set_ram_bank(data & 0x20);
			K052109RMRDLine = data & 0x40;
		return;

		case 0x5f8c:
			*soundlatch = data;
			ZetSetVector(0xff);
			ZetSetIRQLine(0, ZET_IRQSTATUS_ACK);

			//ZetRaiseIrq(0xff);
		return;
	}

	if ((address & 0xc000) == 0x4000) {
		K052109_051960_w(address & 0x3fff, data);
		return;
	}
}
Example #4
0
static void mbc1_write(u16 address, u8 value) {
	switch (address >> 13) {
		case 0x0:		// 0000-1FFF: RAM enable
			params.ram_enable = (value == 0x0a);
			break;
		case 0x1:		// 2000-3FFF: ROM bank number - lower 5 bits
			if (value == 0)			// cf pandocs
				value++;
			params.rom_bank &= ~31;		// Remplace les bits du bas
			set_rom_bank(params.rom_bank | (value & 31));
			break;
		case 0x2:		// 4000-5FFF: ROM bank number - upper 2 bits
			if (params.bank_mode == 0) {		// Sélection banque ROM
				params.rom_bank &= 31;			// Garde les bits du bas
				set_rom_bank(params.rom_bank | (value & 3) << 5);
			}
			else						// Sélection banque RAM
				set_ram_bank(value & 3);
			break;
		case 0x3:		// 6000-7FFF: ROM/RAM bank select switch
			params.bank_mode = value & 1;
			break;
	}
}