PocketSPC is a SNES sound chip emulator for the Nintendo DS. The SPC700 is capable of 8 channel stereo playback at 32,000Hz with ADSR envelope support per voice, and an 8 tap FIR filter. Currently all 8 channels are emulated in stereo, with full ADSR support. Changes:
Added SPC666 extra info display
Ported to Arm7 and rewrote BRR decoding&mixing in asm
Implemented EOR1/AND1/OR1/TCALL, fixes games that use them
Added support for inport/outport handling – you can now see this in snesDS ๐
Added ENVX&OUTX handling, fixes samples looping forever on some games
Fixed crash bug writing to high 0x40 bytes of memory – fixes fzero
Fixed DSP mirroring of address>0x7f
Attack ENVX now starting at 0 (was starting at 1)
Push/Pop PSW was messed up (Not using/setting DP or H flag)
DSP KOFF register was broken, not setting envelope speed when setting Release state, fixes quite a few games that had infinite looping sounds.
Fixed MUL YA, was not clearing Z flag when A was 0x80
Fixed DIV, was not setting V flag when Y>= X, fixes Mariokart and StarOcean!
Removed ‘optimization’ that didn’t do any register checking sometimes, caused bugs
Bug fixed in op (X),(Y) form instructions, didn’t take DP into account
Bug fixed in op DP+reg form instructions, could access outside DP
Bug fixed in SBC (X),(Y), reversed the order of the subtraction
Bug fixed in op #,(X) instruction, (X) address was not using DP flag
http://pocketspc.pocketheaven.com/