89#if !SPC_NO_COPY_STATE_FUNCS
91 enum { state_size = 67 * 1024L };
92 typedef Spc_Dsp::copy_func_t copy_func_t;
93 void copy_state(
unsigned char** io, copy_func_t );
96 static void init_header(
void* spc_out );
100 void save_spc(
void* spc_out );
124 BLARGG_DISABLE_NOTHROW
149 #if SPC_LESS_ACCURATE
281#if !SPC_NO_COPY_STATE_FUNCS
282inline bool Snes_Spc::check_kon() {
return dsp.check_kon(); }
uint16_t pc
Definition Spc_Cpu.h:144
LADSPA_Data sample_t
Definition basics.h:100
static const unsigned long mask[]
Definition bitwise.c:31
struct huft * t
Definition inflate.c:943
register unsigned i
Definition inflate.c:1575
JSAMPIMAGE data
Definition jpeglib.h:945
float in
Definition lilv_test.c:1460
float out
Definition lilv_test.c:1461
unsigned short uint16_t
Definition mid.cpp:99
unsigned char uint8_t
Definition mid.cpp:98
Definition Snes_Spc.h:132
int counter
Definition Snes_Spc.h:138
int prescaler
Definition Snes_Spc.h:134
int period
Definition Snes_Spc.h:135
int divider
Definition Snes_Spc.h:136
int enabled
Definition Snes_Spc.h:137
rel_time_t next_time
Definition Snes_Spc.h:133
Definition Snes_Spc.h:110
uint8_t psw
Definition Snes_Spc.h:115
uint16_t pc
Definition Snes_Spc.h:111
uint8_t sp
Definition Snes_Spc.h:116
uint8_t x
Definition Snes_Spc.h:113
uint8_t y
Definition Snes_Spc.h:114
uint8_t a
Definition Snes_Spc.h:112
Definition Snes_Spc.h:239
uint8_t a
Definition Snes_Spc.h:244
uint8_t ipl_rom[0x40]
Definition Snes_Spc.h:253
uint8_t sp
Definition Snes_Spc.h:248
uint8_t ram[0x10000]
Definition Snes_Spc.h:250
uint8_t y
Definition Snes_Spc.h:246
uint8_t unused[0x40]
Definition Snes_Spc.h:252
uint8_t x
Definition Snes_Spc.h:245
char signature[signature_size]
Definition Snes_Spc.h:240
uint8_t pcl
Definition Snes_Spc.h:243
char text[212]
Definition Snes_Spc.h:249
uint8_t pch
Definition Snes_Spc.h:243
uint8_t psw
Definition Snes_Spc.h:247
uint8_t has_id666
Definition Snes_Spc.h:241
uint8_t version
Definition Snes_Spc.h:242
Definition Snes_Spc.h:155
sample_t * extra_pos
Definition Snes_Spc.h:174
uint8_t smp_regs[2][reg_count]
Definition Snes_Spc.h:158
int skipped_koff
Definition Snes_Spc.h:168
uint8_t ram[0x10000]
Definition Snes_Spc.h:190
int rom_enabled
Definition Snes_Spc.h:177
time_t spc_time
Definition Snes_Spc.h:163
int tempo
Definition Snes_Spc.h:166
rel_time_t dsp_time
Definition Snes_Spc.h:162
Timer timers[timer_count]
Definition Snes_Spc.h:156
uint8_t hi_ram[rom_size]
Definition Snes_Spc.h:179
sample_t const * buf_end
Definition Snes_Spc.h:173
uint8_t padding2[0x100]
Definition Snes_Spc.h:191
sample_t extra_buf[extra_size]
Definition Snes_Spc.h:175
unsigned char cycle_table[256]
Definition Snes_Spc.h:181
uint8_t padding1[0x100]
Definition Snes_Spc.h:187
uint8_t rom[rom_size]
Definition Snes_Spc.h:178
regs_t cpu_regs
Definition Snes_Spc.h:160
int extra_clocks
Definition Snes_Spc.h:171
int skipped_kon
Definition Snes_Spc.h:167
const char * cpu_error
Definition Snes_Spc.h:169
sample_t * buf_begin
Definition Snes_Spc.h:172
bool echo_accessed
Definition Snes_Spc.h:164
uint16_t align
Definition Snes_Spc.h:188
@ rom_size
Definition Snes_Spc.h:24
void reset_common(int timer_counter_init)
Definition Snes_Spc.cpp:180
void regs_loaded()
Definition Snes_Spc.cpp:151
@ port_count
Definition Snes_Spc.h:48
state_t m
Definition Snes_Spc.h:194
void cpu_write(int data, uint16_t addr, rel_time_t)
Definition Spc_Cpu.cpp:404
void write_port(time_t, int port, int data)
Definition Snes_Spc.h:271
void reset_buf()
Definition Snes_Spc.cpp:264
void reset_time_regs()
Definition Snes_Spc.cpp:157
uint8_t * run_until_(time_t end_time)
void save_extra()
Definition Snes_Spc.cpp:314
@ r_dspaddr
Definition Snes_Spc.h:205
@ r_cpuio3
Definition Snes_Spc.h:207
@ r_t2target
Definition Snes_Spc.h:209
@ r_cpuio1
Definition Snes_Spc.h:206
@ r_t2out
Definition Snes_Spc.h:210
@ r_f8
Definition Snes_Spc.h:208
@ r_t0out
Definition Snes_Spc.h:210
@ r_dspdata
Definition Snes_Spc.h:205
@ r_f9
Definition Snes_Spc.h:208
@ r_t1out
Definition Snes_Spc.h:210
@ r_t1target
Definition Snes_Spc.h:209
@ r_cpuio0
Definition Snes_Spc.h:206
@ r_control
Definition Snes_Spc.h:204
@ r_t0target
Definition Snes_Spc.h:209
@ r_cpuio2
Definition Snes_Spc.h:207
@ r_test
Definition Snes_Spc.h:204
void ram_loaded()
Definition Snes_Spc.cpp:140
void cpu_write_smp_reg_(int data, rel_time_t, uint16_t addr)
Definition Spc_Cpu.cpp:287
int dsp_read(rel_time_t)
Definition Spc_Cpu.cpp:141
void reset()
Definition Snes_Spc.cpp:204
void set_output(sample_t *out, int out_size)
Definition Snes_Spc.cpp:277
static signed char const reg_times_[256]
Definition Snes_Spc.h:99
@ timer_count
Definition Snes_Spc.h:141
@ clock_rate
Definition Snes_Spc.h:44
short sample_t
Definition Snes_Spc.h:28
void end_frame(time_t end_time)
Definition Spc_Cpu.cpp:518
void soft_reset()
Definition Snes_Spc.cpp:198
@ rom_addr
Definition Snes_Spc.h:196
@ signature_size
Definition Snes_Spc.h:144
@ cpu_pad_fill
Definition Snes_Spc.h:201
void timers_loaded()
Definition Snes_Spc.cpp:110
signed char reg_times[256]
Definition Snes_Spc.h:151
blargg_err_t play(int count, sample_t *out)
Definition Snes_Spc.cpp:337
void cpu_write_smp_reg(int data, rel_time_t, uint16_t addr)
Definition Spc_Cpu.cpp:388
@ tempo_unit
Definition Snes_Spc.h:67
@ sample_rate
Definition Snes_Spc.h:18
static char const signature[signature_size+1]
Definition Snes_Spc.h:256
Timer * run_timer_(Timer *t, rel_time_t)
Definition Spc_Cpu.cpp:50
void mute_voices(int mask)
Definition Snes_Spc.h:277
bool check_echo_access(int addr)
Definition Spc_Cpu.cpp:197
void enable_rom(int enable)
Definition Spc_Cpu.cpp:81
uint8_t * smp_ram()
Definition Snes_Spc.h:120
int read_port(time_t, int port)
Definition Snes_Spc.h:265
@ skipping_time
Definition Snes_Spc.h:198
int sample_count() const
Definition Snes_Spc.h:263
@ clocks_per_sample
Definition Snes_Spc.h:45
int cpu_read_smp_reg(int i, rel_time_t)
Definition Spc_Cpu.cpp:438
int time_t
Definition Snes_Spc.h:43
Timer * run_timer(Timer *t, rel_time_t)
Definition Spc_Cpu.cpp:71
@ spc_min_file_size
Definition Snes_Spc.h:73
int cpu_read(uint16_t addr, rel_time_t)
Definition Spc_Cpu.cpp:452
void clear_echo()
Definition Snes_Spc.cpp:249
void run_until(time_t t)
Definition Snes_Spc.h:122
void init_rom(uint8_t const rom[rom_size])
Definition Snes_Spc.cpp:80
blargg_err_t skip(int count)
Definition Snes_Spc.cpp:351
blargg_err_t init()
Definition Snes_Spc.cpp:32
@ spc_file_size
Definition Snes_Spc.h:74
void set_tempo(int)
Definition Snes_Spc.cpp:85
@ voice_count
Definition Snes_Spc.h:59
@ extra_size
Definition Snes_Spc.h:142
blargg_err_t load_spc(void const *in, long size)
Definition Snes_Spc.cpp:215
BLARGG_DISABLE_NOTHROW typedef int rel_time_t
Definition Snes_Spc.h:129
@ reg_count
Definition Snes_Spc.h:140
regs_t & smp_regs()
Definition Snes_Spc.h:118
void load_regs(uint8_t const in[reg_count])
Definition Snes_Spc.cpp:125
void disable_surround(bool disable=true)
Definition Snes_Spc.h:279
void cpu_write_high(int data, uint8_t i)
Definition Spc_Cpu.cpp:396
unsigned CPU_mem_bit(uint16_t pc, rel_time_t)
Definition Spc_Cpu.h:99
void dsp_write(int data, rel_time_t)
Definition Spc_Cpu.cpp:154
void save_regs(uint8_t out[reg_count])
@ extra_size
Definition Spc_Dsp.h:84
_WDL_CSTRING_PREFIX void INT_PTR count
Definition wdlcstring.h:263