Exemplo n.º 1
0
void NesCpuBase::reset()
{
	u8 lo = nesCpuRead(ResetVectorAddress  );
	u8 hi = nesCpuRead(ResetVectorAddress+1);
	m_stateRegs.pc = lo|(hi<<8);
	m_stateRegs.a = 0;
	m_stateRegs.y = 0;
	m_stateRegs.x = 0;
	m_stateRegs.s = 0xff;
	m_stateRegs.p = IrqDisable;
}
Exemplo n.º 2
0
bool NesApuDMChannel::clockDma()
{
	if (!(m_dmaLength&7)) {
		m_buffer = nesCpuRead(m_address);
		m_address = 0x8000 | (m_address+1);
	}

	m_dmaLength--;
	if (!m_dmaLength) {
		if (m_looping)
			restart();
		else
			return false;
	}
	return true;
}
Exemplo n.º 3
0
static inline u16 READ16(u16 address)
{
	u16 ret = nesCpuRead(address);
	ret |= nesCpuRead(address+1) << 8;
	return ret;
}
Exemplo n.º 4
0
static inline u8 READ8(u16 address)
{
	return nesCpuRead(address);
}