Exemple #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;
}
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;
}
Exemple #3
0
static inline u16 READ16(u16 address)
{
	u16 ret = nesCpuRead(address);
	ret |= nesCpuRead(address+1) << 8;
	return ret;
}
Exemple #4
0
static inline u8 READ8(u16 address)
{
	return nesCpuRead(address);
}