mirror of https://github.com/bsnes-emu/bsnes.git
69 lines
1.2 KiB
C++
69 lines
1.2 KiB
C++
#include <sfc/sfc.hpp>
|
|
|
|
#define NECDSP_CPP
|
|
namespace SuperFamicom {
|
|
|
|
#include "serialization.cpp"
|
|
NECDSP necdsp;
|
|
|
|
void NECDSP::Enter() { necdsp.enter(); }
|
|
|
|
void NECDSP::enter() {
|
|
while(true) {
|
|
if(scheduler.sync == Scheduler::SynchronizeMode::All) {
|
|
scheduler.exit(Scheduler::ExitReason::SynchronizeEvent);
|
|
}
|
|
|
|
exec();
|
|
step(1);
|
|
synchronize_cpu();
|
|
}
|
|
}
|
|
|
|
uint8 NECDSP::read(unsigned addr) {
|
|
cpu.synchronize_coprocessors();
|
|
if(addr & Select) {
|
|
return uPD96050::sr_read();
|
|
} else {
|
|
return uPD96050::dr_read();
|
|
}
|
|
}
|
|
|
|
void NECDSP::write(unsigned addr, uint8 data) {
|
|
cpu.synchronize_coprocessors();
|
|
if(addr & Select) {
|
|
return uPD96050::sr_write(data);
|
|
} else {
|
|
return uPD96050::dr_write(data);
|
|
}
|
|
}
|
|
|
|
uint8 NECDSP::ram_read(unsigned addr) {
|
|
cpu.synchronize_coprocessors();
|
|
return uPD96050::dp_read(addr);
|
|
}
|
|
|
|
void NECDSP::ram_write(unsigned addr, uint8 data) {
|
|
cpu.synchronize_coprocessors();
|
|
return uPD96050::dp_write(addr, data);
|
|
}
|
|
|
|
void NECDSP::init() {
|
|
}
|
|
|
|
void NECDSP::load() {
|
|
}
|
|
|
|
void NECDSP::unload() {
|
|
}
|
|
|
|
void NECDSP::power() {
|
|
}
|
|
|
|
void NECDSP::reset() {
|
|
create(NECDSP::Enter, frequency);
|
|
uPD96050::power();
|
|
}
|
|
|
|
}
|