예제 #1
0
static UINT16 __fastcall gradius3_main_read_word(UINT32 address)
{
	if (address >= 0x14c000 && address <= 0x153fff) {
		address -= 0x14c000;
		return K052109Read(address / 2);
	}

	return 0;
}
예제 #2
0
unsigned short __fastcall gradius3_main_read_word(unsigned int address)
{
	if (address >= 0x14c000 && address <= 0x153fff) {
		address -= 0x14c000;
		return K052109Read(address / 2);
	}

	return 0;
}
예제 #3
0
UINT8 parodius_main_read(UINT16 address)
{
	switch (address)
	{
		case 0x3f8c:
			return DrvInputs[0];

		case 0x3f8d:
			return DrvInputs[1];

		case 0x3f8e:
			return (DrvDips[2] & 0xf0) | (DrvInputs[2] & 0x0f);

		case 0x3f8f:
			return DrvDips[0];

		case 0x3f90:
			return DrvDips[1];

		case 0x3fc0: // watchdog
			return 0;

		case 0x3fcc:
		case 0x3fcd:
			return K053260Read(0, (address & 1)+2);
	}

	if ((address & 0xf800) == 0x0000) {
		if (nDrvRomBank[1] & 1) {
			return DrvPalRAM[((nDrvRomBank[1] & 0x04) << 9) + address];
		} else {
			return DrvBankRAM[address];
		}
	}

	if ((address & 0xfff0) == 0x3fa0) {
		return K053244Read(0, address & 0x0f);
	}

	if ((address & 0xf800) == 0x2000) {
		if (nDrvRomBank[1] & 0x02) {
			return K053245Read(0, address & 0x7ff);
		}
	}

	if (address >= 0x2000 && address <= 0x5fff) {
		return K052109Read(address - 0x2000);
	}

	return 0;
}
예제 #4
0
unsigned char supratk_read(unsigned short address)
{
	switch (address)
	{
		case 0x5f8c:
			return DrvInputs[0];

		case 0x5f8d:
			return DrvInputs[1];

		case 0x5f8e:
			return (DrvInputs[2] & 0x0f) | (DrvDips[2] & 0xf0);

		case 0x5f8f:
			return DrvDips[0];

		case 0x5f90:
			return DrvDips[1];

		case 0x5fc0:
			// watchdog
			return 0;
	}

	if ((address & 0xf800) == 0x0000) {
		if (videobank & 0x02) {
			return DrvPalRAM[((videobank & 4) << 9) + address];
		} else if (videobank & 0x01) {
			return K053245Read(0, address);
		}
		return DrvBankRAM[address];
	}

	if ((address & 0xfff0) == 0x5fa0) {
		return K053244Read(0, address & 0x0f);
	}

	if ((address & 0xc000) == 0x4000) {
		return K052109Read(address & 0x3fff);
	}

	return 0;
}
예제 #5
0
static UINT8 __fastcall gradius3_main_read_byte(UINT32 address)
{
	switch (address)
	{
		case 0x0c8000:
		case 0x0c8001:
			return DrvInputs[0];

		case 0x0c8002:
		case 0x0c8003:
			return DrvInputs[1];

		case 0x0c8004:
		case 0x0c8005:
			return DrvInputs[2];

		case 0x0c8006:
		case 0x0c8007:
			return DrvDips[2];

		case 0x0d0000:
		case 0x0d0001:
			return DrvDips[0];

		case 0x0d0002:
		case 0x0d0003:
			return DrvDips[1];
	}

	if (address >= 0x14c000 && address <= 0x153fff) {
		address -= 0x14c000;
		return K052109Read(address / 2);
	}

	return 0;
}