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/