Merge pull request #17 from hizzlekizzle/master

add perf core SMP fix for Dark Law
This commit is contained in:
Twinaphex 2017-06-28 02:20:43 +02:00 committed by GitHub
commit 09dbe5216a
2 changed files with 11 additions and 2 deletions

View File

@ -33,8 +33,8 @@ void SMP::op_write(uint16 addr, uint8 data) {
void SMP::op_step() {
#define op_readpc() op_read(regs.pc++)
#define op_readdp(addr) op_read((regs.p.p << 8) + addr)
#define op_writedp(addr, data) op_write((regs.p.p << 8) + addr, data)
#define op_readdp(addr) op_read((regs.p.p << 8) + (addr & 0xff))
#define op_writedp(addr, data) op_write((regs.p.p << 8) + (addr & 0xff), data)
#define op_readaddr(addr) op_read(addr)
#define op_writeaddr(addr, data) op_write(addr, data)
#define op_readstack() op_read(0x0100 | ++regs.sp)

View File

@ -274,6 +274,15 @@ void DSP::power() {
voice[i].t_envx_out = 0;
voice[i].hidden_env = 0;
}
//note: memory is pseudo-random at startup; but internal state is less so
//exact differences are unknown. need to separate memory from internal state
for(unsigned r = 0; r < 0x80; r++) {
state.regs[r] = 0x00;
}
REG(endx) = random(0x00);
REG(flg) = 0xe0;
}
void DSP::reset() {