DSP interface: RE efforts show that DSP examines its registers at various times between output samples, so the interface will need to be changed at some point to accept the clock count (1.024 MHz) rather than sample count (32 kHz). Currently the DSP emulator does nothing for 32 clocks, then generates a sample, then does nothing for 32 more clocks, etc.
Save State Interface: I want to work out how the DSP state is saved and restored. I removed it from the most recent version since it needs more work before it's stable. I looked at zstate.c and its scheme makes sense. Would the following interface work?
Code: Select all
typedef void (*dsp_copy_func_t)( unsigned char**, void*, size_t );
void dsp_copy_state_data( unsigned char* buf, dsp_copy_func_t );
Emulation Changes: As more information is found, the DSP emulator's behavior will change. This might break some movies/save states that were made with earlier versions. What should be done about this?
Save State Format: RE efforts are uncovering more internal DSP state, so the format must allow future additions. It could either be variable sized or have several reserved bytes set to 0. I don't think we'll uncover too much new internal state.
Full SPC emulator module: If it is ever decided that my full SPC emulator (spc.h) will get used, I can add an SPC save function. Otherwise, it's not a priority for me.